forked from MirrorRepos/RomWBW
Compare commits
114 Commits
master
...
v3.5.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
997c3fbcde | ||
|
|
14c8eddcbd | ||
|
|
81d99a76fc | ||
|
|
4555bdec11 | ||
|
|
9103304399 | ||
|
|
1ab10410a8 | ||
|
|
8a16b851ad | ||
|
|
a27f2479af | ||
|
|
f50ae14f9e | ||
|
|
b02aecb45d | ||
|
|
4e716c6b74 | ||
|
|
63460a982b | ||
|
|
c6d5d41933 | ||
|
|
5544275e0d | ||
|
|
f976ede2d1 | ||
|
|
751cc62a81 | ||
|
|
77b98260e9 | ||
|
|
986acd481b | ||
|
|
f8f46c630a | ||
|
|
4df6f00ed9 | ||
|
|
6647b09cf7 | ||
|
|
f36a90afae | ||
|
|
3c3ae4c6ab | ||
|
|
4110c67db4 | ||
|
|
4ac6a7d706 | ||
|
|
1b7ef20ad1 | ||
|
|
913a9caa87 | ||
|
|
58444fb213 | ||
|
|
7917f0a5ad | ||
|
|
8d8868e5d5 | ||
|
|
a6b3b980f2 | ||
|
|
d5c331076c | ||
|
|
bb4a64c35d | ||
|
|
757f0b08ff | ||
|
|
5bb168eb6e | ||
|
|
cee3f8af78 | ||
|
|
70cc884014 | ||
|
|
e4475b5e99 | ||
|
|
2e216d6bf5 | ||
|
|
e428e7ff8e | ||
|
|
083715e097 | ||
|
|
b0bb87ba0a | ||
|
|
83cd133c66 | ||
|
|
327a21ee10 | ||
|
|
0d645cec30 | ||
|
|
82d28e143b | ||
|
|
c0b48a007c | ||
|
|
60b143fe01 | ||
|
|
be618e07a6 | ||
|
|
893da14d50 | ||
|
|
83ef709a71 | ||
|
|
5f54db2d60 | ||
|
|
33e6fdadd7 | ||
|
|
fe947248bd | ||
|
|
b7c9a3b821 | ||
|
|
fa8df65b50 | ||
|
|
26a87a16a8 | ||
|
|
66bc219b32 | ||
|
|
0ad7431528 | ||
|
|
e433eb4962 | ||
|
|
b5b9098429 | ||
|
|
49ff4e4bc0 | ||
|
|
59a7b6c42d | ||
|
|
f9ed5651e6 | ||
|
|
efb9ac21f0 | ||
|
|
a8f2aa71cc | ||
|
|
043600595f | ||
|
|
c106b75261 | ||
|
|
55336ac010 | ||
|
|
778231dc80 | ||
|
|
61d9555dc0 | ||
|
|
4b963c3ab4 | ||
|
|
2788fa4fdf | ||
|
|
1468cecfad | ||
|
|
8f75441317 | ||
|
|
007e8a372a | ||
|
|
7606abb8f3 | ||
|
|
e3192bfbe6 | ||
|
|
9d7adbec63 | ||
|
|
2d1811dcb4 | ||
|
|
cfa86a9f2a | ||
|
|
7a663e2a3c | ||
|
|
1a73a9614b | ||
|
|
660bb20bba | ||
|
|
f03dcf7193 | ||
|
|
64dbf4ff35 | ||
|
|
edd0e58031 | ||
|
|
887311827a | ||
|
|
ce98947d07 | ||
|
|
5d92341189 | ||
|
|
2a501566d7 | ||
|
|
56a1e86788 | ||
|
|
9c51d56c6a | ||
|
|
736e4e276c | ||
|
|
14486c0276 | ||
|
|
6edb7bb0c7 | ||
|
|
dbde08cc74 | ||
|
|
f61d96bf93 | ||
|
|
b032694e01 | ||
|
|
6c96afcb5a | ||
|
|
73a7338140 | ||
|
|
925b2870eb | ||
|
|
65413e50d1 | ||
|
|
a0ae357d9b | ||
|
|
e6b2cf7f55 | ||
|
|
b0bafb70e4 | ||
|
|
2fccb9dac7 | ||
|
|
7f07af1b62 | ||
|
|
02895a7d84 | ||
|
|
9713ca445c | ||
|
|
f6ef90fe14 | ||
|
|
7a87dd6805 | ||
|
|
81da5af7ae | ||
|
|
7b5f1f3884 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -20,7 +20,7 @@
|
||||
|
||||
Binary/**/*.mym
|
||||
Binary/**/*.pt3
|
||||
!Binary/CPNET/NetBoot/cpnos-wbw.sys
|
||||
!Binary/CPNET/NetBoot/*/cpnos.sys
|
||||
|
||||
Source/**/eeprom
|
||||
Source/Apps/Assign.com
|
||||
@@ -98,6 +98,7 @@ Tools/unix/zx/zx
|
||||
!Source/ZSDOS/*.[Cc][Oo][Mm]
|
||||
!Source/ZRC/*.bin
|
||||
!Source/ZRC512/*.bin
|
||||
!Source/EZ512/*.bin
|
||||
!Source/Z1RCC/*.bin
|
||||
!Source/ZZRCC/*.bin
|
||||
!Source/FZ80/*.bin
|
||||
|
||||
BIN
Binary/CPNET/NetBoot/DUO/cpnos.sys
Normal file
BIN
Binary/CPNET/NetBoot/DUO/cpnos.sys
Normal file
Binary file not shown.
BIN
Binary/CPNET/NetBoot/DUO/snios.spr
Normal file
BIN
Binary/CPNET/NetBoot/DUO/snios.spr
Normal file
Binary file not shown.
BIN
Binary/CPNET/NetBoot/MT/ccp.spr
Normal file
BIN
Binary/CPNET/NetBoot/MT/ccp.spr
Normal file
Binary file not shown.
BIN
Binary/CPNET/NetBoot/MT/ndos.spr
Normal file
BIN
Binary/CPNET/NetBoot/MT/ndos.spr
Normal file
Binary file not shown.
@@ -47,7 +47,12 @@ Version 3.5
|
||||
- MAP: Significant improvement in Disk Catalog document
|
||||
- MAP: Added Disk Image for the Z3PLUS (Z-System for CP/M-Plus) os.
|
||||
- H?H: Fix XModem 12.3 WRERR to put CAN char in proper register to send.
|
||||
- MAP: Initial NVRAM configuration infrastructure
|
||||
- MAP: Initial NVRAM configuration infrastructure, and boot device selection.
|
||||
- MAP: Added additional tools (Linker/Disasembler) to the Z80ASM Disk Image
|
||||
- PMS: Support interrupt-driven PS2 Keyboard Interface
|
||||
- D?M: Added NetBoot support for Duodyne
|
||||
- WBW: Add options to TUNE/HBIOS to force detection of MSX and RC AY/YM standard PSG ports
|
||||
- MAP: Added /B=OPTIONS for automated drive assignment to ASSIGN.COM
|
||||
|
||||
Version 3.4
|
||||
-----------
|
||||
|
||||
9860
Doc/Language/SLR180 (SLR Systems 1985).pdf
Executable file
9860
Doc/Language/SLR180 (SLR Systems 1985).pdf
Executable file
File diff suppressed because one or more lines are too long
BIN
Doc/Language/SLRNK (SLR Systems 1984).pdf
Normal file
BIN
Doc/Language/SLRNK (SLR Systems 1984).pdf
Normal file
Binary file not shown.
BIN
Doc/Language/Z80DIS User Manual (1985).pdf
Normal file
BIN
Doc/Language/Z80DIS User Manual (1985).pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,7 +3,7 @@
|
||||
**RomWBW ReadMe** \
|
||||
Version 3.5 \
|
||||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
|
||||
08 Nov 2024
|
||||
05 Jan 2025
|
||||
|
||||
# Overview
|
||||
|
||||
@@ -200,7 +200,9 @@ let me know if I missed you!
|
||||
|
||||
- Mark Pruden has also contributed a great deal of content to the Disk
|
||||
Catalog, User Guide as well as contributing the disk image for the
|
||||
Z3PLUS operating system, and the COPYSL utility.
|
||||
Z3PLUS operating system, the COPYSL utility, and also implemented a
|
||||
feature for RomWBW configuration by NVRAM, and added the /B bulk mode
|
||||
of disk assignment to the ASSIGN utility.
|
||||
|
||||
- Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
RomWBW ReadMe
|
||||
Wayne Warthen (wwarthen@gmail.com)
|
||||
08 Nov 2024
|
||||
05 Jan 2025
|
||||
|
||||
|
||||
|
||||
@@ -201,7 +201,9 @@ let me know if I missed you!
|
||||
|
||||
- Mark Pruden has also contributed a great deal of content to the Disk
|
||||
Catalog, User Guide as well as contributing the disk image for the
|
||||
Z3PLUS operating system, and the COPYSL utility.
|
||||
Z3PLUS operating system, the COPYSL utility, and also implemented a
|
||||
feature for RomWBW configuration by NVRAM, and added the /B bulk
|
||||
mode of disk assignment to the ASSIGN utility.
|
||||
|
||||
- Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
|
||||
@@ -362,7 +362,7 @@ SPDDISP:LD DE,DMA_SPD_STR
|
||||
CALL PRTIDXDEA
|
||||
;
|
||||
call PRTSTRD
|
||||
.db "\n\rTransfer Mode: $" ; DIPLAY TRANSFER
|
||||
.db "\n\rTransfer Mode: $" ; DISPLAY TRANSFER
|
||||
LD a,(dmaxfer) ; MODE
|
||||
LD DE,DMA_XFRMODE
|
||||
CALL PRTIDXDEA
|
||||
|
||||
@@ -23,6 +23,26 @@ CLI_HAVE_HBIOS_SWITCH1 ; NOT MATCHED --HBIOS
|
||||
LD (HBIOSMD), A
|
||||
RET
|
||||
|
||||
CLI_PORTS:
|
||||
LD HL, CLIARGS ; TEST FOR -MSX ON COMMAND LINE
|
||||
LD DE, OPT_MSX
|
||||
CALL STRINDEX
|
||||
JR NZ, CLI_PORTS1
|
||||
LD A,PORTS_MSX
|
||||
JR CLI_PORTS_Z
|
||||
CLI_PORTS1:
|
||||
LD HL, CLIARGS ; TEST FOR -RC ON COMMAND LINE
|
||||
LD DE, OPT_RC
|
||||
CALL STRINDEX
|
||||
JR NZ, CLI_PORTS2
|
||||
LD A,PORTS_RC
|
||||
JR CLI_PORTS_Z
|
||||
CLI_PORTS2:
|
||||
LD A,PORTS_AUTO ; USE AUTO PORT SELECTION
|
||||
CLI_PORTS_Z:
|
||||
LD (USEPORTS),A ; SAVE PORTS SELECTION
|
||||
RET
|
||||
|
||||
CLI_ABRT_UNSUPPFILTYP:
|
||||
PUSH AF
|
||||
ISHBIOS
|
||||
@@ -79,6 +99,8 @@ CLI_OCTAVE_ADJST5:
|
||||
LD (OCTAVEADJ), A
|
||||
RET
|
||||
|
||||
OPT_MSX .DB "-MSX", 0 ; USE MSX PORTS
|
||||
OPT_RC .DB "-RC", 0 ; USE RC PORTS
|
||||
HBIOSOPT: .DB "--HBIOS", 0
|
||||
DOWN1 .DB "-t1", 0 ; DOWN AN OCTAVE
|
||||
DOWN2 .DB "-t2", 0 ; DOWN TWO OCTAVE
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
; 2024-07-08 [WBW] Add support for Les Bird's Graphics, Sound, Joystick
|
||||
; 2024-07-11 [WBW] Updated, Les Bird's module now uses same settings as EB6
|
||||
; 2024-09-17 [WBW] Add support for HEATH H8 with Les Bird's MSX Card
|
||||
; 2024-12-12 [WBW] Add options to force standard MSX or RC ports
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
; ToDo:
|
||||
@@ -73,6 +74,10 @@ TYPPT2 .EQU 1 ; FILTYP value for PT2 sound file
|
||||
TYPPT3 .EQU 2 ; FILTYP value for PT3 sound file
|
||||
TYPMYM .EQU 3 ; FILTYP value for MYM sound file
|
||||
;
|
||||
PORTS_AUTO .EQU 0 ; AUTO select audio chip ports
|
||||
PORTS_MSX .EQU 1 ; force MSX audio chip ports
|
||||
PORTS_RC .EQU 2 ; force RCBUS audio chip ports
|
||||
;
|
||||
; HIGH SPEED CPU CONTROL
|
||||
;
|
||||
SBCV2004 .EQU 0 ; ENABLE SBC-V2-004 HALF CLOCK DIVIDER
|
||||
@@ -106,6 +111,7 @@ Id .EQU 1 ; 5) Insert official identificator
|
||||
PRTSTRDE(MSGBAN) ; Print to banner message
|
||||
|
||||
CALL CLI_ABRT_IF_OPT_FIRST
|
||||
CALL CLI_PORTS
|
||||
CALL CLI_HAVE_HBIOS_SWITCH
|
||||
CALL CLI_OCTAVE_ADJST
|
||||
JP CONTINUE
|
||||
@@ -125,6 +131,22 @@ CONTINUE:
|
||||
OR A
|
||||
JR NZ, TSTTIMER ; skip hardware check if using hbios
|
||||
|
||||
LD A, (USEPORTS) ; get ports option
|
||||
LD HL,MSXPORTS ; assume MSX
|
||||
CP PORTS_MSX ; use MSX?
|
||||
JR Z,FORCE
|
||||
LD HL,RCPORTS ; asssume RC
|
||||
CP PORTS_RC ; use RC?
|
||||
JR Z,FORCE
|
||||
JR AUTOSEL ; otherwise do auto select
|
||||
|
||||
FORCE:
|
||||
LD BC,CFGSIZ ; Size of one entry
|
||||
LD DE,CFG ; Active config structure
|
||||
LDIR ; Update active config structure
|
||||
JR MAT ; Continue
|
||||
|
||||
AUTOSEL:
|
||||
LD HL,CFGTBL ; Point to start of config table
|
||||
CFGSEL:
|
||||
LD A,$FF ; End of table marker
|
||||
@@ -646,6 +668,17 @@ CFGSIZ .EQU $ - CFGTBL
|
||||
;
|
||||
.DB $FF ; END OF TABLE MARKER
|
||||
;
|
||||
; The following are table entries (like above), but not part of auto
|
||||
; detection searching. They are selected byh command line options.
|
||||
;
|
||||
MSXPORTS:
|
||||
.DB $FF, $A0, $A1, $FF, $FF, $FF, $FF ; GENERIC MSX
|
||||
.DW HWSTR_MSX
|
||||
;
|
||||
RCPORTS:
|
||||
.DB $FF, $D8, $D0, $FF, $FF, $FF, $FF ; GENERIC RC
|
||||
.DW HWSTR_RC
|
||||
;
|
||||
CFG: ; ACTIVE CONFIG VALUES (FROM SELECTED CFGTBL ENTRY)
|
||||
PLT .DB 0 ; RomWBW HBIOS platform id
|
||||
PORTS:
|
||||
@@ -672,11 +705,13 @@ TMP .DB 0 ; work around use of undocumented Z80
|
||||
HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE
|
||||
OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN
|
||||
|
||||
MSGBAN .DB "Tune Player for RomWBW v3.11, 17-Sep-2024",0
|
||||
USEPORTS .DB 0 ; AUDIO CHIP PORT SELECTION MODE
|
||||
|
||||
MSGBAN .DB "Tune Player for RomWBW v3.12, 12-Dec-2024",0
|
||||
MSGUSE .DB "Copyright (C) 2024, Wayne Warthen, GNU GPL v3",13,10
|
||||
.DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10
|
||||
.DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10
|
||||
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [--hbios] [+tn|-tn]",0
|
||||
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [-msx|-rc] [--hbios] [+tn|-tn]",0
|
||||
MSGBIO .DB "Incompatible BIOS or version, "
|
||||
.DB "HBIOS v", '0' + RMJ, ".", '0' + RMN, " required",0
|
||||
MSGPLT .DB "Hardware error, system not supported!",0
|
||||
@@ -700,6 +735,8 @@ HWSTR_MBC .DB "NHYODYNE Sound Module",0
|
||||
HWSTR_DUO .DB "DUODYNE Sound Module",0
|
||||
HWSTR_NABU .DB "NABU Onboard Sound",0
|
||||
HWSTR_HEATH .DB "HEATH H8 MSX Module",0
|
||||
HWSTR_MSX .DB "MSX Standard Ports (A0H/A1H)",0
|
||||
HWSTR_RC .DB "RCBus Standard Ports (D8H/D0H)",0
|
||||
|
||||
MSGUNSUP .db "MYM files not supported with HBIOS yet!\r\n", 0
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
; ex: ASSIGN (display all active drive assignments)
|
||||
; ASSIGN /? (display version and usage)
|
||||
; ASSIGN /L (display all possible devices)
|
||||
; ASSIGN /B=OPTS (perform assignment based on options)
|
||||
; ASSIGN C: (display assignment for C:)
|
||||
; ASSIGN C:=D: (swaps C: and D:)
|
||||
; ASSIGN C:=FD0: (assign C: to floppy unit 0)
|
||||
; ASSIGN C:=IDE0:1 (assign C: to IDE unit0, slice 1)
|
||||
@@ -33,6 +35,9 @@
|
||||
; 2023-06-19 [WBW] Update for revised DIODEVICE API
|
||||
; 2023-09-19 [WBW] Added CHUSB & CHSD device support
|
||||
; 2023-10-13 [WBW] Fixed DPH creation to select correct DPB
|
||||
; 2024-12-17 [MAP] Added new /B=opt feaure to assign drives
|
||||
; 2024-12-21 [MAP] Added CBIOS heap estimation to /B to prevent
|
||||
; overflow when the drives are finally added
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
; ToDo:
|
||||
@@ -52,6 +57,7 @@ bnksel .equ $FFF3 ; HBIOS bank select vector
|
||||
stamp .equ $40 ; loc of RomWBW CBIOS zero page stamp
|
||||
;
|
||||
#include "../../ver.inc"
|
||||
#include "../../HBIOS/hbios.inc"
|
||||
;
|
||||
;===============================================================================
|
||||
; Code Section
|
||||
@@ -80,7 +86,7 @@ start:
|
||||
call init ; initialize
|
||||
jr nz,exit ; abort if init fails
|
||||
;
|
||||
; do the real work
|
||||
; do the real work
|
||||
call process ; parse and process command line
|
||||
jr nz,exit ; done if error or no action
|
||||
;
|
||||
@@ -160,12 +166,14 @@ init:
|
||||
ld e,(hl) ; dereference HL
|
||||
inc hl ; ... into DE to get
|
||||
ld d,(hl) ; ... DPB map pointer
|
||||
ld (dpbloc),de ; and save it
|
||||
ld (dpbloc),de ; and save it
|
||||
;
|
||||
; test for CP/M 3 and branch if so
|
||||
ld a,(cpmver) ; low byte of cpm version
|
||||
cp $30 ; CP/M 3.0?
|
||||
jp nc,initcpm3 ; handle CP/M 3.0 or greater
|
||||
;
|
||||
; CP/M 2.2 (CBIOS) initialization
|
||||
;
|
||||
; make a local working copy of the drive map
|
||||
ld hl,(maploc) ; copy from CBIOS drive map
|
||||
@@ -215,6 +223,13 @@ initx:
|
||||
add hl,de ; adjust
|
||||
ld (heaplim),hl ; save it
|
||||
;
|
||||
; establish remaining heap, used for estimation during /b
|
||||
ld de,(maploc) ; start of free heap space
|
||||
or a ; clear carry
|
||||
sbc hl,de ; upper heap - start of heap = size
|
||||
ld de,SIZ_DBUF ; 128 bytes for directory buffer
|
||||
sbc hl,de ; less directory buffer overhead
|
||||
ld (heaprem),hl ; save heap size that can be allocated
|
||||
#if 0
|
||||
ld a,' '
|
||||
call crlf
|
||||
@@ -229,7 +244,9 @@ initx:
|
||||
call prtchr
|
||||
ld bc,(heaplim)
|
||||
call prthexword
|
||||
|
||||
call prtchr
|
||||
ld bc,(heaprem)
|
||||
call prthexword
|
||||
#endif
|
||||
;
|
||||
; return success
|
||||
@@ -253,7 +270,7 @@ initcpm3:
|
||||
; switch to sysbnk
|
||||
ld a,($FFE0) ; get current bank
|
||||
push af ; save it
|
||||
ld bc,$F8F2 ; HBIOS Get Bank Info
|
||||
ld bc,BC_SYSGET_BNKINFO ; HBIOS Get Bank Info
|
||||
rst 08 ; call HBIOS, E=User Bank
|
||||
ld a,e ; HBIOS User Bank
|
||||
call bnksel ; HBIOS BNKSEL
|
||||
@@ -282,7 +299,7 @@ initc3:
|
||||
inc de ; bump to slice
|
||||
ld a,(hl) ; get slice from drvtbl
|
||||
ld (de),a ; save slice to drvmap
|
||||
initc4:
|
||||
initc4:
|
||||
inc de ; bump past slice
|
||||
inc de ; skip
|
||||
inc de ; ... dph
|
||||
@@ -399,6 +416,8 @@ option:
|
||||
ld a,(hl) ; get it
|
||||
cp '?' ; is it a '?' as expected?
|
||||
jp z,usage ; yes, display usage
|
||||
cp 'B' ; assign Boot Hard Drive Slices
|
||||
jp z,bootdr ; yes, assign boot drive slices
|
||||
cp 'L' ; is it a 'L', display device list?
|
||||
jp z,devlist ; yes, display device list
|
||||
jp errprm ; anything else is an error
|
||||
@@ -438,9 +457,8 @@ devlist:
|
||||
or a ; set flags
|
||||
jr nz,devlstu ; do UNA mode dev list
|
||||
;
|
||||
ld b,$F8 ; hbios func: sysget
|
||||
ld c,$10 ; sysget subfunc: diocnt
|
||||
rst 08 ; call hbios, E := device count
|
||||
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
|
||||
rst 08 ; call hbios, E := device count
|
||||
ld b,e ; use device count for loop count
|
||||
ld c,0 ; use C for device index
|
||||
devlist1:
|
||||
@@ -486,6 +504,496 @@ devlstu1:
|
||||
djnz devlstu1 ; loop as needed
|
||||
ret ; return
|
||||
;
|
||||
; -------------------------------------------------
|
||||
; /B=XXX - Bootup drive Assignment
|
||||
;
|
||||
; Variable used across the entire bootdr: function
|
||||
; - (mapwrk) working table of assignments
|
||||
; - (mapadr) pointer to next drive assignment in mapwrk
|
||||
; - (dstdrv) Drive letter of next assigment 0-15
|
||||
; - (tmpstr) List of Option letters being processed
|
||||
;
|
||||
bootdr:
|
||||
; command line processing mapping options into (tmpstr)
|
||||
inc hl ; next char after the /B expect a delimeter
|
||||
call nonblank ; skip ws
|
||||
cp '='
|
||||
inc hl
|
||||
call nonblank ; skip ws
|
||||
call getalpha ; options string into (tmpstr)
|
||||
;
|
||||
; defaulting loop for normal disk boot starting at A:
|
||||
ld hl,mapwrk ; DE := working drive map
|
||||
ld (mapadr),hl ; save pointer o next drive maping
|
||||
xor a ; next dest drive letter start at A:
|
||||
ld (dstdrv),a
|
||||
bootdr1:
|
||||
; process next letter in the cmd line options
|
||||
ld a,(tmpstr) ; next letter
|
||||
res 5,a ; FORCE UPPERCASE (IMPERFECTLY)
|
||||
; Case Statement
|
||||
ld hl,bootdr2 ; return address for below JP
|
||||
push hl ; when RET from below JP, return
|
||||
cp 'A'
|
||||
jp z,bootdra ; RAM
|
||||
cp 'B'
|
||||
jp z,bootdrb ; BOOT
|
||||
cp 'F'
|
||||
jp z,bootdrf ; FLOPPY
|
||||
cp 'H'
|
||||
jp z,bootdrh ; HARD DRIVES (improved)
|
||||
cp 'L'
|
||||
jp z,bootdrl ; HARD DRIVES (legacy)
|
||||
cp 'O'
|
||||
jp z,bootdro ; ROM
|
||||
cp 'P'
|
||||
jp z,bootdrp ; PRESERVE/KEEP (SKIP)
|
||||
cp 'S'
|
||||
jp z,bootdrs ; SLICES (OFF BOOT DRIVE)
|
||||
cp 'X'
|
||||
jp z,bootdrx ; UNASSIGN
|
||||
cp 'Z'
|
||||
jp z,bootdrz ; UNASSIGN ALL REMAINING
|
||||
; no valid option was found just ignore and continue
|
||||
; potentially signal an error
|
||||
pop hl ; remove the return address, since no match
|
||||
bootdr2:
|
||||
jr c,bootdr4 ; if overflowed, exhaused drives then error
|
||||
; bump to next letter in tmp str, by shifing string left in buffer
|
||||
ld hl,tmpstr+1 ; copy from +1 in buffer
|
||||
ld a,(hl) ; copy next char for Z check
|
||||
ld de,tmpstr ; copy down to +0 in buffer
|
||||
ld bc,16 ; buffer is 16 bytes
|
||||
ldir
|
||||
or a ; set flags based on next char
|
||||
jr nz,bootdr1 ; loop if character found
|
||||
bootdr3:
|
||||
xor a ; success
|
||||
ret ; finished
|
||||
bootdr4:
|
||||
or $ff ; failure
|
||||
ret ; finished
|
||||
;
|
||||
; -------------------------------------------------
|
||||
; /B=XXX AGORITHMS START HERE
|
||||
;
|
||||
; PRESERVE, SKIP 1, JUST LOOP
|
||||
bootdrp:
|
||||
; determine the drive being preserved, calc estimate
|
||||
ld hl,(mapadr) ; address of next map entry in table. Indirect
|
||||
ld a,(hl) ; the unit number of drive being skipped
|
||||
call bootdest ; for unit in A, calc the heap estimate -> DE
|
||||
; subtract bytes from estimate, not not checking for overflow
|
||||
ld hl,(heaprem) ; remaing heap estimate
|
||||
or a ; clear carry
|
||||
sbc hl,de ; subtract slice from heap estimate
|
||||
ld (heaprem),hl ; update estimate based on adding slice
|
||||
; and skip to next drive
|
||||
call bootinc ; Skip to next drive letter
|
||||
ret ; Finished
|
||||
;
|
||||
; EXCLUDE / UNASSIGNED / GAP
|
||||
bootdrx:
|
||||
ld a,$FF ; $FF (unit) signal a drive not assigned
|
||||
ld (unit),a ; set unit
|
||||
xor a ; slice 0
|
||||
ld (slice),a ; save as slice to assign.
|
||||
ld hl,SIZ_DMAP ; heap used is 4 bytes for drvmap entry only
|
||||
ld (slicmem),hl ; save estmate so heap space can be counted
|
||||
call bootadd ; assign the slice
|
||||
ret ; Finished, returning error
|
||||
;
|
||||
; EXCLUDE / UNASSIGNED - ALL REMAINING
|
||||
bootdrz:
|
||||
ld a,$FF ; $FF (unit) signal a drive not assigned
|
||||
ld (unit),a ; set unit
|
||||
xor a ; slice 0
|
||||
ld (slice),a ; save as slice to assign.
|
||||
ld hl,0 ; all remainging drives consume 0 bytes
|
||||
ld (slicmem),hl ; save estmate so heap space can be counted
|
||||
bootdrz1:
|
||||
call bootadd ; assign the slice
|
||||
jr nc,bootdrz1 ; NC still can continue to allocate
|
||||
xor a ; success
|
||||
ret ; Finished
|
||||
;
|
||||
; BOOT DRIVE
|
||||
bootdrb:
|
||||
ld bc,BC_SYSGET_BOOTINFO ; HBIOS SysGet; BootInfo
|
||||
rst 08 ; Get boot disk unit/slice in DE
|
||||
ld a,e ; boot slice returned in E
|
||||
ld (slice),a ; save as slice to assign.
|
||||
ld a,d ; boot unit id returned in D
|
||||
ld (unit),a ; save as unit number
|
||||
call bootdest ; calc estimat of unit A store in (sliceem)
|
||||
call bootadd ; add the boot drive slice
|
||||
ret ; Finished, returning error
|
||||
;
|
||||
; RAM DRIVE
|
||||
bootdra:
|
||||
ld a,$FF ; specific mask to include all BITS
|
||||
ld (atrmask),a ; mask for device attributes
|
||||
ld a,%00010101 ; specific mask for RAM DRIVE.
|
||||
ld (atrcomp),a ; compare to after mask
|
||||
ld hl,EST_MD ; estimate of heap used. for RAM ROM
|
||||
ld (slicmem),hl ; save estmate so heap space can be counted
|
||||
call bootadds ; do single slice assignment
|
||||
ret ; Finished, returning error
|
||||
;
|
||||
; ROM DRIVE
|
||||
; Note: if MDFFENABLE is enabled, this wont select the ROM since the
|
||||
; driver returns MD_AFSH (%00010111), and we cannot generalise this mask
|
||||
bootdro:
|
||||
ld a,%11111101 ; ROM mask, excluding Bit 1, which varies
|
||||
ld (atrmask),a ; mask for device attributes
|
||||
ld a,%00010100 ; for values "MD_AROM", "MD_AFSH"; Att="000101x0"
|
||||
ld (atrcomp),a ; compare to after mask
|
||||
ld hl,EST_MD ; estimate of heap used. for RAM ROM
|
||||
ld (slicmem),hl ; save estmate so heap space can be counted
|
||||
call bootadds ; do single slice assignment
|
||||
ret ; Finished, returning error
|
||||
;
|
||||
; FLOPPY DRIVE(S)
|
||||
bootdrf:
|
||||
ld a,%11000000 ; device parameters (Removable Floppy)
|
||||
ld (atrmask),a ; mask for device attributes
|
||||
ld (atrcomp),a ; compare to after mask
|
||||
ld hl,EST_FD ; estimate of heap used. for Floppy
|
||||
ld (slicmem),hl ; save estmate so heap space can be counted
|
||||
call bootadds ; do single slice assignment
|
||||
ret ; Finished, returning error
|
||||
;
|
||||
; SLICES (From Boot Drive Only)
|
||||
bootdrs:
|
||||
; find the boot drive, save unit /slice number
|
||||
ld a,(mapwrk) ; boot drive unit number
|
||||
ld (unit),a ; save as unit number to assign
|
||||
ld hl,EST_HD ; estimate of heap used, for HDD
|
||||
ld (slicmem),hl ; save estmate so heap space can be counted
|
||||
ld a,0 ; starting slice number
|
||||
bootdrs1:
|
||||
; A is next slice to assign when entering here
|
||||
ld (slice),a ; save as slice to assign.
|
||||
call bootadd ; add the slice, return Z - past the last drive
|
||||
jr c,bootdrs2 ; drives exhaused, finish up
|
||||
ld a,(slice) ; get the slice just consumed
|
||||
inc a ; next slice
|
||||
JR bootdrs1 ; loop round
|
||||
bootdrs2:
|
||||
xor a ; success
|
||||
ret
|
||||
;
|
||||
; HARD DRIVE(S) - Improved from CBIOS - More Drives
|
||||
bootdrh:
|
||||
ld a,%00100000 ; device parameters (High Capacity)
|
||||
ld (atrmask),a ; mask for device attributes
|
||||
ld (atrcomp),a ; compare to after mask
|
||||
ld hl,EST_HD ; estimate of heap used, for HDD
|
||||
ld (slicmem),hl ; save estmate so heap space can be counted
|
||||
; count the number of drives matching criteria
|
||||
call bootcnt ; return Drive count in A
|
||||
; compute Slices per volume from drv count in A
|
||||
call bootdrh1 ; return SPV in A
|
||||
ld (slicec),a ; slice per volume count
|
||||
; do the drive assignment
|
||||
call bootaddn ; do the drive assignment
|
||||
ret ; Finished returning error
|
||||
;
|
||||
; Input A contains device count return SPV (slices per volume) in A
|
||||
bootdrh1:
|
||||
ld e,a ; divide by by e, the number of devices
|
||||
ld a,(dstdrv) ; next destination drive to map, 0-15
|
||||
ld d,a ; put it in d
|
||||
ld a,16 ; total number of drives
|
||||
sub d ; less assigned = remaining
|
||||
; above assumes we have space remaining on heap for all drives
|
||||
; ideally should take A=Min( A, (heaprem)/EST_HD ) before division
|
||||
ld d,a ; divides d - remaing drives
|
||||
; The following routine divides d by e and places the quotient in d and the remainder in a
|
||||
; https://wikiti.brandonw.net/index.php?title=Z80_Routines:Math:Division
|
||||
xor a
|
||||
ld b, 8
|
||||
bootdrh2:
|
||||
sla d
|
||||
rla
|
||||
cp e
|
||||
jr c, $+4
|
||||
sub e
|
||||
inc d
|
||||
djnz bootdrh2
|
||||
ld a,d ; end of the division the quotiant in A
|
||||
ret ; return it
|
||||
;
|
||||
; HARD DRIVE(S) - Legacy (from CBIOS)
|
||||
bootdrl:
|
||||
ld a,%00100000 ; device parameters (High Capacity)
|
||||
ld (atrmask),a ; mask for device attributes
|
||||
ld (atrcomp),a ; compare to after mask
|
||||
ld hl,EST_HD ; estimate of heap used, for HDD
|
||||
ld (slicmem),hl ; save estmate so heap space can be counted
|
||||
;
|
||||
; count the number of drives matching criteria
|
||||
call bootcnt ; return Drive count in A
|
||||
;
|
||||
; compute Slices per volume from drv count in A
|
||||
call bootdrl1 ; return SPV in A
|
||||
ld (slicec),a ; slice per volume count
|
||||
;
|
||||
; do the drive assignment
|
||||
call bootaddn ; do the drive assignment
|
||||
xor a ; Success
|
||||
ret ; Finished
|
||||
;
|
||||
; Input A contains device count return SPV (slices per volume) in A
|
||||
bootdrl1:
|
||||
ld e,8 ; ASSUME 8 SLICES PER VOLUME
|
||||
dec a ; DEC ACCUM TO CHECK FOR COUNT = 1
|
||||
jr z,bootdrl2 ; YES, SKIP AHEAD TO IMPLEMENT 8 HDSPV
|
||||
ld e,4 ; NOW ASSUME 4 SLICES PER VOLUME
|
||||
dec a ; DEC ACCUM TO CHECK FOR COUNT = 2
|
||||
jr z,bootdrl2 ; YES, SKIP AHEAD TO IMPLEMENT 4 HDSPV
|
||||
ld e,2 ; IN ALL OTHER CASES, WE USE 2 HDSPV
|
||||
bootdrl2:
|
||||
ld a,e
|
||||
ret
|
||||
;
|
||||
; -------------------------------------------------
|
||||
; Memory allocation estimates for each device type
|
||||
;
|
||||
SIZ_DBUF .EQU 128 ; actual size of directory buffer
|
||||
SIZ_DPH .EQU 20 ; actual size of a DPH structure
|
||||
SIZ_DMAP .EQU 4 ; actual bytes per drvmap entry
|
||||
;
|
||||
EST_FIXED .EQU SIZ_DPH+SIZ_DMAP ; overhead for all assignments
|
||||
;
|
||||
EST_MD .EQU EST_FIXED + 24 ; estimated size for ram/rom
|
||||
EST_FD .EQU EST_FIXED + 192 ; estimated size for floppy
|
||||
EST_HD .EQU EST_FIXED + 256 ; estimated size hdd (CKS/ALS)
|
||||
;
|
||||
; -------------------------------------------------
|
||||
; /B=XXX - General Purpose Functions
|
||||
;
|
||||
; Determine Slice Estimate for Unit in A reg
|
||||
; storing estimate in (slicmem), and DE
|
||||
;
|
||||
bootdest:
|
||||
; is it assigned
|
||||
ld c,a ; store unit (passed in A) for hbios call
|
||||
ld de,SIZ_DMAP ; assume unassigned, 4 bytes for drvmap
|
||||
cp $FF ; unassigned?
|
||||
jr z,bootdest2 ; finished at this point.
|
||||
; check for UNA mode, before calling HBIOS
|
||||
ld a,(unamod) ; get UNA mode flag, and set Flags
|
||||
or a ; if UNA Mode then dont do hbios lookup
|
||||
jr nz,bootdest1 ; use worst case scenario (future una call)
|
||||
; determine device type by hbios lookup
|
||||
ld b,BF_DIODEVICE ; get device info
|
||||
rst 08 ; Note C was set above
|
||||
; now work out the bytes to allocate
|
||||
ld a,d ; device type to A
|
||||
ld de,EST_MD ; assume md size
|
||||
cp DIODEV_MD ; ram/rom MD device
|
||||
jr z,bootdest2 ; finished at this point
|
||||
ld de,EST_FD ; assume floppy
|
||||
cp DIODEV_FD ; floppy device
|
||||
jr z,bootdest2 ; finished at this point
|
||||
bootdest1:
|
||||
ld de,EST_HD ; otherwise assume HD
|
||||
bootdest2:
|
||||
ld (slicmem),de
|
||||
ret
|
||||
;
|
||||
; Count Number of Devices
|
||||
; (atrmask) mask the device attribtes
|
||||
; (atrcomp) compare to set zero flag
|
||||
; return A number of drives mathing the attributes
|
||||
bootcnt:
|
||||
; loop thru hbios units looking for device type/unit match
|
||||
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
|
||||
rst 08 ; call hbios, E := device count
|
||||
ld b,e ; use device count for loop count
|
||||
ld c,0 ; use C for device index C = 0
|
||||
ld l,0 ; will contain the drive count
|
||||
bootcnt1:
|
||||
call bootmat ; perform the match on device C, Z if match
|
||||
jr nz,bootcnt2 ; not matching, skip and continue loop
|
||||
inc l ; same so incrment the counter
|
||||
bootcnt2:
|
||||
inc c ; next drive letter
|
||||
djnz bootcnt1 ; loop
|
||||
ld a,l ; return the count in A register
|
||||
or a ; ensure registers are set correctly
|
||||
ret ; Finished
|
||||
;
|
||||
; Loop though all devices add a single slice based on device attributes
|
||||
; See method below for documentation. Noting (slice) is defaulted to 1
|
||||
bootadds
|
||||
ld a,1
|
||||
ld (slicec),a
|
||||
; fall through to bootaddn
|
||||
;
|
||||
; Loop though all devices add N slice(s) based on device attributes
|
||||
; (atrmask) mask the device attribtes
|
||||
; (atrcomp) compare to set zero flag
|
||||
; (slicec) number of slices
|
||||
; return C flag
|
||||
; C have expended all drives
|
||||
; NC still can continue to allocate
|
||||
; Z otherwise successfully completed
|
||||
bootaddn
|
||||
; loop thru hbios units looking for device type/unit match
|
||||
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
|
||||
rst 08 ; call hbios, E := device count
|
||||
ld b,e ; use device count for loop count
|
||||
ld c,0 ; use C for device index C = 0
|
||||
bootaddn1:
|
||||
call bootmat ; perform the match on device C, Z if match
|
||||
jr nz,bootaddn4 ; not same skip volume, continue loop
|
||||
; save the disk unit
|
||||
ld a,c ; get the unit id back into A
|
||||
ld (unit),a ; unit to add, if we add it.
|
||||
; setup inner loop
|
||||
push bc ; save loop control for outer loop
|
||||
ld a,(slicec) ; count of slices to assign
|
||||
ld b,a ; use device count for loop count
|
||||
ld c,0 ; use C for slice index slice = 0
|
||||
bootaddn2:
|
||||
; entering here C contains updated slice
|
||||
ld a,c ; slice number
|
||||
ld (slice),a ; slice number
|
||||
; assign the slice and loop
|
||||
push bc ; save loop control
|
||||
call bootadd ; add the slice
|
||||
pop bc ; restore loop
|
||||
jr c,bootaddn3 ; if bootadd, ran out of drives to allocate
|
||||
inc c ; next slice
|
||||
djnz bootaddn2 ; inner loop
|
||||
bootaddn3:
|
||||
; finish inner loop for next disk unit
|
||||
pop bc ; restore loop control for outer
|
||||
ret c ; return if no drives left to allocate
|
||||
bootaddn4:
|
||||
; continue looping to next unit
|
||||
inc c ; next device
|
||||
djnz bootaddn1 ; outer loop
|
||||
xor a ; success
|
||||
ret ; Finished
|
||||
;
|
||||
; Add a Single Drive.
|
||||
; based on (unit) and (slice) variables
|
||||
; This routine will skip if drive already assigned
|
||||
; return C flag
|
||||
; C have expended all drives
|
||||
; NC still can continue to allocate
|
||||
bootadd:
|
||||
; check we are not already past last (P:) drive
|
||||
ld hl,dstdrv ; destination drive
|
||||
ld a,15
|
||||
cp (hl) ; C set if >= 16
|
||||
ret c ; Return with carry, cannot assign.
|
||||
; do we need to perform duplicate check
|
||||
ld a,(dstdrv) ; next destination drive to map, could be A: (=0)
|
||||
or a ; is it A:
|
||||
jr z,bootadd1 ; nothing to check we are assigning the A: drive
|
||||
; perform duplicate check before assignment
|
||||
ld b,a ; B number of entries to check
|
||||
ld hl,mapwrk ; HL point to working drive map table to compare to
|
||||
ld de,unit ; DE comparison, unit/slice are ordered (psudo mapwrk entry)
|
||||
call valid3 ; perform a duplicate check (REUSED)
|
||||
jr z,bootinc1 ; Z - found a duplicate, exit out
|
||||
;
|
||||
bootadd1:
|
||||
; check we have enough heap to allocate
|
||||
ld hl,(heaprem) ; remaing heap estimate
|
||||
ld de,(slicmem) ; memory alloc per drive
|
||||
or a ; clear carry
|
||||
sbc hl,de ; subtract slice from heap estimate
|
||||
ret c ; overflow (not enough heap) so abort
|
||||
ld (heaprem),hl ; update estimate based on sub of mem
|
||||
; actually assign it.
|
||||
ld hl,(mapadr) ; address of next map entry in table
|
||||
ld a,(unit) ; the unit number
|
||||
ld (hl), a ; write unit number to Table
|
||||
inc hl
|
||||
ld a,(slice) ; the slice
|
||||
ld (hl), a ; write slice to the table
|
||||
; show the new assignment
|
||||
push bc
|
||||
push de
|
||||
ld a,(dstdrv) ; destination drive
|
||||
call showone ; show it's new value
|
||||
pop de
|
||||
pop bc
|
||||
; signal the change has occured
|
||||
ld hl,modcnt ; point to mod count
|
||||
inc (hl) ; increment it
|
||||
; fall through to bootinc and inc target drive
|
||||
;
|
||||
; Increment to the next drive (A-P)
|
||||
; return C flag
|
||||
; C have expended all drives
|
||||
; NC still can continue to allocate
|
||||
bootinc:
|
||||
; check we are not already past last (P:) drive
|
||||
ld hl,dstdrv ; destination drive
|
||||
ld a,15
|
||||
cp (hl) ; C set if >= 16
|
||||
ret c ; Return with carry, cannot increment.
|
||||
; actually increment it
|
||||
inc (hl) ; increment destination drive (A-P)
|
||||
ld hl,(mapadr) ; address in working assignment table (mapwrk)
|
||||
ld bc,4
|
||||
add hl,bc
|
||||
ld (mapadr),hl ; move address to next location in map
|
||||
bootinc1:
|
||||
ld hl,dstdrv ; destination drive
|
||||
ld a,15
|
||||
cp (hl) ; C set if >= 16
|
||||
ret
|
||||
;
|
||||
; Does Disk Unit Meet matching Criteria
|
||||
; pass in C which is the unit, ret Z if matching:
|
||||
; * (atrmask) mask the device attribtes
|
||||
; * (atrcomp) compare to set zero flag
|
||||
; registers BC DE HL are preserved
|
||||
bootmat:
|
||||
push hl
|
||||
push de
|
||||
push bc ; preserve
|
||||
; get the disk unit attributes
|
||||
ld b,BF_DIODEVICE ; hbios func: diodevice C:= DISK UNIT
|
||||
rst 08 ; call hbios, C := device attributes
|
||||
; do the attribute comparison
|
||||
ld a,(atrmask) ; attribute bit mask
|
||||
and c ; mask with device attributes from hbios
|
||||
ld c,a ; move value back to c
|
||||
ld a,(atrcomp) ; value parameter to compare with
|
||||
cp c ; do the comparison : Z if matching
|
||||
jr nz,bootmat3 ; not matching, just return, NZ go no further
|
||||
; Attributes match - did caller request high capacity device
|
||||
bit 5,a ; high capacity flag passed in (atrcomp)
|
||||
jr NZ,bootmat1 ; IF hig capacity, test if hd is onlne
|
||||
; Attributes match - but NOT high capacity
|
||||
xor a ; Result = Z
|
||||
jr bootmat3 ; and return
|
||||
bootmat1:
|
||||
; Attributes match - and IS high capacity
|
||||
pop bc ; get C para back (unit)
|
||||
push bc
|
||||
; Sense Media
|
||||
ld b,BF_DIOMEDIA ; HBIOS FUNC: SENSE MEDIA
|
||||
ld e,1 ; PERFORM MEDIA DISCOVERY
|
||||
rst 08 ; DO IT
|
||||
; returns NZ if error (no media), and Z if no error (media detected)
|
||||
; can just return this flag
|
||||
bootmat3:
|
||||
pop bc
|
||||
pop de
|
||||
pop hl ; restore and return
|
||||
ret
|
||||
;
|
||||
; ----------------------------------------------------------------
|
||||
;
|
||||
; Install the new drive map into CBIOS
|
||||
;
|
||||
install:
|
||||
@@ -546,7 +1054,7 @@ install3:
|
||||
ld (heaptop),de ; DE has next byte available
|
||||
;
|
||||
; allocate directory buffer
|
||||
ld hl,128 ; size of directory buffer
|
||||
ld hl,SIZ_DBUF ; size of directory buffer
|
||||
call alloc ; allocate the space
|
||||
jp c,instovf ; handle overflow error
|
||||
ld (dirbuf),hl ; ... and save in dirbuf
|
||||
@@ -574,8 +1082,7 @@ dph_init2:
|
||||
ld a,(hl) ; unit to A
|
||||
push bc ; save loop control
|
||||
push hl ; save drive map pointer
|
||||
;ld hl,16 ; size of a DPH structure
|
||||
ld hl,20 ; size of a DPH structure
|
||||
ld hl,SIZ_DPH ; size of a DPH structure
|
||||
call alloc ; allocate space for dph
|
||||
jp c,instovf ; handle overflow error
|
||||
push hl ; save DPH location
|
||||
@@ -607,9 +1114,15 @@ dph_init3:
|
||||
call prtdecw ; print it
|
||||
ld de,msgmem ; add description
|
||||
call prtstr ; and print it
|
||||
;
|
||||
#if 0
|
||||
call crlf
|
||||
ld bc,(heaprem)
|
||||
call prthexword
|
||||
#endif
|
||||
;
|
||||
call drvrst ; perform BDOS drive reset
|
||||
;
|
||||
;
|
||||
xor a ; signal success
|
||||
ret ; done
|
||||
;
|
||||
@@ -653,25 +1166,25 @@ makdphuna1: ; handle ram/rom
|
||||
makdphwbw: ; determine appropriate dpb (WBW mode, unit number in A)
|
||||
;
|
||||
ld c,a ; unit number to C
|
||||
ld b,$17 ; HBIOS: Report Device Info
|
||||
ld b,BF_DIODEVICE ; HBIOS: Report Device Info
|
||||
rst 08 ; call HBIOS, return w/ device type in D, physical unit in E
|
||||
ld a,d ; device type to A
|
||||
cp $00 ; ram/rom?
|
||||
cp DIODEV_MD ; ram/rom?
|
||||
jr nz,makdph00 ; if not, skip ahead to other types
|
||||
ld a,e ; physical unit number to A
|
||||
ld e,1 ; assume rom
|
||||
ld e,MID_MDROM ; assume rom
|
||||
cp $01 ; rom?
|
||||
jr z,makdph0 ; yes, jump ahead
|
||||
ld e,2 ; otherwise ram
|
||||
ld e,MID_MDRAM ; otherwise ram
|
||||
jr makdph0 ; jump ahead
|
||||
makdph00:
|
||||
ld e,6 ; assume floppy
|
||||
cp $01 ; floppy?
|
||||
makdph00:
|
||||
ld e,MID_FD144 ; assume floppy
|
||||
cp DIODEV_FD ; floppy?
|
||||
jr z,makdph0 ; yes, jump ahead
|
||||
ld e,3 ; assume ram floppy
|
||||
cp $02 ; ram floppy?
|
||||
ld e,MID_RF ; assume ram floppy
|
||||
cp DIODEV_RF ; ram floppy?
|
||||
jr z,makdph0 ; yes, jump ahead
|
||||
ld e,4 ; everything else is assumed to be hard disk
|
||||
ld e,MID_HD ; everything else is assumed to be hard disk
|
||||
jr makdph0 ; yes, jump ahead
|
||||
;
|
||||
makdph0:
|
||||
@@ -689,7 +1202,7 @@ makdph1:
|
||||
pop hl ; hl := start of dph
|
||||
ld a,8 ; size of dph reserved area
|
||||
call addhl ; leave it alone (zero filled)
|
||||
;
|
||||
;
|
||||
ld bc,(dirbuf) ; address of dirbuf
|
||||
ld (hl),c ; plug dirbuf
|
||||
inc hl ; ... into dph
|
||||
@@ -716,7 +1229,7 @@ makdph2:
|
||||
;
|
||||
; HL := alloc size, DE bumped
|
||||
ex de,hl
|
||||
ld e,(hl) ; get size to allocate
|
||||
ld e,(hl) ; get size to allocate
|
||||
inc hl ; ...
|
||||
ld d,(hl) ; ... into HL
|
||||
inc hl ; and bump DE
|
||||
@@ -730,7 +1243,7 @@ makdph2:
|
||||
; allocate memory
|
||||
call alloc ; do the allocation
|
||||
jp c,instovf ; bail out on overflow
|
||||
|
||||
|
||||
makdph3:
|
||||
; swap hl and bc
|
||||
push bc ; bc -> (sp)
|
||||
@@ -741,7 +1254,7 @@ makdph3:
|
||||
ld (hl),c ; save cks/als buf
|
||||
inc hl ; ... address in
|
||||
ld (hl),b ; ... dph and bump
|
||||
inc hl ; ... to next dph entry
|
||||
inc hl ; ... to next dph entry
|
||||
xor a ; signal success
|
||||
ret
|
||||
;
|
||||
@@ -751,7 +1264,7 @@ instcpm3:
|
||||
; swicth to sysbnk
|
||||
ld a,($FFE0) ; get current bank
|
||||
push af ; save it
|
||||
ld bc,$F8F2 ; HBIOS Get Bank Info
|
||||
ld bc,BC_SYSGET_BNKINFO ; HBIOS Get Bank Info
|
||||
rst 08 ; call HBIOS, E=User Bank
|
||||
ld a,e ; HBIOS User Bank
|
||||
call $FFF3 ; HBIOS BNKSEL
|
||||
@@ -763,8 +1276,7 @@ instcpm3:
|
||||
ld h,(hl) ; ...
|
||||
ld l,a ; ...
|
||||
ld (dphadr),hl ; save starting dphadr
|
||||
|
||||
|
||||
|
||||
ld hl,(drvtbl) ; get drive table in HL
|
||||
ld de,mapwrk ; DE := working drive map
|
||||
ld b,16
|
||||
@@ -783,7 +1295,7 @@ instc1:
|
||||
inc de ; ...
|
||||
jr instc3 ; resume loop without copy
|
||||
;
|
||||
instc2:
|
||||
instc2:
|
||||
push hl ; save drvtbl entry adr
|
||||
push de ; save mapwrk entry adr
|
||||
ld de,(dphadr) ; get cur dph adr
|
||||
@@ -865,15 +1377,15 @@ alloc:
|
||||
ex de,hl ; de=new heaptop, hl=heaplim
|
||||
sbc hl,de ; heaplim - heaptop
|
||||
jr c,allocx ; c set on overflow error
|
||||
; allocation succeeded, commit new heaptop
|
||||
; allocation succeeded, commit new heaptop
|
||||
ld (heaptop),de ; save new heaptop
|
||||
allocx:
|
||||
allocx:
|
||||
pop hl ; return value to hl
|
||||
pop de ; recover de
|
||||
ret
|
||||
;
|
||||
; Scan drive map table for integrity
|
||||
; Currently just checks for multiple drive
|
||||
; Currently just checks for multiple drive
|
||||
; letters referencing a single file system
|
||||
;
|
||||
valid:
|
||||
@@ -905,6 +1417,14 @@ valid2: ; setup for inner loop
|
||||
call addhl ; point to entry following
|
||||
pop de ; de points to comparison entry
|
||||
;
|
||||
; Scan for a match in (mapwrk)
|
||||
; The following comparison code is called elsewhere, not just from above
|
||||
; (please respect the contract)
|
||||
; hl : pointer to start of items to scan check in map
|
||||
; de is the invarient (fixed) entry in the table to compare against
|
||||
; b : is the number of items to check
|
||||
; return Z - Found a duplicate comparison=0
|
||||
; return NZ - No Matches found (a=$ff)
|
||||
valid3: ; inner loop
|
||||
; bypass unassigned drives (only need to test 1)
|
||||
ld a,(hl) ; get first drive unit in A
|
||||
@@ -981,7 +1501,7 @@ drvswap:
|
||||
ld a,(srcdrv) ; get the source drive
|
||||
call chkdrv ; valid drive?
|
||||
ret nz ; abort if not
|
||||
ld hl,(drives) ; load source/dest in DE
|
||||
ld hl,(drives) ; load source/dest in HL
|
||||
ld a,h ; put source drive num in a
|
||||
cp l ; compare to the dest drive num
|
||||
jp z,errswp ; Invalid swap request, src == dest
|
||||
@@ -1001,7 +1521,7 @@ drvswap:
|
||||
rlca
|
||||
call addhl
|
||||
ld (dstptr),hl
|
||||
;
|
||||
;
|
||||
; 1) dest -> temp
|
||||
ld hl,(dstptr)
|
||||
ld de,tmpent
|
||||
@@ -1064,20 +1584,19 @@ drvmap1: ; loop through device table looking for a match
|
||||
djnz drvmap1 ; and loop
|
||||
jp errdev
|
||||
;
|
||||
drvmap2:
|
||||
drvmap2:
|
||||
; convert index to device type id
|
||||
ld a,c ; index to accum
|
||||
ld (device),a ; save as device id
|
||||
;
|
||||
; loop thru hbios units looking for device type/unit match
|
||||
ld b,$F8 ; hbios func: sysget
|
||||
ld c,$10 ; sysget subfunc: diocnt
|
||||
rst 08 ; call hbios, E := device count
|
||||
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
|
||||
rst 08 ; call hbios, E := device count
|
||||
ld b,e ; use device count for loop count
|
||||
ld c,0 ; use C for device index
|
||||
drvmap3:
|
||||
push bc ; preserve loop control
|
||||
ld b,$17 ; hbios func: diodevice
|
||||
ld b,BF_DIODEVICE ; hbios func: diodevice
|
||||
rst 08 ; call hbios, D := device, E := unit
|
||||
pop bc ; restore loop control
|
||||
ld a,(device)
|
||||
@@ -1099,7 +1618,7 @@ drvmap5:
|
||||
call chkdev ; check validity
|
||||
pop bc ; restore unit
|
||||
ret nz ; bail out on error
|
||||
|
||||
|
||||
; resolve the CBIOS DPH table entry
|
||||
ld a,(dstdrv) ; dest drv num to A
|
||||
call chkdrv ; valid drive?
|
||||
@@ -1206,12 +1725,12 @@ showall:
|
||||
ld b,16 ; 16 drives possible
|
||||
ld c,0 ; map index (drive letter)
|
||||
;
|
||||
ld a,b ; load count
|
||||
or $FF ; signal no action
|
||||
ret z ; bail out if zero
|
||||
; ld a,b ; load count
|
||||
; or $FF ; signal no action
|
||||
; ret z ; bail out if zero
|
||||
;
|
||||
showall1: ; loop
|
||||
ld a,c ;
|
||||
; ld a,c ;
|
||||
push bc ; save loop control
|
||||
call showass
|
||||
pop bc ; restore loop control
|
||||
@@ -1226,8 +1745,9 @@ showall1: ; loop
|
||||
showass:
|
||||
;
|
||||
; setup HL to point to desired entry in table
|
||||
ld c,a ; save incoming drive in C
|
||||
; ld c,a ; save incoming drive in C
|
||||
ld hl,mapwrk ; HL = address of drive map
|
||||
ld a,c
|
||||
rlca
|
||||
rlca
|
||||
call addhl ; HL = address of drive map table entry
|
||||
@@ -1301,7 +1821,7 @@ prtdev:
|
||||
or a ; set flags
|
||||
ld a,e ; put device num back
|
||||
jr nz,prtdevu ; print device in UNA mode
|
||||
ld b,$17 ; hbios func: diodevice
|
||||
ld b,BF_DIODEVICE ; hbios func: diodevice
|
||||
ld c,a ; unit to C
|
||||
rst 08 ; call hbios, D := device, E := unit
|
||||
push de ; save results
|
||||
@@ -1326,7 +1846,7 @@ prtdevu:
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
;
|
||||
;
|
||||
; UNA mode version of print device
|
||||
ld b,a ; B := unit num
|
||||
push bc ; save for later
|
||||
@@ -1389,15 +1909,14 @@ chkdrv:
|
||||
;
|
||||
chkdev: ; HBIOS variant
|
||||
push af ; save incoming unit
|
||||
ld b,$F8 ; hbios func: sysget
|
||||
ld c,$10 ; sysget subfunc: diocnt
|
||||
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
|
||||
rst 08 ; call hbios, E := device count
|
||||
pop af ; restore incoming unit
|
||||
cp e ; compare to unit count
|
||||
jp nc,errdev ; if too high, error
|
||||
;
|
||||
; get device/unit info
|
||||
ld b,$17 ; hbios func: diodevice
|
||||
ld b,BF_DIODEVICE ; hbios func: diodevice
|
||||
ld c,a ; unit to C
|
||||
rst 08 ; call hbios, C := device attributes
|
||||
;
|
||||
@@ -1476,7 +1995,7 @@ prtstr1:
|
||||
;
|
||||
prtstr2:
|
||||
pop de ; restore registers
|
||||
ret
|
||||
ret
|
||||
;
|
||||
; Print the value in A in hex without destroying any registers
|
||||
;
|
||||
@@ -1499,7 +2018,7 @@ prthexword:
|
||||
ld a,b
|
||||
call prthex
|
||||
ld a,c
|
||||
call prthex
|
||||
call prthex
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
@@ -1523,9 +2042,9 @@ hexascii:
|
||||
hexconv:
|
||||
and $0F ; low nibble only
|
||||
add a,$90
|
||||
daa
|
||||
daa
|
||||
adc a,$40
|
||||
daa
|
||||
daa
|
||||
ret
|
||||
;
|
||||
; Print value of A or HL in decimal with leading zero suppression
|
||||
@@ -1871,19 +2390,27 @@ drives:
|
||||
dstdrv .db 0 ; destination drive
|
||||
srcdrv .db 0 ; source drive
|
||||
device .db 0 ; source device
|
||||
; note (unit and slice) need to be kept ordered since they are used
|
||||
; in code forming a temp table entry (comparison purposes). See bootadd:
|
||||
unit .db 0 ; source unit
|
||||
slice .db 0 ; source slice
|
||||
;
|
||||
atrmask .db 0 ; device attributes mask before compare
|
||||
atrcomp .db 0 ; device attributes compare to
|
||||
slicec .db 1 ; number of slices to assign for each volume
|
||||
slicmem .dw 280 ; memory to allocate to next slice assigment
|
||||
;
|
||||
unamod .db 0 ; $FF indicates UNA UBIOS active
|
||||
modcnt .db 0 ; count of drive map modifications
|
||||
;
|
||||
srcptr .dw 0 ; source pointer for copy
|
||||
dstptr .dw 0 ; destination pointer for copy
|
||||
tmpent .fill 4,0 ; space to save a table entry
|
||||
tmpstr .fill 9,0 ; temporary string of up to 8 chars, zero term
|
||||
tmpstr .fill 17,0 ; temporary string of up to 16 chars, zero term
|
||||
;
|
||||
heaptop .dw 0 ; current address of top of heap memory
|
||||
heaplim .dw 0 ; heap limit address
|
||||
heaprem .dw $7FFF ; estimate of heap remaining, (before allocate)
|
||||
;
|
||||
dirbuf .dw 0 ; directory buffer location
|
||||
;
|
||||
@@ -1893,6 +2420,7 @@ scbop .db $FF ; set a byte
|
||||
scbval .dw $FF ; value to set
|
||||
;
|
||||
mapwrk .fill (4 * 16),$FF ; working copy of drive map
|
||||
mapadr .dw mapwrk ; working pointer into mapwrk used by /B=
|
||||
;
|
||||
devtbl: ; device table
|
||||
.dw dev00, dev01, dev02, dev03
|
||||
@@ -1936,17 +2464,19 @@ stack .equ $ ; stack top
|
||||
; Messages
|
||||
;
|
||||
indent .db " ",0
|
||||
msgban1 .db "ASSIGN v1.8 for RomWBW CP/M ",0
|
||||
msgban1 .db "ASSIGN v2.0 for RomWBW CP/M ",0
|
||||
msg22 .db "2.2",0
|
||||
msg3 .db "3",0
|
||||
msbban2 .db ", 13-Oct-2023",0
|
||||
msbban2 .db ", 21-Dec-2024",0
|
||||
msghb .db " (HBIOS Mode)",0
|
||||
msgub .db " (UBIOS Mode)",0
|
||||
msgban3 .db "Copyright 2023, Wayne Warthen, GNU GPL v3",0
|
||||
msgban3 .db "Copyright 2024, Wayne Warthen, GNU GPL v3",0
|
||||
msguse .db "Usage: ASSIGN D:[=[{D:|<device>[<unitnum>]:[<slicenum>]}]][,...]",13,10
|
||||
.db " ex. ASSIGN (display all active assignments)",13,10
|
||||
.db " ASSIGN /? (display version and usage)",13,10
|
||||
.db " ASSIGN /L (display all possible devices)",13,10
|
||||
.db " ASSIGN /B=OPTS (perform assignment based on options)",13,10
|
||||
.db " ASSIGN C: (display assignment for C:)",13,10
|
||||
.db " ASSIGN C:=D: (swaps C: and D:)",13,10
|
||||
.db " ASSIGN C:=FD0: (assign C: to floppy unit 0)",13,10
|
||||
.db " ASSIGN C:=IDE0:1 (assign C: to IDE unit0, slice 1)",13,10
|
||||
|
||||
@@ -5,14 +5,15 @@ setlocal
|
||||
call BuildProp || exit /b
|
||||
call BuildShared || exit /b
|
||||
call BuildBP || exit /b
|
||||
call BuildROM %* || exit /b
|
||||
call BuildImages || exit /b
|
||||
call BuildROM %* || exit /b
|
||||
call BuildZRC || exit /b
|
||||
call BuildZ1RCC || exit /b
|
||||
call BuildZZRCC || exit /b
|
||||
call BuildZRC512 || exit /b
|
||||
call BuildFZ80 || exit /b
|
||||
call BuildEZ512 || exit /b
|
||||
|
||||
if "%1" == "dist" (
|
||||
call Clean || exit /b
|
||||
)
|
||||
)
|
||||
|
||||
4
Source/BuildEZ512.cmd
Normal file
4
Source/BuildEZ512.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
pushd EZ512 && call Build || exit /b & popd
|
||||
@@ -78,7 +78,7 @@ MEMTOP .EQU $10000
|
||||
#INCLUDE "../UBIOS/ubios.inc"
|
||||
#ENDIF
|
||||
;
|
||||
.ORG CBIOS_LOC ; DEFINED IN STD.ASM
|
||||
.ORG CBIOS_LOC ; DEFINED IN LAYOUT.INC
|
||||
;
|
||||
STACK .EQU CBIOS_END ; USE SLACK SPACE FOR STACK AS NEEDED
|
||||
;
|
||||
@@ -411,8 +411,7 @@ REBOOT:
|
||||
;
|
||||
#IFDEF PLTWBW
|
||||
; WARM START
|
||||
LD B,BF_SYSRESET ; SYSTEM RESTART
|
||||
LD C,BF_SYSRES_WARM ; WARM START
|
||||
LD BC,BC_SYSRES_WARM ; SYSTEM WARM RESTART
|
||||
CALL $FFF0 ; CALL HBIOS
|
||||
#ENDIF
|
||||
;
|
||||
@@ -2199,8 +2198,7 @@ INIT:
|
||||
|
||||
#ELSE
|
||||
; GET CRITICAL BANK ID'S
|
||||
LD B,BF_SYSGET ; HBIOS FUNC=GET SYS INFO
|
||||
LD C,BF_SYSGET_BNKINFO ; HBIOS SUBFUNC=GET BANK ASSIGNMENTS
|
||||
LD BC,BC_SYSGET_BNKINFO ; HBIOS FUNC=GET SYS INFO;GET BANK ASSIGNMENTS
|
||||
RST 08 ; CALL HBIOS
|
||||
LD A,D ; GET HBIOS BANK RETURNED IN D
|
||||
LD (BNKBIOS),A ; ... AND SAVE IT
|
||||
@@ -2213,8 +2211,7 @@ INIT:
|
||||
#ENDIF
|
||||
;
|
||||
; SOFT RESET HBIOS
|
||||
LD B,BF_SYSRESET ; HB FUNC: RESET
|
||||
LD C,BF_SYSRES_INT ; WARM START
|
||||
LD BC,BC_SYSRES_INT ; HB FUNC: RESET; WARM START
|
||||
RST 08 ; DO IT
|
||||
;
|
||||
#IF DEBUG
|
||||
@@ -2343,10 +2340,8 @@ INIT2:
|
||||
LD C,(HL) ; PUT UNIT NUM IN C
|
||||
RST 08 ; CALL HBIOS
|
||||
LD A,C ; GET ATTRIBUTES
|
||||
AND %10001111 ; ISOLATE TYPE BITS
|
||||
CP %00000100 ; NOT FLOPPY, TYPE = ROM?
|
||||
JR Z,INIT2A ; IF SO, ADJUST DEF DRIVE
|
||||
CP %00000111 ; NOT FLOPPY, TYPE = FLASH?
|
||||
AND %10001101 ; ISOLATE TYPE BITS, NOT FLOPPY
|
||||
CP %00000100 ; TYPE=ROM/FLASH ; Att="0xxx01x0"
|
||||
JR NZ,INIT2X ; IF NOT THEN DONE
|
||||
;
|
||||
INIT2A:
|
||||
@@ -2496,8 +2491,7 @@ DEV_INIT000:
|
||||
DEV_INIT00:
|
||||
; LOOP THRU DEVICES ADDING DEVICES TO DEVMAP
|
||||
; CONSOLE DEVICE WAS ALREADY DONE, SO IT IS SKIPPED HERE
|
||||
LD B,BF_SYSGET ; HBIOS FUNC: GET SYS INFO
|
||||
LD C,BF_SYSGET_CIOCNT ; SUBFUNC: GET CIO UNIT COUNT
|
||||
LD BC,BC_SYSGET_CIOCNT ; HBIOS FUNC: GET SYS INFO; GET CIO UNIT COUNT
|
||||
RST 08 ; E := SERIAL UNIT COUNT
|
||||
LD B,E ; COUNT TO B
|
||||
LD C,0 ; UNIT INDEX
|
||||
@@ -2928,8 +2922,7 @@ DRV_INIT:
|
||||
; DEVICES. NON-HARD DISK UNITS ARE ALWAYS CONSIDERED
|
||||
; ACTIVE, BUT HARD DISK UNITS ARE ONLY CONSIDERED ACTIVE
|
||||
; IF THERE IS MEDIA IN THE DRIVE.
|
||||
LD B,BF_SYSGET
|
||||
LD C,BF_SYSGET_DIOCNT
|
||||
LD BC,BC_SYSGET_DIOCNT ; GET DISK UNIT COUNT
|
||||
RST 08 ; E := DISK UNIT COUNT
|
||||
LD B,E ; COUNT TO B
|
||||
LD A,B ; COUNT TO A
|
||||
@@ -3435,6 +3428,63 @@ DEV15 .EQU DEVUNK
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
; INITIALIZATION Utilities
|
||||
;
|
||||
; PRINT VALUE OF A IN DECIMAL WITH LEADING ZERO SUPPRESSION
|
||||
;
|
||||
PRTDECB:
|
||||
PUSH HL
|
||||
PUSH AF
|
||||
LD L,A
|
||||
LD H,0
|
||||
CALL PRTDEC
|
||||
POP AF
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
; PRINT VALUE OF HL IN DECIMAL WITH LEADING ZERO SUPPRESSION
|
||||
;
|
||||
PRTDEC:
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD E,'0'
|
||||
LD BC,-10000
|
||||
CALL PRTDEC1
|
||||
LD BC,-1000
|
||||
CALL PRTDEC1
|
||||
LD BC,-100
|
||||
CALL PRTDEC1
|
||||
LD C,-10
|
||||
CALL PRTDEC1
|
||||
LD E,0
|
||||
LD C,-1
|
||||
CALL PRTDEC1
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
PRTDEC1:
|
||||
LD A,'0' - 1
|
||||
PRTDEC2:
|
||||
INC A
|
||||
ADD HL,BC
|
||||
JR C,PRTDEC2
|
||||
SBC HL,BC
|
||||
CP E
|
||||
JR Z,PRTDEC3
|
||||
LD E,0
|
||||
CALL COUT
|
||||
PRTDEC3:
|
||||
RET
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
; INITIALIZATION Working Storage
|
||||
;
|
||||
DPHTOP .DW 0 ; CURRENT TOP OF DPH POOL
|
||||
DIRBUF .DW 0 ; DIR BUF POINTER
|
||||
HEAPTOP .DW BUFPOOL ; CURRENT TOP OF HEAP
|
||||
|
||||
@@ -28,10 +28,10 @@ PC_COLON:
|
||||
LD A,':'
|
||||
JR PC_PRTCHR
|
||||
|
||||
PC_COMMA:
|
||||
PUSH AF
|
||||
LD A,','
|
||||
JR PC_PRTCHR
|
||||
;PC_COMMA:
|
||||
; PUSH AF
|
||||
; LD A,','
|
||||
; JR PC_PRTCHR
|
||||
|
||||
PC_LBKT:
|
||||
PUSH AF
|
||||
@@ -43,30 +43,30 @@ PC_RBKT:
|
||||
LD A,']'
|
||||
JR PC_PRTCHR
|
||||
|
||||
PC_LT:
|
||||
PUSH AF
|
||||
LD A,'<'
|
||||
JR PC_PRTCHR
|
||||
;PC_LT:
|
||||
; PUSH AF
|
||||
; LD A,'<'
|
||||
; JR PC_PRTCHR
|
||||
|
||||
PC_GT:
|
||||
PUSH AF
|
||||
LD A,'>'
|
||||
JR PC_PRTCHR
|
||||
;PC_GT:
|
||||
; PUSH AF
|
||||
; LD A,'>'
|
||||
; JR PC_PRTCHR
|
||||
|
||||
PC_LPAREN:
|
||||
PUSH AF
|
||||
LD A,'('
|
||||
JR PC_PRTCHR
|
||||
;PC_LPAREN:
|
||||
; PUSH AF
|
||||
; LD A,'('
|
||||
; JR PC_PRTCHR
|
||||
|
||||
PC_RPAREN:
|
||||
PUSH AF
|
||||
LD A,')'
|
||||
JR PC_PRTCHR
|
||||
;PC_RPAREN:
|
||||
; PUSH AF
|
||||
; LD A,')'
|
||||
; JR PC_PRTCHR
|
||||
|
||||
PC_ASTERISK:
|
||||
PUSH AF
|
||||
LD A,'*'
|
||||
JR PC_PRTCHR
|
||||
;PC_ASTERISK:
|
||||
; PUSH AF
|
||||
; LD A,'*'
|
||||
; JR PC_PRTCHR
|
||||
|
||||
PC_CR:
|
||||
PUSH AF
|
||||
@@ -201,7 +201,7 @@ _REGDMP:
|
||||
LD A,'@'
|
||||
CALL COUT
|
||||
POP AF
|
||||
|
||||
|
||||
PUSH BC
|
||||
LD BC,(REGDMP_PC)
|
||||
CALL PRTHEXWORD ; PC
|
||||
@@ -235,7 +235,7 @@ _REGDMP:
|
||||
POP AF
|
||||
|
||||
;LD SP,(RD_STKSAV) ; BACK TO ORIGINAL STACK FRAME
|
||||
|
||||
|
||||
JP $FFFF ; RETURN, $FFFF IS DYNAMICALLY UPDATED
|
||||
REGDMP_RET .EQU $-2 ; RETURN ADDRESS GOES HERE
|
||||
;
|
||||
@@ -340,17 +340,17 @@ ADDHLA1:
|
||||
; IN: MULTIPLY H BY E
|
||||
; OUT: HL = RESULT, E = 0, B = 0
|
||||
;
|
||||
MULT8:
|
||||
LD D,0
|
||||
LD L,D
|
||||
LD B,8
|
||||
MULT8_LOOP:
|
||||
ADD HL,HL
|
||||
JR NC,MULT8_NOADD
|
||||
ADD HL,DE
|
||||
MULT8_NOADD:
|
||||
DJNZ MULT8_LOOP
|
||||
RET
|
||||
;MULT8:
|
||||
; LD D,0
|
||||
; LD L,D
|
||||
; LD B,8
|
||||
;MULT8_LOOP:
|
||||
; ADD HL,HL
|
||||
; JR NC,MULT8_NOADD
|
||||
; ADD HL,DE
|
||||
;MULT8_NOADD:
|
||||
; DJNZ MULT8_LOOP
|
||||
; RET
|
||||
;
|
||||
; FILL MEMORY AT HL WITH VALUE A, LENGTH IN BC, ALL REGS USED
|
||||
; LENGTH *MUST* BE GREATER THAN 1 FOR PROPER OPERATION!!!
|
||||
@@ -364,54 +364,6 @@ FILL:
|
||||
LDIR ; DO THE REST
|
||||
RET ; RETURN
|
||||
;
|
||||
; PRINT VALUE OF A IN DECIMAL WITH LEADING ZERO SUPPRESSION
|
||||
;
|
||||
PRTDECB:
|
||||
PUSH HL
|
||||
PUSH AF
|
||||
LD L,A
|
||||
LD H,0
|
||||
CALL PRTDEC
|
||||
POP AF
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
; PRINT VALUE OF HL IN DECIMAL WITH LEADING ZERO SUPPRESSION
|
||||
;
|
||||
PRTDEC:
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD E,'0'
|
||||
LD BC,-10000
|
||||
CALL PRTDEC1
|
||||
LD BC,-1000
|
||||
CALL PRTDEC1
|
||||
LD BC,-100
|
||||
CALL PRTDEC1
|
||||
LD C,-10
|
||||
CALL PRTDEC1
|
||||
LD E,0
|
||||
LD C,-1
|
||||
CALL PRTDEC1
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
PRTDEC1:
|
||||
LD A,'0' - 1
|
||||
PRTDEC2:
|
||||
INC A
|
||||
ADD HL,BC
|
||||
JR C,PRTDEC2
|
||||
SBC HL,BC
|
||||
CP E
|
||||
JR Z,PRTDEC3
|
||||
LD E,0
|
||||
CALL COUT
|
||||
PRTDEC3:
|
||||
RET
|
||||
;
|
||||
; PRINT THE HEX BYTE VALUE IN A
|
||||
;
|
||||
PRTHEXBYTE:
|
||||
@@ -457,9 +409,9 @@ HEXASCII:
|
||||
HEXCONV:
|
||||
AND 0FH ;LOW NIBBLE ONLY
|
||||
ADD A,90H
|
||||
DAA
|
||||
DAA
|
||||
ADC A,40H
|
||||
DAA
|
||||
DAA
|
||||
RET
|
||||
;
|
||||
;****************************
|
||||
@@ -488,40 +440,40 @@ BCD2BYTE:
|
||||
; [0..99] => [00H..99H]
|
||||
;*****************************
|
||||
;
|
||||
BYTE2BCD:
|
||||
PUSH BC
|
||||
LD B,10
|
||||
LD C,-1
|
||||
BYTE2BCD1:
|
||||
INC C
|
||||
SUB B
|
||||
JR NC,BYTE2BCD1
|
||||
ADD A,B
|
||||
LD B,A
|
||||
LD A,C
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
OR B
|
||||
POP BC
|
||||
RET
|
||||
;BYTE2BCD:
|
||||
; PUSH BC
|
||||
; LD B,10
|
||||
; LD C,-1
|
||||
;BYTE2BCD1:
|
||||
; INC C
|
||||
; SUB B
|
||||
; JR NC,BYTE2BCD1
|
||||
; ADD A,B
|
||||
; LD B,A
|
||||
; LD A,C
|
||||
; ADD A,A
|
||||
; ADD A,A
|
||||
; ADD A,A
|
||||
; ADD A,A
|
||||
; OR B
|
||||
; POP BC
|
||||
; RET
|
||||
;
|
||||
; PRINT A BYTE BUFFER IN HEX POINTED TO BY DE
|
||||
; REGISTER A HAS SIZE OF BUFFER
|
||||
;
|
||||
PRTHEXBUF:
|
||||
OR A
|
||||
RET Z ; EMPTY BUFFER
|
||||
;PRTHEXBUF:
|
||||
; OR A
|
||||
; RET Z ; EMPTY BUFFER
|
||||
;
|
||||
LD B,A
|
||||
PRTHEXBUF1:
|
||||
CALL PC_SPACE
|
||||
LD A,(DE)
|
||||
CALL PRTHEXBYTE
|
||||
INC DE
|
||||
DJNZ PRTHEXBUF1
|
||||
RET
|
||||
; LD B,A
|
||||
;PRTHEXBUF1:
|
||||
; CALL PC_SPACE
|
||||
; LD A,(DE)
|
||||
; CALL PRTHEXBYTE
|
||||
; INC DE
|
||||
; DJNZ PRTHEXBUF1
|
||||
; RET
|
||||
;
|
||||
; LEFT SHIFT DE:HL BY B BITS (B > 0)
|
||||
;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THE RETROBREW COMPUTING GROUP HAS BEEN USING A CONVENTION OF PREFIXING THE
|
||||
; OS IMAGE WITH 3 SECTORS (512 BYTES X 3 FOR A TOTAL OF 1536 BYTES):
|
||||
;
|
||||
; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP,
|
||||
; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP,
|
||||
; PARTITION TABLE, AND BOOT SIGNATURE
|
||||
; SECTOR 2: RESERVED
|
||||
; SECTOR 3: METADATA
|
||||
@@ -29,6 +29,7 @@
|
||||
;
|
||||
SYS_ENT .EQU $E600 ; SYSTEM (OS) ENTRY POINT ADDRESS
|
||||
SYS_LOC .EQU $D000 ; STARTING ADDRESS TO LOAD SYSTEM IMAGE
|
||||
SYS_SEC .EQU 22 ; NUMBER OF SECTORS TO READ
|
||||
SYS_END .EQU $FE00 ; ENDING ADDRESS OF SYSTEM IMAGE
|
||||
;
|
||||
SEC_SIZE .EQU 512 ; DISK SECTOR SIZE
|
||||
@@ -76,8 +77,8 @@ BOOT:
|
||||
CALL PRTDOT ; PROGRESS
|
||||
;
|
||||
LD C,$42 ; UNA FUNC: READ SECTORS
|
||||
LD DE,$D000 ; STARTING ADDRESS FOR IMAGE
|
||||
LD L,22 ; READ 22 SECTORS
|
||||
LD DE,SYS_LOC ; STARTING ADDRESS FOR IMAGE
|
||||
LD L,SYS_SEC ; NUMBER OF SECTORS
|
||||
CALL $FFFD ; DO READ
|
||||
JR NZ,ERROR ; HANDLE ERROR
|
||||
CALL PRTDOT ; PROGRESS
|
||||
@@ -147,10 +148,10 @@ HEXASCII:
|
||||
HEXCONV:
|
||||
AND $0F ;LOW NIBBLE ONLY
|
||||
ADD A,$90
|
||||
DAA
|
||||
DAA
|
||||
ADC A,$40
|
||||
DAA
|
||||
RET
|
||||
DAA
|
||||
RET
|
||||
;
|
||||
ERROR:
|
||||
LD DE,STR_ERR ; POINT TO ERROR STRING
|
||||
@@ -252,7 +253,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE
|
||||
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN
|
||||
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?)
|
||||
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION
|
||||
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
|
||||
PR_LABEL .DB "CP/M 2.2$$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
|
||||
.DW 0 ; (2) DEPRECATED
|
||||
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM
|
||||
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THE RETROBREW COMPUTING GROUP HAS BEEN USING A CONVENTION OF PREFIXING THE
|
||||
; OS IMAGE WITH 3 SECTORS (512 BYTES X 3 FOR A TOTAL OF 1536 BYTES):
|
||||
;
|
||||
; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP,
|
||||
; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP,
|
||||
; PARTITION TABLE, AND BOOT SIGNATURE
|
||||
; SECTOR 2: RESERVED
|
||||
; SECTOR 3: METADATA
|
||||
@@ -31,6 +31,7 @@
|
||||
; THE SIZE OF CPMLDR.BIN CHANGES, SYS_SIZ MUST BE UPDATED!!!
|
||||
;
|
||||
SYS_SIZ .EQU $0F00 ; SIZE OF CPMLDR.BIN
|
||||
SYS_SEC .EQU 8 ; NUMBER OF SECTORS TO READ
|
||||
SYS_ENT .EQU $0100 ; SYSTEM (OS) ENTRY POINT ADDRESS
|
||||
SYS_LOC .EQU $0100 ; STARTING ADDRESS TO LOAD SYSTEM IMAGE
|
||||
SYS_END .EQU SYS_SIZ + SYS_LOC ; ENDING ADDRESS OF SYSTEM IMAGE
|
||||
@@ -57,6 +58,8 @@ PT_SIZ .EQU $40
|
||||
; THE FOLLOWING BOOTSTRAP CODE IS BUILT TO ASSUME IT WILL BE EXECUTED AT A STARTING
|
||||
; ADDRESS OF $8000. THIS CODE IS *ONLY* FOR UNA. THE ROMWBW ROM BOOTLOADER
|
||||
; USES THE METADATA TO LOAD THE OS DIRECTLY.
|
||||
;
|
||||
; UNA DOES NOT SUPPORT CP/M 3 THIS CODE IS NOT USED, AND COULD BE REMOVED
|
||||
;
|
||||
.ORG $8000
|
||||
JR BOOT
|
||||
@@ -80,8 +83,8 @@ BOOT:
|
||||
CALL PRTDOT ; PROGRESS
|
||||
;
|
||||
LD C,$42 ; UNA FUNC: READ SECTORS
|
||||
LD DE,$D000 ; STARTING ADDRESS FOR IMAGE
|
||||
LD L,22 ; READ 22 SECTORS
|
||||
LD DE,SYS_LOC ; STARTING ADDRESS FOR IMAGE
|
||||
LD L,SYS_SEC ; NUMBER OF SECTORS
|
||||
CALL $FFFD ; DO READ
|
||||
JR NZ,ERROR ; HANDLE ERROR
|
||||
CALL PRTDOT ; PROGRESS
|
||||
@@ -151,10 +154,10 @@ HEXASCII:
|
||||
HEXCONV:
|
||||
AND $0F ;LOW NIBBLE ONLY
|
||||
ADD A,$90
|
||||
DAA
|
||||
DAA
|
||||
ADC A,$40
|
||||
DAA
|
||||
RET
|
||||
DAA
|
||||
RET
|
||||
;
|
||||
ERROR:
|
||||
LD DE,STR_ERR ; POINT TO ERROR STRING
|
||||
@@ -256,7 +259,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE
|
||||
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN
|
||||
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?)
|
||||
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION
|
||||
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
|
||||
PR_LABEL .DB "CP/M 3.0$$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
|
||||
.DW 0 ; (2) DEPRECATED
|
||||
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM
|
||||
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM
|
||||
|
||||
@@ -384,6 +384,112 @@ protocol.
|
||||
|
||||
**`X`** - Exit the monitor program back to the main boot menu.
|
||||
|
||||
## RomWBW System Configuration
|
||||
|
||||
System Configuration (`SYSCONF`) is a utility that allows system configuration to
|
||||
be set, dynamically and stored in NVRAM provided by an RTC chip.
|
||||
|
||||
(`SYSCONF`) is both a ROM application ('W' Menu option), and a CP/M utility.
|
||||
Noting however the CP/M utility is not included on an disk image, it is found in
|
||||
the `Binary/Applications` folder of the RomWBW distribution.
|
||||
|
||||
The $doc_user$ has additional information on the use of NVRAM to set your
|
||||
system configuration.
|
||||
|
||||
### Basic Operation
|
||||
|
||||
The application is an interactive application; it does not have a command line syntax.
|
||||
Instead commands are executed from within the application in a command line structure.
|
||||
|
||||
When you first start the (`SYSCONF`) utility it will display the current switches
|
||||
followed by a command listing.
|
||||
|
||||
When you first run the (`SYSCONF`) utility the NVRAM will be uninitialised, and can
|
||||
be initialised using the (R)eset command, which writes default values to NVRAM.
|
||||
|
||||
Updates are done immediately to NVRAM as you enter them, i.e. there is no confirm
|
||||
changes step. If you make any incorrect changes, you simply need to enter a new
|
||||
command to set the Switch value correctly.
|
||||
|
||||
Once a change has been made it is available, however it may not take effect until
|
||||
the next system reboot. This is dependent on the Switch itself.
|
||||
|
||||
If no NVRAM is provided by your hardware, then running this application will just
|
||||
report the missing hardware and exit immediately.
|
||||
|
||||
To exit from the application use the (Q)uit command.
|
||||
|
||||
### Commands and Syntax
|
||||
|
||||
The following are the accepted commands, unless otherwise specified a "Space"
|
||||
character is used to delimit parameters in the command.
|
||||
|
||||
| Command | Argument(s) | Description |
|
||||
|------------|------------------|-----------------------------------------------|
|
||||
| (P)rint | -none- | Display a list of the current switch value(s) |
|
||||
| (S)et | {SW} {val},... | Sets an Switch {SW} with specific values(s) |
|
||||
| (R)eset | -none- | Reset all setting to default |
|
||||
| (H)elp | {SW} | Provides help on the syntax (values) |
|
||||
| (Q)uit | -none- | Exit the application |
|
||||
|
||||
**Where**
|
||||
|
||||
| Argument | Description |
|
||||
|-----------|----------------------------------------------------------------------|
|
||||
| {SW} | Switch ID, typically this is 2 character name to identify the switch |
|
||||
| {val},... | a "Comma" separated list of values to set into the switch |
|
||||
|
||||
### Switch Options
|
||||
|
||||
#### Auto Boot (AB)
|
||||
|
||||
This switch will define if the system will perform auto boot at the RomWBW boot prompt.
|
||||
Enabling this will not prevent a user from typing a boot command, so long as the timeout is not
|
||||
exceeded. When configured this replaces the (`AUTO_CMD`) variable
|
||||
defined in build configuration.
|
||||
|
||||
Making changes to auto boot has no affect until the next reboot.
|
||||
|
||||
**Arguments**
|
||||
|
||||
| Type | Arguments | Description |
|
||||
|----------|------------|--------------------------------------------------------|
|
||||
| Enable | 'E' | Auto Boot. eg. "E,10" will auto boot, after 10 seconds |
|
||||
| | Timout | Timeout in seconds in the range 0-15, 0 = immediate |
|
||||
| Disabled | 'D' | No Auto Boot. e.g. "D" will disable autoboot |
|
||||
|
||||
**Examples**
|
||||
|
||||
| Command | Description |
|
||||
|-----------------------|---------------------------------------------------|
|
||||
| S AB E,10 | Enable Auto Boot with 10 second delay |
|
||||
| S AB D | Disable Auto Boot |
|
||||
|
||||
#### Boot Options (BO)
|
||||
|
||||
This switch will define the boot command to be executed when auto boot is
|
||||
enabled. When configured this replaces the (`AUTO_CMD`) variable
|
||||
defined in the ROM build configuration.
|
||||
|
||||
Making changes to boot options has no affect until the next reboot.
|
||||
|
||||
**Arguments**
|
||||
|
||||
| Type | Arguments | Description |
|
||||
|------|------------------|----------------------------------------------------------|
|
||||
| Disk | 'D' | Disk Boot. eg. "D,2,14" will boot, disk unit 2, slice 14 |
|
||||
| | Disk Unit Number | Unit number in the range 0-127 |
|
||||
| | Disk Slice | Slice in the range 0-255, use 0 for floppy boot |
|
||||
| ROM | 'R' | ROM App. e.g. "R,M" will boot the Monitor App |
|
||||
| | Rom App Name | single character used on the Menu to identify the app |
|
||||
|
||||
**Examples**
|
||||
|
||||
| Command | Description |
|
||||
|-------------|----------------------------------------------------------|
|
||||
| S BO D,2,14 | Set the default boot from Disk; Unit 2, Slice 14 |
|
||||
| S BO R,M | Set the default boot to be the (M)onitor Rom Application |
|
||||
|
||||
## CP/M 2.2
|
||||
|
||||
This option will boot the CP/M 2.2 disk operating system
|
||||
@@ -971,9 +1077,12 @@ to display, assign, reassign, or remove the drive letter assignments.
|
||||
|
||||
| `ASSIGN /?`
|
||||
| `ASSIGN /L`
|
||||
| `ASSIGN ` *`<drv>`*`=`
|
||||
| `ASSIGN `
|
||||
| `ASSIGN [`*`<drv>`*`],...`
|
||||
| `ASSIGN `*`<drv>`*`=[`*`<device>`*`:[`*`<slice>`*`]],...`
|
||||
| `ASSIGN `*`<tgtdrv>`*`=`*`<srcdrv>`*`,...`
|
||||
| `ASSIGN ` *`<drv>`*`=[`*`<device>`*`:[`*`<slice>`*`]],...`
|
||||
| `ASSIGN ` *`<tgtdrv>`*`=`*`<srcdrv>`*`,...`
|
||||
| `ASSIGN /B='*'<option>'*'['*'<option>'*'['*'<option>'*'...]]`
|
||||
|
||||
#### Usage
|
||||
|
||||
@@ -984,23 +1093,36 @@ used in drive assignments in the running system. The devices listed
|
||||
may or may not contain media. Although some device types support the
|
||||
use of slices, the list does not indicate this.
|
||||
|
||||
`ASSIGN A:` just specifying the drive letter will display the
|
||||
assignment for the drive letter
|
||||
|
||||
`ASSIGN` with no parameters will list all of the current drive
|
||||
assignments.
|
||||
|
||||
`ASSIGN `*`<drv>`* will display the assignment for the specific drive
|
||||
#### Usage (Specific)
|
||||
|
||||
The following describes how to assign drive specifically by identifing each
|
||||
drive by its unique device and slice id's
|
||||
|
||||
`ASSIGN ` *`<drv>`* will display the assignment for the specific drive
|
||||
For example, `ASSIGN C:` will display the assignment for drive C:.
|
||||
|
||||
`ASSIGN `*`<drv>`*`=`*`<device>`*`[:`*`<slice>`*`]` will assign (or
|
||||
`ASSIGN ` *`<drv>`*`=`*`<device>`*`[:`*`<slice>`*`]` will assign (or
|
||||
reassign) a drive letter to a new device and (optionally) slice. If no
|
||||
slice is specified, then slice 0 is assumed. For example, `ASSIGN
|
||||
C:=IDE0` will assign drive letter C: to device IDE0, slice 0. `ASSIGN
|
||||
D:=IDE0:3` will assign drive letter D: to device IDE0 slice 3.
|
||||
|
||||
`ASSIGN `*`<drv>`*`=` can be used to remove the assignment from a
|
||||
The `ASSIGN` command will not allow you to specify a slice (other than
|
||||
zero) for devices that do not support slices.
|
||||
A slice should only be specified for hard disk devices (SD, IDE, PPIDE).
|
||||
Floppy disk drives and RAM/ROM drives do not have slices.
|
||||
|
||||
`ASSIGN ` *`<drv>`*`=` can be used to remove the assignment from a
|
||||
drive letter. So, `ASSIGN E:=` will remove the association of drive
|
||||
letter E: from any previous device.
|
||||
|
||||
`ASSIGN `*`<tgtdrv>`*`=`*`<srcdrv>`* is used to swap the assignments
|
||||
`ASSIGN ` *`<tgtdrv>`*`=`*`<srcdrv>`* is used to swap the assignments
|
||||
of two drive letters. For example, `ASSIGN C:=D:` will swap the device
|
||||
assignments of C: and D:.
|
||||
|
||||
@@ -1012,6 +1134,78 @@ When the command runs it will echo the resultant assignments to the
|
||||
console to confirm its actions. It will also display the remaining
|
||||
space available in disk buffers.
|
||||
|
||||
#### Usage (Bulk)
|
||||
|
||||
The following describes how to assign drives in bulk without having to specify
|
||||
the identifiers of each drive being mapped. Instead bulk mode has a
|
||||
predefined set options (identified by single letter) which will map drives.
|
||||
Bulk mode works by assigning drives sequentially starting at A: until all
|
||||
drives are used, or there are no more options to process. Each option
|
||||
will typically map between 0 and N drives depending on the option
|
||||
and the available hardware in your system.
|
||||
|
||||
`ASSIGN /B=`*`<option><option>`*... will perform bulk assignment .
|
||||
|
||||
The following options will assign a small number of devices, typically you would
|
||||
place at beginning of an option list.
|
||||
|
||||
| Option | Name | Description | Assigned |
|
||||
|--------|----------|---------------------------------------------|----------|
|
||||
| B | Boot | The boot device | 1 |
|
||||
| A | RAM | Ram drive | 0,1 |
|
||||
| O | ROM | Rom drive | 0,1 |
|
||||
| F | Floppy | All floppy devices, with/without media | 0,1,2,.. |
|
||||
| P | Preserve | Skip and preserve the next drive assignment | 1 |
|
||||
| X | Exclude | Un-assign / Exclude the next drive | 1 |
|
||||
|
||||
A drive e.g. RAM, ROM, FLOPPY can only be assigned if it exists. if you system
|
||||
doesn't have the hardware that supports the device, then no devices will be
|
||||
assigned, and the next option will be processed.
|
||||
|
||||
`B` assigns the boot device. If used the `B`oot drive should typically be
|
||||
assigned first.
|
||||
|
||||
`P` will not make any changes to the next drive, it will skip over it. While the
|
||||
`X` option will un-assign the next drive, leaving a gap.
|
||||
|
||||
The remaining options will fill drives mostly to end, from hard drive slices,
|
||||
generally choose 1 of the following:
|
||||
|
||||
| Option | Name | Description | Assigned |
|
||||
|--------|-------------|---------------------------------------------|----------|
|
||||
| S | Slices | Assign slices from boot hard drive | ...max |
|
||||
| H | Hard Drive | Assign slices evenly from all hard drives | ...max |
|
||||
| L | Legacy HD | Assign slices from all hard drives (legacy) | 6,...max |
|
||||
| Z | Exclude All | Un-assign all remaining drives | ...max |
|
||||
|
||||
`S`lices assignment will map all remaining drives to slices from the boot device.
|
||||
If I have other hard drives present these will not be mapped by this option.
|
||||
|
||||
e.g. `ASSIGN /B=BAOS`
|
||||
|
||||
Will first assign drives `A:(Boot), B:(RAM), C:(ROM)` this leaves 13 drives
|
||||
which will be assigned to slices from the boot hard drive (D: thru P:),
|
||||
leaving no unused drives.
|
||||
|
||||
'H'ard drive assignment will attempt to fill all remaining drive letters
|
||||
by splitting the number of drives remaining evenly across all.
|
||||
|
||||
e.g. `ASSIGN /B=BAOH`
|
||||
|
||||
Will first assign drives `A:(Boot), B:(RAM), C:(ROM)` this leaves 13 drives
|
||||
available. If I have 3 hard disks then (13/3) = 4 slices from each hard drive will
|
||||
be assigned to drives (D: thru O:), leaving a single unused drive (P:).
|
||||
|
||||
`L`egacy hard drive assignment is identical to how the startup hard disk assignment
|
||||
works. ie. Attempt to assign up to 8 hard drives split across hard drives
|
||||
detected at boot.
|
||||
|
||||
e.g. `ASSIGN /B=BAOL`
|
||||
|
||||
Will first assign drives `A:(Boot), B:(RAM), C:(ROM)`. If I have 3 hard disks
|
||||
then (8/3) = 2 slices from each hard drive will be assigned to drives (D: thru I:),
|
||||
leaving 7 unused drives (J: thru P:).
|
||||
|
||||
#### Notes
|
||||
|
||||
If the `ASSIGN` command encounters any rule violations or errors, it
|
||||
@@ -1030,10 +1224,6 @@ being assigned actually contains readable media. If the assigned
|
||||
device has no media, you will receive an I/O error when you attempt to
|
||||
use the drive letter.
|
||||
|
||||
The `ASSIGN` command will not allow you to specify a slice (other than
|
||||
zero) for devices that do not support slices (such as floppy drives
|
||||
or RAM/ROM disks).
|
||||
|
||||
The `ASSIGN` command does not check that the media is large enough to
|
||||
support the slice you specify. In other words, you could potentially
|
||||
assign a drive letter to a slice that is beyond the end of the media
|
||||
@@ -1046,7 +1236,11 @@ data (such as a FAT filesystem).
|
||||
|
||||
You will not be allowed to assign multiple drive letters to a single
|
||||
device and slice. In other words, only one drive letter may refer to a
|
||||
single filesystem at a time.
|
||||
single filesystem at a time.
|
||||
|
||||
Attempts to assign a duplicate drive letter will fail and display an
|
||||
error. If you wish to assign a different drive letter to a
|
||||
device/unit/slice, unassign the existing drive letter first.
|
||||
|
||||
Drive letter A: must always be assigned to a device and slice. The
|
||||
`ASSIGN` command will enforce this.
|
||||
@@ -1057,14 +1251,6 @@ all drive letters will return to their default assignments. A SUBMIT
|
||||
batch file can be used to setup desired drive assignments
|
||||
automatically at boot.
|
||||
|
||||
Floppy disk drives and RAM/ROM drives do not have slices. A slice
|
||||
should only be specified for hard disk devices (SD, IDE, PPIDE).
|
||||
|
||||
Only one drive letter may be assigned to a specific device/unit/slice
|
||||
at a time. Attempts to assign a duplicate drive letter will fail and
|
||||
display an error. If you wish to assign a different drive letter to a
|
||||
device/unit/slice, unassign the existing drive letter first.
|
||||
|
||||
Be aware that this command will allow you to reassign or remove the
|
||||
assignment of your system drive letter. This can cause your operating
|
||||
system to fail and force you to reboot.
|
||||
@@ -1145,11 +1331,6 @@ cold reboot of the system.
|
||||
|
||||
The functionality is highly dependent on the capabilities of your system.
|
||||
|
||||
At present, all Z180 systems can change their CPU speed and their
|
||||
wait states. SBC and MBC systems may be able to change their CPU
|
||||
speed if the hardware supports it and it is enabled in the HBIOS
|
||||
configuration.
|
||||
|
||||
#### Syntax
|
||||
|
||||
| `CPUSPD [`*`<speed>`*`[,[`*`<memws>`*`][,[`*`<iows>`*`]]]`
|
||||
@@ -1184,11 +1365,27 @@ If an attempt is made to change the speed of a system
|
||||
that is definitely incapable of doing so, then an error result is
|
||||
returned.
|
||||
|
||||
Z180-based systems will be able to adjust their CPU speed depending
|
||||
on the specific variant of the Z180 chip being used:
|
||||
|
||||
| Z180 Variant | Capability |
|
||||
| --------------------|--------------------|
|
||||
| Z80180 (original) | Half |
|
||||
| Z8S180 Rev. K | Half, Full |
|
||||
| Z8S180 Rev. N | Half, Full, Double |
|
||||
|
||||
SBC and MBC systems may be able to change their CPU
|
||||
speed if the hardware supports it and it is enabled in the HBIOS
|
||||
configuration.
|
||||
|
||||
The `CPUSPD` command makes no attempt to ensure that the new CPU
|
||||
speed will actually work on the current hardware. Setting a CPU
|
||||
speed that exceeds the capabilities of the system will result in
|
||||
unstable operation or a system stall.
|
||||
|
||||
In the case of Z180 CPUs, it is frequently necessary to add
|
||||
memory wait states when increasing the CPU speed.
|
||||
|
||||
Some peripherals are dependent on the CPU speed. For example, the Z180
|
||||
ASCI baud rate and system timer are derived from the CPU speed. The
|
||||
CPUSPD application will attempt to adjust these peripherals for
|
||||
@@ -2096,11 +2293,24 @@ MYM sound files.
|
||||
|
||||
#### Syntax
|
||||
|
||||
`TUNE `*`<filename>`*
|
||||
`TUNE `*`<filename>`* `*`<options>`*`
|
||||
|
||||
*`<filename>`* is the name of a sound file ending in .PT2, .PT3, or
|
||||
.MYM
|
||||
|
||||
| Option | Description |
|
||||
| ----------- | ------------------------------------------------------ |
|
||||
| `-MSX` | Force MSX port addresses A0H/A1H (no PSG detection) |
|
||||
| `-RC` | Force RCBus port addresses D8H/D0H (no PSG detection) |
|
||||
| `--HBIOS` | Utilise HBIOS' sound driver |
|
||||
| `+T1` | Play tune an octave higher |
|
||||
| `+T2` | Play tune two octaves higher |
|
||||
| `-T1` | Play tune an octave lower |
|
||||
| `-T2` | Play tune two octaves lower |
|
||||
|
||||
The +t and -t options apply only to HBIOS mode operation. The `-MSX`,
|
||||
`-RC`, and `--HBIOS` options are mutually exclusive. See Notes below.
|
||||
|
||||
#### Usage
|
||||
|
||||
The TUNE application supports PT and YM sound file formats. It
|
||||
@@ -2118,6 +2328,10 @@ well known port addresses at startup. It will auto-configure itself
|
||||
for the hardware found. If no hardware is detected, it will abort with
|
||||
an error message.
|
||||
|
||||
Some hardware (notably Why-Em-Ulator) cannot be detected due limitations
|
||||
of the emulation. In such cases, you can force the use of the two
|
||||
most common port addresses using the `-msx` or `-rc` options.
|
||||
|
||||
On Z180 systems, I/O wait states are added when writing to the sound
|
||||
chip to avoid exceeding its speed limitations. On Z80 systems, you
|
||||
will need to ensure that the CPU clock speed of your system does not
|
||||
@@ -2128,23 +2342,33 @@ accurately pace the sound file output. If no system timer is
|
||||
available, a delay loop is calculated instead. The delay loop will not
|
||||
be as accurate as the system timer.
|
||||
|
||||
There are two modes of operations. A direct hardware interface for the
|
||||
There are two modes of operation. A direct hardware interface for the
|
||||
AY-3-8910 or YM2149 chips, or a compatibility layer thru HBIOS supporting
|
||||
the SN76489 chip.
|
||||
both the AY-3-8910 and the SN76489 chip.
|
||||
|
||||
By default the application will attempt to interface directly to the sound
|
||||
chip. The optional argument `--hbios` supplied after the filename, will
|
||||
chip. The optional argument `--HBIOS` supplied after the filename, will
|
||||
enable the application to use the HBIOS sound driver.
|
||||
|
||||
The HBIOS mode also support other switch as described below.
|
||||
The following summarizes the different modes of operation for the
|
||||
application:
|
||||
|
||||
| Switch | Description |
|
||||
| ----------- | ------------------------------------------------------ |
|
||||
| `--hbios` | Utilise HBIOS' sound driver |
|
||||
| `+t1` | Play tune an octave higher |
|
||||
| `+t2` | Play tune two octaves higher |
|
||||
| `-t1` | Play tune an octave lower |
|
||||
| `-t2` | Play tune two octaves lower |
|
||||
- If you use `TUNE` with no options, it will use it's original behavior
|
||||
of searching for and detecting a sound chip. `TUNE` will play sound
|
||||
files directly to the PSG hardware. In this mode it does not
|
||||
matter if HBIOS does or does not know about the sound chip.
|
||||
|
||||
- If you use `TUNE` with the `--HBIOS` option, it will not detect a sound chip
|
||||
and will use the RomWBW HBIOS interface. This will only work if HBIOS
|
||||
was configured for the installed sound card and HBIOS detects the sound chip.
|
||||
|
||||
- If you use `TUNE` with `-RC` or `-MSX`, it will play tunes directly to the PSG
|
||||
hardware (not via HBIOS) and will bypass detection. In this mode it does
|
||||
not matter if HBIOS does or does not know about the sound chip.
|
||||
|
||||
Note that the HBIOS API for sound cards is pretty good, but does not implement
|
||||
everything that the sound card can do. For best fidelity, use `TUNE` without the
|
||||
`--HBIOS` option.
|
||||
|
||||
All RomWBW operating system boot disks include a selection of sound
|
||||
files in user area 3.
|
||||
|
||||
@@ -538,8 +538,6 @@ This is a generic ZPM3 adaptation for RomWBW.
|
||||
| `GENCPM.COM` | 15 | DRI CPM3 Utility to Create a memory image of CPM3.SYS |
|
||||
| `GOTO.COM` | 15 | |
|
||||
| `HELPC15.CFG` | 14 | |
|
||||
| `HP-RPN.HLP` | 10 | Help File for HP RPN Calculators ? |
|
||||
| `HP-ZP.HLP` | 10 | Help File for HP ZP Calculators ? |
|
||||
| `IF.COM` | 15 | Extended flow control tester for FCP (v1.6 Type 3) |
|
||||
| `IF.HLP` | 10 | |
|
||||
| `LOADSEG.COM` | 15 | ZCCP Utility to Load RSXes, TCAPs and Named Directory files. |
|
||||
@@ -559,9 +557,6 @@ This is a generic ZPM3 adaptation for RomWBW.
|
||||
| `ZF11.CFG` | 14 | |
|
||||
| `ZFMACRO.HLP` | 10 | |
|
||||
| `ZHELP.COM` | 15 | |
|
||||
| `ZP.COM` | 15 | Patch utility edits files, disk sectors, or memory |
|
||||
| `ZP.HLP` | 10 | Help File for ZP.COM |
|
||||
| `ZP17.CFG` | 14 | |
|
||||
| `ZSHOW.COM` | 15 | displays amount of information about your Z-System |
|
||||
|
||||
### Additional Files
|
||||
@@ -789,6 +784,8 @@ The following files are found in
|
||||
| `COPY.COM` | Z | File copier with ZSDOS date stamping awareness |
|
||||
| `COPY.CFG` | Z | ZCNFG configuration file for COPY application |
|
||||
| `EDITNDR.COM` | Z3 | Edit named directory register in memory. |
|
||||
| `HP-RPN.HLP` | Z3 | Help File for ZP.COM - HP RPN Calculators |
|
||||
| `HP-ZP.HLP` | Z3 | Help File for ZP.COM - HP ZP Calculators |
|
||||
| `KERCPM22.COM` | CPM22 | Kermit communication application |
|
||||
| `KERCPM3.COM` | CPM3 | Kermit communication application |
|
||||
| `LBREXT.COM` | Z | Extract file from .LBR libraries |
|
||||
@@ -814,6 +811,9 @@ The following files are found in
|
||||
| `ZCNFG24.CFG` | Z | Configuration file for ZCNFG.COM |
|
||||
| `ZEX.COM` | Z3 | A memory-based command file processor, like SUBMIT |
|
||||
| `ZEX.CFG` | Z3 | ZCNFG configuration file for ZEX program |
|
||||
| `ZP.COM` | Z3 | Screen-oriented file/disk/memory record patcher (ZAP) |
|
||||
| `ZP.HLP` | Z3 | Help File for ZP.COM |
|
||||
| `ZP17.CFG` | Z3 | Configuration file for ZP.COM |
|
||||
| `ZXD.CFG` | Z | Configuration file for ZXD.COM |
|
||||
| `ZXD.COM` | Z | Extended directory utility w/ date/time stamp support |
|
||||
| `Z3LOC.COM` | Z3 | Display info of the ZCPR3 CCP, BDOS, and BIOS |
|
||||
@@ -1306,7 +1306,9 @@ Also contained on this image in User Area 1 are.
|
||||
| Floppy Disk Image: **fd_z80asm.img**
|
||||
| Hard Disk Image: **hd_z80asm.img**
|
||||
|
||||
Z80ASM is a relocating macro assembler for CP/M. It takes assembly language
|
||||
This disk contains 4 major components
|
||||
|
||||
* Z80ASM is a relocating macro assembler for CP/M. It takes assembly language
|
||||
source statements from a disk file, converts them into their binary equivalent,
|
||||
and stores the output in either a core-image, Intel hex format, or relocatable
|
||||
object file. The mnemonics recognized are those of Zilog/Mostek. The optional
|
||||
@@ -1314,19 +1316,91 @@ listing output may be sent to a disk file, the console and/or the printer, in
|
||||
any combination. Output files may also be generated containing cross-reference
|
||||
information on each symbol used.
|
||||
|
||||
The manual is available in the Doc/Language directory,
|
||||
z80asm (SLR Systems).pdf
|
||||
* SLR180 is a powerful relocating macro assembler for Z80
|
||||
compatible CP/M systems. It takes assembly language source
|
||||
statements from a disk file, converts them into their binary
|
||||
equivalent, and stores the output in either a core-image, Intel
|
||||
hex format, or relocatable object file. The mnemonics recognized
|
||||
are those of Zilog/Hitachi. The optional listing output may be
|
||||
sent to a disk file, the console and/or the printer, in any
|
||||
combination. Output files may also be generated containing
|
||||
cross-reference information on each symbol used.
|
||||
|
||||
* SLRNK is a powerful linking loader for Z80-based CP/M systems.
|
||||
It takes relocatable binary information in either Microsoft or
|
||||
SLR Systems format from a disk file, resolves external and entry
|
||||
point references, and stores the output in memory for execution
|
||||
or outputs it to a disk file.
|
||||
|
||||
* Z80DIS is an entirely new disassembler for Z80 based CP/M sys-
|
||||
tems. Z80DIS is written in TURBO PASCAL. Z80DIS generates Z80
|
||||
mnemonics and prepares an assembly language file with many
|
||||
special features for ease of understanding the intent of the
|
||||
code. The program and documantation are Copyright 1985, by
|
||||
Kenneth Gielow, Palo Alto, CA. All rights are reserved.
|
||||
|
||||
The manual(s) are available in the Doc/Language directory,
|
||||
|
||||
* z80asm (SLR Systems).pdf
|
||||
* SL180 (SLR Systems 1985).pdf
|
||||
* SLRNK (SLR Systems 1984).pdf
|
||||
* Z80DIS User Manual (1985).pdf
|
||||
|
||||
A run through of using the assembler is available at
|
||||
[https://8bitlabs.ca/Posts/2023/05/20/learning-z80-asm]
|
||||
|
||||
And another shorter, but shows linker usage guide
|
||||
[https://pollmyfinger.wordpress.com/2022/01/10/modular-retro-z80-assembly-language-programming-using-slr-systems-z80asm-and-srlnk/]
|
||||
|
||||
The following files are found in
|
||||
|
||||
* /Source/Images/d_z80asm
|
||||
|
||||
| **File** | **Description** |
|
||||
|------------|-------------------------------------|
|
||||
| DUMP.* | Sample Program |
|
||||
| TEST.* | Sample Program |
|
||||
| Z80ASM.COM | Relocating macro assembler for CP/M |
|
||||
| Z80ASM.DOC | Documentation for Z80.COM |
|
||||
User Area 0 - Assembler
|
||||
|
||||
| **File** | **Description** |
|
||||
|-------------|---------------------------------------------|
|
||||
| 180FIG.COM | Configuration utility for SLR180.COM |
|
||||
| 8080.MAC | ? |
|
||||
| CONFIG.COM | Configuration utility for Z80ASM.COM |
|
||||
| DUMP.* | Sample Program |
|
||||
| MAKESYM.COM | Symbol File .SYM file generation |
|
||||
| MAKESYM.DOC | Documentation for MAKESYM.COM |
|
||||
| SLR180.COM | HD64180 Relocating Macro Assembler |
|
||||
| SLR180.DOC | Release Notes for SLR180.COM |
|
||||
| SYNTAX.HLP | Documentation basic usage for all SLR Tools |
|
||||
| SYNTAX.TXT | Documentation basic usage for all SLR Tools |
|
||||
| TEST.* | Sample Program |
|
||||
| Z80ASM.COM | Z80 Relocating Macro Assembler |
|
||||
| Z80ASM.DOC | Release Notes for Z80ASM.COM |
|
||||
|
||||
User Area 1 - Linker
|
||||
|
||||
| **File** | **Description** |
|
||||
|--------------|-----------------------------------------------|
|
||||
| LNKFIG.COM | Configuration utility for SLRNK.COM |
|
||||
| NZLNKFIX.ZEX | ? |
|
||||
| SLRIB.COM | SuperLibrarian, library manager |
|
||||
| SLRNK.COM | SuperLinker, the main linker tool |
|
||||
| SLRNK.DOC | Release Notes for SLRNK.COM |
|
||||
| SLRNKFIX.ZEX | ? |
|
||||
| SYNTAX.HLP | Documentation basic usage for all SLR Tools |
|
||||
| SYNTAX.TXT | Documentation basic usage for all SLR Tools |
|
||||
| SYSSLR.REL | SYSLIB (older) Library compatible with SLR |
|
||||
| VSLR.REL | VLIB (older) Library compatible with SLR |
|
||||
| Z3SLR.REL | Z3LIB (older) Library compatible with SLR |
|
||||
|
||||
User Area 2 - Disassembler
|
||||
|
||||
| **File** | **Description** |
|
||||
|--------------|----------------------------------|
|
||||
| README.22 | Documentation for Z80DIS |
|
||||
| Z80DIS.000 | Overlay File for Z80DIS.COM |
|
||||
| Z80DIS.001 | Overlay File for Z80DIS.COM |
|
||||
| Z80DIS.002 | Overlay File for Z80DIS.COM |
|
||||
| Z80DIS.COM | Z80DIS Disassembler main program |
|
||||
| Z80DIS22.DOC | Main Documentation for Z80DIS |
|
||||
| ZDINSTAL.COM | Instal and Config for Z80DIS.COM |
|
||||
| ZDINSTAL.DTA | Overlay file for ZDINSTAL.COM |
|
||||
| ZDINSTAL.MSG | Overlay file for ZDINSTAL.COM |
|
||||
|
||||
|
||||
@@ -191,7 +191,9 @@ please let me know if I missed you!
|
||||
|
||||
* Mark Pruden has also contributed a great deal of content to the
|
||||
Disk Catalog, User Guide as well as contributing the disk image
|
||||
for the Z3PLUS operating system, and the COPYSL utility.
|
||||
for the Z3PLUS operating system, the COPYSL utility, and also
|
||||
implemented a feature for RomWBW configuration by NVRAM,
|
||||
and added the /B bulk mode of disk assignment to the ASSIGN utility.
|
||||
|
||||
* Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
|
||||
@@ -499,6 +499,97 @@ The startup then proceeds very much like the Application Boot
|
||||
process described above. HBIOS is installed in its operating bank
|
||||
and control is passed to the Boot Loader.
|
||||
|
||||
## Boot Recovery
|
||||
|
||||
To assist users when driver faults or misconfiguration causes a boot
|
||||
failure, RomWBW supports a limited recovery capability. This is
|
||||
achieved by allowing the user to reboot their machine, loading
|
||||
a minimal driver set. Implementation of this feature requires a
|
||||
hardware input "BOOT RECOVERY" button to be available and
|
||||
appropriate software configuration to be completed in the HBIOS.
|
||||
|
||||
When implemented, holding the "BOOT RECOVERY" button in after a
|
||||
reset or power cycle will cause the normal driver load process to
|
||||
be skipped in preference to a minimal set of drivers being loaded.
|
||||
|
||||
Typically this would be: Serial communication, RAM disk and parallel
|
||||
port IDE interface drivers.
|
||||
|
||||
Platforms supporting this option currently are the MBC, Duodyne and
|
||||
latter version of the SBC.
|
||||
|
||||
# Configuration
|
||||
|
||||
## RomWBW NVRAM Configuration
|
||||
|
||||
On systems with RTC devices (that have Non-Volatile RAM), RomWBW supports storing
|
||||
some limited configuration option options inside this RAM.
|
||||
|
||||
Several configuration options are currently supported; these are known as Switches.
|
||||
The following switch ID's are defined, and described in sections below.
|
||||
|
||||
| Switch Number | Name | Description |
|
||||
|---------------|--------------|-----------------------------------------------|
|
||||
| 0x00 | -reserved- | Reserved |
|
||||
| 0x01 | Boot Options | ROM or Disk Boot Settings |
|
||||
| 0x02 | -n/a- | -n/a- high order byte of previous switch |
|
||||
| 0x03 | Auto Boot | Automatically boot enabled without user input |
|
||||
| 0x04 - 0xFE | -future- | Future general usage |
|
||||
| 0xFF | Status Reset | Get Status or Reset Switches to Default |
|
||||
|
||||
RomWBW uses bytes located at the start of RTC NVRAM, and includes a Parity check of
|
||||
the bytes in NVRAM to check for authenticity before using the configuration.
|
||||
|
||||
| NVRAM Byte | Name | Description |
|
||||
|-------------|--------------|-----------------------------------|
|
||||
| 0x00 | Header Byte | Header Signature Byte 'W' |
|
||||
| 0x01 - 0x03 | Switch Data | Actual Switch Data |
|
||||
| 0x04 | Parity Check | Checksum byte to check integrity |
|
||||
|
||||
The above data is copied into the HBIOS Configuration Block (HCB) at startup at
|
||||
the location starting at CB_SWITCHES.
|
||||
|
||||
### Boot Options (NVSW_BOOTOPTS)
|
||||
|
||||
16 bit Switch defining the ROM application or Disk device to boot if
|
||||
automatic booting is enabled.
|
||||
|
||||
| Bit 15 | Bits 14-8 | Bits 7-0 |
|
||||
|-------------|-------------------|--------------------|
|
||||
| 1 = ROM App | -undefined- | App to Boot (Char) |
|
||||
| 0 = Disk | Disk Unit (0-127) | Disk Slice (0-255) |
|
||||
|
||||
### Auto Boot (NVSW_AUTOBOOT)
|
||||
|
||||
8 bit Switch defining if the system should auto boot at startup.
|
||||
|
||||
| Bits 7-6 | Bit 5 | Bit 4 | Bits 3-0 |
|
||||
|----------|------------------------|----------|--------------------------------------|
|
||||
| -unused- | 1 = Auto Boot Enabled | -unused- | 0 = Immediate Boot with no delay |
|
||||
| -unused- | 1 = Auto Boot Enabled | -unused- | (1-15) Timeout (seconds) before boot |
|
||||
| -unused- | 0 = Auto Boot Disabled | -unused- | -undefined- |
|
||||
|
||||
### Status Reset (0xFF)
|
||||
|
||||
The Status Reset switch is not a general purpose switch, it is a control mechanism
|
||||
to allow the global status of all switches to be determined. The meaning of the switch
|
||||
is different for Read (Get Status) and Write (Reset NVRAM)
|
||||
|
||||
#### GET (Get Status)
|
||||
|
||||
The read Get Status of switches. This returns very specific values from the function call.
|
||||
|
||||
| Status | A Register | Z / NZ Flag |
|
||||
|----------------------------------------------|------------|--------------|
|
||||
| NVRAM does not exist | A=0 | NZ flag set |
|
||||
| NVRAM exists, but has not been initialised | A=1 | NZ flag set |
|
||||
| NVRAM exists, and has been fully initialised | A='W' | Z flag set |
|
||||
|
||||
#### SET (Reset NVRAM)
|
||||
|
||||
Reset NVRAM to default values. This will wipe any existing data and set default
|
||||
values into NVRAM.
|
||||
|
||||
# Driver Model
|
||||
|
||||
The framework code for bank switching also allows hardware drivers to be
|
||||
@@ -684,18 +775,18 @@ Character devices can usually be configured with line characteristics
|
||||
such as speed, framing, etc. A word value (16 bit) is used to describe
|
||||
the line characteristics as indicated below:
|
||||
|
||||
| **Bits** | **Characteristic** |
|
||||
|---------:|----------------------------------------|
|
||||
| 15-14 | Reserved (set to 0) |
|
||||
| 13 | RTS |
|
||||
| 12-8 | Baud Rate (see below) |
|
||||
| 7 | DTR |
|
||||
| 6 | XON/XOFF Flow Control |
|
||||
| 5 | Stick Parity (set for true) |
|
||||
| 4 | Even Parity (set for true) |
|
||||
| 3 | Parity Enable (set for true) |
|
||||
| 2 | Stop Bits (set for true) |
|
||||
| 1-0 | Data Bits (5-8 encoded as 0-3) |
|
||||
| **Bits** | **Characteristic** |
|
||||
|---------:|------------------------------------------------------------|
|
||||
| 15-14 | Reserved (set to 0) |
|
||||
| 13 | RTS |
|
||||
| 12-8 | Baud Rate (see below) |
|
||||
| 7 | DTR |
|
||||
| 6 | XON/XOFF Flow Control |
|
||||
| 5 | 1 = Stick Parity(Mark/Space), 0 = Normal Parity (odd/even) |
|
||||
| 4 | 1 = Even/Space, 0 = Odd/Mark |
|
||||
| 3 | Parity Enable (set for true) |
|
||||
| 2 | Stop Bits (set for true) |
|
||||
| 1-0 | Data Bits (5-8 encoded as 0-3) |
|
||||
|
||||
The 5-bit Baud Rate value (V) is encoded as V = 75 * 2^X * 3^Y. The
|
||||
bits are defined as YXXXX.
|
||||
@@ -1071,7 +1162,7 @@ The non-Floppy specific bits are:
|
||||
|---------:|--------------------------------------------------|
|
||||
| 4 | LBA Capable |
|
||||
| 3-0 | Media Type: 0=Hard Disk, 1=CF, 2=SD, 3=USB, |
|
||||
| | 4=ROM, 5=RAM, 6=RAMF, 7=FLASH, 8=CD-ROM, |
|
||||
| | 4=ROM, 5=RAM, 6=FLASH, 7=RAMF, 8=CD-ROM, |
|
||||
| | 9=Cartridge |
|
||||
|
||||
Device Type (D) indicates the specific hardware driver that handles the
|
||||
@@ -2292,6 +2383,11 @@ Cold Start (0x02):
|
||||
: Perform a system cold start (like a power on). All devices are
|
||||
reinitialized.
|
||||
|
||||
User Restart (0x03):
|
||||
|
||||
: Perform a video terminal reset. Terminal emulation and visual display
|
||||
systems are reset.
|
||||
|
||||
The Status (A) is a standard HBIOS result code.
|
||||
|
||||
### Function 0xF1 -- System Version (SYSVER)
|
||||
@@ -2611,6 +2707,27 @@ the caller can use interbank calls directly to the function in the
|
||||
driver which bypasses the overhead of the normal function invocation
|
||||
lookup.
|
||||
|
||||
#### SYSGET Subfunction 0xC0 -- Get Switches (SWITCH)
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
|----------------------|---------------------|
|
||||
| B: 0xF8 | A: Status |
|
||||
| C: 0xC0 | HL: Switch Value |
|
||||
| D: Switch Key | |
|
||||
|
||||
This function will return the current value (HL) of the switch (D) from NVRAM.
|
||||
|
||||
Switches may be returned as a 16 bit (HL) or 8 bit (L) value. It is up to the caller
|
||||
to process the returned value correctly. Note for Switch 0xFF (status) the returned value
|
||||
is primarily in the Status (A) register.
|
||||
|
||||
Errors are signalled in the return by setting the NZ flag. When set the
|
||||
(A) register may contain an error code, but this code does not conform to RomWBW standard
|
||||
|
||||
Success is indicated by setting the Z flag
|
||||
|
||||
For a description of switches please see [RomWBW NVRAM Configuration]
|
||||
|
||||
#### SYSGET Subfunction 0xD0 -- Get Timer Tick Count (TIMER)
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
@@ -2783,6 +2900,27 @@ sub-function value. The following lists the subfunctions available along
|
||||
with the registers/information utilized. The Status (A) is a standard
|
||||
HBIOS result code.
|
||||
|
||||
#### SYSSET Subfunction 0xC0 -- Set Switches (SWITCH)
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
|----------------------|---------------------|
|
||||
| B: 0xF9 | A: Status |
|
||||
| C: 0xC0 | |
|
||||
| D: Switch Key | |
|
||||
| HL: Switch Value | |
|
||||
|
||||
This function will set the value (HL) into the switch (D) and store it into NVRAM.
|
||||
|
||||
Switches may be passed as a 16 bit (HL) or 8 bit (L) value. It is up to the caller
|
||||
to send the value correctly. Note for Switch 0xFF (reset) the value (HL) is ignored
|
||||
|
||||
Errors are signalled in the return by setting the NZ flag. When set the
|
||||
(A) register may contain an error code, but this code does not conform to RomWBW standard
|
||||
|
||||
Success is indicated by setting the Z flag
|
||||
|
||||
For a description of switches please see [RomWBW NVRAM Configuration]
|
||||
|
||||
#### SYSSET Subfunction 0xD0 -- Set Timer Tick Count (TIMER)
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
@@ -3202,28 +3340,62 @@ placeholder
|
||||
|
||||
### Diagnostic LEDs
|
||||
|
||||
Progress through the boot and initialization process can be difficult to monitor
|
||||
due to the lack of console or video output. Access to these output devices does
|
||||
not become available until late the in the boot process. If these output devices
|
||||
are also involved with the issue trying to be resolved then trouble shooting is
|
||||
even more difficult.
|
||||
Progress through the boot and initialization process can be difficult to
|
||||
monitor due to the lack of console or video output. Access to these output
|
||||
devices does not become available until late the in the boot process. If
|
||||
these output devices are also involved with the issue trying to be resolved
|
||||
then trouble shooting is even more difficult.
|
||||
|
||||
ROMWBW can be configured to display boot progress with the assistance of additional
|
||||
hardware. This take the form of an LED breakout debugging board connected to an
|
||||
8-bit output port. As the boot code executes, the LED output display is updated.
|
||||
ROMWBW can be configured to display boot progress with the assistance of
|
||||
additional hardware. This can take the form of a front panel LED display or
|
||||
LED breakout debugging board connected to an 8-bit output port. Or it can
|
||||
utilize existing platform status LEDS.
|
||||
|
||||
To use a LED breakout board, it must be connected the computers data, reset and port
|
||||
select lines.
|
||||
As the boot code executes, the LED output display is updated to indicate the execution progress.
|
||||
|
||||
To enable the DIAG option the following settings must be made in the systems .ini
|
||||
configuration file, where 0xnn is the port address.
|
||||
Platforms that have these capabilities built in have them enabled by default.
|
||||
|
||||
DIAGENABLE .SET TRUE
|
||||
DIAGPORT .SET 0xnn
|
||||
#### Front Panel display
|
||||
|
||||
The following table shows the ROMWBW process steps in relation to the LED display.
|
||||
A LED front panel or breakout board needs to be connected the computers data,
|
||||
reset and port select lines.
|
||||
|
||||
| **LED** | **RomWBW Processes** |
|
||||
To enable this option the following settings can be made in the platforms custom
|
||||
configuration file.
|
||||
|
||||
```
|
||||
FPLED_ENABLE .SET TRUE ; ENABLE FRONT PANEL
|
||||
```
|
||||
|
||||
Custom hardware can be configured with :
|
||||
|
||||
```
|
||||
FPLED_IO .SET $nn ; USE PORT ADDRESS nn
|
||||
FPLED_INV .SET FALSE ; INVERTED LED BITS
|
||||
```
|
||||
|
||||
#### Platform Status LEDS
|
||||
|
||||
These status LEDs use preexisting status LEDs on each platform.
|
||||
|
||||
Enable using:
|
||||
|
||||
```
|
||||
LEDENABLE .SET TRUE ; ENABLES STATUS LED
|
||||
```
|
||||
|
||||
Customize using:
|
||||
|
||||
```
|
||||
LEDMODE .SET LEDMODE_STD ; LEDMODE_[STD|SC|RTC|NABU]
|
||||
LEDPORT .SET $nn ; STATUS LED PORT ADDRESS
|
||||
```
|
||||
|
||||
The following table shows the ROMWBW process steps in relation to the panel
|
||||
display.
|
||||
|
||||
|
||||
| **PANEL** | **RomWBW Processes** |
|
||||
|------------|------------------------------------------------|
|
||||
| `........` | Initial boot |
|
||||
| | Jump to start address |
|
||||
|
||||
@@ -252,6 +252,8 @@ is discussed in [Customizing RomWBW].
|
||||
| [Z80 ZRC CPU Module]^7^ | RCBus | RCZ80_zrc_std.rom | 115200 |
|
||||
| [Z80 ZRC CPU Module]^7^ ROMless | RCBus | RCZ80_zrc_ram_std.rom | 115200 |
|
||||
| [Z80 ZRC512 CPU Module]^7^ | RCBus | RCZ80_zrc512_std.rom | 115200 |
|
||||
| [Z80 EaZy80-512 CPU Module]^7^ | RCBus | RCZ80_ez512_std.rom | 115200 |
|
||||
| [Z80 K80W CPU Module]^7^ | RCBus | RCZ80_k8w_std.rom | 115200 |
|
||||
| [Z180 Z1RCC CPU Module]^7^ | RCBus | RCZ180_z1rcc_std.rom | 115200 |
|
||||
| [Z280 ZZRCC CPU Module]^7^ | RCBus | RCZ280_zzrcc_std.rom | 115200 |
|
||||
| [Z280 ZZRCC CPU Module]^7^ ROMless | RCBus | RCZ280_zzrcc_ram_std.rom | 115200 |
|
||||
@@ -573,14 +575,15 @@ For example, typing `H<enter>` will display a short command summary:
|
||||
Boot [H=Help]: h
|
||||
|
||||
L - List ROM Applications
|
||||
D - Disk Device Inventory
|
||||
D - Device Inventory
|
||||
R - Reboot System
|
||||
I <u> [<c>] - Set Console Interface/Baud code
|
||||
W - RomWBW Configure
|
||||
I <u> [<c>] - Set Console Interface/Baud Rate
|
||||
V [<n>] - View/Set HBIOS Diagnostic Verbosity
|
||||
<u>[.<s>] - Boot Disk Unit/Slice
|
||||
```
|
||||
|
||||
Likewise the `L` command will display the list of ROM Applications that
|
||||
Likewise the `L` command (List ROM Applications) will display the list of ROM Applications that
|
||||
you can launch right from the Boot Loader:
|
||||
|
||||
```
|
||||
@@ -600,6 +603,9 @@ ROM Applications:
|
||||
U: User App
|
||||
```
|
||||
|
||||
A more complete description of these options is found below in
|
||||
[System Management].
|
||||
|
||||
## Starting Applications from ROM
|
||||
|
||||
To start a ROM application you just enter the corresponding letter at
|
||||
@@ -818,13 +824,12 @@ Here is an overview for each operating system:
|
||||
not cover the use of SUBMIT files -- please refer to the CP/M 2.2
|
||||
documentation.
|
||||
|
||||
- **NZCOM** - Will run the command STARTZCM at startup. This is
|
||||
normally an alias file. You use SALIAS to edit such files. Please see
|
||||
- **NZCOM** - Will run the command STARTZCM at startup. This is
|
||||
normally an alias file, which you can edit using SALIAS. Please see
|
||||
Section 3.1 Creating an Alias of the NZCOM Users Manual included in the
|
||||
Doc/CPM folder of the RomWBW distribution. Note that the NZCOM
|
||||
distribution includes a PROFILE.SUB file. NZCOM itself is launched from
|
||||
ZSDOS. The included PROFILE.SUB accomplishes this. Do not modify this
|
||||
file unless you fully understand the NZCOM boot process.
|
||||
Doc/CPM folder of the RomWBW distribution. Do not modify this
|
||||
file unless you fully understand the NZCOM boot process. Note that
|
||||
NZCOM itself is launched from ZSDOS via the included PROFILE.SUB file.
|
||||
|
||||
- **CP/M 3** - Will run PROFILE.SUB as a SUBMIT file if it exists in A:
|
||||
at startup. This mechanism is built into the CP/M 3 operating system.
|
||||
@@ -832,6 +837,13 @@ Here is an overview for each operating system:
|
||||
Executing the SUBMIT Command of the CPM3 Users Guide included in the
|
||||
Doc/CPM folder of the RomWBW distribution.
|
||||
|
||||
- **Z3PLUS** - Will run the command STARTZ3P at startup. This is
|
||||
normally an alias file, which you can edit using SALIAS. Please see
|
||||
Section 3.1 Creating an Alias of the Z3PLUS Users Manual included in the
|
||||
Doc/CPM folder of the RomWBW distribution. Do not modify this
|
||||
file unless you fully understand the Z3PLUS boot process. Note that
|
||||
Z3PLUS itself is launched from CP/M 3 via the included PROFILE.SUB file.
|
||||
|
||||
- **ZPM3** - Will run the command STARTZPM at startup. This is normally
|
||||
an alias file. You use SALIAS to edit such files. ZPM3 has no real
|
||||
documentation. The NZCOM documentation of STARTZCM is generally correct
|
||||
@@ -897,7 +909,56 @@ Boot [H=Help]: r
|
||||
Restarting System...
|
||||
```
|
||||
|
||||
### Changing Console and Console speed
|
||||
### Setting NVRAM Options
|
||||
|
||||
On systems with RTC devices (that have Non-Volatile RAM), RomWBW supports storing
|
||||
some limited configuration option options inside this NVRAM.
|
||||
|
||||
Several configuration options are currently supported, these are known as Switches
|
||||
|
||||
* Specify Automatic boot at startup, after an optional delay (AB)
|
||||
* Define the Disk or ROM App to be booted at for automatic boot (BO)
|
||||
|
||||
RomWBW uses bytes located at the start of RTC NVRAM, and includes a checksum of
|
||||
the bytes in NVRAM to check for integrity before using the configuration.
|
||||
|
||||
Initially NVRAM has to be reset (with default values), before it can be used.
|
||||
As well as setting defaults, it also writes the correct checksum, and allows the
|
||||
NVRAM to be accessed and to store the RomWBW config.
|
||||
|
||||
This is an explicit step that must be done, as any existing data stored is overwritten.
|
||||
If you are using NVRAM for other purposes, then you can continue to do so
|
||||
so long as you do NOT perform this Reset step.
|
||||
|
||||
NVRAM may also need to be reset in these circumstances:
|
||||
|
||||
* When there has been a loss of power to the NVRAM.
|
||||
* When upgrading to a new RomWBW version, or a RomWBW version that has new switches.
|
||||
* If the NVRAM has been overwritten by another application.
|
||||
|
||||
If you want to continue to use NVRAM in your applications you may want to consider storing
|
||||
your data above the RomWBW Switch data.
|
||||
|
||||
To configure these options an inbuilt ROM application is provided which can be accessed
|
||||
by the command "`W`" from the RomWBW boot menu.
|
||||
|
||||
This application is also built as a CP/M utility, but is not included on an disk image,
|
||||
it is found in the `Binary/Applications` folder of the RomWBW distribution.
|
||||
|
||||
For further guidance on using this application please see the section
|
||||
"RomWBW System Configuration" in the $doc_apps$ document.
|
||||
|
||||
If your system has both a [Front Panel] as well as NVRAM, be aware that
|
||||
the Front Panel switches take precedence over the NVRAM configuration
|
||||
settings.
|
||||
|
||||
Note that the WizNet class of Network devices also contain NVRAM which is
|
||||
entirely separate from the RomWBW configuration NVRAM described here. A
|
||||
separate utility is used to set the WizNet NVRAM (see [CP/NET Client Setup]).
|
||||
|
||||
[RomWBW Applications]($doc_root$/RomWBW Applications.pdf)
|
||||
|
||||
### Changing Console and Console Speed
|
||||
|
||||
Your system can support a number of devices for the console. They may
|
||||
be VDU type devices or serial devices. If you want to change which
|
||||
@@ -2288,12 +2349,21 @@ survive re-imaging, you **must** follow these rules:
|
||||
|
||||
This section covers techniques to copy partial images onto pre-existing media,
|
||||
in effect performing a selective slice copy. These techniques currently **only** apply to
|
||||
hd1k formatted media, which has a convienient 1MB size metric.
|
||||
However adapting to hd512 is possible.
|
||||
hd1k formatted media, which has a convenient 1MB size metric.
|
||||
However adapting to hd512 is possible, but left to the user.
|
||||
|
||||
On Linux/MacOS the `dd` command can be used to write data in a controlled manner.
|
||||
The `dd` command supports options to define precisly souce
|
||||
and destination offsets and sizes to copy.
|
||||
Although Windows does not have a native `dd` command, there are multiple
|
||||
options for installing it including [MSYS2](https://www.msys2.org/),
|
||||
[CygWin](https://www.cygwin.com/),
|
||||
and [dd for Windows](http://www.chrysocome.net/dd).
|
||||
|
||||
**WARNING**: The `dd` command is a low-level utility that writes
|
||||
directly to raw disk sectors with almost no safety checks. It is very
|
||||
easy to corrupt a disk if this tool is used incorrectly.
|
||||
|
||||
The `dd` command supports options to define precisely source
|
||||
and destination offsets and sizes to copy.
|
||||
From the documentation of `dd` the following options are important.
|
||||
|
||||
```
|
||||
@@ -2365,6 +2435,27 @@ and 1 is the size of the partition table im megabytes.
|
||||
Thus we are skipping 6 slices (in the combo image)
|
||||
and writing to the 7th slice.
|
||||
|
||||
#### Example 3 : Copy image using partition
|
||||
|
||||
In the previous examples, the hard disk is addressed as a raw disk
|
||||
device and we took steps to calculate the assumed start of the RomWBW
|
||||
partition. However, as long as the hd1k format is in use, it is
|
||||
also possible to just point `dd` directly to the partition itself.
|
||||
|
||||
To do this, you must first determine the name that your operating
|
||||
system is using for the desired partition. Frequently, partitions
|
||||
are named by simply adding a number after the name of the hard disk
|
||||
device. For example, if the hard disk is /dev/sdg, the first
|
||||
partition is frequently /dev/sdg1 or /dev/sdgp1.
|
||||
|
||||
Taking advantage of this, it is safer and easier to calculate the
|
||||
offset of a slice within the partition. It is simply the slice
|
||||
number \* 8MB. Example 2 above, could now be performed as:
|
||||
|
||||
```
|
||||
Binary % sudo dd if=hd1k_games.img of=/dev/sdg1 seek=48 bs=1M
|
||||
```
|
||||
|
||||
# Operating Systems
|
||||
|
||||
One of the primary goals of RomWBW is to expose a set of generic
|
||||
@@ -3798,11 +3889,23 @@ local drives.
|
||||
|
||||
## Network Boot
|
||||
|
||||
It is possible to boot your MT011 equipped RomWBW system directly from a
|
||||
network server. This means that the operating system will be loaded
|
||||
It is possible to boot your RomWBW system directly from a
|
||||
network server if it has the required hardware. This means that the operating system will be loaded
|
||||
directly from the network server and all of your drive letters will be
|
||||
provided by the network server. Duodyne is not yet supported in this
|
||||
mode of operation.
|
||||
provided by the network server. The supported hardware is:
|
||||
|
||||
- RCBus System w/ MT011 including:
|
||||
- Featherwing WizNet W5500
|
||||
- SPI FRAM on secondary SPI interface (CS2)
|
||||
- Doudyne Disk I/O Board including:
|
||||
- WIZ850io Module
|
||||
- 25LCxxx Serial SPI EEPROM
|
||||
|
||||
Unlike the CP/NET Client, the presence of dedicated non-volatile
|
||||
storage is required to hold the network configuration. This will be
|
||||
FRAM (for MT011) or Serial SPI EEPROM (Duodyne). The NVRAM is used to store your WizNet
|
||||
configuration values so they do not need to be re-entered every time you
|
||||
power-cycle your system.
|
||||
|
||||
It is important to understand that the operating system that is loaded
|
||||
in this case is **not** a RomWBW enhanced operating system. Some
|
||||
@@ -3810,11 +3913,6 @@ commands (such as the `ASSIGN` command) will not be possible. Also,
|
||||
you will only have access to drives provided by the network server --
|
||||
no local disk drives will be available.
|
||||
|
||||
In order to do this, your MT011 Module **must** be enhanced with an
|
||||
NVRAM SPI FRAM mini-board. The NVRAM is used to store your WizNet
|
||||
configuration values so they do not need to be re-entered every time you
|
||||
power-cycle your system.
|
||||
|
||||
Using the same values from the previous example, you would
|
||||
issue the `WIZCFG` commands:
|
||||
|
||||
@@ -3835,25 +3933,25 @@ contains some files that will be sent to your RomWBW system when the
|
||||
Network boot is performed. By default the directory will be
|
||||
`~/NetBoot`. In this directory you need to place the following files:
|
||||
|
||||
* `cpnos-wbw.sys`
|
||||
* `cpnos.sys`
|
||||
* `ndos.spr`
|
||||
* `snios.spr`
|
||||
|
||||
All of these files are found in the Binary/CPNET/NetBoot directory of
|
||||
the RomWBW distribution.
|
||||
|
||||
You also need to make sure CpnetSocketServer is configured with an 'A'
|
||||
drive and that drive must contain (at an absolute minimum) the following
|
||||
file:
|
||||
|
||||
* `ccp.spr`
|
||||
|
||||
which is also found in the Binary/CPNET/NetBoot directory of RomWBW
|
||||
All of these files are found in the Binary/CPNET/NetBoot directory of
|
||||
the RomWBW distribution. You will find 2 sub-directories named MT and
|
||||
DUO. Get the files from the sub-directory corresponding to your
|
||||
specific hardware.
|
||||
|
||||
Finally, you need to add the following line to your CpnetSocketServer
|
||||
configuration file:
|
||||
|
||||
`netboot_default = cpnos-wbw.sys`
|
||||
`netboot_default = cpnos.sys`
|
||||
|
||||
To perform the network boot, you start your RomWBW system normally which
|
||||
should leave you at the Boot Loader prompt. The 'N' command will
|
||||
@@ -4237,6 +4335,11 @@ ALIAS facility.
|
||||
p-System has its own startup command processing mechanism that is
|
||||
covered in the p-System documentation.
|
||||
|
||||
## NVRAM Configuration
|
||||
|
||||
See section [Setting NVRAM Options] for information about how to
|
||||
apply NVRAM configuration.
|
||||
|
||||
## ROM Customization
|
||||
|
||||
The pre-built ROM images are configured for the basic capabilities of
|
||||
@@ -4269,6 +4372,14 @@ Note that the ROM customization process does not apply to UNA. All
|
||||
UNA customization is performed within the ROM setup script that is
|
||||
built into the ROM.
|
||||
|
||||
## ROM User Application
|
||||
|
||||
The User App is provided as a way to access a custom written
|
||||
ROM application. In the pre-built ROMs, selecting User App will just
|
||||
return to the Boot Loader menu. If you are interested in creating a
|
||||
custom application to run instead, review the "usrrom.asm" file in the
|
||||
Source/HBIOS folder of the distribution.
|
||||
|
||||
# UNA Hardware BIOS
|
||||
|
||||
John Coffman has produced a new generation of hardware BIOS called
|
||||
@@ -4678,7 +4789,9 @@ please let me know if I missed you!
|
||||
|
||||
* Mark Pruden has also contributed a great deal of content to the
|
||||
Disk Catalog, User Guide as well as contributing the disk image
|
||||
for the Z3PLUS operating system, and the COPYSL utility.
|
||||
for the Z3PLUS operating system, the COPYSL utility, and also
|
||||
implemented a feature for RomWBW configuration by NVRAM,
|
||||
and added the /B bulk mode of disk assignment to the ASSIGN utility.
|
||||
|
||||
* Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
@@ -6008,6 +6121,99 @@ the RomWBW HBIOS configuration.
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
### Z80 EaZy80-512 CPU Module
|
||||
|
||||
#### ROM Image File: RCZ80_ez512_std.rom
|
||||
|
||||
| | |
|
||||
|-------------------|---------------|
|
||||
| Default CPU Speed | 22.000 MHz |
|
||||
| Interrupts | Mode 2 |
|
||||
| System Timer | CTC |
|
||||
| Serial Default | 115200 Baud |
|
||||
| Memory Manager | EZ512 |
|
||||
| ROM Size | 0 KB |
|
||||
| RAM Size | 512 KB |
|
||||
|
||||
##### Supported Hardware (see [Appendix B - Device Summary]):
|
||||
|
||||
- FP: LEDIO=0, SWIO=0
|
||||
- LCD: IO=218, SIZE=20X4
|
||||
- DSRTC: MODE=STD, IO=192
|
||||
- UART: MODE=RC, IO=160
|
||||
- UART: MODE=RC, IO=168
|
||||
- SIO MODE=STD, IO=8, CHANNEL A, INTERRUPTS ENABLED
|
||||
- SIO MODE=STD, IO=8, CHANNEL B, INTERRUPTS ENABLED
|
||||
- ACIA: IO=128
|
||||
- VRC: IO=0, KBD MODE=VRC, KBD IO=244
|
||||
- KBD: ENABLED
|
||||
- CH: IO=62
|
||||
- CH: IO=60
|
||||
- CHUSB: IO=62
|
||||
- CHUSB: IO=60
|
||||
- MD: TYPE=RAM
|
||||
- FD: MODE=RCWDC, IO=80, DRIVE 0, TYPE=3.5" HD
|
||||
- FD: MODE=RCWDC, IO=80, DRIVE 1, TYPE=3.5" HD
|
||||
- IDE: MODE=RC, IO=16, MASTER
|
||||
- IDE: MODE=RC, IO=16, SLAVE
|
||||
- PPIDE: IO=32, MASTER
|
||||
- PPIDE: IO=32, SLAVE
|
||||
- SD: MODE=EZ512, IO=2, UNITS=1
|
||||
- KIO: IO=0
|
||||
- CTC: IO=4, TIMER MODE=TIMER/16, DIVISOR=4608, HI=256, LO=18, INTERRUPTS ENABLED
|
||||
|
||||
##### Notes:
|
||||
|
||||
- HBIOS is loaded from disk at boot by ROM monitor
|
||||
- CPU speed will be dynamically measured at startup if DSRTC is present
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
#### ROM Image File: RCZ80_k8w_std.rom
|
||||
|
||||
| | |
|
||||
|-------------------|---------------|
|
||||
| Default CPU Speed | 22.000 MHz |
|
||||
| Interrupts | Mode 2 |
|
||||
| System Timer | CTC |
|
||||
| Serial Default | 115200 Baud |
|
||||
| Memory Manager | Z2 |
|
||||
| ROM Size | 512 KB |
|
||||
| RAM Size | 512 KB |
|
||||
|
||||
##### Supported Hardware (see [Appendix B - Device Summary]):
|
||||
|
||||
FP: LEDIO=0, SWIO=0
|
||||
LCD: IO=218, SIZE=20X4
|
||||
DSRTC: MODE=K80W, IO=192
|
||||
UART: IO=128
|
||||
UART: IO=136
|
||||
UART: IO=160
|
||||
UART: IO=168
|
||||
SIO MODE=STD, IO=136, CHANNEL A, INTERRUPTS ENABLED
|
||||
SIO MODE=STD, IO=136, CHANNEL B, INTERRUPTS ENABLED
|
||||
CH: IO=62
|
||||
CH: IO=60
|
||||
CHUSB: IO=62
|
||||
CHUSB: IO=60
|
||||
MD: TYPE=RAM
|
||||
MD: TYPE=ROM
|
||||
FD: MODE=RCWDC, IO=80, DRIVE 0, TYPE=3.5" HD
|
||||
FD: MODE=RCWDC, IO=80, DRIVE 1, TYPE=3.5" HD
|
||||
IDE: MODE=RC, IO=16, MASTER
|
||||
IDE: MODE=RC, IO=16, SLAVE
|
||||
PPIDE: IO=32, MASTER
|
||||
PPIDE: IO=32, SLAVE
|
||||
SD: MODE=EZ512, IO=130, UNITS=1
|
||||
KIO: IO=128
|
||||
CTC: IO=132, TIMER MODE=TIMER/16, DIVISOR=9216, HI=256, LO=36, INTERRUPTS ENABLED
|
||||
|
||||
##### Notes:
|
||||
|
||||
- CPU speed will be dynamically measured at startup if DSRTC is present
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
### Z180 Z1RCC CPU Module
|
||||
|
||||
#### ROM Image File: RCZ180_z1rcc_std.rom
|
||||
|
||||
16
Source/EZ512/Bank Layout.txt
Normal file
16
Source/EZ512/Bank Layout.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
Eazy80_512 has a 64K ROM contains a monitor. The monitor command "b 4" loads RomWBW program
|
||||
starting from SD sector 288 into first 4 banks of memory. RAM disk is not loaded, so drive A is
|
||||
blank.
|
||||
|
||||
Bank Contents Description
|
||||
-------- -------- -----------
|
||||
0x0 BIOS HBIOS Bank (operating)
|
||||
0x1 IMG0 ROM Loader, Monitor, ROM OSes
|
||||
0x2 IMG1 ROM Applications
|
||||
0x3 IMG2 Reserved
|
||||
0x4-0xB RAMD RAM Disk Banks <- not loaded, blank
|
||||
0xC BUF OS Buffers (CP/M3)
|
||||
0xD AUX Aux Bank (CP/M 3, BPBIOS, etc.)
|
||||
0xE USR User Bank (CP/M TPA, etc.)
|
||||
0xF COM Common Bank, Upper 32KB
|
||||
26
Source/EZ512/Build.cmd
Normal file
26
Source/EZ512/Build.cmd
Normal file
@@ -0,0 +1,26 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../Tools
|
||||
|
||||
set PATH=%TOOLS%\srecord;%PATH%
|
||||
|
||||
for %%f in (..\..\Binary\RCZ80_ez512_*.rom) do call :build %%~nf
|
||||
|
||||
goto :eof
|
||||
|
||||
:build
|
||||
echo.
|
||||
echo Creating %1 disk image...
|
||||
echo.
|
||||
|
||||
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x0 0x200 ez512_cfldr.bin -binary -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x1B8 0x200 ez512_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 ez512_mon.bin -binary -offset 0x1F000 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 ..\..\Binary\%1.rom -binary -offset 0x24000 -o temp.dat -binary
|
||||
move temp.dat ..\..\Binary\%1_hd1k_prefix.dat
|
||||
|
||||
copy /b ..\..\Binary\%1_hd1k_prefix.dat + ..\..\Binary\hd1k_cpm22.img + ..\..\Binary\hd1k_zsdos.img + ..\..\Binary\hd1k_nzcom.img + ..\..\Binary\hd1k_cpm3.img + ..\..\Binary\hd1k_zpm3.img + ..\..\Binary\hd1k_ws4.img ..\..\Binary\%1_hd1k_combo.img || exit /b
|
||||
|
||||
goto :eof
|
||||
3
Source/EZ512/Clean.cmd
Normal file
3
Source/EZ512/Clean.cmd
Normal file
@@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
22
Source/EZ512/EZ512 Disk Layout.txt
Normal file
22
Source/EZ512/EZ512 Disk Layout.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Eazy80_512 Disk Prefix Layout
|
||||
=============================
|
||||
|
||||
---- Bytes ---- --- Sectors ---
|
||||
Start Length Start Length Description
|
||||
------- ------- ------- ------- ---------------------------
|
||||
0x00000 0x001BE 0 1 CF Boot Loader
|
||||
0x001B8 0x00048 RomWBW Partition Table
|
||||
0x00200 0x1EE00 1 247 Unused
|
||||
0x1F000 0x01000 248 8 EZ512 Monitor v0.3
|
||||
0x20000 0x04000 256 32 Unused
|
||||
0x24000 0x80000 288 1024 RomWBW
|
||||
0xA4000 0x5C000 1312 736 Unused
|
||||
0x100000 2048 Start of slices (partition 0x1E)
|
||||
|
||||
Notes
|
||||
-----
|
||||
- Eazy80_512 monitor reads the first 128KB of RomWBW stored started from sector 288 into banks 0-3
|
||||
- Afterward Z80 jumps to location 0x0 to execute RomWBW
|
||||
|
||||
|
||||
|
||||
27
Source/EZ512/Makefile
Normal file
27
Source/EZ512/Makefile
Normal file
@@ -0,0 +1,27 @@
|
||||
DEST=../../Binary
|
||||
|
||||
HD1KIMGS = $(DEST)/hd1k_cpm22.img $(DEST)/hd1k_zsdos.img $(DEST)/hd1k_nzcom.img \
|
||||
$(DEST)/hd1k_cpm3.img $(DEST)/hd1k_zpm3.img $(DEST)/hd1k_ws4.img
|
||||
|
||||
ROMS := $(wildcard $(DEST)/RCZ80_ez512_*.rom)
|
||||
ROMS := $(patsubst $(DEST)/%.rom,%,$(ROMS))
|
||||
|
||||
OBJECTS := $(patsubst %,%_hd1k_prefix.dat,$(ROMS))
|
||||
OBJECTS += $(patsubst %,%_hd1k_combo.img,$(ROMS))
|
||||
|
||||
TOOLS = ../../Tools
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
DIFFPATH = $(DIFFTO)/Binary
|
||||
|
||||
%_hd1k_prefix.dat: $(DEST)/%.rom
|
||||
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x0 0x200 ez512_cfldr.bin -binary -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x1B8 0x200 ez512_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 ez512_mon.bin -binary -offset 0x1F000 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 $< -binary -offset 0x24000 -o temp.dat -binary
|
||||
mv temp.dat $@
|
||||
|
||||
%_hd1k_combo.img: %_hd1k_prefix.dat $(HD1KIMGS)
|
||||
cat $^ > $@
|
||||
BIN
Source/EZ512/ez512_cfldr.bin
Normal file
BIN
Source/EZ512/ez512_cfldr.bin
Normal file
Binary file not shown.
BIN
Source/EZ512/ez512_mon.bin
Normal file
BIN
Source/EZ512/ez512_mon.bin
Normal file
Binary file not shown.
BIN
Source/EZ512/ez512_ptbl.bin
Normal file
BIN
Source/EZ512/ez512_ptbl.bin
Normal file
Binary file not shown.
BIN
Source/Fonts/fontcgac.png
Normal file
BIN
Source/Fonts/fontcgac.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
BIN
Source/Fonts/fontcgau.png
Normal file
BIN
Source/Fonts/fontcgau.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.1 KiB |
@@ -61,7 +61,17 @@ call hbios_env.cmd
|
||||
if %Platform%==UNA goto :UNA
|
||||
|
||||
::
|
||||
:: Bring the previously build font files into this directory
|
||||
:: Determine proper variant of the NetBoot module to embed
|
||||
::
|
||||
|
||||
if %Platform%==DUO (
|
||||
set NetBoot=netboot-duo.mod
|
||||
) else (
|
||||
set NetBoot=netboot-mt.mod
|
||||
)
|
||||
|
||||
::
|
||||
:: Bring the previously build font files into this directory
|
||||
::
|
||||
|
||||
copy ..\Fonts\font*.asm . || exit /b
|
||||
@@ -89,10 +99,9 @@ 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
|
||||
:: Sysconf builds as both BIN and COM files
|
||||
tasm -t%CPUType% -g3 -fFF -dROMWBW sysconf.asm sysconf.bin sysconf_bin.lst || exit /b
|
||||
tasm -t%CPUType% -g3 -fFF -dCPM sysconf.asm sysconf.com sysconf_com.lst || exit /b
|
||||
|
||||
::
|
||||
:: Create additional ROM bank images by assembling components into
|
||||
@@ -102,7 +111,7 @@ pushd SysConfig && call Build || exit /b & popd
|
||||
::
|
||||
|
||||
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 + SysConfig\sysconfig.bin + usrrom.bin osimg1.bin || exit /b
|
||||
copy /b ..\Forth\camel80.bin + nascom.bin + ..\tastybasic\src\tastybasic.bin + game.bin + eastaegg.bin + %NETBOOT% + updater.bin + sysconf.bin + usrrom.bin osimg1.bin || exit /b
|
||||
|
||||
if %Platform%==S100 (
|
||||
zxcc slr180 -s100mon/fh
|
||||
@@ -158,6 +167,8 @@ if exist %ROMName%.rom copy %ROMName%.rom ..\..\Binary || exit /b
|
||||
if exist %ROMName%.upd copy %ROMName%.upd ..\..\Binary || exit /b
|
||||
if exist %ROMName%.com copy %ROMName%.com ..\..\Binary || exit /b
|
||||
|
||||
if exist sysconf.com copy sysconf.com ..\..\Binary\Apps\ || exit /b
|
||||
|
||||
goto :eof
|
||||
|
||||
::
|
||||
@@ -223,6 +234,8 @@ call Build RCZ80 skz_std || exit /b
|
||||
call Build RCZ80 zrc_std || exit /b
|
||||
call Build RCZ80 zrc_ram_std || exit /b
|
||||
call Build RCZ80 zrc512_std || exit /b
|
||||
call Build RCZ80 ez512_std || exit /b
|
||||
call Build RCZ80 k80w_std || exit /b
|
||||
call Build RCZ180 ext_std || exit /b
|
||||
call Build RCZ180 nat_std || exit /b
|
||||
call Build RCZ180 z1rcc_std || exit /b
|
||||
|
||||
@@ -26,6 +26,8 @@ if [ "${ROM_PLATFORM}" == "dist" ] ; then
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_ram_std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc512_std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="ez512_std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="k80w_std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="ext_std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="nat_std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="z1rcc_std"; bash Build.sh
|
||||
|
||||
@@ -16,5 +16,3 @@ if exist build.inc del build.inc
|
||||
if exist font*.asm del font*.asm
|
||||
if exist build_env.cmd del build_env.cmd
|
||||
if exist hbios_env.cmd del hbios_env.cmd
|
||||
|
||||
pushd SysConfig && call Clean & popd
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_DUO.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_DYNO.asm"
|
||||
;
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Z180 MiniITX"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_EPITX.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_FZ80.asm"
|
||||
;
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "GM STD BUS Z180", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_GMZ180.asm"
|
||||
;
|
||||
@@ -81,7 +82,7 @@ FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3
|
||||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_GM ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_GM ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
;
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_HEATH.asm"
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_MBC.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_MK4.asm"
|
||||
;
|
||||
@@ -69,6 +70,6 @@ FDMODE .SET FDMODE_DIDE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|
|
||||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
;
|
||||
PRPENABLE .SET TRUE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_MON.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_N8.asm"
|
||||
;
|
||||
@@ -60,6 +61,6 @@ FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
;
|
||||
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
SDMODE .SET SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_NABU.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCEZ80.asm"
|
||||
;
|
||||
@@ -68,7 +69,7 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80]
|
||||
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
;
|
||||
@@ -80,3 +81,4 @@ SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ180.asm"
|
||||
;
|
||||
@@ -86,3 +87,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ180.asm"
|
||||
;
|
||||
@@ -86,3 +87,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Z1RCC", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ180.asm"
|
||||
;
|
||||
@@ -94,3 +95,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ280.asm"
|
||||
;
|
||||
@@ -85,3 +86,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ280.asm"
|
||||
;
|
||||
@@ -86,3 +87,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZZ80MB", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ280.asm"
|
||||
;
|
||||
@@ -89,3 +90,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZZRCC", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ280.asm"
|
||||
;
|
||||
@@ -97,3 +98,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZZRCC", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ280.asm"
|
||||
;
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Easy-Z80", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ80.asm"
|
||||
;
|
||||
@@ -103,3 +104,4 @@ SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
111
Source/HBIOS/Config/RCZ80_ez512_std.asm
Normal file
111
Source/HBIOS/Config/RCZ80_ez512_std.asm
Normal file
@@ -0,0 +1,111 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; ROMWBW DEFAULT BUILD SETTINGS FOR RCBUS Z80 ZRC512
|
||||
;==================================================================================================
|
||||
;
|
||||
; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM
|
||||
; INDICATED ABOVE. THESE SETTINGS DEFINE THE OFFICIAL BUILD FOR THIS
|
||||
; PLATFORM AS DISTRIBUTED IN ROMWBW RELEASES.
|
||||
;
|
||||
; ROMWBW USES CASCADING CONFIGURATION FILES AS INDICATED BELOW:
|
||||
;
|
||||
; cfg_MASTER.asm - MASTER: CONFIGURATION FILE DEFINES ALL POSSIBLE ROMWBW SETTINGS
|
||||
; |
|
||||
; +-> cfg_<platform>.asm - PLATFORM: DEFAULT SETTINGS FOR SPECIFIC PLATFORM
|
||||
; |
|
||||
; +-> Config/<plt>_std.asm - BUILD: SETTINGS FOR EACH OFFICIAL DIST BUILD
|
||||
; |
|
||||
; +-> Config/<plt>_<cust>.asm - USER: CUSTOM USER BUILD SETTINGS
|
||||
;
|
||||
; THE TOP (MASTER CONFIGURATION) FILE DEFINES ALL POSSIBLE ROMWBW
|
||||
; CONFIGURATION SETTINGS. EACH FILE BELOW THE MASTER CONFIGURATION FILE
|
||||
; INHERITS THE CUMULATIVE SETTINGS OF THE FILES ABOVE IT AND MAY
|
||||
; OVERRIDE THESE SETTINGS AS DESIRED.
|
||||
;
|
||||
; OTHER THAN THE TOP MASTER FILE, EACH FILE MUST "#INCLUDE" ITS PARENT
|
||||
; FILE (SEE #INCLUDE STATEMENT BELOW). THE TOP TWO FILES SHOULD NOT BE
|
||||
; MODIFIED.
|
||||
;
|
||||
; TO CUSTOMIZE YOUR BUILD SETTINGS YOU SHOULD MODIFY THIS FILE, THE
|
||||
; DEFAULT BUILD SETTINGS (Config/<platform>_std.asm) OR PREFERABLY
|
||||
; CREATE AN OPTIONAL CUSTOM USER SETTINGS FILE THAT INCLUDES THE DEFAULT
|
||||
; BUILD SETTINGS FILE (SEE EXAMPLE Config/SBC_user.asm).
|
||||
;
|
||||
; BY CREATING A CUSTOM USER SETTINGS FILE, YOU ARE LESS LIKELY TO BE
|
||||
; IMPACTED BY FUTURE CHANGES BECAUSE YOU WILL BE INHERITING MOST
|
||||
; OF YOUR SETTINGS WHICH WILL BE UPDATED BY AUTHORS AS ROMWBW EVOLVES.
|
||||
;
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE
|
||||
; SOURCE DIRECTORY (TWO DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
; *** WARNING: ASIDE FROM THE MASTER CONFIGURATION FILE, YOU MUST USE
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "EaZy80-512", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ80.asm"
|
||||
;
|
||||
CPUOSC .SET 22000000 ; CPU OSC FREQ IN MHZ
|
||||
;
|
||||
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
;
|
||||
KIOENABLE .SET TRUE ; ENABLE ZILOG KIO SUPPORT
|
||||
KIOBASE .SET $00 ; KIO BASE I/O ADDRESS
|
||||
;
|
||||
RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
MEMMGR .SET MM_EZ512 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512]
|
||||
FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
CTCENABLE .SET TRUE ; ENABLE ZILOG CTC SUPPORT
|
||||
CTCBASE .SET KIOBASE+$04 ; CTC BASE I/O ADDRESS
|
||||
CTCOSC .SET 1843200 ; CTC CLOCK FREQUENCY
|
||||
;
|
||||
DUARTENABLE .SET FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM)
|
||||
;
|
||||
UARTENABLE .SET FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
|
||||
;
|
||||
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
SIOCNT .SET 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
|
||||
SIO0MODE .SET SIOMODE_STD ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
|
||||
SIO0BASE .SET KIOBASE+$08 ; SIO 0: REGISTERS BASE ADR
|
||||
SIO0ACLK .SET CTCOSC ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
|
||||
SIO0BCLK .SET CTCOSC ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
|
||||
;
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MSX|MSXKBD|MSXMKY|MBC|COLECO|DUO|NABU]
|
||||
TMS80COLS .SET FALSE ; TMS: ENABLE 80 COLUMN SCREEN, REQUIRES V9958
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDROM .SET FALSE ; MD: ENABLE ROM DISK
|
||||
;
|
||||
CHENABLE .SET FALSE ; CH: ENABLE CH375/376 USB SUPPORT
|
||||
;
|
||||
FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
;
|
||||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
;
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_EZ512 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
;
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
@@ -63,7 +63,8 @@
|
||||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
|
||||
; YOUR FILE IN THE BUILD PROCESS.
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "Z" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "Config/RCZ80_std.asm"
|
||||
;
|
||||
@@ -102,3 +103,4 @@ SN76489ENABLE .SET TRUE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
76
Source/HBIOS/Config/RCZ80_k80w_std.asm
Normal file
76
Source/HBIOS/Config/RCZ80_k80w_std.asm
Normal file
@@ -0,0 +1,76 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; ROMWBW DEFAULT BUILD SETTINGS FOR RCBUS Z80 K80W
|
||||
;==================================================================================================
|
||||
;
|
||||
; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM
|
||||
; INDICATED ABOVE. THESE SETTINGS DEFINE THE OFFICIAL BUILD FOR THIS
|
||||
; PLATFORM AS DISTRIBUTED IN ROMWBW RELEASES.
|
||||
;
|
||||
; ROMWBW USES CASCADING CONFIGURATION FILES AS INDICATED BELOW:
|
||||
;
|
||||
; cfg_MASTER.asm - MASTER: CONFIGURATION FILE DEFINES ALL POSSIBLE ROMWBW SETTINGS
|
||||
; |
|
||||
; +-> cfg_<platform>.asm - PLATFORM: DEFAULT SETTINGS FOR SPECIFIC PLATFORM
|
||||
; |
|
||||
; +-> Config/<plt>_std.asm - BUILD: SETTINGS FOR EACH OFFICIAL DIST BUILD
|
||||
; |
|
||||
; +-> Config/<plt>_<cust>.asm - USER: CUSTOM USER BUILD SETTINGS
|
||||
;
|
||||
; THE TOP (MASTER CONFIGURATION) FILE DEFINES ALL POSSIBLE ROMWBW
|
||||
; CONFIGURATION SETTINGS. EACH FILE BELOW THE MASTER CONFIGURATION FILE
|
||||
; INHERITS THE CUMULATIVE SETTINGS OF THE FILES ABOVE IT AND MAY
|
||||
; OVERRIDE THESE SETTINGS AS DESIRED.
|
||||
;
|
||||
; OTHER THAN THE TOP MASTER FILE, EACH FILE MUST "#INCLUDE" ITS PARENT
|
||||
; FILE (SEE #INCLUDE STATEMENT BELOW). THE TOP TWO FILES SHOULD NOT BE
|
||||
; MODIFIED.
|
||||
;
|
||||
; TO CUSTOMIZE YOUR BUILD SETTINGS YOU SHOULD MODIFY THIS FILE, THE
|
||||
; DEFAULT BUILD SETTINGS (Config/<platform>_std.asm) OR PREFERABLY
|
||||
; CREATE AN OPTIONAL CUSTOM USER SETTINGS FILE THAT INCLUDES THE DEFAULT
|
||||
; BUILD SETTINGS FILE (SEE EXAMPLE Config/SBC_user.asm).
|
||||
;
|
||||
; BY CREATING A CUSTOM USER SETTINGS FILE, YOU ARE LESS LIKELY TO BE
|
||||
; IMPACTED BY FUTURE CHANGES BECAUSE YOU WILL BE INHERITING MOST
|
||||
; OF YOUR SETTINGS WHICH WILL BE UPDATED BY AUTHORS AS ROMWBW EVOLVES.
|
||||
;
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE
|
||||
; SOURCE DIRECTORY (TWO DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
; *** WARNING: ASIDE FROM THE MASTER CONFIGURATION FILE, YOU MUST USE
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "Config/RCZ80_std.asm"
|
||||
;
|
||||
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
;
|
||||
CPUOSC .SET 22000000 ; CPU OSC FREQ IN MHZ
|
||||
;
|
||||
KIOENABLE .SET TRUE ; ENABLE ZILOG KIO SUPPORT
|
||||
;
|
||||
DSRTCMODE .SET DSRTCMODE_K80W ; DSRTC: OPERATING MODE: DSRTCMODE_[STD|MFPIC|K80W]
|
||||
;
|
||||
AUTOCON .SET FALSE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CTCENABLE .SET TRUE ; ENABLE ZILOG CTC SUPPORT
|
||||
CTCBASE .SET KIOBASE+$04 ; CTC BASE I/O ADDRESS
|
||||
CTCOSC .SET 1843200 ; CTC CLOCK FREQUENCY
|
||||
;
|
||||
ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
|
||||
;
|
||||
SIOCNT .SET 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
|
||||
SIO0MODE .SET SIOMODE_STD ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
|
||||
SIO0BASE .SET KIOBASE+$08 ; SIO 0: REGISTERS BASE ADR
|
||||
SIO0ACLK .SET CTCOSC ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
|
||||
SIO0BCLK .SET CTCOSC ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
|
||||
;
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_K80W ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "Config/RCZ80_std.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ80.asm"
|
||||
;
|
||||
@@ -88,3 +89,4 @@ IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ80.asm"
|
||||
;
|
||||
@@ -76,7 +77,7 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80]
|
||||
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
;
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
@@ -89,3 +90,4 @@ SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Tiny-Z80", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ80.asm"
|
||||
;
|
||||
@@ -106,3 +107,4 @@ IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -48,7 +48,8 @@
|
||||
; 3. ENABLES LPT PRINTER SUPPORT
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "My Custom RCBus Computer", " [", CONFIG, "]"
|
||||
#DEFINE BOOT_DEFAULT "Z" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "Config/RCZ80_std.asm" ; INHERIT FROM OFFICIAL BUILD SETTINGS
|
||||
;
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZRC512", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ80.asm"
|
||||
;
|
||||
@@ -89,3 +90,4 @@ SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZRC", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ80.asm"
|
||||
;
|
||||
@@ -88,3 +89,4 @@ IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZRC", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RCZ80.asm"
|
||||
;
|
||||
@@ -86,3 +87,4 @@ IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_RPH.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_S100.asm"
|
||||
;
|
||||
@@ -62,5 +63,5 @@ SCONENABLE .SET TRUE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_SBC.asm"
|
||||
;
|
||||
|
||||
@@ -42,14 +42,15 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_SBC.asm"
|
||||
;
|
||||
CPUOSC .SET 8000000 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .SET 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
@@ -65,6 +66,6 @@ FDMODE .SET FDMODE_DIO3 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|
|
||||
IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
;
|
||||
PRPENABLE .SET TRUE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Small Computer SC126", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_SCZ180.asm"
|
||||
;
|
||||
@@ -83,10 +84,11 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
;
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Small Computer SC130", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_SCZ180.asm"
|
||||
;
|
||||
@@ -84,10 +85,11 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
;
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Small Computer SC131", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_SCZ180.asm"
|
||||
;
|
||||
@@ -73,7 +74,7 @@ SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
;
|
||||
CHENABLE .SET FALSE ; CH: ENABLE CH375/376 USB SUPPORT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Small Computer SC140", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_SCZ180.asm"
|
||||
;
|
||||
@@ -85,3 +86,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_LINC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Small Computer SC503", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_SCZ180.asm"
|
||||
;
|
||||
@@ -87,3 +88,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_LINC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Small Computer SC700", " [", CONFIG, "]"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_SCZ180.asm"
|
||||
;
|
||||
@@ -83,10 +84,11 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
|
||||
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W]
|
||||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
;
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
|
||||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_UNA.asm"
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_Z80RETRO.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_ZETA2.asm"
|
||||
;
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
|
||||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
|
||||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
|
||||
;
|
||||
#INCLUDE "cfg_ZETA.asm"
|
||||
;
|
||||
|
||||
@@ -5,34 +5,49 @@ Final Output Files
|
||||
ROM Output File [512K] -> <config>.rom
|
||||
hbios_rom [32K]
|
||||
OSIMG [32K]
|
||||
OSIMG1 [32K]
|
||||
OSIMG [32K] (used as filler)
|
||||
OSIMG1 [32K]
|
||||
OSIMG2 [32K]
|
||||
romdisk - [384K]
|
||||
|
||||
COM Output File -> <config>.com
|
||||
hbios_com [varies]
|
||||
OSIMG [32K]
|
||||
UPD Output File [128K] -> <config>.upd
|
||||
hbios_rom [32K]
|
||||
OSIMG [32K]
|
||||
OSIMG1 [32K]
|
||||
OSIMG2 [32K]
|
||||
|
||||
IMG Output File -> <config>.img
|
||||
hbios_img [varies]
|
||||
OSIMG [32K]
|
||||
COM Output File -> <config>.com
|
||||
hbios_app [varies]
|
||||
OSIMG_SMALL [32K]
|
||||
|
||||
-------------------------
|
||||
Intermediate Output Files
|
||||
-------------------------
|
||||
|
||||
OSIMG [32K] -> osimg.bin
|
||||
romldr [3.5K]
|
||||
eastaegg [0.5K]
|
||||
dbgmon [4K]
|
||||
romldr [4K]
|
||||
dbgmon [4K]
|
||||
ZSYS (zcpr/zsdos/cbios) [12K]
|
||||
CPM (ccp/bdos/cbios) [12K]
|
||||
|
||||
OSIMG_SMALL [20K] -> osimg_small.bin
|
||||
romldr [4K]
|
||||
dbgmon [4K]
|
||||
ZSYS (zcpr/zsdos/cbios) [12K]
|
||||
|
||||
OSIMG1 [32K] -> osimg0.bin
|
||||
camel80 [5.75K]
|
||||
nascom [8K]
|
||||
tastybasic [2.25K]
|
||||
imagepad0 [-]
|
||||
OSIMG1 [32K] -> osimg1.bin
|
||||
camel80 [5.75K]
|
||||
nascom [8K]
|
||||
tastybasic [2.5K]
|
||||
game [2.25K]
|
||||
eastaegg [0.5K]
|
||||
netboot [4K]
|
||||
updater.bin [3.25K]
|
||||
sysconf.bin [2K]
|
||||
usrrom.bin [3.75K (padded)]
|
||||
|
||||
OSIMG2 [32K] -> osimg2.bin
|
||||
s100mon [8.25kb (optional)]
|
||||
(OR) not populated
|
||||
|
||||
CPM [12K] -> cpm.bin
|
||||
ccp [2K]
|
||||
@@ -48,7 +63,7 @@ ZSYS [12K] -> zsys.bin
|
||||
Compilation Units
|
||||
-----------------
|
||||
|
||||
hbios.asm -> hbios_rom.bin, hbios_app.bin, hbios_img.bin
|
||||
hbios.asm -> hbios_rom.bin, hbios_app.bin
|
||||
std.asm
|
||||
ver.inc
|
||||
hbios.inc
|
||||
@@ -92,7 +107,7 @@ eastaegg.asm -> eastaegg.bin
|
||||
|
||||
Forth\camel80.azm -> Forth\camel80.bin -> ..\camel80.bin
|
||||
camel80d.azm
|
||||
camel80h.azm
|
||||
camel80h.azm
|
||||
|
||||
nascom.asm -> nascom.bin
|
||||
std.asm
|
||||
@@ -109,8 +124,8 @@ tastybasic.asm -> tastybasic.bin
|
||||
build.inc
|
||||
<config>.asm
|
||||
plt_<platform>.inc
|
||||
|
||||
|
||||
|
||||
|
||||
=======================================================================
|
||||
HBIOS Loading Modes:
|
||||
ROMBOOT: Startup from ROM Bank BID_BOOT
|
||||
|
||||
@@ -3,11 +3,9 @@ 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 = SysConfig
|
||||
DEST = ../../Binary
|
||||
TOOLS =../../Tools
|
||||
OTHERS = *.img *.rom *.com *.upd *.bin *.hex cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh \
|
||||
SysConfig/*.com SysConfig/*.bin SysConfig/*.lst
|
||||
OTHERS = *.img *.rom *.com *.upd *.bin *.hex cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh netboot.mod
|
||||
|
||||
# DIFFMAKE = 1
|
||||
|
||||
@@ -34,7 +32,7 @@ else ifeq ($(CPUFAM),3)
|
||||
TASM=$(BINDIR)/uz80as -t z280
|
||||
endif
|
||||
|
||||
DEPS=prereq dbgmon.bin romldr.bin nascom.bin tastybasic.bin game.bin eastaegg.bin updater.bin usrrom.bin imgpad2.bin
|
||||
DEPS=prereq dbgmon.bin romldr.bin nascom.bin tastybasic.bin game.bin eastaegg.bin updater.bin sysconf.bin sysconf.com usrrom.bin imgpad2.bin
|
||||
|
||||
ifeq ($(ROM_PLATFORM),UNA)
|
||||
ROMDEPS=romldr.bin dbgmon.bin
|
||||
@@ -62,8 +60,13 @@ ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG}
|
||||
$(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) = DUO ] ; then \
|
||||
cat netboot-duo.mod >netboot.mod ; \
|
||||
else \
|
||||
cat netboot-mt.mod >netboot.mod ; \
|
||||
fi
|
||||
if [ $(ROM_PLATFORM) != UNA ] ; then \
|
||||
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin SysConfig/sysconfig.bin usrrom.bin >osimg1.bin ; \
|
||||
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin sysconf.bin usrrom.bin >osimg1.bin ; \
|
||||
if [ $(ROM_PLATFORM) = S100 ] ; then \
|
||||
cat s100mon.bin >osimg2.bin ; \
|
||||
else \
|
||||
@@ -89,7 +92,7 @@ $(OBJECTS) : $(ROMDEPS)
|
||||
fi \
|
||||
fi
|
||||
|
||||
prereq: $(FONTS) camel80.bin tastybasic.bin syscon
|
||||
prereq: $(FONTS) camel80.bin tastybasic.bin
|
||||
|
||||
font%.asm:
|
||||
cp ../Fonts/$@ .
|
||||
@@ -97,8 +100,12 @@ font%.asm:
|
||||
camel80.bin:
|
||||
cp ../Forth/$@ .
|
||||
|
||||
syscon:
|
||||
$(MAKE) --directory SysConfig
|
||||
sysconf.bin:
|
||||
@$(TASM) -dROMWBW sysconf.asm sysconf.bin sysconf_bin.lst
|
||||
|
||||
sysconf.com:
|
||||
@$(TASM) -dCPM sysconf.asm sysconf.com sysconf_com.lst
|
||||
cp $@ $(DEST)/Apps
|
||||
|
||||
s100mon.bin:
|
||||
$(ZXCC) $(CPM)/SLR180 -s100mon/FH
|
||||
|
||||
@@ -9,7 +9,8 @@ DIST_OBJECTS := \
|
||||
# RCZ80_mt RCZ80_duart MON_std
|
||||
|
||||
OBJECTS := $(DIST_OBJECTS)
|
||||
# OBJECTS := SBC_std MK4_std UNA_std S100_std
|
||||
OBJECTS := RCZ80_std
|
||||
# OBJECTS := DUO_std
|
||||
|
||||
OBJECTS := $(OBJECTS:=.rom) $(OBJECTS:=.com) $(OBJECTS:=.upd)
|
||||
OBJECTS := $(filter-out UNA_%.com UNA_%.upd,$(OBJECTS))
|
||||
@@ -23,15 +24,18 @@ FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm
|
||||
FONTS += font8x8c.asm font8x8u.asm fontcgac.asm fontcgau.asm
|
||||
FONTS += fontvgarcc.asm fontvgarcu.asm
|
||||
|
||||
BUILD_COMPONENT = \
|
||||
cp $(*F).build.inc build.inc ; \
|
||||
$(TASM) $(TASMFLAGS) $< $@ $(@:.bin=.lst) ; \
|
||||
define BUILD_COMPONENT
|
||||
cp $(*F).build.inc build.inc
|
||||
$(TASM) $(TASMFLAGS) $1 $< $@ $(@:.bin=.lst)
|
||||
rm build.inc
|
||||
endef
|
||||
|
||||
SHELL=/bin/bash
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
all:: sysconf.com
|
||||
|
||||
font%.asm:
|
||||
cp ../Fonts/$@ .
|
||||
|
||||
@@ -41,9 +45,6 @@ camel80.bin:
|
||||
tastybasic.bin:
|
||||
cp ../TastyBasic/src/$@ .
|
||||
|
||||
sysconfig.bin:
|
||||
cp SysConfig/$@ .
|
||||
|
||||
s100mon.bin:
|
||||
$(ZXCC) $(CPM)/SLR180 -s100mon/FH
|
||||
$(ZXCC) $(CPM)/MLOAD25 -s100mon.bin=s100mon
|
||||
@@ -59,13 +60,18 @@ s100mon.bin:
|
||||
echo ";" >>$@
|
||||
cat $@
|
||||
|
||||
%.usrrom.bin: usrrom.asm %.build.inc ; $(BUILD_COMPONENT)
|
||||
%.updater.bin: updater.asm %.build.inc ; $(BUILD_COMPONENT)
|
||||
%.eastaegg.bin: eastaegg.asm %.build.inc ; $(BUILD_COMPONENT)
|
||||
%.game.bin: game.asm %.build.inc ; $(BUILD_COMPONENT)
|
||||
%.nascom.bin: nascom.asm %.build.inc ; $(BUILD_COMPONENT)
|
||||
%.romldr.bin: romldr.asm %.build.inc ; $(BUILD_COMPONENT)
|
||||
%.dbgmon.bin: dbgmon.asm %.build.inc ; $(BUILD_COMPONENT)
|
||||
%.usrrom.bin: usrrom.asm %.build.inc ; $(call BUILD_COMPONENT)
|
||||
%.updater.bin: updater.asm %.build.inc ; $(call BUILD_COMPONENT)
|
||||
%.eastaegg.bin: eastaegg.asm %.build.inc ; $(call BUILD_COMPONENT)
|
||||
%.game.bin: game.asm %.build.inc ; $(call BUILD_COMPONENT)
|
||||
%.nascom.bin: nascom.asm %.build.inc ; $(call BUILD_COMPONENT)
|
||||
%.romldr.bin: romldr.asm %.build.inc ; $(call BUILD_COMPONENT)
|
||||
%.dbgmon.bin: dbgmon.asm %.build.inc ; $(call BUILD_COMPONENT)
|
||||
%.sysconf.bin: sysconf.asm %.build.inc ; $(call BUILD_COMPONENT, -dROMWBW)
|
||||
|
||||
sysconf.com: sysconf.asm
|
||||
$(TASM) -dCPM sysconf.asm sysconf.com sysconf_com.lst
|
||||
cp $@ $(DEST)/Apps
|
||||
|
||||
%.hbios_env.com: hbios_env.asm %.build.inc
|
||||
cp $(*F).build.inc build.inc
|
||||
@@ -76,20 +82,20 @@ s100mon.bin:
|
||||
$(ZXCC) $< >$@
|
||||
|
||||
%.hbios_rom.bin: hbios.asm %.build.inc %.hbios_env.sh $(FONTS)
|
||||
. ./$(*F).hbios_env.sh ; \
|
||||
TARGETS=("" "z80" "hd64180" "z280") ; \
|
||||
CPU=$${TARGETS[$$CPUFAM]} ; \
|
||||
cp $(*F).build.inc build.inc ; \
|
||||
$(BINDIR)/uz80as -t $$CPU -dROMBOOT $< $@ $(@:.bin=.lst) ; \
|
||||
srec_cat $@ -Binary -Crop 0 0x7FFF -Checksum_Negative_Big_Endian 0x7FFF 1 1 -o $@ -Binary ; \
|
||||
. ./$(*F).hbios_env.sh
|
||||
TARGETS=("" "z80" "hd64180" "z280")
|
||||
CPU=$${TARGETS[$$CPUFAM]}
|
||||
cp $(*F).build.inc build.inc
|
||||
$(BINDIR)/uz80as -t $$CPU -dROMBOOT $< $@ $(@:.bin=.lst)
|
||||
srec_cat $@ -Binary -Crop 0 0x7FFF -Checksum_Negative_Big_Endian 0x7FFF 1 1 -o $@ -Binary
|
||||
rm build.inc
|
||||
|
||||
%.hbios_app.bin: hbios.asm %.build.inc %.hbios_env.sh $(FONTS)
|
||||
. ./$(*F).hbios_env.sh ; \
|
||||
TARGETS=("" "z80" "hd64180" "z280") ; \
|
||||
CPU=$${TARGETS[$$CPUFAM]} ; \
|
||||
cp $(*F).build.inc build.inc ; \
|
||||
$(BINDIR)/uz80as -t $$CPU -dAPPBOOT $< $@ $(@:.bin=.lst) ; \
|
||||
. ./$(*F).hbios_env.sh
|
||||
TARGETS=("" "z80" "hd64180" "z280")
|
||||
CPU=$${TARGETS[$$CPUFAM]}
|
||||
cp $(*F).build.inc build.inc
|
||||
$(BINDIR)/uz80as -t $$CPU -dAPPBOOT $< $@ $(@:.bin=.lst)
|
||||
rm build.inc
|
||||
|
||||
UNA_%.osimg.bin: UNA_%.romldr.bin UNA_%.dbgmon.bin
|
||||
@@ -103,8 +109,12 @@ 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 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 >$@
|
||||
DUO_%.osimg1.bin: NETBOOT=netboot-duo.mod
|
||||
|
||||
%.osimg1.bin: NETBOOT=netboot-mt.mod
|
||||
|
||||
%.osimg1.bin: camel80.bin %.nascom.bin tastybasic.bin %.game.bin %.eastaegg.bin $(NETBOOT) %.updater.bin %.sysconf.bin %.usrrom.bin
|
||||
cat camel80.bin $(*F).nascom.bin tastybasic.bin $(*F).game.bin $(*F).eastaegg.bin $(NETBOOT) $(*F).updater.bin $(*F).sysconf.bin $(*F).usrrom.bin >$@
|
||||
srec_cat $@ -Binary -Crop 0 0x7FFF -Checksum_Negative_Big_Endian 0x7FFF 1 1 -o $@ -Binary
|
||||
|
||||
S100_%.imgpad2.bin: s100mon.bin
|
||||
@@ -118,14 +128,14 @@ S100_%.imgpad2.bin: s100mon.bin
|
||||
rm build.inc
|
||||
|
||||
UNA_%.rom: UNA_%.osimg.bin UNA_%.hbios_env.sh
|
||||
. ./UNA_$(*F).hbios_env.sh ; \
|
||||
cat ../UBIOS/UNA-BIOS.BIN UNA_$(*F).osimg.bin ../UBIOS/FSFAT.BIN ../RomDsk/rom$${ROMDISKSIZE}_una.dat >$@ ; \
|
||||
cp UNA_$(*F).osimg.bin $(DEST)/UNA_WBW_SYS.bin ; \
|
||||
. ./UNA_$(*F).hbios_env.sh
|
||||
cat ../UBIOS/UNA-BIOS.BIN UNA_$(*F).osimg.bin ../UBIOS/FSFAT.BIN ../RomDsk/rom$${ROMDISKSIZE}_una.dat >$@
|
||||
cp UNA_$(*F).osimg.bin $(DEST)/UNA_WBW_SYS.bin
|
||||
cp ../RomDsk/rom$${ROMDISKSIZE}_una.dat $(DEST)/UNA_WBW_ROM$${ROMDISKSIZE}.bin
|
||||
|
||||
%.rom: %.hbios_rom.bin %.osimg.bin %.osimg1.bin %.imgpad2.bin %.hbios_env.sh
|
||||
. ./$(*F).hbios_env.sh ; \
|
||||
if [ $$ROMSIZE -gt 0 ] ; then RD="rom$$ROMDISKSIZE" ; else RD="rom$$RAMDISKSIZE" ; fi ; \
|
||||
. ./$(*F).hbios_env.sh
|
||||
if [ $$ROMSIZE -gt 0 ] ; then RD="rom$$ROMDISKSIZE" ; else RD="rom$$RAMDISKSIZE" ; fi
|
||||
cat $(*F).hbios_rom.bin $(*F).osimg.bin $(*F).osimg1.bin $(*F).imgpad2.bin ../RomDsk/$${RD}_wbw.dat >$@
|
||||
|
||||
%.com: %.hbios_app.bin %.osimg_small.bin
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF -dCPM sysconfig.asm sysconfig.com sysconfig.lst || exit /b
|
||||
tasm -t80 -g3 -fFF -dROMWBW sysconfig.asm sysconfig.bin sysconfig.lst || exit /b
|
||||
|
||||
copy /Y sysconfig.com ..\..\..\Binary\Apps\ || exit /b
|
||||
@@ -1,6 +0,0 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
@@ -1,12 +0,0 @@
|
||||
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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user