mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Initial NVRAM Changes, for HBIOS including public API, sysconfig app, build changes
This commit is contained in:
@@ -89,6 +89,11 @@ call :asm usrrom || exit /b
|
||||
call :asm updater || exit /b
|
||||
call :asm imgpad2 || exit /b
|
||||
|
||||
::
|
||||
:: Build components in Sub folders
|
||||
::
|
||||
pushd SysConfig && call Build || exit /b & popd
|
||||
|
||||
::
|
||||
:: Create additional ROM bank images by assembling components into
|
||||
:: 32K chunks which can be concatenated later. Note that
|
||||
@@ -97,7 +102,7 @@ call :asm imgpad2 || exit /b
|
||||
::
|
||||
|
||||
copy /b romldr.bin + dbgmon.bin + ..\zsdos\zsys_wbw.bin + ..\cpm22\cpm_wbw.bin osimg.bin || exit /b
|
||||
copy /b ..\Forth\camel80.bin + nascom.bin + ..\tastybasic\src\tastybasic.bin + game.bin + eastaegg.bin + netboot.mod + updater.bin + usrrom.bin osimg1.bin || exit /b
|
||||
copy /b ..\Forth\camel80.bin + nascom.bin + ..\tastybasic\src\tastybasic.bin + game.bin + eastaegg.bin + netboot.mod + updater.bin + SysConfig/sysconfig.bin usrrom.bin osimg1.bin || exit /b
|
||||
|
||||
if %Platform%==S100 (
|
||||
zxcc slr180 -s100mon/fh
|
||||
|
||||
@@ -3,7 +3,7 @@ MOREDIFF = game.bin hbios_rom.bin nascom.bin usrrom.bin \
|
||||
dbgmon.bin hbios_app.bin imgpad2.bin osimg1.bin osimg2.bin romldr.bin \
|
||||
eastaegg.bin hbios_img.bin osimg.bin game.bin updater.bin usrrom.bin
|
||||
|
||||
SUBDIRS =
|
||||
SUBDIRS = SysConfig
|
||||
DEST = ../../Binary
|
||||
TOOLS =../../Tools
|
||||
OTHERS = *.img *.rom *.com *.upd *.bin *.hex cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh
|
||||
@@ -62,7 +62,7 @@ $(OBJECTS) : $(ROMDEPS)
|
||||
@cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin ../CPM22/cpm_$(BIOS).bin >osimg.bin
|
||||
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin >osimg_small.bin
|
||||
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 SysConfig/sysconfig.bin usrrom.bin >osimg1.bin ; \
|
||||
if [ $(ROM_PLATFORM) = S100 ] ; then \
|
||||
cat s100mon.bin >osimg2.bin ; \
|
||||
else \
|
||||
@@ -102,7 +102,7 @@ s100mon.bin:
|
||||
|
||||
tastybasic.bin:
|
||||
cp ../TastyBasic/src/$@ .
|
||||
|
||||
|
||||
hbios_rom.bin: hbios.asm build.inc $(DEPS)
|
||||
@$(TASM) -dROMBOOT hbios.asm hbios_rom.bin hbios_rom.lst
|
||||
|
||||
@@ -114,7 +114,7 @@ hbios_img.bin: hbios.asm build.inc $(DEPS)
|
||||
|
||||
hbios_env.com: hbios_env.asm build.inc
|
||||
@$(TASM) -dBASH hbios_env.asm hbios_env.com hbios_env.lst
|
||||
|
||||
|
||||
hbios_env.sh: hbios_env.com
|
||||
@$(ZXCC) hbios_env.com >hbios_env.sh
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ DIST_OBJECTS := \
|
||||
DUO_std SCZ180_sc126 SCZ180_sc130 SCZ180_sc131 SCZ180_sc140 \
|
||||
SCZ180_sc503 SCZ180_sc700 S100_std UNA_std Z80RETRO_std \
|
||||
ZETA_std ZETA2_std HEATH_std EPITX_std GMZ180_std
|
||||
# RCZ80_mt RCZ80_duart MON_std
|
||||
# RCZ80_mt RCZ80_duart MON_std
|
||||
|
||||
OBJECTS := $(DIST_OBJECTS)
|
||||
# OBJECTS := SBC_std MK4_std UNA_std S100_std
|
||||
@@ -41,6 +41,9 @@ camel80.bin:
|
||||
tastybasic.bin:
|
||||
cp ../TastyBasic/src/$@ .
|
||||
|
||||
sysconfig.bin:
|
||||
cp SysConfig/$@ .
|
||||
|
||||
s100mon.bin:
|
||||
$(ZXCC) $(CPM)/SLR180 -s100mon/FH
|
||||
$(ZXCC) $(CPM)/MLOAD25 -s100mon.bin=s100mon
|
||||
@@ -100,8 +103,8 @@ UNA_%.osimg.bin: UNA_%.romldr.bin UNA_%.dbgmon.bin
|
||||
%.osimg_small.bin: %.romldr.bin %.dbgmon.bin
|
||||
cat $(*F).romldr.bin $(*F).dbgmon.bin ../ZSDOS/zsys_wbw.bin >$@
|
||||
|
||||
%.osimg1.bin: camel80.bin %.nascom.bin tastybasic.bin %.game.bin %.eastaegg.bin netboot.mod %.updater.bin %.usrrom.bin
|
||||
cat camel80.bin $(*F).nascom.bin tastybasic.bin $(*F).game.bin $(*F).eastaegg.bin netboot.mod $(*F).updater.bin $(*F).usrrom.bin >$@
|
||||
%.osimg1.bin: camel80.bin %.nascom.bin tastybasic.bin %.game.bin %.eastaegg.bin netboot.mod %.updater.bin sysconfig.bin %.usrrom.bin
|
||||
cat camel80.bin $(*F).nascom.bin tastybasic.bin $(*F).game.bin $(*F).eastaegg.bin netboot.mod $(*F).updater.bin sysconfig.bin $(*F).usrrom.bin >$@
|
||||
srec_cat $@ -Binary -Crop 0 0x7FFF -Checksum_Negative_Big_Endian 0x7FFF 1 1 -o $@ -Binary
|
||||
|
||||
S100_%.imgpad2.bin: s100mon.bin
|
||||
|
||||
10
Source/HBIOS/SysConfig/Build.cmd
Normal file
10
Source/HBIOS/SysConfig/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF sysconfig.asm sysconfig.com sysconfig.lst || exit /b
|
||||
|
||||
copy /Y sysconfig.com ..\..\Binary\Apps\ || exit /b
|
||||
6
Source/HBIOS/SysConfig/Clean.cmd
Normal file
6
Source/HBIOS/SysConfig/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
12
Source/HBIOS/SysConfig/Makefile
Normal file
12
Source/HBIOS/SysConfig/Makefile
Normal file
@@ -0,0 +1,12 @@
|
||||
OBJECTS = sysconfig.com sysconfig.bin
|
||||
DEST = ../../../Binary/Apps
|
||||
NOCOPY = sysconfig.bin
|
||||
TOOLS = ../../../Tools
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
USETASM=1
|
||||
|
||||
sysconfig.bin: TASMFLAGS=-dROMWBW
|
||||
|
||||
sysconfig.com: TASMFLAGS=-dCPM
|
||||
21
Source/HBIOS/SysConfig/README.md
Normal file
21
Source/HBIOS/SysConfig/README.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# System Configuration
|
||||
|
||||
## Introduction
|
||||
|
||||
An utility applicaton that sets NVR Attributes that affect HBIOS and
|
||||
RomWBW Operation. Write to RTC NVRAM to store config is reliant on HBIOS
|
||||
|
||||
## Building
|
||||
|
||||
TASM (Telemark Assembler) ([Anderson, 1998](##References)).
|
||||
|
||||
### RomWBW Version
|
||||
|
||||
Is part of the SBCv2 RomWBW distribution. And deployed as a Rom Application
|
||||
It is included in Rom Bank 1
|
||||
|
||||
### CP/M Version
|
||||
|
||||
The resulting `sysconfig.com` command file can be run in CP/M.
|
||||
It is copied in the Binary/Apps folder.
|
||||
|
||||
1032
Source/HBIOS/SysConfig/sysconfig.asm
Normal file
1032
Source/HBIOS/SysConfig/sysconfig.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -458,6 +458,33 @@ CB_BOOTMODE .DB BOOTMODE ; HBIOS BOOTMODE
|
||||
CB_HEAP .DW 0
|
||||
CB_HEAPTOP .DW 0
|
||||
;
|
||||
; SWITCHES SHADOW COPY (FROM RTC/NVR) START AT $30
|
||||
;
|
||||
.FILL (HCB + $30 - $),0
|
||||
;
|
||||
; First byte (header) of NVRAM = "W" if fully initialised, or a ststus byte
|
||||
; = 0 if no NVRAM detected, or = 1 If NVR exists, but not configured
|
||||
CB_SWITCHES .DB 0 ; this byte is set during init
|
||||
;
|
||||
; Byte 0: (L)
|
||||
; Bit 7-0 DISK BOOT SLice Number to Boot -> default = 0
|
||||
; Bit 7-0 ROM BOOT (alpha character) Application to boot -> default = "H"
|
||||
; Byte 1: (H)
|
||||
; Bit 7 - ROM/DISK - Rom or Disk Boot -> Default=ROM=1 (BOOT_DEFAULT is Numeric/Alpha)
|
||||
; Bit 6-0 - DISK BOOT Disk Unit to Boot (0-127) -> default = 0
|
||||
CB_SWDEFBOOT .DB 'H' ; (WORD) DEFAULT BOOT NVR OPTIONS. USED By ROMLDR
|
||||
.DB DBOOT_ROM ; Default Boot - ROM Application
|
||||
;
|
||||
; Byte 0: (L)
|
||||
; Bit 7-6 - Reserved
|
||||
; Bit 5 - AUTO BOOT Auto boot, default=false (BOOT_TIMEOUT != -1)
|
||||
; Bit 4 - Reserved
|
||||
; Bit 3-0 - BOOT_TIMEOUT in seconds (0-15) 0=immediate -> default=3
|
||||
CB_SWAUTOB .DB 0 ; AUTO BOOT NVR OPTIONS. USED By ROMLDR
|
||||
;
|
||||
; CHECKSUM
|
||||
CB_SWITCHCK .DB 0 ; CHECKSUM (XOR=0), INCLUDES HEADER and CB_VERSION
|
||||
;
|
||||
; STANDARD BANK ID'S START AT $D8. DEFAULT VALUES FOR 512KB SYSTEM WITH NO RESERVED BANKS
|
||||
;
|
||||
.FILL (HCB + $D8 - $),0
|
||||
@@ -3351,6 +3378,32 @@ IS_REC_M1:
|
||||
CALL CALLLIST
|
||||
;
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
; NV-SWITCH INITITIALISATION
|
||||
; Requires functional RTC NVR
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
;
|
||||
NVR_INIT:
|
||||
; Check for the existence of NV RAM by attempting to read a byte
|
||||
LD B,BF_RTCGETBYT ; GET RTC BYTE
|
||||
LD C,0 ; FIRST Byte address in RTC
|
||||
CALL RTC_DISPATCH ; CALL RTC
|
||||
JR NZ,NVR_INIT_END ; GET BYTE Failed; Noting to do, HCB is correct. Status =0
|
||||
;
|
||||
CALL NVSW_READ ; read the full data into hcb
|
||||
JR NZ, NVR_INIT_DEF ; failed to correclty read data
|
||||
;
|
||||
CALL NVSW_CHECKSUM ; checksum calc into A
|
||||
LD HL,CB_SWITCHCK ; address of HCB value
|
||||
CP (HL) ; compare Caculated Check, with hcb Check Value
|
||||
JR Z,NVR_INIT_END ; The same so success
|
||||
NVR_INIT_DEF:
|
||||
; failed Read or Checksum
|
||||
CALL NVSW_DEFAULTS ; set defaults into HCB, which include the "W" first byte
|
||||
LD HL,CB_SWITCHES ; which is incorrect, need the value of 1
|
||||
LD (HL),1 ; to indicate we while not inited, we do have NVRAM
|
||||
NVR_INIT_END:
|
||||
;
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
; WATCHDOG ACTIVATION
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
;
|
||||
@@ -5476,6 +5529,8 @@ SYS_GET:
|
||||
JP Z, SYS_GETSNDCNT
|
||||
CP BF_SYSGET_SNDFN
|
||||
JP Z,SYS_GETSNDFN
|
||||
CP BF_SYSGET_SWITCH
|
||||
JP Z,SYS_GETSWITCH
|
||||
CP BF_SYSGET_TIMER
|
||||
JP Z,SYS_GETTIMER
|
||||
CP BF_SYSGET_SECS
|
||||
@@ -5628,6 +5683,45 @@ SYS_GETFN:
|
||||
POP DE ; ... TO DE
|
||||
RET ; AF STILL HAS RESULT OF CALC
|
||||
;
|
||||
; GET SWITCH
|
||||
; ON ENTRY:
|
||||
; D: SWITCH KEY
|
||||
; 0 -> ILLEGAL / RESERVED
|
||||
; 1-FE -> SWITCH
|
||||
; FF -> DONT GET VALUE CHECK THE STATUS OF NVRAM -> Returning
|
||||
; A=0 if no NVRAM exists. with NZ flag set
|
||||
; A=1 if NVRAM is present. with Z flag set
|
||||
; A='W' if NVRAM is fullly inited. with Z flag set
|
||||
; Note the NZ flag can be used to detect and return an error condition
|
||||
; RETURNS:
|
||||
; HL: SWITCH VALUE 8/16 BIT
|
||||
;
|
||||
SYS_GETSWITCH:
|
||||
; PUSH DE
|
||||
; CALL NVSW_CONFIG ; make sure shadow copy is inited
|
||||
; POP DE ;
|
||||
; RET NZ ; Configuration Failed, thus cant continue
|
||||
;
|
||||
LD A,D
|
||||
CP $FF ; test if want to just get NVRAM status
|
||||
JR Z,NVSW_STATUS ; Check the Status - Call and Return
|
||||
;
|
||||
CALL SWITCH_RES ; D SWITCH NUMBER -> OUT HL address, E FLAGS
|
||||
RET NZ ; IF NZ FLAG SET THEN ISSUE
|
||||
;
|
||||
LD B,0 ; Clear upper byte
|
||||
LD C,(HL) ; Get LOW Order Switch Data
|
||||
LD A,1 ; Compare with 1 (byte)
|
||||
CP E ; Compare The byte count from SWITCH_RES
|
||||
JR NC,SYS_GETSWITCH2 ; 1 byte or less, skip over
|
||||
INC HL ; next byte pos in a 2 Byte Switch
|
||||
LD B,(HL) ; Get HIGH Order Switch Data
|
||||
;
|
||||
SYS_GETSWITCH2:
|
||||
LD H,B ; retun Result in HL
|
||||
LD L,C
|
||||
XOR A ; signal success
|
||||
RET
|
||||
#IF ((CPUFAM == CPU_EZ80) & (EZ80TIMER == EZ80TMR_FIRM))
|
||||
; IMPLEMENTED IN EZ80DRV.ASM
|
||||
;
|
||||
@@ -5856,6 +5950,8 @@ SYS_GETAPPBNKS:
|
||||
;
|
||||
SYS_SET:
|
||||
LD A,C ; GET REQUESTED SUB-FUNCTION
|
||||
CP BF_SYSSET_SWITCH
|
||||
JP Z,SYS_SETSWITCH
|
||||
CP BF_SYSSET_TIMER
|
||||
JP Z,SYS_SETTIMER
|
||||
CP BF_SYSSET_SECS
|
||||
@@ -5869,6 +5965,76 @@ SYS_SET:
|
||||
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
|
||||
RET
|
||||
;
|
||||
; SET SWITCH
|
||||
; ON ENTRY:
|
||||
; D: SWITCH KEY
|
||||
; 0 -> ILLEGAL / RESERVED
|
||||
; 1-254 -> SWITCH
|
||||
; FF -> REINIT DEFAULT VALUES
|
||||
; HL: SWITCH VALUE 8/16 BIT
|
||||
;
|
||||
SYS_SETSWITCH:
|
||||
CALL NVSW_STATUS ; Check the status of NV RAM
|
||||
RET NZ ; IF NZ then we cant continue, return NZ at this point
|
||||
;
|
||||
LD A,D ; switch # argument
|
||||
CP $FF ; test if want to reset NVRAM
|
||||
JP Z,NVSW_RESET ; then perform reset function. CALL AND RETURN
|
||||
;
|
||||
LD B,H ; move value to write into BC
|
||||
LD C,L
|
||||
CALL SWITCH_RES ; IN D SWITCH NUMBER -> OUT HL address, E FLAGS
|
||||
RET NZ ; RETURN IF NZ - swich number illegal
|
||||
;
|
||||
LD (HL),C ; Save LOW Order Switch Data
|
||||
LD A,1 ; Compare with 1 (byte) switch
|
||||
CP E ; Compare
|
||||
JR NC,SYS_SETSWITCH1 ; 1 byte or less, skip over
|
||||
INC HL ; next byte pos
|
||||
LD (HL),B ; Save High Order Switch Data
|
||||
;
|
||||
SYS_SETSWITCH1:
|
||||
JP NVSW_UPDATE ; do a write to NVR, CALL AND RETURN
|
||||
;
|
||||
; Utility function to convert switch number into lookup
|
||||
; INPUT
|
||||
; D SWITCH NUMBER
|
||||
; OUTPUT
|
||||
; E with Byte count (1,2) for switch, or 0 if switch illegal
|
||||
; HL Memory Address (CB_SWITCHES + offset)
|
||||
SWITCH_RES:
|
||||
LD A,SWITCH_LEN ; lengt of target array (below)
|
||||
CP D ; check we fit in the loop
|
||||
JR C,SWITCH_RES1 ; overflow table to abort
|
||||
;
|
||||
LD HL,SWITCH_TAB ; Lookup table below
|
||||
LD A,D ; plus the offset switch number
|
||||
CALL ADDHLA ; get address of lookup table
|
||||
LD E,(HL) ; E (OUT) nubmer of bytes in switch
|
||||
;
|
||||
LD HL,CB_SWITCHES ; BASE ADDRESS OF SHADDOW DATA
|
||||
LD A,D ; Add The offset to the address
|
||||
CALL ADDHLA ; Final address of Switch Data
|
||||
;
|
||||
XOR A ; signal success
|
||||
RET
|
||||
SWITCH_RES1:
|
||||
OR $FF ; signal failure
|
||||
RET
|
||||
;
|
||||
; Switch number maps drectly into the HCB data, so to account
|
||||
; for double bytes words, we need a table (loopkup)
|
||||
; to defines how to map Applicability of Each Swicth Number
|
||||
; 0->Cant be Used; 1->Single Byte Value; 2->Double Byte Value
|
||||
;
|
||||
SWITCH_TAB:
|
||||
.DB 0 ; Switch 0 is header, cant be used
|
||||
.DB 2 ; Switch 1 - (WORD)
|
||||
.DB 0 ; Switch (byte 2) of prior word, not used
|
||||
.DB 1 ; Switch 3 - (BYTE)
|
||||
.DB 0 ; Last byte is checksum, cant be used
|
||||
SWITCH_LEN .EQU $ - SWITCH_TAB - 2
|
||||
;
|
||||
; SET BOOT INFORMATION
|
||||
; ON ENTRY:
|
||||
; L: BOOT BANK ID
|
||||
@@ -7401,6 +7567,128 @@ Z2DMAADR2:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
; ROUTINES FOR NON VOLITILE (NVRAM) SWITCHES
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
;
|
||||
; Return Status
|
||||
; A=0 if no NVRAM exists. with NZ flag set
|
||||
; A=1 if NVRAM is present. with Z flag set
|
||||
; A='W' if NVRAM is fullly inited. with Z flag set
|
||||
; Note the NZ flag can be used to detect and return an error condition
|
||||
;
|
||||
NVSW_STATUS:
|
||||
LD A,(CB_SWITCHES) ; the status byte
|
||||
LD B,A ; save it
|
||||
AND 1 ; applies to 'W' and $01 status, -> 1
|
||||
CP 1 ; set NZ based on A = 1
|
||||
LD A,B ; return the
|
||||
RET
|
||||
;
|
||||
; RESET CONTENTS OF NVRAM, STORING INTO
|
||||
; RETURN NONZERO IF WRITTEN - ZERO IF NOT WRITTEN
|
||||
;
|
||||
NVSW_RESET:
|
||||
CALL NVSW_DEFAULTS ; copy defaults into HCB
|
||||
; Fall Through and Update (write) status
|
||||
; JP NVSW_UPDATE
|
||||
;
|
||||
; UPDATE HBIOS SHADOW TO NVRAM, AFTER SETTING HBIOS VALUE
|
||||
; RETURN NONZERO IF WRITTEN - ZERO IF NOT WRITTEN
|
||||
;
|
||||
NVSW_UPDATE:
|
||||
CALL NVSW_CHECKSUM ; CALC checksum into A
|
||||
LD (CB_SWITCHCK),A ; store checksum in hcb
|
||||
CALL NVSW_WRITE ; write the bytes to nvr
|
||||
RET Z ; Successful write, return
|
||||
; write failed for some reason ???
|
||||
LD A,1
|
||||
LD (CB_SWITCHES),A ; ensure hcb signature=1
|
||||
OR $FF ; failure
|
||||
RET ; return NZ flag
|
||||
;
|
||||
; PERFORM CHECKSUM CALC OF DATA IN HCB
|
||||
; RETURN A REGISTER -> CONTAINING THE CHECKSUM
|
||||
;
|
||||
NVSW_CHECKSUM:
|
||||
XOR A
|
||||
LD B,NVSW_SIZE ; NUMBER OF BYTES TO CHECK
|
||||
LD HL,CB_SWITCHES ; First Byte in HBIOS (HCB)
|
||||
NVSW_CHECKSM1:
|
||||
XOR (HL) ; XOR The Byte
|
||||
INC HL ; HL address
|
||||
DJNZ NVSW_CHECKSM1 ; LOOP
|
||||
XOR RMJ << 4 | RMN ; FIRST BYTE OF VERSION INFO
|
||||
XOR RUP << 4 | RTP ; SECOND BYTE OF VERSION INFO
|
||||
RET
|
||||
;
|
||||
; COPY DEFAULTS INTO HCB
|
||||
;
|
||||
NVSW_DEFAULTS:
|
||||
LD HL,NVSW_DEFAULT ; Copy default bytes from
|
||||
LD DE,CB_SWITCHES ; to hbios HCB location
|
||||
LD BC,NVSW_SIZE ; number of bytes top copy
|
||||
LDIR ; copy bytes
|
||||
RET
|
||||
;
|
||||
; LOAD BYTES FROM NVR - INTO HBIOS DCB
|
||||
; RETURN ZERO IF READ SUCCESS, NON-ZERO IF CANT READ
|
||||
;
|
||||
NVSW_READ:
|
||||
LD B,NVSW_SIZE + 1 ; NUMBER OF BYTES, + 1 for CHECKSUM
|
||||
LD C,0 ; FIRST Byte address in RTC
|
||||
LD HL,CB_SWITCHES ; First Byte in HBIOS (HCB)
|
||||
NVSW_READ1:
|
||||
PUSH HL ; SAVE ADDRESS
|
||||
PUSH BC ; Save Loop counter
|
||||
LD B,BF_RTCGETBYT ; GET RTC BYTE (at a time), requires loop
|
||||
CALL RTC_DISPATCH ; CALL RTC
|
||||
POP BC ; Restore Loop
|
||||
POP HL ; restore Block pointer
|
||||
RET NZ ; ERROR JUST RETURN
|
||||
LD (HL),E ; store IT
|
||||
INC C ; RTC Byte address
|
||||
INC HL ; HL address
|
||||
DJNZ NVSW_READ1 ; LOOP to the next byte
|
||||
NVSW_READ2:
|
||||
LD A,(CB_SWITCHES) ; FIRST BYTE
|
||||
CP 'W' ; MUST BE 'W'
|
||||
RET ; ZERO IF OK, NON-ZERO IF ISSUE
|
||||
;
|
||||
; SAVE BYTES FROM HBIOS DCB - INTO NVR
|
||||
; RETURN ZERO IF SUCCESS, NON-ZERO IF CANT WRITE
|
||||
;
|
||||
NVSW_WRITE:
|
||||
LD B,NVSW_SIZE + 1 ; NUMBER OF BYTES, + 1 for CHECKSUM
|
||||
LD C,0 ; FIRST Byte address in RTC
|
||||
LD HL,CB_SWITCHES ; First Byte in HBIOS (HCB)
|
||||
NVSW_WRITE1:
|
||||
PUSH HL ; SAVE ADDRESS
|
||||
PUSH BC ; Save Loop counter
|
||||
LD E,(HL) ; Value to Write
|
||||
LD B,BF_RTCSETBYT ; SET RTC BYTE
|
||||
CALL RTC_DISPATCH ; CALL RTC
|
||||
POP BC ; Restore Loop
|
||||
POP HL ; restore Block pointer
|
||||
RET NZ ; ERROR JUST RETURN
|
||||
INC C ; RTC Byte address
|
||||
INC HL ; HL address
|
||||
DJNZ NVSW_WRITE1 ; LOOP, One Byte at a Time
|
||||
NVSW_WRITE2:
|
||||
XOR A ; SUCCESS
|
||||
RET ; ZERO IF OK, NON-ZERO IF ISSUE
|
||||
;
|
||||
; DEFAULT VALUES FOR NVRAM, USED TO RESET NVR
|
||||
;
|
||||
NVSW_DEFAULT:
|
||||
.DB 'W' ; Signature Byte
|
||||
.DB 'H' ; Default Boot - Rom Application [H]elp
|
||||
.DB DBOOT_ROM ; Default Boot - ROM Application
|
||||
.DB 0 ; Auto Boot - NO auto boot
|
||||
; Configure above byte from (BOOT_TIMEOUT != -1)
|
||||
; SIZE OF NVR BYTES
|
||||
NVSW_SIZE .EQU $ - NVSW_DEFAULT
|
||||
;
|
||||
HB_INTFUNC_END .EQU $
|
||||
;
|
||||
;==================================================================================================
|
||||
|
||||
@@ -120,6 +120,8 @@ BF_SYSGET_VDACNT .EQU $40 ; GET VDA UNIT COUNT
|
||||
BF_SYSGET_VDAFN .EQU $41 ; GET VDA UNIT FN/DATA ADR
|
||||
BF_SYSGET_SNDCNT .EQU $50 ; GET VDA UNIT COUNT
|
||||
BF_SYSGET_SNDFN .EQU $51 ; GET SND UNIT FN/DATA ADR
|
||||
;
|
||||
BF_SYSGET_SWITCH .EQU $C0 ; GET NON VOLITILE SWITCH VALUE
|
||||
BF_SYSGET_TIMER .EQU $D0 ; GET CURRENT TIMER VALUE
|
||||
BF_SYSGET_SECS .EQU $D1 ; GET CURRENT SECONDS VALUE
|
||||
BF_SYSGET_BOOTINFO .EQU $E0 ; GET BOOT INFORMATION
|
||||
@@ -130,6 +132,7 @@ BF_SYSGET_CPUSPD .EQU $F3 ; GET CLOCK SPEED & WAIT STATES
|
||||
BF_SYSGET_PANEL .EQU $F4 ; GET FRONT PANEL SWITCHES VAL
|
||||
BF_SYSGET_APPBNKS .EQU $F5 ; GET APP BANK INFORMATION
|
||||
;
|
||||
BF_SYSSET_SWITCH .EQU $C0 ; SET NON VOLITILE SWITCH VALUE
|
||||
BF_SYSSET_TIMER .EQU $D0 ; SET TIMER VALUE
|
||||
BF_SYSSET_SECS .EQU $D1 ; SET SECONDS VALUE
|
||||
BF_SYSSET_BOOTINFO .EQU $E0 ; SET BOOT INFORMATION
|
||||
@@ -140,6 +143,38 @@ BF_SYSINT_INFO .EQU $00 ; GET INTERRUPT SYSTEM INFO
|
||||
BF_SYSINT_GET .EQU $10 ; GET INT VECTOR ADDRESS
|
||||
BF_SYSINT_SET .EQU $20 ; SET INT VECTOR ADDRESS
|
||||
;
|
||||
; 2 BYTE FUNCTION/SUBFUNCTION : BC_ => BIOS CALL
|
||||
; e.g. LOAD BC, BC_SYSxxxx (avoid load B and C seperately)
|
||||
;
|
||||
BC_SYSGET_CIOCNT .EQU BF_SYSGET * $100 + BF_SYSGET_CIOCNT
|
||||
BC_SYSGET_CIOFN .EQU BF_SYSGET * $100 + BF_SYSGET_CIOFN
|
||||
BC_SYSGET_DIOCNT .EQU BF_SYSGET * $100 + BF_SYSGET_DIOCNT
|
||||
BC_SYSGET_DIOFN .EQU BF_SYSGET * $100 + BF_SYSGET_DIOFN
|
||||
BC_SYSGET_RTCCNT .EQU BF_SYSGET * $100 + BF_SYSGET_RTCCNT
|
||||
BC_SYSGET_DSKYCNT .EQU BF_SYSGET * $100 + BF_SYSGET_DSKYCNT
|
||||
BC_SYSGET_VDACNT .EQU BF_SYSGET * $100 + BF_SYSGET_VDACNT
|
||||
BC_SYSGET_VDAFN .EQU BF_SYSGET * $100 + BF_SYSGET_VDAFN
|
||||
BC_SYSGET_SNDCNT .EQU BF_SYSGET * $100 + BF_SYSGET_SNDCNT
|
||||
BC_SYSGET_SNDFN .EQU BF_SYSGET * $100 + BF_SYSGET_SNDFN
|
||||
;
|
||||
BC_SYSGET_SWITCH .EQU BF_SYSGET * $100 + BF_SYSGET_SWITCH
|
||||
BC_SYSGET_TIMER .EQU BF_SYSGET * $100 + BF_SYSGET_TIMER
|
||||
BC_SYSGET_SECS .EQU BF_SYSGET * $100 + BF_SYSGET_SECS
|
||||
BC_SYSGET_BOOTINFO .EQU BF_SYSGET * $100 + BF_SYSGET_BOOTINFO
|
||||
BC_SYSGET_CPUINFO .EQU BF_SYSGET * $100 + BF_SYSGET_CPUINFO
|
||||
BC_SYSGET_MEMINFO .EQU BF_SYSGET * $100 + BF_SYSGET_MEMINFO
|
||||
BC_SYSGET_BNKINFO .EQU BF_SYSGET * $100 + BF_SYSGET_BNKINFO
|
||||
BC_SYSGET_CPUSPD .EQU BF_SYSGET * $100 + BF_SYSGET_CPUSPD
|
||||
BC_SYSGET_PANEL .EQU BF_SYSGET * $100 + BF_SYSGET_PANEL
|
||||
BC_SYSGET_APPBNKS .EQU BF_SYSGET * $100 + BF_SYSGET_APPBNKS
|
||||
;
|
||||
BC_SYSSET_SWITCH .EQU BF_SYSSET * $100 + BF_SYSSET_SWITCH
|
||||
BC_SYSSET_TIMER .EQU BF_SYSSET * $100 + BF_SYSSET_TIMER
|
||||
BC_SYSSET_SECS .EQU BF_SYSSET * $100 + BF_SYSSET_SECS
|
||||
BC_SYSSET_BOOTINFO .EQU BF_SYSSET * $100 + BF_SYSSET_BOOTINFO
|
||||
BC_SYSSET_CPUSPD .EQU BF_SYSSET * $100 + BF_SYSSET_CPUSPD
|
||||
BC_SYSSET_PANEL .EQU BF_SYSSET * $100 + BF_SYSSET_PANEL
|
||||
;
|
||||
CIO_CONSOLE .EQU $80 ; CIO UNIT NUM FOR CUR CON
|
||||
;
|
||||
; PRIMARY HARDWARE PLATFORMS
|
||||
@@ -302,6 +337,21 @@ SW_DISK .EQU %00010000 ; DISK/ROM
|
||||
SW_FLOP .EQU %00001000 ; FLOP/HD
|
||||
SW_OPT .EQU %00000111 ; SLICE/ROM APP
|
||||
;
|
||||
; NVRAM SWITCHES
|
||||
;
|
||||
; used for identifying Non Volitile Switches
|
||||
NVSW_DEFBOOT .EQU 1 ; Default Boot NVRAM Switch
|
||||
NVSW_AUTOBOOT .EQU 3 ; Auto Boot NVRAM Switch
|
||||
;
|
||||
; NVRAM SWITCH BIT MASKS
|
||||
;
|
||||
; AUTO BOOT MASKS
|
||||
ABOOT_AUTO .EQU %00100000 ; AUTO=1/MANUAL=0 BOOT
|
||||
ABOOT_TIMEOUT .EQU %00001111 ; MENU TIMEOUT IN SECONDS, 0=IMMEDIAGE
|
||||
; DEFAULT BOOT MASKS
|
||||
DBOOT_ROM .EQU %10000000 ; ROM=1/DISK=0 FLAG
|
||||
DBOOT_UNIT .EQU %01111111 ; DISK UNIT
|
||||
;
|
||||
; MEDIA ID VALUES
|
||||
;
|
||||
MID_NONE .EQU 0
|
||||
@@ -460,6 +510,9 @@ HCB_BOOTMODE .EQU $14 ; HBIOS BOOTMODE (BYTE)
|
||||
HCB_HEAP .EQU $20 ; DWORD ADDRESS OF START OF HEAP
|
||||
HCB_HEAPTOP .EQU $22 ; DWORD ADDRESS OF TOP OF HEAP
|
||||
;
|
||||
HCB_SW_DBOOT .EQU $31 ; DEFAULT BOOT CONFIG (WORD)
|
||||
HCB_SW_AUTOB .EQU $33 ; AUTO BOOT CONFIG (BYTE)
|
||||
;
|
||||
; MEMORY BANK IDS (ONE BYTE EACH)
|
||||
HCB_BIDCOM .EQU $D8 ; COMMON BANK (UPPER 32K)
|
||||
HCB_BIDUSR .EQU $D9 ; USER BANK (TPA)
|
||||
|
||||
9722
Source/HBIOS/hbios_new.asm
Normal file
9722
Source/HBIOS/hbios_new.asm
Normal file
File diff suppressed because it is too large
Load Diff
101
Source/HBIOS/layout.inc
Normal file
101
Source/HBIOS/layout.inc
Normal file
@@ -0,0 +1,101 @@
|
||||
;
|
||||
; The was extracted out of STD.ASM, so can be included
|
||||
; in BIOS apps that are NOT in HBIOS directory!
|
||||
;
|
||||
; =============
|
||||
; MEMORY LAYOUT
|
||||
; =============
|
||||
;
|
||||
SYS_SIZ .EQU $3000 ; COMBINED SIZE OF SYSTEM AREA (OS + HBIOS PROXY)
|
||||
HBBUF_SIZ .EQU 1024 ; INVARIANT HBIOS PHYSICAL DISK BUFFER, 1K
|
||||
HBX_SIZ .EQU $200 ; HBIOS PROXY SIZE (SUBJECT TO CHANGE)
|
||||
CPM_SIZ .EQU SYS_SIZ - HBX_SIZ ; NET SIZE OF ALL OS COMPONENTS (EXCLUDING HBIOS PROXY)
|
||||
CCP_SIZ .EQU $800 ; INVARIANT SIZE OF CCP
|
||||
BDOS_SIZ .EQU $E00 ; INVARIANT SIZE OF BDOS
|
||||
CBIOS_SIZ .EQU CPM_SIZ - CCP_SIZ - BDOS_SIZ ; CBIOS IS THE REMAINDER
|
||||
;
|
||||
MEMTOP .EQU $10000 ; INVARIANT TOP OF Z80 ADDRESSABLE MEMORY
|
||||
BNKTOP .EQU $8000 ; BANK MEMORY BARRIER
|
||||
;
|
||||
HBX_IMG .EQU $200 ; LOC OF HBX IMAGE IN HBIOS IMAGE BANK
|
||||
;
|
||||
HBBUF_END .EQU BNKTOP ; END OF PHYSICAL DISK BUFFER IN HBIOS
|
||||
HBBUF_LOC .EQU HBBUF_END - HBBUF_SIZ ; START OF PHYSICAL DISK BUFFER
|
||||
HBX_END .EQU MEMTOP ; END OF HBIOS PROXY
|
||||
HBX_LOC .EQU HBX_END - HBX_SIZ ; START OF HBIOS PROXY
|
||||
CPM_END .EQU HBX_LOC ; END OF CPM COMPONENTS (INCLUDING CBIOS)
|
||||
CPM_LOC .EQU CPM_END - CPM_SIZ ; START OF CPM COMPONENTS
|
||||
CBIOS_END .EQU HBX_LOC ; END OF CBIOS
|
||||
CBIOS_LOC .EQU CBIOS_END - CBIOS_SIZ ; START OF CBIOS
|
||||
;
|
||||
CPM_ENT .EQU CBIOS_LOC ; CPM ENTRY POINT (IN CBIOS)
|
||||
;
|
||||
CPM_IMGSIZ .EQU $3000
|
||||
;
|
||||
; =================
|
||||
; ROM BANK 1 LAYOUT
|
||||
; =================
|
||||
;
|
||||
LDR_LOC .EQU $0000
|
||||
LDR_SIZ .EQU $1000
|
||||
LDR_END .EQU LDR_LOC +LDR_SIZ
|
||||
LDR_IMGLOC .EQU $0000
|
||||
;
|
||||
MON_LOC .EQU $EE00 ; LOCATION OF MONITOR FOR RUNNING SYSTEM
|
||||
MON_SIZ .EQU $1000 ; SIZE OF MONITOR BINARY IMAGE
|
||||
MON_END .EQU MON_LOC + MON_SIZ ; END OF MONITOR
|
||||
MON_IMGLOC .EQU LDR_IMGLOC + LDR_SIZ
|
||||
;
|
||||
ZSYS_IMGLOC .EQU MON_IMGLOC + MON_SIZ
|
||||
;
|
||||
CPM_IMGLOC .EQU ZSYS_IMGLOC + CPM_IMGSIZ
|
||||
;
|
||||
; =================
|
||||
; ROM BANK 2 LAYOUT
|
||||
; =================
|
||||
;
|
||||
FTH_LOC .EQU $0200 ; CAMEL FORTH
|
||||
FTH_SIZ .EQU $1700
|
||||
FTH_END .EQU FTH_LOC + FTH_SIZ
|
||||
FTH_IMGLOC .EQU $0000
|
||||
|
||||
BAS_LOC .EQU $0200 ; NASCOM BASIC
|
||||
BAS_SIZ .EQU $2000
|
||||
BAS_END .EQU BAS_LOC + BAS_SIZ
|
||||
BAS_IMGLOC .EQU FTH_IMGLOC + FTH_SIZ
|
||||
;
|
||||
; NOTE FOLLOWING ARE COPY/PASTED INTO tastybasic.asm !!!!!!!!
|
||||
TBC_LOC .EQU $0A00 ; TASTYBASIC
|
||||
TBC_SIZ .EQU $0A00
|
||||
TBC_END .EQU TBC_LOC + TBC_SIZ
|
||||
TBC_IMGLOC .EQU BAS_IMGLOC + BAS_SIZ
|
||||
;
|
||||
GAM_LOC .EQU $0200 ; GAME 2048
|
||||
GAM_SIZ .EQU $0900
|
||||
GAM_END .EQU GAM_LOC + GAM_SIZ
|
||||
GAM_IMGLOC .EQU TBC_IMGLOC + TBC_SIZ
|
||||
;
|
||||
EGG_LOC .EQU $F000 ; EASTER EGG
|
||||
EGG_SIZ .EQU $0200
|
||||
EGG_END .EQU EGG_LOC + EGG_SIZ
|
||||
EGG_IMGLOC .EQU GAM_IMGLOC + GAM_SIZ
|
||||
;
|
||||
NET_LOC .EQU $0100 ; NETWORK BOOT
|
||||
NET_SIZ .EQU $1000
|
||||
NET_END .EQU NET_LOC + NET_SIZ
|
||||
NET_IMGLOC .EQU EGG_IMGLOC + EGG_SIZ
|
||||
;
|
||||
UPD_LOC .EQU $0200 ; ROM UPDATER
|
||||
UPD_SIZ .EQU $0D00
|
||||
UPD_END .EQU UPD_LOC + UPD_SIZ
|
||||
UPD_IMGLOC .EQU NET_IMGLOC + NET_SIZ
|
||||
;
|
||||
NVR_LOC .EQU $0100 ; NVRAM CONFIG
|
||||
NVR_SIZ .EQU $0800
|
||||
NVR_END .EQU NVR_LOC + NVR_SIZ
|
||||
NVR_IMGLOC .EQU UPD_IMGLOC + UPD_SIZ
|
||||
;
|
||||
USR_LOC .EQU $0200 ; USER
|
||||
USR_SIZ .EQU BNKTOP - NVR_IMGLOC - NVR_SIZ
|
||||
USR_END .EQU USR_LOC + USR_SIZ
|
||||
USR_IMGLOC .EQU NVR_IMGLOC + NVR_SIZ
|
||||
@@ -1835,10 +1835,10 @@ getnum32a:
|
||||
; X * 10 = (((x * 2 * 2) + x)) * 2
|
||||
push de
|
||||
push hl
|
||||
;
|
||||
;
|
||||
call getnum32e ; DE:HL *= 2
|
||||
jr c,getnum32d ; if overflow, ret w/ CF & stack pop
|
||||
;
|
||||
;
|
||||
call getnum32e ; DE:HL *= 2
|
||||
jr c,getnum32d ; if overflow, ret w/ CF & stack pop
|
||||
;
|
||||
@@ -1849,7 +1849,7 @@ getnum32a:
|
||||
adc hl,bc
|
||||
ex de,hl
|
||||
ret c ; if overflow, ret w/ CF
|
||||
;
|
||||
;
|
||||
call getnum32e ; DE:HL *= 2
|
||||
ret c ; if overflow, ret w/ CF
|
||||
;
|
||||
@@ -2456,6 +2456,7 @@ ra_ent(str_fth, 'F', KY_EX, BID_IMG1, FTH_IMGLOC, FTH_LOC, FTH_SIZ, FTH_LO
|
||||
ra_ent(str_play, 'P', $FF, BID_IMG1, GAM_IMGLOC, GAM_LOC, GAM_SIZ, GAM_LOC)
|
||||
ra_ent(str_net, 'N', $FF, BID_IMG1, NET_IMGLOC, NET_LOC, NET_SIZ, NET_LOC)
|
||||
ra_ent(str_upd, 'X', $FF, BID_IMG1, UPD_IMGLOC, UPD_LOC, UPD_SIZ, UPD_LOC)
|
||||
ra_ent(str_nvr, 'W', $FF, BID_IMG1, NVR_IMGLOC, NVR_LOC, NVR_SIZ, NVR_LOC)
|
||||
ra_ent(str_user, 'U', $FF, BID_IMG1, USR_IMGLOC, USR_LOC, USR_SIZ, USR_LOC)
|
||||
#endif
|
||||
#if (DSKYENABLE)
|
||||
@@ -2484,6 +2485,7 @@ str_bas .db "BASIC",0
|
||||
str_tbas .db "Tasty BASIC",0
|
||||
str_play .db "Play a Game",0
|
||||
str_upd .db "XModem Flash Updater",0
|
||||
str_nvr .db "RomWBW Configure", 0
|
||||
str_user .db "User App",0
|
||||
str_egg .db "",0
|
||||
str_net .db "Network Boot",0
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
; 22. NABU NABU w/ Les Bird's RomWBW Option Board
|
||||
; 23. FZ80 S100 Computers FPGA Z80
|
||||
; 24. RCZ80 RCBus eZ80
|
||||
;
|
||||
;
|
||||
;
|
||||
; INCLUDE BUILD VERSION
|
||||
;
|
||||
@@ -938,92 +938,13 @@ APP_BNKS .SET 0
|
||||
.ECHO "----------------------------------------\n"
|
||||
#ENDIF
|
||||
;
|
||||
; MEMORY LAYOUT
|
||||
; ---------------------------
|
||||
; Memory and ROM Bank Layouts
|
||||
; ---------------------------
|
||||
;
|
||||
#INCLUDE "layout.inc"
|
||||
;
|
||||
;
|
||||
SYS_SIZ .EQU $3000 ; COMBINED SIZE OF SYSTEM AREA (OS + HBIOS PROXY)
|
||||
HBBUF_SIZ .EQU 1024 ; INVARIANT HBIOS PHYSICAL DISK BUFFER, 1K
|
||||
HBX_SIZ .EQU $200 ; HBIOS PROXY SIZE (SUBJECT TO CHANGE)
|
||||
CPM_SIZ .EQU SYS_SIZ - HBX_SIZ ; NET SIZE OF ALL OS COMPONENTS (EXCLUDING HBIOS PROXY)
|
||||
CCP_SIZ .EQU $800 ; INVARIANT SIZE OF CCP
|
||||
BDOS_SIZ .EQU $E00 ; INVARIANT SIZE OF BDOS
|
||||
CBIOS_SIZ .EQU CPM_SIZ - CCP_SIZ - BDOS_SIZ ; CBIOS IS THE REMAINDER
|
||||
|
||||
MEMTOP .EQU $10000 ; INVARIANT TOP OF Z80 ADDRESSABLE MEMORY
|
||||
BNKTOP .EQU $8000 ; BANK MEMORY BARRIER
|
||||
|
||||
HBX_IMG .EQU $200 ; LOC OF HBX IMAGE IN HBIOS IMAGE BANK
|
||||
|
||||
HBBUF_END .EQU BNKTOP ; END OF PHYSICAL DISK BUFFER IN HBIOS
|
||||
HBBUF_LOC .EQU HBBUF_END - HBBUF_SIZ ; START OF PHYSICAL DISK BUFFER
|
||||
HBX_END .EQU MEMTOP ; END OF HBIOS PROXY
|
||||
HBX_LOC .EQU HBX_END - HBX_SIZ ; START OF HBIOS PROXY
|
||||
CPM_END .EQU HBX_LOC ; END OF CPM COMPONENTS (INCLUDING CBIOS)
|
||||
CPM_LOC .EQU CPM_END - CPM_SIZ ; START OF CPM COMPONENTS
|
||||
CBIOS_END .EQU HBX_LOC ; END OF CBIOS
|
||||
CBIOS_LOC .EQU CBIOS_END - CBIOS_SIZ ; START OF CBIOS
|
||||
|
||||
CPM_ENT .EQU CBIOS_LOC ; CPM ENTRY POINT (IN CBIOS)
|
||||
|
||||
CPM_IMGSIZ .EQU $3000
|
||||
|
||||
; ROM BANK 1
|
||||
|
||||
LDR_LOC .EQU $0000
|
||||
LDR_SIZ .EQU $1000
|
||||
LDR_END .EQU LDR_LOC +LDR_SIZ
|
||||
LDR_IMGLOC .EQU $0000
|
||||
|
||||
MON_LOC .EQU $EE00 ; LOCATION OF MONITOR FOR RUNNING SYSTEM
|
||||
MON_SIZ .EQU $1000 ; SIZE OF MONITOR BINARY IMAGE
|
||||
MON_END .EQU MON_LOC + MON_SIZ ; END OF MONITOR
|
||||
MON_IMGLOC .EQU LDR_IMGLOC + LDR_SIZ
|
||||
|
||||
ZSYS_IMGLOC .EQU MON_IMGLOC + MON_SIZ
|
||||
|
||||
CPM_IMGLOC .EQU ZSYS_IMGLOC + CPM_IMGSIZ
|
||||
|
||||
; ROM BANK 2
|
||||
|
||||
FTH_LOC .EQU $0200 ; CAMEL FORTH
|
||||
FTH_SIZ .EQU $1700
|
||||
FTH_END .EQU FTH_LOC + FTH_SIZ
|
||||
FTH_IMGLOC .EQU $0000
|
||||
|
||||
BAS_LOC .EQU $0200 ; NASCOM BASIC
|
||||
BAS_SIZ .EQU $2000
|
||||
BAS_END .EQU BAS_LOC + BAS_SIZ
|
||||
BAS_IMGLOC .EQU FTH_IMGLOC + FTH_SIZ
|
||||
|
||||
TBC_LOC .EQU $0A00 ; TASTYBASIC
|
||||
TBC_SIZ .EQU $0A00
|
||||
TBC_END .EQU TBC_LOC + TBC_SIZ
|
||||
TBC_IMGLOC .EQU BAS_IMGLOC + BAS_SIZ
|
||||
|
||||
GAM_LOC .EQU $0200 ; GAME 2048
|
||||
GAM_SIZ .EQU $0900
|
||||
GAM_END .EQU GAM_LOC + GAM_SIZ
|
||||
GAM_IMGLOC .EQU TBC_IMGLOC + TBC_SIZ
|
||||
|
||||
EGG_LOC .EQU $F000 ; EASTER EGG
|
||||
EGG_SIZ .EQU $0200
|
||||
EGG_END .EQU EGG_LOC + EGG_SIZ
|
||||
EGG_IMGLOC .EQU GAM_IMGLOC + GAM_SIZ
|
||||
|
||||
NET_LOC .EQU $0100 ; NETWORK BOOT
|
||||
NET_SIZ .EQU $1000
|
||||
NET_END .EQU NET_LOC + NET_SIZ
|
||||
NET_IMGLOC .EQU EGG_IMGLOC + EGG_SIZ
|
||||
|
||||
UPD_LOC .EQU $0200 ; ROM UPDATER
|
||||
UPD_SIZ .EQU $0D00
|
||||
UPD_END .EQU UPD_LOC + UPD_SIZ
|
||||
UPD_IMGLOC .EQU NET_IMGLOC + NET_SIZ
|
||||
|
||||
USR_LOC .EQU $0200 ; USER
|
||||
USR_SIZ .EQU BNKTOP - UPD_IMGLOC - UPD_SIZ
|
||||
USR_END .EQU USR_LOC + USR_SIZ
|
||||
USR_IMGLOC .EQU UPD_IMGLOC + UPD_SIZ
|
||||
|
||||
MON_DSKY .EQU MON_LOC + (0 * 3) ; MONITOR ENTRY (DSKY)
|
||||
MON_SERIAL .EQU MON_LOC + (1 * 3) ; MONITOR ENTRY (SERIAL PORT)
|
||||
;
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
../../Binary/Apps/mode.com 15:
|
||||
../../Binary/Apps/rtc.com 15:
|
||||
../../Binary/Apps/survey.com 15:
|
||||
../../Binary/Apps/sysconfig.com 15:
|
||||
../../Binary/Apps/syscopy.com 15:
|
||||
../../Binary/Apps/sysgen.com 15:
|
||||
../../Binary/Apps/talk.com 15:
|
||||
|
||||
@@ -20,6 +20,7 @@ d_cpm22/ReadMe.txt 0:
|
||||
../../Binary/Apps/mode.com 0:
|
||||
../../Binary/Apps/rtc.com 0:
|
||||
../../Binary/Apps/survey.com 0:
|
||||
../../Binary/Apps/sysconfig.com 0:
|
||||
../../Binary/Apps/syscopy.com 0:
|
||||
../../Binary/Apps/sysgen.com 0:
|
||||
../../Binary/Apps/talk.com 0:
|
||||
|
||||
@@ -40,6 +40,7 @@ d_cpm3/ReadMe.txt 0:
|
||||
../../Binary/Apps/mode.com 0:
|
||||
../../Binary/Apps/rtc.com 0:
|
||||
../../Binary/Apps/survey.com 0:
|
||||
../../Binary/Apps/sysconfig.com 0:
|
||||
../../Binary/Apps/syscopy.com 0:
|
||||
#../../Binary/Apps/sysgen.com 0:
|
||||
#../../Binary/Apps/talk.com 0:
|
||||
|
||||
@@ -34,6 +34,7 @@ d_zsdos/u0/*.DAT 15:
|
||||
../../Binary/Apps/mode.com 15:
|
||||
../../Binary/Apps/rtc.com 15:
|
||||
../../Binary/Apps/survey.com 15:
|
||||
../../Binary/Apps/sysconfig.com 15:
|
||||
../../Binary/Apps/syscopy.com 15:
|
||||
../../Binary/Apps/sysgen.com 15:
|
||||
../../Binary/Apps/talk.com 15:
|
||||
|
||||
@@ -24,6 +24,7 @@ d_cpm22/u0/*.* 0:
|
||||
../../Binary/Apps/mode.com 0:
|
||||
../../Binary/Apps/rtc.com 0:
|
||||
../../Binary/Apps/survey.com 0:
|
||||
../../Binary/Apps/sysconfig.com 0:
|
||||
../../Binary/Apps/syscopy.com 0:
|
||||
../../Binary/Apps/sysgen.com 0:
|
||||
../../Binary/Apps/talk.com 0:
|
||||
|
||||
@@ -46,6 +46,7 @@ d_cpm3/u0/HELP.HLP 0:
|
||||
../../Binary/Apps/mode.com 15:
|
||||
../../Binary/Apps/rtc.com 15:
|
||||
../../Binary/Apps/survey.com 15:
|
||||
../../Binary/Apps/sysconfig.com 15:
|
||||
../../Binary/Apps/syscopy.com 15:
|
||||
../../Binary/Apps/sysgen.com 15:
|
||||
../../Binary/Apps/talk.com 15:
|
||||
|
||||
@@ -45,6 +45,7 @@ d_cpm3/u0/HELP.HLP 0:
|
||||
../../Binary/Apps/mode.com 15:
|
||||
../../Binary/Apps/rtc.com 15:
|
||||
../../Binary/Apps/survey.com 15:
|
||||
../../Binary/Apps/sysconfig.com 15:
|
||||
../../Binary/Apps/syscopy.com 15:
|
||||
../../Binary/Apps/sysgen.com 15:
|
||||
../../Binary/Apps/talk.com 15:
|
||||
|
||||
@@ -24,6 +24,7 @@ d_cpm22/u0/*.* 0:
|
||||
../../Binary/Apps/mode.com 0:
|
||||
../../Binary/Apps/rtc.com 0:
|
||||
../../Binary/Apps/survey.com 0:
|
||||
../../Binary/Apps/sysconfig.com 0:
|
||||
../../Binary/Apps/syscopy.com 0:
|
||||
../../Binary/Apps/sysgen.com 0:
|
||||
../../Binary/Apps/talk.com 0:
|
||||
|
||||
Reference in New Issue
Block a user