fbpx
Wikipedia

API del MS DOS

El API del MS DOS o MS-DOS API es un API usado originalmente en MS-DOS/PC-DOS, y más adelante por otros sistemas DOS. La mayoría de las llamadas al DOS API invocan la interrupción de software 21h (INT 21h). Llamando la INT 21h con un número de subfunción en el registro de procesador AH y otros parámetros en otros registros, se pueden invocar varios servicios del DOS. Los servicios del DOS incluyen la entrada por teclado, salida por pantalla, acceso a archivos de disco, ejecutar programas, la asignación de memoria, y otras cosas. Las subfunciones proporcionadas en el primer lanzamiento del MS-DOS en 1981 fueron fuertemente orientadas a la compatibilidad con el CP/M. Un importante mejora del DOS API (influenciada parcialmente por ciertos conceptos de Unix) fue realizada para el lanzamiento del MS-DOS 2.0 de 1983, agregando numerosas nuevas subfunciones para manejar la entrada/salida de archivos usando las "handles" (manejadores) abstractos y soporte para sub-directorios. En estas nuevas subfunciones, los strings son generalmente terminados por un byte NUL (ASCIIZ). En la versión MS-DOS 3.1 (lanzada en 1985), varias subfunciones fueron añadidas para manejar redes. En la versión MS-DOS 4, fueron introducidas llamadas para manejar la memoria expandida de acuerdo a la especificación de Lotus-Intel-Microsoft.

Hay varias implementaciones del DOS API, incluyendo PC-DOS, MS-DOS, DR-DOS, FreeDOS, PTS-DOS, y otros. El DOS API está basado en el BIOS, y las rutinas del DOS con frecuencia internamente accesan a llamadas de interrupción del BIOS

DOS extenders junto con DOS Protected Mode Interface (DPMI) extienden el DOS API al modo protegido de 16 bits o de 32 bits. El API del MS DOS es parcialmente dependiente en el código x86, por lo tanto el DOS no puede ser portado a otras arquitecturas de procesador.

El API del MS DOS y Windows

Las versiones 1.0 a 3.1 de Microsoft Windows eran los shells gráficos que corrían en MS-DOS y confiaban en el API del MS DOS (aunque usando su propio API para los programas de Windows). Windows 9x también estaba basado en el DOS, pero utilizó una versión personalizada del MS-DOS, principalmente como cargador de arranque. No usaba mucho el API del MS DOS después de cargarse. Sin embargo, Windows 9x proporcionó el DOS API a los programas que corrían dentro de una ventana shell de comandos. Versiones anteriores de Windows 9x (al menos a través de la primera edición de Windows 98) también podían cargarse en una simple interfaz de línea de comandos "Modo DOS" sin el GUI y sin servicios de sistema de Windows, para correr programas puros de DOS. Las versiones del DOS de Windows 9x (numeradas 7.0 en adelante) incluyen varias nuevas subfunciones de servicio para manejar el nombres de archivo largos (LFNs). Estas subfunciones LFN del DOS no fueron incluidos en Windows NT, pero estaban en versiones posteriores como Windows XP.

Windows NT y los sistemas basados en él (ej. Windows XP y Windows Vista) no están basados en MS-DOS, pero usan una máquina virtual, NTVDM, para manejar el DOS API. NTVDM trabaja haciendo correr un programa del DOS en el Modo 8086 virtual (una emulación del Modo real dentro del modo protegido disponible en 80386 y procesadores más recientes). DOSEMU para Linux usa un acercamiento similar.

Servicios comunes del DOS

Algunas llamadas de funciones INT 21h. El número de la llamada se pasa a través de AH:

AH
(hex)
Descripción Versión
DOS
Parámetros Retorno
00 Termina programa 1.0+ Nunca[1]
01 Lee caracteres desde STDIN 1.0+ AL=Caracter leído[2]
02 Escribe caracter a STDOUT 1.0+ DL=Caracter [3]
03 Lee caracteres desde el puerto serial 1.0+
04 Escribe caracteres al puerto serial 1.0+
05 Escribe caracteres en la impresora 1.0+
06 Entrada/salida directa por consola 1.0+
07 Entrada directa por consola sin eco 1.0+
08 Entrada por consola sin eco 1.0+
09 Escribe string a STDOUT 1.0+ DS:DX=Puntero a un string terminado en '$' [4]
0A Entrada con buffer por teclado 1.0+
0B Lee estado de la entrada 1.0+
0C Limpia buffer de entrada 1.0+
0D Resetea disco 1.0+
0E Asigna unidad de disco por defecto 1.0+
0F Abre archivo 1.0+
10 Cierra archivo 1.0+
11 Encuentra primer archivo 1.0+
12 Encuentra siguiente archivo 1.0+
13 Borra archivo 1.0+
14 Lectura secuencial 1.0+
15 Escritura secuencial 1.0+
16 Crea o trunca un archivo 1.0+
17 Cambia nombre de un archivo 1.0+
18 Reservado 1.0+
19 Obtiene unidad de disco por defecto 1.0+
1A Asigna dirección de transferencia de disco 1.0+
1B Obtiene la información de asignación (allocation) para la unidad por defecto 1.0+
1C Obtiene la información de asignación (allocation) para la unidad especificada 1.0+
1D Reservado 1.0+
1E Reservado 1.0+
1F Obtiene el bloque de parámetros de disco (DPB) para la unidad por defecto 1.0+
20 Reservado 1.0+
21 Lectura aleatoria 1.0+
22 Escritura aleatoria 1.0+
23 Obtiene el tamaño del archivo en número de registros 1.0+
24 Asigna número de registro aleatorio 1.0+
25 Asigna vector de interrupción 1.0+
26 Crea PSP 1.0+
27 Lee bloque aleatorio 1.0+
28 Escribe bloque aleatorio 1.0+
29 Parsea nombre de archivo 1.0+
2A Obtiene la fecha 1.0+
2B Ajusta la fecha 1.0+
2C Obtiene la hora 1.0+
2D Asigna la hora 1.0+
2E Asigna la bandera de verificación 1.0+
3C Crea o trunca un archivo 2+ CX=Atributos del archivo ; DS:DX->nombre de archivo ASCIZ CF=1 si hubo error ; AX=código de error ; {{{1}}}[5]
3D Abre archivo existente 2+ AL=Modos de acceso e intercambio ; DS:DX->Archivo ASCIZ ; {{{1}}} CF=1 si hubo error ; AX=código de error ; AX=handle de archivo[6]
3F Lee desde un archivo o dispositivo 2+ BX=handle de archivo ; {{{1}}} ; DS:DX->datos CF=1 si hubo error ; AX=código de error o bytes leídos[7]
40 Escribe a archivo o dispositivo 2+ BX=handle de archivo ; CX=bytes a escribir ; DS:DX->datos CF=1 si hubo error ; AX=código de error o bytes escritos[8]
3E Cierra archivo 2+ BX=handle de archivo CF=1 si hubo error ; AX=código de error[9]
42 Ajusta la posición en el archivo 2+ AL=origen de la movida, 0-inicio, 1-actual, 2-final ; BX=handle de archivo ; CX:DX=(con signo) desplazamiento CF=1 si hubo error ; AX=código de error ; DX:AX=posición desde el principio[10]
4C Sale del programa con un código de error indicado 2.0+ AL=código del error (0: salida normal)

Sistemas operativos que soportan el API del MS DOS

Programas con soporte para el API del MS DOS

Referencias

  • The New Peter Norton Programmer's Guide to the IBM PC & PS/2 by Peter Norton and Richard Wilton, Microsoft Press, 1987 ISBN 1-55615-131-4.
  • ctyme.com - INT Calls by function
  • antionline.com - Programming example code
  1. «Int 21/AH=00h».  090912 ctyme.com
  2. «Int 21/AH=01h».  090912 ctyme.com
  3. «Int 21/AH=02h».  090912 ctyme.com
  4. «Int 21/AH=09h».  090912 ctyme.com
  5. «Int 21/AH=3Ch, Creat».  090911 ctyme.com
  6. «Int 21/AH=3Dh, Open».  090911 ctyme.com
  7. «Int 21/AH=3Fh, Read».  090911 ctyme.com
  8. «Int 21/AH=40h, Write».  090911 ctyme.com
  9. «Int 21/AH=3Eh, Close».  090911 ctyme.com
  10. «Int 21/AH=42h, Lseek».  090911 ctyme.com

Véase también

Enlaces externos

  • DOS INT 21h - DOS Function Codes
  • DOS Function Reference
  • INT 21h
  •   Datos: Q904228

usado, originalmente, más, adelante, otros, sistemas, mayoría, llamadas, invocan, interrupción, software, llamando, número, subfunción, registro, procesador, otros, parámetros, otros, registros, pueden, invocar, varios, servicios, servicios, incluyen, entrada,. El API del MS DOS o MS DOS API es un API usado originalmente en MS DOS PC DOS y mas adelante por otros sistemas DOS La mayoria de las llamadas al DOS API invocan la interrupcion de software 21h INT 21h Llamando la INT 21h con un numero de subfuncion en el registro de procesador AH y otros parametros en otros registros se pueden invocar varios servicios del DOS Los servicios del DOS incluyen la entrada por teclado salida por pantalla acceso a archivos de disco ejecutar programas la asignacion de memoria y otras cosas Las subfunciones proporcionadas en el primer lanzamiento del MS DOS en 1981 fueron fuertemente orientadas a la compatibilidad con el CP M Un importante mejora del DOS API influenciada parcialmente por ciertos conceptos de Unix fue realizada para el lanzamiento del MS DOS 2 0 de 1983 agregando numerosas nuevas subfunciones para manejar la entrada salida de archivos usando las handles manejadores abstractos y soporte para sub directorios En estas nuevas subfunciones los strings son generalmente terminados por un byte NUL ASCIIZ En la version MS DOS 3 1 lanzada en 1985 varias subfunciones fueron anadidas para manejar redes En la version MS DOS 4 fueron introducidas llamadas para manejar la memoria expandida de acuerdo a la especificacion de Lotus Intel Microsoft Hay varias implementaciones del DOS API incluyendo PC DOS MS DOS DR DOS FreeDOS PTS DOS y otros El DOS API esta basado en el BIOS y las rutinas del DOS con frecuencia internamente accesan a llamadas de interrupcion del BIOSDOS extenders junto con DOS Protected Mode Interface DPMI extienden el DOS API al modo protegido de 16 bits o de 32 bits El API del MS DOS es parcialmente dependiente en el codigo x86 por lo tanto el DOS no puede ser portado a otras arquitecturas de procesador Indice 1 El API del MS DOS y Windows 2 Servicios comunes del DOS 3 Sistemas operativos que soportan el API del MS DOS 4 Programas con soporte para el API del MS DOS 5 Referencias 6 Vease tambien 7 Enlaces externosEl API del MS DOS y Windows EditarLas versiones 1 0 a 3 1 de Microsoft Windows eran los shells graficos que corrian en MS DOS y confiaban en el API del MS DOS aunque usando su propio API para los programas de Windows Windows 9x tambien estaba basado en el DOS pero utilizo una version personalizada del MS DOS principalmente como cargador de arranque No usaba mucho el API del MS DOS despues de cargarse Sin embargo Windows 9x proporciono el DOS API a los programas que corrian dentro de una ventana shell de comandos Versiones anteriores de Windows 9x al menos a traves de la primera edicion de Windows 98 tambien podian cargarse en una simple interfaz de linea de comandos Modo DOS sin el GUI y sin servicios de sistema de Windows para correr programas puros de DOS Las versiones del DOS de Windows 9x numeradas 7 0 en adelante incluyen varias nuevas subfunciones de servicio para manejar el nombres de archivo largos LFNs Estas subfunciones LFN del DOS no fueron incluidos en Windows NT pero estaban en versiones posteriores como Windows XP Windows NT y los sistemas basados en el ej Windows XP y Windows Vista no estan basados en MS DOS pero usan una maquina virtual NTVDM para manejar el DOS API NTVDM trabaja haciendo correr un programa del DOS en el Modo 8086 virtual una emulacion del Modo real dentro del modo protegido disponible en 80386 y procesadores mas recientes DOSEMU para Linux usa un acercamiento similar Servicios comunes del DOS EditarAlgunas llamadas de funciones INT 21h El numero de la llamada se pasa a traves de AH AH hex Descripcion VersionDOS Parametros Retorno00 Termina programa 1 0 Nunca 1 01 Lee caracteres desde STDIN 1 0 AL Caracter leido 2 02 Escribe caracter a STDOUT 1 0 DL Caracter 3 03 Lee caracteres desde el puerto serial 1 0 04 Escribe caracteres al puerto serial 1 0 05 Escribe caracteres en la impresora 1 0 06 Entrada salida directa por consola 1 0 07 Entrada directa por consola sin eco 1 0 08 Entrada por consola sin eco 1 0 09 Escribe string a STDOUT 1 0 DS DX Puntero a un string terminado en 4 0A Entrada con buffer por teclado 1 0 0B Lee estado de la entrada 1 0 0C Limpia buffer de entrada 1 0 0D Resetea disco 1 0 0E Asigna unidad de disco por defecto 1 0 0F Abre archivo 1 0 10 Cierra archivo 1 0 11 Encuentra primer archivo 1 0 12 Encuentra siguiente archivo 1 0 13 Borra archivo 1 0 14 Lectura secuencial 1 0 15 Escritura secuencial 1 0 16 Crea o trunca un archivo 1 0 17 Cambia nombre de un archivo 1 0 18 Reservado 1 0 19 Obtiene unidad de disco por defecto 1 0 1A Asigna direccion de transferencia de disco 1 0 1B Obtiene la informacion de asignacion allocation para la unidad por defecto 1 0 1C Obtiene la informacion de asignacion allocation para la unidad especificada 1 0 1D Reservado 1 0 1E Reservado 1 0 1F Obtiene el bloque de parametros de disco DPB para la unidad por defecto 1 0 20 Reservado 1 0 21 Lectura aleatoria 1 0 22 Escritura aleatoria 1 0 23 Obtiene el tamano del archivo en numero de registros 1 0 24 Asigna numero de registro aleatorio 1 0 25 Asigna vector de interrupcion 1 0 26 Crea PSP 1 0 27 Lee bloque aleatorio 1 0 28 Escribe bloque aleatorio 1 0 29 Parsea nombre de archivo 1 0 2A Obtiene la fecha 1 0 2B Ajusta la fecha 1 0 2C Obtiene la hora 1 0 2D Asigna la hora 1 0 2E Asigna la bandera de verificacion 1 0 3C Crea o trunca un archivo 2 CX Atributos del archivo DS DX gt nombre de archivo ASCIZ CF 1 si hubo error AX codigo de error 1 5 3D Abre archivo existente 2 AL Modos de acceso e intercambio DS DX gt Archivo ASCIZ 1 CF 1 si hubo error AX codigo de error AX handle de archivo 6 3F Lee desde un archivo o dispositivo 2 BX handle de archivo 1 DS DX gt datos CF 1 si hubo error AX codigo de error o bytes leidos 7 40 Escribe a archivo o dispositivo 2 BX handle de archivo CX bytes a escribir DS DX gt datos CF 1 si hubo error AX codigo de error o bytes escritos 8 3E Cierra archivo 2 BX handle de archivo CF 1 si hubo error AX codigo de error 9 42 Ajusta la posicion en el archivo 2 AL origen de la movida 0 inicio 1 actual 2 final BX handle de archivo CX DX con signo desplazamiento CF 1 si hubo error AX codigo de error DX AX posicion desde el principio 10 4C Sale del programa con un codigo de error indicado 2 0 AL codigo del error 0 salida normal Sistemas operativos que soportan el API del MS DOS EditarMS DOS la mas extensa encarnacion PC DOS Version de IBM DR DOS Clon de Digital Research ROM DOS Version en ROM FreeDOS De fuente abierta libre Microsoft Windows 1 x 2 x 3 x y 9x fueron basados en el DOSProgramas con soporte para el API del MS DOS EditarNTVDM EXE para Windows NT DOSEMU para Linux DOSBoxReferencias Editarwustl edu Description of MS DOS services The New Peter Norton Programmer s Guide to the IBM PC amp PS 2 by Peter Norton and Richard Wilton Microsoft Press 1987 ISBN 1 55615 131 4 ctyme com INT Calls by function antionline com Programming example code Int 21 AH 00h 090912 ctyme com Int 21 AH 01h 090912 ctyme com Int 21 AH 02h 090912 ctyme com Int 21 AH 09h 090912 ctyme com Int 21 AH 3Ch Creat 090911 ctyme com Int 21 AH 3Dh Open 090911 ctyme com Int 21 AH 3Fh Read 090911 ctyme com Int 21 AH 40h Write 090911 ctyme com Int 21 AH 3Eh Close 090911 ctyme com Int 21 AH 42h Lseek 090911 ctyme comVease tambien EditarMS DOS IBM PC DOS Llamadas de interrupcion del BIOS DOS 4GW DOS MZ ejecutableEnlaces externos EditarDOS INT 21h DOS Function Codes DOS Function Reference INT 21h Datos Q904228Obtenido de https es wikipedia org w index php title API del MS DOS amp oldid 135997077, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos