|
|
|
@ -103,7 +103,7 @@ ASCI_INIT: |
|
|
|
LD A,Z180_RDR0 ; LOAD RDR PORT ADDRESS |
|
|
|
CALL PRTHEXBYTE ; PRINT IT |
|
|
|
|
|
|
|
CALL PC_SPACE ; FORMATTING |
|
|
|
PRTS(" MODE=$") ; FORMATTING |
|
|
|
LD DE,(ASCI0_CONFIG) ; LOAD CONFIG |
|
|
|
CALL PS_PRTSC0 ; PRINT IT |
|
|
|
; |
|
|
|
@ -117,7 +117,7 @@ ASCI_INIT: |
|
|
|
LD A,Z180_RDR1 ; LOAD RDR PORT ADDRESS |
|
|
|
CALL PRTHEXBYTE ; PRINT IT |
|
|
|
|
|
|
|
CALL PC_SPACE ; FORMATTING |
|
|
|
PRTS(" MODE=$") ; FORMATTING |
|
|
|
LD DE,(ASCI1_CONFIG) ; LOAD CONFIG |
|
|
|
CALL PS_PRTSC0 ; PRINT IT |
|
|
|
; |
|
|
|
@ -214,20 +214,47 @@ ASCI0_INITDEV1: |
|
|
|
LD L,A ; MOVE TO L |
|
|
|
LD H,0 ; CLEAR MSB |
|
|
|
PUSH DE ; SAVE CONFIG |
|
|
|
CALL ASCI_CNTLB ; DERIVE CNTLB VALUE |
|
|
|
CALL ASCI_CNTLB ; DERIVE CNTLB VALUE IN C |
|
|
|
POP DE ; RESTORE CONFIG |
|
|
|
;CALL TSTPT |
|
|
|
RET NZ ; ABORT ON ERROR |
|
|
|
LD (ASCI0_CONFIG),DE ; RECORD UPDATED CONFIG |
|
|
|
; |
|
|
|
LD B,$64 ; B := DEFAULT CNTLB VALUE |
|
|
|
|
|
|
|
; DATA BITS |
|
|
|
LD A,E ; LOAD CONFIG BYTE |
|
|
|
AND $03 ; ISOLATE DATA BITS |
|
|
|
CP $03 ; 8 DATA BITS? |
|
|
|
JR Z,ASCI0_INITDEV2 ; IF SO, NO CHG, CONTINUE |
|
|
|
RES 2,B ; RESET CNTLA BIT 2 FOR 7 DATA BITS |
|
|
|
|
|
|
|
ASCI0_INITDEV2: |
|
|
|
; STOP BITS |
|
|
|
BIT 2,E ; TEST STOP BITS CONFIG BIT |
|
|
|
JR Z,ASCI0_INITDEV3 ; IF CLEAR, NO CHG, CONTINUE |
|
|
|
SET 0,B ; SET CNTLA BIT 0 FOR 2 STOP BITS |
|
|
|
|
|
|
|
ASCI0_INITDEV3: |
|
|
|
; PARITY ENABLE |
|
|
|
BIT 3,E ; TEST PARITY ENABLE CONFIG BIT |
|
|
|
JR Z,ASCI0_INITDEV4 ; NO PARITY, SKIP ALL PARITY CHGS |
|
|
|
SET 1,B ; SET CNTLA BIT 1 FOR PARITY ENABLE |
|
|
|
|
|
|
|
; PARITY EVEN/ODD |
|
|
|
BIT 4,E ; TEST EVEN PARITY CONFIG BIT |
|
|
|
JR NZ,ASCI0_INITDEV4 ; EVEN PARITY, NO CHG, CONTINUE |
|
|
|
SET 4,C ; SET CNTLB BIT 4 FOR ODD PARITY |
|
|
|
|
|
|
|
ASCI0_INITDEV4: |
|
|
|
; IMPLEMENT CONFIGURATION |
|
|
|
LD A,66H ; LOAD DEFAULT ASEXT VALUE |
|
|
|
LD A,$66 ; LOAD DEFAULT ASEXT VALUE |
|
|
|
OUT0 (Z180_ASEXT0),A ; SET IT |
|
|
|
LD A,64H ; LOAD DEFAULT CNTLA VALUE |
|
|
|
OUT0 (Z180_CNTLA0),A ; SET IT |
|
|
|
LD A,C ; LOAD CNTLB VALUE DETERMINED ABOVE |
|
|
|
OUT0 (Z180_CNTLB0),A ; SET IT |
|
|
|
LD A,B ; FINAL CNTLA VALUE TO ACCUM |
|
|
|
OUT0 (Z180_CNTLA0),A ; WRITE TO CNTLA REGISTER |
|
|
|
LD A,C ; FINAL CNTLB VALUE TO ACCUM |
|
|
|
OUT0 (Z180_CNTLB0),A ; WRITE TO CNTLA REGISTER |
|
|
|
; |
|
|
|
LD (ASCI0_CONFIG),DE ; RECORD UPDATED CONFIG |
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
RET ; DONE |
|
|
|
; |
|
|
|
@ -325,16 +352,43 @@ ASCI1_INITDEV1: |
|
|
|
POP DE ; RESTORE CONFIG |
|
|
|
;CALL TSTPT |
|
|
|
RET NZ ; ABORT ON ERROR |
|
|
|
LD (ASCI1_CONFIG),DE ; RECORD UPDATED CONFIG |
|
|
|
; |
|
|
|
LD B,$64 ; B := DEFAULT CNTLB VALUE |
|
|
|
|
|
|
|
; DATA BITS |
|
|
|
LD A,E ; LOAD CONFIG BYTE |
|
|
|
AND $03 ; ISOLATE DATA BITS |
|
|
|
CP $03 ; 8 DATA BITS? |
|
|
|
JR Z,ASCI1_INITDEV2 ; IF SO, NO CHG, CONTINUE |
|
|
|
RES 2,B ; RESET CNTLA BIT 2 FOR 7 DATA BITS |
|
|
|
|
|
|
|
ASCI1_INITDEV2: |
|
|
|
; STOP BITS |
|
|
|
BIT 2,E ; TEST STOP BITS CONFIG BIT |
|
|
|
JR Z,ASCI1_INITDEV3 ; IF CLEAR, NO CHG, CONTINUE |
|
|
|
SET 0,B ; SET CNTLA BIT 0 FOR 2 STOP BITS |
|
|
|
|
|
|
|
ASCI1_INITDEV3: |
|
|
|
; PARITY ENABLE |
|
|
|
BIT 3,E ; TEST PARITY ENABLE CONFIG BIT |
|
|
|
JR Z,ASCI1_INITDEV4 ; NO PARITY, SKIP ALL PARITY CHGS |
|
|
|
SET 1,B ; SET CNTLA BIT 1 FOR PARITY ENABLE |
|
|
|
|
|
|
|
; PARITY EVEN/ODD |
|
|
|
BIT 4,E ; TEST EVEN PARITY CONFIG BIT |
|
|
|
JR NZ,ASCI1_INITDEV4 ; EVEN PARITY, NO CHG, CONTINUE |
|
|
|
SET 4,C ; SET CNTLB BIT 4 FOR ODD PARITY |
|
|
|
|
|
|
|
ASCI1_INITDEV4: |
|
|
|
; IMPLEMENT CONFIGURATION |
|
|
|
LD A,66H ; LOAD DEFAULT ASEXT VALUE |
|
|
|
LD A,$66 ; LOAD DEFAULT ASEXT VALUE |
|
|
|
OUT0 (Z180_ASEXT1),A ; SET IT |
|
|
|
LD A,64H ; LOAD DEFAULT CNTLA VALUE |
|
|
|
OUT0 (Z180_CNTLA1),A ; SET IT |
|
|
|
LD A,C ; LOAD CNTLB VALUE DETERMINED ABOVE |
|
|
|
OUT0 (Z180_CNTLB1),A ; SET IT |
|
|
|
LD A,B ; FINAL CNTLA VALUE TO ACCUM |
|
|
|
OUT0 (Z180_CNTLA1),A ; WRITE TO CNTLA REGISTER |
|
|
|
LD A,C ; FINAL CNTLB VALUE TO ACCUM |
|
|
|
OUT0 (Z180_CNTLB1),A ; WRITE TO CNTLA REGISTER |
|
|
|
; |
|
|
|
LD (ASCI1_CONFIG),DE ; RECORD UPDATED CONFIG |
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
RET ; DONE |
|
|
|
; |
|
|
|
|