$save nolist ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; idevcf.inc ; I/O System Device-Driver Configuration Include file. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Define environment. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; data segment rw public data ends code segment er public extrn nucerror: near code ends bios_code segment er public bios_code ends bios_data segment rw public bios_data ends true equ 0FFH false equ 000H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Device Unit Information Block Definition Structure. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; define_duib struc db ' ' ; Name(14) dw 0 ; file$drivers db 0 ; functs db 0 ; flags dw 0 ; dev$gran dw 0 ; low(dev$size) dw 0 ; high(dev$size) db 0 ; Device db 0 ; Unit dw 0 ; dev$unit dd 0 ; init$io dd 0 ; finish$io dd 0 ; queue$io dd 0 ; cancel$io dp 0 ; device$info dp 0 ; unit$info dw 0FFFFH ; update$timeout dw 0 ; num$buffers db 130 ; priority db false ; fixed update boolean db 0 ; max$buffers db 0 ; filler byte define_duib ends ; ; Define Common Device Information Block. ; common_dev_info struc dw 0 ; Interrupt level db 0 ; Interrupt Task Priority dd 0 ; Interrupt Procedure Stack Size dd 0 ; Device Local Data Size dw 0 ; Number of Device-Units dd 0 ; Initialization Procedure dd 0 ; Finish Procedure dd 0 ; Start I/O Procedure dd 0 ; Stop I/O Procedure dd 0 ; Interrupt Procedure dw 0 ; Interrupt Time Limit dw 0 ; Filler A dw 0 ; Filler B common_dev_info ends ; ; Define Random-Access Device Information Block. ; radev_dev_info struc dw 0 ; Interrupt level db 0 ; Interrupt Task Priority dd 0 ; Interrupt Procedure Stack Size dd 0 ; Device Local Data Size dw 0 ; Number of Device-Units dd 0 ; Initialization Procedure dd 0 ; Finish Procedure dd 0 ; Start I/O Procedure dd 0 ; Stop I/O Procedure dd 0 ; Interrupt Procedure dw 0 ; Interrupt Time Limit dw 0 ; Filler A dw 0 ; Filler B radev_dev_info ends ; ; Define Random-Access Device Unit Information ; radev_unit_info struc dw 0 ; Track Size (bytes) dw 0 ; Max Number of Re-tries on Errors dw 0 ; Reserved radev_unit_info ends ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Define macro which gen's various publics needed by the I/O system. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %*define(device_tables(num_duib,num_dev_unit,num_devices,timeout)) (%' bios_code segment numduib dw %num_duib public numduib numdevunit dw %num_dev_unit public numdevunit numdevices dw %num_devices public numdevices fixed_update_timeout dw %timeout public fixed_update_timeout bios_code ends bios_data segment devunittable db %num_dev_unit dup (?) public devunittable devicetable db %num_devices dup (?,?,?) public devicetable bios_data ends ) $restore $genonly