|
|
@ -17,9 +17,9 @@ EGGIMG .EQU $7A00 ;SIZE 0200 > 7A00-7C00 |
|
|
; |
|
|
; |
|
|
; osimg1.bin |
|
|
; osimg1.bin |
|
|
; |
|
|
; |
|
|
BASIMG .EQU $0000 ;SIZE 2000 > 0000-2000 |
|
|
|
|
|
TBCIMG .EQU $2000 ;SIZE 0900 > 2000-2900 |
|
|
|
|
|
FTHIMG .EQU $2900 ;SIZE 1600 > 2900-3F00 |
|
|
|
|
|
|
|
|
FTHIMG .EQU $0000 ;SIZE 1700 > 0000-1700 |
|
|
|
|
|
BASIMG .EQU $1700 ;SIZE 2000 > 1700-3700 |
|
|
|
|
|
TBCIMG .EQU $3700 ;SIZE 0900 > 3700-4000 |
|
|
; |
|
|
; |
|
|
INT_IM1 .EQU $FF00 |
|
|
INT_IM1 .EQU $FF00 |
|
|
; |
|
|
; |
|
|
@ -164,6 +164,8 @@ DB_BOOTLOOP: |
|
|
JP Z,GOCPM |
|
|
JP Z,GOCPM |
|
|
CP 'E' ; CP/M BOOT FROM ROM |
|
|
CP 'E' ; CP/M BOOT FROM ROM |
|
|
JP Z,GOEASTA |
|
|
JP Z,GOEASTA |
|
|
|
|
|
CP 'F' ; FORTH |
|
|
|
|
|
JP Z,GOFORTH |
|
|
CP 'M' ; MONITOR |
|
|
CP 'M' ; MONITOR |
|
|
JP Z,GOMONSER |
|
|
JP Z,GOMONSER |
|
|
; CP 'L' ; LIST DRIVES |
|
|
; CP 'L' ; LIST DRIVES |
|
|
@ -228,6 +230,8 @@ DB_DSKYEND: |
|
|
JP Z,GOCPM |
|
|
JP Z,GOCPM |
|
|
CP 'E' ; CP/M BOOT FROM ROM |
|
|
CP 'E' ; CP/M BOOT FROM ROM |
|
|
JP Z,GOEASTA |
|
|
JP Z,GOEASTA |
|
|
|
|
|
CP 'F' ; FORTH |
|
|
|
|
|
JP Z,GOFORTH |
|
|
CP 'M' ; MONITOR |
|
|
CP 'M' ; MONITOR |
|
|
JP Z,GOMONSER |
|
|
JP Z,GOMONSER |
|
|
; CP 'L' ; LIST DRIVES |
|
|
; CP 'L' ; LIST DRIVES |
|
|
@ -297,12 +301,12 @@ GOEASTA: |
|
|
LD BC,EGG_SIZ ; BC := BASIC SIZE |
|
|
LD BC,EGG_SIZ ; BC := BASIC SIZE |
|
|
LDIR ; COPY BASIC CODE TO EXEC ADDRESS |
|
|
LDIR ; COPY BASIC CODE TO EXEC ADDRESS |
|
|
POP HL ; RECOVER ENTRY ADDRESS |
|
|
POP HL ; RECOVER ENTRY ADDRESS |
|
|
JR CHAIN ; AND CHAIN TO IT |
|
|
|
|
|
|
|
|
JP CHAIN ; AND CHAIN TO IT |
|
|
|
|
|
|
|
|
GOTBAS: |
|
|
GOTBAS: |
|
|
LD DE,STR_BOOTTBC ; DE POINTS TO MESSAGE |
|
|
LD DE,STR_BOOTTBC ; DE POINTS TO MESSAGE |
|
|
CALL WRITESTR ; WRITE IT TO CONSOLE |
|
|
CALL WRITESTR ; WRITE IT TO CONSOLE |
|
|
; COPY BASIC FROM BASIC FROM OSIMG0 IN ROM BANK TO THIS RAM BANKS |
|
|
|
|
|
|
|
|
; COPY BASIC FROM OSIMG0 IN ROM BANK TO THIS RAM BANKS |
|
|
LD B,BF_SYSSETCPY ; HBIOS FUNC: SETUP BANK COPY |
|
|
LD B,BF_SYSSETCPY ; HBIOS FUNC: SETUP BANK COPY |
|
|
LD D,BID_USR ; D = DEST BANK = USER BANK |
|
|
LD D,BID_USR ; D = DEST BANK = USER BANK |
|
|
LD E,BID_OSIMG ; E = SRC BANK = BIOS BANK |
|
|
LD E,BID_OSIMG ; E = SRC BANK = BIOS BANK |
|
|
@ -330,6 +334,38 @@ GOTBAS: |
|
|
; LDIR ; COPY BASIC CODE TO EXEC ADDRESS |
|
|
; LDIR ; COPY BASIC CODE TO EXEC ADDRESS |
|
|
; POP HL ; RECOVER ENTRY ADDRESS |
|
|
; POP HL ; RECOVER ENTRY ADDRESS |
|
|
; JR CHAIN ; AND CHAIN TO IT |
|
|
; JR CHAIN ; AND CHAIN TO IT |
|
|
|
|
|
|
|
|
|
|
|
GOFORTH: |
|
|
|
|
|
LD DE,STR_BOOTFTH ; DE POINTS TO MESSAGE |
|
|
|
|
|
CALL WRITESTR ; WRITE IT TO CONSOLE |
|
|
|
|
|
; COPY FORTH FROM OSIMG0 IN ROM BANK TO THIS RAM BANKS |
|
|
|
|
|
LD B,BF_SYSSETCPY ; HBIOS FUNC: SETUP BANK COPY |
|
|
|
|
|
LD D,BID_USR ; D = DEST BANK = USER BANK |
|
|
|
|
|
LD E,BID_OSIMG ; E = SRC BANK = BIOS BANK |
|
|
|
|
|
LD HL,FTH_SIZ ; HL = COPY LEN = 1 PAGE = 256 BYTES |
|
|
|
|
|
RST 08 ; DO IT |
|
|
|
|
|
LD DE,STR_LOADING |
|
|
|
|
|
CALL WRITESTR ; WRITE IT TO CONSOLE |
|
|
|
|
|
LD B,BF_SYSBNKCPY ; HBIOS FUNC: PERFORM BANK COPY |
|
|
|
|
|
LD HL,FTHIMG ; COPY FROM |
|
|
|
|
|
LD DE,FTH_LOC ; COPY TO |
|
|
|
|
|
RST 08 ; DO IT |
|
|
|
|
|
LD DE,STR_LAUNCH |
|
|
|
|
|
CALL WRITESTR |
|
|
|
|
|
LD HL,FTH_LOC |
|
|
|
|
|
JP CHAIN |
|
|
|
|
|
|
|
|
|
|
|
; LD HL,FTH_LOC ; FIRST BANK CODE |
|
|
|
|
|
; PUSH HL |
|
|
|
|
|
; LD DE,STR_BOOTFTH ; DE POINTS TO MESSAGE |
|
|
|
|
|
; CALL WRITESTR ; WRITE IT TO CONSOLE |
|
|
|
|
|
; ; COPY IMAGE TO EXEC ADDRESS |
|
|
|
|
|
; LD HL,FTHIMG ; HL := BASIC IMAGE ADDRESS |
|
|
|
|
|
; LD DE,FTH_LOC ; DE := BASIC EXEC ADDRESS |
|
|
|
|
|
; LD BC,FTH_SIZ ; BC := BASIC SIZE |
|
|
|
|
|
; LDIR ; COPY BASIC CODE TO EXEC ADDRESS |
|
|
|
|
|
; POP HL ; RECOVER ENTRY ADDRESS |
|
|
|
|
|
; JR CHAIN ; AND CHAIN TO IT |
|
|
|
|
|
|
|
|
GOMONSER: |
|
|
GOMONSER: |
|
|
LD HL,MON_SERIAL ; MONITOR SERIAL INTERFACE ENTRY ADDRESS TO HL |
|
|
LD HL,MON_SERIAL ; MONITOR SERIAL INTERFACE ENTRY ADDRESS TO HL |
|
|
@ -852,6 +888,7 @@ STR_BOOTDISK .DB "BOOT FROM DISK\r\n$" |
|
|
STR_BOOTDISK1 .DB "\r\nReading disk information...$" |
|
|
STR_BOOTDISK1 .DB "\r\nReading disk information...$" |
|
|
STR_BOOTMON .DB "START MONITOR FROM ROM\r\n$" |
|
|
STR_BOOTMON .DB "START MONITOR FROM ROM\r\n$" |
|
|
STR_BOOTBAS .DB "START BASIC FROM ROM\r\n$" |
|
|
STR_BOOTBAS .DB "START BASIC FROM ROM\r\n$" |
|
|
|
|
|
STR_BOOTFTH .DB "START FORTH FROM ROM\r\n$" |
|
|
STR_BOOTTBC .DB "START TASTYBASIC FROM ROM\r\n$" |
|
|
STR_BOOTTBC .DB "START TASTYBASIC FROM ROM\r\n$" |
|
|
STR_BOOTCPM .DB "BOOT CPM FROM ROM\r\n$" |
|
|
STR_BOOTCPM .DB "BOOT CPM FROM ROM\r\n$" |
|
|
STR_BOOTZSYS .DB "BOOT ZSYSTEM FROM ROM\r\n$" |
|
|
STR_BOOTZSYS .DB "BOOT ZSYSTEM FROM ROM\r\n$" |
|
|
@ -875,7 +912,7 @@ STR_LAUNCH .DB "\r\nLaunching ...$" |
|
|
; |
|
|
; |
|
|
STR_BANNER .DB "\r\n", PLATFORM_NAME, " Boot Loader$" |
|
|
STR_BANNER .DB "\r\n", PLATFORM_NAME, " Boot Loader$" |
|
|
STR_BOOTMENU .DB "\r\n" |
|
|
STR_BOOTMENU .DB "\r\n" |
|
|
.DB "\r\nROM Boot: (B)ASIC, (C)PM, (M)onitor, (T)ASTYBASIC, (Z)System.\r\n" |
|
|
|
|
|
|
|
|
.DB "\r\nROM Boot: (B)ASIC, (C)PM, (F)ORTH, (M)onitor, (T)ASTYBASIC, (Z)System.\r\n" |
|
|
.DB "Disk Boot: $" |
|
|
.DB "Disk Boot: $" |
|
|
; |
|
|
; |
|
|
.IF DSKYENABLE |
|
|
.IF DSKYENABLE |
|
|
|