Llamadas al IDEDOS

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.

__________________________________________________________________

IDE_VERSION ($00A0)

       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.

__________________________________________________________________

IDE_INTERFACE ($00A3)

       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.

__________________________________________________________________

IDE_INIT ($00A6)

       IN:  -
      OUT:  Fc=1, success

      Estado del registro al retornar:
      ......../IX igual
      AFBCDEHL/.. diferente

Inicializa IDEDOS.

Esta rutina es únicamente para uso interno.

__________________________________________________________________

IDE_DRIVE ($00A9)

       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).

__________________________________________________________________

IDE_SECTOR_READ ($00AC)

       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.

__________________________________________________________________

IDE_SECTOR_WRITE ($00AF)

       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.

__________________________________________________________________

IDE_FORMAT ($00B2)

       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.

__________________________________________________________________

IDE_PARTITION_FIND ($00B5)

       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.

__________________________________________________________________

IDE_PARTITION_NEW ($00B8)

       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.

__________________________________________________________________

IDE_PARTITION_INIT ($00BB)

       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.

__________________________________________________________________

IDE_PARTITION_ERASE ($00BE)

       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.

__________________________________________________________________

IDE_PARTITION_RENAME ($00C1)

       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.

__________________________________________________________________

IDE_PARTITON_READ ($00C4)

       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.

__________________________________________________________________

IDE_PARTITION_WRITE ($00C7)

       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

__________________________________________________________________

IDE_PARTITION_WINFO ($00CA)

       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.

__________________________________________________________________

IDE_PARTITION_OPEN ($00CD)

       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.

__________________________________________________________________

IDE_PARTITION_CLOSE ($00D0)

       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.

__________________________________________________________________

IDE_PARTITION_GETINFO ($00D3)

       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.

__________________________________________________________________

IDE_PARTITION_SETINFO ($00D6)

       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.

__________________________________________________________________

IDE_SWAP_OPEN ($00D9)

       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.

__________________________________________________________________

IDE_SWAP_CLOSE ($00DC)

       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.

__________________________________________________________________

IDE_SWAP_OUT ($00DF)

       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).

__________________________________________________________________

IDE_SWAP_IN ($00E2)

       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).

__________________________________________________________________

IDE_SWAP_EX ($00E5)

       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).

__________________________________________________________________

IDE_SWAP_POS ($00E8)

       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.

__________________________________________________________________

IDE_SWAP_MOVE ($00EB)

       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.

__________________________________________________________________

IDE_SWAP_RESIZE ($00EE)

       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.

__________________________________________________________________

IDE_DOS_MAP ($00F1)

       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 ).

__________________________________________________________________

IDE_DOS_UNMAP ($00F4)

       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).

__________________________________________________________________

IDE_DOS_MAPPING ($00F7)

       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.

__________________________________________________________________

IDE_DOS_UNPERMANENT ($00FA)

       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.

__________________________________________________________________

IDE_SNAPLOAD ($00FD)

       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.

__________________________________________________________________

IDE_STREAM_OPEN ($0056)

       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 # .

__________________________________________________________________

IDE_STREAM_CLOSE ($0059)

       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.

__________________________________________________________________

IDE_STREAM_IN ($005c)

       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.

__________________________________________________________________

IDE_STREAM_OUT ($005f)

       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.

__________________________________________________________________

IDE_STREAM_PTR ($0062)

       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.

__________________________________________________________________

IDE_ACCESS_DATA ($019f)

   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.

__________________________________________________________________

IDE_IDENTIFY ($01a2)

   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.

__________________________________________________________________

IDE_PARTITIONS ($01a5)

   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.

__________________________________________________________________

Información técnica sobre el +3e

Volver a la página principal del ZX Spectrum +3e