Compare commits

...

94 Commits

Author SHA1 Message Date
Wayne Warthen
6647b09cf7 Fixes to EaZy80-512 Build 2024-12-20 15:57:36 -08:00
Wayne Warthen
f36a90afae Add EaZy80-512 2024-12-20 15:17:58 -08:00
Wayne Warthen
3c3ae4c6ab Merge pull request #480 from kiwisincebirth/map/disk-labels
Added Disk Labels (Loader.ASM)
2024-12-20 10:54:35 -08:00
Wayne Warthen
4110c67db4 Merge pull request #481 from kiwisincebirth/map/doc-assign
Documentation for ASSIGN.COM
2024-12-20 10:46:19 -08:00
Mark Pruden
4ac6a7d706 Documentation for ASSIGN.COM 2024-12-20 14:59:12 +11:00
Mark Pruden
1b7ef20ad1 Added Disk Labels (Loader.ASM), minor code improvement 2024-12-20 12:46:25 +11:00
Wayne Warthen
913a9caa87 CPUSPD Doc Update
- Clarifies the speed multiplier capabilities of the Z180 chip variants.
2024-12-19 10:18:16 -08:00
Wayne Warthen
58444fb213 Minor Improvement to TUNE Doc
- Improved Application documentation for TUNE related to recent addition of -MSX and -RC options.
2024-12-18 14:50:33 -08:00
Wayne Warthen
7917f0a5ad Merge pull request #479 from kiwisincebirth/map/change-attributes
Changed the Attribute for MD RF devices
2024-12-18 14:30:41 -08:00
Mark Pruden
8d8868e5d5 Changed the Attribute for MD RF devices reordering/fliping (RF<->Flash) so bit masks are easier 2024-12-18 18:12:38 +11:00
Wayne Warthen
a6b3b980f2 Merge pull request #476 from kiwisincebirth/map/assign1
added new /b=options to assign.com
2024-12-17 15:28:55 -08:00
Mark Pruden
d5c331076c added new /b=options to assign.com - Not complete at this time. 2024-12-17 13:13:12 +11:00
Wayne Warthen
bb4a64c35d Allow Forcing Detection of AY/YM PSG in HBIOS
See Issue #468
2024-12-16 11:29:49 -08:00
Wayne Warthen
757f0b08ff Minor Follow-up on KBD Interrupt Enhancement
- Add call to KBD_PREINIT to the CVDU driver.
2024-12-16 10:47:53 -08:00
Wayne Warthen
5bb168eb6e Merge pull request #475 from b1ackmai1er/master
Roll out kbd preinit into cga, gdc and vga driver
2024-12-16 10:37:27 -08:00
b1ackmai1er
cee3f8af78 Merge pull request #74 from wwarthen/master
Resync
2024-12-16 19:53:39 +08:00
Wayne Warthen
70cc884014 Fix .gitignore 2024-12-15 15:01:28 -08:00
Wayne Warthen
e4475b5e99 NetBoot Enhancements, Issue #463
- Correct typo in netboot.mod
- Added support for Duodyne NetBoot

Co-Authored-By: Douglas Miller <16920069+durgadas311@users.noreply.github.com>
2024-12-15 14:49:24 -08:00
b1ackmai1er
2e216d6bf5 Add cga graphic set picture 2024-12-14 20:10:13 +08:00
b1ackmai1er
e428e7ff8e rename 2024-12-14 18:24:32 +08:00
b1ackmai1er
083715e097 Add cga graphic set picture 2024-12-14 18:01:18 +08:00
b1ackmai1er
b0bb87ba0a typo 2024-12-14 17:19:14 +08:00
b1ackmai1er
83cd133c66 kbd preinit updates 2024-12-14 13:59:11 +08:00
b1ackmai1er
327a21ee10 Update hbios 2024-12-14 13:20:19 +08:00
b1ackmai1er
0d645cec30 kbd correction. vga kbd preinit 2024-12-14 13:19:38 +08:00
b1ackmai1er
82d28e143b kbd preinit for vga 2024-12-14 13:17:32 +08:00
b1ackmai1er
c0b48a007c kbd optimizations 2024-12-14 13:11:49 +08:00
b1ackmai1er
60b143fe01 Merge pull request #73 from wwarthen/master
Resync
2024-12-14 12:41:42 +08:00
Wayne Warthen
be618e07a6 Merge pull request #473 from kiwisincebirth/map/doc-userguide-fix
Minor doc upgrade
2024-12-13 18:32:33 -08:00
Mark Pruden
893da14d50 Minor doc upgrade 2024-12-14 12:16:25 +11:00
b1ackmai1er
83ef709a71 Merge pull request #72 from wwarthen/master
Resync
2024-12-14 01:21:10 +08:00
Wayne Warthen
5f54db2d60 Merge pull request #472 from kiwisincebirth/map/z80asm
Z80ASM Disk Image Improvements
2024-12-13 09:00:13 -08:00
Wayne Warthen
33e6fdadd7 Merge pull request #471 from kiwisincebirth/map/move-zpcom
In Disk Images Moved ZP.COM from ZPM to Common/Z3
2024-12-13 08:52:03 -08:00
Mark Pruden
fe947248bd Z80ASM Disk Image Improvements 2024-12-13 16:11:01 +11:00
Mark Pruden
b7c9a3b821 In Disk Images Moved ZP.COM from ZPM to Common/Z3 2024-12-13 12:50:20 +11:00
b1ackmai1er
fa8df65b50 Merge pull request #71 from wwarthen/master
Resync
2024-12-13 05:33:37 +08:00
Wayne Warthen
26a87a16a8 KBD Driver Pre Init
- Updated KBD driver to use PREINIT to disable interrupts.
2024-12-12 13:26:10 -08:00
Wayne Warthen
66bc219b32 Merge pull request #467 from b1ackmai1er/master
PS2 keyboard spurious interrupts
2024-12-12 11:59:35 -08:00
Wayne Warthen
0ad7431528 Add Options to Force Standard Ports in TUNE App
The Why Em-ulator cannot be detected by the normal probing mechanism in TUNE.  Added options to force the standard port configurations (MSX or RC).  See #468
2024-12-12 11:48:22 -08:00
b1ackmai1er
e433eb4962 Refactor ps2 keyboard driver 2024-12-11 21:38:26 +08:00
b1ackmai1er
b5b9098429 PS2 keyboard spurious interrupts
Resolved keyboard interrupt errors when a key is pressed during reboot. Turn off keyboard controller interrupt enable before cold boot process starts. I'm wondering if  duodyne interrupt generator is immune to DI :)?
2024-12-09 21:18:03 +08:00
Wayne Warthen
49ff4e4bc0 Merge pull request #464 from b1ackmai1er/master
Documentation updates
2024-12-08 13:51:45 -08:00
Wayne Warthen
59a7b6c42d Merge branch 'master' into master 2024-12-08 13:46:24 -08:00
Wayne Warthen
f9ed5651e6 KBD Interrupt Processing Cleanup
- I finally realized there was a much simpler way to setup the instance data pointer (IY) for the interrupt handler.  This implements the change and reduces the complexity of the code.
- Related to PR #460
2024-12-08 13:37:09 -08:00
Wayne Warthen
efb9ac21f0 NVRAM Doc Improvements, Issue #451 2024-12-08 11:46:01 -08:00
Wayne Warthen
a8f2aa71cc Baud Rate Mask Fix, Issue #465
Thanks and credit to Mark Pruden for finding this.
2024-12-08 07:28:23 -08:00
b1ackmai1er
043600595f Update ps2iface.inc 2024-12-08 21:19:18 +08:00
b1ackmai1er
c106b75261 Refactor ps2iface 2024-12-08 21:12:47 +08:00
b1ackmai1er
55336ac010 Typo 2024-12-08 17:30:01 +08:00
b1ackmai1er
778231dc80 Doc updates for front panel diagnostics 2024-12-08 16:18:45 +08:00
b1ackmai1er
61d9555dc0 Document updates 2024-12-08 15:26:10 +08:00
b1ackmai1er
4b963c3ab4 Merge pull request #69 from wwarthen/master
Resync
2024-12-08 10:50:30 +08:00
Wayne Warthen
2788fa4fdf Bump Version Numbers 2024-12-07 16:16:26 -08:00
Wayne Warthen
1468cecfad Update M80 from v3.43 to v3.44
- This addresses the issue with M80 from Issue #462.
- All of the other binaries from the newer distribution of Microsoft Basic Compiler match the binaries already in the disk image.
2024-12-07 16:02:11 -08:00
Wayne Warthen
8f75441317 Add NVRAM Configure to Main RomLdr Help
See Issue #451
2024-12-07 15:44:36 -08:00
Wayne Warthen
007e8a372a Final Tweaks to KBD Interrupt Support
Related to PR #460
2024-12-07 15:12:19 -08:00
Wayne Warthen
7606abb8f3 Follow-up on KBD Interrupt Support
Related to PR #460
2024-12-07 13:48:43 -08:00
Wayne Warthen
e3192bfbe6 Merge pull request #460 from b1ackmai1er/master
Master
2024-12-07 13:06:34 -08:00
b1ackmai1er
9d7adbec63 Spelling 2024-12-07 19:22:06 +08:00
b1ackmai1er
2d1811dcb4 Typos 2024-12-07 19:11:48 +08:00
b1ackmai1er
cfa86a9f2a Spurious interrupt fix. 2024-12-07 11:28:24 +08:00
b1ackmai1er
7a663e2a3c Use IY to retrieve status and data port values from idat tables. 2024-12-06 22:32:24 +08:00
b1ackmai1er
1a73a9614b Initialize interrupt vector after kbd controller detected 2024-12-06 19:31:52 +08:00
b1ackmai1er
660bb20bba Merge pull request #68 from wwarthen/master
Resync
2024-12-06 19:07:17 +08:00
Wayne Warthen
f03dcf7193 Clean Up NVRAM Switch Terminology
- Essentially, switch from the term "default boot" to the term "boot options".

See Issue #451
2024-12-05 19:01:03 -08:00
b1ackmai1er
64dbf4ff35 EZZ80_IO fixes 2024-12-06 05:39:57 +08:00
Wayne Warthen
edd0e58031 Help Text Update in sysconf, See #451
- Per Issue #451, minor correction to help text in sysconf.asm.

Co-Authored-By: Mark Pruden <github@mp.tidykiwi.com>
2024-12-05 11:12:22 -08:00
Wayne Warthen
887311827a RomLdr Tweaks
- Related to #451
2024-12-05 10:56:39 -08:00
b1ackmai1er
ce98947d07 Cleanup 2024-12-05 20:50:17 +08:00
b1ackmai1er
5d92341189 PS2 Interrupt driven keyboard for Duo
For keyboard interface on I/O Multi board. Default is disabled. Requires interrupt #2 jumper set on I/O Multiboard, which is pin 11-12 in P5. Has limitations around port settings. Do not have a video card on my Duo so have been forcing a video driver to load and testing with PIP CON:=UR2: . Let me know what you think.
2024-12-05 20:41:03 +08:00
b1ackmai1er
2a501566d7 Merge branch 'wwarthen:master' into master 2024-12-04 17:55:34 +08:00
Wayne Warthen
56a1e86788 Bump Version 2024-12-03 15:16:55 -08:00
Wayne Warthen
9c51d56c6a Refactor RomLdr
During testing of the NVRAM Switch changes (#451), I found some pre-existing stuff I didn't like, so I have tried to clean things up.

- BOOT_DEFAULT has been replaced by AUTO_CMD
- There is no longer a "default" boot loader command when pressing <enter>.
2024-12-03 15:13:57 -08:00
b1ackmai1er
736e4e276c Merge pull request #67 from wwarthen/master
Resync
2024-12-03 20:44:05 +08:00
Wayne Warthen
14486c0276 AutoBoot Tweak
- Remove "default" boot concept.
2024-12-02 16:22:47 -08:00
Wayne Warthen
6edb7bb0c7 Regen PDF Doc 2024-12-01 15:33:58 -08:00
Wayne Warthen
dbde08cc74 Merge pull request #459 from b1ackmai1er/master
Reimplementation of boot recovery for Duodyne which appears to have been lost
2024-12-01 15:27:26 -08:00
Wayne Warthen
f61d96bf93 Merge branch 'master' into master 2024-12-01 15:26:39 -08:00
Wayne Warthen
b032694e01 Enhance Writing Hard Disk Slices (Discussion #457)
Per discussion #457 with Hubert Hirsch, I have attempted to enhance the Writing Hard Disk Slices section of the User Guide.
2024-12-01 14:32:51 -08:00
Wayne Warthen
6c96afcb5a NVRAM Follow-up
- Minor documentation enhancements
- Add "Autoboot in nn Seconds..." message to RomLdr
2024-12-01 13:47:20 -08:00
Wayne Warthen
73a7338140 Merge pull request #455 from kiwisincebirth/map/switches2
Map/switches2
2024-12-01 13:27:22 -08:00
b1ackmai1er
925b2870eb revert bad push 2024-12-01 22:00:45 +08:00
b1ackmai1er
65413e50d1 Fix initialization table setup for duo recovery 2024-12-01 21:19:33 +08:00
b1ackmai1er
a0ae357d9b Pretty Platfrom Boot Banner
Defaults to off due to HBIOS space considerations.
Add BOOT_PRETTY .SET TRUE to custom configuration to enable.
2024-12-01 13:26:01 +08:00
b1ackmai1er
e6b2cf7f55 Typos 2024-12-01 10:27:03 +08:00
b1ackmai1er
b0bafb70e4 Typo 2024-12-01 10:07:04 +08:00
b1ackmai1er
2fccb9dac7 MBC recovery mode default, document corrections 2024-12-01 09:12:54 +08:00
b1ackmai1er
7f07af1b62 Reimplement Duodyne boot recovery
Add feature description in documentation.
2024-11-30 23:27:02 +08:00
b1ackmai1er
02895a7d84 Merge pull request #66 from wwarthen/master
Resync
2024-11-30 15:00:57 +08:00
Mark Pruden
9713ca445c Documenation changes for the NVRAM changes 2024-11-29 09:06:51 +11:00
Mark Pruden
f6ef90fe14 Build changes as discussed with WW and documented in Issue 451 2024-11-15 22:10:04 +11:00
Mark Pruden
7a87dd6805 RomLoader changes to implement NVRAM config, and relatd changes to HBIOS/SysConfig 2024-11-15 18:49:46 +11:00
b1ackmai1er
81da5af7ae Merge pull request #65 from wwarthen/master
Resync
2024-05-12 17:12:59 +08:00
b1ackmai1er
7b5f1f3884 Merge pull request #64 from wwarthen/master
Resync
2024-04-04 18:59:58 +08:00
201 changed files with 15422 additions and 1310 deletions

3
.gitignore vendored
View File

@@ -20,7 +20,7 @@
Binary/**/*.mym
Binary/**/*.pt3
!Binary/CPNET/NetBoot/cpnos-wbw.sys
!Binary/CPNET/NetBoot/*/cpnos.sys
Source/**/eeprom
Source/Apps/Assign.com
@@ -98,6 +98,7 @@ Tools/unix/zx/zx
!Source/ZSDOS/*.[Cc][Oo][Mm]
!Source/ZRC/*.bin
!Source/ZRC512/*.bin
!Source/EZ512/*.bin
!Source/Z1RCC/*.bin
!Source/ZZRCC/*.bin
!Source/FZ80/*.bin

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -47,7 +47,12 @@ Version 3.5
- MAP: Significant improvement in Disk Catalog document
- MAP: Added Disk Image for the Z3PLUS (Z-System for CP/M-Plus) os.
- H?H: Fix XModem 12.3 WRERR to put CAN char in proper register to send.
- MAP: Initial NVRAM configuration infrastructure
- MAP: Initial NVRAM configuration infrastructure, and boot device selection.
- MAP: Added additional tools (Linker/Disasembler) to the Z80ASM Disk Image
- PMS: Support interrupt-driven PS2 Keyboard Interface
- D?M: Added NetBoot support for Duodyne
- WBW: Add options to TUNE/HBIOS to force detection of MSX and RC AY/YM standard PSG ports
- MAP: Added /B=OPTIONS for automated drive assignment to ASSIGN.COM
Version 3.4
-----------

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

590
ReadMe.md
View File

@@ -1,294 +1,296 @@
**RomWBW ReadMe** \
Version 3.5 \
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
08 Nov 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, and the COPYSL utility.
- 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)) \
20 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 a
feature for RomWBW configuration by NVRAM, and added the /B bulk mode
of disk assignment to the ASSIGN utility.
- Jacques Pelletier has contributed the DS1501 RTC driver code.
- 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>.

View File

@@ -1,300 +1,302 @@
RomWBW ReadMe
Wayne Warthen (wwarthen@gmail.com)
08 Nov 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, and the COPYSL utility.
- 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)
20 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 a
feature for RomWBW configuration by NVRAM, and added the /B bulk
mode of disk assignment to the ASSIGN utility.
- Jacques Pelletier has contributed the DS1501 RTC driver code.
- 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.

View File

@@ -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

View File

@@ -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

View File

@@ -52,6 +52,7 @@
; 2024-07-08 [WBW] Add support for Les Bird's Graphics, Sound, Joystick
; 2024-07-11 [WBW] Updated, Les Bird's module now uses same settings as EB6
; 2024-09-17 [WBW] Add support for HEATH H8 with Les Bird's MSX Card
; 2024-12-12 [WBW] Add options to force standard MSX or RC ports
;_______________________________________________________________________________
;
; ToDo:
@@ -73,6 +74,10 @@ TYPPT2 .EQU 1 ; FILTYP value for PT2 sound file
TYPPT3 .EQU 2 ; FILTYP value for PT3 sound file
TYPMYM .EQU 3 ; FILTYP value for MYM sound file
;
PORTS_AUTO .EQU 0 ; AUTO select audio chip ports
PORTS_MSX .EQU 1 ; force MSX audio chip ports
PORTS_RC .EQU 2 ; force RCBUS audio chip ports
;
; HIGH SPEED CPU CONTROL
;
SBCV2004 .EQU 0 ; ENABLE SBC-V2-004 HALF CLOCK DIVIDER
@@ -106,6 +111,7 @@ Id .EQU 1 ; 5) Insert official identificator
PRTSTRDE(MSGBAN) ; Print to banner message
CALL CLI_ABRT_IF_OPT_FIRST
CALL CLI_PORTS
CALL CLI_HAVE_HBIOS_SWITCH
CALL CLI_OCTAVE_ADJST
JP CONTINUE
@@ -125,6 +131,22 @@ CONTINUE:
OR A
JR NZ, TSTTIMER ; skip hardware check if using hbios
LD A, (USEPORTS) ; get ports option
LD HL,MSXPORTS ; assume MSX
CP PORTS_MSX ; use MSX?
JR Z,FORCE
LD HL,RCPORTS ; asssume RC
CP PORTS_RC ; use RC?
JR Z,FORCE
JR AUTOSEL ; otherwise do auto select
FORCE:
LD BC,CFGSIZ ; Size of one entry
LD DE,CFG ; Active config structure
LDIR ; Update active config structure
JR MAT ; Continue
AUTOSEL:
LD HL,CFGTBL ; Point to start of config table
CFGSEL:
LD A,$FF ; End of table marker
@@ -646,6 +668,17 @@ CFGSIZ .EQU $ - CFGTBL
;
.DB $FF ; END OF TABLE MARKER
;
; The following are table entries (like above), but not part of auto
; detection searching. They are selected byh command line options.
;
MSXPORTS:
.DB $FF, $A0, $A1, $FF, $FF, $FF, $FF ; GENERIC MSX
.DW HWSTR_MSX
;
RCPORTS:
.DB $FF, $D8, $D0, $FF, $FF, $FF, $FF ; GENERIC RC
.DW HWSTR_RC
;
CFG: ; ACTIVE CONFIG VALUES (FROM SELECTED CFGTBL ENTRY)
PLT .DB 0 ; RomWBW HBIOS platform id
PORTS:
@@ -672,11 +705,13 @@ TMP .DB 0 ; work around use of undocumented Z80
HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE
OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN
MSGBAN .DB "Tune Player for RomWBW v3.11, 17-Sep-2024",0
USEPORTS .DB 0 ; AUDIO CHIP PORT SELECTION MODE
MSGBAN .DB "Tune Player for RomWBW v3.12, 12-Dec-2024",0
MSGUSE .DB "Copyright (C) 2024, Wayne Warthen, GNU GPL v3",13,10
.DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10
.DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [--hbios] [+tn|-tn]",0
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [-msx|-rc] [--hbios] [+tn|-tn]",0
MSGBIO .DB "Incompatible BIOS or version, "
.DB "HBIOS v", '0' + RMJ, ".", '0' + RMN, " required",0
MSGPLT .DB "Hardware error, system not supported!",0
@@ -700,6 +735,8 @@ HWSTR_MBC .DB "NHYODYNE Sound Module",0
HWSTR_DUO .DB "DUODYNE Sound Module",0
HWSTR_NABU .DB "NABU Onboard Sound",0
HWSTR_HEATH .DB "HEATH H8 MSX Module",0
HWSTR_MSX .DB "MSX Standard Ports (A0H/A1H)",0
HWSTR_RC .DB "RCBus Standard Ports (D8H/D0H)",0
MSGUNSUP .db "MYM files not supported with HBIOS yet!\r\n", 0

View File

@@ -11,6 +11,8 @@
; ex: ASSIGN (display all active drive assignments)
; ASSIGN /? (display version and usage)
; ASSIGN /L (display all possible devices)
; ASSIGN /B=OPTS (perform assignment based on options)
; ASSIGN C: (display assignment for C:)
; ASSIGN C:=D: (swaps C: and D:)
; ASSIGN C:=FD0: (assign C: to floppy unit 0)
; ASSIGN C:=IDE0:1 (assign C: to IDE unit0, slice 1)
@@ -33,6 +35,7 @@
; 2023-06-19 [WBW] Update for revised DIODEVICE API
; 2023-09-19 [WBW] Added CHUSB & CHSD device support
; 2023-10-13 [WBW] Fixed DPH creation to select correct DPB
; 2024-12-17 [MAP] Added new /B=opt feaure to assign drives
;_______________________________________________________________________________
;
; ToDo:
@@ -52,6 +55,7 @@ bnksel .equ $FFF3 ; HBIOS bank select vector
stamp .equ $40 ; loc of RomWBW CBIOS zero page stamp
;
#include "../../ver.inc"
#include "../../HBIOS/hbios.inc"
;
;===============================================================================
; Code Section
@@ -80,7 +84,7 @@ start:
call init ; initialize
jr nz,exit ; abort if init fails
;
; do the real work
; do the real work
call process ; parse and process command line
jr nz,exit ; done if error or no action
;
@@ -160,7 +164,7 @@ init:
ld e,(hl) ; dereference HL
inc hl ; ... into DE to get
ld d,(hl) ; ... DPB map pointer
ld (dpbloc),de ; and save it
ld (dpbloc),de ; and save it
;
; test for CP/M 3 and branch if so
ld a,(cpmver) ; low byte of cpm version
@@ -229,7 +233,7 @@ initx:
call prtchr
ld bc,(heaplim)
call prthexword
#endif
;
; return success
@@ -253,7 +257,7 @@ initcpm3:
; switch to sysbnk
ld a,($FFE0) ; get current bank
push af ; save it
ld bc,$F8F2 ; HBIOS Get Bank Info
ld bc,BC_SYSGET_BNKINFO ; HBIOS Get Bank Info
rst 08 ; call HBIOS, E=User Bank
ld a,e ; HBIOS User Bank
call bnksel ; HBIOS BNKSEL
@@ -282,7 +286,7 @@ initc3:
inc de ; bump to slice
ld a,(hl) ; get slice from drvtbl
ld (de),a ; save slice to drvmap
initc4:
initc4:
inc de ; bump past slice
inc de ; skip
inc de ; ... dph
@@ -399,6 +403,8 @@ option:
ld a,(hl) ; get it
cp '?' ; is it a '?' as expected?
jp z,usage ; yes, display usage
cp 'B' ; assign Boot Hard Drive Slices
jp z,bootdr ; yes, assign boot drive slices
cp 'L' ; is it a 'L', display device list?
jp z,devlist ; yes, display device list
jp errprm ; anything else is an error
@@ -438,9 +444,8 @@ devlist:
or a ; set flags
jr nz,devlstu ; do UNA mode dev list
;
ld b,$F8 ; hbios func: sysget
ld c,$10 ; sysget subfunc: diocnt
rst 08 ; call hbios, E := device count
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
rst 08 ; call hbios, E := device count
ld b,e ; use device count for loop count
ld c,0 ; use C for device index
devlist1:
@@ -486,6 +491,417 @@ devlstu1:
djnz devlstu1 ; loop as needed
ret ; return
;
; -------------------------------------------------
; /B=XXX - Bootup drive Assignment
;
; Variable used across the entire bootdr: function
; - (mapwrk) working table of assignments
; - (mapadr) pointer to next drive assignment in mapwrk
; - (dstdrv) Drive letter of next assigment 0-15
; - (tmpstr) List of Option letters being processed
;
bootdr:
; command line processing mapping options into (tmpstr)
inc hl ; next char after the /B expect a delimeter
call nonblank ; skip ws
cp '='
inc hl
call nonblank ; skip ws
call getalpha ; options string into (tmpstr)
;
; defaulting loop for normal disk boot starting at A:
ld hl,mapwrk ; DE := working drive map
ld (mapadr),hl ; save pointer o next drive maping
xor a ; next dest drive letter start at A:
ld (dstdrv),a
bootdr1:
; process next letter in the cmd line options
ld a,(tmpstr) ; next letter
res 5,a ; FORCE UPPERCASE (IMPERFECTLY)
; Case Statement
ld hl,bootdr2 ; return address for below JP
push hl ; when RET from below JP, return
cp 'A'
jp z,bootdra ; RAM
cp 'B'
jp z,bootdrb ; BOOT
cp 'F'
jp z,bootdrf ; FLOPPY
cp 'H'
jp z,bootdrh ; HARD DRIVES (improved)
cp 'L'
jp z,bootdrl ; HARD DRIVES (legacy)
cp 'O'
jp z,bootdro ; ROM
cp 'P'
jp z,bootdrp ; PRESERVE/KEEP (SKIP)
cp 'S'
jp z,bootdrs ; SLICES (OFF BOOT DRIVE)
cp 'X'
jp z,bootdrx ; UNASSIGN
cp 'Z'
jp z,bootdrz ; UNASSIGN ALL REMAINING
; no valid option was found just ignore and continue
; potentially signal an error
pop hl ; remove the return address, since no match
bootdr2:
jr c,bootdr4 ; if overflowed, exhaused drives then error
; bump to next letter in tmp str, by shifing string left in buffer
ld hl,tmpstr+1 ; copy from +1 in buffer
ld a,(hl) ; copy next char for Z check
ld de,tmpstr ; copy down to +0 in buffer
ld bc,16 ; buffer is 16 bytes
ldir
or a ; set flags based on next char
jr nz,bootdr1 ; loop if character found
bootdr3:
xor a ; success
ret ; finished
bootdr4:
or $ff ; failure
ret ; finished
;
; -------------------------------------------------
; /B=XXX AGORITHMS START HERE
;
; PRESERVE, SKIP 1, JUST LOOP
bootdrp:
call bootinc ; Skip to next drive letter
ret ; Finished
;
; EXCLUDE / UNASSIGNED / GAP
bootdrx:
ld a,$FF ; $FF (unit) signal a drive not assigned
ld (unit),a ; set unit
xor a ; slice 0
ld (slice),a ; save as slice to assign.
call bootadd ; assign the slice
ret ; Finished, returning error
;
; EXCLUDE / UNASSIGNED - ALL REMAINING
bootdrz:
ld a,$FF ; $FF (unit) signal a drive not assigned
ld (unit),a ; set unit
xor a ; slice 0
ld (slice),a ; save as slice to assign.
bootdrz1:
call bootadd ; assign the slice
jr nc,bootdrz1 ; NC still can continue to allocate
xor a ; success
ret ; Finished
;
; BOOT DRIVE
bootdrb:
ld bc,BC_SYSGET_BOOTINFO ; HBIOS SysGet; BootInfo
rst 08 ; Get boot disk unit/slice in DE
ld a,d ; boot unit id returned in D
ld (unit),a ; save as unit number
ld a,e ; boot slice returned in E
ld (slice),a ; save as slice to assign.
call bootadd ; add the boot drive slice
ret ; Finished, returning error
;
; RAM DRIVE
bootdra:
ld a,$FF ; specific mask to include all BITS
ld (atrmask),a ; mask for device attributes
ld a,%00010101 ; specific mask for RAM DRIVE.
ld (atrcomp),a ; compare to after mask
call bootadds ; do single slice assignment
ret ; Finished, returning error
;
; ROM DRIVE
; Note: if MDFFENABLE is enabled, this wont select the ROM since the
; driver returns MD_AFSH (%00010111), and we cannot generalise this mask
bootdro:
ld a,%11111101 ; ROM mask, excluding Bit 1, which varies
ld (atrmask),a ; mask for device attributes
ld a,%00010100 ; for values "MD_AROM", "MD_AFSH"; Att="000101x0"
ld (atrcomp),a ; compare to after mask
call bootadds ; do single slice assignment
ret ; Finished, returning error
;
; FLOPPY DRIVE(S)
bootdrf:
ld a,%11000000 ; device parameters (Removable Floppy)
ld (atrmask),a ; mask for device attributes
ld (atrcomp),a ; compare to after mask
call bootadds ; do single slice assignment
ret ; Finished, returning error
;
; SLICES (From Boot Drive Only)
bootdrs:
; find the boot drive, save unit /slice number
ld a,(mapwrk) ; boot drive unit number
ld (unit),a ; save as unit number to assign
ld a,0 ; starting slice number
bootdrs1:
; A is next slice to assign when entering here
ld (slice),a ; save as slice to assign.
call bootadd ; add the slice, return Z - past the last drive
jr c,bootdrs2 ; drives exhaused, finish up
ld a,(slice) ; get the slice just consumed
inc a ; next slice
JR bootdrs1 ; loop round
bootdrs2:
xor a ; success
ret
;
; HARD DRIVE(S) - Improved from CBIOS - More Drives
bootdrh:
ld a,%00100000 ; device parameters (High Capacity)
ld (atrmask),a ; mask for device attributes
ld (atrcomp),a ; compare to after mask
; count the number of drives matching criteria
call bootcnt ; return Drive count in A
; compute Slices per volume from drv count in A
call bootdrh1 ; return SPV in A
ld (slicec),a ; slice per volume count
; do the drive assignment
call bootaddn ; do the drive assignment
ret ; Finished returning error
;
; Input A contains device count return SPV (slices per volume) in A
bootdrh1:
ld e,a ; divide by by e, the number of devices
ld a,(dstdrv) ; next destination drive to map, 0-15
ld d,a ; put it in d
ld a,16 ; total number of drives
sub d ; less assigned = remaining
ld d,a ; divides d - remaing drives
; The following routine divides d by e and places the quotient in d and the remainder in a
; https://wikiti.brandonw.net/index.php?title=Z80_Routines:Math:Division
xor a
ld b, 8
bootdrh2:
sla d
rla
cp e
jr c, $+4
sub e
inc d
djnz bootdrh2
ld a,d ; end of the division the quotiant in A
ret ; return it
;
; HARD DRIVE(S) - Legacy (from CBIOS)
bootdrl:
ld a,%00100000 ; device parameters (High Capacity)
ld (atrmask),a ; mask for device attributes
ld (atrcomp),a ; compare to after mask
;
; count the number of drives matching criteria
call bootcnt ; return Drive count in A
;
; compute Slices per volume from drv count in A
call bootdrl1 ; return SPV in A
ld (slicec),a ; slice per volume count
;
; do the drive assignment
call bootaddn ; do the drive assignment
xor a ; Success
ret ; Finished
;
; Input A contains device count return SPV (slices per volume) in A
bootdrl1:
ld e,8 ; ASSUME 8 SLICES PER VOLUME
dec a ; DEC ACCUM TO CHECK FOR COUNT = 1
jr z,bootdrl2 ; YES, SKIP AHEAD TO IMPLEMENT 8 HDSPV
ld e,4 ; NOW ASSUME 4 SLICES PER VOLUME
dec a ; DEC ACCUM TO CHECK FOR COUNT = 2
jr z,bootdrl2 ; YES, SKIP AHEAD TO IMPLEMENT 4 HDSPV
ld e,2 ; IN ALL OTHER CASES, WE USE 2 HDSPV
bootdrl2:
ld a,e
ret
;
; -------------------------------------------------
; /B=XXX - General Purpose Functions
;
; Count Number of Devices
; (atrmask) mask the device attribtes
; (atrcomp) compare to set zero flag
; return A number of drives mathing the attributes
bootcnt
; loop thru hbios units looking for device type/unit match
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
rst 08 ; call hbios, E := device count
ld b,e ; use device count for loop count
ld c,0 ; use C for device index C = 0
ld l,0 ; will contain the drive count
bootcnt1:
call bootmat ; perform the match on device C, Z if match
jr nz,bootcnt2 ; not matching, skip and continue loop
inc l ; same so incrment the counter
bootcnt2:
inc c ; next drive letter
djnz bootcnt1 ; loop
ld a,l ; return the count in A register
or a ; ensure registers are set correctly
ret ; Finished
;
; Loop though all devices add a single slice based on device attributes
; See method below for documentation. Noting (slice) is defaulted to 1
bootadds
ld a,1
ld (slicec),a
; fall through to bootaddn
;
; Loop though all devices add N slice(s) based on device attributes
; (atrmask) mask the device attribtes
; (atrcomp) compare to set zero flag
; (slicec) number of slices
; return C flag
; C have expended all drives
; NC still can continue to allocate
; Z otherwise successfully completed
bootaddn
; loop thru hbios units looking for device type/unit match
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
rst 08 ; call hbios, E := device count
ld b,e ; use device count for loop count
ld c,0 ; use C for device index C = 0
bootaddn1:
call bootmat ; perform the match on device C, Z if match
jr nz,bootaddn4 ; not same skip volume, continue loop
; save the disk unit
ld a,c ; get the unit id back into A
ld (unit),a ; unit to add, if we add it.
; setup inner loop
push bc ; save loop control for outer loop
ld a,(slicec) ; count of slices to assign
ld b,a ; use device count for loop count
ld c,0 ; use C for slice index slice = 0
bootaddn2:
; entering here C contains updated slice
ld a,c ; slice number
ld (slice),a ; slice number
; assign the slice and loop
push bc ; save loop control
call bootadd ; add the slice
pop bc ; restore loop
jr c,bootaddn3 ; if bootadd, ran out of drives to allocate
inc c ; next slice
djnz bootaddn2 ; inner loop
bootaddn3:
; finish inner loop for next disk unit
pop bc ; restore loop control for outer
ret c ; return if no drives left to allocate
bootaddn4:
; continue looping to next unit
inc c ; next device
djnz bootaddn1 ; outer loop
xor a ; success
ret ; Finished
;
; Add a Single Drive.
; based on (unit) and (slice) variables
; This routine will skip if drive already assigned
; return C flag
; C have expended all drives
; NC still can continue to allocate
bootadd:
; check we are not already past last (P:) drive
ld hl,dstdrv ; destination drive
ld a,15
cp (hl) ; C set if >= 16
ret c ; Return with carry, cannot assign.
; do we need to perform duplicate check
ld a,(dstdrv) ; next destination drive to map, could be A: (=0)
or a ; is it A:
jr z,bootadd1 ; nothing to check we are assigning the A: drive
; perform duplicate check before assignment
ld b,a ; B number of entries to check
ld hl,mapwrk ; HL point to working drive map table to compare to
ld de,unit ; DE comparison, unit/slice are ordered (psudo mapwrk entry)
call valid3 ; perform a duplicate check (REUSED)
jr z,bootinc1 ; Z - found a duplicate, exit out
;
bootadd1:
; actually assign it.
ld hl,(mapadr) ; address of next map entry in table
ld a,(unit) ; the unit number
ld (hl), a ; write unit number to Table
inc hl
ld a,(slice) ; the slice
ld (hl), a ; write slice to the table
; show the new assignment
push bc
push de
ld a,(dstdrv) ; destination drive
call showone ; show it's new value
pop de
pop bc
; signal the change has occured
ld hl,modcnt ; point to mod count
inc (hl) ; increment it
; fall through to bootinc and inc target drive
;
; Increment to the next drive (A-P)
; return C flag
; C have expended all drives
; NC still can continue to allocate
bootinc:
; check we are not already past last (P:) drive
ld hl,dstdrv ; destination drive
ld a,15
cp (hl) ; C set if >= 16
ret c ; Return with carry, cannot increment.
; actually increment it
inc (hl) ; increment destination drive (A-P)
ld hl,(mapadr) ; address in working assignment table (mapwrk)
ld bc,4
add hl,bc
ld (mapadr),hl ; move address to next location in map
bootinc1:
ld hl,dstdrv ; destination drive
ld a,15
cp (hl) ; C set if >= 16
ret
;
; Does Disk Unit Meet matching Criteria
; pass in C which is the unit, ret Z if matching:
; * (atrmask) mask the device attribtes
; * (atrcomp) compare to set zero flag
; registers BC DE HL are preserved
bootmat:
push hl
push de
push bc ; preserve
; get the disk unit attributes
ld b,BF_DIODEVICE ; hbios func: diodevice C:= DISK UNIT
rst 08 ; call hbios, C := device attributes
; do the attribute comparison
ld a,(atrmask) ; attribute bit mask
and c ; mask with device attributes from hbios
ld c,a ; move value back to c
ld a,(atrcomp) ; value parameter to compare with
cp c ; do the comparison : Z if matching
jr nz,bootmat3 ; not matching, just return, NZ go no further
; Attributes match - did caller request high capacity device
bit 5,a ; high capacity flag passed in (atrcomp)
jr NZ,bootmat1 ; IF hig capacity, test if hd is onlne
; Attributes match - but NOT high capacity
xor a ; Result = Z
jr bootmat3 ; and return
bootmat1:
; Attributes match - and IS high capacity
pop bc ; get C para back (unit)
push bc
; Sense Media
ld b,BF_DIOMEDIA ; HBIOS FUNC: SENSE MEDIA
ld e,1 ; PERFORM MEDIA DISCOVERY
rst 08 ; DO IT
; returns NZ if error (no media), and Z if no error (media detected)
; can just return this flag
bootmat3:
pop bc
pop de
pop hl ; restore and return
ret
;
; ----------------------------------------------------------------
;
; Install the new drive map into CBIOS
;
install:
@@ -609,7 +1025,7 @@ dph_init3:
call prtstr ; and print it
;
call drvrst ; perform BDOS drive reset
;
;
xor a ; signal success
ret ; done
;
@@ -653,7 +1069,7 @@ makdphuna1: ; handle ram/rom
makdphwbw: ; determine appropriate dpb (WBW mode, unit number in A)
;
ld c,a ; unit number to C
ld b,$17 ; HBIOS: Report Device Info
ld b,BF_DIODEVICE ; HBIOS: Report Device Info
rst 08 ; call HBIOS, return w/ device type in D, physical unit in E
ld a,d ; device type to A
cp $00 ; ram/rom?
@@ -664,7 +1080,7 @@ makdphwbw: ; determine appropriate dpb (WBW mode, unit number in A)
jr z,makdph0 ; yes, jump ahead
ld e,2 ; otherwise ram
jr makdph0 ; jump ahead
makdph00:
makdph00:
ld e,6 ; assume floppy
cp $01 ; floppy?
jr z,makdph0 ; yes, jump ahead
@@ -689,7 +1105,7 @@ makdph1:
pop hl ; hl := start of dph
ld a,8 ; size of dph reserved area
call addhl ; leave it alone (zero filled)
;
;
ld bc,(dirbuf) ; address of dirbuf
ld (hl),c ; plug dirbuf
inc hl ; ... into dph
@@ -716,7 +1132,7 @@ makdph2:
;
; HL := alloc size, DE bumped
ex de,hl
ld e,(hl) ; get size to allocate
ld e,(hl) ; get size to allocate
inc hl ; ...
ld d,(hl) ; ... into HL
inc hl ; and bump DE
@@ -730,7 +1146,7 @@ makdph2:
; allocate memory
call alloc ; do the allocation
jp c,instovf ; bail out on overflow
makdph3:
; swap hl and bc
push bc ; bc -> (sp)
@@ -741,7 +1157,7 @@ makdph3:
ld (hl),c ; save cks/als buf
inc hl ; ... address in
ld (hl),b ; ... dph and bump
inc hl ; ... to next dph entry
inc hl ; ... to next dph entry
xor a ; signal success
ret
;
@@ -751,7 +1167,7 @@ instcpm3:
; swicth to sysbnk
ld a,($FFE0) ; get current bank
push af ; save it
ld bc,$F8F2 ; HBIOS Get Bank Info
ld bc,BC_SYSGET_BNKINFO ; HBIOS Get Bank Info
rst 08 ; call HBIOS, E=User Bank
ld a,e ; HBIOS User Bank
call $FFF3 ; HBIOS BNKSEL
@@ -763,8 +1179,7 @@ instcpm3:
ld h,(hl) ; ...
ld l,a ; ...
ld (dphadr),hl ; save starting dphadr
ld hl,(drvtbl) ; get drive table in HL
ld de,mapwrk ; DE := working drive map
ld b,16
@@ -783,7 +1198,7 @@ instc1:
inc de ; ...
jr instc3 ; resume loop without copy
;
instc2:
instc2:
push hl ; save drvtbl entry adr
push de ; save mapwrk entry adr
ld de,(dphadr) ; get cur dph adr
@@ -865,15 +1280,15 @@ alloc:
ex de,hl ; de=new heaptop, hl=heaplim
sbc hl,de ; heaplim - heaptop
jr c,allocx ; c set on overflow error
; allocation succeeded, commit new heaptop
; allocation succeeded, commit new heaptop
ld (heaptop),de ; save new heaptop
allocx:
allocx:
pop hl ; return value to hl
pop de ; recover de
ret
;
; Scan drive map table for integrity
; Currently just checks for multiple drive
; Currently just checks for multiple drive
; letters referencing a single file system
;
valid:
@@ -905,6 +1320,14 @@ valid2: ; setup for inner loop
call addhl ; point to entry following
pop de ; de points to comparison entry
;
; Scan for a match in (mapwrk)
; The following comparison code is called elsewhere, not just from above
; (please respect the contract)
; hl : pointer to start of items to scan check in map
; de is the invarient (fixed) entry in the table to compare against
; b : is the number of items to check
; return Z - Found a duplicate comparison=0
; return NZ - No Matches found (a=$ff)
valid3: ; inner loop
; bypass unassigned drives (only need to test 1)
ld a,(hl) ; get first drive unit in A
@@ -981,7 +1404,7 @@ drvswap:
ld a,(srcdrv) ; get the source drive
call chkdrv ; valid drive?
ret nz ; abort if not
ld hl,(drives) ; load source/dest in DE
ld hl,(drives) ; load source/dest in HL
ld a,h ; put source drive num in a
cp l ; compare to the dest drive num
jp z,errswp ; Invalid swap request, src == dest
@@ -1001,7 +1424,7 @@ drvswap:
rlca
call addhl
ld (dstptr),hl
;
;
; 1) dest -> temp
ld hl,(dstptr)
ld de,tmpent
@@ -1064,20 +1487,19 @@ drvmap1: ; loop through device table looking for a match
djnz drvmap1 ; and loop
jp errdev
;
drvmap2:
drvmap2:
; convert index to device type id
ld a,c ; index to accum
ld (device),a ; save as device id
;
; loop thru hbios units looking for device type/unit match
ld b,$F8 ; hbios func: sysget
ld c,$10 ; sysget subfunc: diocnt
rst 08 ; call hbios, E := device count
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
rst 08 ; call hbios, E := device count
ld b,e ; use device count for loop count
ld c,0 ; use C for device index
drvmap3:
push bc ; preserve loop control
ld b,$17 ; hbios func: diodevice
ld b,BF_DIODEVICE ; hbios func: diodevice
rst 08 ; call hbios, D := device, E := unit
pop bc ; restore loop control
ld a,(device)
@@ -1099,7 +1521,7 @@ drvmap5:
call chkdev ; check validity
pop bc ; restore unit
ret nz ; bail out on error
; resolve the CBIOS DPH table entry
ld a,(dstdrv) ; dest drv num to A
call chkdrv ; valid drive?
@@ -1206,12 +1628,12 @@ showall:
ld b,16 ; 16 drives possible
ld c,0 ; map index (drive letter)
;
ld a,b ; load count
or $FF ; signal no action
ret z ; bail out if zero
; ld a,b ; load count
; or $FF ; signal no action
; ret z ; bail out if zero
;
showall1: ; loop
ld a,c ;
; ld a,c ;
push bc ; save loop control
call showass
pop bc ; restore loop control
@@ -1226,8 +1648,9 @@ showall1: ; loop
showass:
;
; setup HL to point to desired entry in table
ld c,a ; save incoming drive in C
; ld c,a ; save incoming drive in C
ld hl,mapwrk ; HL = address of drive map
ld a,c
rlca
rlca
call addhl ; HL = address of drive map table entry
@@ -1301,7 +1724,7 @@ prtdev:
or a ; set flags
ld a,e ; put device num back
jr nz,prtdevu ; print device in UNA mode
ld b,$17 ; hbios func: diodevice
ld b,BF_DIODEVICE ; hbios func: diodevice
ld c,a ; unit to C
rst 08 ; call hbios, D := device, E := unit
push de ; save results
@@ -1326,7 +1749,7 @@ prtdevu:
push bc
push de
push hl
;
;
; UNA mode version of print device
ld b,a ; B := unit num
push bc ; save for later
@@ -1389,15 +1812,14 @@ chkdrv:
;
chkdev: ; HBIOS variant
push af ; save incoming unit
ld b,$F8 ; hbios func: sysget
ld c,$10 ; sysget subfunc: diocnt
ld bc,BC_SYSGET_DIOCNT ; hbios func: sysget subfunc: diocnt
rst 08 ; call hbios, E := device count
pop af ; restore incoming unit
cp e ; compare to unit count
jp nc,errdev ; if too high, error
;
; get device/unit info
ld b,$17 ; hbios func: diodevice
ld b,BF_DIODEVICE ; hbios func: diodevice
ld c,a ; unit to C
rst 08 ; call hbios, C := device attributes
;
@@ -1476,7 +1898,7 @@ prtstr1:
;
prtstr2:
pop de ; restore registers
ret
ret
;
; Print the value in A in hex without destroying any registers
;
@@ -1499,7 +1921,7 @@ prthexword:
ld a,b
call prthex
ld a,c
call prthex
call prthex
pop af
ret
;
@@ -1523,9 +1945,9 @@ hexascii:
hexconv:
and $0F ; low nibble only
add a,$90
daa
daa
adc a,$40
daa
daa
ret
;
; Print value of A or HL in decimal with leading zero suppression
@@ -1871,16 +2293,22 @@ drives:
dstdrv .db 0 ; destination drive
srcdrv .db 0 ; source drive
device .db 0 ; source device
; note (unit and slice) need to be kept ordered since they are used
; in code forming a temp table entry (comparison purposes). See bootadd:
unit .db 0 ; source unit
slice .db 0 ; source slice
;
atrmask .db 0 ; device attributes mask before compare
atrcomp .db 0 ; device attributes compare to
slicec .db 1 ; number of slices to assign for each volume
;
unamod .db 0 ; $FF indicates UNA UBIOS active
modcnt .db 0 ; count of drive map modifications
;
srcptr .dw 0 ; source pointer for copy
dstptr .dw 0 ; destination pointer for copy
tmpent .fill 4,0 ; space to save a table entry
tmpstr .fill 9,0 ; temporary string of up to 8 chars, zero term
tmpstr .fill 17,0 ; temporary string of up to 16 chars, zero term
;
heaptop .dw 0 ; current address of top of heap memory
heaplim .dw 0 ; heap limit address
@@ -1893,6 +2321,7 @@ scbop .db $FF ; set a byte
scbval .dw $FF ; value to set
;
mapwrk .fill (4 * 16),$FF ; working copy of drive map
mapadr .dw mapwrk ; working pointer into mapwrk used by /B=
;
devtbl: ; device table
.dw dev00, dev01, dev02, dev03
@@ -1936,17 +2365,19 @@ stack .equ $ ; stack top
; Messages
;
indent .db " ",0
msgban1 .db "ASSIGN v1.8 for RomWBW CP/M ",0
msgban1 .db "ASSIGN v1.9 for RomWBW CP/M ",0
msg22 .db "2.2",0
msg3 .db "3",0
msbban2 .db ", 13-Oct-2023",0
msbban2 .db ", 9-Dec-2024",0
msghb .db " (HBIOS Mode)",0
msgub .db " (UBIOS Mode)",0
msgban3 .db "Copyright 2023, Wayne Warthen, GNU GPL v3",0
msgban3 .db "Copyright 2024, Wayne Warthen, GNU GPL v3",0
msguse .db "Usage: ASSIGN D:[=[{D:|<device>[<unitnum>]:[<slicenum>]}]][,...]",13,10
.db " ex. ASSIGN (display all active assignments)",13,10
.db " ASSIGN /? (display version and usage)",13,10
.db " ASSIGN /L (display all possible devices)",13,10
.db " ASSIGN /B=OPTS (perform assignment based on options)",13,10
.db " ASSIGN C: (display assignment for C:)",13,10
.db " ASSIGN C:=D: (swaps C: and D:)",13,10
.db " ASSIGN C:=FD0: (assign C: to floppy unit 0)",13,10
.db " ASSIGN C:=IDE0:1 (assign C: to IDE unit0, slice 1)",13,10

View File

@@ -5,14 +5,15 @@ setlocal
call BuildProp || exit /b
call BuildShared || exit /b
call BuildBP || exit /b
call BuildROM %* || exit /b
call BuildImages || exit /b
call BuildROM %* || exit /b
call BuildZRC || exit /b
call BuildZ1RCC || exit /b
call BuildZZRCC || exit /b
call BuildZRC512 || exit /b
call BuildFZ80 || exit /b
call BuildEZ512 || exit /b
if "%1" == "dist" (
call Clean || exit /b
)
)

4
Source/BuildEZ512.cmd Normal file
View File

@@ -0,0 +1,4 @@
@echo off
setlocal
pushd EZ512 && call Build || exit /b & popd

View File

@@ -78,7 +78,7 @@ MEMTOP .EQU $10000
#INCLUDE "../UBIOS/ubios.inc"
#ENDIF
;
.ORG CBIOS_LOC ; DEFINED IN STD.ASM
.ORG CBIOS_LOC ; DEFINED IN LAYOUT.INC
;
STACK .EQU CBIOS_END ; USE SLACK SPACE FOR STACK AS NEEDED
;
@@ -2343,10 +2343,8 @@ INIT2:
LD C,(HL) ; PUT UNIT NUM IN C
RST 08 ; CALL HBIOS
LD A,C ; GET ATTRIBUTES
AND %10001111 ; ISOLATE TYPE BITS
CP %00000100 ; NOT FLOPPY, TYPE = ROM?
JR Z,INIT2A ; IF SO, ADJUST DEF DRIVE
CP %00000111 ; NOT FLOPPY, TYPE = FLASH?
AND %10001101 ; ISOLATE TYPE BITS, NOT FLOPPY
CP %00000100 ; TYPE=ROM/FLASH ; Att="0xxx01x0"
JR NZ,INIT2X ; IF NOT THEN DONE
;
INIT2A:

View File

@@ -11,7 +11,7 @@
; THE RETROBREW COMPUTING GROUP HAS BEEN USING A CONVENTION OF PREFIXING THE
; OS IMAGE WITH 3 SECTORS (512 BYTES X 3 FOR A TOTAL OF 1536 BYTES):
;
; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP,
; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP,
; PARTITION TABLE, AND BOOT SIGNATURE
; SECTOR 2: RESERVED
; SECTOR 3: METADATA
@@ -29,6 +29,7 @@
;
SYS_ENT .EQU $E600 ; SYSTEM (OS) ENTRY POINT ADDRESS
SYS_LOC .EQU $D000 ; STARTING ADDRESS TO LOAD SYSTEM IMAGE
SYS_SEC .EQU 22 ; NUMBER OF SECTORS TO READ
SYS_END .EQU $FE00 ; ENDING ADDRESS OF SYSTEM IMAGE
;
SEC_SIZE .EQU 512 ; DISK SECTOR SIZE
@@ -76,8 +77,8 @@ BOOT:
CALL PRTDOT ; PROGRESS
;
LD C,$42 ; UNA FUNC: READ SECTORS
LD DE,$D000 ; STARTING ADDRESS FOR IMAGE
LD L,22 ; READ 22 SECTORS
LD DE,SYS_LOC ; STARTING ADDRESS FOR IMAGE
LD L,SYS_SEC ; NUMBER OF SECTORS
CALL $FFFD ; DO READ
JR NZ,ERROR ; HANDLE ERROR
CALL PRTDOT ; PROGRESS
@@ -147,10 +148,10 @@ HEXASCII:
HEXCONV:
AND $0F ;LOW NIBBLE ONLY
ADD A,$90
DAA
DAA
ADC A,$40
DAA
RET
DAA
RET
;
ERROR:
LD DE,STR_ERR ; POINT TO ERROR STRING
@@ -252,7 +253,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?)
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
PR_LABEL .DB "CP/M 2.2$$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
.DW 0 ; (2) DEPRECATED
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM

View File

@@ -11,7 +11,7 @@
; THE RETROBREW COMPUTING GROUP HAS BEEN USING A CONVENTION OF PREFIXING THE
; OS IMAGE WITH 3 SECTORS (512 BYTES X 3 FOR A TOTAL OF 1536 BYTES):
;
; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP,
; SECTOR 1: IBM-PC STYLE BOOT BLOCK CONTAINING BOOTSTRAP,
; PARTITION TABLE, AND BOOT SIGNATURE
; SECTOR 2: RESERVED
; SECTOR 3: METADATA
@@ -31,6 +31,7 @@
; THE SIZE OF CPMLDR.BIN CHANGES, SYS_SIZ MUST BE UPDATED!!!
;
SYS_SIZ .EQU $0F00 ; SIZE OF CPMLDR.BIN
SYS_SEC .EQU 8 ; NUMBER OF SECTORS TO READ
SYS_ENT .EQU $0100 ; SYSTEM (OS) ENTRY POINT ADDRESS
SYS_LOC .EQU $0100 ; STARTING ADDRESS TO LOAD SYSTEM IMAGE
SYS_END .EQU SYS_SIZ + SYS_LOC ; ENDING ADDRESS OF SYSTEM IMAGE
@@ -57,6 +58,8 @@ PT_SIZ .EQU $40
; THE FOLLOWING BOOTSTRAP CODE IS BUILT TO ASSUME IT WILL BE EXECUTED AT A STARTING
; ADDRESS OF $8000. THIS CODE IS *ONLY* FOR UNA. THE ROMWBW ROM BOOTLOADER
; USES THE METADATA TO LOAD THE OS DIRECTLY.
;
; UNA DOES NOT SUPPORT CP/M 3 THIS CODE IS NOT USED, AND COULD BE REMOVED
;
.ORG $8000
JR BOOT
@@ -80,8 +83,8 @@ BOOT:
CALL PRTDOT ; PROGRESS
;
LD C,$42 ; UNA FUNC: READ SECTORS
LD DE,$D000 ; STARTING ADDRESS FOR IMAGE
LD L,22 ; READ 22 SECTORS
LD DE,SYS_LOC ; STARTING ADDRESS FOR IMAGE
LD L,SYS_SEC ; NUMBER OF SECTORS
CALL $FFFD ; DO READ
JR NZ,ERROR ; HANDLE ERROR
CALL PRTDOT ; PROGRESS
@@ -151,10 +154,10 @@ HEXASCII:
HEXCONV:
AND $0F ;LOW NIBBLE ONLY
ADD A,$90
DAA
DAA
ADC A,$40
DAA
RET
DAA
RET
;
ERROR:
LD DE,STR_ERR ; POINT TO ERROR STRING
@@ -256,7 +259,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?)
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
PR_LABEL .DB "CP/M 3.0$$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
.DW 0 ; (2) DEPRECATED
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM

View File

@@ -384,6 +384,112 @@ protocol.
**`X`** - Exit the monitor program back to the main boot menu.
## RomWBW System Configuration
System Configuration (`SYSCONF`) is a utility that allows system configuration to
be set, dynamically and stored in NVRAM provided by an RTC chip.
(`SYSCONF`) is both a ROM application ('W' Menu option), and a CP/M utility.
Noting however the CP/M utility is not included on an disk image, it is found in
the `Binary/Applications` folder of the RomWBW distribution.
The $doc_user$ has additional information on the use of NVRAM to set your
system configuration.
### Basic Operation
The application is an interactive application; it does not have a command line syntax.
Instead commands are executed from within the application in a command line structure.
When you first start the (`SYSCONF`) utility it will display the current switches
followed by a command listing.
When you first run the (`SYSCONF`) utility the NVRAM will be uninitialised, and can
be initialised using the (R)eset command, which writes default values to NVRAM.
Updates are done immediately to NVRAM as you enter them, i.e. there is no confirm
changes step. If you make any incorrect changes, you simply need to enter a new
command to set the Switch value correctly.
Once a change has been made it is available, however it may not take effect until
the next system reboot. This is dependent on the Switch itself.
If no NVRAM is provided by your hardware, then running this application will just
report the missing hardware and exit immediately.
To exit from the application use the (Q)uit command.
### Commands and Syntax
The following are the accepted commands, unless otherwise specified a "Space"
character is used to delimit parameters in the command.
| Command | Argument(s) | Description |
|------------|------------------|-----------------------------------------------|
| (P)rint | -none- | Display a list of the current switch value(s) |
| (S)et | {SW} {val},... | Sets an Switch {SW} with specific values(s) |
| (R)eset | -none- | Reset all setting to default |
| (H)elp | {SW} | Provides help on the syntax (values) |
| (Q)uit | -none- | Exit the application |
**Where**
| Argument | Description |
|-----------|----------------------------------------------------------------------|
| {SW} | Switch ID, typically this is 2 character name to identify the switch |
| {val},... | a "Comma" separated list of values to set into the switch |
### Switch Options
#### Auto Boot (AB)
This switch will define if the system will perform auto boot at the RomWBW boot prompt.
Enabling this will not prevent a user from typing a boot command, so long as the timeout is not
exceeded. When configured this replaces the (`AUTO_CMD`) variable
defined in build configuration.
Making changes to auto boot has no affect until the next reboot.
**Arguments**
| Type | Arguments | Description |
|----------|------------|--------------------------------------------------------|
| Enable | 'E' | Auto Boot. eg. "E,10" will auto boot, after 10 seconds |
| | Timout | Timeout in seconds in the range 0-15, 0 = immediate |
| Disabled | 'D' | No Auto Boot. e.g. "D" will disable autoboot |
**Examples**
| Command | Description |
|-----------------------|---------------------------------------------------|
| S AB E,10 | Enable Auto Boot with 10 second delay |
| S AB D | Disable Auto Boot |
#### Boot Options (BO)
This switch will define the boot command to be executed when auto boot is
enabled. When configured this replaces the (`AUTO_CMD`) variable
defined in the ROM build configuration.
Making changes to boot options has no affect until the next reboot.
**Arguments**
| Type | Arguments | Description |
|------|------------------|----------------------------------------------------------|
| Disk | 'D' | Disk Boot. eg. "D,2,14" will boot, disk unit 2, slice 14 |
| | Disk Unit Number | Unit number in the range 0-127 |
| | Disk Slice | Slice in the range 0-255, use 0 for floppy boot |
| ROM | 'R' | ROM App. e.g. "R,M" will boot the Monitor App |
| | Rom App Name | single character used on the Menu to identify the app |
**Examples**
| Command | Description |
|-------------|----------------------------------------------------------|
| S BO D,2,14 | Set the default boot from Disk; Unit 2, Slice 14 |
| S BO R,M | Set the default boot to be the (M)onitor Rom Application |
## CP/M 2.2
This option will boot the CP/M 2.2 disk operating system
@@ -971,9 +1077,12 @@ to display, assign, reassign, or remove the drive letter assignments.
| `ASSIGN /?`
| `ASSIGN /L`
| `ASSIGN ` *`<drv>`*`=`
| `ASSIGN `
| `ASSIGN [`*`<drv>`*`],...`
| `ASSIGN `*`<drv>`*`=[`*`<device>`*`:[`*`<slice>`*`]],...`
| `ASSIGN `*`<tgtdrv>`*`=`*`<srcdrv>`*`,...`
| `ASSIGN ` *`<drv>`*`=[`*`<device>`*`:[`*`<slice>`*`]],...`
| `ASSIGN ` *`<tgtdrv>`*`=`*`<srcdrv>`*`,...`
| `ASSIGN /B='*'<option>'*'['*'<option>'*'['*'<option>'*'...]]`
#### Usage
@@ -984,23 +1093,36 @@ used in drive assignments in the running system. The devices listed
may or may not contain media. Although some device types support the
use of slices, the list does not indicate this.
`ASSIGN A:` just specifying the drive letter will display the
assignment for the drive letter
`ASSIGN` with no parameters will list all of the current drive
assignments.
`ASSIGN `*`<drv>`* will display the assignment for the specific drive
#### Usage (Specific)
The following describes how to assign drive specifically by identifing each
drive by its unique device and slice id's
`ASSIGN ` *`<drv>`* will display the assignment for the specific drive
For example, `ASSIGN C:` will display the assignment for drive C:.
`ASSIGN `*`<drv>`*`=`*`<device>`*`[:`*`<slice>`*`]` will assign (or
`ASSIGN ` *`<drv>`*`=`*`<device>`*`[:`*`<slice>`*`]` will assign (or
reassign) a drive letter to a new device and (optionally) slice. If no
slice is specified, then slice 0 is assumed. For example, `ASSIGN
C:=IDE0` will assign drive letter C: to device IDE0, slice 0. `ASSIGN
D:=IDE0:3` will assign drive letter D: to device IDE0 slice 3.
`ASSIGN `*`<drv>`*`=` can be used to remove the assignment from a
The `ASSIGN` command will not allow you to specify a slice (other than
zero) for devices that do not support slices.
A slice should only be specified for hard disk devices (SD, IDE, PPIDE).
Floppy disk drives and RAM/ROM drives do not have slices.
`ASSIGN ` *`<drv>`*`=` can be used to remove the assignment from a
drive letter. So, `ASSIGN E:=` will remove the association of drive
letter E: from any previous device.
`ASSIGN `*`<tgtdrv>`*`=`*`<srcdrv>`* is used to swap the assignments
`ASSIGN ` *`<tgtdrv>`*`=`*`<srcdrv>`* is used to swap the assignments
of two drive letters. For example, `ASSIGN C:=D:` will swap the device
assignments of C: and D:.
@@ -1012,6 +1134,78 @@ When the command runs it will echo the resultant assignments to the
console to confirm its actions. It will also display the remaining
space available in disk buffers.
#### Usage (Bulk)
The following describes how to assign drives in bulk without having to specify
the identifiers of each drive being mapped. Instead bulk mode has a
predefined set options (identified by single letter) which will map drives.
Bulk mode works by assigning drives sequentially starting at A: until all
drives are used, or there are no more options to process. Each option
will typically map between 0 and N drives depending on the option
and the available hardware in your system.
`ASSIGN /B=`*`<option><option>`*... will perform bulk assignment .
The following options will assign a small number of devices, typically you would
place at beginning of an option list.
| Option | Name | Description | Assigned |
|--------|----------|---------------------------------------------|----------|
| B | Boot | The boot device | 1 |
| A | RAM | Ram drive | 0,1 |
| O | ROM | Rom drive | 0,1 |
| F | Floppy | All floppy devices, with/without media | 0,1,2,.. |
| P | Preserve | Skip and preserve the next drive assignment | 1 |
| X | Exclude | Un-assign / Exclude the next drive | 1 |
A drive e.g. RAM, ROM, FLOPPY can only be assigned if it exists. if you system
doesn't have the hardware that supports the device, then no devices will be
assigned, and the next option will be processed.
`B` assigns the boot device. If used the `B`oot drive should typically be
assigned first.
`P` will not make any changes to the next drive, it will skip over it. While the
`X` option will un-assign the next drive, leaving a gap.
The remaining options will fill drives mostly to end, from hard drive slices,
generally choose 1 of the following:
| Option | Name | Description | Assigned |
|--------|-------------|---------------------------------------------|----------|
| S | Slices | Assign slices from boot hard drive | ...max |
| H | Hard Drive | Assign slices evenly from all hard drives | ...max |
| L | Legacy HD | Assign slices from all hard drives (legacy) | 6,...max |
| Z | Exclude All | Un-assign all remaining drives | ...max |
`S`lices assignment will map all remaining drives to slices from the boot device.
If I have other hard drives present these will not be mapped by this option.
e.g. `ASSIGN /B=BAOS`
Will first assign drives `A:(Boot), B:(RAM), C:(ROM)` this leaves 13 drives
which will be assigned to slices from the boot hard drive (D: thru P:),
leaving no unused drives.
'H'ard drive assignment will attempt to fill all remaining drive letters
by splitting the number of drives remaining evenly across all.
e.g. `ASSIGN /B=BAOH`
Will first assign drives `A:(Boot), B:(RAM), C:(ROM)` this leaves 13 drives
available. If I have 3 hard disks then (13/3) = 4 slices from each hard drive will
be assigned to drives (D: thru O:), leaving a single unused drive (P:).
`L`egacy hard drive assignment is identical to how the startup hard disk assignment
works. ie. Attempt to assign up to 8 hard drives split across hard drives
detected at boot.
e.g. `ASSIGN /B=BAOL`
Will first assign drives `A:(Boot), B:(RAM), C:(ROM)`. If I have 3 hard disks
then (8/3) = 2 slices from each hard drive will be assigned to drives (D: thru I:),
leaving 7 unused drives (J: thru P:).
#### Notes
If the `ASSIGN` command encounters any rule violations or errors, it
@@ -1030,10 +1224,6 @@ being assigned actually contains readable media. If the assigned
device has no media, you will receive an I/O error when you attempt to
use the drive letter.
The `ASSIGN` command will not allow you to specify a slice (other than
zero) for devices that do not support slices (such as floppy drives
or RAM/ROM disks).
The `ASSIGN` command does not check that the media is large enough to
support the slice you specify. In other words, you could potentially
assign a drive letter to a slice that is beyond the end of the media
@@ -1046,7 +1236,11 @@ data (such as a FAT filesystem).
You will not be allowed to assign multiple drive letters to a single
device and slice. In other words, only one drive letter may refer to a
single filesystem at a time.
single filesystem at a time.
Attempts to assign a duplicate drive letter will fail and display an
error. If you wish to assign a different drive letter to a
device/unit/slice, unassign the existing drive letter first.
Drive letter A: must always be assigned to a device and slice. The
`ASSIGN` command will enforce this.
@@ -1057,14 +1251,6 @@ all drive letters will return to their default assignments. A SUBMIT
batch file can be used to setup desired drive assignments
automatically at boot.
Floppy disk drives and RAM/ROM drives do not have slices. A slice
should only be specified for hard disk devices (SD, IDE, PPIDE).
Only one drive letter may be assigned to a specific device/unit/slice
at a time. Attempts to assign a duplicate drive letter will fail and
display an error. If you wish to assign a different drive letter to a
device/unit/slice, unassign the existing drive letter first.
Be aware that this command will allow you to reassign or remove the
assignment of your system drive letter. This can cause your operating
system to fail and force you to reboot.
@@ -1145,11 +1331,6 @@ cold reboot of the system.
The functionality is highly dependent on the capabilities of your system.
At present, all Z180 systems can change their CPU speed and their
wait states. SBC and MBC systems may be able to change their CPU
speed if the hardware supports it and it is enabled in the HBIOS
configuration.
#### Syntax
| `CPUSPD [`*`<speed>`*`[,[`*`<memws>`*`][,[`*`<iows>`*`]]]`
@@ -1184,11 +1365,27 @@ If an attempt is made to change the speed of a system
that is definitely incapable of doing so, then an error result is
returned.
Z180-based systems will be able to adjust their CPU speed depending
on the specific variant of the Z180 chip being used:
| Z180 Variant | Capability |
| --------------------|--------------------|
| Z80180 (original) | Half |
| Z8S180 Rev. K | Half, Full |
| Z8S180 Rev. N | Half, Full, Double |
SBC and MBC systems may be able to change their CPU
speed if the hardware supports it and it is enabled in the HBIOS
configuration.
The `CPUSPD` command makes no attempt to ensure that the new CPU
speed will actually work on the current hardware. Setting a CPU
speed that exceeds the capabilities of the system will result in
unstable operation or a system stall.
In the case of Z180 CPUs, it is frequently necessary to add
memory wait states when increasing the CPU speed.
Some peripherals are dependent on the CPU speed. For example, the Z180
ASCI baud rate and system timer are derived from the CPU speed. The
CPUSPD application will attempt to adjust these peripherals for
@@ -2096,11 +2293,24 @@ MYM sound files.
#### Syntax
`TUNE `*`<filename>`*
`TUNE `*`<filename>`* `*`<options>`*`
*`<filename>`* is the name of a sound file ending in .PT2, .PT3, or
.MYM
| Option | Description |
| ----------- | ------------------------------------------------------ |
| `-MSX` | Force MSX port addresses A0H/A1H (no PSG detection) |
| `-RC` | Force RCBus port addresses D8H/D0H (no PSG detection) |
| `--HBIOS` | Utilise HBIOS' sound driver |
| `+T1` | Play tune an octave higher |
| `+T2` | Play tune two octaves higher |
| `-T1` | Play tune an octave lower |
| `-T2` | Play tune two octaves lower |
The +t and -t options apply only to HBIOS mode operation. The `-MSX`,
`-RC`, and `--HBIOS` options are mutually exclusive. See Notes below.
#### Usage
The TUNE application supports PT and YM sound file formats. It
@@ -2118,6 +2328,10 @@ well known port addresses at startup. It will auto-configure itself
for the hardware found. If no hardware is detected, it will abort with
an error message.
Some hardware (notably Why-Em-Ulator) cannot be detected due limitations
of the emulation. In such cases, you can force the use of the two
most common port addresses using the `-msx` or `-rc` options.
On Z180 systems, I/O wait states are added when writing to the sound
chip to avoid exceeding its speed limitations. On Z80 systems, you
will need to ensure that the CPU clock speed of your system does not
@@ -2128,23 +2342,33 @@ accurately pace the sound file output. If no system timer is
available, a delay loop is calculated instead. The delay loop will not
be as accurate as the system timer.
There are two modes of operations. A direct hardware interface for the
There are two modes of operation. A direct hardware interface for the
AY-3-8910 or YM2149 chips, or a compatibility layer thru HBIOS supporting
the SN76489 chip.
both the AY-3-8910 and the SN76489 chip.
By default the application will attempt to interface directly to the sound
chip. The optional argument `--hbios` supplied after the filename, will
chip. The optional argument `--HBIOS` supplied after the filename, will
enable the application to use the HBIOS sound driver.
The HBIOS mode also support other switch as described below.
The following summarizes the different modes of operation for the
application:
| Switch | Description |
| ----------- | ------------------------------------------------------ |
| `--hbios` | Utilise HBIOS' sound driver |
| `+t1` | Play tune an octave higher |
| `+t2` | Play tune two octaves higher |
| `-t1` | Play tune an octave lower |
| `-t2` | Play tune two octaves lower |
- If you use `TUNE` with no options, it will use it's original behavior
of searching for and detecting a sound chip. `TUNE` will play sound
files directly to the PSG hardware. In this mode it does not
matter if HBIOS does or does not know about the sound chip.
- If you use `TUNE` with the `--HBIOS` option, it will not detect a sound chip
and will use the RomWBW HBIOS interface. This will only work if HBIOS
was configured for the installed sound card and HBIOS detects the sound chip.
- If you use `TUNE` with `-RC` or `-MSX`, it will play tunes directly to the PSG
hardware (not via HBIOS) and will bypass detection. In this mode it does
not matter if HBIOS does or does not know about the sound chip.
Note that the HBIOS API for sound cards is pretty good, but does not implement
everything that the sound card can do. For best fidelity, use `TUNE` without the
`--HBIOS` option.
All RomWBW operating system boot disks include a selection of sound
files in user area 3.

View File

@@ -538,8 +538,6 @@ This is a generic ZPM3 adaptation for RomWBW.
| `GENCPM.COM` | 15 | DRI CPM3 Utility to Create a memory image of CPM3.SYS |
| `GOTO.COM` | 15 | |
| `HELPC15.CFG` | 14 | |
| `HP-RPN.HLP` | 10 | Help File for HP RPN Calculators ? |
| `HP-ZP.HLP` | 10 | Help File for HP ZP Calculators ? |
| `IF.COM` | 15 | Extended flow control tester for FCP (v1.6 Type 3) |
| `IF.HLP` | 10 | |
| `LOADSEG.COM` | 15 | ZCCP Utility to Load RSXes, TCAPs and Named Directory files. |
@@ -559,9 +557,6 @@ This is a generic ZPM3 adaptation for RomWBW.
| `ZF11.CFG` | 14 | |
| `ZFMACRO.HLP` | 10 | |
| `ZHELP.COM` | 15 | |
| `ZP.COM` | 15 | Patch utility edits files, disk sectors, or memory |
| `ZP.HLP` | 10 | Help File for ZP.COM |
| `ZP17.CFG` | 14 | |
| `ZSHOW.COM` | 15 | displays amount of information about your Z-System |
### Additional Files
@@ -789,6 +784,8 @@ The following files are found in
| `COPY.COM` | Z | File copier with ZSDOS date stamping awareness |
| `COPY.CFG` | Z | ZCNFG configuration file for COPY application |
| `EDITNDR.COM` | Z3 | Edit named directory register in memory. |
| `HP-RPN.HLP` | Z3 | Help File for ZP.COM - HP RPN Calculators |
| `HP-ZP.HLP` | Z3 | Help File for ZP.COM - HP ZP Calculators |
| `KERCPM22.COM` | CPM22 | Kermit communication application |
| `KERCPM3.COM` | CPM3 | Kermit communication application |
| `LBREXT.COM` | Z | Extract file from .LBR libraries |
@@ -814,6 +811,9 @@ The following files are found in
| `ZCNFG24.CFG` | Z | Configuration file for ZCNFG.COM |
| `ZEX.COM` | Z3 | A memory-based command file processor, like SUBMIT |
| `ZEX.CFG` | Z3 | ZCNFG configuration file for ZEX program |
| `ZP.COM` | Z3 | Screen-oriented file/disk/memory record patcher (ZAP) |
| `ZP.HLP` | Z3 | Help File for ZP.COM |
| `ZP17.CFG` | Z3 | Configuration file for ZP.COM |
| `ZXD.CFG` | Z | Configuration file for ZXD.COM |
| `ZXD.COM` | Z | Extended directory utility w/ date/time stamp support |
| `Z3LOC.COM` | Z3 | Display info of the ZCPR3 CCP, BDOS, and BIOS |
@@ -1306,7 +1306,9 @@ Also contained on this image in User Area 1 are.
| Floppy Disk Image: **fd_z80asm.img**
| Hard Disk Image: **hd_z80asm.img**
Z80ASM is a relocating macro assembler for CP/M. It takes assembly language
This disk contains 4 major components
* Z80ASM is a relocating macro assembler for CP/M. It takes assembly language
source statements from a disk file, converts them into their binary equivalent,
and stores the output in either a core-image, Intel hex format, or relocatable
object file. The mnemonics recognized are those of Zilog/Mostek. The optional
@@ -1314,19 +1316,91 @@ listing output may be sent to a disk file, the console and/or the printer, in
any combination. Output files may also be generated containing cross-reference
information on each symbol used.
The manual is available in the Doc/Language directory,
z80asm (SLR Systems).pdf
* SLR180 is a powerful relocating macro assembler for Z80
compatible CP/M systems. It takes assembly language source
statements from a disk file, converts them into their binary
equivalent, and stores the output in either a core-image, Intel
hex format, or relocatable object file. The mnemonics recognized
are those of Zilog/Hitachi. The optional listing output may be
sent to a disk file, the console and/or the printer, in any
combination. Output files may also be generated containing
cross-reference information on each symbol used.
* SLRNK is a powerful linking loader for Z80-based CP/M systems.
It takes relocatable binary information in either Microsoft or
SLR Systems format from a disk file, resolves external and entry
point references, and stores the output in memory for execution
or outputs it to a disk file.
* Z80DIS is an entirely new disassembler for Z80 based CP/M sys-
tems. Z80DIS is written in TURBO PASCAL. Z80DIS generates Z80
mnemonics and prepares an assembly language file with many
special features for ease of understanding the intent of the
code. The program and documantation are Copyright 1985, by
Kenneth Gielow, Palo Alto, CA. All rights are reserved.
The manual(s) are available in the Doc/Language directory,
* z80asm (SLR Systems).pdf
* SL180 (SLR Systems 1985).pdf
* SLRNK (SLR Systems 1984).pdf
* Z80DIS User Manual (1985).pdf
A run through of using the assembler is available at
[https://8bitlabs.ca/Posts/2023/05/20/learning-z80-asm]
And another shorter, but shows linker usage guide
[https://pollmyfinger.wordpress.com/2022/01/10/modular-retro-z80-assembly-language-programming-using-slr-systems-z80asm-and-srlnk/]
The following files are found in
* /Source/Images/d_z80asm
| **File** | **Description** |
|------------|-------------------------------------|
| DUMP.* | Sample Program |
| TEST.* | Sample Program |
| Z80ASM.COM | Relocating macro assembler for CP/M |
| Z80ASM.DOC | Documentation for Z80.COM |
User Area 0 - Assembler
| **File** | **Description** |
|-------------|---------------------------------------------|
| 180FIG.COM | Configuration utility for SLR180.COM |
| 8080.MAC | ? |
| CONFIG.COM | Configuration utility for Z80ASM.COM |
| DUMP.* | Sample Program |
| MAKESYM.COM | Symbol File .SYM file generation |
| MAKESYM.DOC | Documentation for MAKESYM.COM |
| SLR180.COM | HD64180 Relocating Macro Assembler |
| SLR180.DOC | Release Notes for SLR180.COM |
| SYNTAX.HLP | Documentation basic usage for all SLR Tools |
| SYNTAX.TXT | Documentation basic usage for all SLR Tools |
| TEST.* | Sample Program |
| Z80ASM.COM | Z80 Relocating Macro Assembler |
| Z80ASM.DOC | Release Notes for Z80ASM.COM |
User Area 1 - Linker
| **File** | **Description** |
|--------------|-----------------------------------------------|
| LNKFIG.COM | Configuration utility for SLRNK.COM |
| NZLNKFIX.ZEX | ? |
| SLRIB.COM | SuperLibrarian, library manager |
| SLRNK.COM | SuperLinker, the main linker tool |
| SLRNK.DOC | Release Notes for SLRNK.COM |
| SLRNKFIX.ZEX | ? |
| SYNTAX.HLP | Documentation basic usage for all SLR Tools |
| SYNTAX.TXT | Documentation basic usage for all SLR Tools |
| SYSSLR.REL | SYSLIB (older) Library compatible with SLR |
| VSLR.REL | VLIB (older) Library compatible with SLR |
| Z3SLR.REL | Z3LIB (older) Library compatible with SLR |
User Area 2 - Disassembler
| **File** | **Description** |
|--------------|----------------------------------|
| README.22 | Documentation for Z80DIS |
| Z80DIS.000 | Overlay File for Z80DIS.COM |
| Z80DIS.001 | Overlay File for Z80DIS.COM |
| Z80DIS.002 | Overlay File for Z80DIS.COM |
| Z80DIS.COM | Z80DIS Disassembler main program |
| Z80DIS22.DOC | Main Documentation for Z80DIS |
| ZDINSTAL.COM | Instal and Config for Z80DIS.COM |
| ZDINSTAL.DTA | Overlay file for ZDINSTAL.COM |
| ZDINSTAL.MSG | Overlay file for ZDINSTAL.COM |

View File

@@ -191,7 +191,9 @@ please let me know if I missed you!
* Mark Pruden has also contributed a great deal of content to the
Disk Catalog, User Guide as well as contributing the disk image
for the Z3PLUS operating system, and the COPYSL utility.
for the Z3PLUS operating system, the COPYSL utility, and also
implemented a feature for RomWBW configuration by NVRAM,
and added the /B bulk mode of disk assignment to the ASSIGN utility.
* Jacques Pelletier has contributed the DS1501 RTC driver code.

View File

@@ -499,6 +499,97 @@ The startup then proceeds very much like the Application Boot
process described above. HBIOS is installed in its operating bank
and control is passed to the Boot Loader.
## Boot Recovery
To assist users when driver faults or misconfiguration causes a boot
failure, RomWBW supports a limited recovery capability. This is
achieved by allowing the user to reboot their machine, loading
a minimal driver set. Implementation of this feature requires a
hardware input "BOOT RECOVERY" button to be available and
appropriate software configuration to be completed in the HBIOS.
When implemented, holding the "BOOT RECOVERY" button in after a
reset or power cycle will cause the normal driver load process to
be skipped in preference to a minimal set of drivers being loaded.
Typically this would be: Serial communication, RAM disk and parallel
port IDE interface drivers.
Platforms supporting this option currently are the MBC, Duodyne and
latter version of the SBC.
# Configuration
## RomWBW NVRAM Configuration
On systems with RTC devices (that have Non-Volatile RAM), RomWBW supports storing
some limited configuration option options inside this RAM.
Several configuration options are currently supported; these are known as Switches.
The following switch ID's are defined, and described in sections below.
| Switch Number | Name | Description |
|---------------|--------------|-----------------------------------------------|
| 0x00 | -reserved- | Reserved |
| 0x01 | Boot Options | ROM or Disk Boot Settings |
| 0x02 | -n/a- | -n/a- high order byte of previous switch |
| 0x03 | Auto Boot | Automatically boot enabled without user input |
| 0x04 - 0xFE | -future- | Future general usage |
| 0xFF | Status Reset | Get Status or Reset Switches to Default |
RomWBW uses bytes located at the start of RTC NVRAM, and includes a Parity check of
the bytes in NVRAM to check for authenticity before using the configuration.
| NVRAM Byte | Name | Description |
|-------------|--------------|-----------------------------------|
| 0x00 | Header Byte | Header Signature Byte 'W' |
| 0x01 - 0x03 | Switch Data | Actual Switch Data |
| 0x04 | Parity Check | Checksum byte to check integrity |
The above data is copied into the HBIOS Configuration Block (HCB) at startup at
the location starting at CB_SWITCHES.
### Boot Options (NVSW_BOOTOPTS)
16 bit Switch defining the ROM application or Disk device to boot if
automatic booting is enabled.
| Bit 15 | Bits 14-8 | Bits 7-0 |
|-------------|-------------------|--------------------|
| 1 = ROM App | -undefined- | App to Boot (Char) |
| 0 = Disk | Disk Unit (0-127) | Disk Slice (0-255) |
### Auto Boot (NVSW_AUTOBOOT)
8 bit Switch defining if the system should auto boot at startup.
| Bits 7-6 | Bit 5 | Bit 4 | Bits 3-0 |
|----------|------------------------|----------|--------------------------------------|
| -unused- | 1 = Auto Boot Enabled | -unused- | 0 = Immediate Boot with no delay |
| -unused- | 1 = Auto Boot Enabled | -unused- | (1-15) Timeout (seconds) before boot |
| -unused- | 0 = Auto Boot Disabled | -unused- | -undefined- |
### Status Reset (0xFF)
The Status Reset switch is not a general purpose switch, it is a control mechanism
to allow the global status of all switches to be determined. The meaning of the switch
is different for Read (Get Status) and Write (Reset NVRAM)
#### GET (Get Status)
The read Get Status of switches. This returns very specific values from the function call.
| Status | A Register | Z / NZ Flag |
|----------------------------------------------|------------|--------------|
| NVRAM does not exist | A=0 | NZ flag set |
| NVRAM exists, but has not been initialised | A=1 | NZ flag set |
| NVRAM exists, and has been fully initialised | A='W' | Z flag set |
#### SET (Reset NVRAM)
Reset NVRAM to default values. This will wipe any existing data and set default
values into NVRAM.
# Driver Model
The framework code for bank switching also allows hardware drivers to be
@@ -1071,7 +1162,7 @@ The non-Floppy specific bits are:
|---------:|--------------------------------------------------|
| 4 | LBA Capable |
| 3-0 | Media Type: 0=Hard Disk, 1=CF, 2=SD, 3=USB, |
| | 4=ROM, 5=RAM, 6=RAMF, 7=FLASH, 8=CD-ROM, |
| | 4=ROM, 5=RAM, 6=FLASH, 7=RAMF, 8=CD-ROM, |
| | 9=Cartridge |
Device Type (D) indicates the specific hardware driver that handles the
@@ -2292,6 +2383,11 @@ Cold Start (0x02):
: Perform a system cold start (like a power on). All devices are
reinitialized.
User Restart (0x03):
: Perform a video terminal reset. Terminal emulation and visual display
systems are reset.
The Status (A) is a standard HBIOS result code.
### Function 0xF1 -- System Version (SYSVER)
@@ -2611,6 +2707,27 @@ the caller can use interbank calls directly to the function in the
driver which bypasses the overhead of the normal function invocation
lookup.
#### SYSGET Subfunction 0xC0 -- Get Switches (SWITCH)
| **Entry Parameters** | **Returned Values** |
|----------------------|---------------------|
| B: 0xF8 | A: Status |
| C: 0xC0 | HL: Switch Value |
| D: Switch Key | |
This function will return the current value (HL) of the switch (D) from NVRAM.
Switches may be returned as a 16 bit (HL) or 8 bit (L) value. It is up to the caller
to process the returned value correctly. Note for Switch 0xFF (status) the returned value
is primarily in the Status (A) register.
Errors are signalled in the return by setting the NZ flag. When set the
(A) register may contain an error code, but this code does not conform to RomWBW standard
Success is indicated by setting the Z flag
For a description of switches please see [RomWBW NVRAM Configuration]
#### SYSGET Subfunction 0xD0 -- Get Timer Tick Count (TIMER)
| **Entry Parameters** | **Returned Values** |
@@ -2783,6 +2900,27 @@ sub-function value. The following lists the subfunctions available along
with the registers/information utilized. The Status (A) is a standard
HBIOS result code.
#### SYSSET Subfunction 0xC0 -- Set Switches (SWITCH)
| **Entry Parameters** | **Returned Values** |
|----------------------|---------------------|
| B: 0xF9 | A: Status |
| C: 0xC0 | |
| D: Switch Key | |
| HL: Switch Value | |
This function will set the value (HL) into the switch (D) and store it into NVRAM.
Switches may be passed as a 16 bit (HL) or 8 bit (L) value. It is up to the caller
to send the value correctly. Note for Switch 0xFF (reset) the value (HL) is ignored
Errors are signalled in the return by setting the NZ flag. When set the
(A) register may contain an error code, but this code does not conform to RomWBW standard
Success is indicated by setting the Z flag
For a description of switches please see [RomWBW NVRAM Configuration]
#### SYSSET Subfunction 0xD0 -- Set Timer Tick Count (TIMER)
| **Entry Parameters** | **Returned Values** |
@@ -3202,28 +3340,62 @@ placeholder
### Diagnostic LEDs
Progress through the boot and initialization process can be difficult to monitor
due to the lack of console or video output. Access to these output devices does
not become available until late the in the boot process. If these output devices
are also involved with the issue trying to be resolved then trouble shooting is
even more difficult.
Progress through the boot and initialization process can be difficult to
monitor due to the lack of console or video output. Access to these output
devices does not become available until late the in the boot process. If
these output devices are also involved with the issue trying to be resolved
then trouble shooting is even more difficult.
ROMWBW can be configured to display boot progress with the assistance of additional
hardware. This take the form of an LED breakout debugging board connected to an
8-bit output port. As the boot code executes, the LED output display is updated.
ROMWBW can be configured to display boot progress with the assistance of
additional hardware. This can take the form of a front panel LED display or
LED breakout debugging board connected to an 8-bit output port. Or it can
utilize existing platform status LEDS.
To use a LED breakout board, it must be connected the computers data, reset and port
select lines.
As the boot code executes, the LED output display is updated to indicate the execution progress.
To enable the DIAG option the following settings must be made in the systems .ini
configuration file, where 0xnn is the port address.
Platforms that have these capabilities built in have them enabled by default.
DIAGENABLE .SET TRUE
DIAGPORT .SET 0xnn
#### Front Panel display
The following table shows the ROMWBW process steps in relation to the LED display.
A LED front panel or breakout board needs to be connected the computers data,
reset and port select lines.
| **LED** | **RomWBW Processes** |
To enable this option the following settings can be made in the platforms custom
configuration file.
```
FPLED_ENABLE .SET TRUE ; ENABLE FRONT PANEL
```
Custom hardware can be configured with :
```
FPLED_IO .SET $nn ; USE PORT ADDRESS nn
FPLED_INV .SET FALSE ; INVERTED LED BITS
```
#### Platform Status LEDS
These status LEDs use preexisting status LEDs on each platform.
Enable using:
```
LEDENABLE .SET TRUE ; ENABLES STATUS LED
```
Customize using:
```
LEDMODE .SET LEDMODE_STD ; LEDMODE_[STD|SC|RTC|NABU]
LEDPORT .SET $nn ; STATUS LED PORT ADDRESS
```
The following table shows the ROMWBW process steps in relation to the panel
display.
| **PANEL** | **RomWBW Processes** |
|------------|------------------------------------------------|
| `........` | Initial boot |
| | Jump to start address |

View File

@@ -573,14 +573,15 @@ For example, typing `H<enter>` will display a short command summary:
Boot [H=Help]: h
L - List ROM Applications
D - Disk Device Inventory
D - Device Inventory
R - Reboot System
I <u> [<c>] - Set Console Interface/Baud code
W - RomWBW Configure
I <u> [<c>] - Set Console Interface/Baud Rate
V [<n>] - View/Set HBIOS Diagnostic Verbosity
<u>[.<s>] - Boot Disk Unit/Slice
```
Likewise the `L` command will display the list of ROM Applications that
Likewise the `L` command (List ROM Applications) will display the list of ROM Applications that
you can launch right from the Boot Loader:
```
@@ -600,6 +601,9 @@ ROM Applications:
U: User App
```
A more complete description of these options is found below in
[System Management].
## Starting Applications from ROM
To start a ROM application you just enter the corresponding letter at
@@ -818,13 +822,12 @@ Here is an overview for each operating system:
not cover the use of SUBMIT files -- please refer to the CP/M 2.2
documentation.
- **NZCOM** - Will run the command STARTZCM at startup. This is
normally an alias file. You use SALIAS to edit such files. Please see
- **NZCOM** - Will run the command STARTZCM at startup. This is
normally an alias file, which you can edit using SALIAS. Please see
Section 3.1 Creating an Alias of the NZCOM Users Manual included in the
Doc/CPM folder of the RomWBW distribution. Note that the NZCOM
distribution includes a PROFILE.SUB file. NZCOM itself is launched from
ZSDOS. The included PROFILE.SUB accomplishes this. Do not modify this
file unless you fully understand the NZCOM boot process.
Doc/CPM folder of the RomWBW distribution. Do not modify this
file unless you fully understand the NZCOM boot process. Note that
NZCOM itself is launched from ZSDOS via the included PROFILE.SUB file.
- **CP/M 3** - Will run PROFILE.SUB as a SUBMIT file if it exists in A:
at startup. This mechanism is built into the CP/M 3 operating system.
@@ -832,6 +835,13 @@ Here is an overview for each operating system:
Executing the SUBMIT Command of the CPM3 Users Guide included in the
Doc/CPM folder of the RomWBW distribution.
- **Z3PLUS** - Will run the command STARTZ3P at startup. This is
normally an alias file, which you can edit using SALIAS. Please see
Section 3.1 Creating an Alias of the Z3PLUS Users Manual included in the
Doc/CPM folder of the RomWBW distribution. Do not modify this
file unless you fully understand the Z3PLUS boot process. Note that
Z3PLUS itself is launched from CP/M 3 via the included PROFILE.SUB file.
- **ZPM3** - Will run the command STARTZPM at startup. This is normally
an alias file. You use SALIAS to edit such files. ZPM3 has no real
documentation. The NZCOM documentation of STARTZCM is generally correct
@@ -897,7 +907,56 @@ Boot [H=Help]: r
Restarting System...
```
### Changing Console and Console speed
### Setting NVRAM Options
On systems with RTC devices (that have Non-Volatile RAM), RomWBW supports storing
some limited configuration option options inside this NVRAM.
Several configuration options are currently supported, these are known as Switches
* Specify Automatic boot at startup, after an optional delay (AB)
* Define the Disk or ROM App to be booted at for automatic boot (BO)
RomWBW uses bytes located at the start of RTC NVRAM, and includes a checksum of
the bytes in NVRAM to check for integrity before using the configuration.
Initially NVRAM has to be reset (with default values), before it can be used.
As well as setting defaults, it also writes the correct checksum, and allows the
NVRAM to be accessed and to store the RomWBW config.
This is an explicit step that must be done, as any existing data stored is overwritten.
If you are using NVRAM for other purposes, then you can continue to do so
so long as you do NOT perform this Reset step.
NVRAM may also need to be reset in these circumstances:
* When there has been a loss of power to the NVRAM.
* When upgrading to a new RomWBW version, or a RomWBW version that has new switches.
* If the NVRAM has been overwritten by another application.
If you want to continue to use NVRAM in your applications you may want to consider storing
your data above the RomWBW Switch data.
To configure these options an inbuilt ROM application is provided which can be accessed
by the command "`W`" from the RomWBW boot menu.
This application is also built as a CP/M utility, but is not included on an disk image,
it is found in the `Binary/Applications` folder of the RomWBW distribution.
For further guidance on using this application please see the section
"RomWBW System Configuration" in the $doc_apps$ document.
If your system has both a [Front Panel] as well as NVRAM, be aware that
the Front Panel switches take precedence over the NVRAM configuration
settings.
Note that the WizNet class of Network devices also contain NVRAM which is
entirely separate from the RomWBW configuration NVRAM described here. A
separate utility is used to set the WizNet NVRAM (see [CP/NET Client Setup]).
[RomWBW Applications]($doc_root$/RomWBW Applications.pdf)
### Changing Console and Console Speed
Your system can support a number of devices for the console. They may
be VDU type devices or serial devices. If you want to change which
@@ -2288,12 +2347,21 @@ survive re-imaging, you **must** follow these rules:
This section covers techniques to copy partial images onto pre-existing media,
in effect performing a selective slice copy. These techniques currently **only** apply to
hd1k formatted media, which has a convienient 1MB size metric.
However adapting to hd512 is possible.
hd1k formatted media, which has a convenient 1MB size metric.
However adapting to hd512 is possible, but left to the user.
On Linux/MacOS the `dd` command can be used to write data in a controlled manner.
The `dd` command supports options to define precisly souce
and destination offsets and sizes to copy.
Although Windows does not have a native `dd` command, there are multiple
options for installing it including [MSYS2](https://www.msys2.org/),
[CygWin](https://www.cygwin.com/),
and [dd for Windows](http://www.chrysocome.net/dd).
**WARNING**: The `dd` command is a low-level utility that writes
directly to raw disk sectors with almost no safety checks. It is very
easy to corrupt a disk if this tool is used incorrectly.
The `dd` command supports options to define precisely source
and destination offsets and sizes to copy.
From the documentation of `dd` the following options are important.
```
@@ -2365,6 +2433,27 @@ and 1 is the size of the partition table im megabytes.
Thus we are skipping 6 slices (in the combo image)
and writing to the 7th slice.
#### Example 3 : Copy image using partition
In the previous examples, the hard disk is addressed as a raw disk
device and we took steps to calculate the assumed start of the RomWBW
partition. However, as long as the hd1k format is in use, it is
also possible to just point `dd` directly to the partition itself.
To do this, you must first determine the name that your operating
system is using for the desired partition. Frequently, partitions
are named by simply adding a number after the name of the hard disk
device. For example, if the hard disk is /dev/sdg, the first
partition is frequently /dev/sdg1 or /dev/sdgp1.
Taking advantage of this, it is safer and easier to calculate the
offset of a slice within the partition. It is simply the slice
number \* 8MB. Example 2 above, could now be performed as:
```
Binary % sudo dd if=hd1k_games.img of=/dev/sdg1 seek=48 bs=1M
```
# Operating Systems
One of the primary goals of RomWBW is to expose a set of generic
@@ -3798,11 +3887,23 @@ local drives.
## Network Boot
It is possible to boot your MT011 equipped RomWBW system directly from a
network server. This means that the operating system will be loaded
It is possible to boot your RomWBW system directly from a
network server if it has the required hardware. This means that the operating system will be loaded
directly from the network server and all of your drive letters will be
provided by the network server. Duodyne is not yet supported in this
mode of operation.
provided by the network server. The supported hardware is:
- RCBus System w/ MT011 including:
- Featherwing WizNet W5500
- SPI FRAM on secondary SPI interface (CS2)
- Doudyne Disk I/O Board including:
- WIZ850io Module
- 25LCxxx Serial SPI EEPROM
Unlike the CP/NET Client, the presence of dedicated non-volatile
storage is required to hold the network configuration. This will be
FRAM (for MT011) or Serial SPI EEPROM (Duodyne). The NVRAM is used to store your WizNet
configuration values so they do not need to be re-entered every time you
power-cycle your system.
It is important to understand that the operating system that is loaded
in this case is **not** a RomWBW enhanced operating system. Some
@@ -3810,11 +3911,6 @@ commands (such as the `ASSIGN` command) will not be possible. Also,
you will only have access to drives provided by the network server --
no local disk drives will be available.
In order to do this, your MT011 Module **must** be enhanced with an
NVRAM SPI FRAM mini-board. The NVRAM is used to store your WizNet
configuration values so they do not need to be re-entered every time you
power-cycle your system.
Using the same values from the previous example, you would
issue the `WIZCFG` commands:
@@ -3835,25 +3931,25 @@ contains some files that will be sent to your RomWBW system when the
Network boot is performed. By default the directory will be
`~/NetBoot`. In this directory you need to place the following files:
* `cpnos-wbw.sys`
* `cpnos.sys`
* `ndos.spr`
* `snios.spr`
All of these files are found in the Binary/CPNET/NetBoot directory of
the RomWBW distribution.
You also need to make sure CpnetSocketServer is configured with an 'A'
drive and that drive must contain (at an absolute minimum) the following
file:
* `ccp.spr`
which is also found in the Binary/CPNET/NetBoot directory of RomWBW
All of these files are found in the Binary/CPNET/NetBoot directory of
the RomWBW distribution. You will find 2 sub-directories named MT and
DUO. Get the files from the sub-directory corresponding to your
specific hardware.
Finally, you need to add the following line to your CpnetSocketServer
configuration file:
`netboot_default = cpnos-wbw.sys`
`netboot_default = cpnos.sys`
To perform the network boot, you start your RomWBW system normally which
should leave you at the Boot Loader prompt. The 'N' command will
@@ -4237,6 +4333,11 @@ ALIAS facility.
p-System has its own startup command processing mechanism that is
covered in the p-System documentation.
## NVRAM Configuration
See section [Setting NVRAM Options] for information about how to
apply NVRAM configuration.
## ROM Customization
The pre-built ROM images are configured for the basic capabilities of
@@ -4269,6 +4370,14 @@ Note that the ROM customization process does not apply to UNA. All
UNA customization is performed within the ROM setup script that is
built into the ROM.
## ROM User Application
The User App is provided as a way to access a custom written
ROM application. In the pre-built ROMs, selecting User App will just
return to the Boot Loader menu. If you are interested in creating a
custom application to run instead, review the "usrrom.asm" file in the
Source/HBIOS folder of the distribution.
# UNA Hardware BIOS
John Coffman has produced a new generation of hardware BIOS called
@@ -4678,7 +4787,9 @@ please let me know if I missed you!
* Mark Pruden has also contributed a great deal of content to the
Disk Catalog, User Guide as well as contributing the disk image
for the Z3PLUS operating system, and the COPYSL utility.
for the Z3PLUS operating system, the COPYSL utility, and also
implemented a feature for RomWBW configuration by NVRAM,
and added the /B bulk mode of disk assignment to the ASSIGN utility.
* Jacques Pelletier has contributed the DS1501 RTC driver code.

View File

@@ -0,0 +1,16 @@
Eazy80_512 has a 64K ROM contains a monitor. The monitor command "b 4" loads RomWBW program
starting from SD sector 288 into first 4 banks of memory. RAM disk is not loaded, so drive A is
blank.
Bank Contents Description
-------- -------- -----------
0x0 BIOS HBIOS Bank (operating)
0x1 IMG0 ROM Loader, Monitor, ROM OSes
0x2 IMG1 ROM Applications
0x3 IMG2 Reserved
0x4-0xB RAMD RAM Disk Banks <- not loaded, blank
0xC BUF OS Buffers (CP/M3)
0xD AUX Aux Bank (CP/M 3, BPBIOS, etc.)
0xE USR User Bank (CP/M TPA, etc.)
0xF COM Common Bank, Upper 32KB

26
Source/EZ512/Build.cmd Normal file
View File

@@ -0,0 +1,26 @@
@echo off
setlocal
set TOOLS=../../Tools
set PATH=%TOOLS%\srecord;%PATH%
for %%f in (..\..\Binary\RCZ80_ez512_*.rom) do call :build %%~nf
goto :eof
:build
echo.
echo Creating %1 disk image...
echo.
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary
srec_cat temp.dat -binary -exclude 0x0 0x200 ez512_cfldr.bin -binary -o temp.dat -binary
srec_cat temp.dat -binary -exclude 0x1B8 0x200 ez512_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 ez512_mon.bin -binary -offset 0x1F000 -o temp.dat -binary
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 ..\..\Binary\%1.rom -binary -offset 0x24000 -o temp.dat -binary
move temp.dat ..\..\Binary\%1_hd1k_prefix.dat
copy /b ..\..\Binary\%1_hd1k_prefix.dat + ..\..\Binary\hd1k_cpm22.img + ..\..\Binary\hd1k_zsdos.img + ..\..\Binary\hd1k_nzcom.img + ..\..\Binary\hd1k_cpm3.img + ..\..\Binary\hd1k_zpm3.img + ..\..\Binary\hd1k_ws4.img ..\..\Binary\%1_hd1k_combo.img || exit /b
goto :eof

3
Source/EZ512/Clean.cmd Normal file
View File

@@ -0,0 +1,3 @@
@echo off
setlocal

View File

@@ -0,0 +1,22 @@
Eazy80_512 Disk Prefix Layout
=============================
---- Bytes ---- --- Sectors ---
Start Length Start Length Description
------- ------- ------- ------- ---------------------------
0x00000 0x001BE 0 1 CF Boot Loader
0x001B8 0x00048 RomWBW Partition Table
0x00200 0x1EE00 1 247 Unused
0x1F000 0x01000 248 8 EZ512 Monitor v0.3
0x20000 0x04000 256 32 Unused
0x24000 0x80000 288 1024 RomWBW
0xA4000 0x5C000 1312 736 Unused
0x100000 2048 Start of slices (partition 0x1E)
Notes
-----
- Eazy80_512 monitor reads the first 128KB of RomWBW stored started from sector 288 into banks 0-3
- Afterward Z80 jumps to location 0x0 to execute RomWBW

27
Source/EZ512/Makefile Normal file
View File

@@ -0,0 +1,27 @@
DEST=../../Binary
HD1KIMGS = $(DEST)/hd1k_cpm22.img $(DEST)/hd1k_zsdos.img $(DEST)/hd1k_nzcom.img \
$(DEST)/hd1k_cpm3.img $(DEST)/hd1k_zpm3.img $(DEST)/hd1k_ws4.img
ROMS := $(wildcard $(DEST)/RCZ80_ez512_*.rom)
ROMS := $(patsubst $(DEST)/%.rom,%,$(ROMS))
OBJECTS := $(patsubst %,%_hd1k_prefix.dat,$(ROMS))
OBJECTS += $(patsubst %,%_hd1k_combo.img,$(ROMS))
TOOLS = ../../Tools
include $(TOOLS)/Makefile.inc
DIFFPATH = $(DIFFTO)/Binary
%_hd1k_prefix.dat: $(DEST)/%.rom
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary
srec_cat temp.dat -binary -exclude 0x0 0x200 ez512_cfldr.bin -binary -o temp.dat -binary
srec_cat temp.dat -binary -exclude 0x1B8 0x200 ez512_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 ez512_mon.bin -binary -offset 0x1F000 -o temp.dat -binary
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 $< -binary -offset 0x24000 -o temp.dat -binary
mv temp.dat $@
%_hd1k_combo.img: %_hd1k_prefix.dat $(HD1KIMGS)
cat $^ > $@

Binary file not shown.

BIN
Source/EZ512/ez512_mon.bin Normal file

Binary file not shown.

BIN
Source/EZ512/ez512_ptbl.bin Normal file

Binary file not shown.

BIN
Source/Fonts/fontcgac.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
Source/Fonts/fontcgau.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@@ -61,7 +61,17 @@ call hbios_env.cmd
if %Platform%==UNA goto :UNA
::
:: Bring the previously build font files into this directory
:: Determine proper variant of the NetBoot module to embed
::
if %Platform%==DUO (
set NetBoot=netboot-duo.mod
) else (
set NetBoot=netboot-mt.mod
)
::
:: Bring the previously build font files into this directory
::
copy ..\Fonts\font*.asm . || exit /b
@@ -89,10 +99,9 @@ call :asm usrrom || exit /b
call :asm updater || exit /b
call :asm imgpad2 || exit /b
::
:: Build components in Sub folders
::
pushd SysConfig && call Build || exit /b & popd
:: Sysconf builds as both BIN and COM files
tasm -t%CPUType% -g3 -fFF -dROMWBW sysconf.asm sysconf.bin sysconf_bin.lst || exit /b
tasm -t%CPUType% -g3 -fFF -dCPM sysconf.asm sysconf.com sysconf_com.lst || exit /b
::
:: Create additional ROM bank images by assembling components into
@@ -102,7 +111,7 @@ pushd SysConfig && call Build || exit /b & popd
::
copy /b romldr.bin + dbgmon.bin + ..\zsdos\zsys_wbw.bin + ..\cpm22\cpm_wbw.bin osimg.bin || exit /b
copy /b ..\Forth\camel80.bin + nascom.bin + ..\tastybasic\src\tastybasic.bin + game.bin + eastaegg.bin + netboot.mod + updater.bin + SysConfig\sysconfig.bin + usrrom.bin osimg1.bin || exit /b
copy /b ..\Forth\camel80.bin + nascom.bin + ..\tastybasic\src\tastybasic.bin + game.bin + eastaegg.bin + %NETBOOT% + updater.bin + sysconf.bin + usrrom.bin osimg1.bin || exit /b
if %Platform%==S100 (
zxcc slr180 -s100mon/fh
@@ -158,6 +167,8 @@ if exist %ROMName%.rom copy %ROMName%.rom ..\..\Binary || exit /b
if exist %ROMName%.upd copy %ROMName%.upd ..\..\Binary || exit /b
if exist %ROMName%.com copy %ROMName%.com ..\..\Binary || exit /b
if exist sysconf.com copy sysconf.com ..\..\Binary\Apps\ || exit /b
goto :eof
::
@@ -223,6 +234,7 @@ call Build RCZ80 skz_std || exit /b
call Build RCZ80 zrc_std || exit /b
call Build RCZ80 zrc_ram_std || exit /b
call Build RCZ80 zrc512_std || exit /b
call Build RCZ80 ez512_std || exit /b
call Build RCZ180 ext_std || exit /b
call Build RCZ180 nat_std || exit /b
call Build RCZ180 z1rcc_std || exit /b

View File

@@ -26,6 +26,7 @@ if [ "${ROM_PLATFORM}" == "dist" ] ; then
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_std"; bash Build.sh
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_ram_std"; bash Build.sh
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc512_std"; bash Build.sh
ROM_PLATFORM="RCZ80"; ROM_CONFIG="ez512_std"; bash Build.sh
ROM_PLATFORM="RCZ180"; ROM_CONFIG="ext_std"; bash Build.sh
ROM_PLATFORM="RCZ180"; ROM_CONFIG="nat_std"; bash Build.sh
ROM_PLATFORM="RCZ180"; ROM_CONFIG="z1rcc_std"; bash Build.sh

View File

@@ -16,5 +16,3 @@ if exist build.inc del build.inc
if exist font*.asm del font*.asm
if exist build_env.cmd del build_env.cmd
if exist hbios_env.cmd del hbios_env.cmd
pushd SysConfig && call Clean & popd

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_DUO.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_DYNO.asm"
;

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Z180 MiniITX"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_EPITX.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_FZ80.asm"
;

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "GM STD BUS Z180", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_GMZ180.asm"
;
@@ -81,7 +82,7 @@ FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_GM ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_GM ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
;
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)

View File

@@ -42,6 +42,7 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_HEATH.asm"

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_MBC.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_MK4.asm"
;
@@ -69,6 +70,6 @@ FDMODE .SET FDMODE_DIDE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
;
PRPENABLE .SET TRUE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_MON.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_N8.asm"
;
@@ -60,6 +61,6 @@ FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
;
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
SDMODE .SET SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
;
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_NABU.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCEZ80.asm"
;
@@ -68,7 +69,7 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80]
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
;
@@ -80,3 +81,4 @@ SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
;
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ180.asm"
;
@@ -86,3 +87,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ180.asm"
;
@@ -86,3 +87,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Z1RCC", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ180.asm"
;
@@ -94,3 +95,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ280.asm"
;
@@ -85,3 +86,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ280.asm"
;
@@ -86,3 +87,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "ZZ80MB", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ280.asm"
;
@@ -89,3 +90,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "ZZRCC", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ280.asm"
;
@@ -97,3 +98,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "ZZRCC", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ280.asm"
;

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Easy-Z80", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ80.asm"
;
@@ -103,3 +104,4 @@ SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
;
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -0,0 +1,112 @@
;
;==================================================================================================
; ROMWBW DEFAULT BUILD SETTINGS FOR RCBUS Z80 ZRC512
;==================================================================================================
;
; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM
; INDICATED ABOVE. THESE SETTINGS DEFINE THE OFFICIAL BUILD FOR THIS
; PLATFORM AS DISTRIBUTED IN ROMWBW RELEASES.
;
; ROMWBW USES CASCADING CONFIGURATION FILES AS INDICATED BELOW:
;
; cfg_MASTER.asm - MASTER: CONFIGURATION FILE DEFINES ALL POSSIBLE ROMWBW SETTINGS
; |
; +-> cfg_<platform>.asm - PLATFORM: DEFAULT SETTINGS FOR SPECIFIC PLATFORM
; |
; +-> Config/<plt>_std.asm - BUILD: SETTINGS FOR EACH OFFICIAL DIST BUILD
; |
; +-> Config/<plt>_<cust>.asm - USER: CUSTOM USER BUILD SETTINGS
;
; THE TOP (MASTER CONFIGURATION) FILE DEFINES ALL POSSIBLE ROMWBW
; CONFIGURATION SETTINGS. EACH FILE BELOW THE MASTER CONFIGURATION FILE
; INHERITS THE CUMULATIVE SETTINGS OF THE FILES ABOVE IT AND MAY
; OVERRIDE THESE SETTINGS AS DESIRED.
;
; OTHER THAN THE TOP MASTER FILE, EACH FILE MUST "#INCLUDE" ITS PARENT
; FILE (SEE #INCLUDE STATEMENT BELOW). THE TOP TWO FILES SHOULD NOT BE
; MODIFIED.
;
; TO CUSTOMIZE YOUR BUILD SETTINGS YOU SHOULD MODIFY THIS FILE, THE
; DEFAULT BUILD SETTINGS (Config/<platform>_std.asm) OR PREFERABLY
; CREATE AN OPTIONAL CUSTOM USER SETTINGS FILE THAT INCLUDES THE DEFAULT
; BUILD SETTINGS FILE (SEE EXAMPLE Config/SBC_user.asm).
;
; BY CREATING A CUSTOM USER SETTINGS FILE, YOU ARE LESS LIKELY TO BE
; IMPACTED BY FUTURE CHANGES BECAUSE YOU WILL BE INHERITING MOST
; OF YOUR SETTINGS WHICH WILL BE UPDATED BY AUTHORS AS ROMWBW EVOLVES.
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE
; SOURCE DIRECTORY (TWO DIRECTORIES ABOVE THIS ONE).
;
; *** WARNING: ASIDE FROM THE MASTER CONFIGURATION FILE, YOU MUST USE
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE PLATFORM_NAME "EaZy80-512", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ80.asm"
;
CPUOSC .SET 22000000 ; CPU OSC FREQ IN MHZ
;
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
;
KIOENABLE .SET TRUE ; ENABLE ZILOG KIO SUPPORT
KIOBASE .SET $00 ; KIO BASE I/O ADDRESS
;
RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .SET MM_EZ512 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512]
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
CTCENABLE .SET TRUE ; ENABLE ZILOG CTC SUPPORT
CTCBASE .SET KIOBASE+$04 ; CTC BASE I/O ADDRESS
CTCTIMER .SET TRUE ; ENABLE CTC PERIODIC TIMER
CTCOSC .SET 3686400 ; CTC CLOCK FREQUENCY
;
DUARTENABLE .SET FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM)
;
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
;
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIOCNT .SET 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .SET SIOMODE_STD ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .SET KIOBASE+$08 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .SET CTCOSC ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACTCC .SET 0 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO0BCLK .SET CTCOSC ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0BCTCC .SET 1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
;
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MSX|MSXKBD|MSXMKY|MBC|COLECO|DUO|NABU]
TMS80COLS .SET FALSE ; TMS: ENABLE 80 COLUMN SCREEN, REQUIRES V9958
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
;
MDROM .SET FALSE ; MD: ENABLE ROM DISK
;
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
;
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
;
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_EZ512 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
;
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
;
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -63,7 +63,8 @@
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
; YOUR FILE IN THE BUILD PROCESS.
;
#DEFINE BOOT_DEFAULT "Z" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "Config/RCZ80_std.asm"
;
@@ -102,3 +103,4 @@ SN76489ENABLE .SET TRUE ; SN: ENABLE SN76489 SOUND DRIVER
;
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "Config/RCZ80_std.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ80.asm"
;
@@ -88,3 +89,4 @@ IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ80.asm"
;
@@ -76,7 +77,7 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80]
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
;
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
@@ -89,3 +90,4 @@ SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
;
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Tiny-Z80", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ80.asm"
;
@@ -106,3 +107,4 @@ IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -48,7 +48,8 @@
; 3. ENABLES LPT PRINTER SUPPORT
;
#DEFINE PLATFORM_NAME "My Custom RCBus Computer", " [", CONFIG, "]"
#DEFINE BOOT_DEFAULT "Z" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "Config/RCZ80_std.asm" ; INHERIT FROM OFFICIAL BUILD SETTINGS
;

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "ZRC512", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ80.asm"
;
@@ -89,3 +90,4 @@ SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
;
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "ZRC", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ80.asm"
;
@@ -88,3 +89,4 @@ IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "ZRC", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RCZ80.asm"
;
@@ -86,3 +87,4 @@ IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_RPH.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_S100.asm"
;
@@ -62,5 +63,5 @@ SCONENABLE .SET TRUE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_SBC.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_SBC.asm"
;
@@ -65,6 +66,6 @@ FDMODE .SET FDMODE_DIO3 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|
IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
;
PRPENABLE .SET TRUE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Small Computer SC126", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_SCZ180.asm"
;
@@ -83,10 +84,11 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
;
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Small Computer SC130", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_SCZ180.asm"
;
@@ -84,10 +85,11 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
;
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Small Computer SC131", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_SCZ180.asm"
;
@@ -73,7 +74,7 @@ SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
;
CHENABLE .SET FALSE ; CH: ENABLE CH375/376 USB SUPPORT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Small Computer SC140", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_SCZ180.asm"
;
@@ -85,3 +86,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_LINC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Small Computer SC503", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_SCZ180.asm"
;
@@ -87,3 +88,4 @@ PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_LINC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -44,7 +44,8 @@
;
#DEFINE PLATFORM_NAME "Small Computer SC700", " [", CONFIG, "]"
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_SCZ180.asm"
;
@@ -83,10 +84,11 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM]
SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
;
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU]
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT

View File

@@ -42,6 +42,7 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_UNA.asm"

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_Z80RETRO.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_ZETA2.asm"
;

View File

@@ -42,7 +42,8 @@
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU".
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED
;
#INCLUDE "cfg_ZETA.asm"
;

View File

@@ -3,11 +3,9 @@ MOREDIFF = game.bin hbios_rom.bin nascom.bin usrrom.bin \
dbgmon.bin hbios_app.bin imgpad2.bin osimg1.bin osimg2.bin romldr.bin \
eastaegg.bin hbios_img.bin osimg.bin game.bin updater.bin usrrom.bin
# SUBDIRS = SysConfig
DEST = ../../Binary
TOOLS =../../Tools
OTHERS = *.img *.rom *.com *.upd *.bin *.hex cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh \
SysConfig/*.com SysConfig/*.bin SysConfig/*.lst
OTHERS = *.img *.rom *.com *.upd *.bin *.hex cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh netboot.mod
# DIFFMAKE = 1
@@ -34,7 +32,7 @@ else ifeq ($(CPUFAM),3)
TASM=$(BINDIR)/uz80as -t z280
endif
DEPS=prereq dbgmon.bin romldr.bin nascom.bin tastybasic.bin game.bin eastaegg.bin updater.bin usrrom.bin imgpad2.bin
DEPS=prereq dbgmon.bin romldr.bin nascom.bin tastybasic.bin game.bin eastaegg.bin updater.bin sysconf.bin sysconf.com usrrom.bin imgpad2.bin
ifeq ($(ROM_PLATFORM),UNA)
ROMDEPS=romldr.bin dbgmon.bin
@@ -62,8 +60,13 @@ ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG}
$(OBJECTS) : $(ROMDEPS)
@cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin ../CPM22/cpm_$(BIOS).bin >osimg.bin
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin >osimg_small.bin
if [ $(ROM_PLATFORM) = DUO ] ; then \
cat netboot-duo.mod >netboot.mod ; \
else \
cat netboot-mt.mod >netboot.mod ; \
fi
if [ $(ROM_PLATFORM) != UNA ] ; then \
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin SysConfig/sysconfig.bin usrrom.bin >osimg1.bin ; \
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin sysconf.bin usrrom.bin >osimg1.bin ; \
if [ $(ROM_PLATFORM) = S100 ] ; then \
cat s100mon.bin >osimg2.bin ; \
else \
@@ -89,7 +92,7 @@ $(OBJECTS) : $(ROMDEPS)
fi \
fi
prereq: $(FONTS) camel80.bin tastybasic.bin syscon
prereq: $(FONTS) camel80.bin tastybasic.bin
font%.asm:
cp ../Fonts/$@ .
@@ -97,8 +100,12 @@ font%.asm:
camel80.bin:
cp ../Forth/$@ .
syscon:
$(MAKE) --directory SysConfig
sysconf.bin:
@$(TASM) -dROMWBW sysconf.asm sysconf.bin sysconf_bin.lst
sysconf.com:
@$(TASM) -dCPM sysconf.asm sysconf.com sysconf_com.lst
cp $@ $(DEST)/Apps
s100mon.bin:
$(ZXCC) $(CPM)/SLR180 -s100mon/FH

View File

@@ -41,9 +41,6 @@ camel80.bin:
tastybasic.bin:
cp ../TastyBasic/src/$@ .
sysconfig.bin:
cp SysConfig/$@ .
s100mon.bin:
$(ZXCC) $(CPM)/SLR180 -s100mon/FH
$(ZXCC) $(CPM)/MLOAD25 -s100mon.bin=s100mon
@@ -103,8 +100,8 @@ UNA_%.osimg.bin: UNA_%.romldr.bin UNA_%.dbgmon.bin
%.osimg_small.bin: %.romldr.bin %.dbgmon.bin
cat $(*F).romldr.bin $(*F).dbgmon.bin ../ZSDOS/zsys_wbw.bin >$@
%.osimg1.bin: camel80.bin %.nascom.bin tastybasic.bin %.game.bin %.eastaegg.bin netboot.mod %.updater.bin sysconfig.bin %.usrrom.bin
cat camel80.bin $(*F).nascom.bin tastybasic.bin $(*F).game.bin $(*F).eastaegg.bin netboot.mod $(*F).updater.bin sysconfig.bin $(*F).usrrom.bin >$@
%.osimg1.bin: camel80.bin %.nascom.bin tastybasic.bin %.game.bin %.eastaegg.bin netboot.mod %.updater.bin sysconf.bin %.usrrom.bin
cat camel80.bin $(*F).nascom.bin tastybasic.bin $(*F).game.bin $(*F).eastaegg.bin netboot.mod $(*F).updater.bin sysconf.bin $(*F).usrrom.bin >$@
srec_cat $@ -Binary -Crop 0 0x7FFF -Checksum_Negative_Big_Endian 0x7FFF 1 1 -o $@ -Binary
S100_%.imgpad2.bin: s100mon.bin

View File

@@ -1,11 +0,0 @@
@echo off
setlocal
set TOOLS=../../../Tools
set PATH=%TOOLS%\tasm32;%PATH%
set TASMTABS=%TOOLS%\tasm32
tasm -t80 -g3 -fFF -dCPM sysconfig.asm sysconfig.com sysconfig.lst || exit /b
tasm -t80 -g3 -fFF -dROMWBW sysconfig.asm sysconfig.bin sysconfig.lst || exit /b
copy /Y sysconfig.com ..\..\..\Binary\Apps\ || exit /b

View File

@@ -1,6 +0,0 @@
@echo off
setlocal
if exist *.com del *.com
if exist *.lst del *.lst
if exist *.bin del *.bin

View File

@@ -1,12 +0,0 @@
OBJECTS = sysconfig.com sysconfig.bin
DEST = ../../../Binary/Apps
NOCOPY = sysconfig.bin
TOOLS = ../../../Tools
include $(TOOLS)/Makefile.inc
USETASM=1
sysconfig.bin: TASMFLAGS=-dROMWBW
sysconfig.com: TASMFLAGS=-dCPM

View File

@@ -1,21 +0,0 @@
# System Configuration
## Introduction
An utility applicaton that sets NVR Attributes that affect HBIOS and
RomWBW Operation. Write to RTC NVRAM to store config is reliant on HBIOS
## Building
TASM (Telemark Assembler) ([Anderson, 1998](##References)).
### RomWBW Version
Is part of the SBCv2 RomWBW distribution. And deployed as a Rom Application
It is included in Rom Bank 1
### CP/M Version
The resulting `sysconfig.com` command file can be run in CP/M.
It is copied in the Binary/Apps folder.

View File

@@ -209,6 +209,7 @@ AY38910_INIT:
OUT (AY_ACR),A ; SET INIT AUX CONTROL REG
#ENDIF
;
#IF (!AY_FORCE)
LD DE,(AY_R2CHBP*256)+$55 ; SIMPLE HARDWARE PROBE
CALL AY_WRTPSG ; WRITE AND
CALL AY_RDPSG ; READ TO A
@@ -221,6 +222,8 @@ AY38910_INIT:
LD A,$FF ; UNSUCCESSFULL INIT
RET
;
#ENDIF
;
AY_FND:
LD IY, AY_IDAT ; SETUP FUNCTION TABLE
LD BC, AY_FNTBL ; POINTER TO INSTANCE DATA

View File

@@ -54,6 +54,7 @@ HBIOS_MUTEX .SET FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
USELZSA2 .SET TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .SET 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BT_REC_TYPE .SET BT_REC_DUORI ; BOOT RECOVERY METHOD TO USE
BOOT_TIMEOUT .SET -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .SET 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
AUTOCON .SET FALSE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
@@ -67,7 +68,7 @@ DEFSERCFG .SET SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
ROMSIZE .SET 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
APP_BNKS .SET $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
MEMMGR .SET MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
MEMMGR .SET MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512]
MPGSEL_0 .SET $50 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .SET $51 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
MPGSEL_2 .SET $52 ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY)
@@ -286,7 +287,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .SET FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80]
SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512]
SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

Some files were not shown because too many files have changed in this diff Show More