S100 Monitor Update

The S100 Monitor will now allow launching RomWBW using the 'B' command.
This commit is contained in:
Wayne Warthen
2023-07-08 18:03:13 -07:00
parent 7e5b140c2f
commit 7a209d4053
5 changed files with 42 additions and 10 deletions

View File

@@ -43,6 +43,10 @@ else
BIOS=wbw BIOS=wbw
endif endif
ifeq ($(ROM_PLATFORM),S100)
ROMDEPS += s100mon.bin
endif
ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG} ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG}
# $(info DEPS=$(DEPS)) # $(info DEPS=$(DEPS))
@@ -59,9 +63,7 @@ $(OBJECTS) : $(ROMDEPS)
if [ $(ROM_PLATFORM) != UNA ] ; then \ if [ $(ROM_PLATFORM) != UNA ] ; then \
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin usrrom.bin >osimg1.bin ; \ cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin usrrom.bin >osimg1.bin ; \
if [ $(ROM_PLATFORM) = S100 ] ; then \ if [ $(ROM_PLATFORM) = S100 ] ; then \
$(ZXCC) $(CPM)/SLR180 -s100mon/fh ; \ cat s100mon.bin >osimg2.bin ; \
$(ZXCC) $(CPM)/MLOAD25 -s100mon ; \
cat s100mon.com >osimg2.bin ; \
else \ else \
cat imgpad2.bin >osimg2.bin ; \ cat imgpad2.bin >osimg2.bin ; \
fi ; \ fi ; \
@@ -95,6 +97,10 @@ font%.asm:
camel80.bin: camel80.bin:
cp ../Forth/$@ . cp ../Forth/$@ .
s100mon.bin:
$(ZXCC) $(CPM)/SLR180 -s100mon/FH
$(ZXCC) $(CPM)/MLOAD25 -s100mon.bin=s100mon
tastybasic.bin: tastybasic.bin:
cp ../TastyBasic/src/$@ . cp ../TastyBasic/src/$@ .

View File

@@ -1374,19 +1374,33 @@ Z280_INITZ:
#ENDIF #ENDIF
; ;
; S100 ROM CONTAINS A HARDWARE LEVEL MONITOR IN BANK ID 3 OF ROM. ; S100 ROM CONTAINS A HARDWARE LEVEL MONITOR IN BANK ID 3 OF ROM.
; IF PORT $65 BIT 1 IS SET (SET IS ZERO), THEN WE IMMEDIATELY ; IF PORT $75 BIT 1 IS SET (SET IS ZERO), THEN WE IMMEDIATELY
; TRANSITION TO THIS MONITOR. ; TRANSITION TO THIS MONITOR. PRIOR TO THE TRANSITION, WE ALSO
; CHECK THE VALUE IN THE Z180 RELOAD REGISTER LOW. IF IT IS ASCII 'W',
; THEN IT MEANS THE S100 MONITOR IS ATTEMPTING TO REBOOT INTO ROMWBW
; HBIOS.
; ;
#IF ((PLATFORM == PLT_S100) & TRUE) #IF ((PLATFORM == PLT_S100) & TRUE)
IN A,($65) ; READ SWITCHES ; CHECK S100 BOARD DIP SWITCH, BIT 1
IN A,($75) ; READ SWITCHES
BIT 1,A ; CHECK BIT 1 BIT 1,A ; CHECK BIT 1
JR NZ,S100MON_SKIP ; IF NOT SET, BYPASS JR NZ,S100MON_SKIP ; IF NOT SET, CONT ROMWBW BOOT
;
; CHECK RELOAD REGISTER LOW FOR SPECIAL VALUE
IN0 A,(Z180_RLDR1L) ; GET RELOAD REG 1 LOW
CP 'W' ; CHECK FOR SPECIAL VALUE
JR Z,S100MON_SKIP ; IF SO, DO ROMWBW BOOT
;
; LAUNCH S100 MONITOR FROM ROM BANK 3
LD A,BID_IMG2 ; S100 MONITOR BANK LD A,BID_IMG2 ; S100 MONITOR BANK
LD IX,0 ; EXECUTION RESUMES HERE LD IX,0 ; EXECUTION RESUMES HERE
CALL HBX_BNKCALL ; CONTINUE IN RAM BANK, DO NOT RETURN CALL HBX_BNKCALL ; CONTINUE IN RAM BANK, DO NOT RETURN
HALT ; WE SHOULD NOT COME BACK HERE! HALT ; WE SHOULD NOT COME BACK HERE!
; ;
S100MON_SKIP: S100MON_SKIP:
; RESTORE DEFAULT RELOAD REGISTER VALUE (PROBABLY NOT NEEDED)
XOR A
OUT0 (Z180_RLDR1L),A
#ENDIF #ENDIF
; ;
; SAVE CURRENT BANKID ; SAVE CURRENT BANKID

View File

@@ -508,7 +508,7 @@ BEGIN0: JP BEGIN ;JUMP OVER COMMAND TABLE
TBL: DW FLUSH ;"@" SEND FF to LaserJet printer TBL: DW FLUSH ;"@" SEND FF to LaserJet printer
DW MEMMAP ;"A" DISPLAY A MAP OF MEMORY DW MEMMAP ;"A" DISPLAY A MAP OF MEMORY
DW NOT_DONE ; "B" SWITCH CONTROL TO 68000 CPU DW BOOT ; "B" SWITCH CONTROL TO 68000 CPU
DW NOT_DONE ; "C" BOOT IN CP/M FROM 8" DISK WITH WITH ZFDC FDC DW NOT_DONE ; "C" BOOT IN CP/M FROM 8" DISK WITH WITH ZFDC FDC
DW DISP ;"D" DISPLAY MEMORY (IN HEX & ASCII) DW DISP ;"D" DISPLAY MEMORY (IN HEX & ASCII)
DW CHAR_TEST ;"E" ECHO CHAR IN TO CHAR OUT DW CHAR_TEST ;"E" ECHO CHAR IN TO CHAR OUT
@@ -848,6 +848,18 @@ OTA: PUSH BC
RET RET
;---------------------------- B COMMAND BOOT ROMWBW -------------------------------------------
;RESTART SYSTEM WITH ROMWBW BOOT OVERRIDE FLAG IN THE Z180 RELOAD
;REGISTER 1 LOW
BOOT:
LD A,'W' ;OVERRIDE VALUE
OUT0 (Z180_RLDR1L),A ;SET RELOAD REGISTER 1 LOW
XOR A ;ROM BANK 0 PLEASE
CALL bnksel ;SELECT BANK IN LOW MEM
JP 0 ;AND JUMP TO THE START
;----------------------- D COMMAND DISPLAY MEMORY IN HEX --------------------------------------- ;----------------------- D COMMAND DISPLAY MEMORY IN HEX ---------------------------------------
DISP: CALL EXLF ;GET PARAMETERS IN [HL],[DE] DISP: CALL EXLF ;GET PARAMETERS IN [HL],[DE]

View File

@@ -2,7 +2,7 @@
#DEFINE RMN 3 #DEFINE RMN 3
#DEFINE RUP 0 #DEFINE RUP 0
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.3.0-dev.30" #DEFINE BIOSVER "3.3.0-dev.31"
#define rmj RMJ #define rmj RMJ
#define rmn RMN #define rmn RMN
#define rup RUP #define rup RUP

View File

@@ -3,5 +3,5 @@ rmn equ 3
rup equ 0 rup equ 0
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.3.0-dev.30" db "3.3.0-dev.31"
endm endm