Browse Source

Merge pull request #231 from wwarthen/dev

Dev
pull/252/head
b1ackmai1er 4 years ago
committed by GitHub
parent
commit
120d180609
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      .gitignore
  2. 1
      Binary/Apps/Clean.cmd
  3. BIN
      Doc/ROM Applications.pdf
  4. BIN
      Doc/RomWBW Applications.pdf
  5. BIN
      Doc/RomWBW Disk Catalog.pdf
  6. BIN
      Doc/RomWBW Getting Started.pdf
  7. 302
      ReadMe.md
  8. 2
      Source/Apps/FDU/Build.cmd
  9. 4
      Source/Apps/FDU/Makefile
  10. 0
      Source/Apps/FDU/fdu.doc
  11. 2
      Source/BPBIOS/cboot-ww.z80
  12. 97
      Source/BPBIOS/romwbw-m.lib
  13. 97
      Source/BPBIOS/romwbw-s.lib
  14. 152
      Source/BPBIOS/z3basefn.lib
  15. 148
      Source/BPBIOS/z3baseft.lib
  16. 1
      Source/Images/d_bp.txt
  17. BIN
      Source/Images/d_bp/u15/d.com
  18. BIN
      Source/Images/d_bp/u15/poke.com
  19. BIN
      Source/Images/d_bp/u15/ql.com
  20. BIN
      Source/Images/d_bp/u15/save.com
  21. BIN
      Source/Images/d_bp/u15/sd.com
  22. 1
      Source/Images/d_cpm22.txt
  23. 5
      Source/Images/d_cpm3.txt
  24. 1
      Source/Images/d_nzcom.txt
  25. 1
      Source/Images/d_zpm3.txt
  26. 1
      Source/Images/d_zsdos.txt
  27. 2
      Source/ver.inc
  28. 2
      Source/ver.lib

1
.gitignore

@ -79,6 +79,7 @@ Tools/unix/zx/zx
!Source/Apps/ZMP/zmpx.com
!Source/BPBIOS/bpbuild.com
!Source/BPBIOS/movp112.com
!Source/BPBIOS/*.lib
!Source/BPBIOS/Z34RCP11/cledinst.com
!Source/BPBIOS/Z34RCP11/cledsave.com
!Source/Fonts

1
Binary/Apps/Clean.cmd

@ -2,7 +2,6 @@
setlocal
if exist *.com del *.com
if exist *.ovr del *.ovr
if exist *.doc del *.doc
if exist *.hlp del *.hlp

BIN
Doc/ROM Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Getting Started.pdf

Binary file not shown.

302
ReadMe.md

@ -9,16 +9,16 @@ Wayne Warthen <wwarthen@gmail.com>
### Download
- [RomWBW Distribution
- [RomWBW Distribution
Package](https://github.com/wwarthen/RomWBW/releases)
### Related Pages
- [RomWBW Architecture
- [RomWBW Architecture
Document](https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=software:firmwareos:romwbw:romwbw_architecture.pdf)
- [RomWBW
- [RomWBW
Applications](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps)
- [RomWBW
- [RomWBW
Errata](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:errata)
# Overview
@ -27,28 +27,28 @@ RomWBW provides a complete software system for a wide variety of
hobbyist Z80/Z180 CPU-based systems produced by these developer
communities:
- [RetroBrew Computers](https://www.retrobrewcomputers.org)
- [RC2014](https://rc2014.co.uk)
- [retro-comp](https://groups.google.com/forum/#!forum/retro-comp)
- [RetroBrew Computers](https://www.retrobrewcomputers.org)
- [RC2014](https://rc2014.co.uk)
- [retro-comp](https://groups.google.com/forum/#!forum/retro-comp)
General features include:
- Banked memory services for several banking designs
- Disk drivers for RAM, ROM, Floppy, IDE, CF, and SD
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO
- Video drivers including TMS9918, SY6545, MOS8563, HD6445
- Real time clock drivers including DS1302, BQ4845
- Multiple OS support including CP/M 2.2, ZSDOS, CP/M 3, ZPM3
- Built-in VT-100 terminal emulation support
- Banked memory services for several banking designs
- Disk drivers for RAM, ROM, Floppy, IDE, CF, and SD
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO
- Video drivers including TMS9918, SY6545, MOS8563, HD6445
- Real time clock drivers including DS1302, BQ4845
- Multiple OS support including CP/M 2.2, ZSDOS, CP/M 3, ZPM3
- 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
- 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.
@ -111,22 +111,22 @@ directory contains the pre-built ROM and disk images. The ROM image
files all end in “.rom”. Based on the table below, **carefully** pick
the appropriate ROM image for your hardware.
| Platform | ROM Image File | Baud | Description |
| --------- | --------------- | -----: | ----------------------------------------------- |
| SBC | SBC\_std.rom | 38400 | RetroBrew SBC v1 or v2 ECB Z80 |
| Zeta V1 | ZETA\_std.rom | 38400 | RetroBrew Zeta V1 Z80, ParPortProp (optional) |
| Zeta V2 | ZETA2\_std.rom | 38400 | RetroBrew Zeta V2 Z80, ParPortProp (optional) |
| N8 | N8\_std.rom | 38400 | RetroBrew N8 Z180, date code \>= 2312 |
| Mark IV | MK4\_std.rom | 38400 | RetroBrew Mark IV ECB Z180 |
| RC Z80 | RCZ80\_std.rom | 115200 | RC2014 w/ Z80 CPU, requires 512K RAM/ROM module |
| RC Z180\* | RCZ180\_ext.rom | 115200 | RC2014 w/ Z180 CPU & 512K banked RAM/ROM module |
| RC Z180\* | RCZ180\_nat.rom | 115200 | RC2014 w/ Z180 CPU & 512K native RAM/ROM module |
| Easy Z80 | EZZ80\_std.rom | 115200 | Sergey Kiselev’s Easy Z80 |
| SC126 | SCZ180\_126.rom | 115200 | Stephen Cousin’s SC126 Z180 |
| SC130 | SCZ180\_130.rom | 115200 | Stephen Cousin’s SC130 Z180 |
| SC131 | SCZ180\_131.rom | 115200 | Stephen Cousin’s SC131 Z180 |
| Dyno | DYNO\_std.rom | 38400 | Steve Garcia’s Z180 Dyno Computer |
| MBC | MBC\_std.rom | 38400 | Andrew Lynch’s Multi Board Computer |
| Platform | ROM Image File | Baud | Description |
|-----------|----------------|-------:|-------------------------------------------------|
| SBC | SBC_std.rom | 38400 | RetroBrew SBC v1 or v2 ECB Z80 |
| Zeta V1 | ZETA_std.rom | 38400 | RetroBrew Zeta V1 Z80, ParPortProp (optional) |
| Zeta V2 | ZETA2_std.rom | 38400 | RetroBrew Zeta V2 Z80, ParPortProp (optional) |
| N8 | N8_std.rom | 38400 | RetroBrew N8 Z180, date code \>= 2312 |
| Mark IV | MK4_std.rom | 38400 | RetroBrew Mark IV ECB Z180 |
| RC Z80 | RCZ80_std.rom | 115200 | RC2014 w/ Z80 CPU, requires 512K RAM/ROM module |
| RC Z180\* | RCZ180_ext.rom | 115200 | RC2014 w/ Z180 CPU & 512K banked RAM/ROM module |
| RC Z180\* | RCZ180_nat.rom | 115200 | RC2014 w/ Z180 CPU & 512K native RAM/ROM module |
| Easy Z80 | EZZ80_std.rom | 115200 | Sergey Kiselev’s Easy Z80 |
| SC126 | SCZ180_126.rom | 115200 | Stephen Cousin’s SC126 Z180 |
| SC130 | SCZ180_130.rom | 115200 | Stephen Cousin’s SC130 Z180 |
| SC131 | SCZ180_131.rom | 115200 | Stephen Cousin’s SC131 Z180 |
| Dyno | DYNO_std.rom | 38400 | Steve Garcia’s Z180 Dyno Computer |
| MBC | MBC_std.rom | 38400 | Andrew Lynch’s Multi Board Computer |
\*The RC2014 Z180 requires a separate RAM/ROM memory module. There are
two types of these modules and you must pick the ROM for your type of
@ -185,7 +185,7 @@ disk devices.
The following ROM applications are available at the boot loader prompt:
| Application | |
| ------------ | ------------------------------------------------------ |
|--------------|--------------------------------------------------------|
| Monitor | Z80 system debug monitor w/ Intel Hex loader |
| Forth | Brad Rodriguez’s ANSI compatible Forth language |
| Basic | Nascom 8K BASIC language |
@ -209,10 +209,10 @@ modular approach to implementing device drivers and presenting devices
to the operating system. In general, all devices are classified as one
of the following:
- Disk (Hard Disk, CF Card, SD Card, RAM/ROM Disk, etc.)
- Character (Serial Ports, Parallel Ports, etc.)
- Video (Video Display/Keyboard Interfaces)
- RTC/NVRAM (Real Time Clock, Non-volatile RAM)
- Disk (Hard Disk, CF Card, SD Card, RAM/ROM Disk, etc.)
- Character (Serial Ports, Parallel Ports, etc.)
- Video (Video Display/Keyboard Interfaces)
- RTC/NVRAM (Real Time Clock, Non-volatile RAM)
HBIOS uses the concept of unit numbers to present a complex set of
hardware devices to the operating system. As an example, a typical
@ -275,19 +275,17 @@ The command format is `I <u> [<c>]`
where ***u*** is unit to select and ***c*** is the optional baud rate
code as listed below.
```
Code | Rate | Code | Rate | Code | Rate | Code | Rate |
------|----------|------|----------|------|----------|------|----------|
0 | 75 | 8 | 1800 | 16 | 28880 | 24 | 460800 |
1 | 150 | 9 | 2400 | 17 | 38400 | 25 | 614400 |
2 | 225 | 10 | 3600 | 18 | 57600 | 26 | 921600 |
3 | 300 | 11 | 4800 | 19 | 76800 | 27 | 1228822 |
4 | 450 | 12 | 7200 | 20 | 115200 | 28 | 1843200 |
5 | 600 | 13 | 9600 | 21 | 153600 | 29 | 2457600 |
6 | 900 | 14 | 14400 | 22 | 230400 | 30 | 3686400 |
7 | 1200 | 15 | 19200 | 23 | 307200 | 31 | 7372800 |
------------------------------------------------------------------------
```
Code | Rate | Code | Rate | Code | Rate | Code | Rate |
------|----------|------|----------|------|----------|------|----------|
0 | 75 | 8 | 1800 | 16 | 28880 | 24 | 460800 |
1 | 150 | 9 | 2400 | 17 | 38400 | 25 | 614400 |
2 | 225 | 10 | 3600 | 18 | 57600 | 26 | 921600 |
3 | 300 | 11 | 4800 | 19 | 76800 | 27 | 1228822 |
4 | 450 | 12 | 7200 | 20 | 115200 | 28 | 1843200 |
5 | 600 | 13 | 9600 | 21 | 153600 | 29 | 2457600 |
6 | 900 | 14 | 14400 | 22 | 230400 | 30 | 3686400 |
7 | 1200 | 15 | 19200 | 23 | 307200 | 31 | 7372800 |
------------------------------------------------------------------------
Example: To change current console to 9600 baud
@ -360,7 +358,7 @@ messages meaning the first IDE device. To refer to the fourth slice of
IDE0, you would type “IDE0:3”. Here are some examples:
| | |
| -------- | ---------------------------- |
|----------|------------------------------|
| `IDE0:0` | First slice of disk in IDE0 |
| `IDE0:` | First slice of disk in IDE0 |
| `IDE0:3` | Fourth slice of disk in IDE0 |
@ -404,12 +402,12 @@ The following custom applications are found on the ROM disk and are,
therefore, globally available.
| Application | Description |
| ----------- | ---------------------------------------------------------------------------------------------------- |
|-------------|------------------------------------------------------------------------------------------------------|
| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. |
| SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. |
| MODE | Reconfigures serial ports dynamically. |
| FDU | Format and test floppy disks. Menu driven interface. |
| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing\! |
| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing! |
| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. |
| FLASH | Will Sowerbutts’ in-situ ROM programming utility. |
| FDISK80 | John Coffman’s Z80 hard disk partitioning tool. See documentation in Doc directory. |
@ -423,7 +421,7 @@ the disk image files or the individual files can be found in the
Binary\\Apps directory of the distribution.
| Application | Description |
| ----------- | ----------------------------------------------------------- |
|-------------|-------------------------------------------------------------|
| TUNE | Play .PT2, .PT3, .MYM audio files. |
| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). |
@ -490,7 +488,7 @@ of drive letters assigned to the disk media you have installed. Here is
an example of this:
Configuring Drives...
A:=MD1:0
B:=MD0:0
C:=IDE0:0
@ -578,10 +576,10 @@ you want CP/M 2.2 instead, you would replace `B:ZSYS.SYS` with
`B:CPM.SYS`. Here is a full example of this process.
B>SYSCOPY C:=B:ZSYS.SYS
SYSCOPY v2.0 for RomWBW CP/M, 17-Feb-2020 (CP/M 2 Mode)
Copyright 2020, Wayne Warthen, GNU GPL v3
Transfer system image from B:ZSYS.SYS to C: (Y/N)? Y
Reading image... Writing image... Done
@ -622,26 +620,26 @@ The following table shows the disk image files available. Note that the
images in the “Hard” column are fine for use on CF Cards, SD Cards, as
well as real spinning hard disks.
| Floppy | Hard | Description |
| ------------- | ------------- | ---------------------------- |
| fd\_cpm22.img | hd\_cpm22.img | DRI CP/M 2.2 boot disk |
| fd\_zsdos.img | hd\_zsdos.img | ZSDOS 1.1 boot disk |
| fd\_nzcom.img | hd\_nzcom.img | NZCOM boot disk |
| fd\_cpm3.img | hd\_cpm3.img | DRI CP/M 3 boot disk |
| fd\_zpm3.img | hd\_zpm3.img | ZPM3 boot disk |
| fd\_ws4.img | hd\_ws4.img | WordStar v4 application disk |
| Floppy | Hard | Description |
|--------------|--------------|------------------------------|
| fd_cpm22.img | hd_cpm22.img | DRI CP/M 2.2 boot disk |
| fd_zsdos.img | hd_zsdos.img | ZSDOS 1.1 boot disk |
| fd_nzcom.img | hd_nzcom.img | NZCOM boot disk |
| fd_cpm3.img | hd_cpm3.img | DRI CP/M 3 boot disk |
| fd_zpm3.img | hd_zpm3.img | ZPM3 boot disk |
| fd_ws4.img | hd_ws4.img | WordStar v4 application disk |
In addition to the disk images above, there is also a special hard disk
image called hd\_combo.img. This image contains all of the images above,
image called hd_combo.img. This image contains all of the images above,
but in a single image with 6 slices. At the boot loader prompt, you can
choose a disk with the combo image, then select the specific slice you
want. This allows a single disk to have all of the possible operating
system options.
This is the layout of the hd\_combo disk image:
This is the layout of the hd_combo disk image:
| Slice | Description |
| ------- | ---------------------------- |
|---------|------------------------------|
| Slice 0 | DRI CP/M 2.2 boot disk |
| Slice 1 | ZSDOS 1.1 boot disk |
| Slice 2 | NZCOM boot disk |
@ -680,17 +678,17 @@ can `SYSCOPY` and boot alternate slices. Here is what you would see when
booting to a disk device:
MARK IV Boot Loader
ROM: (M)onitor (C)P/M (Z)-System (F)orth (B)ASIC (T)-BASIC (P)LAY (U)SER ROM
Disk: (0)MD1 (1)MD0 (2)IDE0 (3)IDE1
Boot Selection? 2 Slice(0-9)[0]?
Booting Disk Unit 2, Slice 0...
Reading disk information...
Loc=D000 End=FE00 Ent=E600 Label=Unlabeled Drive
Loading...
Following this, you would see the normal operating system startup
@ -698,14 +696,14 @@ messages. However, your operating system prompt will be `A>` and when
you look at the drive letter assignments, you should see that A: has
been assigned to the disk you selected to boot.
If you receive the error message “Disk not bootable\!”, you have either
If you receive the error message “Disk not bootable!”, you have either
failed to properly run `SYSCOPY` on the target disk or you have selected
the wrong disk/slice.
Note that although MD1 (RAM disk) and MD0 (ROM disk) drives are listed
in the Disk boot line, they are not “bootable” disks because they have
no system tracks on them. Attempting to boot to one of them, will fail
with a “Disk not bootable\!” error message and return to the loader
with a “Disk not bootable!” error message and return to the loader
prompt.
# Operating Systems
@ -739,16 +737,16 @@ most stable and you are less likely to encounter problems.
### Notes
- You can change media, but it must be done while at the OS command
- You can change media, but it must be done while at the OS command
prompt and you **must** warm start CP/M by pressing ctrl-c. This is
a CP/M 2.2 constraint and is well documented in the DRI manuals.
- The original versions of DDT, DDTZ, and ZSID used the RST 38 vector
- The original versions of DDT, DDTZ, and ZSID used the RST 38 vector
which conflicts with interrupt mode 1 use of this vector. The DDT,
DDTZ, and ZSID applications in RomWBW have been modified to use RST
30 to avoid this issue.
- Z-System applications will not run under CP/M 2.2. For example, the
- Z-System applications will not run under CP/M 2.2. For example, the
`LDDS` date stamper will not run.
## ZSDOS 1.1
@ -767,12 +765,12 @@ Manual.pdf”).
### Notes
- Although most CP/M 2.2 applications will run under Z-System, some
- Although most CP/M 2.2 applications will run under Z-System, some
may not work as expected. The best example is PIP which is not aware
of the ZSDOS paths and will fail in some scenarios (use `COPY`
instead).
- Although ZSDOS can recognize a media change in some cases, it will
- Although ZSDOS can recognize a media change in some cases, it will
not always work. You should only change media at a command prompt
and be sure to warm start the OS with a ctrl-c.
@ -795,7 +793,7 @@ RomWBW Doc directory.
### Notes
- There is no `DIR` command, you must use `SDZ` instead. If you don’t
- There is no `DIR` command, you must use `SDZ` instead. If you don’t
like this, look into the ALIAS facility.
## Digital Research CP/M 3
@ -812,15 +810,15 @@ tracks. `CPMLDR.SYS` chain loads `CPM3.SYS`.
### Notes
- The `DATE` command cannot yet be used to **set** the RTC. The RTC is
- The `DATE` command cannot yet be used to **set** the RTC. The RTC is
used to read the current date/time for file stamping, etc. You can
use the `RTC` app to set the RTC clock.
- The `COPYSYS` command described in the DRI CP/M 3 documentation is
- The `COPYSYS` command described in the DRI CP/M 3 documentation is
not provided with RomWBW. The RomWBW `SYSCOPY` command is used
instead.
- Although CP/M 3 is generally able to run CP/M 2.2 programs, this is
- Although CP/M 3 is generally able to run CP/M 2.2 programs, this is
not universally true. This is especially true of the utility
programs included with the operating system. For example, the
`SUBMIT` program of CP/M 3 is completely different from the `SUBMIT`
@ -836,9 +834,9 @@ tracks of the disk.
### Notes
- `ZPMLDR` is included with ZPM3, but it is not working correctly.
- `ZPMLDR` is included with ZPM3, but it is not working correctly.
- The ZPM operating system is contained in the file called CPM3.SYS
- The ZPM operating system is contained in the file called CPM3.SYS
which is confusing, but this is as intended by the ZPM3
distribution. I believe it was done this way to make it easier for
users to transition from CP/M 3 to ZPM3.
@ -951,7 +949,7 @@ CP/M slices at the beginning and a FAT filesystem after. Such a hybrid
disk can be used to boot an operating system and still have access to
FAT files on the FAT portion of the disk. David Reese has prepared a
document describing how to do this. It is called
“SC126\_How-To\_No\_2\_Preparing\_an\_SD\_Card\_for\_Use\_with\_SC126\_Rev\_1-5.pdf”
“SC126_How-To_No_2\_Preparing_an_SD_Card_for_Use_with_SC126_Rev_1-5.pdf”
and can be found in the Doc\\Contrib directory of the distribution.
# Startup Command Processing
@ -1013,7 +1011,7 @@ The standard RomWBW distribution includes it’s own hardware BIOS.
However, RomWBW can alternatively be constructed with UNA as the
hardware BIOS portion of the ROM. If you wish to use the UNA variant of
RomWBW, then just program your ROM with the ROM image called
“UNA\_std.rom” in the Binary directory. This one image is suitable on
“UNA_std.rom” in the Binary directory. This one image is suitable on
**all** of the platforms and hardware UNA supports.
UNA is customized dynamically using a ROM based setup routine and the
@ -1026,10 +1024,10 @@ images.
While John is likely to enhance UNA over time, there are currently a few
things that UNA does not support:
- Floppy Drives
- Terminal Emulation
- Zeta 1, N8, RC2014, Easy Z80, and Dyno Systems
- Some older support boards
- Floppy Drives
- Terminal Emulation
- Zeta 1, N8, RC2014, Easy Z80, and Dyno Systems
- Some older support boards
The UNA version embedded in RomWBW is the latest production release of
UNA. RomWBW will be updated with John’s upcoming UNA release with
@ -1052,8 +1050,8 @@ Prior to attempting to reprogram your actual ROM chip, you may wish to
“try” the upgrade. With RomWBW, you can upload a new system image
executable and load it from the command line. For each ROM image file
(.rom) in the Binary directory, you will also find a corresponding
application file (.com). For example, for SBC\_std.rom, there is also an
SBC\_std.com file. You can upload the .com file to your system using
application file (.com). For example, for SBC_std.rom, there is also an
SBC_std.com file. You can upload the .com file to your system using
XModem, then simply run the .com file. You will see your system go
through the normal startup process just like it was started from ROM.
However, your ROM has not been updated and the next time you boot your
@ -1074,20 +1072,20 @@ following is a typical example of transferring ROM image using XModem
and flashing the chip in-situ.
E>xm r rom.rom
XMODEM v12.5 - 07/13/86
RBC, 28-Aug-2019 [WBW], ASCI
Receiving: E0:ROM.IMG
7312k available for uploads
File open - ready to receive
To cancel: Ctrl-X, pause, Ctrl-X
Thanks for the upload
E>flash write rom.rom
FLASH4 by Will Sowerbutts <will@sowerbutts.com> version 1.2.3
Using RomWBW (v2.6+) bank switching.
Flash memory chip ID is 0xBFB7: 39F040
Flash memory has 128 sectors of 4096 bytes, total 512KB
@ -1135,67 +1133,67 @@ If the disk is bootable, you need to update the system image on the disk
using the procedure described below corresponsing to the operating
system on your disk.
- **CP/M 2.2**
- **CP/M 2.2**
Boot to CP/M 2.2 from ROM, then use `SYSCOPY` to update the system
image on **all** CP/M 2.2 boot disks/slices. The CP/M 2.2 system
image is called CPM.SYS and is found on the ROM disk. For example:
`B>SYSCOPY C:=CPM.SYS`
- **ZSDOS**
- **ZSDOS**
Boot to Z-System from ROM, then use `SYSCOPY` to update the system
image on **all** ZSDOS boot disks/slices. The ZSDOS system image is
called ZSYS.SYS and is found on the ROM disk. For example:
`B>SYSCOPY C:=ZSYS.SYS`
- **NZCOM**
- **NZCOM**
NZCOM runs on top of either CP/M 2.2 or ZSDOS. By default, the
RomWBW disk image for NZCOM uses ZSDOS. Follow the corresponding
procedure above to update the system image on the NZCOM boot
disks/slices.
- **CP/M 3**
- **CP/M 3**
CP/M 3 uses a multi-step boot process involving multiple files. The
CP/M 3 boot files are not included on the ROM disk due to space
constraints. You will need to transfer the files to your system from
the RomWBW distribution directory Binary\\CPM3.
After this is done, you will need to use `SYSCOPY` to place the CP/M
3 loader image on the boot tracks of all CP/M 3 boot disks/slices.
The loader image is called `CPMLDR.SYS`. You must then copy (at a
minimum) `CPM3.SYS` and `CCP.COM` onto the disk/slice. Assuming you
copied the CP/M 3 boot files onto your RAM disk at A:, you would
use:
A>B:SYSCOPY C:=CPMLDR.SYS
A>B:COPY CPM3.SYS C:
A>B:COPY CCP.COM C:
- **ZPM3**
- **ZPM3**
ZPM3 uses a multi-step boot process involving multiple files. The
ZPM3 boot files are not included on the ROM disk due to space
constraints. You will need to transfer the files to your system from
the RomWBW distribution directory Binary\\ZPM3.
After this is done, you will need to use `SYSCOPY` to place the ZPM3
loader image on the boot tracks of all ZPM3 boot disks/slices. The
loader image is called `CPMLDR.SYS`. You must then copy (at a
minimum) `CPM3.SYS`, `ZCCP.COM`, `ZINSTAL.ZPM`, and `STARTZPM.COM`
onto the disk/slice. Assuming you copied the ZPM3 boot files onto
your RAM disk at A:, you would use:
A>B:SYSCOPY C:=CPMLDR.SYS
A>B:COPY CPM3.SYS C:
A>B:COPY ZCCP.COM C:
A>B:COPY ZINSTAL.ZPM C:
A>B:COPY STARTZPM.COM C:
You may be wondering if the references to `CPMLDR.SYS` and
`CPM3.SYS` are typos. They are not. ZPM3 uses the same loader image
as CPM3. The ZPM3 main system code file is called `CPM3.SYS` which
@ -1207,18 +1205,18 @@ your hard disk, you need to update them with the latest copies. The
following applications are found on your ROM disk. Use COPY to copy them
over any older versions of the app on your disk:
- ASSIGN.COM
- SYSCOPY.COM
- MODE.COM
- FDU.COM (was FDTST.COM)
- FORMAT.COM
- XM.COM
- FLASH.COM
- FDISK80.COM
- TALK.COM
- RTC.COM
- TIMER.COM
- INTTEST.COM
- ASSIGN.COM
- SYSCOPY.COM
- MODE.COM
- FDU.COM (was FDTST.COM)
- FORMAT.COM
- XM.COM
- FLASH.COM
- FDISK80.COM
- TALK.COM
- RTC.COM
- TIMER.COM
- INTTEST.COM
For example: `B>COPY ASSIGN.COM C:`
@ -1228,8 +1226,8 @@ and then update all copies. These applications are found in the
Binary\\Apps directory of the distribution and in all of the disk
images.
- FAT.COM
- TUNE.COM
- FAT.COM
- TUNE.COM
# System Update
@ -1243,10 +1241,10 @@ and CP/M system.
A System Update may be more favorable than a System Upgrade in cases
such as:
- Overwriting of the ROM drive is not desired.
- Space is unavailable to hold a full ROMWBW ROM.
- To mimimize time taken to transfer and flash a full ROM.
- Configuration changes are only minor and do not impact disk
- Overwriting of the ROM drive is not desired.
- Space is unavailable to hold a full ROMWBW ROM.
- To mimimize time taken to transfer and flash a full ROM.
- Configuration changes are only minor and do not impact disk
applications.
The ROMWBW build process generates a system upgrade file along with the
@ -1277,7 +1275,7 @@ file describing the contents in detail. In summary, these directories
are:
| Application | Description |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|-------------|-----------------------------------------------------------------------------------------------------------------------------------------|
| Binary | The final output files of the build process are placed here. Most importantly, are the ROM images with the file names ending in “.rom”. |
| Doc | Contains various detailed documentation including the operating systems, RomWBW architecture, etc. |
| Source | Contains the source code files used to build the software and ROM images. |
@ -1289,7 +1287,7 @@ While I have heavily modified much of the code, I want to acknowledge
that much of the work is derived from the work of others in the
RetroBrew Computers Community including Andrew Lynch, Dan Werner, Max
Scane, David Giles, John Coffman, and probably many others I am not
clearly aware of (let me know if I omitted someone\!).
clearly aware of (let me know if I omitted someone!).
I especially want to credit Douglas Goodall for contributing code, time,
testing, and advice. He created an entire suite of application programs
@ -1298,21 +1296,21 @@ continue the maintenance of these applications and they have become
unusable due to changes within RomWBW. As of RomWBW 2.6, these
applications are no longer provided.
- David Giles contributed support for the CSIO support in the SD Card
- David Giles contributed support for the CSIO support in the SD Card
driver.
- Ed Brindley contributed some of the code that supports the RC2014
- Ed Brindley contributed some of the code that supports the RC2014
platform.
- Phil Summers contributed Forth and BASIC in ROM, the AY-3-8910 sound
- Phil Summers contributed Forth and BASIC in ROM, the AY-3-8910 sound
driver as well as a long list of general code enhancements.
- Phillip Stevens contributed support for FreeRTOS.
- Curt Mayer contributed the 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
- Phillip Stevens contributed support for FreeRTOS.
- Curt Mayer contributed the 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.
- The RomWBW Disk Catalog document was produced by Mykl Orders.
Contributions of all kinds to RomWBW are very welcome.
@ -1321,11 +1319,11 @@ Contributions of all kinds to RomWBW are very welcome.
The best way to get assistance with RomWBW or any aspect of the
RetroBrew Computers projects is via the community forums:
- [RetroBrew Computers
- [RetroBrew Computers
Forum](https://www.retrobrewcomputers.org/forum/)
- [RC2014 Google
- [RC2014 Google
Group](https://groups.google.com/forum/#!forum/rc2014-z80)
- [retro-comp Google
- [retro-comp Google
Group](https://groups.google.com/forum/#!forum/retro-comp)
Submission of issues and bugs are welcome at the [RomWBW GitHub

2
Source/Apps/FDU/Build.cmd

@ -8,4 +8,4 @@ set TASMTABS=%TOOLS%\tasm32
tasm -t80 -b -fFF fdu.asm fdu.com fdu.lst || exit /b
copy /Y fdu.com ..\..\..\Binary\Apps\ || exit /b
copy /Y fdu.txt ..\..\..\Doc\ || exit /b
copy /Y fdu.doc ..\..\..\Binary\Apps\ || exit /b

4
Source/Apps/FDU/Makefile

@ -1,7 +1,7 @@
OBJECTS = fdu.com
DOCS = fdu.txt
DOCS = fdu.doc
DEST = ../../../Binary/Apps
DOCDEST = ../../../Doc
DOCDEST = ../../../Binary/Apps
TOOLS = ../../../Tools
include $(TOOLS)/Makefile.inc

0
Source/Apps/FDU/fdu.txt → Source/Apps/FDU/fdu.doc

2
Source/BPBIOS/cboot-ww.z80

@ -475,7 +475,7 @@ ENV1: ; ZCPR3 enviornment descriptor ...
DEFB 0 ; Crt selection ()
DEFB 0 ; Printer selection ()
DEFB 80 ; Crt 0: width
DEFB 24 ; # of lines
DEFB 25 ; # of lines
DEFB 22 ; # of text lines
; In Extended ENV, CRT 1 is replaced by System Info

97
Source/BPBIOS/romwbw-m.lib

@ -0,0 +1,97 @@
;:::::::::::::::::::::::::::::::::::::::::::::::**********************
; B/P BIOS Configuration and Equate File. ** System Dependant **
; - Retro-Brew Processors W/ RomWBW HBIOS - **********************
; HBIOS specific customizations
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; BIOS Configuration Equates and Macros
;
; NOTE: Must make sure settings below match hardware and
; HBIOS configuration.
;
HBIOS EQU YES ; Use HBIOS functions
HBLOC EQU 0FE00H ; Location of HBIOS proxy (used if not INTPXY)
;
; Set exactly one of the following to YES to specify platform
;
SBC EQU NO
ZETA EQU NO
ZETA2 EQU NO
N8 EQU NO
MK4 EQU YES
;
; SIMH SUPPORT - only used with SBC
IF SBC
SIMH EQU YES ; Set yes if running on SimH
ELSE
SIMH EQU NO
ENDIF
;
; Set to YES FOR BIOS clock support else NO If no clock
;
HBCLK EQU YES ; HBIOS clock driver
;
; Set HB_IODEV to appropriate console device
;
HB_IODEV EQU 0 ; Assume we want to use first HBIOS serial device
; Change if using PROPIO etc.
;
; Set HB_HDDEV to appropriate hard disk driver
;
HB_HDDEV EQU 2 ; Assumes disk device #2 is first hard disk device
;
; Set HB_MDDEV to appropriate memory disk driver
;
HB_MDDEV EQU 0 ; Assumes disk device #0 is ROM disk device
;
; Floppy disk support
;
IF MK4 or SIMH
DRV_O SET NO ; YES if system has flopy drives
DRV_P SET NO ; YES if system has flopy drives
ENDIF ;MK4 or SIMH
;
; RAM/ROM disk sizes expressed as count of 2K blocks
;
HB_RAMBLKS EQU 192 ; 512K - 128K reserved / 2K per block
HB_ROMBLKS EQU 192 ; 512K - 128K reserved / 2K per block
;HB_ROMBLKS EQU 448 ; 1024K - 128K reserved / 2K per block
;
; Layout of RAM banks
;
IF SBC OR ZETA OR ZETA2 OR MK4
BID_RAMD EQU 80H
BID_RAMM EQU 8BH
BID_SYS EQU 8CH
BID_HB EQU 8DH
BID_USR EQU 8EH
BID_COM EQU 8FH
ENDIF
IF N8
BID_RAMD EQU 80H
BID_RAMM EQU 9BH
BID_SYS EQU 9CH
BID_HB EQU 9DH
BID_USR EQU 9EH
BID_COM EQU 9FH
ENDIF
;
IF INTPXY
MEMTOP EQU 0FFE0H - 1 ; Start of HBIOS 32 byte control block
ELSE
MEMTOP EQU HBLOC - 1 ; Start of HBIOS 512 byte proxy
ENDIF
IF INTPXY
HB_EI MACRO
ENDM
HB_DI MACRO
ENDM
ELSE
HB_EI MACRO
EI
ENDM
HB_DI MACRO
DI
ENDM
ENDIF


97
Source/BPBIOS/romwbw-s.lib

@ -0,0 +1,97 @@
;:::::::::::::::::::::::::::::::::::::::::::::::**********************
; B/P BIOS Configuration and Equate File. ** System Dependant **
; - Retro-Brew Processors W/ RomWBW HBIOS - **********************
; HBIOS specific customizations
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; BIOS Configuration Equates and Macros
;
; NOTE: Must make sure settings below match hardware and
; HBIOS configuration.
;
HBIOS EQU YES ; Use HBIOS functions
HBLOC EQU 0FE00H ; Location of HBIOS proxy (used if not INTPXY)
;
; Set exactly one of the following to YES to specify platform
;
SBC EQU YES
ZETA EQU NO
ZETA2 EQU NO
N8 EQU NO
MK4 EQU NO
;
; SIMH SUPPORT - only used with SBC
IF SBC
SIMH EQU YES ; Set yes if running on SimH
ELSE
SIMH EQU NO
ENDIF
;
; Set to YES FOR BIOS clock support else NO If no clock
;
HBCLK EQU YES ; HBIOS clock driver
;
; Set HB_IODEV to appropriate console device
;
HB_IODEV EQU 0 ; Assume we want to use first HBIOS serial device
; Change if using PROPIO etc.
;
; Set HB_HDDEV to appropriate hard disk driver
;
HB_HDDEV EQU 2 ; Assumes disk device #2 is first hard disk device
;
; Set HB_MDDEV to appropriate memory disk driver
;
HB_MDDEV EQU 0 ; Assumes disk device #0 is ROM disk device
;
; Floppy disk support
;
IF MK4 or SIMH
DRV_O SET NO ; YES if system has flopy drives
DRV_P SET NO ; YES if system has flopy drives
ENDIF ;MK4 or SIMH
;
; RAM/ROM disk sizes expressed as count of 2K blocks
;
HB_RAMBLKS EQU 192 ; 512K - 128K reserved / 2K per block
HB_ROMBLKS EQU 192 ; 512K - 128K reserved / 2K per block
;HB_ROMBLKS EQU 448 ; 1024K - 128K reserved / 2K per block
;
; Layout of RAM banks
;
IF SBC OR ZETA OR ZETA2 OR MK4
BID_RAMD EQU 80H
BID_RAMM EQU 8BH
BID_SYS EQU 8CH
BID_HB EQU 8DH
BID_USR EQU 8EH
BID_COM EQU 8FH
ENDIF
IF N8
BID_RAMD EQU 80H
BID_RAMM EQU 9BH
BID_SYS EQU 9CH
BID_HB EQU 9DH
BID_USR EQU 9EH
BID_COM EQU 9FH
ENDIF
;
IF INTPXY
MEMTOP EQU 0FFE0H - 1 ; Start of HBIOS 32 byte control block
ELSE
MEMTOP EQU HBLOC - 1 ; Start of HBIOS 512 byte proxy
ENDIF
IF INTPXY
HB_EI MACRO
ENDM
HB_DI MACRO
ENDM
ELSE
HB_EI MACRO
EI
ENDM
HB_DI MACRO
DI
ENDM
ENDIF


152
Source/BPBIOS/z3basefn.lib

@ -0,0 +1,152 @@
; z3base.fp -- B/P Bios System Z3 Definition File for a fully
; banked system with 32 byte external HBIOS proxy and
; internal proxy.
; This file is adapted from the basic Z3BASE.LIB configuration file used for
; most ZCPR33 systems. It has added the new definitions for the Resident
; User Space defined in B/P Bios descriptions.
;=========================================================================
;== NOTE: The Starting Address of the User Space marks the lower ==
;== base of memory and MUST be entered. B/P Bios Utilities use ==
;== this address to locate many portions of the operating system. ==
;=========================================================================
; To change your systems definition, first sketch out the memory map in the
; comment table, then set the equates to reflect the memory map, doing any
; required calculations for element sizes and required spaces. As an
; alternative, just leave this file alone and configure everything with
; the utilities provided. For example reserve top 1k for HBIOS and no IOP.
; FFE0 - FFFF 32 Bytes HBIOS RESERVED AREA (mini proxy)
; FFB0 - FFDF 48 Bytes ZCPR3 External Stack (must be 48 bytes)
; FE00 - FFAF 432 Bytes Named Directory Buffer
; FD00 - FDFF 256 Bytes Multiple Command Line Buffer
; FC00 - FCFF 256 Bytes Environment Descriptor
; Bytes 00H-7FH: Z3 Parameters
; Bytes 80H-FFH: Z3 TCAP
; FBFF 1 Byte Wheel byte
; FBF4 - FAFE 11 Bytes Path (5 elements)
; FBD0 - FAF3 36 Bytes ZCPR3 External FCB
; FB80 - FACF 80 Bytes ZCPR3 Message Buffers
; FB00 - FA7F 128 Bytes ZCPR3 Shell Stack
; F900 - FAFF 512 Bytes Flow Command Package
; F900 - F900 0 KBytes Resident Command Package
; F900 - F900 0 KBytes IO Package - no IOP
; F900 - F900 0 KBytes Resident User Space (no clk drvr needed)
; The remainder is for the Operating System. Exact sizes vary depending
; primarily on the Number and sizes of Hard Drive Partitions, typically:
; EF00 - F8FF 2.75 KBytes B/P BIOS (unbanked version)
; E580 - EEFF 3.375 KBytes ZSDOS 2.0 BDOS
; DD80 - E47F 2 KBytes ZCPR 4.1 Command Processor
; 0100 - C5FF ~50 KBytes Transient Program Area
; 0000 - 00FF 256 Bytes Standard CP/M Buffers
;========================================================================
FALSE EQU 0
TRUE EQU NOT FALSE
YES EQU TRUE
NO EQU FALSE
; The External Stack is placed in the very top position in memory. It is
; mandatory for B/P Bios and ZCPR 3.3.
; FFB0 - FFDF 48 Bytes ZCPR3 External Stack (must be 48 bytes)
;EXTSTK EQU 0FBD0H ; ZCPR3 External Stack
EXTSTK EQU MEMTOP+1-48 ; ZCPR3 External Stack
EXTSTKS EQU YES
; ZCPR3 Named Directory Buffer definition.
; FE00 - FFAF 432 Bytes Named Directory Buffer -23 names
Z3NDIRS EQU 23 ; Number of Named Directory Elements
; F800 - F8FF 256 Bytes Named Directory Buffer - 14 NAMES
NDIRSZ EQU Z3NDIRS * 18 + 1
; (NDIR Size = Z3NDIRS * 18 + 1 = 433 Bytes)
Z3NDIR EQU ((EXTSTK-NDIRSZ)/256)*256 ; Start of Named Directory Buffer
; The Multiple Command Line Buffer is placed in the Top Page of Memory to
; place it above the Environment. It is mandatory for ZCPR 3.3.
; FD00 - FDFF 256 Bytes
;Z3CL EQU 0FB00H ; ZCPR3 Command Line Buffer
;Z3CLS EQU 208-5 ; Size of Command Line Buffer-5
Z3CLS EQU 256-5 ; Size of Command Line Buffer-5
Z3CL EQU Z3NDIR-Z3CLS-5 ; ZCPR3 Command Line Buffer
; The ZCPR3 External Environment Descriptor is mandatory B/P Bios & ZCPR 3.3.
; The Environment Descriptor MUST begin on an even Page Boundary (xx00H).
; FC00 - FCFF 256 Bytes Environment Descriptor
Z3ENVS EQU 2 ; Size of Env Descriptor in 128-Byte Blks
Z3ENV EQU (Z3CL-Z3ENVS*128) and 0FF00H
; The ZCPR3 Wheel Byte is mandatory for ZCPR 3.3.
; FBFF 1 Byte Wheel byte
Z3WHLS EQU YES
Z3WHL EQU Z3ENV-1 ; Wheel Byte Address
; The Path is mandatory for ZCPR 3.3.
; FBF4 - FBFE 11 Bytes Path (5 elements)
EXPATHS EQU 5 ; (Path Size = EXPATHS*2 + 1 = 11 bytes)
; This defines 5 2-byte Path Elements
EXPATH EQU Z3WHL-EXPATHS*2-1 ; External Path starting Address
; The ZCPR3 External FCB is mandatory for ZCPR 3.3.
; FBD0 - FBF3 36 Bytes ZCPR3 External FCB
EXTFCBS EQU YES
EXFCBSZ EQU 36
EXTFCB EQU EXPATH-EXFCBSZ ; 36-Byte ZCPR3 External FCB
; The ZCPR3 Message Buffers are mandatory for ZCPR 3.3.
; FB80 - FBCF 80 Bytes ZCPR3 Message Buffers
Z3MSGS EQU YES
Z3MSGSZ EQU 80 ; size of buffer
Z3MSG EQU EXTFCB-Z3MSGSZ ; 80-Byte ZCPR3 Message Buffer
; Shell Stack definition. Set SHSTKS to 0 to eliminate Shell Stack
; FB00 - FB7F 128 Bytes ZCPR3 Shell Stack
SHSTKS EQU 4 ; Number of SHSIZE-Byte Shell Stack entries
SHSIZE EQU 32 ; (Stack Size = SHSTKS * SHSIZE = 128 Bytes)
SHSTK EQU Z3MSG-SHSTKS*SHSIZE ; Shell Stack Starting Address
; Flow Command Package definition. Set FCPS to 0 to eliminate FCP
; F900 - FAFF 512 Bytes Flow Command Package
FCPS EQU 4 ; (FCP Size = 128 * FCPS = 512 Bytes)
;FCPS EQU 0 ; (FCP Size = 128 * FCPS = 512 Bytes)
FCP EQU SHSTK-FCPS*128 ; Start of Flow Command Package
; Resident Command Processor Definition. Set RCPS to 0 to eliminate RCP
; F900 - F900 0 KBytes Resident Command Package
;RCPS EQU 16 ; (RCP Size = 128 * RCPS = 2 kBytes)
RCPS EQU 0 ; (RCP Size = 128 * RCPS = 2 kBytes)
RCP EQU FCP-RCPS*128 ; Start of Resident Command Processor
; IO Package definition. Set IOPS to 0 to eliminate IOP
;IOP EQU 0EC00H ; Start of IO Package
; F900 - F900 0 KBytes IO Package
IOPS DEFL 0 ; (IOP Size = 128 * IOPS = 0 kBytes)
;IOPS DEFL 12 ; (IOP Size = 128 * IOPS = 1.5 kBytes)
;IOPS DEFL 10 ; (IOP Size = 128 * IOPS = 1.25 kBytes)
;OPS DEFL 3 ; (IOP Size = 128 * IOPS = 1.25 kBytes)
IOP EQU RCP-IOPS*128 ; Start of IO Package
;=========================================================================
; Resident User Space Definition. Set USPCS to 0 to eliminate USPC.
; The USPC Value marks the Lower Limit of Reserved Common High Memory and
; MUST BE PRESENT!
USPCS EQU 0 ; (USPC Size = 128 * USPCS = 0 kBytes)
;USPCS EQU 6 ; (USPC Size = 128 * USPCS = 0.75 kBytes)
; F900 - F900 0.75 KBytes Resident User Space
USPC EQU IOP-USPCS*128 ; Start of Resident User Space (MANDATORY)
;--- End of Z3BASE.LIB ---


148
Source/BPBIOS/z3baseft.lib

@ -0,0 +1,148 @@
; z3base.fp -- fully banked B/P Bios System Z3 Definition File for HBIOS
; with 512 byte external proxy (no internal proxy).
; This file is adapted from the basic Z3BASE.LIB configuration file used for
; most ZCPR33 systems. It has added the new definitions for the Resident
; User Space defined in B/P Bios descriptions and modified for an HBIOS
; implementation with a full external HBIOS proxy (i.e. proxy not internal
; to BPBIOS).
;
;=========================================================================
;== NOTE: The Starting Address of the User Space marks the lower ==
;== base of memory and MUST be entered. B/P Bios Utilities use ==
;== this address to locate many portions of the operating system. ==
;=========================================================================
; To change your systems definition, first sketch out the memory map in the
; comment table, then set the equates to reflect the memory map, doing any
; required calculations for element sizes and required spaces. As an
; alternative, just leave this file alone and configure everything with
; the utilities provided.
; FE00 - FFFF 512 Bytes HBIOS proxy AREA in the top of ram
; FD00 - FDFF 256 Bytes Multiple Command Line Buffer
; FC00 - FCFF 256 Bytes Environment Descriptor
; Bytes 00H-7FH: Z3 Parameters
; Bytes 80H-FFH: Z3 TCAP
; FBFF 1 Byte Wheel byte
; FBF4 - FBFE 11 Bytes Path (5 elements)
; FBD0 - FBF3 36 Bytes ZCPR3 External FCB
; FB80 - FBCF 80 Bytes ZCPR3 Message Buffers
; FB00 - FB7F 128 Bytes ZCPR3 Shell Stack (4x32)
; FAD0 - FAFF 48 Bytes ZCPR3 External Stack (must be 48 bytes)
; F900 - FACF 464 Bytes Named Directory Buffer (25 entries)
; F700 - F9FF 512 Bytes Flow Command Package
; F700 - F700 0 KBytes Resident Command Package
; F700 - F700 0 KBytes IO Package - no IOP
; F700 - F700 0 Bytes Resident User Space (no clock driver needed)
; The remainder is for the Operating System. Exact sizes vary depending
; primarily on the Number and sizes of Hard Drive Partitions, typically:
; EC00 - F6FF 22 recs B/P BIOS (unbanked version)
; E280 - EBFF 19 recs ZSDOS 2.0 BDOS
; DA80 - E27F 2 KBytes ZCPR 4.1 Command Processor
; 0100 - C5FF ~50 KBytes Transient Program Area
; 0000 - 00FF 256 Bytes Standard CP/M Buffers
;========================================================================
FALSE EQU 0
TRUE EQU NOT FALSE
YES EQU TRUE
NO EQU FALSE
; The Multiple Command Line Buffer is mandatory for ZCPR 3.3. 3.4 & 4.1.
; FD00 - FDCF 208 Bytes
;Z3CL EQU 0FB00H ; ZCPR3 Command Line Buffer
Z3CLS EQU 256-5 ; Size of Command Line Buffer-5
Z3CL EQU MEMTOP+1-Z3CLS-5 ; ZCPR3 Command Line Buffer
; The ZCPR3 External Environment Descriptor is mandatory B/P Bios & ZCPR 3.3.
; The Environment Descriptor MUST begin on an even Page Boundary (xx00H).
; FC00 - FCFF 256 Bytes Environment Descriptor
Z3ENVS EQU 2 ; Size of Env Descriptor in 128-Byte Blks
Z3ENV EQU (Z3CL-Z3ENVS*128) and 0FF00H
; The ZCPR3 Wheel Byte is mandatory for ZCPR 3.3.
; FBFF 1 Byte Wheel byte
Z3WHLS EQU YES
Z3WHL EQU Z3ENV-1 ; Wheel Byte Address
; The Path is mandatory for ZCPR 3.3.
; FBF4 - FBFE 11 Bytes Path (5 elements)
EXPATHS EQU 5 ; (Path Size = EXPATHS*2 + 1 = 11 bytes)
; This defines 5 2-byte Path Elements
EXPATH EQU Z3WHL-EXPATHS*2-1 ; External Path starting Address
; The ZCPR3 External FCB is mandatory for ZCPR 3.3.
; FBD0 - FBF3 36 Bytes ZCPR3 External FCB
EXTFCBS EQU YES
EXFCBSZ EQU 36
EXTFCB EQU EXPATH-EXFCBSZ ; 36-Byte ZCPR3 External FCB
; The ZCPR3 Message Buffers are mandatory for ZCPR 3.3.
; FB80 - FBCF 80 Bytes ZCPR3 Message Buffers
Z3MSGS EQU YES
Z3MSGSZ EQU 80 ; size of buffer
Z3MSG EQU EXTFCB-Z3MSGSZ ; 80-Byte ZCPR3 Message Buffer
; Shell Stack definition. Set SHSTKS to 0 to eliminate Shell Stack
; FB00 - FB7F 128 Bytes ZCPR3 Shell Stack
SHSTKS EQU 4 ; Number of SHSIZE-Byte Shell Stack entries
SHSIZE EQU 32 ; (Stack Size = SHSTKS * SHSIZE = 128 Bytes)
SHSTK EQU Z3MSG-SHSTKS*SHSIZE ; Shell Stack Starting Address
; The External Stack is mandatory for B/P Bios and ZCPR 3.3.
; FAD0 - FAFF 48 Bytes ZCPR3 External Stack (must be 48 bytes)
;EXTSTK EQU 0FAD0H ; ZCPR3 External Stack
EXTSTK EQU SHSTK-48 ; ZCPR3 External Stack
EXTSTKS EQU YES
; ZCPR3 Named Directory Buffer definition. Set Z3NDIRS to 0 to eliminate
; the named directory buffer.
; F900 - FACF 464 Bytes ; Named Directory Buffer - 25 NAMES
Z3NDIRS EQU 25 ; Number of Named Directory Elements
NDIRSZ EQU Z3NDIRS * 18 + 1
; (NDIR Size = Z3NDIRS * 18 + 1 = 451 Bytes)
Z3NDIR EQU SHSTK-(NDIRSZ/256+1)*256 ; Start of Named Directory Buffer
; Flow Command Package definition. Set FCPS to 0 to eliminate FCP
; F700 - F8FF 512 Bytes Flow Command Package
FCPS EQU 4 ; (FCP Size = 128 * FCPS = 512 Bytes)
;FCPS EQU 0 ; (FCP Size = 128 * FCPS = 0 Bytes)
FCP EQU Z3NDIR-FCPS*128 ; Start of Flow Command Package
; Resident Command Processor Definition. Set RCPS to 0 to eliminate RCP
; F700 - F700 0 KBytes Resident Command Package
;RCPS EQU 16 ; (RCP Size = 128 * RCPS = 2 kBytes)
RCPS EQU 0 ; (RCP Size = 128 * RCPS = 0 kBytes)
RCP EQU FCP-RCPS*128 ; Start of Resident Command Processor
; IO Package definition. Set IOPS to 0 which eliminates IOP
;IOP EQU 0EC00H ; Start of IO Package
; F700 - F700 0 KBytes IO Package
IOPS DEFL 0 ; (IOP Size = 128 * IOPS = 0 kBytes)
;IOPS DEFL 12 ; (IOP Size = 128 * IOPS = 1.5 kBytes)
;IOPS DEFL 10 ; (IOP Size = 128 * IOPS = 1.25 kBytes)
IOP EQU RCP-IOPS*128 ; Start of IO Package
;=========================================================================
; Resident User Space Definition. Set USPCS to 0 to eliminate USPC.
; The USPC Value marks the Lower Limit of Reserved Common High Memory and
; MUST BE PRESENT!
USPCS EQU 0 ; (USPC Size = 128 * USPCS = 0 kBytes)
;USPCS EQU 6 ; (USPC Size = 128 * USPCS = 0.75 kBytes)
; F700 - F700 0 KBytes Resident User Space
USPC EQU IOP-USPCS*128 ; Start of Resident User Space (MANDATORY)
;--- End of Z3BASE.LIB ---


1
Source/Images/d_bp.txt

@ -13,6 +13,7 @@
../../Binary/Apps/assign.com 15:
../../Binary/Apps/fat.com 15:
../../Binary/Apps/fdu.com 15:
../../Binary/Apps/fdu.doc 15:
../../Binary/Apps/format.com 15:
../../Binary/Apps/mode.com 15:
../../Binary/Apps/rtc.com 15:

BIN
Source/Images/d_bp/u15/d.com

Binary file not shown.

BIN
Source/Images/d_bp/u15/poke.com

Binary file not shown.

BIN
Source/Images/d_bp/u15/ql.com

Binary file not shown.

BIN
Source/Images/d_bp/u15/save.com

Binary file not shown.

BIN
Source/Images/d_bp/u15/sd.com

Binary file not shown.

1
Source/Images/d_cpm22.txt

@ -9,6 +9,7 @@ d_cpm22/ReadMe.txt 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:

5
Source/Images/d_cpm3.txt

@ -25,13 +25,14 @@
../../Binary/Apps/assign.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:
../../Binary/Apps/survey.com 0:
../../Binary/Apps/syscopy.com 0:
../../Binary/Apps/sysgen.com 0:
../../Binary/Apps/talk.com 0:
#../../Binary/Apps/sysgen.com 0:
#../../Binary/Apps/talk.com 0:
../../Binary/Apps/timer.com 0:
../../Binary/Apps/tune.com 0:
../../Binary/Apps/xm.com 0:

1
Source/Images/d_nzcom.txt

@ -26,6 +26,7 @@ d_zsdos/u0/*.* 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:

1
Source/Images/d_zpm3.txt

@ -24,6 +24,7 @@
../../Binary/Apps/assign.com 15:
../../Binary/Apps/fat.com 15:
../../Binary/Apps/fdu.com 15:
../../Binary/Apps/fdu.doc 15:
../../Binary/Apps/format.com 15:
../../Binary/Apps/mode.com 15:
../../Binary/Apps/rtc.com 15:

1
Source/Images/d_zsdos.txt

@ -22,6 +22,7 @@ d_cpm22/u0/XSUB.COM 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.123"
#DEFINE BIOSVER "3.1.1-pre.124"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1
rtp equ 0
biosver macro
db "3.1.1-pre.123"
db "3.1.1-pre.124"
endm

Loading…
Cancel
Save