|
|
@ -33,7 +33,8 @@ ESP_1_SPARE .EQU %00100000 |
|
|
; |
|
|
; |
|
|
; COMMAND OPCODES |
|
|
; COMMAND OPCODES |
|
|
; |
|
|
; |
|
|
ESP_CMD_NOP .EQU 0 ; NO OP |
|
|
|
|
|
|
|
|
ESP_CMD_NOP .EQU 0 ; NO OP/SYNC |
|
|
|
|
|
ESP_CMD_SYNC .EQU 0 ; NO OP/SYNC |
|
|
ESP_0_CMD_COUT .EQU 1 ; CHAR OUT |
|
|
ESP_0_CMD_COUT .EQU 1 ; CHAR OUT |
|
|
ESP_0_CMD_CSTR .EQU 2 ; STRING OUT |
|
|
ESP_0_CMD_CSTR .EQU 2 ; STRING OUT |
|
|
ESP_0_CMD_KIN .EQU 3 ; KEY IN |
|
|
ESP_0_CMD_KIN .EQU 3 ; KEY IN |
|
|
@ -76,11 +77,11 @@ ESP_INIT: |
|
|
; |
|
|
; |
|
|
ESP_INIT1: |
|
|
ESP_INIT1: |
|
|
CALL ESP_PRTVER |
|
|
CALL ESP_PRTVER |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LD A,(ESP_PRES) |
|
|
LD A,(ESP_PRES) |
|
|
SET 0,A |
|
|
SET 0,A |
|
|
LD (ESP_PRES),A |
|
|
LD (ESP_PRES),A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
; |
|
|
ESP_INIT2: |
|
|
ESP_INIT2: |
|
|
; DETECT SECOND ESP32 MODULE |
|
|
; DETECT SECOND ESP32 MODULE |
|
|
@ -151,6 +152,7 @@ ESP_DETECT1: |
|
|
RET ; DONE |
|
|
RET ; DONE |
|
|
; |
|
|
; |
|
|
ESP_DETECT2: |
|
|
ESP_DETECT2: |
|
|
|
|
|
CALL ESP_SYNC |
|
|
;LD A,B ; *DEBUG* |
|
|
;LD A,B ; *DEBUG* |
|
|
;CALL PC_SPACE ; *DEBUG* |
|
|
;CALL PC_SPACE ; *DEBUG* |
|
|
;CALL PRTHEXBYTE ; *DEBUG* |
|
|
;CALL PRTHEXBYTE ; *DEBUG* |
|
|
@ -178,8 +180,8 @@ ESP_DETECT2: |
|
|
; CLEAR ESP INPUT QUEUE |
|
|
; CLEAR ESP INPUT QUEUE |
|
|
; |
|
|
; |
|
|
ESP_CLR: |
|
|
ESP_CLR: |
|
|
LD B,0 ; MAX CHARS TO READ |
|
|
|
|
|
ESP_CLR0: |
|
|
|
|
|
|
|
|
; LD B,0 ; MAX CHARS TO READ /Removed DDW |
|
|
|
|
|
;ESP_CLR0: /Removed DDW |
|
|
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY |
|
|
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY |
|
|
RET NZ ; BAIL OUT IF TIMEOUT |
|
|
RET NZ ; BAIL OUT IF TIMEOUT |
|
|
IN A,(ESP_STAT) ; GET STATUS |
|
|
IN A,(ESP_STAT) ; GET STATUS |
|
|
@ -187,13 +189,28 @@ ESP_CLR0: |
|
|
RET Z ; IF NOT, DONE |
|
|
RET Z ; IF NOT, DONE |
|
|
LD C,(IY+ESP_CFG_IO) ; ESP I/O PORT |
|
|
LD C,(IY+ESP_CFG_IO) ; ESP I/O PORT |
|
|
IN A,(C) ; GET BYTE |
|
|
IN A,(C) ; GET BYTE |
|
|
DJNZ ESP_CLR0 ; LOOP TILL DONE |
|
|
|
|
|
OR $FF ; SIGNAL FAILURE |
|
|
|
|
|
|
|
|
JP ESP_CLR |
|
|
|
|
|
; DJNZ ESP_CLR0 ; LOOP TILL DONE /Removed DDW |
|
|
|
|
|
; OR $FF ; SIGNAL FAILURE /Removed DDW |
|
|
|
|
|
; RET /Removed DDW |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
|
|
|
; RE-SYNC ESP (added DDW) |
|
|
|
|
|
; |
|
|
|
|
|
ESP_SYNC: |
|
|
|
|
|
LD B,0 ; sync count -- WORST CASE PERFORMACE COULD BE IMPROVED BY REDUCING THIS VALUE |
|
|
|
|
|
ESP_SYNC0: |
|
|
|
|
|
PUSH BC |
|
|
|
|
|
LD A,ESP_CMD_SYNC ; Sync ESP |
|
|
|
|
|
CALL ESP_OUT ; SEND CMD OPCODE |
|
|
|
|
|
POP BC |
|
|
|
|
|
DJNZ ESP_SYNC0 ; LOOP TILL DONE |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
; PRINT ESP VERSION STRING TO CONSOLE |
|
|
; PRINT ESP VERSION STRING TO CONSOLE |
|
|
; |
|
|
; |
|
|
ESP_PRTVER: |
|
|
ESP_PRTVER: |
|
|
|
|
|
CALL ESP_SYNC |
|
|
CALL ESP_CLR ; CLEAR ANY PENDING DATA |
|
|
CALL ESP_CLR ; CLEAR ANY PENDING DATA |
|
|
;LD DE,1000 ; SMALL DELAY HERE |
|
|
;LD DE,1000 ; SMALL DELAY HERE |
|
|
;CALL VDELAY ; ... SEEMS TO HELP RELIABILITY |
|
|
;CALL VDELAY ; ... SEEMS TO HELP RELIABILITY |
|
|
@ -224,13 +241,13 @@ ESP_OUT: |
|
|
ESP_INWAIT: |
|
|
ESP_INWAIT: |
|
|
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY |
|
|
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY |
|
|
CALL ESP_WTRDY ; WAIT FOR READY TO OUTPUT |
|
|
CALL ESP_WTRDY ; WAIT FOR READY TO OUTPUT |
|
|
; FALL THRU (GET CHAR VIA ESP_IN) |
|
|
|
|
|
|
|
|
JP ESP_IN1 ; Added DDW |
|
|
; |
|
|
; |
|
|
; GET BYTE FROM ESP (NON BLOCKING) |
|
|
; GET BYTE FROM ESP (NON BLOCKING) |
|
|
; |
|
|
; |
|
|
ESP_IN: |
|
|
ESP_IN: |
|
|
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY |
|
|
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY |
|
|
ESP_IN1: |
|
|
|
|
|
|
|
|
ESP_IN1: |
|
|
LD C,(IY+ESP_CFG_IO) ; ESP I/O PORT |
|
|
LD C,(IY+ESP_CFG_IO) ; ESP I/O PORT |
|
|
IN A,(C) ; GET BYTE |
|
|
IN A,(C) ; GET BYTE |
|
|
PUSH AF ; SAVE VALUE |
|
|
PUSH AF ; SAVE VALUE |
|
|
@ -244,7 +261,7 @@ ESP_WTNBSY: |
|
|
LD B,0 ; MAX TRIES |
|
|
LD B,0 ; MAX TRIES |
|
|
;PUSH HL ; SAVE HL |
|
|
;PUSH HL ; SAVE HL |
|
|
;LD HL,0 ; MAX TRIES |
|
|
;LD HL,0 ; MAX TRIES |
|
|
ESP_WTNBSY1: |
|
|
|
|
|
|
|
|
ESP_WTNBSY1: |
|
|
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT |
|
|
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT |
|
|
IN A,(C) ; GET STATUS |
|
|
IN A,(C) ; GET STATUS |
|
|
AND (IY+ESP_CFG_BSYMSK) ; IS ESP BUSY? |
|
|
AND (IY+ESP_CFG_BSYMSK) ; IS ESP BUSY? |
|
|
@ -255,7 +272,7 @@ ESP_WTNBSY1: |
|
|
;LD A,H ; CHECK FOR |
|
|
;LD A,H ; CHECK FOR |
|
|
;OR L ; ... TIMEOUT |
|
|
;OR L ; ... TIMEOUT |
|
|
;JR NZ,ESP_WTNBSY1 ; LOOP AS NEEDED |
|
|
;JR NZ,ESP_WTNBSY1 ; LOOP AS NEEDED |
|
|
CALL PC_ASTERISK ; *DEBUG* |
|
|
|
|
|
|
|
|
;CALL PC_ASTERISK ; *DEBUG* |
|
|
OR $FF ; SIGNAL TIMEOUT |
|
|
OR $FF ; SIGNAL TIMEOUT |
|
|
;ESP_WTNBSY_Z: |
|
|
;ESP_WTNBSY_Z: |
|
|
;POP HL ; RECOVER HL |
|
|
;POP HL ; RECOVER HL |
|
|
@ -265,7 +282,7 @@ ESP_WTNBSY1: |
|
|
; |
|
|
; |
|
|
ESP_WTBSY: |
|
|
ESP_WTBSY: |
|
|
LD B,3 ; MAX TRIES |
|
|
LD B,3 ; MAX TRIES |
|
|
ESP_WTBSY1: |
|
|
|
|
|
|
|
|
ESP_WTBSY1: |
|
|
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT |
|
|
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT |
|
|
IN A,(C) ; GET STATUS |
|
|
IN A,(C) ; GET STATUS |
|
|
XOR $FF ; INVERT SO 0=BUSY |
|
|
XOR $FF ; INVERT SO 0=BUSY |
|
|
@ -307,7 +324,8 @@ ESP_WTRDY1: |
|
|
AND (IY+ESP_CFG_RDYMSK) ; IS ESP READY TO OUTPUT |
|
|
AND (IY+ESP_CFG_RDYMSK) ; IS ESP READY TO OUTPUT |
|
|
RET Z ; RETURN IF READY |
|
|
RET Z ; RETURN IF READY |
|
|
DJNZ ESP_WTRDY1 ; ELSE LOOP |
|
|
DJNZ ESP_WTRDY1 ; ELSE LOOP |
|
|
CALL PC_PERIOD ; *DEBUG* |
|
|
|
|
|
|
|
|
;CALL PC_PERIOD ; *DEBUG* |
|
|
|
|
|
CALL ESP_SYNC ; SOMETHING WENT WRONG, ENSURE SYNC (Added DDW) |
|
|
OR $FF ; SIGNAL TIMEOUT |
|
|
OR $FF ; SIGNAL TIMEOUT |
|
|
RET ; AND RETURN |
|
|
RET ; AND RETURN |
|
|
; |
|
|
; |
|
|
@ -393,6 +411,7 @@ ESPCON_IN: |
|
|
; |
|
|
; |
|
|
; |
|
|
; |
|
|
ESPCON_IST: |
|
|
ESPCON_IST: |
|
|
|
|
|
CALL ESP_CLR ; CLEAR ANY PENDING DATA (Added DDW) |
|
|
LD A,ESP_0_CMD_KST ; KBD BUF STATUS |
|
|
LD A,ESP_0_CMD_KST ; KBD BUF STATUS |
|
|
CALL ESP_OUT ; SEND CMD OPCODE |
|
|
CALL ESP_OUT ; SEND CMD OPCODE |
|
|
CALL ESP_INWAIT ; GET BUF SIZE |
|
|
CALL ESP_INWAIT ; GET BUF SIZE |
|
|
@ -423,7 +442,9 @@ ESPCON_OST: |
|
|
; |
|
|
; |
|
|
; |
|
|
; |
|
|
ESPCON_INITDEV: |
|
|
ESPCON_INITDEV: |
|
|
SYSCHKERR(ERR_NOTIMPL) |
|
|
|
|
|
|
|
|
CALL ESP_CLR |
|
|
|
|
|
CALL ESP_SYNC |
|
|
|
|
|
; SYSCHKERR(ERR_NOTIMPL) Removed DDW |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
; |
|
|
; |
|
|
@ -529,6 +550,7 @@ ESPSER_IN: |
|
|
; |
|
|
; |
|
|
; |
|
|
; |
|
|
ESPSER_IST: |
|
|
ESPSER_IST: |
|
|
|
|
|
CALL ESP_CLR ; CLEAR ANY PENDING DATA (Added DDW) |
|
|
LD A,ESP_CMD_SST ; SERIAL STATUS |
|
|
LD A,ESP_CMD_SST ; SERIAL STATUS |
|
|
CALL ESP_OUT ; SEND CMD OPCODE |
|
|
CALL ESP_OUT ; SEND CMD OPCODE |
|
|
CALL ESP_INWAIT ; GET BUF SIZE |
|
|
CALL ESP_INWAIT ; GET BUF SIZE |
|
|
@ -559,6 +581,8 @@ ESPSER_OST: |
|
|
; |
|
|
; |
|
|
; |
|
|
; |
|
|
ESPSER_INITDEV: |
|
|
ESPSER_INITDEV: |
|
|
|
|
|
CALL ESP_CLR |
|
|
|
|
|
CALL ESP_SYNC |
|
|
PUSH DE ; SAVE INCOMING CONFIG WORD |
|
|
PUSH DE ; SAVE INCOMING CONFIG WORD |
|
|
; |
|
|
; |
|
|
; XLATE NEW LINE MODE INTO C |
|
|
; XLATE NEW LINE MODE INTO C |
|
|
|