3.1. Instalar el driver:

El driver se instala al ejecutar el programa del driver. 
Notar: Hay que instalar el driver antes de ejecutar la interfaz del usuario.
Efectos colaterales

3.2. Servicios de la int 61h. General


Como norma general, si no se dice otra cosa, al volver del servicio en AH está el estatus del resultado:

Registro

Entrada /salida

Valor

Descripción

AH

S

0

Operación completada con éxito

AH

S

0Feh

Error de rango de algún parámetro.

AH

S

0FDh

función no implementada

AH

S

0FCh

Función no funcional por razones de limitaciones del hardware.

3.2.1. Servicio AH=0 : Comprobación del driver

Registro

Entrada /salida

Valor

Descripción

AH

E

0

Comprobación del driver

AX

S

55Abh

Numero fijo

CL

S

X

Numero del grupo de practica (1,2,3,...)

DL

S

X

Letra del grupo a, b ó c (1 para a, 2 para b, 3 para c ...).

DH

S

X

Número de pareja

3.2.2. Servicio AH=1, Definir parámetros del driver  

     > AH=1

         > AL= 0 Dar parámetros del reloj en milisegundos

           Parámetros de entrada

                  CX = Periodo entre las muestras en milisegundos

         > AL=1 Condición de arranque (START).

             Parámetros de entrada:  a cada canal corresponde un bit en CL, BH, BL (canal 0 bit 0, canal 1 bit 1 etc.).

              Para cada canal la  condición se define de la siguiente manera:

       CL,BH,BL – condición de START.

bit en  CL,BH,BL

            0   0   0   IGNORAR Se ignora el bit al evaluar la condición

            1   0   1   Nivel ALTO

            1   0   0   Nivel BAJO

            1   1   0   Flanco de Bajada (1->0)     

            1   1   1   Flanco de Subida   (0->1)    

        > OPCIONAL -- AL=2 Condición de parada (START).

             Parámetros de entrada:  (registros -- como AH=1 AL=1.)

       CL,BH,BL – condición de STOP.

          bit in CL, BH, BL

            0   0   0   IGNORAR Se ignora el bit al evaluar la condición

            1   0   1   Nivel ALTO

            1   0   0   Nivel BAJO

            1   1   0   Flanco de Bajada (1->0)     

            1   1   1   Flanco de Subida   (0->1)    

3.2.3. AH=2 : Start/Stop del  proceso de adquisición de datos.

     > AL=0 STOP,  parar el proceso de adquisición.

           Efectos colaterales:

           Se para el proceso de adquisición y el proceso de emisión de muestras.
           Se puede también limpiar el bufer de entrada, es decir después del STOP los datos no son validos.

     > AL=1 START, arrancar el proceso de adquisición.

            >  DS:SI  – buffer cíclico del generador de muestras.
            >  CX     -- número bytes en el buffer. max 4K bytes.

            Efectos colaterales:

            Se limpia el bufer de entrada y el flag de overrun. Otros -- Ver la ultima sección.

3.2.4. AH=3 : Lectura del buffer

     Parámetros de entrada:

     > ES:DI – espacio del programa del usuario (buffer) con longitud mínima de CX reservada para los datos.

     > CX    - número máximo de muestras para devolver.

     Parámetros de salida:

     | CX    - número real de muestras devueltas

     | DX    - Número de muestras todavía en el buffer del driver.

     | AL    - 0 ok.

                1 buffer overrun -- el driver simulador no devuelve esta condición.
     | BX    - OPCIONAL número de muestras perdidas en condiciones de overrun.


     Efectos colaterales:

     Se libera tanto espacio en el buffer del driver como datos se han leído.

3.3. Funcionamiento al ejecutar el servicio START.

Con cada expiración del periodo de muestreo se emite una muestra a la salida de LPT1 y se espera la condición de START.

Si la condición de START se encuentra, la grabación de la señal se hace con la expiración de cada periodo de muestreo y termina al estar parada por el usuario (AX=0300h).  Los datos se graban en un buffer ciclico. La emisión de muestras sigue.

Si el buffer se llena (overrun) hay que indicarlo cuando el usuario pide datos, aunque se debe seguir grabando y emitiendo muestras.