mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Add SROM (Serial ROM) Utility
This commit is contained in:
@@ -8,6 +8,8 @@ set TASMTABS=%TOOLS%\tasm32
|
||||
tasm -t180 -g3 -fFF i2cscan.asm i2cscan.com i2cscan.lst || exit /b
|
||||
tasm -t180 -g3 -fFF rtcds7.asm rtcds7.com rtcds7.lst || exit /b
|
||||
tasm -t180 -g3 -fFF i2clcd.asm i2clcd.com i2clcd.lst || exit /b
|
||||
tasm -t80 -g3 -ff srom.asm srom.com srom.lst || exit /b
|
||||
|
||||
copy /Y i2c*.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
copy /Y rtcds7*.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
copy /Y srom.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
OBJECTS = i2cscan.com rtcds7.com i2clcd.com
|
||||
OBJECTS = i2cscan.com rtcds7.com i2clcd.com srom.com
|
||||
DEST = ../../../../Binary/Apps/Test/
|
||||
TOOLS = ../../../../Tools
|
||||
|
||||
|
||||
1696
Source/Apps/Test/I2C/srom.asm
Normal file
1696
Source/Apps/Test/I2C/srom.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@
|
||||
;
|
||||
; TODO:
|
||||
; - CLEAR CONSOLE SCREEN AT INITIALIZATION
|
||||
; - INITIALIZE BAUD/MODE OF SERIAL INTERFACES AT INITIALIZATION
|
||||
; - INITIALIZE BAUD/MODE OF SERIAL INTERFACES AT INITIALIZATION?
|
||||
;
|
||||
ESP_IOBASE .EQU $9C
|
||||
ESP_0_IO .EQU ESP_IOBASE + 0
|
||||
@@ -126,19 +126,52 @@ ESP_INIT6:
|
||||
;==================================================================================================
|
||||
;
|
||||
ESP_DETECT:
|
||||
; TRY TO DETECT IF PORT IS FLOATING AND
|
||||
; FAIL DETECTION IF SO
|
||||
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT
|
||||
IN A,(C) ; READ IT
|
||||
;CALL PC_SPACE ; *DEBUG*
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
AND %11100000 ; ISOLATE TOP 3 BITS
|
||||
CP $00 ; ALWAYS ZERO IF PRESENT
|
||||
RET NZ ; ABORT ON FAILURE
|
||||
;
|
||||
; ESP32 PROCESSOR MAY TAKE A FEW SECONDS TO START UP, SO
|
||||
; HERE WE WAIT FOR BUSY TO CLEAR WITH ABOUT A 5 SECOND TIMEOUT
|
||||
LD B,0 ; LOOP UP TO 256 TIMES
|
||||
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT
|
||||
ESP_DETECT1:
|
||||
IN A,(C) ; GET STATUS
|
||||
AND (IY+ESP_CFG_BSYMSK) ; IS ESP BUSY?
|
||||
JR Z,ESP_DETECT2 ; MOVE ALONG IF NOT BUSY
|
||||
LD DE,1500 ; 1500 * 16US = 24MS
|
||||
CALL VDELAY ; DELAY
|
||||
DJNZ ESP_DETECT1 ; LOOP
|
||||
OR $FF ; SIGNAL FAILURE
|
||||
RET ; DONE
|
||||
;
|
||||
ESP_DETECT2:
|
||||
;LD A,B ; *DEBUG*
|
||||
;CALL PC_SPACE ; *DEBUG*
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
CALL ESP_CLR ; CLEAR ANY PENDING DATA
|
||||
RET NZ ; IF FAILS, ASSUME NOT PRESENT
|
||||
LD A,ESP_CMD_DISC ; DISCOVER COMMAND
|
||||
CALL ESP_OUT ; SEND IT
|
||||
;
|
||||
; LOOK FOR SIGNATURE STARTING WITH "ESP"
|
||||
CALL ESP_INWAIT ; ATTEMPT TO GET CHAR
|
||||
;CALL PC_SPACE ; *DEBUG*
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
CP 'E'
|
||||
RET NZ
|
||||
CALL ESP_INWAIT ; ATTEMPT TO GET CHAR
|
||||
;CALL PC_SPACE ; *DEBUG*
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
CP 'S'
|
||||
RET NZ
|
||||
CALL ESP_INWAIT ; ATTEMPT TO GET CHAR
|
||||
;CALL PC_SPACE ; *DEBUG*
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
CP 'P'
|
||||
RET
|
||||
;
|
||||
@@ -162,13 +195,14 @@ ESP_CLR0:
|
||||
;
|
||||
ESP_PRTVER:
|
||||
CALL ESP_CLR ; CLEAR ANY PENDING DATA
|
||||
;LD DE,1000 ; SMALL DELAY HERE
|
||||
;CALL VDELAY ; ... SEEMS TO HELP RELIABILITY
|
||||
LD A,ESP_CMD_DISC ; DISCOVER COMMAND
|
||||
CALL ESP_OUT ; SEND IT
|
||||
CALL ESP_WTRDY ; WAIT FOR READY TO OUTPUT
|
||||
ESP_PRTVER1:
|
||||
CALL ESP_WTNBSY ; WAIT TILL NOT BUSY
|
||||
IN A,(ESP_STAT) ; GET STATUS
|
||||
;AND ESP_0_RDY ; ISOLATE OUTPUT READY BIT
|
||||
AND (IY+ESP_CFG_RDYMSK) ; ISOLATE OUTPUT READY BIT
|
||||
RET Z ; DONE IF NOTHING READY
|
||||
CALL ESP_IN ; GET NEXT CHAR
|
||||
@@ -208,19 +242,29 @@ ESP_IN1:
|
||||
;
|
||||
ESP_WTNBSY:
|
||||
LD B,0 ; MAX TRIES
|
||||
;PUSH HL ; SAVE HL
|
||||
;LD HL,0 ; MAX TRIES
|
||||
ESP_WTNBSY1:
|
||||
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT
|
||||
IN A,(C) ; GET STATUS
|
||||
AND (IY+ESP_CFG_BSYMSK) ; IS ESP BUSY?
|
||||
RET Z ; RETURN IF NOT BUSY
|
||||
;JR Z,ESP_WTNBSY_Z ; RETURN IF NOT BUSY
|
||||
DJNZ ESP_WTNBSY1 ; ELSE LOOP
|
||||
;DEC HL ; DEC LOOP COUNTER
|
||||
;LD A,H ; CHECK FOR
|
||||
;OR L ; ... TIMEOUT
|
||||
;JR NZ,ESP_WTNBSY1 ; LOOP AS NEEDED
|
||||
CALL PC_ASTERISK ; *DEBUG*
|
||||
OR $FF ; SIGNAL TIMEOUT
|
||||
;ESP_WTNBSY_Z:
|
||||
;POP HL ; RECOVER HL
|
||||
RET ; AND RETURN
|
||||
;
|
||||
; WAIT FOR ESP TO BE BUSY
|
||||
;
|
||||
ESP_WTBSY:
|
||||
LD B,20 ; MAX TRIES
|
||||
LD B,3 ; MAX TRIES
|
||||
ESP_WTBSY1:
|
||||
LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT
|
||||
IN A,(C) ; GET STATUS
|
||||
@@ -230,6 +274,27 @@ ESP_WTBSY1:
|
||||
DJNZ ESP_WTBSY1 ; ELSE LOOP
|
||||
OR $FF ; SIGNAL TIMEOUT
|
||||
RET ; AND RETURN
|
||||
;;;;
|
||||
;;;; WAIT FOR ESP TO BE READY TO OUTPUT
|
||||
;;;;
|
||||
;;;ESP_WTRDY:
|
||||
;;; PUSH HL ; SAVE HL
|
||||
;;; LD HL,0 ; MAX TRIES
|
||||
;;;ESP_WTRDY1:
|
||||
;;; LD C,(IY+ESP_CFG_ST) ; ESP STATUS PORT
|
||||
;;; IN A,(C) ; GET STATUS
|
||||
;;; XOR $FF ; INVERT SO 0=READY
|
||||
;;; AND (IY+ESP_CFG_RDYMSK) ; IS ESP READY TO OUTPUT
|
||||
;;; JR Z,ESP_WTRDY_Z ; RETURN IF READY
|
||||
;;; DEC HL ; DEC LOOP COUNTER
|
||||
;;; LD A,H ; CHECK FOR
|
||||
;;; OR L ; ... TIMEOUT
|
||||
;;; JR NZ,ESP_WTRDY1 ; LOOP AS NEEDED
|
||||
;;; CALL PC_PERIOD ; *DEBUG*
|
||||
;;; OR $FF ; SIGNAL TIMEOUT
|
||||
;;;ESP_WTRDY_Z:
|
||||
;;; POP HL ; RECOVER HL
|
||||
;;; RET ; AND RETURN
|
||||
;
|
||||
; WAIT FOR ESP TO BE READY TO OUTPUT
|
||||
;
|
||||
@@ -242,6 +307,7 @@ 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*
|
||||
OR $FF ; SIGNAL TIMEOUT
|
||||
RET ; AND RETURN
|
||||
;
|
||||
|
||||
@@ -1118,7 +1118,7 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n
|
||||
DJNZ $
|
||||
#ENDIF
|
||||
;
|
||||
#IF ((PLATFORM == PLT_DUO) & TRUE)
|
||||
#IF ((PLATFORM == PLT_DUO) & FALSE)
|
||||
; WAIT A WHILE
|
||||
LD HL,0
|
||||
BOOTWAIT:
|
||||
|
||||
@@ -371,7 +371,6 @@ PKD_KEYMAP:
|
||||
; POS $18 $19 $1A $1B
|
||||
; KEY [F4] [F3] [F2] [F1]
|
||||
.DB $23, $22, $21, $20
|
||||
|
||||
;
|
||||
;==================================================================================================
|
||||
; PKD OUTPUT ROUTINES
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#DEFINE RMN 3
|
||||
#DEFINE RUP 0
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.3.0-dev.48"
|
||||
#DEFINE BIOSVER "3.3.0-dev.49"
|
||||
#define rmj RMJ
|
||||
#define rmn RMN
|
||||
#define rup RUP
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 3
|
||||
rup equ 0
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.3.0-dev.48"
|
||||
db "3.3.0-dev.49"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user