Te digo como lo estructuraría yo.
#include<stdio.h>
#include<bienvenida.h>
#include<opciones.h>
int op;
int main(void)
{
op=0;
MsgBienvenida(); // implementada en <bienvenida.h> imprime las opciones del programa
scanf("%d",&op);
switch(op){
case 1: opcion1(); break; // op es un entero, asi que no lo pongas como caracter ('1'), y trata de no usar Exit, trata de salir por una sola via... el return final
case 2: opcion2(); break;
case 3: opcion3(); break;
//....... todas las demas
default: printf("Opcion inexistente...\nSe procederá a la finalización del programa");
}
return 0;
}
Eso fue el programa principal, ahora algunas cabeceras
Esta es bienvenida.h
#include<stdio.h>
#include<conio.h> // si queres programar en otros compiladores ademas de borland, recomiendo no usar esa cabecera
void MsgBienvenida(void)
{
gotoxy(2,2);
printf(",-[by Western]-[0x478! F.T!]--------------------------------------------------.");
gotoxy(2,3);
printf("| |");
gotoxy(2,4);
printf("| WELCOME TO THE EMPIRE GLOBAL NETWORK |");
gotoxy(2,5);
printf("| :~~~~: |");
gotoxy(2,6);
printf("| :~~~~~~~~ .___________________________________________.|");
gotoxy(2,7);
printf("| ..:::-~~:. ~~ | Þ Eliga una de las siguientes opciones ||");
gotoxy(2,8);
printf("| .:!!!!!~~:nMMHx. ~ ^-------------------------------------------^|");
gotoxy(2,9);
printf("| :!!!!!~~:W$$$$$$8X 1.- Encender un conjunto de leds |");
gotoxy(2,10);
printf("| !!!!!~~:W$$$$$$$$$$x 2.- Apagar un conjunto de leds |");
gotoxy(2,11);
printf("| :!!!!~~XM$$$$$$$$$$$M. 3.- Encender y apagar de a uno los leds |");
gotoxy(2,12);
printf("| ~!!~~:MMM$$$$$$$$$$$@! 4.- Encender desde izquierda a derecha |");
gotoxy(2,13);
printf("| !!~~!!!MM$$$$$$$$$$$M! 5.- Encender desde derecha a izquierda |");
gotoxy(2,14);
printf("| :~~!!!!?MMR$$$$$$$RMM 6.- Encender de forma secuencial 1 |");
gotoxy(2,15);
printf("| ~~ !!!!!!!MMMMMRRMMMM` 7.- Encender de forma secuencial 2 |");
gotoxy(2,16);
printf("| ~~~ !!!!!!!?MMMMMMM?` 8.- Encender de forma secuencial 3 |");
gotoxy(2,17);
printf("| :~~: `~!!!!!!!!!!~` 9.- Encender de forma secuencial 4 |");
gotoxy(2,18);
printf("| ~~~~~:: `````` 10.- Creditos |");
gotoxy(2,19);
printf("| ~~~~~ |");
gotoxy(2,20);
printf("| `Back to the basics.` |");
gotoxy(2,21);
printf("| Empire ©Corporation |");
gotoxy(2,22);
printf("| Moyano Nicolas |");
gotoxy(2,23);
printf("| 2º 1º Informatica |");
gotoxy(2,24);
printf("| Octubre 29,30,31 del 2005 |");
gotoxy(2,25);
printf("`-----------------------------------------------------------------------------´");
}
Tu archivo <opciones.h>
#include<stdio.h>
#include<dos.h>
#include<conio.h>
unsigned int port;
int value;
int y;
int ae;
int al;
int el;
int opcion1(void)
{
y=256;
port=888;
value=0;
clrscr();
gotoxy(2,2);
printf(",--[Empire Sistem Operating Now]-[E.S.O.N.]----------------.");
gotoxy(2,3);
printf("| «Opcion 1» `Encender y apagar un conjunto de leds` |");
gotoxy(2,4);
printf("|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|");
gotoxy(2,5);
printf("| • Acontinuacion vera encenderse los leds |");
gotoxy(2,6);
printf("| |");
gotoxy(2,7);
printf("| Empire Corp.|");
gotoxy(2,8);
printf("`----------------------------------------------------------´");
value=255;
outport(port,value);
getchar();
exit(1);
return 0;
}
/*
int opcion2(void)
{......... las demas
*/
Con esto tu codigo quedaria mucho más legible, en cuanto al uso de la funcion outpost, deberia buscar ese viejo programita que hice para la facultad, creo que te lo comenté. Si lo encuentro, posteo.
Si no entendes algo de lo que puse, preguntá tranquilo.
Saludos!