|
|
|
@ -13,6 +13,13 @@ PIO4B .EQU ; ECB-4PIO |
|
|
|
PIO5A .EQU ; ECB-4PIO |
|
|
|
PIO5B .EQU ; ECB-4PIO |
|
|
|
|
|
|
|
PIO_Input .EQU $0000 |
|
|
|
PIO_Output .EQU $0001 |
|
|
|
|
|
|
|
|
|
|
|
DEFPIOCFGA .EQU $8000 + PIO_Input |
|
|
|
DEFPIOCFGB .EQU $8000 + PIO_Output |
|
|
|
|
|
|
|
PIO_NONE .EQU 0 |
|
|
|
PIO_ZPIO .EQU 1 |
|
|
|
PIO_8255 .EQU 2 |
|
|
|
@ -122,7 +129,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 0 ; PIO CHANNEL (A) |
|
|
|
.DB PIOBASE+2 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOACFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGA ; LINE CONFIGURATION |
|
|
|
.DW SIOA_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL B |
|
|
|
@ -130,7 +137,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 1 ; PIO CHANNEL (B) |
|
|
|
.DB PIOBASE+3 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOBCFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGB ; LINE CONFIGURATION |
|
|
|
.DW SIOB_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL A |
|
|
|
@ -138,7 +145,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 0 ; PIO CHANNEL (A) |
|
|
|
.DB PIOBASE+6 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOACFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGA ; LINE CONFIGURATION |
|
|
|
.DW SIOA_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL B |
|
|
|
@ -146,14 +153,14 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 1 ; PIO CHANNEL (B) |
|
|
|
.DB PIOBASE+7 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOBCFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGB ; LINE CONFIGURATION |
|
|
|
.DW SIOB_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; PIO CHANNEL A |
|
|
|
.DB 4 ; DEVICE NUMBER (SET DURING INIT) |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 0 ; PIO CHANNEL (A) |
|
|
|
.DB 4PIOBASE+2 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOACFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGA ; LINE CONFIGURATION |
|
|
|
.DW SIOA_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL B |
|
|
|
@ -161,7 +168,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 1 ; PIO CHANNEL (B) |
|
|
|
.DB 4PIOBASE+3 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOBCFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGB ; LINE CONFIGURATION |
|
|
|
.DW SIOB_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL A |
|
|
|
@ -169,7 +176,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 0 ; PIO CHANNEL (A) |
|
|
|
.DB 4PIOBASE+6 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOACFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGA ; LINE CONFIGURATION |
|
|
|
.DW SIOA_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL B |
|
|
|
@ -177,7 +184,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 1 ; PIO CHANNEL (B) |
|
|
|
.DB 4PIOBASE+7 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOBCFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGB ; LINE CONFIGURATION |
|
|
|
.DW SIOB_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL A |
|
|
|
@ -185,7 +192,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 0 ; PIO CHANNEL (A) |
|
|
|
.DB 4PIOBASE+10 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOACFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGA ; LINE CONFIGURATION |
|
|
|
.DW SIOA_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL B |
|
|
|
@ -193,7 +200,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 1 ; PIO CHANNEL (B) |
|
|
|
.DB 4PIOBASE+11 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOBCFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGB ; LINE CONFIGURATION |
|
|
|
.DW SIOB_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL A |
|
|
|
@ -201,7 +208,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 0 ; PIO CHANNEL (A) |
|
|
|
.DB 4PIOBASE+14 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOACFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGA ; LINE CONFIGURATION |
|
|
|
.DW SIOA_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL B |
|
|
|
@ -209,7 +216,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 1 ; PIO CHANNEL (B) |
|
|
|
.DB 4PIOBASE+15 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOBCFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGB ; LINE CONFIGURATION |
|
|
|
.DW SIOB_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL A |
|
|
|
@ -217,7 +224,7 @@ PIO_CFG: |
|
|
|
.DB PIO_ZPIO ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 0 ; PIO CHANNEL (A) |
|
|
|
.DB 4PIOBASE+14 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOACFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGA ; LINE CONFIGURATION |
|
|
|
.DW SIOA_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; PIO CHANNEL B |
|
|
|
@ -225,7 +232,7 @@ PIO_CFG: |
|
|
|
.DB PIO_8255 ; PIO TYPE (SET DURING INIT) |
|
|
|
.DB 1 ; PIO CHANNEL (B) |
|
|
|
.DB 4PIOBASE+15 ; BASE PORT (CMD PORT) |
|
|
|
.DW DEFSIOBCFG ; LINE CONFIGURATION |
|
|
|
.DW DEFPIOCFGB ; LINE CONFIGURATION |
|
|
|
.DW SIOB_RCVBUF ; POINTER TO RCV BUFFER STRUCT |
|
|
|
; |
|
|
|
; |
|
|
|
@ -259,6 +266,10 @@ PIO_IST: |
|
|
|
PIO_OST: |
|
|
|
RET |
|
|
|
; |
|
|
|
; PIO_INITDEV - Configure device. |
|
|
|
; If DE = FFFF then extract the configuratio information from the table of devices and program the device using those settings. |
|
|
|
; Otherwise use the configuration information in DE to program those settings and save them in the device table |
|
|
|
|
|
|
|
PIO_INITDEV: |
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
RET |
|
|
|
@ -284,7 +295,9 @@ PIO_QUERY: |
|
|
|
PIO_DEVICE: |
|
|
|
LD D,CIODEV_PIO ; D := DEVICE TYPE |
|
|
|
LD E,(IY) ; E := PHYSICAL UNIT |
|
|
|
LD C,$80 |
|
|
|
LD A,E |
|
|
|
SET 7,A |
|
|
|
LD C,A |
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
RET |
|
|
|
; |
|
|
|
|