mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Add basic support for configurable port and baud
This commit is contained in:
@@ -10,26 +10,421 @@
|
||||
; F E D C B A 9 8 7 6 5 4 3 2 1 0
|
||||
; -- MSB (D REGISTER) -- -- LSB (E REGISTER) --
|
||||
;
|
||||
SIO_DEBUG .EQU FALSE
|
||||
;
|
||||
SIO_NONE .EQU 0
|
||||
SIO_SIO .EQU 1
|
||||
;
|
||||
#IF (SIOMODE == SIOMODE_RC)
|
||||
SIOA_CMD .EQU $80
|
||||
SIOA_DAT .EQU $81
|
||||
SIOB_CMD .EQU $82
|
||||
SIOB_DAT .EQU $83
|
||||
SIOA_CMD .EQU SIOBASE + $00 ;PS
|
||||
SIOA_DAT .EQU SIOBASE + $01 ;PS
|
||||
SIOB_CMD .EQU SIOBASE + $02 ;PS
|
||||
SIOB_DAT .EQU SIOBASE + $03 ;PS
|
||||
SIO_WR4 .EQU $C4 ;PS CLK/64=115200 BAUD, NO PARITY, 1 STOP BIT ; 11000100 11=*64 00=8bit sync character 01=1 stop bit 0 = parity even/odd 0=parity disabled
|
||||
#ENDIF
|
||||
;
|
||||
#IF (SIOMODE == SIOMODE_SMB)
|
||||
SIOA_CMD .EQU $82
|
||||
SIOA_DAT .EQU $80
|
||||
SIOB_CMD .EQU $83
|
||||
SIOB_DAT .EQU $81
|
||||
SIOA_CMD .EQU SIOBASE + $02 ;PS
|
||||
SIOA_DAT .EQU SIOBASE + $00 ;PS
|
||||
SIOB_CMD .EQU SIOBASE + $03 ;PS
|
||||
SIOB_WR4 .EQU SIOBASE + $01 ;PS
|
||||
SIO_CFG .EQU $C4 ;PS CLK/64=115200 BAUD, NO PARITY, 1 STOP BIT ; 11000100 11=*64 00=8bit sync character 01=1 stop bit 0 = parity even/odd 0=parity disabled
|
||||
#ENDIF
|
||||
;
|
||||
#IF (SIOMODE == SIOMODE_ZP) ;PS
|
||||
SIOA_CMD .EQU SIOBASE + $06 ;PS
|
||||
SIOA_DAT .EQU SIOBASE + $04 ;PS
|
||||
SIOB_CMD .EQU SIOBASE + $07 ;PS
|
||||
SIOB_DAT .EQU SIOBASE + $05 ;PS
|
||||
SIO_WR4 .EQU $44 ;PS CLK/16=38400 BAUD, NO PARITY, 1 STOP BIT ; PS 01000100 10=*16 00=8bit sync character 01=1 stop bit 0 = parity even/odd 0=parity disabled
|
||||
#ENDIF ;PS
|
||||
;
|
||||
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 75)
|
||||
SIOBAUD1 .EQU 0
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 150)
|
||||
SIOBAUD1 .EQU 1
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 300)
|
||||
SIOBAUD1 .EQU 2
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 600)
|
||||
SIOBAUD1 .EQU 3
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 1200)
|
||||
SIOBAUD1 .EQU 4
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 2400)
|
||||
SIOBAUD1 .EQU 5
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 4800)
|
||||
SIOBAUD1 .EQU 6
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 9600)
|
||||
SIOBAUD1 .EQU 7
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 19200)
|
||||
SIOBAUD1 .EQU 8
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 38400)
|
||||
SIOBAUD1 .EQU 9
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 76800)
|
||||
SIOBAUD1 .EQU 10
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 153600)
|
||||
SIOBAUD1 .EQU 11
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 307200)
|
||||
SIOBAUD1 .EQU 12
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 614400)
|
||||
SIOBAUD1 .EQU 13
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 =1228800)
|
||||
SIOBAUD1 .EQU 14
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 =2457600)
|
||||
SIOBAUD1 .EQU 15
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 225)
|
||||
SIOBAUD1 .EQU 16
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 450)
|
||||
SIOBAUD1 .EQU 17
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 900)
|
||||
SIOBAUD1 .EQU 18
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 1800)
|
||||
SIOBAUD1 .EQU 19
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 3600)
|
||||
SIOBAUD1 .EQU 20
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 7200)
|
||||
SIOBAUD1 .EQU 21
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 14400)
|
||||
SIOBAUD1 .EQU 22
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 28800)
|
||||
SIOBAUD1 .EQU 23
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 57600)
|
||||
SIOBAUD1 .EQU 24
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 115200)
|
||||
SIOBAUD1 .EQU 25
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 230400)
|
||||
SIOBAUD1 .EQU 26
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 == 921600)
|
||||
SIOBAUD1 .EQU 28
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 =1843200)
|
||||
SIOBAUD1 .EQU 29
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 =3686400)
|
||||
SIOBAUD1 .EQU 30
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/1 =7372800)
|
||||
SIOBAUD1 .EQU 31
|
||||
#ENDIF
|
||||
|
||||
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 75)
|
||||
SIOBAUD1 .EQU 0
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 150)
|
||||
SIOBAUD2 .EQU 1
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 300)
|
||||
SIOBAUD2 .EQU 2
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 600)
|
||||
SIOBAUD2 .EQU 3
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 1200)
|
||||
SIOBAUD2 .EQU 4
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 2400)
|
||||
SIOBAUD2 .EQU 5
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 4800)
|
||||
SIOBAUD2 .EQU 6
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 9600)
|
||||
SIOBAUD2 .EQU 7
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 19200)
|
||||
SIOBAUD2 .EQU 8
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 38400)
|
||||
SIOBAUD2 .EQU 9
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 76800)
|
||||
SIOBAUD2 .EQU 10
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 153600)
|
||||
SIOBAUD2 .EQU 11
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 307200)
|
||||
SIOBAUD2 .EQU 12
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 614400)
|
||||
SIOBAUD2 .EQU 13
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 =1228800)
|
||||
SIOBAUD2 .EQU 14
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 =2457600)
|
||||
SIOBAUD2 .EQU 15
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 225)
|
||||
SIOBAUD2 .EQU 16
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 450)
|
||||
SIOBAUD2 .EQU 17
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 900)
|
||||
SIOBAUD2 .EQU 18
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 1800)
|
||||
SIOBAUD2 .EQU 19
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 3600)
|
||||
SIOBAUD2 .EQU 20
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 7200)
|
||||
SIOBAUD2 .EQU 21
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 14400)
|
||||
SIOBAUD2 .EQU 22
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 28800)
|
||||
SIOBAUD2 .EQU 23
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 57600)
|
||||
SIOBAUD2 .EQU 24
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 115200)
|
||||
SIOBAUD2 .EQU 25
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 230400)
|
||||
SIOBAUD2 .EQU 26
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 460800)
|
||||
SIOBAUD2 .EQU 27
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 == 921600)
|
||||
SIOBAUD2 .EQU 28
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 ==1843200)
|
||||
SIOBAUD2 .EQU 29
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 ==3686400)
|
||||
SIOBAUD2 .EQU 30
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/16 ==7372800)
|
||||
SIOBAUD2 .EQU 31
|
||||
#ENDIF
|
||||
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 75)
|
||||
SIOBAUD3 .EQU 0
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 150)
|
||||
SIOBAUD3 .EQU 1
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 300)
|
||||
SIOBAUD3 .EQU 2
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 600)
|
||||
SIOBAUD3 .EQU 3
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 1200)
|
||||
SIOBAUD3 .EQU 4
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 2400)
|
||||
SIOBAUD3 .EQU 5
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 4800)
|
||||
SIOBAUD3 .EQU 6
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 9600)
|
||||
SIOBAUD3 .EQU 7
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 19200)
|
||||
SIOBAUD3 .EQU 8
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 38400)
|
||||
SIOBAUD3 .EQU 9
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 76800)
|
||||
SIOBAUD3 .EQU 10
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 153600)
|
||||
SIOBAUD3 .EQU 11
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 307200)
|
||||
SIOBAUD3 .EQU 12
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 614400)
|
||||
SIOBAUD3 .EQU 13
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32==1228800)
|
||||
SIOBAUD3 .EQU 14
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32==2457600)
|
||||
SIOBAUD3 .EQU 15
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 225)
|
||||
SIOBAUD3 .EQU 16
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 450)
|
||||
SIOBAUD3 .EQU 17
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 900)
|
||||
SIOBAUD3 .EQU 18
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 1800)
|
||||
SIOBAUD3 .EQU 19
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 3600)
|
||||
SIOBAUD3 .EQU 20
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 7200)
|
||||
SIOBAUD3 .EQU 21
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 14400)
|
||||
SIOBAUD3 .EQU 22
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 28800)
|
||||
SIOBAUD3 .EQU 23
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 57600)
|
||||
SIOBAUD3 .EQU 24
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32= 115200)
|
||||
SIOBAUD3 .EQU 25
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32= 230400)
|
||||
SIOBAUD3 .EQU 26
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 460800)
|
||||
SIOBAUD3 .EQU 27
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32== 921600)
|
||||
SIOBAUD3 .EQU 28
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32==1843200)
|
||||
SIOBAUD3 .EQU 29
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32==3686400)
|
||||
SIOBAUD3 .EQU 30
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/32==7372800)
|
||||
SIOBAUD3 .EQU 31
|
||||
#ENDIF
|
||||
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 75)
|
||||
SIOBAUD4 .EQU 0
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 150)
|
||||
SIOBAUD4 .EQU 1
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 300)
|
||||
SIOBAUD4 .EQU 2
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 600)
|
||||
SIOBAUD4 .EQU 3
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 1200)
|
||||
SIOBAUD4 .EQU 4
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 2400)
|
||||
SIOBAUD4 .EQU 5
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 4800)
|
||||
SIOBAUD4 .EQU 6
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 9600)
|
||||
SIOBAUD4 .EQU 7
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 19200)
|
||||
SIOBAUD4 .EQU 8
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 38400)
|
||||
SIOBAUD4 .EQU 9
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 76800)
|
||||
SIOBAUD4 .EQU 10
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 153600)
|
||||
SIOBAUD4 .EQU 11
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 307200)
|
||||
SIOBAUD4 .EQU 12
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 614400)
|
||||
SIOBAUD4 .EQU 13
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64==1228800)
|
||||
SIOBAUD4 .EQU 14
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64==2457600)
|
||||
SIOBAUD4 .EQU 15
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 225)
|
||||
SIOBAUD4 .EQU 16
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 450)
|
||||
SIOBAUD4 .EQU 17
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 900)
|
||||
SIOBAUD4 .EQU 18
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 1800)
|
||||
SIOBAUD4 .EQU 19
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 3600)
|
||||
SIOBAUD4 .EQU 20
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 7200)
|
||||
SIOBAUD4 .EQU 21
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 14400)
|
||||
SIOBAUD4 .EQU 22
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 28800)
|
||||
SIOBAUD4 .EQU 23
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 57600)
|
||||
SIOBAUD4 .EQU 24
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 115200)
|
||||
SIOBAUD4 .EQU 25
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 230400)
|
||||
SIOBAUD4 .EQU 26
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 460800)
|
||||
SIOBAUD4 .EQU 27
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64== 921600)
|
||||
SIOBAUD4 .EQU 28
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64==1843200)
|
||||
SIOBAUD4 .EQU 29
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64==3686400)
|
||||
SIOBAUD4 .EQU 30
|
||||
#ENDIF
|
||||
#IF (DEFSIOCLK/DEFSIODIV/64==7372800)
|
||||
SIOBAUD4 .EQU 31
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
SIO_PREINIT:
|
||||
;
|
||||
@@ -314,6 +709,10 @@ SIO_OUT:
|
||||
#IF (SIOMODE == SIOMODE_SMB)
|
||||
DEC C ; DECREMENT CMD PORT TWICE TO GET DATA PORT
|
||||
DEC C
|
||||
#ENDIF
|
||||
#IF (SIOMODE == SIOMODE_ZP)
|
||||
DEC C ; DECREMENT CMD PORT TWICE TO GET DATA PORT
|
||||
DEC C
|
||||
#ENDIF
|
||||
OUT (C),E ; SEND CHAR FROM E
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
@@ -393,7 +792,7 @@ SIO_INITDEV:
|
||||
;
|
||||
SIO_INITVALS:
|
||||
.DB $00, $18 ; WR0: CHANNEL RESET
|
||||
.DB $04, $C4 ; WR4: CLK/64=115200 BAUD, NO PARITY, 1 STOP BIT
|
||||
.DB $04, $SIO_WR4 ; WR4: CLK BAUD PARITY STOP BIT ; PST
|
||||
.DB $01, $18 ; WR1: INTERRUPT ON ALL RECEIVE CHARACTERS
|
||||
.DB $02, IVT_SER0 ; WR2: INTERRUPT VECTOR OFFSET
|
||||
.DB $03, $C1 ; WR3: 8 BIT RCV, RX ENABLE
|
||||
@@ -508,7 +907,7 @@ SIO_CFG:
|
||||
.DB 0 ; SIO TYPE (SET DURING INIT)
|
||||
.DB 0 ; SIO CHANNEL (A)
|
||||
.DB SIOA_CMD ; BASE PORT (CMD PORT)
|
||||
.DW DEFSERCFG ; LINE CONFIGURATION
|
||||
.DW DEFSIOACFG ; LINE CONFIGURATION
|
||||
.DW SIOA_RCVBUF ; POINTER TO RCV BUFFER STRUCT
|
||||
;
|
||||
; SIO/2 CHANNEL B
|
||||
@@ -516,7 +915,7 @@ SIO_CFG:
|
||||
.DB 0 ; SIO TYPE (SET DURING INIT)
|
||||
.DB 1 ; SIO CHANNEL (B)
|
||||
.DB SIOB_CMD ; BASE PORT (CMD PORT)
|
||||
.DW DEFSERCFG ; LINE CONFIGURATION
|
||||
.DW DEFSIOBCFG ; LINE CONFIGURATION
|
||||
.DW SIOB_RCVBUF ; POINTER TO RCV BUFFER STRUCT
|
||||
;
|
||||
SIO_CNT .EQU ($ - SIO_CFG) / 8
|
||||
|
||||
Reference in New Issue
Block a user