mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-07 15:03:13 -06:00
Compare commits
260 Commits
v3.5.0-dev
...
v3.5.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
5e0f9b3e89 | ||
|
|
c60d46d773 | ||
|
|
72527366cb | ||
|
|
de426b9833 | ||
|
|
c7923bbcff | ||
|
|
29b2bec1e7 | ||
|
|
e97c0d7288 | ||
|
|
68d88be975 | ||
|
|
cecb72f20d | ||
|
|
d7225f40cd | ||
|
|
99bf1799a6 | ||
|
|
3470b9a656 | ||
|
|
803d1b2d4a | ||
|
|
a410e81689 | ||
|
|
8b299428b3 | ||
|
|
76567d1e53 | ||
|
|
0683b0f483 | ||
|
|
b802915067 | ||
|
|
497fa3cdf3 | ||
|
|
5ddde9cee2 | ||
|
|
e946116cc8 | ||
|
|
e7fb74b73f | ||
|
|
683121ace2 | ||
|
|
a3a3b20ded | ||
|
|
ba25ff879a | ||
|
|
93f1964052 | ||
|
|
33df7fab30 | ||
|
|
65fa595602 | ||
|
|
355902fe25 | ||
|
|
19d1547606 | ||
|
|
582b73cee0 | ||
|
|
063a15c338 | ||
|
|
830195cd42 | ||
|
|
1fe47c4100 | ||
|
|
0c7dfa0ae7 | ||
|
|
0113852f7b | ||
|
|
dde7a46b87 | ||
|
|
22290294ef | ||
|
|
3f5a3683f7 | ||
|
|
dbbfd5dfcc | ||
|
|
55fa39730a | ||
|
|
610c0f7856 | ||
|
|
1505c995e3 | ||
|
|
9ba6627da8 | ||
|
|
0558e84e09 | ||
|
|
fa45185945 | ||
|
|
99265f03d1 | ||
|
|
a2fcab4045 | ||
|
|
b3b4426a46 | ||
|
|
4ff6961539 | ||
|
|
72fcee24f3 | ||
|
|
8e56b270c4 | ||
|
|
42e50889be | ||
|
|
b3a250b63f | ||
|
|
30d79fe7f7 | ||
|
|
221b1b408c | ||
|
|
1f383a3639 | ||
|
|
f3e0de4a97 | ||
|
|
48689b8191 | ||
|
|
9b99a400f9 | ||
|
|
524b631a22 | ||
|
|
0f63bb0838 | ||
|
|
acce0ec15c | ||
|
|
00b6121391 | ||
|
|
ea6e31c58b | ||
|
|
75e10b64e3 | ||
|
|
6005472fa7 | ||
|
|
d7b7b8096e | ||
|
|
3c1f1ac70a | ||
|
|
ee60c11dec | ||
|
|
65ca9af785 | ||
|
|
76a5f210a0 | ||
|
|
06d9561f37 | ||
|
|
ecc7a15a7e | ||
|
|
2ca487b936 | ||
|
|
af0848f138 | ||
|
|
a5c68c6248 | ||
|
|
6500d243eb | ||
|
|
497e5333c4 | ||
|
|
9ad58ac59c | ||
|
|
fb9f9774d7 | ||
|
|
5239eed0e8 | ||
|
|
70a961ad55 | ||
|
|
49f4e3f292 | ||
|
|
3ca283d08f | ||
|
|
08a53f54d0 | ||
|
|
11459f989e | ||
|
|
b07055a73b | ||
|
|
4618de6621 | ||
|
|
207fe5f927 | ||
|
|
fe6cba2b1b | ||
|
|
a69797d0cf | ||
|
|
d3019dbb88 | ||
|
|
7cda84b4ce | ||
|
|
a24960a7d2 | ||
|
|
028a153568 | ||
|
|
05960f8b22 | ||
|
|
610a2746f5 | ||
|
|
ab9f0be267 | ||
|
|
d3489b642a | ||
|
|
8edefc1d8f | ||
|
|
63eebc8534 | ||
|
|
6beeef9b1e | ||
|
|
ab043e5cab | ||
|
|
bba9c5e26b | ||
|
|
a6a32bbd70 | ||
|
|
9aa0fbd2dc | ||
|
|
9dd54cb781 | ||
|
|
1d8c0c9c46 | ||
|
|
be225c6fb9 | ||
|
|
3121e3ee9d | ||
|
|
0982b5d462 | ||
|
|
c31f9de905 | ||
|
|
7157d7f11d | ||
|
|
e7937d47e3 | ||
|
|
32301ba6a9 | ||
|
|
12df99084e | ||
|
|
324c0bf0fb | ||
|
|
38c25e50c2 | ||
|
|
2176c9d1af | ||
|
|
af030bf76d | ||
|
|
e376e5577c | ||
|
|
b5d4e7ddf9 | ||
|
|
3880d8fca0 | ||
|
|
df28567506 | ||
|
|
f16a9415f7 | ||
|
|
561a7f7231 | ||
|
|
d416a986bb | ||
|
|
162348ea66 | ||
|
|
64d60f744b | ||
|
|
479c50f052 | ||
|
|
5c10f1881d | ||
|
|
fa6b0f1d82 | ||
|
|
141c79ef90 | ||
|
|
7d5dc565f3 | ||
|
|
b3bab80342 | ||
|
|
9898309f29 | ||
|
|
55d8c6ce7d | ||
|
|
0eb0855948 | ||
|
|
37e682adc7 | ||
|
|
39232f00f1 | ||
|
|
890dd1cd5e | ||
|
|
209f457120 | ||
|
|
945d5fc2d2 | ||
|
|
22b10c8ac8 | ||
|
|
4b80f36fd0 | ||
|
|
026fa3d0d7 | ||
|
|
53198e066c | ||
|
|
3318b12667 | ||
|
|
20aa3a7d65 | ||
|
|
e757591fb3 | ||
|
|
44ceaa3e71 | ||
|
|
37a7574f1f | ||
|
|
ba8cd05cb7 | ||
|
|
bc68674ce2 | ||
|
|
37b3b96e49 | ||
|
|
aeb579d6ad | ||
|
|
229bf119d4 | ||
|
|
cb7ba38f76 | ||
|
|
9bc4f26f6e | ||
|
|
ce9778e189 | ||
|
|
44d890be59 | ||
|
|
a31119bd5d | ||
|
|
6b00f5c992 | ||
|
|
20bdb78084 | ||
|
|
4ac7c1213a | ||
|
|
d834742337 | ||
|
|
baf0cd7788 | ||
|
|
572309d03c | ||
|
|
d9e009864b | ||
|
|
46cc57e5fc | ||
|
|
7e2b054fc1 | ||
|
|
d358c8bc1c | ||
|
|
2bc807edc8 | ||
|
|
57364bb581 | ||
|
|
a92aebddd7 | ||
|
|
8b63b32580 | ||
|
|
76cb52eb14 | ||
|
|
81da5af7ae | ||
|
|
7b5f1f3884 |
143
.gitignore
vendored
143
.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
|
||||
@@ -77,6 +77,7 @@ Tools/unix/zx/zx
|
||||
|
||||
!Source/ver.lib
|
||||
!Source/Apps/FAT/FAT.COM
|
||||
!Source/Apps/copysl/copysl.com
|
||||
!Source/Apps/ZMP/zmpx.com
|
||||
!Source/Apps/ZMD/zmdsubs.rel
|
||||
!Source/Apps/Test/vdctest/font.asm
|
||||
@@ -110,4 +111,142 @@ Source/ZPM3/zccp.com
|
||||
Source/ZPM3/zpmldr.com
|
||||
Source/ZPM3/genbnk.dat
|
||||
|
||||
Source/ZSDOS/zsdos.err
|
||||
Source/ZSDOS/zsdos.err
|
||||
|
||||
# Lets explicit list all generate untracked binary files
|
||||
Binary/Apps/Tunes/bgm.vgm
|
||||
Binary/Apps/Tunes/ending.vgm
|
||||
Binary/Apps/Tunes/inchina.vgm
|
||||
Binary/Apps/Tunes/shirakaw.vgm
|
||||
Binary/Apps/Tunes/startdem.vgm
|
||||
Binary/Apps/Tunes/wonder01.vgm
|
||||
Binary/Apps/fdu.doc
|
||||
Binary/Apps/zmconfig.ovr
|
||||
Binary/Apps/zminit.ovr
|
||||
Binary/Apps/zmp.doc
|
||||
Binary/Apps/zmp.hlp
|
||||
Binary/Apps/zmterm.ovr
|
||||
Binary/Apps/zmxfer.ovr
|
||||
Binary/CPM3/bdos3.spr
|
||||
Binary/CPM3/bios3.spr
|
||||
Binary/CPM3/bnkbdos3.spr
|
||||
Binary/CPM3/bnkbios3.spr
|
||||
Binary/CPM3/cpm3fix.pat
|
||||
Binary/CPM3/genbnk.dat
|
||||
Binary/CPM3/gencpm.dat
|
||||
Binary/CPM3/genres.dat
|
||||
Binary/CPM3/readme.1st
|
||||
Binary/CPM3/resbdos3.spr
|
||||
Binary/CPNET/cpn12duo.lbr
|
||||
Binary/CPNET/cpn12mt.lbr
|
||||
Binary/CPNET/cpn12ser.lbr
|
||||
Binary/CPNET/cpn3duo.lbr
|
||||
Binary/CPNET/cpn3mt.lbr
|
||||
Binary/CPNET/cpn3ser.lbr
|
||||
Binary/RCEZ80_std.upd
|
||||
Binary/RCZ80_std.upd
|
||||
Binary/ZPM3/bnkbdos3.spr
|
||||
Binary/ZPM3/bnkbios3.spr
|
||||
Binary/ZPM3/gencpm.dat
|
||||
Binary/ZPM3/resbdos3.spr
|
||||
Binary/ZPM3/zinstal.zpm
|
||||
Binary/hd1k_prefix.dat
|
||||
Source/BPBIOS/def-ww.lib
|
||||
Source/CPNET/cpn12duo.lbr
|
||||
Source/CPNET/cpn12mt.lbr
|
||||
Source/CPNET/cpn12ser.lbr
|
||||
Source/CPNET/cpn3duo.lbr
|
||||
Source/CPNET/cpn3mt.lbr
|
||||
Source/CPNET/cpn3ser.lbr
|
||||
Source/Fonts/font8x11c.asm
|
||||
Source/Fonts/font8x11c.bin
|
||||
Source/Fonts/font8x11u.asm
|
||||
Source/Fonts/font8x16c.asm
|
||||
Source/Fonts/font8x16c.bin
|
||||
Source/Fonts/font8x16u.asm
|
||||
Source/Fonts/font8x8c.asm
|
||||
Source/Fonts/font8x8c.bin
|
||||
Source/Fonts/font8x8u.asm
|
||||
Source/Fonts/fontcgac.asm
|
||||
Source/Fonts/fontcgac.bin
|
||||
Source/Fonts/fontcgau.asm
|
||||
Source/Fonts/fontvgarcc.asm
|
||||
Source/Fonts/fontvgarcc.bin
|
||||
Source/Fonts/fontvgarcu.asm
|
||||
Source/HBIOS/RCEZ80_std.upd
|
||||
Source/HBIOS/RCZ80_std.upd
|
||||
Source/HBIOS/build_env.cmd
|
||||
Source/HBIOS/hbios_env.sh
|
||||
Source/Images/blank144
|
||||
Source/Images/blankhd1k
|
||||
Source/Images/blankhd512
|
||||
Source/Images/fd144_aztecc.img
|
||||
Source/Images/fd144_bascomp.img
|
||||
Source/Images/fd144_cowgol.img
|
||||
Source/Images/fd144_cpm22.img
|
||||
Source/Images/fd144_cpm3.img
|
||||
Source/Images/fd144_fortran.img
|
||||
Source/Images/fd144_games.img
|
||||
Source/Images/fd144_hitechc.img
|
||||
Source/Images/fd144_nzcom.img
|
||||
Source/Images/fd144_qpm.img
|
||||
Source/Images/fd144_tpascal.img
|
||||
Source/Images/fd144_ws4.img
|
||||
Source/Images/fd144_z80asm.img
|
||||
Source/Images/fd144_zpm3.img
|
||||
Source/Images/fd144_zsdos.img
|
||||
Source/Images/hd1k_aztecc.img
|
||||
Source/Images/hd1k_bascomp.img
|
||||
Source/Images/hd1k_blank.img
|
||||
Source/Images/hd1k_bp.img
|
||||
Source/Images/hd1k_combo.img
|
||||
Source/Images/hd1k_cowgol.img
|
||||
Source/Images/hd1k_cpm22.img
|
||||
Source/Images/hd1k_cpm3.img
|
||||
Source/Images/hd1k_fortran.img
|
||||
Source/Images/hd1k_games.img
|
||||
Source/Images/hd1k_hitechc.img
|
||||
Source/Images/hd1k_nzcom.img
|
||||
Source/Images/hd1k_qpm.img
|
||||
Source/Images/hd1k_tpascal.img
|
||||
Source/Images/hd1k_ws4.img
|
||||
Source/Images/hd1k_z80asm.img
|
||||
Source/Images/hd1k_zpm3.img
|
||||
Source/Images/hd1k_zsdos.img
|
||||
Source/Images/hd512_aztecc.img
|
||||
Source/Images/hd512_bascomp.img
|
||||
Source/Images/hd512_blank.img
|
||||
Source/Images/hd512_combo.img
|
||||
Source/Images/hd512_cowgol.img
|
||||
Source/Images/hd512_cpm22.img
|
||||
Source/Images/hd512_cpm3.img
|
||||
Source/Images/hd512_dos65.img
|
||||
Source/Images/hd512_fortran.img
|
||||
Source/Images/hd512_games.img
|
||||
Source/Images/hd512_hitechc.img
|
||||
Source/Images/hd512_nzcom.img
|
||||
Source/Images/hd512_qpm.img
|
||||
Source/Images/hd512_tpascal.img
|
||||
Source/Images/hd512_ws4.img
|
||||
Source/Images/hd512_z80asm.img
|
||||
Source/Images/hd512_zpm3.img
|
||||
Source/Images/hd512_zsdos.img
|
||||
Source/RomDsk/rom0_una.dat
|
||||
Source/RomDsk/rom0_wbw.dat
|
||||
Source/RomDsk/rom128_una.dat
|
||||
Source/RomDsk/rom128_wbw.dat
|
||||
Source/RomDsk/rom256_una.dat
|
||||
Source/RomDsk/rom256_wbw.dat
|
||||
Source/RomDsk/rom384_una.dat
|
||||
Source/RomDsk/rom384_wbw.dat
|
||||
Source/RomDsk/rom896_una.dat
|
||||
Source/RomDsk/rom896_wbw.dat
|
||||
Source/ZCPR-DJ/zcprdemo.com
|
||||
Source/ZPM3/autotog.com
|
||||
Source/ZPM3/clrhist.com
|
||||
Source/ZPM3/cpmldr.com
|
||||
Source/ZPM3/setz3.com
|
||||
Tools/unix/OpenSpin/build/
|
||||
Tools/unix/zxcc/config.h
|
||||
Tools/unix/zxcc/zxcc
|
||||
Binary/Apps/bbcbasic.txt
|
||||
|
||||
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"files.trimTrailingWhitespace": false,
|
||||
"files.eol": "\r\n"
|
||||
}
|
||||
4
Binary/CPM22/Clean.cmd
Normal file
4
Binary/CPM22/Clean.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.sys del *.sys
|
||||
7
Binary/CPM22/Makefile
Normal file
7
Binary/CPM22/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
TOOLS = ../../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clean::
|
||||
@rm -f *.sys
|
||||
23
Binary/CPM22/ReadMe.txt
Normal file
23
Binary/CPM22/ReadMe.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory contains the CP/M 2.2 system files for the RomWBW CP/M 2.2
|
||||
adaptation. All of these files are already included on the CP/M
|
||||
boot disk images. However if you are creating a CP/M boot disk
|
||||
manually, you should copy all of these files to the boot disk.
|
||||
|
||||
Note: Two file have been provided one for RomWBW HBIOS, and one for UNA
|
||||
BIOS. One of these files must be installed on the system boot track.
|
||||
This is usually achieved by the SYSCOPY utility e.g.
|
||||
|
||||
SYSCOPY a:=cpm_wbw.sys
|
||||
|
||||
These files should also be copied to any CP/M 2.2 boot disks on your
|
||||
system when you upgrade your ROM firmware. Some of these files
|
||||
*must* match the version of the RomWBW firmware you are using for
|
||||
proper operation of your system.
|
||||
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.
@@ -12,6 +12,9 @@ if exist *.pdf del *.pdf
|
||||
if exist *.eeprom del *.eeprom
|
||||
|
||||
pushd Apps && call Clean || exit /b 1 & popd
|
||||
pushd CPM22 && call Clean || exit /b 1 & popd
|
||||
pushd CPM3 && call Clean || exit /b 1 & popd
|
||||
pushd QPM && call Clean || exit /b 1 & popd
|
||||
pushd ZSDOS && call Clean || exit /b 1 & popd
|
||||
pushd ZPM3 && call Clean || exit /b 1 & popd
|
||||
pushd CPNET && call Clean || exit /b 1 & popd
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
TOOLS = ../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.img *.rom *.com *.eeprom)
|
||||
SUBDIRS = Apps CPM3 ZPM3 CPNET
|
||||
SUBDIRS = Apps CPM22 CPM3 QPM ZSDOS ZPM3 CPNET
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
|
||||
4
Binary/QPM/Clean.cmd
Normal file
4
Binary/QPM/Clean.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.sys del *.sys
|
||||
7
Binary/QPM/Makefile
Normal file
7
Binary/QPM/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
TOOLS = ../../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clean::
|
||||
@rm -f *.sys *.bin
|
||||
21
Binary/QPM/ReadMe.txt
Normal file
21
Binary/QPM/ReadMe.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory contains the QPM 2.7 system files for the RomWBW QPM 2.7
|
||||
adaptation. All of these files are already included on the QPM
|
||||
boot disk images. However if you are creating a QPM boot disk
|
||||
manually, you should copy all of these files to the boot disk.
|
||||
|
||||
Note: Two file have been provided one for RomWBW HBIOS, and one for UNA
|
||||
BIOS. One of these files must be installed on the system boot track.
|
||||
Refer to the QPM Documentation for installing QPM
|
||||
|
||||
These files should also be copied to any QPM boot disks on your
|
||||
system when you upgrade your ROM firmware. Some of these files
|
||||
*must* match the version of the RomWBW firmware you are using for
|
||||
proper operation of your system.
|
||||
@@ -163,9 +163,32 @@ indicates which file targets each of the Propeller board variants:
|
||||
Refer to the board documentation of the boards for more information
|
||||
on how to program the EEPROMs on these boards.
|
||||
|
||||
SUB DIRECTORIES
|
||||
===============
|
||||
|
||||
Apps Directory
|
||||
--------------
|
||||
|
||||
The Apps subdirectory contains the executable application files that
|
||||
are specific to RomWBW. The source for these applications is found
|
||||
in the Source\Apps directory of the distribution.
|
||||
|
||||
CPNET Directory
|
||||
---------------
|
||||
|
||||
This directory contains the CP/NET client packages. Please refer to
|
||||
the RomWBW User Guide for instructions on installing these packages,
|
||||
or see the Readme.txt file in this sub-directory
|
||||
|
||||
CPM22 CPM3 ZSDOS ZPM3 QPM Directories
|
||||
-------------------------------------
|
||||
|
||||
These directories contains the system files for the RomWBW adaptations
|
||||
for each operating system. All of these files are already included on
|
||||
the boot disk images. However if you are creating a o/s boot disk
|
||||
manually, you will need copy all of these files to the boot disk.
|
||||
|
||||
These files should also be copied to any boot disks on your
|
||||
system when you upgrade your ROM firmware. Some of these files
|
||||
*must* match the version of the RomWBW firmware you are using for
|
||||
proper operation of your system.
|
||||
|
||||
4
Binary/ZSDOS/Clean.cmd
Normal file
4
Binary/ZSDOS/Clean.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.sys del *.sys
|
||||
7
Binary/ZSDOS/Makefile
Normal file
7
Binary/ZSDOS/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
TOOLS = ../../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clean::
|
||||
@rm -f *.sys
|
||||
23
Binary/ZSDOS/ReadMe.txt
Normal file
23
Binary/ZSDOS/ReadMe.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory contains the ZSDOS system files for the RomWBW ZSDOS
|
||||
adaptation. All of these files are already included on the ZSDOS
|
||||
boot disk images. However if you are creating a ZSDOS boot disk
|
||||
manually, you should copy all of these files to the boot disk.
|
||||
|
||||
Note: Two file have been provided one for RomWBW HBIOS, and one for UNA
|
||||
BIOS. One of these files must be installed on the system boot track.
|
||||
This is usually achieved by the SYSCOPY utility e.g.
|
||||
|
||||
SYSCOPY a:=zsys_wbw.sys
|
||||
|
||||
These files should also be copied to any ZSDOS boot disks on your
|
||||
system when you upgrade your ROM firmware. Some of these files
|
||||
*must* match the version of the RomWBW firmware you are using for
|
||||
proper operation of your system.
|
||||
@@ -30,10 +30,13 @@ The original DRI CP/M 3.0 Operating System Documentation Set. This
|
||||
should be considered the primary reference for CP/M 3 system operation.
|
||||
|
||||
|
||||
NZCOM User's Manual ("NZCOM Users Manual.pdf")
|
||||
----------------------------------------------
|
||||
NZCOM, Z3PLUS, and replace ZCPR3.3 Documentation
|
||||
------------------------------------------------
|
||||
|
||||
NZCOM operating system operation manual.
|
||||
NZCOM operating system operation manual. ("NZCOM Users Manual.pdf")
|
||||
Z3PLUS operating system operation manual. ("Z3PLUS Users Manual.pdf")
|
||||
Z-System User Guide ("Z-System User Guide.pdf")
|
||||
ZCPR3.3 Users Guide ("ZCPR3.3 Users Guide.pdf")
|
||||
|
||||
|
||||
QP/M 2.7 Installation Guide and Supplements ("qpm27.pdf")
|
||||
|
||||
BIN
Doc/CPM/Z-System Users Guide.pdf
Normal file
BIN
Doc/CPM/Z-System Users Guide.pdf
Normal file
Binary file not shown.
6773
Doc/CPM/Z3PLUS Users Manual.pdf
Normal file
6773
Doc/CPM/Z3PLUS Users Manual.pdf
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Doc/CPM/ZCPR3.3 User Guide.pdf
Normal file
BIN
Doc/CPM/ZCPR3.3 User Guide.pdf
Normal file
Binary file not shown.
@@ -35,6 +35,23 @@ Version 3.5
|
||||
- WBW: Support for Hitachi HD44780-based LCD display
|
||||
- DRJ: Added support for Genesis STD Bus Z180 platform
|
||||
- MAP: Improved section Disk Management in User Guide document
|
||||
- WBW: Add CPU speed selection for HEATH platform to HBIOS
|
||||
- WBW: Add Warm/Cold reboot options to CPUSPD utility
|
||||
- D?N: Added support for eZ80 CPU
|
||||
- MAP: Contributed COPYSL utility
|
||||
- MAP: Added new HBIOS function EXT_SLICE (orginally SYSGET_DIOMED)
|
||||
- MAP: ROMLDR now uses EXT_SLICE to get Slice Sector for boot
|
||||
- MAP: CBIOS now uses EXT_SLICE during drive selection
|
||||
- MAP: CPM3 Boot Loader, and BIOS (drive select) now use EXT_SLICE
|
||||
- M?R: Added REBOOT application
|
||||
- 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, 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
|
||||
|
||||
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.
48
Dockerfile
Normal file
48
Dockerfile
Normal file
@@ -0,0 +1,48 @@
|
||||
FROM ubuntu:jammy-20240111 as basebuilder
|
||||
|
||||
# This docker file can be used to build a tool chain docker image for building RomWBW images.
|
||||
|
||||
# Tested on a ubuntu host and on Windows un WSL (with docker desktop)
|
||||
|
||||
# First build the docker image (will b)
|
||||
# docker build --progress plain -t romwbw-chain .
|
||||
|
||||
# After you have built the above image (called romwbw-chain), you can use it to compile and build the RomWBW images
|
||||
# as per the standard make scripts within RomWBW.
|
||||
# Start a new terminal, cd to where you have clone RomWBW, and then run this command:
|
||||
# docker run -v ${PWD}:/src/ --privileged=true -u $(id -u ${USER}):$(id -g ${USER}) -it romwbw-chain:latest
|
||||
|
||||
# you can now compile and build the required images:
|
||||
|
||||
# cd Tools && make
|
||||
# cd Source && make # at least once to build many common units
|
||||
# cd Source && make rom ROM_PLATFORM=RCEZ80 ROM_CONFIG=std
|
||||
|
||||
# when finish, type 'exit' to return to back to your standard terminal session
|
||||
|
||||
LABEL Maintainer="Dean Netherton" \
|
||||
Description="spike to use clang for ez80 target"
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
|
||||
RUN dpkg --add-architecture i386
|
||||
RUN sed -i 's/http:\/\/archive\.ubuntu\.com\/ubuntu/http:\/\/au.archive.ubuntu.com\/ubuntu/g' /etc/apt/sources.list
|
||||
RUN apt update -y
|
||||
RUN apt dist-upgrade -y
|
||||
RUN apt install -y --no-install-recommends cmake lzip ca-certificates mtools build-essential dos2unix libboost-all-dev texinfo texi2html libxml2-dev subversion bison flex zlib1g-dev m4 git wget dosfstools curl
|
||||
|
||||
RUN mkdir work
|
||||
WORKDIR /work
|
||||
|
||||
FROM basebuilder as main
|
||||
|
||||
LABEL Maintainer="Dean Netherton" \
|
||||
Description="spike to build RomWBW"
|
||||
|
||||
RUN mkdir /src
|
||||
WORKDIR /src/
|
||||
|
||||
RUN apt install -y --no-install-recommends build-essential libncurses-dev srecord bsdmainutils
|
||||
|
||||
RUN adduser --disabled-password --gecos "" builder
|
||||
2
Makefile
2
Makefile
@@ -28,4 +28,4 @@ dist:
|
||||
$(MAKE) --directory Source clean
|
||||
|
||||
distlog:
|
||||
$(MAKE) dist 2>&1 | tee make.log
|
||||
time -p $(MAKE) dist 2>&1 | tee make.log
|
||||
|
||||
588
ReadMe.md
588
ReadMe.md
@@ -1,293 +1,295 @@
|
||||
|
||||
|
||||
**RomWBW ReadMe** \
|
||||
Version 3.5 \
|
||||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
|
||||
06 Sep 2024
|
||||
|
||||
# Overview
|
||||
|
||||
RomWBW software provides a complete, commercial quality implementation
|
||||
of CP/M (and workalike) operating systems and applications for modern
|
||||
Z80/180/280 retro-computing hardware systems. A wide variety of
|
||||
platforms are supported including those produced by these developer
|
||||
communities:
|
||||
|
||||
- [RetroBrew Computers](https://www.retrobrewcomputers.org)
|
||||
(<https://www.retrobrewcomputers.org>)
|
||||
- [RC2014](https://rc2014.co.uk) (<https://rc2014.co.uk>),
|
||||
[RC2014-Z80](https://groups.google.com/g/rc2014-z80)
|
||||
(<https://groups.google.com/g/rc2014-z80>)
|
||||
- [Retro Computing](https://groups.google.com/g/retro-comp)
|
||||
(<https://groups.google.com/g/retro-comp>)
|
||||
- [Small Computer Central](https://smallcomputercentral.com/)
|
||||
(<https://smallcomputercentral.com/>)
|
||||
|
||||
A complete list of the currently supported platforms is found in the
|
||||
\[Installation\] section.
|
||||
|
||||
General features include:
|
||||
|
||||
- Z80 Family CPUs including Z80, Z180, and Z280
|
||||
- Banked memory services for several banking designs
|
||||
- Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip,
|
||||
Iomega
|
||||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO
|
||||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445
|
||||
- Keyboard (PS/2) drivers via VT8242 or PPI interfaces
|
||||
- Real time clock drivers including DS1302, BQ4845
|
||||
- OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and
|
||||
FreeRTOS
|
||||
- Built-in VT-100 terminal emulation support
|
||||
|
||||
RomWBW is distributed as both source code and pre-built ROM and disk
|
||||
images. Some of the provided software can be launched directly from the
|
||||
ROM firmware itself:
|
||||
|
||||
- System Monitor
|
||||
- Operating Systems (CP/M 2.2, ZSDOS)
|
||||
- ROM BASIC (Nascom BASIC and Tasty BASIC)
|
||||
- ROM Forth
|
||||
|
||||
A dynamic disk drive letter assignment mechanism allows mapping
|
||||
operating system drive letters to any available disk media.
|
||||
Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.)
|
||||
support the use of multiple slices (up to 256 per device). Each slice
|
||||
contains a complete CP/M filesystem and can be mapped independently to
|
||||
any drive letter. This overcomes the inherent size limitations in legacy
|
||||
OSes and allows up to 2GB of accessible storage on a single device.
|
||||
|
||||
The pre-built ROM firmware images are generally suitable for most users.
|
||||
However, it is also very easy to modify and build custom ROM images that
|
||||
fully tailor the firmware to your specific preferences. All tools
|
||||
required to build custom ROM firmware under Windows are included – no
|
||||
need to install assemblers, etc. The firmware can also be built using
|
||||
Linux or MacOS after confirming a few standard tools have been
|
||||
installed.
|
||||
|
||||
Multiple disk images are provided in the distribution. Most disk images
|
||||
contain a complete, bootable, ready-to-run implementation of a specific
|
||||
operating system. A “combo” disk image contains multiple slices, each
|
||||
with a full operating system implementation. If you use this disk image,
|
||||
you can easily pick whichever operating system you want to boot without
|
||||
changing media.
|
||||
|
||||
By design, RomWBW isolates all of the hardware specific functions in the
|
||||
ROM chip itself. The ROM provides a hardware abstraction layer such that
|
||||
all of the operating systems and applications on a disk will run on any
|
||||
RomWBW-based system. To put it simply, you can take a disk (or CF/SD/USB
|
||||
Card) and move it between systems transparently.
|
||||
|
||||
A tool is provided that allows you to access a FAT-12/16/32 filesystem.
|
||||
The FAT filesystem may be coresident on the same disk media as RomWBW
|
||||
slices or on stand-alone media. This makes exchanging files with modern
|
||||
OSes such as Windows, MacOS, and Linux very easy.
|
||||
|
||||
# Acquiring RomWBW
|
||||
|
||||
The [RomWBW Repository](https://github.com/wwarthen/RomWBW)
|
||||
(<https://github.com/wwarthen/RomWBW>) on GitHub is the official
|
||||
distribution location for all project source and documentation. The
|
||||
fully-built distribution releases are available on the [RomWBW Releases
|
||||
Page](https://github.com/wwarthen/RomWBW/releases)
|
||||
(<https://github.com/wwarthen/RomWBW/releases>) of the repository. On
|
||||
this page, you will normally see a Development Snapshot as well as
|
||||
recent stable releases. Unless you have a specific reason, I suggest you
|
||||
stick to the most recent stable release. Expand the “Assets” drop-down
|
||||
for the release you want to download, then select the asset named
|
||||
RomWBW-vX.X.X-Package.zip. The Package asset includes all pre-built ROM
|
||||
and Disk images as well as full source code. The other assets contain
|
||||
only source code and do not have the pre-built ROM or disk images.
|
||||
|
||||
All source code and distributions are maintained on GitHub. Code
|
||||
contributions are very welcome.
|
||||
|
||||
# Installation & Operation
|
||||
|
||||
In general, installation of RomWBW on your platform is very simple. You
|
||||
just need to program your ROM with the correct ROM image from the RomWBW
|
||||
distribution. Subsequently, you can write disk images on your disk
|
||||
drives (IDE disk, CF Card, SD Card, etc.) which then provides even more
|
||||
functionality.
|
||||
|
||||
Complete instructions for installation and operation of RomWBW are found
|
||||
in the [RomWBW User
|
||||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf).
|
||||
|
||||
## Documentation
|
||||
|
||||
Documentation for RomWBW includes:
|
||||
|
||||
- [RomWBW User
|
||||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf)
|
||||
- [RomWBW System
|
||||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20System%20Guide.pdf)
|
||||
- [RomWBW
|
||||
Applications](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Applications.pdf)
|
||||
- [RomWBW
|
||||
Errata](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Errata.pdf)
|
||||
|
||||
# Acknowledgments
|
||||
|
||||
I want to acknowledge that a great deal of the code and inspiration for
|
||||
RomWBW has been provided by or derived from the work of others in the
|
||||
RetroBrew Computers Community. I sincerely appreciate all of their
|
||||
contributions. The list below is probably missing many names – please
|
||||
let me know if I missed you!
|
||||
|
||||
- Andrew Lynch started it all when he created the N8VEM Z80 SBC which
|
||||
became the first platform RomWBW supported. Some of his original code
|
||||
can still be found in RomWBW.
|
||||
|
||||
- Dan Werner wrote much of the code from which RomWBW was originally
|
||||
derived and he has always been a great source of knowledge and advice.
|
||||
|
||||
- Douglas Goodall contributed code, time, testing, and advice in “the
|
||||
early days”. He created an entire suite of application programs to
|
||||
enhance the use of RomWBW. Unfortunately, they have become unusable
|
||||
due to internal changes within RomWBW. As of RomWBW 2.6, these
|
||||
applications are no longer provided.
|
||||
|
||||
- Sergey Kiselev created several hardware platforms for RomWBW including
|
||||
the very popular Zeta.
|
||||
|
||||
- David Giles created support for the Z180 CSIO which is now included SD
|
||||
Card driver.
|
||||
|
||||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the
|
||||
AY-3-8910 sound driver, DMA support, and a long list of general code
|
||||
and documentation enhancements.
|
||||
|
||||
- Ed Brindley contributed some of the code that supports the RCBus
|
||||
platform.
|
||||
|
||||
- Spencer Owen created the RC2014 series of hobbyist kit computers which
|
||||
has exponentially increased RomWBW usage. Some of his kits include
|
||||
RomWBW.
|
||||
|
||||
- Stephen Cousins has likewise created a series of hobbyist kit
|
||||
computers at Small Computer Central and is distributing RomWBW with
|
||||
many of them.
|
||||
|
||||
- Alan Cox has contributed some driver code and has provided a great
|
||||
deal of advice.
|
||||
|
||||
- The CP/NET client files were developed by Douglas Miller.
|
||||
|
||||
- Phillip Stevens contributed support for FreeRTOS.
|
||||
|
||||
- Curt Mayer contributed the original Linux / MacOS build process.
|
||||
|
||||
- UNA BIOS and FDISK80 are the products of John Coffman.
|
||||
|
||||
- FLASH4 is a product of Will Sowerbutts.
|
||||
|
||||
- CLRDIR is a product of Max Scane.
|
||||
|
||||
- Tasty Basic is a product of Dimitri Theulings.
|
||||
|
||||
- Dean Netherton contributed the sound driver interface and the SN76489
|
||||
sound driver.
|
||||
|
||||
- The RomWBW Disk Catalog document was produced by Mykl Orders.
|
||||
|
||||
- Rob Prouse has created many of the supplemental disk images including
|
||||
Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft BASIC Compiler,
|
||||
Microsoft Fortran Compiler, and a Games compendium.
|
||||
|
||||
- Martin R has provided substantial help reviewing and improving the
|
||||
User Guide and Applications documents.
|
||||
|
||||
- Mark Pruden has also contributed a great deal of content to the User
|
||||
Guide.
|
||||
|
||||
- Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
- Jose Collado has contributed enhancements to the TMS driver including
|
||||
compatibility with standard TMS register configuration.
|
||||
|
||||
- Kevin Boone has contributed a generic HBIOS date/time utility (WDATE).
|
||||
|
||||
- Matt Carroll has contributed a fix to XM.COM that corrects the port
|
||||
specification when doing a send.
|
||||
|
||||
- Dean Jenkins enhanced the build process to accommodate the Raspberry
|
||||
Pi 4.
|
||||
|
||||
- Tom Plano has contributed a new utility (HTALK) to allow talking
|
||||
directly to HBIOS COM ports.
|
||||
|
||||
- Lars Nelson has contributed several generic utilities such as a
|
||||
universal (OS agnostic) UNARC application.
|
||||
|
||||
- Dylan Hall added support for specifying a secondary console.
|
||||
|
||||
- Bill Shen has contributed boot loaders for several of his systems.
|
||||
|
||||
- Laszlo Szolnoki has contributed an EF9345 video display controller
|
||||
driver.
|
||||
|
||||
- Ladislau Szilagyi has contributed an enhanced version of CP/M Cowgol
|
||||
that leverages RomWBW memory banking.
|
||||
|
||||
- Les Bird has contributed support for the NABU w/ Option Board
|
||||
|
||||
Contributions of all kinds to RomWBW are very welcome.
|
||||
|
||||
# Licensing
|
||||
|
||||
RomWBW is free software: you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation, either version 3 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
RomWBW is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with RomWBW. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Portions of RomWBW were created by, contributed by, or derived from the
|
||||
work of others. It is believed that these works are being used in
|
||||
accordance with the intentions and/or licensing of their creators.
|
||||
|
||||
If anyone feels their work is being used outside of its intended
|
||||
licensing, please notify:
|
||||
|
||||
> Wayne Warthen
|
||||
> <wwarthen@gmail.com>
|
||||
|
||||
RomWBW is an aggregate work. It is composed of many individual,
|
||||
standalone programs that are distributed as a whole to function as a
|
||||
cohesive system. Each program may have its own licensing which may be
|
||||
different from other programs within the aggregate.
|
||||
|
||||
In some cases, a single program (e.g., CP/M Operating System) is
|
||||
composed of multiple components with different licenses. It is believed
|
||||
that in all such cases the licenses are compatible with GPL version 3.
|
||||
|
||||
RomWBW encourages code contributions from others. Contributors may
|
||||
assert their own copyright in their contributions by annotating the
|
||||
contributed source code appropriately. Contributors are further
|
||||
encouraged to submit their contributions via the RomWBW source code
|
||||
control system to ensure their contributions are clearly documented.
|
||||
|
||||
All contributions to RomWBW are subject to this license.
|
||||
|
||||
# Getting Assistance
|
||||
|
||||
The best way to get assistance with RomWBW or any aspect of the
|
||||
RetroBrew Computers projects is via one of the community forums:
|
||||
|
||||
- [RetroBrew Computers Forum](https://www.retrobrewcomputers.org/forum/)
|
||||
- [RC2014 Google
|
||||
Group](https://groups.google.com/forum/#!forum/rc2014-z80)
|
||||
- [retro-comp Google
|
||||
Group](https://groups.google.com/forum/#!forum/retro-comp)
|
||||
|
||||
Submission of issues and bugs are welcome at the [RomWBW GitHub
|
||||
Repository](https://github.com/wwarthen/RomWBW).
|
||||
|
||||
Also feel free to email Wayne Warthen at <wwarthen@gmail.com>.
|
||||
|
||||
|
||||
**RomWBW ReadMe** \
|
||||
Version 3.5 \
|
||||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
|
||||
15 Dec 2024
|
||||
|
||||
# Overview
|
||||
|
||||
RomWBW software provides a complete, commercial quality implementation
|
||||
of CP/M (and workalike) operating systems and applications for modern
|
||||
Z80/180/280 retro-computing hardware systems. A wide variety of
|
||||
platforms are supported including those produced by these developer
|
||||
communities:
|
||||
|
||||
- [RetroBrew Computers](https://www.retrobrewcomputers.org)
|
||||
(<https://www.retrobrewcomputers.org>)
|
||||
- [RC2014](https://rc2014.co.uk) (<https://rc2014.co.uk>),
|
||||
[RC2014-Z80](https://groups.google.com/g/rc2014-z80)
|
||||
(<https://groups.google.com/g/rc2014-z80>)
|
||||
- [Retro Computing](https://groups.google.com/g/retro-comp)
|
||||
(<https://groups.google.com/g/retro-comp>)
|
||||
- [Small Computer Central](https://smallcomputercentral.com/)
|
||||
(<https://smallcomputercentral.com/>)
|
||||
|
||||
A complete list of the currently supported platforms is found in the
|
||||
\[Installation\] section.
|
||||
|
||||
General features include:
|
||||
|
||||
- Z80 Family CPUs including Z80, Z180, and Z280
|
||||
- Banked memory services for several banking designs
|
||||
- Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip,
|
||||
Iomega
|
||||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO
|
||||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445
|
||||
- Keyboard (PS/2) drivers via VT8242 or PPI interfaces
|
||||
- Real time clock drivers including DS1302, BQ4845
|
||||
- OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and
|
||||
FreeRTOS
|
||||
- Built-in VT-100 terminal emulation support
|
||||
|
||||
RomWBW is distributed as both source code and pre-built ROM and disk
|
||||
images. Some of the provided software can be launched directly from the
|
||||
ROM firmware itself:
|
||||
|
||||
- System Monitor
|
||||
- Operating Systems (CP/M 2.2, ZSDOS)
|
||||
- ROM BASIC (Nascom BASIC and Tasty BASIC)
|
||||
- ROM Forth
|
||||
|
||||
A dynamic disk drive letter assignment mechanism allows mapping
|
||||
operating system drive letters to any available disk media.
|
||||
Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.)
|
||||
support the use of multiple slices (up to 256 per device). Each slice
|
||||
contains a complete CP/M filesystem and can be mapped independently to
|
||||
any drive letter. This overcomes the inherent size limitations in legacy
|
||||
OSes and allows up to 2GB of accessible storage on a single device.
|
||||
|
||||
The pre-built ROM firmware images are generally suitable for most users.
|
||||
However, it is also very easy to modify and build custom ROM images that
|
||||
fully tailor the firmware to your specific preferences. All tools
|
||||
required to build custom ROM firmware under Windows are included – no
|
||||
need to install assemblers, etc. The firmware can also be built using
|
||||
Linux or MacOS after confirming a few standard tools have been
|
||||
installed.
|
||||
|
||||
Multiple disk images are provided in the distribution. Most disk images
|
||||
contain a complete, bootable, ready-to-run implementation of a specific
|
||||
operating system. A “combo” disk image contains multiple slices, each
|
||||
with a full operating system implementation. If you use this disk image,
|
||||
you can easily pick whichever operating system you want to boot without
|
||||
changing media.
|
||||
|
||||
By design, RomWBW isolates all of the hardware specific functions in the
|
||||
ROM chip itself. The ROM provides a hardware abstraction layer such that
|
||||
all of the operating systems and applications on a disk will run on any
|
||||
RomWBW-based system. To put it simply, you can take a disk (or CF/SD/USB
|
||||
Card) and move it between systems transparently.
|
||||
|
||||
A tool is provided that allows you to access a FAT-12/16/32 filesystem.
|
||||
The FAT filesystem may be coresident on the same disk media as RomWBW
|
||||
slices or on stand-alone media. This makes exchanging files with modern
|
||||
OSes such as Windows, MacOS, and Linux very easy.
|
||||
|
||||
# Acquiring RomWBW
|
||||
|
||||
The [RomWBW Repository](https://github.com/wwarthen/RomWBW)
|
||||
(<https://github.com/wwarthen/RomWBW>) on GitHub is the official
|
||||
distribution location for all project source and documentation. The
|
||||
fully-built distribution releases are available on the [RomWBW Releases
|
||||
Page](https://github.com/wwarthen/RomWBW/releases)
|
||||
(<https://github.com/wwarthen/RomWBW/releases>) of the repository. On
|
||||
this page, you will normally see a Development Snapshot as well as
|
||||
recent stable releases. Unless you have a specific reason, I suggest you
|
||||
stick to the most recent stable release. Expand the “Assets” drop-down
|
||||
for the release you want to download, then select the asset named
|
||||
RomWBW-vX.X.X-Package.zip. The Package asset includes all pre-built ROM
|
||||
and Disk images as well as full source code. The other assets contain
|
||||
only source code and do not have the pre-built ROM or disk images.
|
||||
|
||||
All source code and distributions are maintained on GitHub. Code
|
||||
contributions are very welcome.
|
||||
|
||||
# Installation & Operation
|
||||
|
||||
In general, installation of RomWBW on your platform is very simple. You
|
||||
just need to program your ROM with the correct ROM image from the RomWBW
|
||||
distribution. Subsequently, you can write disk images on your disk
|
||||
drives (IDE disk, CF Card, SD Card, etc.) which then provides even more
|
||||
functionality.
|
||||
|
||||
Complete instructions for installation and operation of RomWBW are found
|
||||
in the [RomWBW User
|
||||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf).
|
||||
|
||||
## Documentation
|
||||
|
||||
Documentation for RomWBW includes:
|
||||
|
||||
- [RomWBW User
|
||||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf)
|
||||
- [RomWBW System
|
||||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20System%20Guide.pdf)
|
||||
- [RomWBW
|
||||
Applications](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Applications.pdf)
|
||||
- [RomWBW
|
||||
Errata](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Errata.pdf)
|
||||
|
||||
# Acknowledgments
|
||||
|
||||
I want to acknowledge that a great deal of the code and inspiration for
|
||||
RomWBW has been provided by or derived from the work of others in the
|
||||
RetroBrew Computers Community. I sincerely appreciate all of their
|
||||
contributions. The list below is probably missing many names – please
|
||||
let me know if I missed you!
|
||||
|
||||
- Andrew Lynch started it all when he created the N8VEM Z80 SBC which
|
||||
became the first platform RomWBW supported. Some of his original code
|
||||
can still be found in RomWBW.
|
||||
|
||||
- Dan Werner wrote much of the code from which RomWBW was originally
|
||||
derived and he has always been a great source of knowledge and advice.
|
||||
|
||||
- Douglas Goodall contributed code, time, testing, and advice in “the
|
||||
early days”. He created an entire suite of application programs to
|
||||
enhance the use of RomWBW. Unfortunately, they have become unusable
|
||||
due to internal changes within RomWBW. As of RomWBW 2.6, these
|
||||
applications are no longer provided.
|
||||
|
||||
- Sergey Kiselev created several hardware platforms for RomWBW including
|
||||
the very popular Zeta.
|
||||
|
||||
- David Giles created support for the Z180 CSIO which is now included SD
|
||||
Card driver.
|
||||
|
||||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the
|
||||
AY-3-8910 sound driver, DMA support, and a long list of general code
|
||||
and documentation enhancements.
|
||||
|
||||
- Ed Brindley contributed some of the code that supports the RCBus
|
||||
platform.
|
||||
|
||||
- Spencer Owen created the RC2014 series of hobbyist kit computers which
|
||||
has exponentially increased RomWBW usage. Some of his kits include
|
||||
RomWBW.
|
||||
|
||||
- Stephen Cousins has likewise created a series of hobbyist kit
|
||||
computers at Small Computer Central and is distributing RomWBW with
|
||||
many of them.
|
||||
|
||||
- Alan Cox has contributed some driver code and has provided a great
|
||||
deal of advice.
|
||||
|
||||
- The CP/NET client files were developed by Douglas Miller.
|
||||
|
||||
- Phillip Stevens contributed support for FreeRTOS.
|
||||
|
||||
- Curt Mayer contributed the original Linux / MacOS build process.
|
||||
|
||||
- UNA BIOS and FDISK80 are the products of John Coffman.
|
||||
|
||||
- FLASH4 is a product of Will Sowerbutts.
|
||||
|
||||
- CLRDIR is a product of Max Scane.
|
||||
|
||||
- Tasty Basic is a product of Dimitri Theulings.
|
||||
|
||||
- Dean Netherton contributed eZ80 CPU support, the sound driver
|
||||
interface, and the SN76489 sound driver.
|
||||
|
||||
- The RomWBW Disk Catalog document was produced by Mykl Orders.
|
||||
|
||||
- Rob Prouse has created many of the supplemental disk images including
|
||||
Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft BASIC Compiler,
|
||||
Microsoft Fortran Compiler, and a Games compendium.
|
||||
|
||||
- Martin R has provided substantial help reviewing and improving the
|
||||
User Guide and Applications documents.
|
||||
|
||||
- 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, the COPYSL utility, and also implemented
|
||||
feature for RomWBW configuration by NVRAM.
|
||||
|
||||
- Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
- Jose Collado has contributed enhancements to the TMS driver including
|
||||
compatibility with standard TMS register configuration.
|
||||
|
||||
- Kevin Boone has contributed a generic HBIOS date/time utility (WDATE).
|
||||
|
||||
- Matt Carroll has contributed a fix to XM.COM that corrects the port
|
||||
specification when doing a send.
|
||||
|
||||
- Dean Jenkins enhanced the build process to accommodate the Raspberry
|
||||
Pi 4.
|
||||
|
||||
- Tom Plano has contributed a new utility (HTALK) to allow talking
|
||||
directly to HBIOS COM ports.
|
||||
|
||||
- Lars Nelson has contributed several generic utilities such as a
|
||||
universal (OS agnostic) UNARC application.
|
||||
|
||||
- Dylan Hall added support for specifying a secondary console.
|
||||
|
||||
- Bill Shen has contributed boot loaders for several of his systems.
|
||||
|
||||
- Laszlo Szolnoki has contributed an EF9345 video display controller
|
||||
driver.
|
||||
|
||||
- Ladislau Szilagyi has contributed an enhanced version of CP/M Cowgol
|
||||
that leverages RomWBW memory banking.
|
||||
|
||||
- Les Bird has contributed support for the NABU w/ Option Board
|
||||
|
||||
Contributions of all kinds to RomWBW are very welcome.
|
||||
|
||||
# Licensing
|
||||
|
||||
RomWBW is free software: you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation, either version 3 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
RomWBW is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with RomWBW. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Portions of RomWBW were created by, contributed by, or derived from the
|
||||
work of others. It is believed that these works are being used in
|
||||
accordance with the intentions and/or licensing of their creators.
|
||||
|
||||
If anyone feels their work is being used outside of its intended
|
||||
licensing, please notify:
|
||||
|
||||
> Wayne Warthen
|
||||
> <wwarthen@gmail.com>
|
||||
|
||||
RomWBW is an aggregate work. It is composed of many individual,
|
||||
standalone programs that are distributed as a whole to function as a
|
||||
cohesive system. Each program may have its own licensing which may be
|
||||
different from other programs within the aggregate.
|
||||
|
||||
In some cases, a single program (e.g., CP/M Operating System) is
|
||||
composed of multiple components with different licenses. It is believed
|
||||
that in all such cases the licenses are compatible with GPL version 3.
|
||||
|
||||
RomWBW encourages code contributions from others. Contributors may
|
||||
assert their own copyright in their contributions by annotating the
|
||||
contributed source code appropriately. Contributors are further
|
||||
encouraged to submit their contributions via the RomWBW source code
|
||||
control system to ensure their contributions are clearly documented.
|
||||
|
||||
All contributions to RomWBW are subject to this license.
|
||||
|
||||
# Getting Assistance
|
||||
|
||||
The best way to get assistance with RomWBW or any aspect of the
|
||||
RetroBrew Computers projects is via one of the community forums:
|
||||
|
||||
- [RetroBrew Computers Forum](https://www.retrobrewcomputers.org/forum/)
|
||||
- [RC2014 Google
|
||||
Group](https://groups.google.com/forum/#!forum/rc2014-z80)
|
||||
- [retro-comp Google
|
||||
Group](https://groups.google.com/forum/#!forum/retro-comp)
|
||||
|
||||
Submission of issues and bugs are welcome at the [RomWBW GitHub
|
||||
Repository](https://github.com/wwarthen/RomWBW).
|
||||
|
||||
Also feel free to email Wayne Warthen at <wwarthen@gmail.com>.
|
||||
|
||||
600
ReadMe.txt
600
ReadMe.txt
@@ -1,299 +1,301 @@
|
||||
RomWBW ReadMe
|
||||
Wayne Warthen (wwarthen@gmail.com)
|
||||
06 Sep 2024
|
||||
|
||||
|
||||
|
||||
OVERVIEW
|
||||
|
||||
|
||||
RomWBW software provides a complete, commercial quality implementation
|
||||
of CP/M (and workalike) operating systems and applications for modern
|
||||
Z80/180/280 retro-computing hardware systems. A wide variety of
|
||||
platforms are supported including those produced by these developer
|
||||
communities:
|
||||
|
||||
- RetroBrew Computers (https://www.retrobrewcomputers.org)
|
||||
- RC2014 (https://rc2014.co.uk),
|
||||
RC2014-Z80 (https://groups.google.com/g/rc2014-z80)
|
||||
- Retro Computing (https://groups.google.com/g/retro-comp)
|
||||
- Small Computer Central (https://smallcomputercentral.com/)
|
||||
|
||||
A complete list of the currently supported platforms is found in the
|
||||
[Installation] section.
|
||||
|
||||
General features include:
|
||||
|
||||
- Z80 Family CPUs including Z80, Z180, and Z280
|
||||
- Banked memory services for several banking designs
|
||||
- Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip,
|
||||
Iomega
|
||||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO
|
||||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445
|
||||
- Keyboard (PS/2) drivers via VT8242 or PPI interfaces
|
||||
- Real time clock drivers including DS1302, BQ4845
|
||||
- OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and
|
||||
FreeRTOS
|
||||
- Built-in VT-100 terminal emulation support
|
||||
|
||||
RomWBW is distributed as both source code and pre-built ROM and disk
|
||||
images. Some of the provided software can be launched directly from the
|
||||
ROM firmware itself:
|
||||
|
||||
- System Monitor
|
||||
- Operating Systems (CP/M 2.2, ZSDOS)
|
||||
- ROM BASIC (Nascom BASIC and Tasty BASIC)
|
||||
- ROM Forth
|
||||
|
||||
A dynamic disk drive letter assignment mechanism allows mapping
|
||||
operating system drive letters to any available disk media.
|
||||
Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.)
|
||||
support the use of multiple slices (up to 256 per device). Each slice
|
||||
contains a complete CP/M filesystem and can be mapped independently to
|
||||
any drive letter. This overcomes the inherent size limitations in legacy
|
||||
OSes and allows up to 2GB of accessible storage on a single device.
|
||||
|
||||
The pre-built ROM firmware images are generally suitable for most users.
|
||||
However, it is also very easy to modify and build custom ROM images that
|
||||
fully tailor the firmware to your specific preferences. All tools
|
||||
required to build custom ROM firmware under Windows are included – no
|
||||
need to install assemblers, etc. The firmware can also be built using
|
||||
Linux or MacOS after confirming a few standard tools have been
|
||||
installed.
|
||||
|
||||
Multiple disk images are provided in the distribution. Most disk images
|
||||
contain a complete, bootable, ready-to-run implementation of a specific
|
||||
operating system. A “combo” disk image contains multiple slices, each
|
||||
with a full operating system implementation. If you use this disk image,
|
||||
you can easily pick whichever operating system you want to boot without
|
||||
changing media.
|
||||
|
||||
By design, RomWBW isolates all of the hardware specific functions in the
|
||||
ROM chip itself. The ROM provides a hardware abstraction layer such that
|
||||
all of the operating systems and applications on a disk will run on any
|
||||
RomWBW-based system. To put it simply, you can take a disk (or CF/SD/USB
|
||||
Card) and move it between systems transparently.
|
||||
|
||||
A tool is provided that allows you to access a FAT-12/16/32 filesystem.
|
||||
The FAT filesystem may be coresident on the same disk media as RomWBW
|
||||
slices or on stand-alone media. This makes exchanging files with modern
|
||||
OSes such as Windows, MacOS, and Linux very easy.
|
||||
|
||||
|
||||
|
||||
ACQUIRING ROMWBW
|
||||
|
||||
|
||||
The RomWBW Repository (https://github.com/wwarthen/RomWBW) on GitHub is
|
||||
the official distribution location for all project source and
|
||||
documentation. The fully-built distribution releases are available on
|
||||
the RomWBW Releases Page (https://github.com/wwarthen/RomWBW/releases)
|
||||
of the repository. On this page, you will normally see a Development
|
||||
Snapshot as well as recent stable releases. Unless you have a specific
|
||||
reason, I suggest you stick to the most recent stable release. Expand
|
||||
the “Assets” drop-down for the release you want to download, then select
|
||||
the asset named RomWBW-vX.X.X-Package.zip. The Package asset includes
|
||||
all pre-built ROM and Disk images as well as full source code. The other
|
||||
assets contain only source code and do not have the pre-built ROM or
|
||||
disk images.
|
||||
|
||||
All source code and distributions are maintained on GitHub. Code
|
||||
contributions are very welcome.
|
||||
|
||||
|
||||
|
||||
INSTALLATION & OPERATION
|
||||
|
||||
|
||||
In general, installation of RomWBW on your platform is very simple. You
|
||||
just need to program your ROM with the correct ROM image from the RomWBW
|
||||
distribution. Subsequently, you can write disk images on your disk
|
||||
drives (IDE disk, CF Card, SD Card, etc.) which then provides even more
|
||||
functionality.
|
||||
|
||||
Complete instructions for installation and operation of RomWBW are found
|
||||
in the RomWBW User Guide.
|
||||
|
||||
|
||||
Documentation
|
||||
|
||||
Documentation for RomWBW includes:
|
||||
|
||||
- RomWBW User Guide
|
||||
- RomWBW System Guide
|
||||
- RomWBW Applications
|
||||
- RomWBW Errata
|
||||
|
||||
|
||||
|
||||
ACKNOWLEDGMENTS
|
||||
|
||||
|
||||
I want to acknowledge that a great deal of the code and inspiration for
|
||||
RomWBW has been provided by or derived from the work of others in the
|
||||
RetroBrew Computers Community. I sincerely appreciate all of their
|
||||
contributions. The list below is probably missing many names – please
|
||||
let me know if I missed you!
|
||||
|
||||
- Andrew Lynch started it all when he created the N8VEM Z80 SBC which
|
||||
became the first platform RomWBW supported. Some of his original
|
||||
code can still be found in RomWBW.
|
||||
|
||||
- Dan Werner wrote much of the code from which RomWBW was originally
|
||||
derived and he has always been a great source of knowledge and
|
||||
advice.
|
||||
|
||||
- Douglas Goodall contributed code, time, testing, and advice in “the
|
||||
early days”. He created an entire suite of application programs to
|
||||
enhance the use of RomWBW. Unfortunately, they have become unusable
|
||||
due to internal changes within RomWBW. As of RomWBW 2.6, these
|
||||
applications are no longer provided.
|
||||
|
||||
- Sergey Kiselev created several hardware platforms for RomWBW
|
||||
including the very popular Zeta.
|
||||
|
||||
- David Giles created support for the Z180 CSIO which is now included
|
||||
SD Card driver.
|
||||
|
||||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the
|
||||
AY-3-8910 sound driver, DMA support, and a long list of general code
|
||||
and documentation enhancements.
|
||||
|
||||
- Ed Brindley contributed some of the code that supports the RCBus
|
||||
platform.
|
||||
|
||||
- Spencer Owen created the RC2014 series of hobbyist kit computers
|
||||
which has exponentially increased RomWBW usage. Some of his kits
|
||||
include RomWBW.
|
||||
|
||||
- Stephen Cousins has likewise created a series of hobbyist kit
|
||||
computers at Small Computer Central and is distributing RomWBW with
|
||||
many of them.
|
||||
|
||||
- Alan Cox has contributed some driver code and has provided a great
|
||||
deal of advice.
|
||||
|
||||
- The CP/NET client files were developed by Douglas Miller.
|
||||
|
||||
- Phillip Stevens contributed support for FreeRTOS.
|
||||
|
||||
- Curt Mayer contributed the original Linux / MacOS build process.
|
||||
|
||||
- UNA BIOS and FDISK80 are the products of John Coffman.
|
||||
|
||||
- FLASH4 is a product of Will Sowerbutts.
|
||||
|
||||
- CLRDIR is a product of Max Scane.
|
||||
|
||||
- Tasty Basic is a product of Dimitri Theulings.
|
||||
|
||||
- Dean Netherton contributed the sound driver interface and the
|
||||
SN76489 sound driver.
|
||||
|
||||
- The RomWBW Disk Catalog document was produced by Mykl Orders.
|
||||
|
||||
- Rob Prouse has created many of the supplemental disk images
|
||||
including Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft
|
||||
BASIC Compiler, Microsoft Fortran Compiler, and a Games compendium.
|
||||
|
||||
- Martin R has provided substantial help reviewing and improving the
|
||||
User Guide and Applications documents.
|
||||
|
||||
- Mark Pruden has also contributed a great deal of content to the User
|
||||
Guide.
|
||||
|
||||
- Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
- Jose Collado has contributed enhancements to the TMS driver
|
||||
including compatibility with standard TMS register configuration.
|
||||
|
||||
- Kevin Boone has contributed a generic HBIOS date/time utility
|
||||
(WDATE).
|
||||
|
||||
- Matt Carroll has contributed a fix to XM.COM that corrects the port
|
||||
specification when doing a send.
|
||||
|
||||
- Dean Jenkins enhanced the build process to accommodate the Raspberry
|
||||
Pi 4.
|
||||
|
||||
- Tom Plano has contributed a new utility (HTALK) to allow talking
|
||||
directly to HBIOS COM ports.
|
||||
|
||||
- Lars Nelson has contributed several generic utilities such as a
|
||||
universal (OS agnostic) UNARC application.
|
||||
|
||||
- Dylan Hall added support for specifying a secondary console.
|
||||
|
||||
- Bill Shen has contributed boot loaders for several of his systems.
|
||||
|
||||
- Laszlo Szolnoki has contributed an EF9345 video display controller
|
||||
driver.
|
||||
|
||||
- Ladislau Szilagyi has contributed an enhanced version of CP/M Cowgol
|
||||
that leverages RomWBW memory banking.
|
||||
|
||||
- Les Bird has contributed support for the NABU w/ Option Board
|
||||
|
||||
Contributions of all kinds to RomWBW are very welcome.
|
||||
|
||||
|
||||
|
||||
LICENSING
|
||||
|
||||
|
||||
RomWBW is free software: you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation, either version 3 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
RomWBW is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with RomWBW. If not, see https://www.gnu.org/licenses/.
|
||||
|
||||
Portions of RomWBW were created by, contributed by, or derived from the
|
||||
work of others. It is believed that these works are being used in
|
||||
accordance with the intentions and/or licensing of their creators.
|
||||
|
||||
If anyone feels their work is being used outside of its intended
|
||||
licensing, please notify:
|
||||
|
||||
Wayne Warthen
|
||||
wwarthen@gmail.com
|
||||
|
||||
RomWBW is an aggregate work. It is composed of many individual,
|
||||
standalone programs that are distributed as a whole to function as a
|
||||
cohesive system. Each program may have its own licensing which may be
|
||||
different from other programs within the aggregate.
|
||||
|
||||
In some cases, a single program (e.g., CP/M Operating System) is
|
||||
composed of multiple components with different licenses. It is believed
|
||||
that in all such cases the licenses are compatible with GPL version 3.
|
||||
|
||||
RomWBW encourages code contributions from others. Contributors may
|
||||
assert their own copyright in their contributions by annotating the
|
||||
contributed source code appropriately. Contributors are further
|
||||
encouraged to submit their contributions via the RomWBW source code
|
||||
control system to ensure their contributions are clearly documented.
|
||||
|
||||
All contributions to RomWBW are subject to this license.
|
||||
|
||||
|
||||
|
||||
GETTING ASSISTANCE
|
||||
|
||||
|
||||
The best way to get assistance with RomWBW or any aspect of the
|
||||
RetroBrew Computers projects is via one of the community forums:
|
||||
|
||||
- RetroBrew Computers Forum
|
||||
- RC2014 Google Group
|
||||
- retro-comp Google Group
|
||||
|
||||
Submission of issues and bugs are welcome at the RomWBW GitHub
|
||||
Repository.
|
||||
|
||||
Also feel free to email Wayne Warthen at wwarthen@gmail.com.
|
||||
RomWBW ReadMe
|
||||
Wayne Warthen (wwarthen@gmail.com)
|
||||
15 Dec 2024
|
||||
|
||||
|
||||
|
||||
OVERVIEW
|
||||
|
||||
|
||||
RomWBW software provides a complete, commercial quality implementation
|
||||
of CP/M (and workalike) operating systems and applications for modern
|
||||
Z80/180/280 retro-computing hardware systems. A wide variety of
|
||||
platforms are supported including those produced by these developer
|
||||
communities:
|
||||
|
||||
- RetroBrew Computers (https://www.retrobrewcomputers.org)
|
||||
- RC2014 (https://rc2014.co.uk),
|
||||
RC2014-Z80 (https://groups.google.com/g/rc2014-z80)
|
||||
- Retro Computing (https://groups.google.com/g/retro-comp)
|
||||
- Small Computer Central (https://smallcomputercentral.com/)
|
||||
|
||||
A complete list of the currently supported platforms is found in the
|
||||
[Installation] section.
|
||||
|
||||
General features include:
|
||||
|
||||
- Z80 Family CPUs including Z80, Z180, and Z280
|
||||
- Banked memory services for several banking designs
|
||||
- Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip,
|
||||
Iomega
|
||||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO
|
||||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445
|
||||
- Keyboard (PS/2) drivers via VT8242 or PPI interfaces
|
||||
- Real time clock drivers including DS1302, BQ4845
|
||||
- OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and
|
||||
FreeRTOS
|
||||
- Built-in VT-100 terminal emulation support
|
||||
|
||||
RomWBW is distributed as both source code and pre-built ROM and disk
|
||||
images. Some of the provided software can be launched directly from the
|
||||
ROM firmware itself:
|
||||
|
||||
- System Monitor
|
||||
- Operating Systems (CP/M 2.2, ZSDOS)
|
||||
- ROM BASIC (Nascom BASIC and Tasty BASIC)
|
||||
- ROM Forth
|
||||
|
||||
A dynamic disk drive letter assignment mechanism allows mapping
|
||||
operating system drive letters to any available disk media.
|
||||
Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.)
|
||||
support the use of multiple slices (up to 256 per device). Each slice
|
||||
contains a complete CP/M filesystem and can be mapped independently to
|
||||
any drive letter. This overcomes the inherent size limitations in legacy
|
||||
OSes and allows up to 2GB of accessible storage on a single device.
|
||||
|
||||
The pre-built ROM firmware images are generally suitable for most users.
|
||||
However, it is also very easy to modify and build custom ROM images that
|
||||
fully tailor the firmware to your specific preferences. All tools
|
||||
required to build custom ROM firmware under Windows are included – no
|
||||
need to install assemblers, etc. The firmware can also be built using
|
||||
Linux or MacOS after confirming a few standard tools have been
|
||||
installed.
|
||||
|
||||
Multiple disk images are provided in the distribution. Most disk images
|
||||
contain a complete, bootable, ready-to-run implementation of a specific
|
||||
operating system. A “combo” disk image contains multiple slices, each
|
||||
with a full operating system implementation. If you use this disk image,
|
||||
you can easily pick whichever operating system you want to boot without
|
||||
changing media.
|
||||
|
||||
By design, RomWBW isolates all of the hardware specific functions in the
|
||||
ROM chip itself. The ROM provides a hardware abstraction layer such that
|
||||
all of the operating systems and applications on a disk will run on any
|
||||
RomWBW-based system. To put it simply, you can take a disk (or CF/SD/USB
|
||||
Card) and move it between systems transparently.
|
||||
|
||||
A tool is provided that allows you to access a FAT-12/16/32 filesystem.
|
||||
The FAT filesystem may be coresident on the same disk media as RomWBW
|
||||
slices or on stand-alone media. This makes exchanging files with modern
|
||||
OSes such as Windows, MacOS, and Linux very easy.
|
||||
|
||||
|
||||
|
||||
ACQUIRING ROMWBW
|
||||
|
||||
|
||||
The RomWBW Repository (https://github.com/wwarthen/RomWBW) on GitHub is
|
||||
the official distribution location for all project source and
|
||||
documentation. The fully-built distribution releases are available on
|
||||
the RomWBW Releases Page (https://github.com/wwarthen/RomWBW/releases)
|
||||
of the repository. On this page, you will normally see a Development
|
||||
Snapshot as well as recent stable releases. Unless you have a specific
|
||||
reason, I suggest you stick to the most recent stable release. Expand
|
||||
the “Assets” drop-down for the release you want to download, then select
|
||||
the asset named RomWBW-vX.X.X-Package.zip. The Package asset includes
|
||||
all pre-built ROM and Disk images as well as full source code. The other
|
||||
assets contain only source code and do not have the pre-built ROM or
|
||||
disk images.
|
||||
|
||||
All source code and distributions are maintained on GitHub. Code
|
||||
contributions are very welcome.
|
||||
|
||||
|
||||
|
||||
INSTALLATION & OPERATION
|
||||
|
||||
|
||||
In general, installation of RomWBW on your platform is very simple. You
|
||||
just need to program your ROM with the correct ROM image from the RomWBW
|
||||
distribution. Subsequently, you can write disk images on your disk
|
||||
drives (IDE disk, CF Card, SD Card, etc.) which then provides even more
|
||||
functionality.
|
||||
|
||||
Complete instructions for installation and operation of RomWBW are found
|
||||
in the RomWBW User Guide.
|
||||
|
||||
|
||||
Documentation
|
||||
|
||||
Documentation for RomWBW includes:
|
||||
|
||||
- RomWBW User Guide
|
||||
- RomWBW System Guide
|
||||
- RomWBW Applications
|
||||
- RomWBW Errata
|
||||
|
||||
|
||||
|
||||
ACKNOWLEDGMENTS
|
||||
|
||||
|
||||
I want to acknowledge that a great deal of the code and inspiration for
|
||||
RomWBW has been provided by or derived from the work of others in the
|
||||
RetroBrew Computers Community. I sincerely appreciate all of their
|
||||
contributions. The list below is probably missing many names – please
|
||||
let me know if I missed you!
|
||||
|
||||
- Andrew Lynch started it all when he created the N8VEM Z80 SBC which
|
||||
became the first platform RomWBW supported. Some of his original
|
||||
code can still be found in RomWBW.
|
||||
|
||||
- Dan Werner wrote much of the code from which RomWBW was originally
|
||||
derived and he has always been a great source of knowledge and
|
||||
advice.
|
||||
|
||||
- Douglas Goodall contributed code, time, testing, and advice in “the
|
||||
early days”. He created an entire suite of application programs to
|
||||
enhance the use of RomWBW. Unfortunately, they have become unusable
|
||||
due to internal changes within RomWBW. As of RomWBW 2.6, these
|
||||
applications are no longer provided.
|
||||
|
||||
- Sergey Kiselev created several hardware platforms for RomWBW
|
||||
including the very popular Zeta.
|
||||
|
||||
- David Giles created support for the Z180 CSIO which is now included
|
||||
SD Card driver.
|
||||
|
||||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the
|
||||
AY-3-8910 sound driver, DMA support, and a long list of general code
|
||||
and documentation enhancements.
|
||||
|
||||
- Ed Brindley contributed some of the code that supports the RCBus
|
||||
platform.
|
||||
|
||||
- Spencer Owen created the RC2014 series of hobbyist kit computers
|
||||
which has exponentially increased RomWBW usage. Some of his kits
|
||||
include RomWBW.
|
||||
|
||||
- Stephen Cousins has likewise created a series of hobbyist kit
|
||||
computers at Small Computer Central and is distributing RomWBW with
|
||||
many of them.
|
||||
|
||||
- Alan Cox has contributed some driver code and has provided a great
|
||||
deal of advice.
|
||||
|
||||
- The CP/NET client files were developed by Douglas Miller.
|
||||
|
||||
- Phillip Stevens contributed support for FreeRTOS.
|
||||
|
||||
- Curt Mayer contributed the original Linux / MacOS build process.
|
||||
|
||||
- UNA BIOS and FDISK80 are the products of John Coffman.
|
||||
|
||||
- FLASH4 is a product of Will Sowerbutts.
|
||||
|
||||
- CLRDIR is a product of Max Scane.
|
||||
|
||||
- Tasty Basic is a product of Dimitri Theulings.
|
||||
|
||||
- Dean Netherton contributed eZ80 CPU support, the sound driver
|
||||
interface, and the SN76489 sound driver.
|
||||
|
||||
- The RomWBW Disk Catalog document was produced by Mykl Orders.
|
||||
|
||||
- Rob Prouse has created many of the supplemental disk images
|
||||
including Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft
|
||||
BASIC Compiler, Microsoft Fortran Compiler, and a Games compendium.
|
||||
|
||||
- Martin R has provided substantial help reviewing and improving the
|
||||
User Guide and Applications documents.
|
||||
|
||||
- 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, the COPYSL utility, and also implemented
|
||||
feature for RomWBW configuration by NVRAM.
|
||||
|
||||
- Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
- Jose Collado has contributed enhancements to the TMS driver
|
||||
including compatibility with standard TMS register configuration.
|
||||
|
||||
- Kevin Boone has contributed a generic HBIOS date/time utility
|
||||
(WDATE).
|
||||
|
||||
- Matt Carroll has contributed a fix to XM.COM that corrects the port
|
||||
specification when doing a send.
|
||||
|
||||
- Dean Jenkins enhanced the build process to accommodate the Raspberry
|
||||
Pi 4.
|
||||
|
||||
- Tom Plano has contributed a new utility (HTALK) to allow talking
|
||||
directly to HBIOS COM ports.
|
||||
|
||||
- Lars Nelson has contributed several generic utilities such as a
|
||||
universal (OS agnostic) UNARC application.
|
||||
|
||||
- Dylan Hall added support for specifying a secondary console.
|
||||
|
||||
- Bill Shen has contributed boot loaders for several of his systems.
|
||||
|
||||
- Laszlo Szolnoki has contributed an EF9345 video display controller
|
||||
driver.
|
||||
|
||||
- Ladislau Szilagyi has contributed an enhanced version of CP/M Cowgol
|
||||
that leverages RomWBW memory banking.
|
||||
|
||||
- Les Bird has contributed support for the NABU w/ Option Board
|
||||
|
||||
Contributions of all kinds to RomWBW are very welcome.
|
||||
|
||||
|
||||
|
||||
LICENSING
|
||||
|
||||
|
||||
RomWBW is free software: you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation, either version 3 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
RomWBW is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with RomWBW. If not, see https://www.gnu.org/licenses/.
|
||||
|
||||
Portions of RomWBW were created by, contributed by, or derived from the
|
||||
work of others. It is believed that these works are being used in
|
||||
accordance with the intentions and/or licensing of their creators.
|
||||
|
||||
If anyone feels their work is being used outside of its intended
|
||||
licensing, please notify:
|
||||
|
||||
Wayne Warthen
|
||||
wwarthen@gmail.com
|
||||
|
||||
RomWBW is an aggregate work. It is composed of many individual,
|
||||
standalone programs that are distributed as a whole to function as a
|
||||
cohesive system. Each program may have its own licensing which may be
|
||||
different from other programs within the aggregate.
|
||||
|
||||
In some cases, a single program (e.g., CP/M Operating System) is
|
||||
composed of multiple components with different licenses. It is believed
|
||||
that in all such cases the licenses are compatible with GPL version 3.
|
||||
|
||||
RomWBW encourages code contributions from others. Contributors may
|
||||
assert their own copyright in their contributions by annotating the
|
||||
contributed source code appropriately. Contributors are further
|
||||
encouraged to submit their contributions via the RomWBW source code
|
||||
control system to ensure their contributions are clearly documented.
|
||||
|
||||
All contributions to RomWBW are subject to this license.
|
||||
|
||||
|
||||
|
||||
GETTING ASSISTANCE
|
||||
|
||||
|
||||
The best way to get assistance with RomWBW or any aspect of the
|
||||
RetroBrew Computers projects is via one of the community forums:
|
||||
|
||||
- RetroBrew Computers Forum
|
||||
- RC2014 Google Group
|
||||
- retro-comp Google Group
|
||||
|
||||
Submission of issues and bugs are welcome at the RomWBW GitHub
|
||||
Repository.
|
||||
|
||||
Also feel free to email Wayne Warthen at wwarthen@gmail.com.
|
||||
|
||||
@@ -2,48 +2,37 @@
|
||||
setlocal
|
||||
|
||||
set TOOLS=..\..\Tools
|
||||
set APPBIN=..\..\Binary\Apps
|
||||
set PATH=%TOOLS%\tasm32;%TOOLS%\zxcc;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
set CPMDIR80=%TOOLS%/cpm/
|
||||
|
||||
call :asm syscopy || exit /b
|
||||
call :asm assign || exit /b
|
||||
call :asm format || exit /b
|
||||
call :asm talk || exit /b
|
||||
call :asm mode || exit /b
|
||||
call :asm rtc || exit /b
|
||||
call :asm timer || exit /b
|
||||
call :asm rtchb || exit /b
|
||||
|
||||
zxcc Z80ASM -SYSGEN/F || exit /b
|
||||
|
||||
pushd XM && call Build || exit /b & popd
|
||||
pushd FDU && call Build || exit /b & popd
|
||||
pushd Tune && call Build || exit /b & popd
|
||||
pushd FAT && call Build || exit /b & popd
|
||||
pushd Test && call Build || exit /b & popd
|
||||
pushd ZMP && call Build || exit /b & popd
|
||||
pushd ZMD && call Build || exit /b & popd
|
||||
pushd Dev && call Build || exit /b & popd
|
||||
pushd VGM && call Build || exit /b & popd
|
||||
pushd cpuspd && call Build || exit /b & popd
|
||||
pushd Survey && call Build || exit /b & popd
|
||||
pushd HTalk && call Build || exit /b & popd
|
||||
pushd BBCBASIC && call Build || exit /b & popd
|
||||
|
||||
copy *.com %APPBIN%\ || exit /b
|
||||
call :build syscopy || exit /b
|
||||
call :build assign || exit /b
|
||||
call :build format || exit /b
|
||||
call :build talk || exit /b
|
||||
call :build mode || exit /b
|
||||
call :build rtc || exit /b
|
||||
call :build timer || exit /b
|
||||
call :build sysgen || exit /b
|
||||
call :build XM || exit /b
|
||||
call :build FDU || exit /b
|
||||
call :build Tune || exit /b
|
||||
call :build FAT || exit /b
|
||||
call :build Test || exit /b
|
||||
call :build ZMP || exit /b
|
||||
call :build ZMD || exit /b
|
||||
call :build Dev || exit /b
|
||||
call :build VGM || exit /b
|
||||
call :build cpuspd || exit /b
|
||||
call :build reboot || exit /b
|
||||
call :build Survey || exit /b
|
||||
call :build HTalk || exit /b
|
||||
call :build BBCBASIC || exit /b
|
||||
call :build copysl || exit /b
|
||||
|
||||
goto :eof
|
||||
|
||||
:asm
|
||||
echo.
|
||||
echo Building %1...
|
||||
tasm -t80 -g3 -fFF %1.asm %1.com %1.lst || exit /b
|
||||
goto :eof
|
||||
|
||||
:asm180
|
||||
echo.
|
||||
echo Building %1...
|
||||
tasm -t180 -g3 -fFF %1.asm %1.com %1.lst || exit /b
|
||||
:build
|
||||
echo Building %1
|
||||
pushd %1 && call Build || exit /b & popd
|
||||
goto :eof
|
||||
|
||||
@@ -1,22 +1,32 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.bin del *.bin
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.hex del *.hex
|
||||
if exist *.prn del *.prn
|
||||
call :clean syscopy || exit /b
|
||||
call :clean assign || exit /b
|
||||
call :clean format || exit /b
|
||||
call :clean talk || exit /b
|
||||
call :clean mode || exit /b
|
||||
call :clean rtc || exit /b
|
||||
call :clean timer || exit /b
|
||||
call :clean sysgen || exit /b
|
||||
call :clean XM || exit /b
|
||||
call :clean FDU || exit /b
|
||||
call :clean Tune || exit /b
|
||||
call :clean FAT || exit /b
|
||||
call :clean Test || exit /b
|
||||
call :clean ZMP || exit /b
|
||||
call :clean ZMD || exit /b
|
||||
call :clean Dev || exit /b
|
||||
call :clean VGM || exit /b
|
||||
call :clean cpuspd || exit /b
|
||||
call :clean reboot || exit /b
|
||||
call :clean Survey || exit /b
|
||||
call :clean HTalk || exit /b
|
||||
call :clean BBCBASIC || exit /b
|
||||
call :clean copysl || exit /b
|
||||
|
||||
pushd XM && call Clean || exit /b 1 & popd
|
||||
pushd FDU && call Clean || exit /b 1 & popd
|
||||
pushd Tune && call Clean || exit /b 1 & popd
|
||||
pushd FAT && call Clean || exit /b 1 & popd
|
||||
pushd Test && call Clean || exit /b 1 & popd
|
||||
pushd ZMP && call Clean || exit /b 1 & popd
|
||||
pushd ZMD && call Clean || exit /b 1 & popd
|
||||
pushd Dev && call Clean || exit /b 1 & popd
|
||||
pushd VGM && call Clean || exit /b 1 & popd
|
||||
pushd cpuspd && call Clean || exit /b 1 & popd
|
||||
pushd Survey && call Clean || exit /b 1 & popd
|
||||
pushd HTalk && call Clean || exit /b 1 & popd
|
||||
pushd BBCBASIC && call Clean || exit /b 1 & popd
|
||||
goto :eof
|
||||
|
||||
:clean
|
||||
pushd %1 && call Clean || exit /b & popd
|
||||
goto :eof
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
OBJECTS = sysgen.com syscopy.com assign.com format.com talk.com \
|
||||
mode.com rtc.com timer.com rtchb.com
|
||||
SUBDIRS = HTalk XM FDU FAT Tune Test ZMP ZMD Dev VGM cpuspd Survey BBCBASIC
|
||||
DEST = ../../Binary/Apps
|
||||
SUBDIRS = HTalk XM FDU FAT Tune Test ZMP ZMD Dev VGM cpuspd reboot Survey BBCBASIC copysl \
|
||||
sysgen syscopy assign format talk mode rtc timer
|
||||
TOOLS =../../Tools
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
USETASM = 1
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=..\..\..\..\Tools
|
||||
|
||||
set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\zxcc;%PATH%
|
||||
|
||||
set CPMDIR80=%TOOLS%/cpm/
|
||||
|
||||
zxcc M80 -=2piotst/l || exit /b
|
||||
|
||||
@@ -1,41 +1,31 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set APPBIN=..\..\Binary\Apps
|
||||
|
||||
set TOOLS=..\..\..\Tools
|
||||
set PATH=%TOOLS%\tasm32;%TOOLS%\zxcc;%PATH%
|
||||
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
set CPMDIR80=%TOOLS%/cpm/
|
||||
|
||||
pushd DMAmon && call Build || exit /b & popd
|
||||
pushd tstdskng && call Build || exit /b & popd
|
||||
pushd inttest && call Build || exit /b & popd
|
||||
pushd ppidetst && call Build || exit /b & popd
|
||||
pushd ramtest && call Build || exit /b & popd
|
||||
pushd I2C && call Build || exit /b & popd
|
||||
pushd rzsz && call Build || exit /b & popd
|
||||
pushd vdctest && call Build || exit /b & popd
|
||||
pushd kbdtest && call Build || exit /b & popd
|
||||
pushd ps2info && call Build || exit /b & popd
|
||||
pushd 2piotst && call Build || exit /b & popd
|
||||
pushd piomon && call Build || exit /b & popd
|
||||
pushd banktest && call Build || exit /b & popd
|
||||
pushd portscan && call Build || exit /b & popd
|
||||
pushd sound && call Build || exit /b & popd
|
||||
call :build DMAmon || exit /b
|
||||
call :build tstdskng || exit /b
|
||||
call :build inttest || exit /b
|
||||
call :build ppidetst || exit /b
|
||||
call :build ramtest || exit /b
|
||||
call :build I2C || exit /b
|
||||
call :build rzsz || exit /b
|
||||
call :build vdctest || exit /b
|
||||
call :build kbdtest || exit /b
|
||||
call :build ps2info || exit /b
|
||||
call :build 2piotst || exit /b
|
||||
call :build piomon || exit /b
|
||||
call :build banktest || exit /b
|
||||
call :build portscan || exit /b
|
||||
call :build sound || exit /b
|
||||
call :build testh8p || exit /b
|
||||
|
||||
goto :eof
|
||||
|
||||
:asm
|
||||
echo.
|
||||
echo Building %1...
|
||||
tasm -t80 -g3 -fFF %1.asm %1.com %1.lst || exit /b
|
||||
goto :eof
|
||||
|
||||
:asm180
|
||||
echo.
|
||||
echo Building %1...
|
||||
tasm -t180 -g3 -fFF %1.asm %1.com %1.lst || exit /b
|
||||
:build
|
||||
echo Building %1
|
||||
pushd %1 && call Build || exit /b & popd
|
||||
goto :eof
|
||||
|
||||
@@ -22,3 +22,4 @@ pushd piomon && call Clean || exit /b 1 & popd
|
||||
pushd banktest && call Clean || exit /b 1 & popd
|
||||
pushd portscan && call Clean || exit /b 1 & popd
|
||||
pushd sound && call Clean || exit /b 1 & popd
|
||||
pushd testh8p && call Clean || exit /b 1 & popd
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,9 +5,9 @@ set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF i2cscan.asm i2cscan.com i2cscan.lst || exit /b
|
||||
tasm -t180 -g3 -fFF rtcds7.asm rtcds7.com rtcds7.lst || exit /b
|
||||
tasm -t180 -g3 -fFF i2clcd.asm i2clcd.com i2clcd.lst || exit /b
|
||||
tasm -t80 -g3 -fFF i2cscan.asm i2cscan.com i2cscan.lst || exit /b
|
||||
tasm -t80 -g3 -fFF rtcds7.asm rtcds7.com rtcds7.lst || exit /b
|
||||
tasm -t80 -g3 -fFF i2clcd.asm i2clcd.com i2clcd.lst || exit /b
|
||||
tasm -t80 -g3 -ff srom.asm srom.com srom.lst || exit /b
|
||||
|
||||
copy /Y i2c*.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
OBJECTS =
|
||||
SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz vdctest kbdtest ps2info 2piotst piomon banktest portscan sound
|
||||
DEST = ../../../Binary/Apps/Test
|
||||
# OBJECTS =
|
||||
SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz vdctest kbdtest ps2info 2piotst piomon banktest portscan sound testh8p
|
||||
# DEST = ../../../Binary/Apps/Test
|
||||
TOOLS =../../../Tools
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
@@ -5,7 +5,7 @@ set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF inttest.asm inttest.com inttest.lst || exit /b
|
||||
tasm -t80 -g3 -fFF inttest.asm inttest.com inttest.lst || exit /b
|
||||
|
||||
copy /Y inttest.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
copy /Y inttest.doc ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
@@ -5,7 +5,7 @@ set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF kbdtest.asm kbdtest.com kbdtest.lst || exit /b
|
||||
tasm -t80 -g3 -fFF kbdtest.asm kbdtest.com kbdtest.lst || exit /b
|
||||
|
||||
copy /Y kbdtest.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
|
||||
@@ -5,6 +5,6 @@ set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF piomon.asm piomon.com piomon.lst || exit /b
|
||||
tasm -t80 -g3 -fFF piomon.asm piomon.com piomon.lst || exit /b
|
||||
|
||||
copy /Y piomon.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
@@ -5,7 +5,7 @@ set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF ppidetst.asm ppidetst.com ppidetst.lst || exit /b
|
||||
tasm -t80 -g3 -fFF ppidetst.asm ppidetst.com ppidetst.lst || exit /b
|
||||
|
||||
copy /Y ppidetst.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
|
||||
@@ -5,6 +5,6 @@ set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF ps2info.asm ps2info.com ps2info.lst || exit /b
|
||||
tasm -t80 -g3 -fFF ps2info.asm ps2info.com ps2info.lst || exit /b
|
||||
|
||||
copy /Y ps2info.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
@@ -2,7 +2,7 @@ OBJECTS = ramtest.com
|
||||
DEST = ../../../../Binary/Apps/Test
|
||||
DOCDEST = ../../../../Doc
|
||||
TOOLS = ../../../../Tools
|
||||
OTHERS = loader.bin dbgmon.bin
|
||||
OTHERS = *.bin
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
ramtest.com: loader.bin dbgmon.bin
|
||||
|
||||
10
Source/Apps/Test/testh8p/Build.cmd
Normal file
10
Source/Apps/Test/testh8p/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF testh8p.asm testh8p.com testh8p.lst || exit /b
|
||||
|
||||
copy /Y testh8p.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
6
Source/Apps/Test/testh8p/Clean.cmd
Normal file
6
Source/Apps/Test/testh8p/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
9
Source/Apps/Test/testh8p/Makefile
Normal file
9
Source/Apps/Test/testh8p/Makefile
Normal file
@@ -0,0 +1,9 @@
|
||||
OBJECTS = testh8p.com
|
||||
# DOCS = testh8p.doc
|
||||
DEST = ../../../../Binary/Apps/Test
|
||||
DOCDEST = ../../../../Binary/Apps/Test
|
||||
TOOLS =../../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
238
Source/Apps/Test/testh8p/testh8p.asm
Normal file
238
Source/Apps/Test/testh8p/testh8p.asm
Normal file
@@ -0,0 +1,238 @@
|
||||
;===============================================================================
|
||||
; H8 Panel Test
|
||||
;===============================================================================
|
||||
;
|
||||
; AUTHOR: WAYNE WARTHEN (wwarthen@gmail.com)
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
;
|
||||
; Trivial utility to test the register pair display functionality of the
|
||||
; Heath H8 Front Panel.
|
||||
;
|
||||
; Program will display a set of known register values on the console,
|
||||
; then go into an infinite loop. The H8 panel can then be checked to
|
||||
; see if the correct values are displayed.
|
||||
;
|
||||
; There is no way to exit this program. You must reset your system.
|
||||
;
|
||||
;===============================================================================
|
||||
; Definitions
|
||||
;===============================================================================
|
||||
;
|
||||
stksiz .equ $40 ; Working stack size
|
||||
;
|
||||
restart .equ $0000 ; CP/M restart vector
|
||||
bdos .equ $0005 ; BDOS invocation vector
|
||||
;
|
||||
regA .equ $11
|
||||
regBC .equ $2233
|
||||
regDE .equ $4455
|
||||
regHL .equ $6677
|
||||
;
|
||||
;===============================================================================
|
||||
; Code Section
|
||||
;===============================================================================
|
||||
;
|
||||
;
|
||||
.org $100
|
||||
;
|
||||
; setup stack (save old value)
|
||||
ld (stksav),sp ; save stack
|
||||
ld sp,stack ; set new stack
|
||||
;
|
||||
ld de,str_prefix
|
||||
call prtstr
|
||||
;
|
||||
ld de,str_A
|
||||
ld hl,regA
|
||||
call prtreg
|
||||
ld de,str_BC
|
||||
ld hl,regBC
|
||||
call prtreg
|
||||
ld de,str_DE
|
||||
ld hl,regDE
|
||||
call prtreg
|
||||
ld de,str_HL
|
||||
ld hl,regHL
|
||||
call prtreg
|
||||
ld de,str_SP
|
||||
ld hl,regSP
|
||||
call prtreg
|
||||
ld de,str_PC
|
||||
ld hl,regPC
|
||||
call prtreg
|
||||
;
|
||||
ld a,regA
|
||||
ld bc,regBC
|
||||
ld de,regDE
|
||||
ld hl,regHL
|
||||
regPC: jr $
|
||||
;
|
||||
;
|
||||
;
|
||||
prtreg:
|
||||
call prtstr ; print label
|
||||
ld a,h ; first byte
|
||||
call prtoctbyte ; print it
|
||||
ld a,'.' ; separator
|
||||
call prtchr ; print it
|
||||
ld a,l ; second byte
|
||||
call prtoctbyte ; print it
|
||||
ret
|
||||
;
|
||||
;
|
||||
;
|
||||
prtoctbyte:
|
||||
rlca ; 2 ms bits
|
||||
rlca
|
||||
push af
|
||||
and %00000011 ; isolate
|
||||
add a,'0' ; make char
|
||||
call prtchr ; show it
|
||||
pop af
|
||||
rlca ; next 3 bits
|
||||
rlca
|
||||
rlca
|
||||
push af
|
||||
and %00000111 ; isolate
|
||||
add a,'0' ; make char
|
||||
call prtchr ; show it
|
||||
pop af
|
||||
rlca ; next 3 bits
|
||||
rlca
|
||||
rlca
|
||||
push af
|
||||
and %00000111 ; isolate
|
||||
add a,'0' ; make char
|
||||
call prtchr ; show it
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; Print character in A without destroying any registers
|
||||
;
|
||||
prtchr:
|
||||
push bc ; save registers
|
||||
push de
|
||||
push hl
|
||||
ld e,a ; character to print in E
|
||||
ld c,$02 ; BDOS function to output a character
|
||||
call bdos ; do it
|
||||
pop hl ; restore registers
|
||||
pop de
|
||||
pop bc
|
||||
ret
|
||||
;
|
||||
; Print a zero terminated string at (DE) without destroying any registers
|
||||
;
|
||||
prtstr:
|
||||
push de
|
||||
;
|
||||
prtstr1:
|
||||
ld a,(de) ; get next char
|
||||
or a
|
||||
jr z,prtstr2
|
||||
call prtchr
|
||||
inc de
|
||||
jr prtstr1
|
||||
;
|
||||
prtstr2:
|
||||
pop de ; restore registers
|
||||
ret
|
||||
;
|
||||
; Start a new line
|
||||
;
|
||||
crlf2:
|
||||
call crlf ; two of them
|
||||
crlf:
|
||||
push af ; preserve AF
|
||||
ld a,13 ; <CR>
|
||||
call prtchr ; print it
|
||||
ld a,10 ; <LF>
|
||||
call prtchr ; print it
|
||||
pop af ; restore AF
|
||||
ret
|
||||
;
|
||||
; Print the value in A in hex without destroying any registers
|
||||
;
|
||||
prthex:
|
||||
push af ; save AF
|
||||
push de ; save DE
|
||||
call hexascii ; convert value in A to hex chars in DE
|
||||
ld a,d ; get the high order hex char
|
||||
call prtchr ; print it
|
||||
ld a,e ; get the low order hex char
|
||||
call prtchr ; print it
|
||||
pop de ; restore DE
|
||||
pop af ; restore AF
|
||||
ret ; done
|
||||
;
|
||||
; print the hex word value in hl
|
||||
;
|
||||
prthexword:
|
||||
push af
|
||||
ld a,h
|
||||
call prthex
|
||||
ld a,l
|
||||
call prthex
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; print the hex dword value in de:hl
|
||||
;
|
||||
prthex32:
|
||||
push bc
|
||||
push de
|
||||
pop bc
|
||||
call prthexword
|
||||
push hl
|
||||
pop bc
|
||||
call prthexword
|
||||
pop bc
|
||||
ret
|
||||
;
|
||||
; Convert binary value in A to ascii hex characters in DE
|
||||
;
|
||||
hexascii:
|
||||
ld d,a ; save A in D
|
||||
call hexconv ; convert low nibble of A to hex
|
||||
ld e,a ; save it in E
|
||||
ld a,d ; get original value back
|
||||
rlca ; rotate high order nibble to low bits
|
||||
rlca
|
||||
rlca
|
||||
rlca
|
||||
call hexconv ; convert nibble
|
||||
ld d,a ; save it in D
|
||||
ret ; done
|
||||
;
|
||||
; Convert low nibble of A to ascii hex
|
||||
;
|
||||
hexconv:
|
||||
and $0F ; low nibble only
|
||||
add a,$90
|
||||
daa
|
||||
adc a,$40
|
||||
daa
|
||||
ret
|
||||
;
|
||||
;===============================================================================
|
||||
; Storage Section
|
||||
;===============================================================================
|
||||
;
|
||||
rtcbuf .fill 6,$FF ; RTC data buffer
|
||||
;
|
||||
str_prefix .db "\r\n\r\nRegisters: ",0
|
||||
;
|
||||
str_A .db "A=",0
|
||||
str_BC .db ", BC=",0
|
||||
str_DE .db ", DE=",0
|
||||
str_HL .db ", HL=",0
|
||||
str_SP .db ", SP=",0
|
||||
str_PC .db ", PC=",0
|
||||
;
|
||||
stksav .dw 0 ; stack pointer saved at start
|
||||
.fill stksiz,0 ; stack
|
||||
stack .equ $ ; stack top
|
||||
regSP:
|
||||
;
|
||||
.end
|
||||
@@ -5,7 +5,7 @@ set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF tstdskng.asm tstdskng.com tstdskng.lst || exit /b
|
||||
tasm -t80 -g3 -fFF tstdskng.asm tstdskng.com tstdskng.lst || exit /b
|
||||
|
||||
copy /Y tstdskng.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF vdctest.asm vdctest.com vdctest.lst || exit /b
|
||||
tasm -t180 -g3 -fFF vdconly.asm vdconly.com vdconly.lst || exit /b
|
||||
tasm -t80 -g3 -fFF vdctest.asm vdctest.com vdctest.lst || exit /b
|
||||
tasm -t80 -g3 -fFF vdconly.asm vdconly.com vdconly.lst || exit /b
|
||||
|
||||
copy /Y vdctest.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
copy /Y vdconly.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
@@ -5,9 +5,9 @@ set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF -dWBW tune.asm tune.com tune.lst || exit /b
|
||||
tasm -t180 -g3 -fFF -dZX tune.asm tunezx.com tunezx.lst || exit /b
|
||||
tasm -t180 -g3 -fFF -dMSX tune.asm tunemsx.com tunemsx.lst || exit /b
|
||||
tasm -t80 -g3 -fFF -dWBW tune.asm tune.com tune.lst || exit /b
|
||||
tasm -t80 -g3 -fFF -dZX tune.asm tunezx.com tunezx.lst || exit /b
|
||||
tasm -t80 -g3 -fFF -dMSX tune.asm tunemsx.com tunemsx.lst || exit /b
|
||||
|
||||
copy /Y tune*.com ..\..\..\Binary\Apps\ || exit /b
|
||||
copy /Y Tunes\*.* ..\..\..\Binary\Apps\Tunes\ || exit /b
|
||||
@@ -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
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
; 2024-05-10 [WBW] Hack to avoid corrupting bits 6&7 of PSG R7 for NABU!
|
||||
; 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:
|
||||
@@ -72,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
|
||||
@@ -105,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
|
||||
@@ -124,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
|
||||
@@ -636,12 +659,26 @@ CFGSIZ .EQU $ - CFGTBL
|
||||
;
|
||||
.DB 17, $A4, $A5, $A4, $FF, $A6, $FE ; DUODYNE
|
||||
.DW HWSTR_DUO
|
||||
;
|
||||
.DB 18, $A0, $A1, $A2, $FF, $FF, $FF ; HEATH H8
|
||||
.DW HWSTR_HEATH
|
||||
;
|
||||
.DB 22, $41, $40, $40, $FF, $FF, $FF ; NABU
|
||||
.DW HWSTR_NABU
|
||||
;
|
||||
.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:
|
||||
@@ -668,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.10, 11-Jul-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
|
||||
@@ -695,6 +734,9 @@ HWSTR_LINC .DB "Z50 LiNC Sound Module",0
|
||||
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
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF -dWBW vgmplay.asm vgmplay.com vgmplay.lst || exit /b
|
||||
tasm -t180 -g3 -fFF -dWBW ymfmdemo.asm ymfmdemo.com ymfmdemo.lst || exit /b
|
||||
tasm -t80 -g3 -fFF -dWBW vgmplay.asm vgmplay.com vgmplay.lst || exit /b
|
||||
tasm -t80 -g3 -fFF -dWBW ymfmdemo.asm ymfmdemo.com ymfmdemo.lst || exit /b
|
||||
|
||||
copy /Y vgmplay.com ..\..\..\Binary\Apps\ || exit /b
|
||||
copy /Y Tunes\*.vgm ..\..\..\Binary\Apps\Tunes\ || exit /b
|
||||
|
||||
@@ -3478,7 +3478,17 @@ RSDMA: LXI D,TBUF ; Reset DMA address
|
||||
RET
|
||||
;
|
||||
WRERR: CALL RSDMA ; Reset DMA to normal
|
||||
MVI C,CAN ; Cancel
|
||||
; [WBW] BEGIN: Fixed to put CAN character in A instead of C because
|
||||
; SEND uses the A register. Also increased number of CAN characters
|
||||
; sent to 3. Credit to HubertH for finding this and providing the fix.
|
||||
; MVI C,CAN ; Cancel
|
||||
; [WBW] -----
|
||||
MVI A,CAN ; Cancel
|
||||
CALL SEND ; Sender
|
||||
MVI A,CAN ; Cancel
|
||||
CALL SEND ; Sender
|
||||
MVI A,CAN ; Cancel
|
||||
; [WBW] END
|
||||
CALL SEND ; Sender
|
||||
; [WBW] BEGIN: RCVSABT does not return, so file write error
|
||||
; message was never being displayed. Swapped things around
|
||||
|
||||
10
Source/Apps/assign/Build.cmd
Normal file
10
Source/Apps/assign/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF assign.asm assign.com assign.lst || exit /b
|
||||
|
||||
copy /Y assign.com ..\..\..\Binary\Apps\ || exit /b
|
||||
6
Source/Apps/assign/Clean.cmd
Normal file
6
Source/Apps/assign/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
7
Source/Apps/assign/Makefile
Normal file
7
Source/Apps/assign/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = assign.com
|
||||
DEST = ../../../Binary/Apps
|
||||
TOOLS =../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
@@ -51,7 +51,7 @@ bnksel .equ $FFF3 ; HBIOS bank select vector
|
||||
;
|
||||
stamp .equ $40 ; loc of RomWBW CBIOS zero page stamp
|
||||
;
|
||||
#include "../ver.inc"
|
||||
#include "../../ver.inc"
|
||||
;
|
||||
;===============================================================================
|
||||
; Code Section
|
||||
8
Source/Apps/copysl/Build.cmd
Normal file
8
Source/Apps/copysl/Build.cmd
Normal file
@@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
:: copysl.com is currently distributed as a binary application, so
|
||||
:: it is not built here.
|
||||
|
||||
copy /Y copysl.com ..\..\..\Binary\Apps\ || exit /b
|
||||
copy /Y copysl.doc ..\..\..\Binary\Apps\ || exit /b
|
||||
5
Source/Apps/copysl/Clean.cmd
Normal file
5
Source/Apps/copysl/Clean.cmd
Normal file
@@ -0,0 +1,5 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
:: copysl.com is currently distributed as a binary application, so
|
||||
:: we do not delete the .COM file.
|
||||
7
Source/Apps/copysl/Makefile
Normal file
7
Source/Apps/copysl/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = copysl.com
|
||||
NODELETE = $(OBJECTS)
|
||||
DOCS = copysl.doc
|
||||
DEST = ../../../Binary/Apps
|
||||
DOCDEST = ../../../Binary/Apps
|
||||
TOOLS=../../../Tools
|
||||
include $(TOOLS)/Makefile.inc
|
||||
BIN
Source/Apps/copysl/copysl.com
Normal file
BIN
Source/Apps/copysl/copysl.com
Normal file
Binary file not shown.
98
Source/Apps/copysl/copysl.doc
Normal file
98
Source/Apps/copysl/copysl.doc
Normal file
@@ -0,0 +1,98 @@
|
||||
==========================================================================
|
||||
CopySlice Utility v0.2 for RomWbW computers
|
||||
written by Mark Pruden (Sept 2024)
|
||||
==========================================================================
|
||||
|
||||
Purpose:
|
||||
--------
|
||||
|
||||
The purpose of this utility is to allow the copying of whole disk slices
|
||||
from one disk slice to another slice
|
||||
|
||||
Background
|
||||
----------
|
||||
|
||||
This tool is only supported by RomWBW HBIOS, it uses HDIOS for all its
|
||||
disk IO. UNA UBIOS is not supported by this tool.
|
||||
|
||||
This tool is running on CP/M 2.2 or 3.0 and has access to full 64kb of
|
||||
RAM, with a minimum of 48kb TPA
|
||||
|
||||
This tool only works with hard disk devices, other media types like
|
||||
floppy, are not supported at this time. This tool works across different
|
||||
hard disk device types, even of different physical type
|
||||
|
||||
Both hd1k and hd512 are fully supported, however copying from one layout
|
||||
type to the other is not supported.
|
||||
|
||||
During operation data is copied in a single read/write pass, data is not
|
||||
verified by default. If there is a write error, it will be reported, and
|
||||
operation will stop.
|
||||
|
||||
General Usage
|
||||
-------------
|
||||
This tool operates at the disk level via RomWBW, thus all disk identifiers
|
||||
are in the RomWBW <disk>.<unit> format
|
||||
|
||||
The syntax (similar to copy) for the command is:
|
||||
|
||||
COPYSL <destunit>[.<slice>]=<srcunit>[.<slice>] [/options]
|
||||
|
||||
E.g.
|
||||
|
||||
COPYSL 3.3=2.10 /U
|
||||
|
||||
Means copy from slice 10 on disk 2, onto disk 3 slice 3. This is in
|
||||
unattended mode, so you will not be asked to confirm the copy operation.
|
||||
|
||||
Options
|
||||
-------
|
||||
F - Full disk copy. Copies the complete disk slice, all sectors.
|
||||
U - Unattended. Will complete copy without confirmation from the user.
|
||||
V - Verify. Does an additional read and verify after write.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
When run COPYSL will perform command line argument validation and display
|
||||
an error if they are illegal. Also any disk IO errors will cause COPYSL
|
||||
to exit.
|
||||
|
||||
When specifying slice number(s) a check is made that the slice number is
|
||||
valid, i.e. not too large that it would extend past the end of the
|
||||
partition (hd1k), or the end of the media (hd512). For hd512 a check is
|
||||
also performed to ensure that the slice would not extend into the first
|
||||
defined partition.
|
||||
|
||||
The copy operation will be faster if the source disk has been formatted
|
||||
with the CP/M file system, since during copy the CP/M directory is scanned,
|
||||
and unused blocks are not copied.
|
||||
|
||||
If a filesystem is not found, (or the /F option is chosen) all data is
|
||||
copied.
|
||||
|
||||
Verification (if option chosen) will do an aditional read (after write)
|
||||
and compare the data read matches what was written. This compare is only
|
||||
on every 32'nd byte. This is done for efficiency.
|
||||
|
||||
During copy dots "." will be displayed to indicate progress of the copy.
|
||||
Each "." represents 16 kBytes of data. Each line of "." 's is 1 mBytes.
|
||||
|
||||
Testing
|
||||
-------
|
||||
This tool has been writen and tested on a SC126 computer. Testing been on both
|
||||
SD and CF media types, and with both hd1k and hd512 formats
|
||||
|
||||
History
|
||||
-------
|
||||
* v 0.1 Initial Release
|
||||
* v 0.2 Added the /v command option to read and verify after write
|
||||
|
||||
Future
|
||||
------
|
||||
* support ability to read and write from image files stored in CP/M filesystem
|
||||
* maybe the verify options could allow more complete verification.
|
||||
This would be at the cost of performance
|
||||
* ability to abort once the copy has started <ctrl><c>
|
||||
|
||||
|
||||
@@ -5,6 +5,6 @@ set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF cpuspd.asm cpuspd.com cpuspd.lst || exit /b
|
||||
tasm -t80 -g3 -fFF cpuspd.asm cpuspd.com cpuspd.lst || exit /b
|
||||
|
||||
copy /Y cpuspd.com ..\..\..\Binary\Apps\ || exit /b
|
||||
|
||||
@@ -23,6 +23,12 @@ rtc_port .equ $70 ; RTC latch port adr
|
||||
restart .equ $0000 ; CP/M restart vector
|
||||
bdos .equ $0005 ; BDOS invocation vector
|
||||
;
|
||||
bf_sysreset .equ $F0 ; restart system
|
||||
;
|
||||
bf_sysres_int .equ $00 ; reset hbios internal
|
||||
bf_sysres_warm .equ $01 ; warm start (restart boot loader)
|
||||
bf_sysres_cold .equ $02 ; cold start
|
||||
;
|
||||
ident .equ $FFFE ; loc of RomWBW HBIOS ident ptr
|
||||
;
|
||||
;=======================================================================
|
||||
@@ -113,6 +119,10 @@ main1:
|
||||
;
|
||||
main2:
|
||||
ret z ; if end, nothing to do
|
||||
cp 'W' ; warm boot?
|
||||
jp z,wboot ; if so, do it
|
||||
cp 'C' ; cold boot?
|
||||
jp z,cboot ; if so, do it
|
||||
cp ',' ; no new speed?
|
||||
jr z,main2a ; go to wait states
|
||||
; parse speed string (half, full, double)
|
||||
@@ -161,6 +171,9 @@ parse_spd:
|
||||
ld c,2 ; assume double speed
|
||||
cp 'D' ; check it
|
||||
jr z,parse_spd1 ; if equal, done
|
||||
ld c,3 ; assume quad speed
|
||||
cp 'Q' ; check it
|
||||
jr z,parse_spd1 ; if equal, done
|
||||
or a ; clear CF
|
||||
ccf ; set CF to indicate error
|
||||
ret
|
||||
@@ -222,6 +235,9 @@ show_spd:
|
||||
ld de,str_dbl
|
||||
cp 2
|
||||
jr z,show_spd1
|
||||
ld de,str_quad
|
||||
cp 3
|
||||
jr z,show_spd1
|
||||
jp err_invalid
|
||||
show_spd1:
|
||||
call prtstr
|
||||
@@ -267,6 +283,24 @@ usage:
|
||||
or $FF
|
||||
ret
|
||||
;
|
||||
; Handle Warm Boot
|
||||
;
|
||||
wboot:
|
||||
ld de,str_warmboot ; message
|
||||
call prtstr ; display it
|
||||
ld b,bf_sysreset ; system restart
|
||||
ld c,bf_sysres_warm ; warm start
|
||||
call $fff0 ; call hbios
|
||||
;
|
||||
; Handle Cold Boot
|
||||
;
|
||||
cboot:
|
||||
ld de,str_coldboot ; message
|
||||
call prtstr ; display it
|
||||
ld b,bf_sysreset ; system restart
|
||||
ld c,bf_sysres_cold ; cold start
|
||||
call $fff0 ; call hbios
|
||||
;
|
||||
; Error Handlers
|
||||
;
|
||||
err_una:
|
||||
@@ -510,9 +544,6 @@ prtd3m2:
|
||||
call prtchr
|
||||
prtd3m3:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
;
|
||||
; Get the next non-blank character from (HL).
|
||||
;
|
||||
@@ -665,7 +696,7 @@ delay1:
|
||||
; Constants
|
||||
;=======================================================================
|
||||
;
|
||||
str_banner .db "RomWBW CPU Speed Selector v0.6, 29-Dec-2023",0
|
||||
str_banner .db "RomWBW CPU Speed Selector v1.0, 11-Sep-2024",0
|
||||
str_spacer .db " ",0
|
||||
str_oscspd .db " MHz Oscillator",0
|
||||
str_cpuspd .db " CPU speed is ",0
|
||||
@@ -674,8 +705,11 @@ str_mhz .db " MHz",0
|
||||
str_slow .db " (Half)",0
|
||||
str_full .db " (Full)",0
|
||||
str_dbl .db " (Double)",0
|
||||
str_quad .db " (Quad)",0
|
||||
str_memws .db " Memory Wait State(s)",0
|
||||
str_iows .db " I/O Wait State(s)",0
|
||||
str_warmboot .db "\r\n\r\nWarm booting...",0
|
||||
str_coldboot .db "\r\n\r\nCold booting...",0
|
||||
str_err_una .db " ERROR: UNA not supported by application",0
|
||||
str_err_inv .db " ERROR: Invalid BIOS (signature missing)",0
|
||||
str_err_ver .db " ERROR: Unexpected HBIOS version",0
|
||||
@@ -684,8 +718,10 @@ str_err_not_sup .db " ERROR: Platform or configuration does not support CPU sp
|
||||
str_err_invalid .db " ERROR: Invalid configuration!",0
|
||||
str_err_api .db " ERROR: HBIOS API error!",0
|
||||
str_usage .db " Usage: CPUSPD <cpuspd>,<memws>,<iows>\r\n"
|
||||
.db " CPUSPD (W)armBoot\r\n"
|
||||
.db " CPUSPD (C)oldBoot\r\n"
|
||||
.db "\r\n"
|
||||
.db " <cpuspd>: \"Half\", \"Full\", or \"Double\"\r\n"
|
||||
.db " <cpuspd>: (H)alf | (F)ull | (D)ouble | (Q)uad\r\n"
|
||||
.db " <memws>: Memory wait states\r\n"
|
||||
.db " <iows>: I/O wait states\r\n"
|
||||
.db "\r\n"
|
||||
|
||||
10
Source/Apps/format/Build.cmd
Normal file
10
Source/Apps/format/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF format.asm format.com format.lst || exit /b
|
||||
|
||||
copy /Y format.com ..\..\..\Binary\Apps\ || exit /b
|
||||
6
Source/Apps/format/Clean.cmd
Normal file
6
Source/Apps/format/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
7
Source/Apps/format/Makefile
Normal file
7
Source/Apps/format/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = format.com
|
||||
DEST = ../../../Binary/Apps
|
||||
TOOLS =../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
@@ -19,7 +19,7 @@
|
||||
; 1) Actually implement this
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
#include "../ver.inc"
|
||||
#include "../../ver.inc"
|
||||
;
|
||||
;===============================================================================
|
||||
; Definitions
|
||||
10
Source/Apps/mode/Build.cmd
Normal file
10
Source/Apps/mode/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF mode.asm mode.com mode.lst || exit /b
|
||||
|
||||
copy /Y mode.com ..\..\..\Binary\Apps\ || exit /b
|
||||
6
Source/Apps/mode/Clean.cmd
Normal file
6
Source/Apps/mode/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
7
Source/Apps/mode/Makefile
Normal file
7
Source/Apps/mode/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = mode.com
|
||||
DEST = ../../../Binary/Apps
|
||||
TOOLS =../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
@@ -37,7 +37,7 @@
|
||||
; 1) Implement flow control settings
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
#include "../ver.inc"
|
||||
#include "../../ver.inc"
|
||||
;
|
||||
;===============================================================================
|
||||
; Definitions
|
||||
10
Source/Apps/reboot/Build.cmd
Normal file
10
Source/Apps/reboot/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF reboot.asm reboot.com reboot.lst || exit /b
|
||||
|
||||
copy /Y reboot.com ..\..\..\Binary\Apps\ || exit /b
|
||||
6
Source/Apps/reboot/Clean.cmd
Normal file
6
Source/Apps/reboot/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
7
Source/Apps/reboot/Makefile
Normal file
7
Source/Apps/reboot/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = reboot.com
|
||||
DEST = ../../../Binary/Apps
|
||||
TOOLS =../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
299
Source/Apps/reboot/reboot.asm
Normal file
299
Source/Apps/reboot/reboot.asm
Normal file
@@ -0,0 +1,299 @@
|
||||
;==============================================================================
|
||||
; REBOOT - Allows the user to Cold or Warm Boot the RomWBW System
|
||||
; Version 1.0 12-October-2024
|
||||
;==============================================================================
|
||||
;
|
||||
; Author: MartinR (October 2024)
|
||||
; Based **very heavily** on code by Wayne Warthen (wwarthen@gmail.com)
|
||||
;______________________________________________________________________________
|
||||
;
|
||||
; Usage:
|
||||
; REBOOT [/C] [/W] [/?]
|
||||
; ex: REBOOT Display version and usage
|
||||
; REBOOT /? Display version and usage
|
||||
; REBOOT /C Cold boot RomWBW system
|
||||
; REBOOT /W Warm boot RomWBW system
|
||||
;
|
||||
; Operation:
|
||||
; Cold or warm boots a RomWBW system depending on the user option selected.
|
||||
;
|
||||
; This code will only execute on a Z80 CPU (or derivitive)
|
||||
;
|
||||
; This source code assembles with TASM V3.2 under Windows-11 using the
|
||||
; following command line:
|
||||
; tasm -80 -g3 -l REBOOT.ASM REBOOT.COM
|
||||
; ie: Z80 CPU; output format 'binary' named .COM (rather than .OBJ)
|
||||
; and includes a symbol table as part of the listing file.
|
||||
;______________________________________________________________________________
|
||||
;
|
||||
; Change Log:
|
||||
; 2024-09-11 [WBW] Release of RomWBW CPU Speed Selector v1.0 used as the basis
|
||||
; 2024-10-12 [MR ] Initial release of version 1.0
|
||||
;______________________________________________________________________________
|
||||
;
|
||||
; Include Files
|
||||
;
|
||||
#include "../../ver.inc" ; Used for building RomWBW
|
||||
#include "../../HBIOS/hbios.inc"
|
||||
|
||||
;#include "ver.inc" ; Used for testing purposes....
|
||||
;#include "hbios.inc" ; ....during code development
|
||||
;
|
||||
;===============================================================================
|
||||
;
|
||||
; General operational equates (should not requre adjustment)
|
||||
;
|
||||
stksiz .equ $40 ; Working stack size
|
||||
;
|
||||
restart .equ $0000 ; CP/M restart vector
|
||||
bdos .equ $0005 ; BDOS invocation vector
|
||||
;
|
||||
bf_sysreset .equ $F0 ; restart system
|
||||
bf_sysres_int .equ $00 ; reset hbios internal
|
||||
bf_sysres_warm .equ $01 ; warm start (restart boot loader)
|
||||
bf_sysres_cold .equ $02 ; cold start
|
||||
;
|
||||
ident .equ $FFFE ; loc of RomWBW HBIOS ident ptr
|
||||
;
|
||||
;===============================================================================
|
||||
;
|
||||
.org $0100 ; standard CP/M TPA executable
|
||||
;
|
||||
; setup stack (save old value)
|
||||
ld (stksav),sp ; save stack
|
||||
ld sp,stack ; set new stack
|
||||
;
|
||||
call crlf
|
||||
ld de,str_banner ; banner
|
||||
call prtstr
|
||||
;
|
||||
; initialization
|
||||
call init ; initialize
|
||||
jr nz,exit ; abort if init fails
|
||||
;
|
||||
call main ; do the real work
|
||||
;
|
||||
exit:
|
||||
; clean up and return to command processor
|
||||
call crlf ; formatting
|
||||
ld sp,(stksav) ; restore stack
|
||||
jp restart ; return to CP/M via restart
|
||||
;
|
||||
;
|
||||
;===============================================================================
|
||||
; Main Program
|
||||
;===============================================================================
|
||||
;
|
||||
; Initialization
|
||||
;
|
||||
init:
|
||||
; check for UNA (UBIOS)
|
||||
ld a,($FFFD) ; fixed location of UNA API vector
|
||||
cp $C3 ; jp instruction?
|
||||
jr nz,initwbw ; if not, not UNA
|
||||
ld hl,($FFFE) ; get jp address
|
||||
ld a,(hl) ; get byte at target address
|
||||
cp $FD ; first byte of UNA push ix instruction
|
||||
jr nz,initwbw ; if not, not UNA
|
||||
inc hl ; point to next byte
|
||||
ld a,(hl) ; get next byte
|
||||
cp $E5 ; second byte of UNA push ix instruction
|
||||
jr nz,initwbw ; if not, not UNA
|
||||
jp err_una ; UNA not supported
|
||||
;
|
||||
initwbw:
|
||||
; get location of config data and verify integrity
|
||||
ld hl,(ident) ; HL := adr or RomWBW HBIOS ident
|
||||
ld a,(hl) ; get first byte of RomWBW marker
|
||||
cp 'W' ; match?
|
||||
jp nz,err_inv ; abort with invalid config block
|
||||
inc hl ; next byte (marker byte 2)
|
||||
ld a,(hl) ; load it
|
||||
cp ~'W' ; match?
|
||||
jp nz,err_inv ; abort with invalid config block
|
||||
inc hl ; next byte (major/minor version)
|
||||
ld a,(hl) ; load it
|
||||
cp rmj << 4 | rmn ; match?
|
||||
jp nz,err_ver ; abort with invalid os version
|
||||
;
|
||||
initz:
|
||||
; initialization complete
|
||||
xor a ; signal success
|
||||
ret ; return
|
||||
;
|
||||
;
|
||||
;
|
||||
main:
|
||||
; skip to start of first command line parameter
|
||||
ld ix,$0081 ; point to start of parm area (past length byte)
|
||||
call nonblank ; skip to next non-blank char
|
||||
cp '/' ; option prefix?
|
||||
jr nz,usage ; display help info & exit if nothing to do
|
||||
;
|
||||
; process any options
|
||||
inc ix ; fetch next character and process
|
||||
ld a,(ix)
|
||||
call upcase ; ensure it's an upper case character
|
||||
cp 'C' ; if it's a 'C' then
|
||||
jr z,cboot ; do a cold boot.
|
||||
cp 'W' ; if it's a 'W' then
|
||||
jr z,wboot ; do a warm boot.
|
||||
cp '?' ; if it's a '?' then
|
||||
jr z,usage ; display usage info and exit.
|
||||
jr err_parm ; or not a recognised option, so report and exit.
|
||||
;
|
||||
; Handle Usage Information
|
||||
;
|
||||
usage:
|
||||
call crlf2 ; display the options for this utility
|
||||
ld de,str_usage
|
||||
call prtstr
|
||||
or $FF
|
||||
ret ; exit back out to CP/M CCP
|
||||
;
|
||||
; Handle Warm Boot
|
||||
;
|
||||
wboot:
|
||||
ld de,str_warmboot ; message
|
||||
call prtstr ; display it
|
||||
ld b,bf_sysreset ; system restart
|
||||
ld c,bf_sysres_warm ; warm start
|
||||
call $fff0 ; call hbios
|
||||
;
|
||||
; Handle Cold Boot
|
||||
;
|
||||
cboot:
|
||||
ld de,str_coldboot ; message
|
||||
call prtstr ; display it
|
||||
ld b,bf_sysreset ; system restart
|
||||
ld c,bf_sysres_cold ; cold start
|
||||
call $fff0 ; call hbios
|
||||
;
|
||||
;===============================================================================
|
||||
; Error Handlers
|
||||
;===============================================================================
|
||||
;
|
||||
err_una:
|
||||
ld de,str_err_una
|
||||
jr err_ret
|
||||
err_inv:
|
||||
ld de,str_err_inv
|
||||
jr err_ret
|
||||
err_ver:
|
||||
ld de,str_err_ver
|
||||
jr err_ret
|
||||
err_parm:
|
||||
ld de,str_err_parm
|
||||
jr err_ret
|
||||
|
||||
;
|
||||
err_ret:
|
||||
call crlf2
|
||||
call prtstr
|
||||
or $FF ; signal error
|
||||
ret
|
||||
;
|
||||
;===============================================================================
|
||||
; Utility Routines
|
||||
;===============================================================================
|
||||
;
|
||||
; Print character in A without destroying any registers
|
||||
;
|
||||
prtchr:
|
||||
push af
|
||||
push bc ; save registers
|
||||
push de
|
||||
push hl
|
||||
ld e,a ; character to print in E
|
||||
ld c,$02 ; BDOS function to output a character
|
||||
call bdos ; do it
|
||||
pop hl ; restore registers
|
||||
pop de
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; Start a new line
|
||||
;
|
||||
crlf2:
|
||||
call crlf ; two of them
|
||||
crlf:
|
||||
push af ; preserve AF
|
||||
ld a,13 ; <CR>
|
||||
call prtchr ; print it
|
||||
ld a,10 ; <LF>
|
||||
call prtchr ; print it
|
||||
pop af ; restore AF
|
||||
ret
|
||||
;
|
||||
; Print a zero terminated string at (de) without destroying any registers
|
||||
;
|
||||
prtstr:
|
||||
push af
|
||||
push de
|
||||
;
|
||||
prtstr1:
|
||||
ld a,(de) ; get next char
|
||||
or a
|
||||
jr z,prtstr2
|
||||
call prtchr
|
||||
inc de
|
||||
jr prtstr1
|
||||
;
|
||||
prtstr2:
|
||||
pop de ; restore registers
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; Get the next non-blank character from (ix)
|
||||
;
|
||||
nonblank:
|
||||
ld a,(ix) ; load next character
|
||||
or a ; string ends with a null
|
||||
ret z ; if null, return pointing to null
|
||||
cp ' ' ; check for blank
|
||||
ret nz ; return if not blank
|
||||
inc ix ; if blank, increment character pointer
|
||||
jr nonblank ; and loop
|
||||
;
|
||||
; Convert character in A to uppercase
|
||||
;
|
||||
upcase:
|
||||
cp 'a' ; if below 'a'
|
||||
ret c ; ... do nothing and return
|
||||
cp 'z' + 1 ; if above 'z'
|
||||
ret nc ; ... do nothing and return
|
||||
res 5,a ; clear bit 5 to make lower case -> upper case
|
||||
ret ; and return
|
||||
;
|
||||
;===============================================================================
|
||||
; Constants
|
||||
;===============================================================================
|
||||
;
|
||||
str_banner .db "RomWBW Reboot Utility, Version 1.0, 12-Oct-2024\r\n"
|
||||
.db " Wayne Warthen (wwarthen@gmail.com) & MartinR",0
|
||||
;
|
||||
str_warmboot .db "\r\n\r\nWarm booting...\r\n",0
|
||||
str_coldboot .db "\r\n\r\nCold booting...\r\n",0
|
||||
;
|
||||
str_err_una .db " ERROR: UNA not supported by application",0
|
||||
str_err_inv .db " ERROR: Invalid BIOS (signature missing)",0
|
||||
str_err_ver .db " ERROR: Unexpected HBIOS version",0
|
||||
str_err_parm .db " ERROR: Parameter error (REBOOT /? for usage)",0
|
||||
;
|
||||
str_usage .db " Usage: REBOOT /? - Display this help info.\r\n"
|
||||
.db " REBOOT /W - Warm boot system\r\n"
|
||||
.db " REBOOT /C - Cold boot system\r\n"
|
||||
.db " Options are case insensitive.\r\n",0
|
||||
;
|
||||
;===============================================================================
|
||||
; Working data
|
||||
;===============================================================================
|
||||
;
|
||||
stksav .dw 0 ; stack pointer saved at start
|
||||
.fill stksiz,0 ; stack
|
||||
stack .equ $ ; stack top
|
||||
;
|
||||
;===============================================================================
|
||||
;
|
||||
.end
|
||||
12
Source/Apps/rtc/Build.cmd
Normal file
12
Source/Apps/rtc/Build.cmd
Normal file
@@ -0,0 +1,12 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF rtc.asm rtc.com rtc.lst || exit /b
|
||||
tasm -t80 -g3 -fFF rtchb.asm rtchb.com rtchb.lst || exit /b
|
||||
|
||||
copy /Y rtc.com ..\..\..\Binary\Apps\ || exit /b
|
||||
copy /Y rtchb.com ..\..\..\Binary\Apps\ || exit /b
|
||||
6
Source/Apps/rtc/Clean.cmd
Normal file
6
Source/Apps/rtc/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
7
Source/Apps/rtc/Makefile
Normal file
7
Source/Apps/rtc/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = rtc.com rtchb.com
|
||||
DEST = ../../../Binary/Apps
|
||||
TOOLS =../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
10
Source/Apps/syscopy/Build.cmd
Normal file
10
Source/Apps/syscopy/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF syscopy.asm syscopy.com syscopy.lst || exit /b
|
||||
|
||||
copy /Y syscopy.com ..\..\..\Binary\Apps\ || exit /b
|
||||
6
Source/Apps/syscopy/Clean.cmd
Normal file
6
Source/Apps/syscopy/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
7
Source/Apps/syscopy/Makefile
Normal file
7
Source/Apps/syscopy/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = syscopy.com
|
||||
DEST = ../../../Binary/Apps
|
||||
TOOLS =../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user