Lo mostrado a continuación es una lista completa de las llamadas proporcionadas por el IDEDOS v1.03 (y superior). Algunas llamadas no están disponibles en las versiones previas (o funcionan levemente diferente) y está marcadas convenientemente.

IN: -
OUT: D=version, E=sub-version
Fc=1, success
Estado del registro al retornar:
A.BC..HL/IX igual
.F..DE../.. diferente
Retorna información sobre la versión IDEDOS.

IN: -
OUT: A=numero de unidades detectadas (0 a 2)
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Inicializa el interface IDE y detecta el número de discos.
Esta rutina es únicamente para uso interno, y el resultado son es validad cuando es la primera rutina IDE realizada tras un reset.
En lugar de esta rutina, las aplicaciones deben usar la rutina IDE_DRIVE para detectar si una unidad determinada está presente.

IN: -
OUT: Fc=1, success
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Inicializa IDEDOS.
Esta rutina es únicamente para uso interno.

IN: A=unidad (0 o 1)
OUT(s): Fc=1
IX=Información sobre la dirección de la unidad
OUT(f): Fc=0, A=Código de error
Estado del registro al retornar:
..BCDEHL/.. igual
AF....../IX diferente
Retorna información sobre la dirección de la unidad.Puede ser usada para detectar si una unidad está presente o no (por éxito o fallo de esta rutina).

IN: IX=Partición manejada
B=página a transferir
HL=dirección
CDE=Número del sector lógico de 512-bytes
OUT(s): Fc=1
HL=Dirección final+1 (en segmentos de 3)
OUT(f): Fc=0, A=Código de error
Estado del registro al retornar:
..BC..../IX igual
AF..DEHL/.. diferente
Lectura de sector a bajo nivel.

IN: IX=Partición manejada
B=página a transferir
HL=dirección
CDE=Número del sector lógico de 512-bytes
OUT(s): Fc=1
HL=Dirección final+1 (en segmentos de 3)
OUT(f): Fc=0, A=Código de error
Estado del registro al retornar:
..BC..../IX igual
AF..DEHL/.. diferente
Escritura de sector a bajo nivel.

IN: A=unidad (0 o 1)
BC=número máximo de particiones (debe ser >2)
IX=cilindros
H=cabezas (v1.03+: bit 7=activo modo disco compartido)
L=sectores por pista
OUT(s): Fc=1
OUT(f): Fc=0, A=error
Estado del registro al retornar::
......../.. igual
AFBCDEHL/IX diferente
Formateo de una unidad IDE.
Desde v1.03 en adelante, Si el bit 7 de H está a 1, entonces el inicio del IDEDOS está en cilindro 0, cabeza 1, sector 1. Esto deja el sector de arranque intacto, permitiendo al disco ser compartido con particiones de PC.

IN: A=unidad (0 o 1)
HL=Dirección del nombre de la partición a buscar(16 bytes, separadas por espacios)
OUT(s): Fc=1
BC=Número de partición
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Retorna el número de partición para el nombre proporcionado en HL. La búsqueda no es sensible a minúsculas/mayúsculas, y se realiza solo en la unidad IDE especificada.

IN: A=unidad (0 o 1)
HL=address of 64-byte partition entry
OUT(s): Fc=1
BC=Número de partición
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Crea una nueva partición en la unidad IDE especificada. La entrada de la partición pasada por esta rutina debe tener un nombre, tipo y el número del sector lógico más largo. Opcionalmente, la información específica debe ser rellenada. A la salida, la información del sistema habrá sido actualizada.

IN: A=unidad (0 o 1)
BC=número de la partición
L= byte relleno
IX=Sector lógico máximo a inicializar (0=todos)
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Inicializa los sectores en la partición especificada. Los sectores de 512-bytes lógicos desde 0 a IX son llenados con el valor del byte en el registro L. Si IX=0, la partición completa es inicializada.
NOTE: Esta rutina solo trabaja correctamente con particiones hasta de 16Mb de tamaño.

IN: A=unidad (0 o 1)
BC=número de la partición
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Borra la partición especificada.

IN: A=unidad (0 o 1)
BC=número de la partición
HL=Dirección del nuevo nombre (16 bytes, separados por espacios)
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Renombre la partición seleccionada.

IN: A=unidad (0 o 1)
BC=número de la partición
HL=Dirección de la partición almacenada
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..BC..../IX igual
AF..DEHL/.. diferente
Leer entrada a los 64-bytes de una partición.

IN: A=unidad (0 o 1)
BC=número de la partición
HL=Dirección de la partición
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..BC..../IX igual
AF..DEHL/.. diferente
Escribir en la entrada de bytes de una partición.
Esta rutina es únicamente para uso interno. las aplicaciones deben usar las siguientes rutinas en su lugar: IDE_PARTITION_WINFO, IDE_PARTITION_SETINFO y IDE_PARTITION_RENAME

IN: A=unidad (0 o 1)
BC=número de la partición
HL=dirección de los 32-bytes con información sobre el tipo específico de partición;n
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Actualiza los 32-bytes con información sobre el tipo específico de partición especificada. La rutina IDE_PARTITION_SETINFO es recomendada en vez de esta.

IN: A=unidad (0 o 1)
BC=número de la partición
OUT(s): Fc=1
IX=partición manejada
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
Abre la partición especificada, devolviendo el valor en el registro IX.

IN: IX=partición manejada
OUT(s): Fc=1
Estado del registro al retornar:
..BCDEHL/.. igual
AF....../IX diferente
Cierra la partición referida por IX.
Apunte: Las aplicaciones/sistema operativo debe asegurarse de que no queda ficheros abiertos antes de cerrar la partición.

IN: A=unidad (0 o 1)
BC=número de la partición
L=offset del byte a retornar(0..31)
OUT(s): Fc=1
A=Valor byte
Fz=1 Si A=0, en otros casos Fz=0
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..BC..../IX igual
AF..DEHL/.. diferente
Lee un byte específico del campo de información específico de una partición;n.

IN: A=unidad (0 o 1)
BC=número de la partición
L=offset del byte a escribir(0..31)
H=Valor byte
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..BC..../IX igual
AF..DEHL/.. diferente
Escribe un byte específico del campo de información específico de una partición.

IN: A=tamaño del bloque en sectores, 1 (0.5K) hasta 32 (16K)
BC=Número máximo de bloques requeridos
OUT(s): Fc=1
IX=swap manejada
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
NOTA: Las llamadas a las particiones swap sólo deben ser usadas con IDEDOS v1.06+. Versiones anteriores contienen bugs, por lo que tu aplicacció debe comprobar que versión tienes utilizando la función IDE_VERSION antes de realizar esta llamada.
Localiza una partición swap libre y la abre, devolviéndolo en el registro IX. El tamaño del bloque especificado (cualquier múltiple de 0.5K hasta 16K) determina la cantidad de datos para intercambio entrada/salida con las otras llamadas IDE_SWAP_ . El tamaño de la partición swap requerida es calculada con (tamaño del bloque)* (Número máximo de bloques+1). El bloque actual es puesto a valor 0.

IN: IX=swap manejada
OUT(s): Fc=1
Estado del registro al retornar:
..BCDEHL/.. igual
AF....../IX diferente
NOTA: Las llamadas a las particiones swap sólo deben ser usadas con IDEDOS v1.06+. Versiones anteriores contienen bugs, por lo que tu aplicacció debe comprobar que versión tienes utilizando la función IDE_VERSION antes de realizar esta llamada.
Cierra la partición swap especificada.

IN: IX=swap manejada
B=página
HL=dirección
OUT(s): Fc=1
HL=Dirección final+1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..B...../IX igual
AF.CDEHL/.. diferente
NOTA: Las llamadas a las particiones swap sólo deben ser usadas con IDEDOS v1.06+. Versiones anteriores contienen bugs, por lo que tu aplicacció debe comprobar que versión tienes utilizando la función IDE_VERSION antes de realizar esta llamada.
Escribe un bloque de memoria en BHL hacía el bloque actual en la partición swap, e incrementa el número del bloque (saltando al bloque 0 si el final de la partición swap es encontrado).

IN: IX=swap manejada
B=página
HL=dirección
OUT(s): Fc=1
HL=Dirección final+1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..B...../IX igual
AF.CDEHL/.. diferente
NOTA: Las llamadas a las particiones swap sólo deben ser usadas con IDEDOS v1.06+. Versiones anteriores contienen bugs, por lo que tu aplicacció debe comprobar que versión tienes utilizando la función IDE_VERSION antes de realizar esta llamada.
Lee un bloque de memoria desde el bloque actual de la partición swap, e incrementa el número del bloque (saltando al bloque 0 si el final de la partición swap es encontrado).

IN: IX=swap manejada
B=página
HL=dirección
OUT(s): Fc=1
HL=Dirección final+1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..B...../IX igual
AF.CDEHL/.. diferente
NOTA: Las llamadas a las particiones swap sólo deben ser usadas con IDEDOS v1.06+. Versiones anteriores contienen bugs, por lo que tu aplicacció debe comprobar que versión tienes utilizando la función IDE_VERSION antes de realizar esta llamada.
Intercambia un bloque de memoria con el bloque actual de la partición swap, incrementa el número del bloque (saltando al bloque 0 si el final de la partición swap es encontrado).

IN: IX=swap manejada
OUT(s): Fc=1
BC=Número de bloque
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
....DEHL/IX igual
AFBC..../.. diferente
NOTA: Las llamadas a las particiones swap sólo deben ser usadas con IDEDOS v1.06+. Versiones anteriores contienen bugs, por lo que tu aplicacció debe comprobar que versión tienes utilizando la función IDE_VERSION antes de realizar esta llamada.
Retorna el número del bloque actual de la partición swap.

IN: IX=swap manejada
BC=Número de bloque
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..BCDEHL/IX igual
AF....../.. diferente
NOTA: Las llamadas a las particiones swap sólo deben ser usadas con IDEDOS v1.06+. Versiones anteriores contienen bugs, por lo que tu aplicacció debe comprobar que versión tienes utilizando la función IDE_VERSION antes de realizar esta llamada.
Indicamos el nuevo bloque actual de la partición swap.

IN: IX=swap manejada
A=nuevo tamaño del bloque en sectores, 1 (0.5K) hasta 32 (16K)
BC=Número máximo de bloques requeridos
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
NOTA: Las llamadas a las particiones swap sólo deben ser usadas con IDEDOS v1.06+. Versiones anteriores contienen bugs, por lo que tu aplicacció debe comprobar que versión tienes utilizando la función IDE_VERSION antes de realizar esta llamada.
Cámbia el tamaño de bloque de la partició swap actualmente abierta. Debes especificar el mañor número de bloques del nuevo tamaño requerido; Si este valor está fuera de rango, un error ocurrirá y la partición swap permanecerá sin cambios. Si todo es correcto, el número del bloque actual será reseteado a 0.

IN: A=unidad (0 o 1), y dispositivo físico:
2=Disquetera 0
3=Disquetera 1
4=RAMdisk
BC=número de la partición
L=Letra para la unidad de 'A' hasta 'P' (mayúsculas)
Si el bit 6 del FLAGS3 está a "1", Este mapeado se volverá permanente,y tiene efecto al arrancar
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Mapea una unidad +3DOS a la partición espefificada o al dispositivo físico ( esto causa que la partición sea abierta para esa unidad ).

IN: L=Letra para la unidad de 'A' hasta 'P' (mayúsculas)
Si el bit 6 del FLAGS3 está a "1", cualquier mapeado permanente que tuviese esa unidad será eliminado
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Elimina el mapeado para una unidad específica (cerrando una partición si es necesario).

IN: L=Letra para la unidad de 'A' hasta 'P' (mayúsculas)
BC=dirección del buffer de 18-bytes
OUT(s): Fc=1
Fz=1 si no está mapeado (el resto de información no es valida)
Fz=0, el mapeado es como indico a continuación:
A=unidad (0 o 1), y dispositivo físico:
2=Disquetera 0
3=Disquetera 1
4=RAMdisk
BC=número de partición (si es un disco duro)
buffer contienen descripción del texto, o en blanco si no está mapeada
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Retorna detalles sobre el mapeado actual de una letra de una unidad especificada.

IN: L=Letra para la unidad de 'A' hasta 'P' (mayúsculas)
OUT(s): Fc=1
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Elimina cualquier mapeado permanente una letra de una unidad especificada.

IN: HL=filespec, terminado con $ff
BC=dirección de la rutinas (0=la rutina está situada en la pila)
OUT(s): No vuelve nada si el proceso es acertado.
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
Carga y ejecuta un fichero snapshot Z80.

IN: A=número de dispositivo
DE=dirección de la cadena para el canal especificado a abrir
BC=longitud de la cadena para el canal especificado a abrir
OUT(s): Fc=1
OUT(f): Fc=0
A=+3 código de error BASIC: $17=dispositivo inválido, $0e=nombre de fichero inválida
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
Apunte: Esta rutina debe ser realizada con la configuración de memoria ROM2/5/2/0 , no con la configuración normal del DOS. La pila debe estar localizada entre STKEND y RAMTOP (la posición normal para el +3 BASIC). El error retornado pertenece a los mensajes del +3 BASIC, no del +3DOS.
Abre un dispositivo A al canal especificado por la cadena DE, longitud BC. La cadena proporcionada puede aceptar cualquier cosa del comando BASIC OPEN # .

IN: A=número de dispositivo
OUT(s): Fc=1
OUT(f): Fc=0
A=+3 código de error BASIC: $17=dispositivo inválido, $0e=dispositivo E/S inválido
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
Apunte: Esta rutina debe ser realizada con la configuración de memoria ROM2/5/2/0 , no con la configuración normal del DOS. La pila debe estar localizada entre STKEND y RAMTOP (la posición normal para el +3 BASIC). El error retornado pertenece a los mensajes del +3 BASIC, no del +3DOS.
Cierra un canal asignado a un dispositivo A. Si A es uno de los streams estándar 0..3, entonces el canal por defecto es reasignado antes de cerrarse.

IN: el dispositivo requerido ha sido realizado vía $1601 de la ROM 3
OUT(s): A=byte
OUT(f): no vuelve, se genera un error +3 BASIC
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
NOTE: Esta rutina debe ser realizada con la configuración de memoria ROM2/5/2/0 , no con la configuración normal del DOS. La pila debe estar localizada entre STKEND y RAMTOP (la posición normal para el +3 BASIC). El error retornado pertenece a los mensajes del +3 BASIC, no del +3DOS. Cualquier error genera un mensaje de error del +3 BASIC,y no se devuelve nada a la rutina.Antes de llamar a esta rutina, el dispositivo deseado se debe realizar invocando a la rutina $1601 in ROM 3 coh A=número del dispositivo.
Coge el siguiente carácter del dispositivo actual.

IN: el dispositivo requerido ha sido realizado vía $1601 de la ROM 3
C=byte
OUT(s): -
OUT(f): no vuelve, se genera un error +3 BASIC
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
NOTE: Esta rutina debe ser realizada con la configuración de memoria ROM2/5/2/0 , no con la configuración normal del DOS. La pila debe estar localizada entre STKEND y RAMTOP (la posición normal para el +3 BASIC). El error retornado pertenece a los mensajes del +3 BASIC, no del +3DOS. Cualquier error genera un mensaje de error del +3 BASIC,y no se devuelve nada a la rutina.Antes de llamar a esta rutina, el dispositivo deseado se debe realizar invocando a la rutina $1601 in ROM 3 coh A=número del dispositivo.
Manda un carácter hacía el dispositivo actual.

IN: el dispositivo requerido ha sido realizado vía $1601 de la ROM 3
B=reason code:
0=toma puntero del dispositivo
1=pone puntero del dispositivo
2=toma dispositivo extendido
DEHL=puntero, sólo para B=1
OUT(s): DEHL=puntero, sólo para B=0
DEHL=extendido, sólo para B=2
OUT(f): no vuelve, se genera un error +3 BASIC
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
NOTE: Esta rutina debe ser realizada con la configuración de memoria ROM2/5/2/0 , no con la configuración normal del DOS. La pila debe estar localizada entre STKEND y RAMTOP (la posición normal para el +3 BASIC). El error retornado pertenece a los mensajes del +3 BASIC, no del +3DOS. Cualquier error genera un mensaje de error del +3 BASIC,y no se devuelve nada a la rutina.Antes de llamar a esta rutina, el dispositivo deseado se debe realizar invocando a la rutina $1601 in ROM 3 coh A=número del dispositivo.
Pone o lee el puntero o extendido requerido del dispositivo actual. Esta operación sólo está soportada por algunos canales extendidos.

Requiere IDEDOS v1.01+
IN: HL=Dirección origen
DE=Dirección destino
BC=longitud
OUT(s): Fc=1 (Siempre exitoso en ResiDOS)
OUT(f): Fc=0, A=código de error (rc_notimp en el +3e)
Estado del registro al retornar:
......../IX igual
AFBCDEHL/.. diferente
Esta rutina es proporcionad para que los datos que existan en la memoria del ResiDOS puedan ser leídas o escritas por programas. Tales direccione están referenciadas en la documentación que empiezan "en la página 7" . Puede usar esta rutina, con una dirección origen o destino, y tu propio buffer como la otra dirección. En el +3e, esta rutina no está implementada y retorna un error.

Requiere IDEDOS v1.02+
IN: B=pagina para transferir
C=unidad (0 o 1)
HL=Dirección del buffer de 512-byte
OUT(s): Fc=1
HL=Dirección final+1 (en segmentos de 3)
OUT(f): Fc=0, A=código de error
Estado del registro al retornar:
..BCDE../IX igual
AF....HL/.. diferente
Lee la información de la identidad de la unidad (512 bytes), la cual puede ser examinada para determinar el tipo de disco y el fabricante, también como otra información.
Si se está usando un interface de 8-bit, entonces una llamada satisfactoria se convierte en un códido de error conFc=0, A=rc_8bitdata. Esto significa que los primeros 256 bytes de el buffer contienen los bytes menos significativos de cada una de las 256 "palabras" de la unidad. Los bytes más significativos no están disponibles, a excepción del byte más significativo de la "palabra" 1 ( número de cilindros en CHS), la cual es almacena en el byte 256. Bytes 257-511 no son válidos para los interfaces de 8-bits.

Requires IDEDOS v1.02+
IN: A=unidad (0 o 1)
OUT(s): A=número de la partición abierta, excluyendo la del sistema
HL=partición libre manejada , o 0
Fc=1
Estado del registro al retornar:
......../.. igual
AFBCDEHL/IX diferente
Devuelve el número de particiones abiertas ( exceptuando la partición del sistema, la cual está siempre abierta) de la unidad especificada.
