FICHEROS INCLUDE DE TURBO C Los ficheros include definidos por el ANSI C van marcados con un asterisco. alloc.h Contiene funciones para manejo de memoria. assert.h* Define el macro-debugger assert. bios.h Contiene funciones que utilizan llamadas a ROM BIOS. conio.h Llamadas a rutinas I/O de consola del DOS. ctype.h* Clasificaci¢n y conversi¢n de caracteres. dir.h Estructuras, macros y funciones para trabajar con directorios y nombres de path. dos.h Define varias constantes y declaraciones necesarias para el DOS y llamadas espec¡ficas al 8086. errno.h* Define constantes mnem¢nicas para c¢digos de error. fcntl.h Define constantes utilizadas en conexi¢n con la librer¡a de funciones open. float.h* Contiene par metros para rutinas en punto flotante. graphics.h Declara prototipos para funciones gr ficas. io.h Contiene estructuras y declaraciones para rutinas I/O de bajo nivel. limits.h* Contiene par metros de entorno, informaci¢n en torno a limitaciones en tiempo de compilaci¢n. math.h* Declara prototipos de funciones matem ticas. mem.h Declara funciones para manipulaci¢n de memoria. process.h Contiene estructuras y declaraciones para funciones spawn... y exec... setjmp.h* Define un tipo jmp-buf utilizado por el longjmp y setjmp. share.h Define par metros utilizados en funciones a utilizar por ficheros-sharing. signal.h* Constes y declaraciones a utilizar en las funciones signal y raise. stdargs.h* Define los macros utilizados para leer la lista de argumentos en funciones declaradas para aceptar un n£mero variable de argumentos. stddef.h* Define varios macros y datos comunes. stdio.h* Define I/O standard UNIX. stdlib.h* Rutinas de conversi¢n, b£squeda, ordenaci¢n etc. string.h* Manipulaci¢n de cadena y rutinas de memoria. sys\stat.h Define constantes simb¢licas usadas para crear y abrir ficheros. sys\timeb.h Declara la funci¢n ftime y la estructura timeb. sys\types.h Declara el tipo time_t usado en las funciones time. time.h* Estructuras para conversi¢n de rutinas time. values.h Define constantes para compatibilidad UNIX. VARIABLES GLOBALES _argc Funci¢n Contador de argumentos de la l¡nea de comandos. Sintaxis extern int _argc; Declarado dos.h Nota: _argc contiene el valor de argc pasado a main al arrancar el programa. _argv Funci¢n Array de punteros a argumentos de la l¡nea comandos. Sintaxis extern char *_argv[]; Declarado dos.h daylight Funci¢n Indica si Daylight Savings Time tiene efecto. Sintaxis extern int daylight; Declarado time.h Nota: dayliht es utilizado por las funciones de fecha y hora. Tiene valor 1 para Daylight Savings Time y 0 para Standard Time. directvideo Funci¢n Flag de control de salida video. Sintaxis extern int directvideo; Declarado conio.h Nota: Controla si la salida del programa (por ejemplo en cputs) accede directamente a la RAM video (directvideo = 1) o lo hace mediante llamadas ROM BIOS (directvideo = 0). El valor por defecto es 1. _8087 Funci¢n Flag del coprocesador. Sintaxis extern int _8087; Declarado dos.h Nota: La variable _8087 es puesta al valor 1, 2 o 3 con la autodetecci¢n del coprocesador 8087, 80287 o 80387 de lo contrario valdr  0. environ Funci¢n Acceso a variables de entorno del DOS. Sintaxis extern char *environ[]; Declarado dos.h Nota: environ es un array de punteros a cadenas, es utilizado para acceder y alterar las variables de entorno del DOS. errno, _doserrno, sys_errlist, sys_nerr Funci¢n Permite a perror imprimir mensajes de error. Sintaxis extern int errno; extern int _doserrno; extern char *sys_errlist[]; extern int sys_nerr; Declarado errno.h, stdlib.h (_doserrno en dos.h). _fmode Funci¢n Determina el modo de lec./esc. de ficheros por omisi¢n. Sintaxis extern int _fmode; Declarado fcntl.h Nota: _fmode determina la apertura de los ficheros en modo texto o binario. El valor por omisi¢n es O_TEXT, de lo contrario O_BINARY. _heaplen Funci¢n Controla la longitud del near heap. Sintaxis extern unsigned _heaplen; Declarado dos.h Nota: Especifica el tama¤o de near heap en el modelo de datos small (tiny, small y medium). _heaplen no existe en los modelos largos de memoria. _osmajor, _osminor Funci¢n Contiene el n£mero mayor y menor de versi¢n de DOS. Sintaxis extern unsigned char _osmajor; extern unsigned char _osminor; Declarado dos.h _psp Funci¢n Contiene la direcci¢n del psp Sintaxis extern unsigned int _psp; Declarado dos.h _stklen Funci¢n Contiene el tama¤o de la pila. Sintaxis extern unsigned _stklen; Declarado dos.h Nota: Especifica el tama¤o de pila para cualquiera de los seis modelos de memoria. El m¡nimo tama¤o de pila es de 128 palabras. timezone Funci¢n Tiene la diferencia en seg. entre hora local y la GMT Sintaxis extern long timezone; Declarado time.h tzname Funci¢n Array de punteros a nombres de zona horaria Sintaxis extern char *tzname[2]; Declarado time.h Nota: La variable global tzname es un array de punteros a cadenas que contienen las abreviaturas a los nombres de zonas horarias. _versi¢n Funci¢n Contiene el n£mero de versi¢n de DOS Sintaxis extern unsigned int _versi¢n; Declarado dos.h LIBRERIAS DE TURBO C - alloc.h brk() Sintaxis: int brk(void *addr); Declarado: alloc.h Funci¢n: Cambia el lugar de asignaci¢n del segmento de datos. calloc() Sintaxis: void *calloc(size_t n, size_t t); Declarado: stdlib.h, alloc.h Funci¢n: Esta funci¢n, asigna espacio de memoria para un array de n elementos, de longitud t bytes cada uno de ellos. coreleft() Sintaxis: En tiny, small y medium: unsigned coreleft(void); En compact, large y huge: unsigned long coreleft(void); Declarado: alloc.h Funci¢n: Devuelve la RAM libre. farcalloc() Sintaxis: void far *farcalloc(unsigned long num, unsigned long unitsz); Declarado: alloc.h Funci¢n: Asigna memoria desde el far heap para un array de num elementos de tama¤o unitsz cada uno. Esta funci¢n devuelve un puntero al bloque asignado, o un NULL en caso de no haber espacio. farcoreleft() Sintaxis: unsigned long farcoreleft(void); Declarado: alloc.h Funci¢n: Devuelve el tama¤o de memoria disponible en el far heap. farfree() Sintaxis: void farfree(void far *bloque); Declarado: alloc.h Funci¢n: Libera el bloque del far heap dej ndolo disponible para su utilizaci¢n. farmalloc() Sintaxis: void far *farmalloc(unsigned long nbytes); Declarado: alloc.h Funci¢n: Asigna un bloque del far heap de nbytes. En caso de no poder hacerlo, devuelve NULL. farrealloc() Sintaxis: void far *farrealloc(void far *p, unsigned long t); Declarado: alloc.h Funci¢n: Cambia el tama¤o de un bloque de memoria del far heap previamente asignado mediante farmalloc o farcalloc. El argumento p apunta al comienzo del bloque. t es el nuevo tama¤o del bloque en bytes. Si no hay espacio o si t es 0 devuelve NULL. free() Sintaxis: void free(void *block); Declarado: stdio.h, alloc.h Funci¢n: Deja libre un bloque de memoria previamente asignado con calloc, malloc o realloc. malloc() Sintaxis: void *malloc(size_t size); Declarado: stdlib.h, alloc.h Funci¢n: Reserva un bloque de memoria de tama¤o size y retorna un puntero al comienzo de ella. realloc() Sintaxis: void *realloc(void *p, size_t t); Declarado: alloc.h Funci¢n: Cambia el tama¤o de un bloque de memoria previamente asignado. p es un puntero que apunta al comienzo del bloque. Si p es NULL, esta funci¢n se comporta igual que malloc y asigna un nuevo bloque de t bytes. Si p no es nulo, entonces a de ser un puntero devuelto por la funci¢n malloc, calloc o por la propia realloc. El bloque ha podido ser incluso liberado por free. El argumento t, da el nuevo tama¤o del bloque en bytes. sbrk() Sintaxis: void *sbrk(int incr); Declarado: alloc.h Funci¢n: Cambia el espacio asignado al segmento de datos increment ndolo en incr bytes. LIBRERIAS DE TURBO C - assert.h assert() Sintaxis: void assert(int expresi¢n); Declarado: assert.h stdio.h Funci¢n: La macro assert() eval£a la expresi¢n que recibe como argumento. Si el resultado es 0, escribe informaci¢n sobre el error en el canal stderr y cancela la ejecuci¢n del programa. De lo contrario, assert() no realiza ninguna acci¢n. El mensaje de error tiene la forma siguiente: Assertion failed: fille (fichero), line (n£mero de linea) Normalmente esta macro se utiliza para verificar que un programa funciona correctamente, con la expresi¢n dise¤ada de forma que es verdadera solo cuando no haya errores. LIBRERIAS DE TURBO C - bios.h bioscom() Sintaxis: int bioscom(int cmdo, char byte, int puerto); Declarado: bios.h Funci¢n: Esta funci¢n se utiliza para manipular un puerto as¡ncrono de comunicaci¢n serie RS-232. El n£mero de puerto 0 indica COM1, puerto 1 se refiere a COM2, etc. La funci¢n emplea la interrupci¢n 0x14 del BIOS. El tipo de operaci¢n que se lleva a cabo depende de cmodo. ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º cmodo ³ Significado º ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 0 ³ Inicializa puerto º º 1 ³ Env¡a un car cter º º 2 ³ Recibe un car cter º º 3 ³ Devuelve el estado del puerto º º ³ º ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Cuando se inicializa el puerto, el argumento byte tiene un valor que se interpreta de la siguiente forma: ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º BITS ³ Significado º ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 7, 6, 5 ³ baudios º º 4, 3 ³ paridad º º 2 ³ bits de parada (stop bits) º º 1, 0 ³ bits de datos º º ³ º ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Los baudios se codifican de la forma siguiente: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º BAUDIOS ³ BITS º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 9.600 ³ 111 º º 4.800 ³ 110 º º 2.400 ³ 101 º º 1.200 ³ 100 º º 600 ³ 011 º º 300 ³ 010 º º 150 ³ 001 º º 110 ³ 000 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ La paridad se codifica: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º PARIDAD ³ BITS º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º Sin paridad ³ 00 ¢ 10 º º Impar ³ 01 º º Par ³ 11 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ El n£mero de bits de parada (stop bits) depende del valor del bit correspondiente: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ» º BITS DE PARADA ³ BIT º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ º 2 bits de parada ³ = 1 º º 1 bit de parada ³ = 0 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ El n£mero de bits de datos se codifica: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍ» º N§ DE BITS DA DATOS ³ BITS º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄĶ º 7 bits ³ 10 º º 8 bits ³ 11 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍͼ Por ejemplo 0XDF, programa el puerto con 4800 baudios, paridad par, 2 bits de parada y 8 bits de datos. La secuencia de bits es: 11011111 La funci¢n bioscom() devuelve un valor de 16 bits. El byte alto contiene los bits de estado. Estos bits tienen el siguiente significado: BIT SIGNIFICADO (CUANDO ACTIVADO) 0 Car cter disponible. El programa puede realizar una lectura del puerto (cmodo = 2). 1 Tamp¢n lleno (overrun). Se ha recibido un caracter cuando el programa a£n no hab¡a vaciado el anterior. Se han perdido caracteres. 2 Error de paridad 3 Error de trama. (framing error). El reconocimiento del caracter es incorrecto. 4 Error de transmisi¢n. (break detect). Error en la l¡nea. 5 Registro de transmisi¢n vac¡o. El programa puede enviar un car cter (cmodo = 1): 6 Registro de desplazamiento de la informaci¢n est  vacio. 7 Finalizado el tiempo concedido (time out): Cuando el argumento cmodo vale 0, 1 o 3, el byte bajo se codifica como se indica a continuaci¢n: BIT SIGNIFICADO (CUANDO ACTIVADO) 0 Delta clear to send. El CTS ha cambiado de estado desde la £ltima lectura. 1 Delta set ready. El DSR ha cambiado de estado desde la £ltima lectura. 2 Trailing edge ring indicator. El RI ha cambiado de estado. 3 Delta receive line signal detect. El LSD ha cambiado de estado. 4 Clear to send. Preparado para enviar 5 Data set ready. Equipo dispuesto 6 Ring indicator. Se¤al de llamada 7 Receive line signal detected. Cuando cmodo es igual a 2, bioscom() realiza una lectura del puerto y devuelve el byte leido. biosdisk() Sintaxis: int biosdisk(int cmd, int disco, int cara, int pista, int sector, int nsects, void *buffer); Declarado: bios.h Funci¢n: Utiliza la interrupci¢n 0x13 de la BIOS para operaciones de disco. disco es el n£mero de disco utilizado: 0 para la disquetera 1, 1 para la segunda, etc... Para discos duros, el valor de disco ser  0x80 para el primero, 0x81 para el segundo, etc... cmd que operaci¢n se va a efectuar Todas las operaciones ignoran la estructura l¢gica de ficheros y directorios. Solo emplea sectores y pistas. biosequip() Sintaxis: int biosequip(void); Declarado: bios.h Funci¢n: Devuelve un entero comunicando el equipamiento del sistema, que bit a bit informan de la forma siguiente: bits 14-15 N§ de impresoras en paralelo. bit 13 impresora serie conectada. Solo PCjr bit 12 E/S para juegos conectado, no usado en AT bit 9-11 N§ de puertos de serie. bit 8 0 = si DMA. 1 = no DMA bit 6-7 N§ de discos. bit 5-4 Modo de video inicial. 00=sin usar, 01=40x25, 10=80x25 tarjeta color, 11=80x25 tarjeta mono. bit 2-3 RAM en bloques de 16K. bit 1 coprocesador matem tico. bit 0 unidad de disco. bioskey() Sintaxis: int bioskey(int cmdo); Declarado: bios.h Funci¢n: Nos proporciona varias rutinas de teclado por medio de la interrupci¢n 0x16 de la BIOS. El par metro cmdo determina la operaci¢n exacta, si es 0, espera a que se pulse una tecla y devuelve un valor de 2 bytes, el byte bajo contiene el valor ASCII de la tecla, si es 0 indica que es una tecla de control, en este caso el byte alto contiene un valor que indica que tecla es. Si cmdo vale 1 la funci¢n revisa si se ha pulsado alguna tecla, devolviendo 0 si no se ha pulsado ninguna y un valor diferente de cero en caso contrario. Si cmdo vale 2 la funci¢n devuelve en el byte bajo un valor representando el estado de algunas teclas. El c¢digo es el siguiente: ÉÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º BIT ³ SIGNIFICADO º ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 0 ³ Pulsada la tecla Shift derecha º º 1 ³ Pulsada la tecla Shift izquierda º º 2 ³ Pulsada la tecla CTRL º º 3 ³ Pulsada la tecla Alt º º 4 ³ SCROLL LOCK activado º º 5 ³ NUM LOCK activado º º 6 ³ CAPS LOCK activado º º 7 ³ Tecla INSERT activada º ÈÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ biodmemory() Sintaxis: int biosmemory(void); Declarado: bios.h Funci¢n: Devuelve el tama¤o de memoria en K. biosprint() Sintaxis: int biosprint(int cmdo, int byte, int port) Declarado: bios.h Funci¢n: Imprime utilizando los servicios BIOS. Si el argumento port es 0, se refiere a LPT1, si es 1 a LPT2, etc. Los valores de cmdo indican el tipo de funci¢n a realizar. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º ARGUMENTO ³ º º cmdo ³ SIGNIFICADO º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 0 ³ escribir byte º º 1 ³ Inicializar el puerto º º 2 ³ Devolver el estado del puerto º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ La funci¢n devuelve el estado del puerto codificado en el byte bajo: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º BIT ³ SIGNIFICADO SI ACTIVADO º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 0 ³ Error de time-out º º 1, 2 ³ Sin usar º º 3 ³ Error de E/S º º 4 ³ Impresora conectada º º 5 ³ Impresora sin papel º º 6 ³ acuse de recibo (ACK) º º 7 ³ Impresora lista para recibir datos º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ biostime() Sintaxis: long biostime(int cmd, long newtime); Declarado: bios.h Funci¢n: Lee o graba la hora del reloj del sistema. Si cmd es igual a 0, devuelve la hora actual, si es igual a 1 graba el valor almacenado en newtime. La hora tanto leida como grabada va especificada en ticks (tick = 18,2 por segundo) LIBRERIAS DE TURBO C - conio.h cgets() Sintaxis: char *cgets(char *str); Declarado: conio.h Funci¢n: Lee una cadena de caracteres de consola almacen ndola en str. clreol() Sintaxis: void clreol(void); Declarado: conio.h Funci¢n: Borra desde la posici¢n actual al final de la l¡nea de la ventana de texto. clrscr() Sintaxis: void clrscr(void); Declarado: conio.h Funci¢n: Borra toda la pantalla de texto y coloca el cursor en la posici¢n (1, 1). cprintf() Sintaxis: Igual que printf Declarado: conio.h Funci¢n: Salidas de texto por pantalla. esta funci¢n es 50 veces m s r pida que printf soportando los atributos de texto. cputs() Sintaxis: int cputs(const char *str) Declarado: conio.h Funci¢n: Escribe la cadena str en la posici¢n actual del cursor respetando los colores en curso. cscanf() Sintaxis: int cscan(char *formato[, direcci¢n, ...]); Declarado: conio.h Funci¢n: Coge entradas formateadas desde consola. delline() Sintaxis: void delline(void); Declarado: conio.h Funci¢n: Borra la l¡nea de la ventana de texto en la que actualmente se encuentra el cursor. getch() Sintaxis: int getch(void); Declarado: conio.h Funci¢n: Lee un car cter desde el teclado sin visualizarlo. getche() Sintaxis: int getche(void); Declarado: conio.h Funci¢n: Lee un car cter desde teclado mandando eco a pantalla. getpass() Sintaxis: char *getpass(const char *prompt); Declarado: conio.h Funci¢n: Lee un password desde la consola sin hacer eco. gettext() Sintaxis: int gettext(int izda, int sup, int dcha, int abaj, void *destin); Declarado: conio.h Funci¢n: Copia de la pantalla de texto, el texto comprendido entre las coordenadas dadas y lo graba en destin. gettextinfo() Sintaxis: void gettextinfo(struct text_info *r); Declarado: conio.h Funci¢n: Carga en la estructura r de tipo text_info, informaci¢n en torno al modo texto actual. La estructura es como sigue: struct text_info { unsigned char winleft; /* coord. izda de ventana*/ unsigned char wintop; /* " supe " " */ unsigned char winright; /* coord. dcha de ventana*/ unsigned char winbottom; /* " supe " " */ unsigned char attribute; /* atributo del texto */ unsigned char nomattr; /* atributo normal */ unsigned char currmode; /* BW40, BW80, C40 o C80 */ unsigned char screenheight; /* abajo - arriba */ unsigned char screenwidth; /* dcha - izda */ unsigned char curx; /* coord. x en la ventana actual */ unsigned char cury; /* " y " " " " */ }; gotoxy() Sintaxis: void goto(int x, int y); Declarado: conio.h Funci¢n: Mueve el cursor a la posici¢n especificada por (x, y) de la actual ventana de texto. La esquina superior izda es la (1, 1). highvideo() Sintaxis: void highvideo(void); Declarado: conio.h Funci¢n: Aumenta la intensidad del texto que salga por pantalla a partir de llamar a la funci¢n. insline() Sintaxis: void insline(void); Declarado: conio.h Funci¢n: Inserta una l¡nea en blanco en la posici¢n actual del cursor en la ventana de texto. kbhit() Sintaxis: int kbhit(void); Declarado: conio.h Funci¢n: Chequea el teclado buscando el car cter correspondiente a la tecla m s recientemente pulsada. Esta funci¢n devuelve un valor distinto de 0 si se ha pulsado una tecla, sino devuelve un 0. lowvideo() Sintaxis: void lowvideo(void); Declarado: conio.h Funci¢n: Hace que la siguiente salida en pantalla sea en baja intensidad. movetext() Sintaxis: int movetext(int izda, int sup, int dcha, int inf, int nuevaizda, int nuevoinf); Declarado: conio.h Funci¢n: Mueve el texto incluido entre izda, sup, dcha, inf coloc ndolo en otra parte de la pantalla cuyo v‚rtice inferior izquierdo viene dado por nuevaizda, nuevoinf. normvideo() Sintaxis: void normvideo(void); Declarado: conio.h Funci¢n: Pone el atributo de texto en modo normal. putch() Sintaxis: int putch(int c); Declarado: conio.h Funci¢n: Escribe el car cter c en pantalla putchar() Sintaxis: int putchar(int c); Declarado: conio.h Funci¢n: Escribe el car cter c en stdout. puttext() Sintaxis: int puttext(int izda, int sup, int dcha, int abajo, void *fuente); Declarado: conio.h Funci¢n: Recupera un texto que est  en memoria en el  rea apuntado por fuente sac ndolo en pantalla en las coordenadas izda, sup, dcha, abajo. textattr() Sintaxis: void textattr(int nueatri); Declarado: conio.h Funci¢n: Establece el atributo de texto. nueatri es un valor en el cual los bits 0 al 2 especifican el color del primer plano, el bit 3 especifica la intensidad, los bits 4 al 6 especifican el fondo y el bit 7 especifica el modo de parpadeo de la forma siguiente: ÚÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄ¿ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ R ³ G ³ B ³ ³ R ³ G ³ B ³ ÀÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÙ bits 7 6 5 4 3 2 1 0 Si bit 7 = 0 entonces normal, si 1 entonces parpadeo. Si bit 3 = 0 entonces normal, si 1 entonces brillante. Colores de primer plano y de fondo: 000 = negro 001 = azul 010 = verde 011 = cian 100 = rojo 101 = magenta 110 = marr¢n 111 = blanco textbackground() Sintaxis: void textbackground(int nuecolor); Declarado: conio.h Funci¢n: Establece el color de fondo de texto mostrado a trav‚s de cprintf, cputs y putch. Con esta funci¢n se puede utilizar cualquiera de los colores de baja intensidad pero no los de alta intensidad o el parpadeo, los colores disponibles son: 0 = BLACK 1 = BLUE 2 = GREEN 3 = CYAN 4 = RED 5 = MAGENTA 6 = BROWN 7 = LIGTGRAY textcolor() Sintaxis: void textcolor(int nuecolor); Declarado: conio.h Funci¢n: Establece el color del primer plano o los bits del primer plano del byte atributo de pantalla. El argumento nuecolor puede ser un valor num‚rico o una constante simb¢lica como sigue: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Baja intensidad ³ Alta intensidad º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 0 = BLACK ³ 8 = DARKGRAY º º 1 = BLUE ³ 9 = LIGHTBLUE º º 2 = GREEN ³ 10 = LIGHTGREEN º º 3 = CYAN ³ 11 = LIGHTCYAN º º 4 = RED ³ 12 = LIGHTRED º º 5 = MAGENTA ³ 13 = LIGHTMAGENTA º º 6 = BROWN ³ 14 = YELLOW º º 7 = LIGTGRAY ³ 15 = WHITE º º ³ 128 = BLINK º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ textmode() Sintaxis: void textmode(int nuevomodo); Declarado: conio.h Funci¢n: Pone la pantalla en modo de texto. el par metro nuevomodo puede ser: ÉÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º LASTMODE ³ -1 ³ Modo de texto anterior º º BW40 ³ 0 ³ Blanco y negro 40 columnasº º C40 ³ 1 ³ Color, 40 columnas º º BW80 ³ 2 ³ Blanco y negro 80 columnasº º C80 ³ 3 ³ Color, 80 columnas º º MONO ³ 7 ³ Monocromo, 80 columnas º º ³ ³ º ÈÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ungetch() Sintaxis: int ungetch(int ch); Declarado: conio.h Funci¢n: Devuelve a la memoria intermedia de la consola, el £ltimo car cter le¡do, haciendo que este car cter sea el pr¢ximo car cter a leer. Devuelve el car cter ch si existe. Si el valor devuelto es EOF, es que ha ocurrido un error. wherex() Sintaxis: int wherex(void); Declarado: conio.h Funci¢n: Devuelve en un valor entero la posici¢n horizontal actual del cursor. wherey() Sintaxis: int wherey(void); Declarado: conio.h Funci¢n: Devuelve en un valor entero la posici¢n vertical actual del cursor. window() Sintaxis: void window(int izda, int sup, int dcha, int inf); Declarado: conio.h Funci¢n: Define una ventana de texto donde los cuatro argumentos especifican los l¡mites de la fila y columna del rect ngulo de la ventana de la pantalla de texto. Una vez que se ha especificado una ventana de texto mediante window, las funciones de manipulaci¢n de texto (para mostrar en pantalla, mover en pantalla, borrar o insertar texto, etc.) usan £nicamente la ventana y no toda la pantalla. LIBRERIAS DE TURBO C - ctype.h isalnum() Sintaxis: int isalnum(int c); Declarado: ctype.h Funci¢n: Mira si c es un car cter 'A -Z', 'a - z' o '1 - 9', devolviendo un 0 en caso contrario. isalpha() Sintaxis: int isalpha(int c); Declarado: ctype.h Funci¢n: Mira si c es un car cter 'A -Z', 'a - z', devolviendo un 0 en caso contrario. isascii() Sintaxis: int isascii(int c); Declarado: ctype.h Funci¢n: Mira si c es un car cter comprendido entre 0 y 127, devolviendo un 0 en caso contrario. iscntrl() Sintaxis: int iscntrl(int c); Declarado: ctype.h Funci¢n: Comprueba si c es un car cter de control (0 - 31 y 127) devolviendo un 0 en caso contrario. isdigit() Sintaxis: int isdigit(int c); Declarado: ctype.h Funci¢n: Mira si c es un d¡gito '1 - 9', devolviendo un 0 en caso contrario. isgraph() Sintaxis: int isgraph(int c); Declarado: ctype.h Funci¢n: Comprueba si c es un car cter escribible, exceptuando el espacio (33 - 126), devolviendo un 0 en caso contrario. islower() Sintaxis: int islower(int c); Declarado: ctype.h Funci¢n: Comprueba si c es una letra min£scula, devolviendo un 0 en caso contrario. isprint() Sintaxis: int isprint(int c); Declarado: ctype.h Funci¢n: Comprueba si c es un car cter escribible (32 - 126), devolviendo un 0 en caso contrario. ispunct() Sintaxis: int ispunct(int c); Declarado: ctype.h Funci¢n: Comprueba si c es un car cter de puntuaci¢n, devolviendo un 0 en caso contrario. isspace() Sintaxis: int isspace(int c); Declarado: ctype.h Funci¢n: Comprueba si c es un car cter espacio en blanco (9 - 13 o 32), devolviendo un 0 en caso contrario. isupper() Sintaxis: int isupper(int c); Declarado: ctype.h Funci¢n: Comprueba si c es una letra may£scula, devolviendo un 0 en caso contrario. isxdigit() Sintaxis: int isxdigit(int c); Declarado: ctype.h Funci¢n: Comprueba si c es un d¡gito hexadecimal, devolviendo un 0 en caso contrario. toascii() Sintaxis: int toascii(int c); Declarado: ctype.h Funci¢n: Pone todos los bits de c excepto los 7 bits de menor orden a 0. Esto es convierte c en un car cter ASCII. _tolower() Sintaxis: int _tolower(int c); Declarado: ctype.h Funci¢n: Es una macro que convierte c en min£scula si es may£scula. tolower() Sintaxis: int _tolower(int c); Declarado: ctype.h Funci¢n: Es una funci¢n que convierte c en min£scula si es may£scula. _toupper() Sintaxis: int _toupper(int c); Declarado: ctype.h Funci¢n: Es una macro que convierte c en may£scula si es min£scula. toupper() Sintaxis: int _toupper(int c); Declarado: ctype.h Funci¢n: Es una funci¢n que convierte c en may£scula si es min£scula. LIBRERIAS DE TURBO C - dir.h chdir() Sintaxis: int chdir(const char *path); Declarado: dir.h Funci¢n: Cambia de directorio al especificado por path. Si todo va bien, esta funci¢n devuelve 0, en caso contrario devuelve -1. findfirst() Sintaxis: #include #include int findfirst(const char *path, struct ffblk *ffblk, int atri); Declarado: dir.h Funci¢n: Busca en un directorio del disco. path es una cadena opcional que indica el disco y directorio y ficheros, pudiendo incluir comodines. Si los ficheros son encontrados, la estructura ffblk es rellenada con la informaci¢n correspondiente. La estructura ffblk es como sigue: struct ffblk { char ff_reserved[2]; /* reservado para el DOS */ char ff_attrib; /* atributo */ char ff_time; /* hora del fichero */ char ff_date; /* fecha del fichero */ char ff_fsize; /* tama¤o fichero */ char ff_name[13] /* nombre del fichero */ }; atrib es un atributo del DOS, y puede ser uno de los siguientes que est n declarados en dos.h: FA_RDONLY archivo solo lectura. FA_HIDDEN " oculto FA_SYSTEM " sistema FA_LABEL etiqueta de volumen FA_DIREC directorio FA_ARCH archivo findnext() Sintaxis: int findnext(struct ffblk *ffblk); Declarado: dir.h Funci¢n: Continua la b£squeda de findfirst. Esta funci¢n y la anterior devuelven 0 si no hay errores, de lo contrario devuelven -1. En este £ltimo caso, se asigna a errno el valor ENOENT (nombre de fichero no encontrado) 0 ENMFILE (no hay m s ficheros en el directorio). fnmerge() Sintaxis: void fnmerge(char *path, char *disco, char *dir, char *nombre, char *ext); Declarado: dir.h Funci¢n: Forma el nombre de un fichero desde sus componentes. El nuevo path ser : X:\DIR\SUBDIR\NOMBRE.EXT Donde disco = X: dir = \DIR\SUBDIR\ nombre= NOMBRE ext = .EXT fnsplit() Sintaxis: int fnsplit(char *path, char *disco, char *dir, char *nombre, char *ext); Declarado: dir.h Funci¢n: Separa el nombre de un fichero (path) en sus componentes (disco, dir, nombre, ext). Esta funci¢n hace justo lo contrario que la anterior. getcurdir() Sintaxis: int getcurdir(int *drive, char *directorio); Declarado: dir.h Funci¢n: Carga el nombre del directorio actual de trabajo en directorio y el disco en drive. Devuelve -1 en caso de error y 0 en otro caso. getcwd() Sintaxis: char *getcwd(char *path, int buflen); Declarado: dir.h Funci¢n: Obtiene el nombre del directorio actual de trabajo. Copia el nombre de la v¡a de acceso del directorio actual (incluyendo la unidad de disco) dentro de la cadena path, buflen indica el n£mero m ximo de caracteres que el programa permite en el nombre de la v¡a de acceso. getdisk() Sintaxis: int getdisk(void); Declarado: dir.h Funci¢n: Devuelve el n£mero del disco actual (0=A, 1=B, etc) mkdir() Sintaxis: int mkdir(const char *path); Declarado: dir.h Funci¢n: Crea el directorio especificado en path, retornando 0, en caso de error devuelve -1. mktemp() Sintaxis: char *mktemp(char *fnombre); Declarado: dir.h Funci¢n: Genera un nombre de fichero que no existe y lo copia en la cadena se¤alada por fnombre. Cuando se llama a mktemp(), la cadena se¤alada por fnombre debe contener el caracter X repetido seis veces, y al final el caracter nulo. La funci¢n mktemp() transforma esta cadena un un £nico nombre de fichero. Sin embargo no crea el fichero. En caso de ‚xito, devuelve un puntero a fnombre, en caso contrario devuelve un nulo. rmdir() Sintaxis: int rmdir(char *path); Declarado: dir.h Funci¢n: Borra el directorio indicado en path. Funciona igual que la instrucci¢n an loga del DOS. En caso de error devuelve -1, y si la operaci¢n es correcta 0. searchpath() Sintaxis: char *searchpath(char *fichero); Declarado: dir.h Funci¢n: Intenta localizar fichero buscando por los subdirectorios indicados en la orden del dos PATH:. Esta funci¢n devuelve un puntero a la cadena del nombre de fichero si este es encontrado o un NULL en caso contrario. setdisk() Sintaxis: int setdisk(int drive); Declarado: dir.h Funci¢n: Selecciona el disco actual con el valor dado por drive: 0 para A, 1 para B, 2 para C, etc... Esta funci¢n devuelve el numero total de discos disponibles. LIBRERIAS DE TURBO C - dos.h absread() Sintaxis: int absread(int d, int ns, int ls, void *buffer); Declarado: dos.h Funci¢n: Lee sectores espec¡ficos de disco. Ignora la estructura l¢gica del disco no prestando atenci¢n a ficheros, FATs o directorios. La lectura la hace v¡a interrupci¢n Ox25. d = N£mero de disco a leer (0=A, 1=B, etc.) ns = N£mero de sectores a leer. ls = N£mero de sector l¢gico de comienzo. buffer = Direcci¢n de memoria donde se almacenan los datos le¡dos Si no hay error esta funci¢n devuelve 0, en caso contrario devuelve -1 y coloca en errno el valor del registro AX. abswrite() Sintaxis: int abswrite(int d, int ns, int ls, void *buffer); Declarado: dos.h Funci¢n: Esta funci¢n es id‚ntica a la anterior hasta en los valores que devuelve, solo que en lugar de leer del disco, escribe en ‚l. allocmem() Sintaxis: int allocmem(unsigned tama¤o, unsigned *seg); Declarado: dos.h Funci¢n: Realiza una llamada al DOS con la interrupci¢n 0x48 para reservar un bloque de memoria. El bloque se ajusta por p rrafos de 16 byts. La funci¢n asigna la direcci¢n del segmento donde est  el bloque en el entero apuntado por seg. El argumento tama¤o especifica el n£mero de p rrafos que se asignan. Si se puede asignar la memoria solicitada, la funci¢n devuelve un -1. Si no hay suficiente memoria libre, no se asigna ningun valor a la variable apunatada por seg, y la funci¢n devuelve el tama¤o del mayor bloque libre. bdos() Sintaxis: int bdos(int dosfun, unsigned dosdx, unsigned dosal) Declarado: dos.h Funci¢n: Esta funci¢n llama al DOS para ejecutar la rutina especificada por dosfun, despu‚s de copiar los valores dosdx y dosal en los registros DX y AL. Para efectuar la llamada esta funci¢n ejecuta la instrucci¢n INT 21H. bdosptr() Sintaxis: int bdosptr(int dosfun, void *argument, unsigned dosal); Declarado: dos.h Funci¢n: Esta funci¢n permite acceso a diversas rutinas del DOS, estas rutinas del sistema requieren un puntero a un argumento utilizado. dosfun en el Manual de Referencia del DOS. En el modelo small el par metro argument ir  en DX, en los modelos largos ir  en DS:DX. En caso exitoso la funci¢n devolver  un valor en AX. En caso de error devolver  -1. country() Sintaxis: struct country *country(int c¢digo, struct country *ptr); Declarado: dos.h Funci¢n: Asigna valores a ciertos par metros concernientes a un pa¡s. Devuelve un puntero a la estructura country que se pasa como argumento. La estructura contiene la siguiente informaci¢n: struct country { int co_date; /* formato de fecha */ char co_curr[5]; /* s¡mbolo de la moneda */ char co_thsep[2]; /* separador de miles */ char co_desep[2]; /* separador de decimales */ char co_dtsep[2]; /* separador de fecha */ char co_tmsep[2]; /* separador de hora */ char co_currstyle; /* formato de moneda */ char co_digits; /* d¡gitos significativos en moneda */ int(far *co_case)() /* funci¢n de casos */ char co_dasep; /* separador de datos */ char co_fill[10]; /* relleno */ }; Si el argumento c¢digo contiene un 0, se asigna la informaci¢n concerniente al pais en la estructura apuntada por ptr. Si c¢digo contiene un valor diferente a 0, la informaci¢n de la estructura apuntada por ptr se convierte en la nueva informaci¢n del pa¡s. El campo co_date indica el formato de la fecha. En EE.UU. se emplea el formato (mes,d¡a,a¤o), asignando a co_date el valor 0. Si co_date contiene un 1, la fecha aparecer  con formato europeo: (dia,mes,a¤o). Si contiene un 2, aparece como (a¤o,mes,d¡a). La forma como aparecen los caracteres de moneda se indican con el campo co_currstyle. Puede tener los siguientes valores: ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º VALOR ³ SIGNIFICADO º ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 0 ³ el s¡mbolo precede al valor º º 1 ³ el s¡mbolo va a continuaci¢n del valor º º 2 ³ precede a valor con espacio de separaci¢nº º 3 ³ despues de valor con espacio de separaci¢º ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ctrlbrk() Sintaxis: void ctrlbrk(int (*funci¢n)(void)); Declarado: dos.h Funci¢n: Cuando se pulsa Ctrl+Break se ejecutar  funci¢n. Esta funci¢n interviene la interrupci¢n 0x23 desviando su llamada a funci¢n. Cuando el programa termina Turbo C devuelve el handler original del DOS. delay() Sintaxis: void delay(unsigned milisegundos); Declarado: dos.h Funci¢n: Esta funci¢n suspende la ejecuci¢n del programa durante el intervalo especificado en milisegundos. disable() Sintaxis: void disable(void); Declarado: dos.h Funci¢n: Desautoriza las interrupciones, a excepci¢n de las no enmascarables (NMI). dosexterr() Sintaxis: int dosexterr(atruct DOSERROR *eblkp); Declarado: dos.h Funci¢n: Esta funci¢n llena la estructura DOSERROR apuntada por eblkp con informaci¢n en torno al error producido despu‚s la utilizaci¢n de la £ltima funci¢n del DOS. La estructura es de la forma siguiente: struct DOSERROR { int exterror; /* c¢digo de error */ char class; /* tipo de error */ char action; /* acci¢n recomendada */ char locus; /* lugar donde ocurri¢ el error }; Esta funci¢n retorna el valor de exterror. dostounix() Sintaxis: long dostounix(struct date *d, struct time *t); Declarado: dos.h Funci¢n: Devuelve la fecha y hora dada por getdate y gettime en formato UNIX. d apunta a una estructura de tipo date y t a una de tipo time conteniendo informaci¢n en torno a una fecha y hora v lida de DOS. El formato ANSI de la fecha es el mismo que el de UNIX. __emit__() Sintaxis: void __emit__(argumento, ...); Declarado: dos.h Funci¢n: Inserta valores literales en el c¢digo objeto. Es utilizado para introducir c¢digo m quina. enable() Sintaxis: void enable(void); Declarado: dos.h Funci¢n: Habilita las interrupciones de hardware. FP_OFF() Sintaxis: unsigned FP_OFF(puntfar); Declarado: dos.h Funci¢n: FP_OFF es una macro que se utiliza para obtener el desplazamiento del puntero far puntfar. FP_SEG() Sintaxis: unsigned FP_SEG(puntfar); Declarado: dos.h Funci¢n: Es una macro que devuelve el segmento del puntero far puntfar. freemem() Sintaxis: int freemem(unsigned segx); Declarado: dos.h Funci¢n: Libera un bloque de memoria previamente asignado con allocmem. segx es la direcci¢n del segmento del bloque. geninterrupt() Sintaxis: void geninterrupt(int intr_num); Declarado: dos.h Funci¢n: Llama a la interrupci¢n intr_num. El estado de los registros despu‚s de la llamada dependen de la interrupci¢n. getcbrk() Sintaxis: int getcbrk(void); Declarado: dos.h Funci¢n: Indica el tipo de revisi¢n de la secuencia CTRL+BRK. Devuelve 0 si el control es s¢lo en la Entrada/Salida y 1 si es en cada llamada a una funci¢n del DOS. Este par metro se puede definir en la l¡nea de ordenes del DOS, con la opci¢n BREAK. getdate() Sintaxis: void getdate(struct date *datep); Declarado: dos.h Funci¢n: Rellena la estructura de tipo date apuntada por datep con el actual sistema de fecha. El tipo de estructura date es como sigue: struct date { int da_year; /* a¤o actual */ char da_day; /* d¡a del mes */ char da_mon; /* mes (1= Enero) */ getdfree() Sintaxis: void getdfree(unsigned char disco, struct dfree *dtable); Declarado: dos.h Funci¢n: Chequea el disco indicado en disco (0=actual, 1=A, etc..) rellenando la estructura dtable de tipo dfree, que es como sigue: struct dfree { unsigned df_avail; /* clusters libres */ unsigned df_total; /* total clusters */ unsigned df_bsec; /* bytes por sector */ unsigned df_sclus; /* sectores por cluster */ }; getdta() Sintaxis: char *far getdta(void); Declarado: dos.h Funci¢n: Devuelve la un puntero far al DTA del disco (disk transfer address). getfat() Sintaxis: void getfat(unsigned char disco, struct fatinfo *dtabla); Declarado: dos.h Funci¢n: Carga informaci¢n de la FAT del disco especificado (0=actual, 1=A, etc) en la estructura dtabla de tipo fatinfo que es del siguiente formato: struct fatinfo { char fi_sclus; /* sectores por cluster */ char fi_fatid; /* FAT en bytes */ int fi_nclus; /* n£mero de clusters */ int fi_bysec; /* bytes por sector */ }; getfatd() Sintaxis: void getfatd(struct fatinfo *dtabla); Declarado: dos.h Funci¢n: Esta funci¢n es identica a la anterior solo se diferencia en que la estructura es rellenada con el disco actual. getpsp() Sintaxis: unsigned getpsp(void); Declarado: dos.h Funci¢n: Devuelve la direcci¢n del PSP (Prefijo del Segmento de Programa). gettime() Sintaxis: void gettime(struct time *timep); Declarado: dos.h Funci¢n: Carga en la estructura timep de tipo time informaci¢n en torno a la hora actual. La estructura es como sigue: struct time { unsigned char ti_min; /* minutos */ unsigned char ti_hour; /* horas */ unsigned char ti_hund; /* cent‚s. de seg. */ unsigned char ti_sec; /* segundos */ }; getvect() Sintaxis: void interrupt(*getvect(int interrupno))(); Declarado: dos.h Funci¢n: La funci¢n getvect lee el valor del vector de interrupci¢n dado por interrupno y devuelve un puntero far a la interrupci¢n. getverify() Sintaxis: int getverify(void); Declarado: dos.h Funci¢n: Devuelve el estado actual de verificaci¢n de flags 0 para off y 1 para on. harderr() Sintaxis: void harderr(int (*handler)()); Declarado: dos.h Funci¢n: Reemplaza el handler de errores del DOS por uno definido por el programador. El argumento es la nueva funci¢n que se invocar  cada vez que se produzca una interrupci¢n 0x24. Esta funci¢n debe tener el siguiente prototipo: funci¢n(int errno, int ax, int bp, int si); donde: errno Es el c¢digo de errores del DOS. ax,bp,si Contienen los valores de los registros de su mismo nombre. Si ax es mayor o igual que cero, indica un error de disco. Si esto ocurre, se puede realizar la operaci¢n AND con ax y 0xFF para conocer que disco di¢ el error. El resultado ser  1 para A:, 2 para B:, etc. Si ax es negativo, indica un error fatal de dispositivo. Se debe consultar el manual de errores del DOS. Hay que tener en cuenta que la rutina de interrupci¢n no puede emplear funciones de E/S de la librer¡a, pues esta no es reentrante, y solo se puede utilizar ciertas llamadas al DOS, las n£meros 1 al 12. La rutina de interrupci¢n termina con una llamada a la funci¢n hardresume(), o a hardretn(), devolviendo un c¢digo. Este c¢digo ser  0 para ignorar, 1 para repetir y 2 para abortar el proceso que gener¢ el error hardresume() Sintaxis: void hardresume(int axret); Declarado: dos.h Funci¢n: El indicador de error establecido por harderr puede llamar a hardresume para volver al DOS. hardretn() Sintaxis: void hardretn(int retn); Declarado: dos.h Funci¢n: El indicador de error establecido con por harderr puede ser devuelto directamente al programa llamando a hardretn. inport() Sintaxis: int inport(int portid); Declarado: dos.h Funci¢n: Lee una palabra del puerto especificado por portid. inportb() Sintaxis: int inportb(int portid); Declarado: dos.h Funci¢n: Lee un byte del puerto especificado por portid. int86() Sintaxis: int int86(int n_int, union REGS *in_regs, union REGS *out_regs); Declarado: dos.h Funci¢n: Es utilizada para llamar directamente a la interrupci¢n n_int del DOS, para ello primero copia el contenido de in_regs en los registros correspondientes, y despu‚s de ejecutarse la interrupci¢n, copia los registros en out_regs. No utilizar esta funci¢n para interrupciones que modifiquen el registro DS, en su lugar utilizar int86x o intdosx. int86x() Sintaxis: int int86(int n_int, union REGS *in_regs, union REGS *out_regs, struct SREGS *regs_seg); Declarado: dos.h Funci¢n: Ejecuta la interrupci¢n especificada por n_int, para ello primero copia el contenido de in_regs y de regs_seg en los registros correspondientes solo, de regs_seg son utilizados los valores de los registros DS y ES , y despu‚s de ejecutarse la interrupci¢n, copia los registros en out_regs y los valores actuales de DS y ES, restaurando DS. Esta funci¢n devuelve el contenido del registro AX. intdos() Sintaxis: int intdos(union REGS *in_regs, union REGS *out_regs); Declarado: dos.h Funci¢n: Llama a la rutina del DOS especificada por los valores de los registros de in_regs. Para efectuar la llamada, esta funci¢n ejecuta la instrucci¢n INT 21. intdosx() Sintaxis: int intdos(union REGS *in_regs, union REGS *out_regs, struct SREGS *regs_seg); Declarado: dos.h Funci¢n: Llama a la rutina del DOS especificada por los valores de los registros de in_regs. Para efectuar la llamada, esta funci¢n ejecuta la instrucci¢n INT 21. Antes de ejecutarse la interrupci¢n, esta funci¢n copia el contenido de in_regs y de regs_seg en los registros correspondientes. intr() Sintaxis: void intr(int intno, struct REGPACK *preg); Declarado: dos.h Funci¢n: Esta funci¢n es un interface alternativo para ejecutar software de interrupciones, llamando a la interrupci¢n intno. preg es la direcci¢n de una estructura que contiene: a) Los registros antes de la llamada. b) El valor de los registros despu‚s de la llamada. La estructura REGPACK es como sigue: struct REGPACK { unsigned r_ax, r_bx, r_cx, r_dx; unsigned r_bp, r_si, r_di, r_ds, r_es, r_flags; }; keep() Sintaxis: void keep(unsigned char estado, unsigned size); Declarado: dos.h Funci¢n: Sale al DOS y queda residente, poniendo el estado de salida en estado. El tama¤o del programa (size) se pone en p rrafos. El estado se interpreta desde el DOS, o desde el proceso que invoc¢ el programa. El DOS reserva el espacio solicitado comenzando a partir de la direcci¢n del PSP. MK_FP() Sintaxis: void far *MK_FP(unsigned seg, unsigned ofs); Declarado: dos.h Funci¢n: Es un macro que devuelve un puntero far mediante los valores seg y ofs. nosound() Sintaxis: void nosound(void); Declarado: dos.h Funci¢n: Pone el altavoz del PC en off. outport() Sintaxis: void outport(int portid, int valor); Declarado: dos.h Funci¢n: Manda la palabra valor por el puerto identificado por portid. outportb() Sintaxis: void outportb(int portid, unsigned char valor); Declarado: dos.h Funci¢n: Manda el byte valor por el puerto identificado por portid. parsfnm() Sintaxis: char *parsfnm(char *nombref, struct fcb *fcbptr, int opcion); Declarado: dos.h Funci¢n: Convierte un nombre de fichero en forma de cadena de caracteres al formato requerido por el bloque de control de ficheros (FCB). Una vez convertido, lo almacena en la estructura fcb apuntada por el argumento fcbptr. Esta funci¢n se emplea para asignar un valor al registro AL antes de la llamada. La funci¢n devuelve un puntero al siguiente byte despu‚s del nombre del fichero. Si hay errores, devuelve un puntero nulo. La estructura fcb tiene la siguiente forma: struct fcb { char fcb_drive; 0= por defecto, 1=A, 2=B, etc char fcb_name[8]; Nombre del fichero char fcb_ext[3]; Extensi¢n del fichero short fcb_curblk; N§ de bloque en curso short fcb_recsize; Tama¤o de registro l¢gico long fcb_filsize; Tama¤o del fichero; short fcb_date; Fecha de £ltima escritura char fcb_resv[10]; Reservado para DOS char fcb_currec; Registro en curso long fcb_random; N§ de registro aleatorio }; peek() Sintaxis: int peek(unsigned segment, unsigned despl); Declarado: dos.h Funci¢n: Devuelve la palabra cuya localizaci¢n en memoria es segment:despl. peekb() Sintaxis: int peekb(unsigned segment, unsigned despl); Declarado: dos.h Funci¢n: Devuelve byte cuya localizaci¢n en memoria es segment:despl. poke() Sintaxis: void poke(unsigned segment, unsigned despl, int valor); Declarado: dos.h Funci¢n: Almacena el entero valor en la localizaci¢n de memoria segment:despl. pokeb() Sintaxis: void poke(unsigned segment, unsigned despl, char valor); Declarado: dos.h Funci¢n: Almacena el byte valor en la localizaci¢n de memoria segment:despl. randbrd() Sintaxis: int randbrd(struct fcb *fcbptr, int n); Declarado: dos.h Funci¢n: Lee n registros desde el DTA (Direcci¢n de transferencia de datos del disco). Los registros leidos se almacenan en las estructuras de tipo fcb, apuntadas por el argumento fcbptr. La estructura fcb tiene la siguiente forma: struct fcb { char fcb_drive; 0= por defecto, 1=A, 2=B, etc char fcb_name[8]; Nombre del fichero char fcb_ext[3]; Extensi¢n del fichero short fcb_curblk; N§ de bloque en curso short fcb_recsize; Tama¤o de registro l¢gico long fcb_filsize; Tama¤o del fichero; short fcb_date; Fecha de £ltima escritura char fcb_resv[10]; Reservado para DOS char fcb_currec; Registro en curso long fcb_random; N§ de registro aleatorio }; La funci¢n randbrd() emplea la funci¢n 0x27 del DOS para leer los registros. Puede devolver los valores siguientes: 0 No hubo errores. 1 Encontrado un EOF pero el £ltimo registro est  completo. 2 Demasiados registros. 3 Encontrado EOF y el £ltimo registro est  incompleto randbwr() Sintaxis: int randbwr(struct fcb *fcbptr, int n); Declarado: dos.h Funci¢n: Es similar a la funci¢n anterior. Emplea la funci¢n 0x28 del DOS para escribir los registros de tipo fcb apuntados por fcbptr segread() Sintaxis: void segread(struct SREGS *regs_reg); Declarado: dos.h Funci¢n: Copia en una estructura de tipo SREGS apuntada por regs_seg, el contenido de los registros de segmento. La estructura es como sigue: struct SREGS { unsigned int es; unsigned int cs; unsigned int ss; unsigned int ds; }; setblock() Sintaxis: int setblock(unsigned segx, unsigned tama¤o); Declarado: dos.h Funci¢n: Modifica el tama¤o de un bloque previamente asignado mediante allocmmem. El bloque es segx, y el nuevo tama¤o es tama¤o. setcbrk() Sintaxis: int setcbrk(int valor); Declarado: dos.h Funci¢n: Activa o desactiva la funci¢n de Ctrl+Break. Si valor es 0 lo pone en off, si es 1 en on. setdate() Sintaxis: void setdate(struct date *fecha); Declarado: dos.h Funci¢n: Carga la fecha del DOS en la estructura de tipo date fecha. La estructura es como sigue: struct date { int da_year; char da_day; char da_mon; }; setdta() Sintaxis: void setdta(char far *dta); Declarado: dos.h Funci¢n: Cambia la actual selecci¢n del disco del DOS trasfiri‚ndolo a la direcci¢n (DTA) del valor dado por dta. settime() Sintaxis: void settime(struct time *timep); Declarado: dos.h Funci¢n: Selecciona la hora del sistema en la estructura timep de tipo time, que es como sigue: struct time { unsigned char ti_min; unsigned char ti_hour; unsigned char ti_hund; /*cent‚simas de seg*/ unsigned char ti_sec; }; setvect() Sintaxis: void setvect(int inter, void interrupt (*isr)()); Declarado: dos.h Funci¢n: Almacena la direcci¢n de la rutina de interrupci¢n isr en la tabla de vectores de interrupci¢n. La posici¢n viene indicada por intr setverify() Sintaxis: void setverify(int valor); Declarado: dos.h Funci¢n: Selecciona la verificaci¢n de escritura en disco. Si valor = 0, la verificaci¢n est  en off, si valor = 1 est  en on. sleep() Sintaxis: void sleep(unsigned segundos); Declarado: dos.h Funci¢n: Suspende la ejecuci¢n durante un intervalo de segundos especificado en segundos. sound() Sintaxis: void sound(unsigned frecuencia); Declarado: dos.h Funci¢n: Pone el altavoz sonando. frecuencia es un valor entero perteneciente a un tono (frecuencia) en hercios. El tono empieza cuando el programa llama a sound, contin£a mientras la CPU ejecuta otro c¢digo y termina solo cuando el programa llama a nosound. unixtodos() Sintaxis: void unixtodos(long time, struct date *d, struct time *t); Declarado: dos.h Funci¢n: Convierte el formato UNIX dado en time en formato DOS y llena las estructuras de tipo date y time apuntadas por d y t. unlink() Sintaxis: int unlink(const char *path); Declarado: dos.h, io.h, stdio.h Funci¢n: Borra el fichero especificado por path devolviendo 0. un valor -1 indica error. LIBRERIAS DE TURBO C - errno.h Contiene constantes, tipos de datos y variables globales LIBRERIAS DE TURBO C - fcntl.h Contiene los flags de apertura de ficheros o de funciones similares de librer¡a. Estos flags son: O_APPEND O_RDWR O_BINARY O_TEXT O_CREAT O_TRUNC O_EXCL O_WRONLY O_RDONLY LIBRERIAS DE TURBO C - float.h _clear87() Sintaxis: unsigned int _clear87(void); Declarado: float.h Funci¢n: Inicializa la palabra de estado del coprocesador matem tico 8087/80287. _control87() Sintaxis: unsigned int _control87(unsigned int new, unsigned int mask); Declarado: float.h Funci¢n: Carga o descarga el coprocesador. _fpreset() Sintaxis: void _fpreset(void); Declarado: float.h Funci¢n: Esta funci¢n reinicializa el sistema aritm‚tico de punto flotante. Puede ser necesario inicializar las rutinas de punto flotante despu‚s de ejecutar las funciones system(), exec(), spawn() o signal(). _status87() Sintaxis: unsigned int _status87(void); Declarado: float.h Funci¢n: devuelve el valor de la palabra de estado del coprocesador matem tico. LIBRERIAS DE TURBO C - graphics.h arc() Sintaxis: void far arc(int x, int y, int ang1, int ang2, int rad) Declarado: graphics.h Funci¢n: Dibuja un arco circular en el color en curso con centro en (x, y) y radio rad comenzando en ang1 y terminando en ang2. Cero grados ser¡a a las 3 del reloj y 90 grados a las 12. bar() Sintaxis: void far bar(int izda, int arriba, int dcha, int abajo) Declarado: graphics.h, conio,h Funci¢n: Dibuja una barra rectangular de 2 dimensiones. La barra es rellenada utilizando el color de relleno en curso, definido previamente con la funci¢n setfillpattern(). bar3d() Sintaxis: void far bar3d(int izda, int arriba, int dcha, int abajo, int prof, int flag); Declarado: graphics.h Funci¢n: Dibuja una barra tridimensional y la rellena utilizando la paleta de relleno en curso. La profundidad en pixels viene dada por prof. Si flag no es cero el efecto tridimensional es puesto arriba. circle() Sintaxis: void far circle(int x, int y, int radio); Declarado: graphics.h Funci¢n: Dibuja un circulo en el color actual, con centro en (x, y) y de radio. cleardevice() Sintaxis: void far cleardevice(void); Declarado: graphics.h Funci¢n: Esta funci¢n borra toda la pantalla gr fica, y deja la posici¢n actual en (0, 0). clearviewport() Sintaxis: void far clearviewport(void); Declarado: graphics.h Funci¢n: Limpia la ventana de dibujo en curso dej ndola del color de fondo. La ventana deja de existir despues de la ejecuci¢n de esta funci¢n. closegraph() Sintaxis: void far closegraph(void); Declarado: graphics.h Funci¢n: Restaura el modo que tenia la pantalla antes de ejecutarse initgraph(). Desactiva el entorno gr fico del DOS. detectgraph() Sintaxis: void far detectgraph(int far *g_driver, int far g_modo); Declarado: graphics.h Funci¢n: Establece en g_driver el tipo de adaptador gr fico disponible por el ordenador y escoge en g_modo el modo de mayor resoluci¢n gr fica que da el adaptador. Si se detecta que no hay hardware gr fico g_driver es puesto a -2. Valores para g_driver: -------------------------------------------------- Valor figurativo Valor num‚rico -------------------------------------------------- DETECT 0 (ruega autodetecci¢n) CGA 1 MCGA 2 EGA 3 EGA64 4 EGAMONO 5 IBM8514 6 HERCMONO 7 ATT400 8 VGA 9 PC3270 10 -------------------------------------------------- Valores de g_modo: ------------------------------------------------------- Filas x Tarjeta modo Valor Columnas paleta pag. ------------------------------------------------------- CGA CGAC0 0 320x200 C0 1 CGAC1 1 320x200 C1 1 CGAC2 2 320x200 C2 1 CGAC3 3 320x200 C3 1 CGAHI 4 640x200 2 color 1 MCGA MCGAC0 0 320x200 C0 1 MCGAC1 1 320x200 C1 1 MCGAC2 2 320x200 C2 1 MCGAC3 3 320x200 C3 1 MCGAMED 4 640x200 2 color 1 MCGAHI 5 640x200 2 color 1 EGA EGALO 0 640x200 16 color 4 EGAHI 1 640x350 4 color 2 EGA64 EGA64LO 0 640x200 16 color 1 EGA64HI 1 640x350 4 color 1 EGAMONO EGAMONOHI 3 640x350 2 color 1* EGAMONOHI 3 640x350 2 color 2** HERC HERCMONOHI 0 750x348 2 color 2 ATT400 ATT40C0 0 320x200 C0 1 ATT40C1 1 320x200 C1 1 ATT40C2 2 320x200 C2 1 ATT40C3 3 320x200 C3 1 ATT40MED 4 640x200 2 color 1 ATT40HI 5 640x00 2 color 1 VGA VGALO 0 640x200 16 color 2 VGAMED 1 640x350 16 color 2 VGAHI 2 640x480 16 color 1 PC3270 PC3270HI 0 720x350 2 color 1 IBM8514 IBM8514LO 0 640x480 256 color IBM8514HI 0 1024x768 256 color * 64K en tarjeta EGAMONO ** 256k en tarjeta EGAMONO drawpoly() Sintaxis: void far drawpoly(int num_esquinas, int polypoints) Declarado: graphics.h Funci¢n: Dibuja las l¡neas de salida de un pol¡gono, donde el n£mero de esquinas es num_esquinas y las coordenadas x, y de cada esquina est n en el array polypoints. Por ejemplo: int polypoints[] = {160, 50, 140, 80, 180, 80}; drawpoly(3, polypoints); ellipse() Sintaxis void far ellipse(int x, int y, int ang_comi, int ang_fin, int xradio, int yradio); Declarado: graphics.h Funci¢n: Dibuja un arco el¡ptico en la pantalla gr fica con centro en (x, y) comenzando en ang_comi y terminando en ang_fin. Cero grados ser¡a a las 3 del reloj y 90 grados a las 12. xradio es el radio curvatura a lo largo del eje x (horizontal), e yradio es el radio de curvatura a lo largo del eje y (vertical). fillellipse() Sintaxis: void far fillellipse(int x, int y, int radx, int rady); Declarado: graphics.h Funci¢n: Dibuja y rellena con los colores en curso una elipse con centro en x, y y radx y rady como ejes horizontal y vertical. fillpoly() Sintaxis: void far fillpoly(int numpunt, int far *polipoints); Declarado: graphics.h Funci¢n: Dibuja un pol¡gono de numpunt puntos en el estilo de l¡nea actual. poliponints es un array con los pares de coordenadas de cada punto. floodfill() Sintaxis: void far floodfill(int x, int y, int col_bord); Declarado: graphics.h Funci¢n: Rellena la zona en la que est  situado x, y, siendo el color del borde col_bord. El color de relleno est  especificado por el valor actual de setcolor o por la funci¢n setfillstyle. getarccoords() Sintaxis: void far getarccoords(struct arccoordstype far *arccoords); Declarado: graphics.h Funci¢n: Rellena la estructura apuntada por arccoords con informaci¢n de la £ltima llamada a arc. La estructura arccoordstype es como sigue: struct arccoordstype { int x, y; int xstart, ystart, xend, yend; }; Los miembros de esta estructura son utilizados para especificar el centro (x, y), la posici¢n de comienzo (xstart, ystart) y la posici¢n de finalizaci¢n (xend, yend). getaspectratio() Sintaxis: void far getaspectratio(int far *xasp, int far *yasp); Declarado: graphics.h Funci¢n: Hace los ajustes para poder ver por pantalla c¡rculos perfectos. getbkcolor() Sintaxis: int far getbkcolor(void); Declarado: graphics.h Funci¢n: Devuelve el n£mero de color de fondo. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ» º MACROS ³ VALOR º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ º BLACK ³ 0 º º BLUE ³ 1 º º GREEN ³ 2 º º CYAN ³ 3 º º RED ³ 4 º º MAGENTA ³ 5 º º BROWN ³ 6 º º LIGHTGRAY ³ 7 º º DARKGRAY ³ 8 º º LIGHTBLUE ³ 9 º º LIGHTGREEN ³ 10 º º LIGHTCYAN ³ 11 º º LIGHTRED ³ 12 º º LIGHTMAGENTA ³ 13 º º YELLOW ³ 14 º º WHITE ³ 15 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ getcolor() Sintaxis: int far getcolor(void); Declarado: graphics.h Funci¢n: Devuelve el color actual de dibujo. getdefaultpalette() Sintaxis: void far *far getdefaultpalette(void); Declarado: graphics.h Funci¢n: Busca en la estructura palettetype donde est  contenida la paleta devolviendo un puntero a la paleta actual. getdrivername() Sintaxis: char *far getdrivername(void); Declarado: graphics.h Funci¢n: Devuelve un puntero a una cadena que contiene el nombre del drive gr fico actual. getfillpattern() Sintaxis: void far getfillpattern(char far *patron); Declarado: grphics.h Funci¢n: Copia en memoria el patr¢n de relleno definido. patron es un puntero a una secuencia de 8 bits, que corresponden a 8 pixels del patr¢n. getfillsettings() Sintaxis: void far getfillsettings(struct fillsettingstype far *info); Declarado: graphics.h Funci¢n: Asigna a la estructura apuntada por info el n£mero correspondiente al patr¢n de relleno y el color en curso. La estructura tiene la forma: struct fillsettingstype { int pattern; /* patr¢n de relleno actual */ int color; /* color de relleno actual */ }; Los valores que puede tener el patr¢n son los siguientes: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º MACRO ³ VALOR ³ MODO DE RELLENO º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º EMPTY_FILL ³ 0 ³ Color de fondo º º SOLID_FILL ³ 1 ³ Color s¢lido º º LINE_FILL ³ 2 ³ Con lineas º º LTSLASH_FILL ³ 3 ³ Con barras finas º º SLASH_FILL ³ 4 ³ Con barras º º BKSLASH_FILL ³ 5 ³ Con barras invertidas º º LTBKSLASH_FILL ³ 6 ³ Barras invertidas finas º º XHATCH_FILL ³ 8 ³ Rellenar con sombreado º º INTERLEAVE_FILL ³ 9 ³ Rellenar intercalado º º WIDEDOT_FILL ³ 10 ³ Con puntos muy espaciados º º CLOSEDOT_FILL ³ 11 ³ Con puntos agrupados º º USER_FILL ³ 12 ³ Con patr¢n usual º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ getgraphmode() Sintaxis: int far getgraphmode(void); Declarado: graphics.h Funci¢n: Devuelve el modo gr fico actual seleccionado con initgraph o setgraphmode. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º MACRO ³ VALOR ³ RESOLUCION º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º CGAC0 ³ 0 ³ 320 X 200 º º CGAC1 ³ 1 ³ 320 X 200 º º CGAC2 ³ 2 ³ 320 X 200 º º CGAC3 ³ 3 ³ 320 X 200 º º CGAHI ³ 4 ³ 640 X 200 º º MCGAC0 ³ 0 ³ 320 X 200 º º MCGAC1 ³ 1 ³ 320 X 200 º º MCGAC2 ³ 2 ³ 320 X 200 º º MCGAC3 ³ 3 ³ 320 X 200 º º MCGAMED ³ 4 ³ 640 X 200 º º MCGAHI ³ 5 ³ 640 X 200 º º EGALO ³ 0 ³ 640 X 200 º º EGAHI ³ 1 ³ 640 X 350 º º EGA64LO ³ 0 ³ 640 X 200 º º EGA64HI ³ 1 ³ 640 X 350 º º EGAMONOHI ³ 3 ³ 640 X 350 º º HERCMONOHI ³ 0 ³ 720 X 348 º º ATT400C0 ³ 0 ³ 320 X 200 º º ATT400C1 ³ 1 ³ 320 X 200 º º ATT400C2 ³ 2 ³ 320 X 200 º º ATT400C3 ³ 3 ³ 320 X 200 º º ATT400CMED ³ 4 ³ 640 X 200 º º ATT400CHI ³ 5 ³ 640 X 400 º º VGALO ³ 0 ³ 640 X 200 º º VGAMED ³ 1 ³ 640 X 350 º º VGAHI ³ 2 ³ 640 X 480 º º PC3270HI ³ 0 ³ 720 X 350 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ getimage() þSintaxis:þoid far getimage(int izda, int sup, int dcha, int inf, void far *bitmap); Declarado: graphics.h Funci¢n: Copia una imagen rectangular de bits de la pantalla gr fica en un array de elementos unsigned char apuntado por bitmap. getlinesettings() Sintaxis: void far getlinesettings(struct linesettingstype far *info); Declarado: graphics.h Funci¢n: Asigna a la estructura apuntada por info el tipo de linea en curso. La estructura linesettingstyle tiene la forma siguiente: struct linesettingstyle { int linestyle; unsigned upattern; int thickness; }; El campo linestyle indica el estilo de l¡nea. Contiene uno de los siguientes valores: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º VALOR ³ SIGNIFICADO º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º SOLID_LINE ³ L¡nea continua º º DOTTED_LINE ³ L¡nea punteada º º CENTER_LINE ³ L¡nea centrada º º DASHED_LINE ³ Guiones º º USERBIT_LINE ³ Definida por el usuario º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Si linestyle es igual a USERBIT_LINE, el campo upattern determina como aparece la l¡nea. Cada bit de upattern corresponde a un pixel. Si un bit est  activado, el pixel tambi‚n lo est . El campo thickness puede contener estos valores: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º VALOR ³ SIGNIFICADO º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º NORM_WIDTH ³ 1 pixel de ancho º º THICK_WIDTH ³ 3 pixels de ancho º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ getmaxcolor() Sintaxis: int far getmaxcolor(void); Declarado: graphics.h Funci¢n: Devuelve el m ximo de color disponible del modo gr fico actual que puede ser pasado por la funci¢n setcolor. getmaxx() Sintaxis: int far getmaxx(void); Declarado: graphics.h Funci¢n: Devuelve el m ximo valor que puede ser tomado por la coordenada x en el modo gr fico actual. getmaxy() Sintaxis: int far getmaxy(void); Declarado: graphics.h Funci¢n: Devuelve el m ximo valor que puede ser tomado por la coordenada y en el modo gr fico actual. getmodename() Sintaxis: char far *getmodename(int num_modo); Declarado: graphics.h funci¢n: Devuelve un puntero a una cadena que contiene el nombre del modo gr fico para el n£mero especificado en num_modo. getmoderange() Sintaxis: void far getmoderange(int graphdriver, int far *bajmodo, int far *supmodo); Declarado: graphics.h Funci¢n: Carga el rango y modo gr fico v lido para el driver gr fico indicado en graphdriver, el m¡nimo valor permitido es cargado en bajmodo y el m ximo en supmodo. Los posibles valores de graphdriver son: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ» º MACRO ³ VALOR º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ º DETECT ³ 0 º º CGA ³ 1 º º MCGA ³ 2 º º EGA ³ 3 º º EGA64 ³ 4 º º EGAMONO ³ 5 º º RESERVED ³ 6 º º HERCMONO ³ 7 º º ATT400 ³ 8 º º VGA ³ 9 º º PC3270 ³ 10 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ getpalette() Sintaxis: void far getpalette(struct palettetype far *palette); Declarado: graphics.h Funci¢n: Carga informaci¢n en torno a la paleta actual en la estructura palette de tipo palettetype que tiene la siguiente forma: #define MAXCOLORS 15 struct palettetype { unsigned char size; signed char colors[MAXCOLORS + 1]; }; Esta estructura y la constante MAXCOLORS est n definidas en graphis.h. size contiene el n£mero de colores de la paleta para el modo gr fico actual. getpalettesize() Sintaxis: int far getpalettesize(void); Declarado: graphics.h Funci¢n: Devuelve el n£mero de paletas que pueden ser utilizadas en el modo gr fico actual. getpixel() Sintaxis: unsigned far getpixel(int x, int y); Declarado: graphics.h Funci¢n: Devuelve el color del pixel x, y. gettextsettings() Sintaxis: void far gettextsettings(struct textsettingstype far *texttypeinfo); Declarado: graphics.h Funci¢n: Carga informaci¢n en la estructura texttypeinfo de tipo textsettingstype en torno al texto del modo gr fico actual. La estructura es como sigue: struct textsettingstype { int font; /* tipo */ int direction; /* horizontal o vertical */ int charsize; /* tama¤o */ int horiz; /* justificaci¢n horizontal */ int vert; /* justificaci¢n vertical */ }; El campo font contiene uno de los valores: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º TIPO ³ VALOR ³ SIGNIFICADO º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º DEFAULT_FONT ³ 0 ³ Por defecto 8x8 bits º º TRIPLEX_FONT ³ 1 ³ Triple º º SMALL_FONT ³ 2 ³ Peque¤o º º SANSSERIF ³ 3 ³ Sans serif (o lineal) º º GOTHIC_FONT ³ 4 ³ G¢tico º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ El campo direction de contener el valor HORIZ_DIR para texto horizontal (por defecto) o el valor VERT_DIR para texto vertical. El campo charsize se emplea para calcular los tama¤os de texto. Los campos horiz y vert indican c¢mo se justifica el texto con respecto a la posici¢n del cursor. Pueden contener los valores siguientes: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º MACRO ³ VALOR ³ SIGNIFICADO º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º LEFT_TEXT ³ 0 ³ Posici¢n a la izquierdº º CENTER_TEXT ³ 1 ³ Posici¢n en el centro º º RIGHT_TEXT ³ 2 ³ Posici¢n a la derecha º º BOTTOM_TEXT ³ 3 ³ Posici¢n abajo º º TOP_TEXT ³ 4 ³ Posici¢n arriba º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ getviewsettings() Sintaxis: void far getviewsettings(struct viewporttype far *info); Declarado: graphics.h Funci¢n: Almacena en la estructura apuntada por info la informaci¢n de la ventana en curso. La estructura contiene los elementos siguientes: struct wiewporttype { int left, top, right, bottom; int clipflag; }; getx() Sintaxis: int far getx(void); Declarado: graphics.h Funci¢n: Devuelve el valor de la coordenada x del cursor en la pantalla o en la ventana. gety() Sintaxis: int far getx(void); Declarado: graphics.h Funci¢n: Devuelve el valor de la coordenada y del cursor en la pantalla o en la ventana. graphdefaults() Sintaxis: void far graphdefaults(void); Declarado: graphics.h Funci¢n: borra las opciones gr ficas actuales dejando las de por defecto. Selecciona como ventana la pantalla completa. Mueve la posici¢n del cursor a (0, 0). Selecciona por defecto la paleta, fondo y dibujo. Selecciona font de texto y justificaci¢n por defecto. grapherrormsg() Sintaxis: char *far grapherrormsg(int errorcode); Declarado: graphics.h Funci¢n: Devuelve un puntero a la cadena de mensaje de error asociada a errorcode. Este error se obtiene de una llamada a graphresult(). _graphfreemem() Sintaxis: void far _graphfreemem(void far *ptr, unsigned size); Declarado: graphics.h Funci¢n: Libera memoria previamente asignada con _graphgetmem. _graphgetmem() Sintaxis: void far *far _graphgetmem(unsigned size); Declarado: graphics.h Funci¢n: Esta funci¢n es llamada para disponer memoria para buffers gr ficos. graphresult() Sintaxis: int far graphresult(void); Declarado: graphics.h Funci¢n: Devuelve el c¢digo de error de la £ltima operaci¢n gr fica. Valores retornados: 0 No hay error. -1 (BGI) no instalado. -2 hardware gr fico no detectado. -3 Dispositivo de fichero no encontrado. -4 dispositivo de fichero inv lido -5 No hay espacio en memoria para cargar driver. -6 Fuera de memoria en scan fill. -7 Fuera de memoria en flood fill. -8 Fichero de Font no encontrado -9 No hay espacio para cargar font -10 Modo gr fico no valido -11 Error gr fico -12 Error I/O gr fico -13 Fichero de font no valido -14 Inv lido n£mero de font -15 N£mero de dispositivo no v lido -18 N£mero de versi¢n no valida. imagesize() Sintaxis: unsigned far imagesize(int izda, int sup, int dcha, int abajo); Declarado: graphics.h Funci¢n: Devuelve el n£mero de bytes necesarios para almacenar una imagen de bits. initgraph() Sintaxis: void far initgraph(int far *g_driver, int far *g_modo, char far *path); Declarado: graphics.h Funci¢n: Inicializa el sistema de gr ficos y pone la pantalla en modo gr fico detectado previamente por detectgraph, tambi‚n especifica la v¡a de acceso de los ficheros del controlador de gr ficos. (El Turbo C proporciona ficheros separados para los ocho adaptadores de gr ficos). Si el controlador de gr ficos est  en el directorio por defecto, o si se ha enlazado el controlador de gr ficos al programa, se puede poner simplemente dos pares de comillas ("") los caracteres '\', hay que ponerlos duplicados. Ejemplo: a:\\pp\\antxon Valores para g_driver: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º MACRO ³ VALOR º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º DETECT ³ 0 (autodetecci¢n)º º CGA ³ 1 º º MCGA ³ 2 º º EGA ³ 3 º º EGA64 ³ 4 º º EGAMONO ³ 5 º º IBM8514 ³ 6 º º HERCMONO ³ 7 º º ATT400 ³ 8 º º VGA ³ 9 º º PC3270 ³ 10 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Valores de g_modo: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Filas x º º Tarjeta modo Valor Columnas paleta pag. º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º CGA CGAC0 0 320x200 C0 1 º º CGAC1 1 320x200 C1 1 º º CGAC2 2 320x200 C2 1 º º CGAC3 3 320x200 C3 1 º º CGAHI 4 640x200 2 color 1 º º MCGA MCGAC0 0 320x200 C0 1 º º MCGAC1 1 320x200 C1 1 º º MCGAC2 2 320x200 C2 1 º º MCGAC3 3 320x200 C3 1 º º MCGAMED 4 640x200 2 color 1 º º MCGAHI 5 640x200 2 color 1 º º º º EGA EGALO 0 640x200 16 color 4 º º EGAHI 1 640x350 4 color 2 º º EGA64 EGA64LO 0 640x200 16 color 1 º º EGA64HI 1 640x350 4 color 1 º º EGAMONO EGAMONOHI 3 640x350 2 color 1* º º EGAMONOHI 3 640x350 2 color 2** º º º º HERC HERCMONOHI 0 750x348 2 color 2 º º ATT400 ATT40C0 0 320x200 C0 1 º º ATT40C1 1 320x200 C1 1 º º ATT40C2 2 320x200 C2 1 º º ATT40C3 3 320x200 C3 1 º º ATT40MED 4 640x200 2 color 1 º º ATT40HI 5 640x00 2 color 1 º º º º VGA VGALO 0 640x200 16 color 2 º º VGAMED 1 640x350 16 color 2 º º VGAHI 2 640x480 16 color 1 º º PC3270 PC3270HI 0 720x350 2 color 1 º º IBM8514 IBM8514LO 0 640x480 256 color º º IBM8514HI 0 1024x768 256 color º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ * 64K en tarjeta EGAMONO ** 256k en tarjeta EGAMONO installuserdriver() Sintaxis: int far installuserdriver(char far *nombre, int huge(*detect)(void)); Declarado: graphics.h Funci¢n: -o-o-o-oo-o-o-o-o-o-o-o-o-o-o-o-o-o-oo-o-o-o-o-o-o-o installuserfont() Sintaxis: int far installuserfont(char far *nombre); Declarado: graphics.h Funci¢n: nombre es un path a un fichero de fonts (.CHR). M s de treinta fonts pueden ser instaladas de una vez. line() Sintaxis: void far line(int x1, int y1, int x2, int y2); Declarado: graphics.h Funci¢n: Dibuja una l¡nea entre dos puntos de la pantalla gr fica. linerel() Sintaxis: void far linerel(int dx, int dy); Declarado: graphics.h Funci¢n: Dibuja una l¡nea desde la posici¢n actual del cursor hasta un punto (dx, dy) expresado en coordenadas relativas a la posici¢n actual. lineto() Sintaxis: void far lineto(int x, int y); Declarado: graphics.h Funci¢n: Dibuja una l¡nea desde la posici¢n actual del cursor a el punto cuyas coordenadas son (x, y). moverel() Sintaxis: void far moverel(int dx, int dy); Declarado: graphics.h Funci¢n: Mueve la posici¢n actual del cursor dx pixels en la direcci¢n x y dy pixels en direcci¢n y. moveto() Sintaxis: void far moveto(int x, int y); Declarado: graphics.h Funci¢n: Mueve el cursor a la posici¢n x, y. outtext() Sintaxis: void far outtext(char far *cadena); Declarado: graphics.h Funci¢n: Escribe una cadena en la ventana gr fica, en la posici¢n actual del cursor, utilizando la justificaci¢n, font, direcci¢n y tama¤o actual. outtextxy() Sintaxis: void far outtextxy(int x, int y, char far *cadena); Declarado: graphics.h Funci¢n: Escribe una cadena en la ventana gr fica, en la posici¢n (x,y), utilizando la justificaci¢n, font, direcci¢n y tama¤o actual. pieslice() Sintaxis: void far pieslice(int x, int y, int stangle, int endangle, int radio); Declarado: graphics.h Funci¢n: Dibuja y rellena una rebanada de pastel con centro en x, y, con un radio dado por radio , comenzando en stangle y terminando en endangle. El trozo de tarta es rellenado y dibujado en el color actual. putimage() Sintaxis: void far putimage(int izda, int sup, void far *bitmap, int parm); Declarado: graphics.h Funci¢n: Dibuja un modelo de mapa de bits en la pantalla gr fica. El modelo debe ser un array de unsigned char (por ejemplo) obtenido usando la funci¢n getimage o cre ndolo de alguna otra manera. izda y sup indican la posici¢n de la esquina superior izda del modelo del mapa de bits, y parm es un par metro que especifica como se coloca la imagen de los gr ficos en pantalla. Los par metros y sus significados son los siguientes: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Constante ³ Valor ³ Descripci¢n º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º COPY_PUT ³ 0 ³ Copia directa º º XOR_PUT ³ 1 ³ O-Exclusiva (Borra) º º OR_PUT ³ 2 ³ O-Inclusiva (une) º º AND_PUT ³ 3 ³ Y (cubre) º º NOT_PUT ³ 4 ³ Copia inversa º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ La combinaci¢n de getimage y putimage es ideal para cubrir el dise¤o de ventanas y deshacer zonas editadas de la pantalla de gr ficos. Mientras putimage trabaja bien para dibujar el modelo de mapa de bits en la pantalla, getimage es una funci¢n ineficaz para definir el modelo. putpixel() Sintaxis: void far putpixel(int x, int y, int color); Declarado: graphics.h Funci¢n: Dibuja un punto en (x, y) en el color color. rectangle() Sintaxis: void far rectangle(int izda, int sup, int dcha, int abajo); Declarado: graphics.h Funci¢n: Dibuja un rect ngulo en el estilo de l¡nea actual. (izda,sup) y (dcha,abajo) son las coordenadas de los v‚rtices superior izdo e inferior dcho del rect ngulo. registerbgidriver() registerbgifont() utilidad BGIOBJ La utilidad BGIOBJ convierte los ficheros .BGI y .CHR (drivers gr ficos y tipos de letras) en ficheros .OBJ de forma que se puedad enlazar junto con cualquier programa compilado. La ventaja de emplear ficheros objeto, es que al montar un programa, se conocer  el tama¤o exacto del c¢digo ejecutable. De la otra forma, el driver gr fico, junto con los tipos de letra, se cargan en memoria en tiempo de ejecuci¢n, a medida que los necesita el programa. El formato de la orden es: BGIOBJ Los ficheros objeto se pueden a¤adir a la misma libreria gr fica, emplenado TLIB: TLIB graphics + [+ ...] Los ficheros que se pueden convertir son: CGA.BGI EGAVGA.BGI HERC.BGI ATT.BGI PC3270.BGI IBM8514.BGI TRIP.CHR LITT.CHR SANS.CHR GOTH.CHR Para poder emplear los ficheros .OBJ, ser  necesario indicarle al compilador que se van a emplear estos ficheros, de forma que los pueda montar junto con el programa. Para ello se emplean las funciones registerbgidriver() y registerbgifont(). Con estas funciones se indica al sistema que se emplear n los ficheros listados anteriormente. Ambas funciones necesitan como argumento un nombre simb¢lico (definido en graphics.h) que representa a los gr ficos. Los nombres posibles son: CGA_driver EGAVGA_driver Herc_driver ATT_driver PC3270_driver IBM8514_driver triplex_font small_font sansserif_font gothic_font Las funciones registerbgidriver() y registerbgifont() se deben invocar dentro del programa, antes de initgraph(). La secuencia de trabajo quedar  como sigue: 1. Convertir el fichero Por ejemplo: BGIOBJ HERC BGIOBJ GOTH 2. A¤adirlo a la librer¡a gr fica. Por ejemplo: TLIB GRAPHICS+HERC+GOTH 3. Si no se han incluido los m¢dulos objeto en la librer¡a, se compilan junto con el programa fuente (o se a¤aden al fichero de proyecto). Por ejemplo: TCC prog-fuente GRAPHICS.LIB HERC.OBJ GOTH.OBJ 4. En el programa se incluir n las llamadas a registerbgidriver() y registerbgifont(). Por ejemplo: if(registerbgidriver(Herc_driver)<0) { fprintf(stderr,"Error al registrar el driver"); exit(1); } if(registerbgifont(gothic_font)<0) { fprintf(stderr,"Error al registrar tipo deletra"); exit(2); } Si al compilar o montar el programa aparece el error Segment exceeds 64k, ser  necesario convertir el fichero con la opci¢n /F. Con esta opci¢n se emplea un nuevo segmento para los ficheros gr ficos. En este caso, a los nombre simb¢licaos se les a¤ade la palabra _far, y las funciones para registrar m¢dulos gr ficos ser n registerfarbgidriver() y registerfarbgifont(). restorecrtmode() Sintaxis: void far restorecrtmode(void); Declarado: graphics.h Funci¢n: Restaura el modo de video al modo anterior a la llamada a initgraph(). sector() Sintaxis: void far sector(int x, int y, int comang, int endang, int radx, int rady); Declarado: graphics.h Funci¢n: Dibuja y rellena un trozo el¡ptico de tarta con centro en (x, y) radx y rady son el radio horizontal y vertical, comenzando a dibujarse en comang y terminando en endang. 0 grados ser¡a a las 3 del reloj y 90 grados a las 12. setactivepage() Sintaxis: void far setactivepage(int pag); Declarado: graphics.h Funci¢n: Define la p gina de la pantalla que recibir  la salida de las funciones gr ficas. Por defecto, se emplea la p gina 0. Si se utiliza otro n£mero, toda la salida ir  a la nueva p gina. En modo gr fico, solo las tarjetas EGA y VGA soportan m s de una p gina, aunque no en todos los modos se puede trabajar con varias p ginas. setallpalette() Sintaxis: void far setallpalette(struct palettetype far *paleta); Declarado: graphics.h Funci¢n: Se emplea para cambiar los colores de la paleta de colores de un tarjeta EGA/VGA. La estructura palettetype es la siguiente: struct palettetype { unsigned char size; signed char colors[16]; } Se debe asignar a cada color de la tabla su nuevo valor. La tabla de colores se indica en la funci¢n setpalette(). setaspectratio() Sintaxis: void far setaspectratio(int xasp, int yasp); Declarado: graphics.h Funci¢n: Cambia el factor de correcci¢n de aspecto ratio. setbkcolor() Sintaxis: void far setbkcolor(int color); Declarado: graphics.h Funci¢n: Modifica el color de fondo. El argumento color tiene los siguientes valores: ÉÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º N£mero ³ Nombre º N£mero ³ Nombre º ÇÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º 0 ³ BLACK º 8 ³ DARKGRAY º º 1 ³ BLUE º 9 ³ LIGHTBLUE º º 2 ³ GREEN º 10 ³ LIGHTGREEN º º 3 ³ CYAN º 11 ³ LIGHTCYAN º º 4 ³ RED º 12 ³ LIGHTRED º º 5 ³ MAGENTA º 13 ³ LIGHTMAGENTA º º 6 ³ BROWN º 14 ³ YELLOW º º 7 ³ LIGHTGRAY º 15 ³ WHITE º ÈÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ NOTA: Si se utiliza una tarjeta VGA o EGA, y se cambia el color de paleta con setpalette o setallpalette, la constante simb¢lica, puede no dar el color correcto. setcolor() Sintaxis: void far setcolor(int color); Declarado: graphics.h Funci¢n: Establece el color de trazado de gr ficos. Color puede ser uno de los valores indicados en la funci¢n setpalette(). setfillpattern() Sintaxis: void far setfillpattern(char far *modelo, int color); Declarado: graphics.h Funci¢n: Establece el relleno del modelo definido por el usuario. modelo es un puntero a una secuencia de 8 bytes, cada byte corresponde a 8 pixels en la paleta. Siempre que un bit de la paleta vale 1, el pixel correspondiente es dibujado. El relleno ir  coloreado en el color indicado por color. setfillstyle() Sintaxis: void far setfillstyle(int modelo, int color); Declarado: graphics.h Funci¢n: Establece el estilo de relleno. modelo podr  ser: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Nombre ³Valor³ Descripci¢n º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º EMPTY_FILL ³ 0 ³ Relleno con el color de fondo º º SOLID_FILL ³ 1 ³ Relleno s¢lido º º LINE_FILL ³ 2 ³ Relleno con ÄÄÄÄ º º LTSLASH_FILL ³ 3 ³ Relleno con //// º º SLASH_FILL ³ 4 ³ Relleno con ////, l¡nea gruesa º º BKSLASH_FILL ³ 5 ³ Relleno con \\\\, l¡nea gruesa º º LTBKSLASH_FILL ³ 6 ³ Relleno con \\\\ º º HATCH_FILL ³ 7 ³ Relleno de l¡neas brillantes º º XHATCH_FILL ³ 8 ³ L¡neas gruesas cruzadas º º INTERLEAVE_FILL³ 9 ³ Relleno de basura º º WIDE_DOT_FILL ³ 10 ³ Punteado muy espaciado º º CLOSE_DOT_FILL ³ 11 ³ Punteado muy cerrado. º º USER_FILL ³ 12 ³ Modo definido por la paleta º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ setgraphbufsize() Sintaxis: unsigned far setgraphbufsize(unsigned tama¤o); Declarado: graphics.h Funci¢n: Cambia el tama¤o del buffer interno para gr ficos tama¤o. Esta funci¢n devuelve el valor previo de tama¤o del buffer. setgraphmode() Sintaxis: void far setgraphmode(int modo); Declarado: graphics.h Funci¢n: Define el modo gr fico especificado en modo. los valores de modo se explican con la funci¢n initgraph(). setlinestyle() Sintaxis: void far setlinestyle(int estilo, unsigned upattern, int densidad); Declarado: graphis.h Funci¢n: Selecciona estilo y anchura de l¡nea. estilo puede ser: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Nombre ³ Valor ³ Descripci¢n º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º SOLID_LINE ³ 0 ³ L¡nea s¢lida º º DOTTED_LINE ³ 1 ³ L¡nea punteada º º CENTER_LINE ³ 2 ³ L¡nea centrada º º DASHED_LINE ³ 3 ³ L¡nea larga º º USERBIT_LINE ³ 4 ³ Definido por usuario. º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ densidad puede ser: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Nombre ³ Valor ³ Descripci¢n º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º NORM_WIDTH ³ 1 ³ 1 pixel de anchura º º THICK_WIDTH ³ 3 ³ 3 pixel de anchura º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ upattern es un formato de 16 bits que se aplica solo si estilo = 4 setpalette() Sintaxis: void far setpalette(int index, int color); Declarado: graphics.h Funci¢n: Define los colores de la pantalla. El argumento color toma los valores siguentes: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º CGA º EGA/VGA º º Nombre Valor º Nombre Valor º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄĶ º BLACK ³ 0 º EGA_BLACK ³ 0 º º BLUE ³ 1 º EGA_BLUE ³ 1 º º GREEN ³ 2 º EGA_GREEN ³ 2 º º CYAN ³ 3 º EGA_CYAN ³ 3 º º RED ³ 4 º EGA_RED ³ 4 º º MAGENTA ³ 5 º EGA_MAGENTA ³ 5 º º BROWN ³ 6 º EGA_BROWN ³ 20 º º LIGHTGRAY ³ 7 º EGA_LIGHTGRAY ³ 7 º º DARKGRAY ³ 8 º EGA_DARKGRAY ³ 56 º º LIGHTBLUE ³ 9 º EGA_LIGHTBLUE ³ 57 º º LIGHTGREEN ³ 10 º EGA_LIGHTGREEN ³ 58 º º LIGHTCYAN ³ 11 º EGA_LIGHTCYAN ³ 59 º º LIGHTRED ³ 12 º EGA_LIGHTRED ³ 60 º º LIGHTMAGENTA ³ 13 º EGA_LIGHTMAGENTA ³ 61 º º YELLOW ³ 14 º EGA_YELLOW ³ 62 º º WHITE ³ 15 º EGA_WHITE ³ 63 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍͼ Nota: Para que el color sea v lido depende del modo gr fico actual. El argumento index se refiere a la posici¢n de una tabla donde Turbo C selecciona los colores. Los colores de fondo siempre tienen el ¡ndice 0. Con una tarjeta EGA se pueden escribir 16 colores a la vez y admite un total de 64 colores. Se emplea la funci¢n setpalette() para relacionar un color con un ¡ndice. Por ejemplo: setpalette(0, RED); modifica el color de fondo a rojo, y setpalette(3, EGA_BLACK); asigna el ¡ndice 3 a EGA_BLACK (negro) setrgbpalette() Sintaxis: void far setrgbpalette(int colornum, int rojo, int verde, int azul); Declarado: graphics.h Funci¢n: Concede la definici¢n de colores para la tarjeta gr fica IBM8514. settextjustify() Sintaxis: void far settextjustify(int horiz, int vert); Declarado: graphics.h Funci¢n: Selecciona la justificaci¢n del texto para las funciones gr ficas. Por defecto la justificaci¢n seleccionada es LEFT_TEXT (para horizontal) y TOP_TEXT (para vertical). Los valores disponibles para horiz y vert son: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Nombre ³ Valor ³ Descripci¢n º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º LEFT_TEXT ³ 0 ³ horiz º º CENTER_TEXT ³ 1 ³ horiz y vert º º RIGHT_TEXT ³ 2 ³ horiz º º BOTTOM_TEXT ³ 0 ³ vert º º TOP_TEXT ³ 2 ³ vert º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ settextstyle() Sintaxis: void far settextstyle(int fuente, unsigned direcci¢n, int tama¤o); Declarado: graphics.h Funci¢n: Especifica la fuente de texto (tipo de letra), la direcci¢n y el tama¤o. fuente es el valor entero (o constante simb¢lica) dado en la siguiente tabla: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Constante ³ Valor ³ Descripci¢n º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º DEFAULT_FONT ³ 0 ³ Font de trazado 8x8 bits º º TRIPLEX_FONT ³ 1 ³ Font de trazado triple º º SMALL_FONT ³ 2 ³ Font de trazado reducido º º SANS_SERIF_FONT ³ 3 ³ Font de trazado sin serifº º GOTHIC_FONT ³ 4 ³ Font de trazado G¢tico º º ³ ³ º º HORIZ_DIR ³ 0 ³ izda a dcha en horizontalº º VERT_DIR ³ 1 ³ abajo a arriba vertical º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ direcci¢n es un entero que indica la direcci¢n del texto (0=horizontal, 1=vertical) tama¤o es un entero (en el rango de 1 a 10) para ajust r el tama¤o de la fuente. setusercharsize() Sintaxis: void far setuserc arsize(int multx, int divx, int multy, int divy); Declarado: graphics.h Funci¢n: Afina el control sobre el tama¤o del texto de las fonts utilizadas en las funciones gr ficas. Los valores seleccionados por setusercharsize se activan solo si charsize es igual a 0, puesto en una llamada previa a settextstyle. Con esta funci¢n se especifica el factor que regula la escala de anchura y altura. dicho de otra forma, multiplica las coordenadas de cada car cter escrito en la pantalla de modo gr fico, de la siguiente forma: x = x*mulx/divx y = y*muly/divy setviewport() Sintaxis: void far setviewport(int izda, int sup, int dcha, int abajo, int banderacorte) Declarado: graphics.h Funci¢n: Establece una nueva ventana de dibujo. izda, sup son la esquina superior izda de la ventana; dcha, abajo son la esquina inferior derecha; y banderacorte establece la bandera corte. Si banderacorte es 0 el corte est  en off y la salida de gr ficos, que ir¡a mas all  de los l¡mites de la ventana de dibujo, es ignorada totalmente (no se muestra ning£n dibujo); si vale 1, el corte est  en on y la salida de gr ficos, que ir¡a m s all  de los l¡mites de la ventana de dibujo, es truncada en los l¡mites (pero se muestra la parte del dibujo interior a la ventana de dibujo). setvisualpage() Sintaxis: void far setvisualpage(int p gina); Declarado: graphics.h Funci¢n: Selecciona la p gina de video a visualizar. setwritemode() Sintaxis: void far setwritemode(int modo); Declarado: graphics.h Funci¢n: Selecciona el modo de escritura de una l¡nea en una p gina gr fica COPY_PUT = 0 /* MOV */ XOR_PUT = 1 /* XOR */ Cada una de estas constantes corresponde a una operaci¢n binaria entre cada byte en la l¡nea y el correspondiente byte en la pantalla. COPY_PUT utiliza la instrucci¢n MOV de emsamblador, sobrescribiendo sobre cualquier cosa que haya el la misma l¡nea de la pantalla. XOR_PUT utiliza el comando XOR para borrar la l¡nea y restaurar la pantalla a su apariencia original. textheight() Sintaxis: int far textheight(char far *textcad); Declarado: graphics.h Funci¢n: Devuelve la altura en pixels de la font actual. textwidth() Sintaxis: int far textwidth(char far *cadtext); Declarado: graphics.h Funci¢n: Devuelve la anchura de la cadena de texto cadtext en pixels en la font y modo actual. LIBRERIAS DE TURBO C - io.h access() Sintaxis: int access(const char *nomfichero, int modo) Declarado: io.h Funci¢n: Se emplea para para averiguar si un fichero existe. Tambi‚n se puede utilizar para ver si el fichero est  protegido contra escritura y si es ejecutable. El argumneto nomfichero apunta al nombre del fichero. El valor modo determina como funciona access(). Los valores posibles son: 0 Comprueba la existencia del fichero 1 Comprueba si es un fichero ejecutable 2 Comprueba la escritura 4 Comprueba la lectura 6 Comprueba la escritura y lectura. La funci¢n access() devuelve 0 si se puede acceder al fichero; en caso contrario, devuelve -1 y a la variable global errno se le asigna uno de los valores: ENOENT Camino o nombre de fichero no encontrado EACCES Acceso denegado _chmod() Sintaxis: #include #include int _chmod(const char *path, int func[, int atrib]); Declarado: io.h Funci¢n: Cambia el modo de acceso a un fichero. Si func es 0, la funci¢n devuelve el atributo actual del fichero, Si es 1, el atributo es cambiado a atrib. atrib puede ser una de las siguientes constantes simb¢licas: FA_RDONLY atributo de solo lectura. FA_HIDDEN " " archivo oculto. FA_SYSTEM " " " sistema. chmod() Sintaxis: #include int chmod(const char *path, int pmodo); Declarado: io.h Funci¢n: Cambia el permiso que tiene el fichero especificado en path por el especificado en pmodo, devolviendo 0 en caso exitoso, y -1 en caso de error. Los valores que puede tomar pmodo son: S_IWRITE permiso de escritura S_IREAD permiso de lectura. S_IWRITE | S_IREAD lectura y escritura chsize() Sintaxis: int chsize(int num, long n); Declarado: io.h Funci¢n: Extiende o trunca el fichero cuyo n£mero asociado es num, a la longitud especificada por n. El fichero debe ser abierto de forma que permita la escritura. Si el fichero es extendido, se a¤aden caracteres nulos ('\0'). _close() Sintaxis: int _close(int num); Declarado: io.h Funci¢n: Esta funci¢n cierra el fichero asociado con num. close() Sintaxis: int _close(int num); Declarado: io.h Funci¢n: Esta funci¢n cierra el fichero asociado con num. _creat() Sintaxis: #include int _creat(const char *path, int atrib); Declarado: io.h Funci¢n: Crea un nuevo fichero o reescribe en uno ya existente. Si el fichero ya existe, su tama¤o es puesto a 0. El argumento atrib puede ser uno de los siguientes: FA_RDONLY Solo lectura FA_HIDDEN Oculto FA_SYSTEM Del sistema. Si no hay error devuelve el numero del fichero creado, en caso contrario devuelve -1. creat() Sintaxis: #include int creat(const char *path, int amode); Declarado: io.h Funci¢n: Crea un nuevo fichero o prepara para reescribir en uno existente. El argumento amode puede ser: S_IWRITE permiso de escritura. S_IREAD permiso de lectura. S_READ|S_IWRITE permiso de lectura y escritura. Si no hay error devuelve el numero del fichero creado, en caso contrario devuelve -1. creatnew() Sintaxis: #include int creatnew(const char *path, int atrib); Declarado: io.h Funci¢n: Esta funci¢n es id‚ntica a _creat, con la excepci¢n de que si el fichero existe, creatnew devuelve error y deja el fichero intacto. El argumento atrib debe ser uno de los siguientes: FA_RDONLY atributo de solo lectura FA_HIDDEN archivo oculto FA_SYSTEM archivo del sistema. Si no hay error devuelve el numero del fichero creado, en caso contrario devuelve -1. creattemp() Sintaxis: #include int creattemp(char *path, int atrib); Declarado: io.h Funci¢n: Crea un £nico fichero en el directorio asociado con path. Es creado en el modo especificado por la variable global _fmode (O_TEXT o O_BINARY). El fichero es borrado automaticamente cuando el termina el programa. El argumento atrib debe ser uno de los siguientes: FA_RDONLY atributo de solo lectura FA_HIDDEN archivo oculto FA_SYSTEM archivo del sistema. Si no hay error devuelve el numero del fichero creado, en caso contrario devuelve -1. dup() Sintaxis: int dup(int handle); Declarado io.h Funci¢n: Da un nuevo n£mero al fichero de n£mero actual handle, en caso de error da -1. dup2() Sintaxis: int dup2(int oldhandle, int newhandle); Declarado: io.h Funci¢n: Duplica un n£mero de fichero (oldhandle) sobre un n£mero de fichero existente (newhandle). Si tiene ‚xito esta funci¢n devuelve 0, en caso contrario -1. eof() Sintaxis: int eof(int handle); Declarado: io.h Funci¢n: Esta funci¢n devuelve 1 si se ha llegado al final del fichero, en caso contrario devuelve 0. Un valor -1 indica error. filelength() Sintaxis: long filelength(int pf); Declarado: io.h Funci¢n: Devuelve la longitud en bytes del fichero asociado a pf, en caso de error devuelve -1. getftime() Sintaxis: int getftime(int handle, struct ftime *ftimep); Declarado: io.h Funci¢n: Carga fecha y hora del fichero de disco asociado con handle, en la estructura ftimep de tipo ftime que es de la forma siguiente. struct ftime { unsigned ft_tsec:5; /* dos segundos */ unsigned ft_min:6; /* minutos */ unsigned ft_hour:5; /* horas */ unsigned ft_day:5; /* d¡as */ unsigned ft_month:4; /* meses */ unsigned ft_year:5; /* a¤o-1980 */ }; ioctl() Sintaxis: int ioctl(int handle, int func[, void *argdx, int argcx]); Declarado: io.h Funci¢n: Controla el dispositivo de I/O. isatty() Sintaxis: int isatty(int num); Declarado: io.h Funci¢n: Determina si num est  asociado con un dispositivo (consola, impresora, puerto serie etc.). Devuelve un valor distinto de 0 si num est  asociado a un dispositivo y 0 en caso contrario. lock() Sintaxis: int lock(int handle, long offset, long length); Declarado: io.h Funci¢n: Se utiliza para bloquear una parte de un fichero, para prevenir que otro programa lo utilice. Para desbloquear el fichero se emplea unlock(). Estas funciones permiten controlar los ficheros en redes locales. La zona del fichero que se protege viene dada por el desplazamiento y el n£mero de caracteres. Si no hay errores, devuelve 0; en caso contrario devuelve -1. lseek() Sintaxis: long lseek(int num, long desp, int pos); Declarado: io.h Funci¢n: Mueve el puntero de L/E asociado con el fichero abierto con el numero num, a una nueva localizaci¢n desplazada desp bytes de pos. pos puede ser: ÉÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Pos ³Valor ³ Definici¢n º ÇÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º SEEK_SET ³ 0 ³ Principio del fichero º º SEEK_CUR ³ 1 ³ Posici¢n actual º º SEEK_END ³ 2 ³ Final del fichero º ÈÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ En caso de error, esta funci¢n devuelve -1. int open(char *nomfich, int modo, int acceso); int _open(char *nomfich, int modo); Declarado: io.h Funci¢n: Se emplea para abrir un fichero y obtener el descriptor asociado. El argumento modo es una de las siguientes macros: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍ» º MODO ³ EFECTO ³ VALOR º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄĶ º O_RDONLY ³ s¢lo lectura ³ 1 º º O_WRONLY ³ s¢lo escritura ³ 2 º º O_RDWR ³ lectura y escritura ³ 3 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍͼ El argumento acceso se utiliza para mantener la compatibilidad con el entorno UNIX. La funci¢n open() devuelve un valor positivo si no hay errores; en caso contrario, devuelve -1. El valor positivo ser  el descriptor asociado al fichero. Los modos se pueden complementar con otras macros: O_TEXT Fichero de texto. Se realizan las conversiones siguientes: al leer 0x0d0a -> 0x0a al escribir 0x0a->0x0d0a el fin fichero es 0x1a (CTRL+Z) O_BINARY Fichero binario. no hay conversiones O_APPEND Escritura a final de fichero O_CREAT Si no existe, se crea. en este caso se puede emplear el argumento de acceso con los valores siguientes: S_IREAD S¢lo lectura S_IWRITE S¢lo escritura S_IWRITE|S_IREAD O_TRUNC Vacia un fichero ya existente _read() Sintaxis: int _read(int num, void *buf, unsigned c); Declarado: io.h Funci¢n: Intenta leer c bytes del fichero cuyo n£mero asociado es num, y almacenarlos en buf. Esta funci¢n devuelve el n£mero de bytes le¡dos, en caso de encontrar el final de fichero devuelve 0, un valor -1 indica error. Para un fichero abierto en modo de texto, _read no traslada los retornos de carro. Esta funci¢n utiliza el sistema de llamadas directas del DOS. read() Sintaxis: int read(int num, void *buf, unsigned c); Declarado: io.h Funci¢n: Intenta leer c bytes del fichero cuyo n£mero asociado es num, y almacenarlos en buf. Esta funci¢n devuelve el n£mero de bytes le¡dos, en caso de encontrar el final de fichero devuelve 0, un valor -1 indica error. Para un fichero abierto en modo de texto, _read si traslada los retornos de carro. setftime() Sintaxis: int setftime(int handle, struct ftime *lista); Declarado: io.h Funci¢n: Carga la fecha y hora del fichero de disco asociado con handle en la estructura lista de tipo ftime, que es como sigue: struct ftime { unsigned ft_tsec:5; /* dos segundos */ unsigned ft_min:6; /* minutos */ unsigned ft_hour:5; /* horas */ unsigned ft_day:5; /* d¡a */ unsigned ft_month:4; /* mes */ unsigned ft_year:7 /* a¤o */ }; En caso de error, esta funci¢n devuelve -1. setmode() Sintaxis: int setmode(int num, int modo); Declarado: io.h Funci¢n: Asigna el modo de texto (O_TEXT) o el modo binario (O_BINARY) al fichero cuyo n£mero asociado es num. Devuelve el modo anterior, -1 indica error. sopen() Sintaxis: int sopen(char *path, int acceso, int shflag, int modo); Declarado: io.h Funci¢n: Abre el fichero especificado por path y lo prepara a modo compartido para lectura y/o escritura. Para m s informaci¢n leer el manual. tell() Sintaxis: long tell(int num); Declarado: io.h Funci¢n: Devuelve la posici¢n actual del puntero de L/E, dentro del fichero cuyo numero asociado es num. Esta posici¢n es relativa al principio. unlink() Sintaxis: int unlink(const char *path); Declarado: dos.h, io.h, stdio.h Funci¢n: Borra el fichero especificado por path devolviendo 0. un valor -1 indica error. unlock() Sintaxis: int unlock(int handle, long offset, long length); Declarado: io.h Funci¢n: Provee de un interface con el DOS 3.x para utilizar un fichero en modo compartido. Elimina el bloqueo hecho con la llamada lock(). _write() Sintaxis: int _write(int fd, void *buf, unsigned len); Declarado: io.h Funci¢n: Escribe len bytes, almacenados en buf, en el fichero cuyo n£mero asociado es fd. Retorna el n£mero de bytes escritos, -1 indica error. Esta funci¢n es exclusiva del DOS. write() Sintaxis: int write(int fd, void *buf, unsigned len); Declarado: io.h Funci¢n: Escribe len bytes, almacenados en buf, en el fichero cuyo n£mero asociado es fd. Retorna el n£mero de bytes escritos, -1 indica error. Esta funci¢n es compatible UNIX. LIBRERIAS DE TURBO C - limits.h En esta libreria est n definidas las siguientes constantes: CHAR_BIT N§ de bits en un char CHAR_MAX M ximo valor char CHAR_MIN M¡nimo valor char INT_MAX M ximo valor int INT_MIN M¡nimo valor int LONG_MAX M ximo valor long LONG_MIN M¡nimo valor long SCHAR_MAX M ximo valor char SCHAR_MIN M¡nimo valor char SH