Browse Source

S100 Monitor Update

The S100 Monitor will now allow launching RomWBW using the 'B' command.
pull/354/head v3.3.0-dev.31
Wayne Warthen 3 years ago
parent
commit
7a209d4053
  1. 12
      Source/HBIOS/Makefile
  2. 22
      Source/HBIOS/hbios.asm
  3. 14
      Source/HBIOS/s100mon.z80
  4. 2
      Source/ver.inc
  5. 2
      Source/ver.lib

12
Source/HBIOS/Makefile

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

22
Source/HBIOS/hbios.asm

@ -1374,19 +1374,33 @@ Z280_INITZ:
#ENDIF
;
; 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
; TRANSITION TO THIS MONITOR.
; IF PORT $75 BIT 1 IS SET (SET IS ZERO), THEN WE IMMEDIATELY
; 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)
IN A,($65) ; READ SWITCHES
; CHECK S100 BOARD DIP SWITCH, BIT 1
IN A,($75) ; READ SWITCHES
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 IX,0 ; EXECUTION RESUMES HERE
CALL HBX_BNKCALL ; CONTINUE IN RAM BANK, DO NOT RETURN
HALT ; WE SHOULD NOT COME BACK HERE!
;
S100MON_SKIP:
; RESTORE DEFAULT RELOAD REGISTER VALUE (PROBABLY NOT NEEDED)
XOR A
OUT0 (Z180_RLDR1L),A
#ENDIF
;
; SAVE CURRENT BANKID

14
Source/HBIOS/s100mon.z80

@ -508,7 +508,7 @@ BEGIN0: JP BEGIN ;JUMP OVER COMMAND TABLE
TBL: DW FLUSH ;"@" SEND FF to LaserJet printer
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 DISP ;"D" DISPLAY MEMORY (IN HEX & ASCII)
DW CHAR_TEST ;"E" ECHO CHAR IN TO CHAR OUT
@ -848,6 +848,18 @@ OTA: PUSH BC
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 ---------------------------------------
DISP: CALL EXLF ;GET PARAMETERS IN [HL],[DE]

2
Source/ver.inc

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

2
Source/ver.lib

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

Loading…
Cancel
Save