|
|
|
|
@@ -33,7 +33,8 @@ ESP_1_SPARE .EQU %00100000
|
|
|
|
|
;
|
|
|
|
|
; 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_CSTR .EQU 2 ; STRING OUT
|
|
|
|
|
ESP_0_CMD_KIN .EQU 3 ; KEY IN
|
|
|
|
|
@@ -76,11 +77,11 @@ ESP_INIT:
|
|
|
|
|
;
|
|
|
|
|
ESP_INIT1:
|
|
|
|
|
CALL ESP_PRTVER
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LD A,(ESP_PRES)
|
|
|
|
|
SET 0,A
|
|
|
|
|
LD (ESP_PRES),A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;
|
|
|
|
|
ESP_INIT2:
|
|
|
|
|
; DETECT SECOND ESP32 MODULE
|
|
|
|
|
@@ -151,6 +152,7 @@ ESP_DETECT1:
|
|
|
|
|
RET ; DONE
|
|
|
|
|
;
|
|
|
|
|
ESP_DETECT2:
|
|
|
|
|
CALL ESP_SYNC
|
|
|
|
|
;LD A,B ; *DEBUG*
|
|
|
|
|
;CALL PC_SPACE ; *DEBUG*
|
|
|
|
|
;CALL PRTHEXBYTE ; *DEBUG*
|
|
|
|
|
@@ -178,8 +180,8 @@ ESP_DETECT2:
|
|
|
|
|
; CLEAR ESP INPUT QUEUE
|
|
|
|
|
;
|
|
|
|
|
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
|
|
|
|
|
RET NZ ; BAIL OUT IF TIMEOUT
|
|
|
|
|
IN A,(ESP_STAT) ; GET STATUS
|
|
|
|
|
@@ -187,13 +189,28 @@ ESP_CLR0:
|
|
|
|
|
RET Z ; IF NOT, DONE
|
|
|
|
|
LD C,(IY+ESP_CFG_IO) ; ESP I/O PORT
|
|
|
|
|
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
|
|
|
|
|
;
|
|
|
|
|
; PRINT ESP VERSION STRING TO CONSOLE
|
|
|
|
|
;
|
|
|
|
|
ESP_PRTVER:
|
|
|
|
|
CALL ESP_SYNC
|
|
|
|
|
CALL ESP_CLR ; CLEAR ANY PENDING DATA
|
|
|
|
|
;LD DE,1000 ; SMALL DELAY HERE
|
|
|
|
|
;CALL VDELAY ; ... SEEMS TO HELP RELIABILITY
|
|
|
|
|
@@ -224,13 +241,13 @@ ESP_OUT:
|
|
|
|
|
ESP_INWAIT:
|
|
|
|
|
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY
|
|
|
|
|
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)
|
|
|
|
|
;
|
|
|
|
|
ESP_IN:
|
|
|
|
|
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY
|
|
|
|
|
ESP_IN1:
|
|
|
|
|
ESP_IN1:
|
|
|
|
|
LD C,(IY+ESP_CFG_IO) ; ESP I/O PORT
|
|
|
|
|
IN A,(C) ; GET BYTE
|
|
|
|
|
PUSH AF ; SAVE VALUE
|
|
|
|
|
@@ -244,7 +261,7 @@ ESP_WTNBSY:
|
|
|
|
|
LD B,0 ; MAX TRIES
|
|
|
|
|
;PUSH HL ; SAVE HL
|
|
|
|
|
;LD HL,0 ; MAX TRIES
|
|
|
|
|
ESP_WTNBSY1:
|
|
|
|
|
ESP_WTNBSY1:
|
|
|
|
|
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT
|
|
|
|
|
IN A,(C) ; GET STATUS
|
|
|
|
|
AND (IY+ESP_CFG_BSYMSK) ; IS ESP BUSY?
|
|
|
|
|
@@ -255,7 +272,7 @@ ESP_WTNBSY1:
|
|
|
|
|
;LD A,H ; CHECK FOR
|
|
|
|
|
;OR L ; ... TIMEOUT
|
|
|
|
|
;JR NZ,ESP_WTNBSY1 ; LOOP AS NEEDED
|
|
|
|
|
CALL PC_ASTERISK ; *DEBUG*
|
|
|
|
|
;CALL PC_ASTERISK ; *DEBUG*
|
|
|
|
|
OR $FF ; SIGNAL TIMEOUT
|
|
|
|
|
;ESP_WTNBSY_Z:
|
|
|
|
|
;POP HL ; RECOVER HL
|
|
|
|
|
@@ -265,7 +282,7 @@ ESP_WTNBSY1:
|
|
|
|
|
;
|
|
|
|
|
ESP_WTBSY:
|
|
|
|
|
LD B,3 ; MAX TRIES
|
|
|
|
|
ESP_WTBSY1:
|
|
|
|
|
ESP_WTBSY1:
|
|
|
|
|
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT
|
|
|
|
|
IN A,(C) ; GET STATUS
|
|
|
|
|
XOR $FF ; INVERT SO 0=BUSY
|
|
|
|
|
@@ -307,7 +324,8 @@ ESP_WTRDY1:
|
|
|
|
|
AND (IY+ESP_CFG_RDYMSK) ; IS ESP READY TO OUTPUT
|
|
|
|
|
RET Z ; RETURN IF READY
|
|
|
|
|
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
|
|
|
|
|
RET ; AND RETURN
|
|
|
|
|
;
|
|
|
|
|
@@ -393,6 +411,7 @@ ESPCON_IN:
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
ESPCON_IST:
|
|
|
|
|
CALL ESP_CLR ; CLEAR ANY PENDING DATA (Added DDW)
|
|
|
|
|
LD A,ESP_0_CMD_KST ; KBD BUF STATUS
|
|
|
|
|
CALL ESP_OUT ; SEND CMD OPCODE
|
|
|
|
|
CALL ESP_INWAIT ; GET BUF SIZE
|
|
|
|
|
@@ -423,7 +442,9 @@ ESPCON_OST:
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
ESPCON_INITDEV:
|
|
|
|
|
SYSCHKERR(ERR_NOTIMPL)
|
|
|
|
|
CALL ESP_CLR
|
|
|
|
|
CALL ESP_SYNC
|
|
|
|
|
; SYSCHKERR(ERR_NOTIMPL) Removed DDW
|
|
|
|
|
RET
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
@@ -529,6 +550,7 @@ ESPSER_IN:
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
ESPSER_IST:
|
|
|
|
|
CALL ESP_CLR ; CLEAR ANY PENDING DATA (Added DDW)
|
|
|
|
|
LD A,ESP_CMD_SST ; SERIAL STATUS
|
|
|
|
|
CALL ESP_OUT ; SEND CMD OPCODE
|
|
|
|
|
CALL ESP_INWAIT ; GET BUF SIZE
|
|
|
|
|
@@ -559,6 +581,8 @@ ESPSER_OST:
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
ESPSER_INITDEV:
|
|
|
|
|
CALL ESP_CLR
|
|
|
|
|
CALL ESP_SYNC
|
|
|
|
|
PUSH DE ; SAVE INCOMING CONFIG WORD
|
|
|
|
|
;
|
|
|
|
|
; XLATE NEW LINE MODE INTO C
|
|
|
|
|
|