From ab32774e685cdc79c04dd2c2191aa7699bbf5081 Mon Sep 17 00:00:00 2001 From: b1ackmai1er <39449559+b1ackmai1er@users.noreply.github.com> Date: Wed, 7 Nov 2018 08:51:59 +0800 Subject: [PATCH 1/4] Update layout documentation with recent ROM changes --- Source/HBIOS/Layout.txt | 45 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/Source/HBIOS/Layout.txt b/Source/HBIOS/Layout.txt index 8e98d724..3e7565f2 100644 --- a/Source/HBIOS/Layout.txt +++ b/Source/HBIOS/Layout.txt @@ -4,9 +4,9 @@ Final Output Files ROM Output File [512K] -> .rom hbios_rom [32K] - OSIMG [32K] - OSIMG [32K] (used as filler) - OSIMG [32K] (used as filler) + OSIMG [32K] + OSIMG1 [32K] + OSIMG [32K] (used as filler) romdisk - [384K] COM Output File -> .com @@ -23,9 +23,17 @@ Intermediate Output Files OSIMG [32K] -> osimg.bin romldr [4K] osldr? - dbgmon [4K] tbasic? + dbgmon [4K] CPM (ccp/bdos/cbios) [12K] ZSYS (zcpr/zsdos/cbios) [12K] + eastaegg [0.5K] + imagepad [-] + +OSIMG1 [32K] -> osimg0.bin + camel80 [5.75K] + nascom [8K] + tastybasic [2.25K] + imagepad0 [-] CPM [12K] -> cpm.bin ccp [2K] @@ -74,6 +82,35 @@ dbgmon.asm -> dbgmon.bin: util.asm memmgr.asm dsky.asm + +eastaegg.asm -> eastaegg.bin + std.asm + ver.inc + hbios.inc + build.inc + .asm + plt_.inc + +Forth\camel80.azm -> Forth\camel80.bin -> ..\camel80.bin + camel80d.azm + camel80h.azm + +nascom.asm -> nascom.bin + std.asm + ver.inc + hbios.inc + build.inc + .asm + plt_.inc + +tastybasic.asm -> tastybasic.bin + std.asm + ver.inc + hbios.inc + build.inc + .asm + plt_.inc + ======================================================================= HBIOS Loading Modes: From 7c302ba456cc0a510c2d3c2f550fba3fdce0752c Mon Sep 17 00:00:00 2001 From: b1ackmai1er <39449559+b1ackmai1er@users.noreply.github.com> Date: Wed, 7 Nov 2018 09:44:23 +0800 Subject: [PATCH 2/4] Add Reboot menu option. Some optimizations of error message display --- Source/HBIOS/romldr.asm | 65 +++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 39 deletions(-) diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 04e7c208..b80226f3 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -54,10 +54,6 @@ INT_IM1 .EQU $FF00 ; DI ; NO INTERRUPTS LD SP,BL_STACK ; SETUP STACK -; - ; BANNER - LD DE,STR_BANNER - CALL WRITESTR ; #IF (PLATFORM != PLT_UNA) @@ -110,15 +106,13 @@ INT_IM1 .EQU $FF00 #ENDIF EI ; - ; RUN THE BOOT LOADER MENU - JP DOBOOTMENU -; -;__DOBOOT________________________________________________________________________________________________________________________ -; -; PERFORM BOOT FRONT PANEL ACTION -;________________________________________________________________________________________________________________________________ +; RUN THE BOOT LOADER MENU ; + + LD DE,STR_BANNER ; DISPLAY BOOT BANNER + DOBOOTMENU: + CALL WRITESTR ; DISPLAY MESSAGE OR ERROR CALL NEWLINE ; #IF (DSKYENABLE) @@ -214,9 +208,9 @@ MENU_C: EX DE,HL ; CHECK FOR DRIVE EXECUTION CP '0' ; 0-9, DISK DEVICE - JP C,DB_INVALID + JR C,DB_INVALID CP '9' + 1 - JP NC,DB_INVALID + JR NC,DB_INVALID SUB '0' JP GOBOOTDISK @@ -229,6 +223,10 @@ MENU_X: CALL NEWLINE EX DE,HL JP (HL) ; JUMP TO THE ROUTINE TO EXECUTE IT +DB_INVALID: + LD DE,STR_INVALID + JP DOBOOTMENU + #DEFINE MENU_L(M1,M2,M3,M4,M5,M6,M7,M8,M9,M10) \ #DEFCONT \ .DB M1 #DEFCONT \ .DB M2 @@ -247,33 +245,27 @@ MENU_S: MENU_L("MONITOR $$", "M", GOROM, BID_BIOSIMG, MON_SERIAL, 0A00h, MENU_1: MENU_L("CP/M $ $", "C", GOROM, BID_BIOSIMG, CPM_ENT, 1A00h, CPM_LOC, CPM_SIZ, BID_USR, "CP/M 80 2.2$ ") MENU_L("Z-SYSTEM $", "Z", GOROM, BID_BIOSIMG, CPM_ENT, 4A00h, CPM_LOC, CPM_SIZ, BID_USR, "ZSDOS V1.1 $ ") MENU_L("$ $", "E", GOROM, BID_BIOSIMG, EGG_LOC, 7A00h, EGG_LOC, EGG_SIZ, BID_USR, "Easter Egg $ ") - MENU_L("FORTH $ $", "R", GOROMB, BID_OSIMG, FTH_LOC, 0000h, FTH_LOC, FTH_SIZ, BID_USR, "Camel Forth$ ") + MENU_L("FORTH $ $", "F", GOROMB, BID_OSIMG, FTH_LOC, 0000h, FTH_LOC, FTH_SIZ, BID_USR, "Camel Forth$ ") MENU_L("BASIC $ $", "B", GOROMB, BID_OSIMG, BAS_LOC, 1700h, BAS_LOC, BAS_SIZ, BID_USR, "Nascom BASIC$") MENU_L("T-BASIC $$", "T", GOROMB, BID_OSIMG, TBC_LOC, 3700h, TBC_LOC, TBC_SIZ, BID_USR, "Tasty BASIC$ ") #IF (DSKYENABLE) MENU_L("DSKY-MON $", "D", GOROM, BID_BIOSIMG, MON_DSKY, 0A00h, MON_LOC, MON_SIZ, BID_USR, DSKY Monitor$") #ENDIF - + + .DB "REBOOT$ ", "R" + .DW REBOOT + MENU_E: - MENU_V .EQU MENU_1-MENU_S ; LENGTH OF EACH MENU RECORD -MENU_N .EQU (MENU_E-MENU_S)/MENU_V ; NUMBER OF MENU ITEMS - ; -; BOOT OPTION PROCESSING +MENU_N .EQU ((MENU_E-MENU_S)/MENU_V)+1; NUMBER OF MENU ITEMS ; -DB_INVALID: - LD DE,STR_INVALID - CALL WRITESTR - JP DOBOOTMENU +; BOOT OPTION PROCESSING ; GOROM: EX DE,HL INC HL ; HL POINTS TO source-bank -; LD A,(HL) -; CP BID_BIOSIMG -; JP Z,DOBOOTMENU; ONLY CURRENT BANK SUPPORTED - LD B,4 ; + LD B,4 ; PUT NEXT FOUR ADDRESSES ON STACK GOROM_1:INC HL LD E,(HL) INC HL @@ -289,11 +281,8 @@ GOROM_1:INC HL GOROMB: EX DE,HL INC HL ; HL POINTS TO source-bank -; LD A,(HL) -; CP BID_BIOSIMG -; JP Z,DOBOOTMENU; ONLY CURRENT BANK SUPPORTED - LD B,4 + LD B,4 ; PUT NEXT FOUR ADDRESSES ON STACK GOROMB1:INC HL LD E,(HL) INC HL @@ -341,11 +330,16 @@ CHAIN: ; EXPECT EXEC ADDRESS ON TOP OF STACK HALT ; WE SHOULD NEVER RETURN!!! #ENDIF ; +; REBOOT ROMLDR +; +REBOOT: LD A,BID_BOOT ; BOOT BANK + LD HL,0 ; ADDRESS ZERO + CALL HB_BNKCALL ; DOES NOT RETURN + GOBOOTDISK: LD (BL_BOOTID),A LD DE,STR_BOOTDISK CALL WRITESTR -; JP BOOTDISK ; ; BOOT FROM DISK DRIVE ; @@ -538,23 +532,19 @@ BOOTDISK: DB_NODISK: ; SELDSK DID NOT LIKE DRIVE SELECTION LD DE,STR_NODISK - CALL WRITESTR JP DOBOOTMENU DB_NOBOOT: ; DISK IS NOT BOOTABLE LD DE,STR_NOBOOT - CALL WRITESTR JP DOBOOTMENU DB_ERR: ; I/O ERROR DURING BOOT ATTEMPT LD DE,STR_BOOTERR - CALL WRITESTR JP DOBOOTMENU ; #IF (DSKYENABLE) -; ; ;__SEGDISPLAY________________________________________________________________________________________ ; @@ -777,7 +767,6 @@ DEV15 .EQU DEVUNK ; STR_BOOTDISK .DB "BOOT FROM DISK\r\n$" STR_BOOTDISK1 .DB "\r\nReading disk information...$" -;STR_LIST .DB "LIST DEVICES\r\n$" STR_INVALID .DB "INVALID SELECTION\r\n$" STR_SETUP .DB "SYSTEM SETUP\r\n$" STR_SIG .DB "SIGNATURE=$" @@ -785,13 +774,11 @@ STR_CPMLOC .DB "LOC=$" STR_CPMEND .DB "END=$" STR_CPMENT .DB "ENT=$" STR_LABEL .DB "LABEL=$" -;STR_DRVLIST .DB "\r\nDisk Devices:\r\n$" STR_PREFIX .DB "($" STR_LOADING .DB "\r\nLoading...$" STR_NODISK .DB "\r\nNo disk!$" STR_NOBOOT .DB "\r\nDisk not bootable!$" STR_BOOTERR .DB "\r\nBoot failure!$" -;STR_LAUNCH .DB "\r\nLaunching ...$" STR_BANNER .DB "\r\n", PLATFORM_NAME, " Boot Loader" STR_NL .DB "\r\n$" ; From 1682a41e404c3cdf2d61e298cc06648352674e5e Mon Sep 17 00:00:00 2001 From: b1ackmai1er <39449559+b1ackmai1er@users.noreply.github.com> Date: Wed, 7 Nov 2018 10:30:49 +0800 Subject: [PATCH 3/4] Fix DSKY menu option --- Source/HBIOS/romldr.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index b80226f3..b3b6824d 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -250,7 +250,7 @@ MENU_1: MENU_L("CP/M $ $", "C", GOROM, BID_BIOSIMG, CPM_ENT, 1A00h, MENU_L("T-BASIC $$", "T", GOROMB, BID_OSIMG, TBC_LOC, 3700h, TBC_LOC, TBC_SIZ, BID_USR, "Tasty BASIC$ ") #IF (DSKYENABLE) - MENU_L("DSKY-MON $", "D", GOROM, BID_BIOSIMG, MON_DSKY, 0A00h, MON_LOC, MON_SIZ, BID_USR, DSKY Monitor$") + MENU_L("DSKY-MON $", "D", GOROM, BID_BIOSIMG, MON_DSKY, 0A00h, MON_LOC, MON_SIZ, BID_USR, "DSKY Monitor$") #ENDIF .DB "REBOOT$ ", "R" From 445943d253eaa9f87c3792165b668f0d97c1542c Mon Sep 17 00:00:00 2001 From: b1ackmai1er <39449559+b1ackmai1er@users.noreply.github.com> Date: Wed, 7 Nov 2018 11:48:35 +0800 Subject: [PATCH 4/4] Include some information on included ROM software. --- ReadMe.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ReadMe.txt b/ReadMe.txt index e71bee63..e27ea152 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -194,6 +194,24 @@ UNA customization is performed within the ROM setup script. Complete documentation of the customization process is found in the ReadMe.txt file in the Source directory. +Inbuild ROM Applications +------------------------ + +Additonal software other than the CP/M and Z-System application can +be included in the ROM image for execution from the ROM loader. + +Current inclusions are: + + Monitor - Z80 debug monitor with hexload capability. + Forth - Brad Rodriguez's ANS compatible Forth. + Basic - Nascom 8K BASIC. + Tasty BASIC - Dimitri Theulings Tiny BASIC implementation. + + Note: To exit type B in Monitor and BYE in other applications. + +Space is available in the ROM image for the inclusion of other software. +Any inbuild application can be set up to launch automatically at startup. + Source Code Respository -----------------------