include "uart.inc"
main:
ld a, UART_CMD_RST_RX
out (UART_REG_CMDA), a
ld a, UART_CMD_RST_TX
out (UART_REG_CMDA), a
ld a, UART_CMD_TX_OFF | UART_CMD_RX_OFF
out (UART_REG_CMDA), a
ld a, UART_CMD_RST_MPTR
out (UART_REG_CMDA), a
ld a, UART_M1_8BIT | UART_M1_NOPAR
out (UART_REG_MODEA), a
ld a, UART_M2_STOP1
out (UART_REG_MODEA), a
xor a
out (UART_REG_AUXCTL), a
ld a, UART_CSEL_TX_9600 | UART_CSEL_RX_9600
out (UART_REG_CSELA), a
ld a, UART_CMD_TX_ON | UART_CMD_RX_ON
out (UART_REG_CMDA), a
ld a, UART_CMD_RST_RX
out (UART_REG_CMDB), a
ld a, UART_CMD_RST_TX
out (UART_REG_CMDB), a
ld a, UART_CMD_TX_OFF | UART_CMD_RX_OFF
out (UART_REG_CMDB), a
ld a, UART_CMD_RST_MPTR
out (UART_REG_CMDB), a
xor a
out (UART_REG_MODEB), a
out (UART_REG_MODEB), a
ld a, 2
out (UART_REG_OSET), a
.loop:
ld hl, str_hello
.wrtop: in a, (UART_REG_STATA)
bit 2, a
jr z, .wrtop
ld a, (hl)
cp a, 0
jr z, .loop
out (UART_REG_DATAA), a
inc hl
jr .wrtop
str_hello asciiz 'The Z80 says hi!',13,10
|
UART_REG_MODEA equ $00
UART_REG_STATA equ $01
UART_REG_CSELA equ $01
UART_REG_CMDA equ $02
UART_REG_DATAA equ $03
UART_REG_MODEB equ $08
UART_REG_STATB equ $09
UART_REG_CSELB equ $09
UART_REG_CMDB equ $0a
UART_REG_DATAB equ $0b
UART_REG_IPCR equ $04
UART_REG_AUXCTL equ $04
UART_REG_ISTAT equ $05
UART_REG_IMASK equ $05
UART_REG_COUNTH equ $06
UART_REG_COUNTL equ $07
UART_REG_CTSETH equ $06
UART_REG_CTSETL equ $07
UART_REG_IVEC equ $0c
UART_REG_IPORT equ $0d
UART_REG_OPCR equ $0d
UART_REG_CSTART_CMD equ $0e
UART_REG_CSTOP_CMD equ $0f
UART_REG_OSET equ $0e
UART_REG_OCLR equ $0f
UART_M1_5BIT equ $00
UART_M1_6BIT equ $01
UART_M1_7BIT equ $02
UART_M1_8BIT equ $03
UART_M1_PAREVEN equ $00
UART_M1_PARODD equ $04
UART_M1_NOPAR equ $10
UART_M1_IRQ_RDY equ $00
UART_M1_IRQ_FULL equ $40
UART_M1_RX_RTS equ $80
UART_M2_STOP1 equ $07
UART_M2_CTS equ $10
UART_M2_TX_RTS equ $20
UART_M2_ECHO equ $40
UART_M2_LOOP_LOCAL equ $80
UART_M2_LOOP_REMOTE equ $c0
UART_CSEL_TX_300 equ $04
UART_CSEL_RX_300 equ $40
UART_CSEL_TX_9600 equ $0b
UART_CSEL_RX_9600 equ $b0
UART_CSEL_TX_38400_19200 equ $0c
UART_CSEL_RX_38400_19200 equ $c0
UART_CSEL_TX_TIMER equ $0d
UART_CSEL_RX_TIMER equ $d0
UART_STAT_RXRDY equ $01
UART_STAT_FFULL equ $02
UART_STAT_TXRDY equ $04
UART_STAT_TXEMPTY equ $08
UART_STAT_ERR_OVR equ $10
UART_STAT_ERR_PAR equ $20
UART_STAT_ERR_FRM equ $40
UART_STAT_ERR_BRK equ $80
UART_CMD_RX_ON equ $01
UART_CMD_RX_OFF equ $02
UART_CMD_TX_ON equ $04
UART_CMD_TX_OFF equ $08
UART_CMD_RST_MPTR equ $10
UART_CMD_RST_RX equ $20
UART_CMD_RST_TX equ $30
UART_CMD_RST_ERR equ $40
UART_CMD_RST_BRKINT equ $50
UART_CMD_START_BRK equ $60
UART_CMD_STOP_BRK equ $70
UART_OPCR_OP2_TXCA16 equ $01
UART_OPCR_OP2_TXA equ $02
UART_OPCR_OP2_RXA equ $03
UART_OPCR_OP3_CTR equ $04
UART_OPCR_OP3_TXB equ $08
UART_OPCR_OP3_RXB equ $0c
UART_OPCR_OP4_RXRDYA equ $10
UART_OPCR_OP5_RXRDYB equ $20
UART_OPCR_OP6_TXRDYA equ $40
UART_OPCR_OP7_TXRDYB equ $80
|