mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Compare commits
111 Commits
v3.1.1-pre
...
v3.1.1-pre
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
979e763739 | ||
|
|
16475fe408 | ||
|
|
d2e1e5be4b | ||
|
|
2271c086b5 | ||
|
|
2b4631195a | ||
|
|
d5f0699fc3 | ||
|
|
5c84fc6213 | ||
|
|
d9f11b9f5e | ||
|
|
bb2a68e066 | ||
|
|
cd426ba6ca | ||
|
|
491bbb68a6 | ||
|
|
b3bf3e27ee | ||
|
|
523ce60093 | ||
|
|
3f00cfbfb8 | ||
|
|
2dd9edd8ca | ||
|
|
6145383a65 | ||
|
|
c0721a3f85 | ||
|
|
c10497bd03 | ||
|
|
5b1542e49b | ||
|
|
96269a7f45 | ||
|
|
bd03277bfe | ||
|
|
c072027b87 | ||
|
|
e409391f14 | ||
|
|
030228e9b8 | ||
|
|
d584d3d553 | ||
|
|
2049b35ee2 | ||
|
|
285bc6611f | ||
|
|
be8177b8a4 | ||
|
|
9c80db786e | ||
|
|
d062b4345d | ||
|
|
03bf1527cc | ||
|
|
38318262e9 | ||
|
|
eefad65904 | ||
|
|
4d6a922402 | ||
|
|
e32d6e2d5d | ||
|
|
9ea462ef7a | ||
|
|
1681e159bd | ||
|
|
3b8973fa12 | ||
|
|
ef1989f600 | ||
|
|
023e54a9a8 | ||
|
|
73b0a3d941 | ||
|
|
f86019a628 | ||
|
|
1839120e9d | ||
|
|
8e110221a3 | ||
|
|
8df7712633 | ||
|
|
149ffb899b | ||
|
|
4f60cd4e57 | ||
|
|
e83e26b6db | ||
|
|
4cd533117f | ||
|
|
20cab617c7 | ||
|
|
323cfec931 | ||
|
|
ced09b2b95 | ||
|
|
93f8c67f9f | ||
|
|
999849c62b | ||
|
|
4babc51588 | ||
|
|
44ccc167ff | ||
|
|
eae8295811 | ||
|
|
c76cb6737e | ||
|
|
af723c5370 | ||
|
|
57e4ed476c | ||
|
|
167c10fafc | ||
|
|
6d1a9f5b7c | ||
|
|
bd0bb94c52 | ||
|
|
e1a833b1a8 | ||
|
|
7bd6df1e99 | ||
|
|
d3fcf8cea2 | ||
|
|
c7eb82e4dd | ||
|
|
20d07ded7b | ||
|
|
fc57ca4a68 | ||
|
|
444c57fdfb | ||
|
|
ca61f340db | ||
|
|
601ac66762 | ||
|
|
c204110a6f | ||
|
|
e8d0eedc2b | ||
|
|
7b55b8ba86 | ||
|
|
069aa2b5be | ||
|
|
eeff03c7aa | ||
|
|
791fcea466 | ||
|
|
f56c9007bb | ||
|
|
360ba5ca95 | ||
|
|
7adf2038f1 | ||
|
|
a77744d8e6 | ||
|
|
dd47283fda | ||
|
|
5cc85e0444 | ||
|
|
6e51070590 | ||
|
|
a7853fe6d0 | ||
|
|
590dcd0b4f | ||
|
|
e25107309b | ||
|
|
def29c7668 | ||
|
|
0c92c69ed8 | ||
|
|
54ce18bb75 | ||
|
|
0ebde397fa | ||
|
|
8bf93619a0 | ||
|
|
2727c02c56 | ||
|
|
d6ac15df40 | ||
|
|
c2a6c7fa22 | ||
|
|
a742e5016e | ||
|
|
248ef0e1b4 | ||
|
|
19101fda39 | ||
|
|
9d1cfd4a22 | ||
|
|
cb20784685 | ||
|
|
66d524c096 | ||
|
|
aceef15481 | ||
|
|
d4ca3de40f | ||
|
|
f0def03d0e | ||
|
|
b2b070232d | ||
|
|
27935123cf | ||
|
|
d40c6be60d | ||
|
|
aa93eb62f2 | ||
|
|
94c32c9fd0 | ||
|
|
d9a3a5086c |
14
.github/workflows/commit.yml
vendored
14
.github/workflows/commit.yml
vendored
@@ -14,9 +14,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: rlespinasse/github-slug-action@v3.x
|
||||
- uses: rlespinasse/github-slug-action@v4.4.0
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3.1.0
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
find -type f -exec md5sum '{}' \;
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
with:
|
||||
name: RomWBW_Linux-${{env.GITHUB_REF_SLUG}}-${{env.GITHUB_SHA_SHORT}}
|
||||
path: .
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
zip -r RomWBW-SnapShot-Package.zip .
|
||||
|
||||
- name: Post SnapShot
|
||||
uses: "marvinpinto/action-automatic-releases@latest"
|
||||
uses: wwarthen/actions/packages/automatic-releases@built-packages
|
||||
with:
|
||||
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
automatic_release_tag: "SnapShot"
|
||||
@@ -53,10 +53,10 @@ jobs:
|
||||
RomWBW-SnapShot-Package.zip
|
||||
|
||||
buildMacOS:
|
||||
runs-on: macos-latest
|
||||
runs-on: macOS-12
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3.1.0
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
@@ -72,7 +72,7 @@ jobs:
|
||||
find . -type f -exec md5 -r -- '{}' +;
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
with:
|
||||
name: RomWBW_MacOS
|
||||
path: .
|
||||
|
||||
@@ -7,4 +7,4 @@
|
||||
***********************************************************************
|
||||
|
||||
This directory contains some sample ProTracker and MYM sound
|
||||
files that can be played by the TUNE application.
|
||||
files that can be played by the TUNE or VGMPLAY application.
|
||||
@@ -75,8 +75,8 @@ The VDU video board requires a dedicated onboard ROM containing the
|
||||
font data. The "vdu.rom" file contains the binary data to program
|
||||
onto that chip.
|
||||
|
||||
Disk Images (fd_*.img, hd_*.img)
|
||||
------------------------------
|
||||
Disk Images (fd_*.img, hd_*.img, psys.img)
|
||||
------------------------------------------
|
||||
|
||||
RomWBW includes a mechanism for generating floppy disk and hard disk
|
||||
binary images that are ready to copy directly to a floppy, hard disk,
|
||||
@@ -96,16 +96,18 @@ RawWriteWin (as long as you have access to a floppy drive on your
|
||||
Windows computer). The resulting floppy disks will be usable on any
|
||||
RomWBW-based system with floppy drive(s).
|
||||
|
||||
Likewise, the hd_*.img files are hard disk images. Each file is
|
||||
intended to be copied to the start of any type of hard disk media
|
||||
(typically a CF Card or SD Card). The resulting media will be usable
|
||||
on any RomWBW-based system that accepts the corresponding media type.
|
||||
Likewise, the hd512_*.img and hd1024_*.img files are hard disk images.
|
||||
Each file is intended to be copied to the start of any type of hard
|
||||
disk media (typically a CF Card or SD Card). The resulting media will
|
||||
be usable on any RomWBW-based system that accepts the corresponding
|
||||
media type.
|
||||
|
||||
WARNING: The hdnew_*.img disk images are part of a new disk
|
||||
format that is a work in progress. Do not use these disk
|
||||
images without knowing exactly what you are doing! The
|
||||
hd_*.img disk images continue to be the images you should
|
||||
be using under normal circumstances.
|
||||
NOTE: The hd512_*.img files are equivalent to the hd_*.img
|
||||
files in previous distributions. The hd1024_*.img files
|
||||
contained a revised file system format that increases the
|
||||
maximum number of CP/M directory entries from 512 to 1024.
|
||||
Refer to the ReadMe.txt in the Source/Images directory
|
||||
for details.
|
||||
|
||||
Documentation of the pre-built disk images is contained in the
|
||||
DiskList.txt file in this directory.
|
||||
@@ -115,6 +117,12 @@ the BuildImages.cmd script in the Source directory. Additional
|
||||
information on how to generate custom disk images is found in the
|
||||
Source\Images ReadMe.txt file.
|
||||
|
||||
The psys.img file contains a full implementation of the UCSD p-System
|
||||
for the Z80 running under RomWBW. This image file must be placed on
|
||||
disk media by itself (not appended or concatenated with hd*.img files.
|
||||
Refer to the Source/pSys/ReadMe.txt file for more information on the
|
||||
p-System implementation.
|
||||
|
||||
Propeller ROM Images (*.eeprom)
|
||||
-------------------------------
|
||||
|
||||
|
||||
@@ -62,6 +62,12 @@ Version 3.1.1
|
||||
- WBW: ZPMLDR and ZPM3 fixes, credit to Lars Nelson for finding ZPM3 source!
|
||||
- DDW: Add support for MBC sound card
|
||||
- WBW: Add support for "romless" booting
|
||||
- L?N: Fixes for ZCPR-D&J (buffer overflow, default drive/user)
|
||||
- J?P: Add support for DS1501 RTC
|
||||
- LLS: Added a user defined mode for SD Card interfaces (not complete)
|
||||
- L?N: Updated ZDE to v1.8 including time stamp preservation fixes
|
||||
- D?M: Minor update to CP/NET client files, fix to CPNBOOT
|
||||
- WBW: Added p-System IV.0 Z80 implementation
|
||||
|
||||
Version 3.1
|
||||
-----------
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Doc/UCSD p-System Users Manual.pdf
Normal file
BIN
Doc/UCSD p-System Users Manual.pdf
Normal file
Binary file not shown.
BIN
Doc/qcp27.pdf
Normal file
BIN
Doc/qcp27.pdf
Normal file
Binary file not shown.
BIN
Doc/qdos27.pdf
Normal file
BIN
Doc/qdos27.pdf
Normal file
Binary file not shown.
BIN
Doc/qpm27.pdf
Normal file
BIN
Doc/qpm27.pdf
Normal file
Binary file not shown.
3
Makefile
3
Makefile
@@ -6,6 +6,7 @@ clean:
|
||||
$(MAKE) --directory Tools clean
|
||||
$(MAKE) --directory Source clean
|
||||
$(MAKE) --directory Binary clean
|
||||
rm -f make.log
|
||||
|
||||
clobber: clean
|
||||
|
||||
@@ -13,6 +14,6 @@ diff:
|
||||
$(MAKE) --directory Source diff
|
||||
|
||||
dist:
|
||||
$(MAKE) ROM_PLATFORM=dist
|
||||
$(MAKE) ROM_PLATFORM=dist 2>&1 | tee make.log
|
||||
$(MAKE) --directory Source clean
|
||||
$(MAKE) --directory Tools clean
|
||||
|
||||
420
ReadMe.md
420
ReadMe.md
@@ -3,23 +3,23 @@
|
||||
## Z80/Z180 System Software
|
||||
|
||||
Version 3.1 Pre-release
|
||||
21 Mar 2022
|
||||
13 Jan 2023
|
||||
|
||||
Wayne Warthen <wwarthen@gmail.com>
|
||||
|
||||
### Download
|
||||
|
||||
- [RomWBW Distribution
|
||||
Package](https://github.com/wwarthen/RomWBW/releases)
|
||||
- [RomWBW Distribution
|
||||
Package](https://github.com/wwarthen/RomWBW/releases)
|
||||
|
||||
### Related Pages
|
||||
|
||||
- [RomWBW Architecture
|
||||
Document](https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=software:firmwareos:romwbw:romwbw_architecture.pdf)
|
||||
- [RomWBW
|
||||
Applications](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps)
|
||||
- [RomWBW
|
||||
Errata](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:errata)
|
||||
- [RomWBW Architecture
|
||||
Document](https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=software:firmwareos:romwbw:romwbw_architecture.pdf)
|
||||
- [RomWBW
|
||||
Applications](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps)
|
||||
- [RomWBW
|
||||
Errata](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:errata)
|
||||
|
||||
# Overview
|
||||
|
||||
@@ -27,28 +27,28 @@ RomWBW provides a complete software system for a wide variety of
|
||||
hobbyist Z80/Z180 CPU-based systems produced by these developer
|
||||
communities:
|
||||
|
||||
- [RetroBrew Computers](https://www.retrobrewcomputers.org)
|
||||
- [RC2014](https://rc2014.co.uk)
|
||||
- [retro-comp](https://groups.google.com/forum/#!forum/retro-comp)
|
||||
- [RetroBrew Computers](https://www.retrobrewcomputers.org)
|
||||
- [RC2014](https://rc2014.co.uk)
|
||||
- [retro-comp](https://groups.google.com/forum/#!forum/retro-comp)
|
||||
|
||||
General features include:
|
||||
|
||||
- Banked memory services for several banking designs
|
||||
- Disk drivers for RAM, ROM, Floppy, IDE, CF, and SD
|
||||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO
|
||||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445
|
||||
- Real time clock drivers including DS1302, BQ4845
|
||||
- Multiple OS support including CP/M 2.2, ZSDOS, CP/M 3, ZPM3
|
||||
- Built-in VT-100 terminal emulation support
|
||||
- Banked memory services for several banking designs
|
||||
- Disk drivers for RAM, ROM, Floppy, IDE, CF, and SD
|
||||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO
|
||||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445
|
||||
- Real time clock drivers including DS1302, BQ4845
|
||||
- Multiple OS support including CP/M 2.2, ZSDOS, CP/M 3, ZPM3
|
||||
- Built-in VT-100 terminal emulation support
|
||||
|
||||
RomWBW is distributed as both source code and pre-built ROM and disk
|
||||
images. Some of the provided software can be launched directly from the
|
||||
ROM firmware itself:
|
||||
|
||||
- System Monitor
|
||||
- Operating Systems (CP/M 2.2, ZSDOS)
|
||||
- ROM BASIC (Nascom BASIC and Tasty BASIC)
|
||||
- ROM Forth
|
||||
- System Monitor
|
||||
- Operating Systems (CP/M 2.2, ZSDOS)
|
||||
- ROM BASIC (Nascom BASIC and Tasty BASIC)
|
||||
- ROM Forth
|
||||
|
||||
A dynamic disk drive letter assignment mechanism allows mapping
|
||||
operating system drive letters to any available disk media.
|
||||
@@ -209,10 +209,10 @@ modular approach to implementing device drivers and presenting devices
|
||||
to the operating system. In general, all devices are classified as one
|
||||
of the following:
|
||||
|
||||
- Disk (Hard Disk, CF Card, SD Card, RAM/ROM Disk, etc.)
|
||||
- Character (Serial Ports, Parallel Ports, etc.)
|
||||
- Video (Video Display/Keyboard Interfaces)
|
||||
- RTC/NVRAM (Real Time Clock, Non-volatile RAM)
|
||||
- Disk (Hard Disk, CF Card, SD Card, RAM/ROM Disk, etc.)
|
||||
- Character (Serial Ports, Parallel Ports, etc.)
|
||||
- Video (Video Display/Keyboard Interfaces)
|
||||
- RTC/NVRAM (Real Time Clock, Non-volatile RAM)
|
||||
|
||||
HBIOS uses the concept of unit numbers to present a complex set of
|
||||
hardware devices to the operating system. As an example, a typical
|
||||
@@ -270,26 +270,20 @@ VDU type devices or serial devices. If you want to change which device
|
||||
is the console, the ***I*** menu option can be used to choose the unit
|
||||
and it’s speed.
|
||||
|
||||
The command format is `I <u> [<c>]`
|
||||
The command format is `I <u> [<b>]`
|
||||
|
||||
where ***u*** is unit to select and ***c*** is the optional baud rate
|
||||
code as listed below.
|
||||
where ***u*** is unit to select and ***b*** is the optional baud rate.
|
||||
|
||||
Code | Rate | Code | Rate | Code | Rate | Code | Rate |
|
||||
------|----------|------|----------|------|----------|------|----------|
|
||||
0 | 75 | 8 | 1800 | 16 | 28880 | 24 | 460800 |
|
||||
1 | 150 | 9 | 2400 | 17 | 38400 | 25 | 614400 |
|
||||
2 | 225 | 10 | 3600 | 18 | 57600 | 26 | 921600 |
|
||||
3 | 300 | 11 | 4800 | 19 | 76800 | 27 | 1228822 |
|
||||
4 | 450 | 12 | 7200 | 20 | 115200 | 28 | 1843200 |
|
||||
5 | 600 | 13 | 9600 | 21 | 153600 | 29 | 2457600 |
|
||||
6 | 900 | 14 | 14400 | 22 | 230400 | 30 | 3686400 |
|
||||
7 | 1200 | 15 | 19200 | 23 | 307200 | 31 | 7372800 |
|
||||
------------------------------------------------------------------------
|
||||
Supported baud rates are:
|
||||
|
||||
75 450 1800 7200 38400 115200 460800 1843200
|
||||
150 600 2400 9600 28800 153600 614400 2457600
|
||||
225 900 3600 14400 57600 230400 921600 3686400
|
||||
300 1200 4800 19200 76800 307200 1228800 7372800
|
||||
|
||||
Example: To change current console to 9600 baud
|
||||
|
||||
I 0 13
|
||||
I 0 9600
|
||||
|
||||
## Drive Letter Assignment
|
||||
|
||||
@@ -418,7 +412,7 @@ therefore, globally available.
|
||||
|
||||
Some custom applications do not fit on the ROM disk. They are found on
|
||||
the disk image files or the individual files can be found in the
|
||||
Binary\\Apps directory of the distribution.
|
||||
Binary\Apps directory of the distribution.
|
||||
|
||||
| Application | Description |
|
||||
|-------------|-------------------------------------------------------------|
|
||||
@@ -452,6 +446,15 @@ well. However, you will find some files on the ROM disk that will work
|
||||
with ZSDOS, but will not work on CP/M 2.2. For example, `LDDS`, which
|
||||
loads the ZSDOS date/time stamper will only run on ZSDOS.
|
||||
|
||||
## Flash ROM Disks
|
||||
|
||||
The limitation of ROM disks being read only can be overcome on some
|
||||
platforms with the appropriate selection of Flash ROM chip and system
|
||||
configuration. In this case the flash-file system can be enabled which
|
||||
will allow the ROM disk to be read and written to. Flash devices have a
|
||||
limited write lifespan and continual usage will eventually wear out the
|
||||
device. It is not suited for high usage applications.
|
||||
|
||||
## Disk Devices
|
||||
|
||||
While the RAM/ROM disks provide a functional system, they are not useful
|
||||
@@ -661,6 +664,11 @@ boot from disk as is. You do not need to run `SYSCOPY` on them to make
|
||||
them bootable. However, if you upgrade your ROM, you should use
|
||||
`SYSCOPY` to update the system tracks.
|
||||
|
||||
A full implementation of the UCSD p-System for Z80 under RomWBW is also
|
||||
provided. This is a completely separate and standalone disk image called
|
||||
psys.img. It contains 6 p-System filesystem slices, but these are not
|
||||
interoperable with the CP/M slices described above.
|
||||
|
||||
## Booting Disks
|
||||
|
||||
When starting your system, following the hardware initialization, you
|
||||
@@ -738,17 +746,17 @@ most stable and you are less likely to encounter problems.
|
||||
|
||||
### Notes
|
||||
|
||||
- You can change media, but it must be done while at the OS command
|
||||
prompt and you **must** warm start CP/M by pressing ctrl-c. This is
|
||||
a CP/M 2.2 constraint and is well documented in the DRI manuals.
|
||||
- You can change media, but it must be done while at the OS command
|
||||
prompt and you **must** warm start CP/M by pressing ctrl-c. This is a
|
||||
CP/M 2.2 constraint and is well documented in the DRI manuals.
|
||||
|
||||
- The original versions of DDT, DDTZ, and ZSID used the RST 38 vector
|
||||
which conflicts with interrupt mode 1 use of this vector. The DDT,
|
||||
DDTZ, and ZSID applications in RomWBW have been modified to use RST
|
||||
30 to avoid this issue.
|
||||
- The original versions of DDT, DDTZ, and ZSID used the RST 38 vector
|
||||
which conflicts with interrupt mode 1 use of this vector. The DDT,
|
||||
DDTZ, and ZSID applications in RomWBW have been modified to use RST 30
|
||||
to avoid this issue.
|
||||
|
||||
- Z-System applications will not run under CP/M 2.2. For example, the
|
||||
`LDDS` date stamper will not run.
|
||||
- Z-System applications will not run under CP/M 2.2. For example, the
|
||||
`LDDS` date stamper will not run.
|
||||
|
||||
## ZSDOS 1.1
|
||||
|
||||
@@ -766,14 +774,13 @@ Manual.pdf”).
|
||||
|
||||
### Notes
|
||||
|
||||
- Although most CP/M 2.2 applications will run under Z-System, some
|
||||
may not work as expected. The best example is PIP which is not aware
|
||||
of the ZSDOS paths and will fail in some scenarios (use `COPY`
|
||||
instead).
|
||||
- Although most CP/M 2.2 applications will run under Z-System, some may
|
||||
not work as expected. The best example is PIP which is not aware of
|
||||
the ZSDOS paths and will fail in some scenarios (use `COPY` instead).
|
||||
|
||||
- Although ZSDOS can recognize a media change in some cases, it will
|
||||
not always work. You should only change media at a command prompt
|
||||
and be sure to warm start the OS with a ctrl-c.
|
||||
- Although ZSDOS can recognize a media change in some cases, it will not
|
||||
always work. You should only change media at a command prompt and be
|
||||
sure to warm start the OS with a ctrl-c.
|
||||
|
||||
## NZCOM Automatic Z-System
|
||||
|
||||
@@ -794,8 +801,8 @@ RomWBW Doc directory.
|
||||
|
||||
### Notes
|
||||
|
||||
- There is no `DIR` command, you must use `SDZ` instead. If you don’t
|
||||
like this, look into the ALIAS facility.
|
||||
- There is no `DIR` command, you must use `SDZ` instead. If you don’t
|
||||
like this, look into the ALIAS facility.
|
||||
|
||||
## Digital Research CP/M 3
|
||||
|
||||
@@ -811,19 +818,18 @@ tracks. `CPMLDR.SYS` chain loads `CPM3.SYS`.
|
||||
|
||||
### Notes
|
||||
|
||||
- The `DATE` command cannot yet be used to **set** the RTC. The RTC is
|
||||
used to read the current date/time for file stamping, etc. You can
|
||||
use the `RTC` app to set the RTC clock.
|
||||
- The `DATE` command cannot yet be used to **set** the RTC. The RTC is
|
||||
used to read the current date/time for file stamping, etc. You can use
|
||||
the `RTC` app to set the RTC clock.
|
||||
|
||||
- The `COPYSYS` command described in the DRI CP/M 3 documentation is
|
||||
not provided with RomWBW. The RomWBW `SYSCOPY` command is used
|
||||
instead.
|
||||
- The `COPYSYS` command described in the DRI CP/M 3 documentation is not
|
||||
provided with RomWBW. The RomWBW `SYSCOPY` command is used instead.
|
||||
|
||||
- Although CP/M 3 is generally able to run CP/M 2.2 programs, this is
|
||||
not universally true. This is especially true of the utility
|
||||
programs included with the operating system. For example, the
|
||||
`SUBMIT` program of CP/M 3 is completely different from the `SUBMIT`
|
||||
program of CP/M 2.2.
|
||||
- Although CP/M 3 is generally able to run CP/M 2.2 programs, this is
|
||||
not universally true. This is especially true of the utility programs
|
||||
included with the operating system. For example, the `SUBMIT` program
|
||||
of CP/M 3 is completely different from the `SUBMIT` program of CP/M
|
||||
2.2.
|
||||
|
||||
## Simeon Cran’s ZPM3
|
||||
|
||||
@@ -835,14 +841,77 @@ tracks of the disk.
|
||||
|
||||
### Notes
|
||||
|
||||
- `ZPMLDR` is equivalent to CPMLDR. Both are included. Previously,
|
||||
ZPMLDR had issues that prevented it from properly booting RomWBW
|
||||
ZPM3. However, those issues have been resolved.
|
||||
- `ZPMLDR` is equivalent to CPMLDR. Both are included. Previously,
|
||||
ZPMLDR had issues that prevented it from properly booting RomWBW ZPM3.
|
||||
However, those issues have been resolved.
|
||||
|
||||
- The ZPM operating system is contained in the file called CPM3.SYS
|
||||
which is confusing, but this is as intended by the ZPM3
|
||||
distribution. I believe it was done this way to make it easier for
|
||||
users to transition from CP/M 3 to ZPM3.
|
||||
- The ZPM operating system is contained in the file called CPM3.SYS
|
||||
which is confusing, but this is as intended by the ZPM3 distribution.
|
||||
I believe it was done this way to make it easier for users to
|
||||
transition from CP/M 3 to ZPM3.
|
||||
|
||||
## QPM
|
||||
|
||||
QPM is another OS providing compatibility with and enhancements to CP/M
|
||||
2.2. It is provided as bootable disk images for RomWBW.
|
||||
|
||||
The following documentation files from the original QPM distribution are
|
||||
included in the RomWBW Doc directory:
|
||||
|
||||
- QP/M 2.7 Features and Facilities (qcp27.pdf)
|
||||
- QP/M 2.7 Interface Guide (qdos27.pdf)
|
||||
- QP/M 2.7 Installation Guide and Supplements (qpm27.pdf)
|
||||
|
||||
Refer to the ReadMe.txt file in Source/Images/d_qpm for more details
|
||||
regarding the RomWBW adaptation and customizations.
|
||||
|
||||
### Notes
|
||||
|
||||
- QPM is not available as source. This implementation was based on the
|
||||
QPM binary distribution and has been minimally customized for RomWBW.
|
||||
|
||||
- QINSTALL is used to customize QPM. It is included on the disk image.
|
||||
You should review the notes in the ReadMe.txt file in
|
||||
Source/Image/d_qpm before making changes.
|
||||
|
||||
## UCSD p-System
|
||||
|
||||
This is a full implementation of the UCSD p-System IV.0 for Z80 running
|
||||
under RomWBW. Unlike the OSes above, p-System uses it’s own unique
|
||||
filesystem and is not interoperable with other OSes.
|
||||
|
||||
It was derived from the p-System Adaptable Z80 System. Unlike some other
|
||||
distributions, this implements a native p-System Z80 BIOS, it does not
|
||||
rely on a CP/M BIOS layer.
|
||||
|
||||
The p-System is provided on a hard disk image file called psys.img. This
|
||||
must be copied to it’s own dedicated hard disk media (CF Card, SD Card,
|
||||
etc.). It is booted by selecting slices 0 of the corresponding hard disk
|
||||
unit at the RomWBW Boot Loader prompt.
|
||||
|
||||
The p-System Users Manual is included in the Doc directory of the
|
||||
distribution as “UCSD p-System Users Manual.pdf”.
|
||||
|
||||
Refer to the ReadMe.txt file in Source/pSys for more details.
|
||||
|
||||
### Notes
|
||||
|
||||
- There is no floppy support at this time.
|
||||
|
||||
- The hard disk image contains 6 p-System slices which are assigned to
|
||||
p-System unit numbers 4, 5, 9, 10, 11 which is standard for p-System.
|
||||
Slices 0-5 are assigned sequentially to these p-System unit numbers
|
||||
and it is not possible to reassign them.
|
||||
|
||||
- p-System relies heavily on the use of a full screen terminal. This
|
||||
implementation has been setup to expect an ANSI or DEC VT-100 terminal
|
||||
or emulator. The screen output will be garbled if no such terminal or
|
||||
emulator is used for console output.
|
||||
|
||||
- There is no straightforward mechanism to move files in and out of
|
||||
p-System. However, the .vol files in Source/pSys can be read and
|
||||
modified by CiderPress. CiderPress is able to add and remove
|
||||
individual files.
|
||||
|
||||
## FreeRTOS
|
||||
|
||||
@@ -924,7 +993,7 @@ documents.
|
||||
Note that the build scripts for RomWBW create the default disk images
|
||||
supplied with RomWBW. It is relatively easy to customize the contents of
|
||||
the disk images that are part of RomWBW. This is described in more
|
||||
detail in the Source\\Images directory of the distribution.
|
||||
detail in the Source\Images directory of the distribution.
|
||||
|
||||
## FAT Filesystem Transfers
|
||||
|
||||
@@ -945,7 +1014,7 @@ however. Longer filenames will show up as a truncated version.
|
||||
|
||||
The `FAT` application is not on your ROM disk because it is too large to
|
||||
fit. You will find it on all of the pre-built disk images as well as in
|
||||
the Binary\\Apps directory of the distribution.
|
||||
the Binary\Apps directory of the distribution.
|
||||
|
||||
For advanced users, it is possible to create a hybrid disk that contains
|
||||
CP/M slices at the beginning and a FAT filesystem after. Such a hybrid
|
||||
@@ -953,7 +1022,7 @@ disk can be used to boot an operating system and still have access to
|
||||
FAT files on the FAT portion of the disk. David Reese has prepared a
|
||||
document describing how to do this. It is called
|
||||
“SC126_How-To_No_2\_Preparing_an_SD_Card_for_Use_with_SC126_Rev_1-5.pdf”
|
||||
and can be found in the Doc\\Contrib directory of the distribution.
|
||||
and can be found in the Doc\Contrib directory of the distribution.
|
||||
|
||||
# Startup Command Processing
|
||||
|
||||
@@ -1027,10 +1096,10 @@ images.
|
||||
While John is likely to enhance UNA over time, there are currently a few
|
||||
things that UNA does not support:
|
||||
|
||||
- Floppy Drives
|
||||
- Terminal Emulation
|
||||
- Zeta 1, N8, RC2014, Easy Z80, and Dyno Systems
|
||||
- Some older support boards
|
||||
- Floppy Drives
|
||||
- Terminal Emulation
|
||||
- Zeta 1, N8, RC2014, Easy Z80, and Dyno Systems
|
||||
- Some older support boards
|
||||
|
||||
The UNA version embedded in RomWBW is the latest production release of
|
||||
UNA. RomWBW will be updated with John’s upcoming UNA release with
|
||||
@@ -1136,100 +1205,96 @@ If the disk is bootable, you need to update the system image on the disk
|
||||
using the procedure described below corresponsing to the operating
|
||||
system on your disk.
|
||||
|
||||
- **CP/M 2.2**
|
||||
- **CP/M 2.2**
|
||||
|
||||
Boot to CP/M 2.2 from ROM, then use `SYSCOPY` to update the system
|
||||
image on **all** CP/M 2.2 boot disks/slices. The CP/M 2.2 system
|
||||
image is called CPM.SYS and is found on the ROM disk. For example:
|
||||
Boot to CP/M 2.2 from ROM, then use `SYSCOPY` to update the system
|
||||
image on **all** CP/M 2.2 boot disks/slices. The CP/M 2.2 system image
|
||||
is called CPM.SYS and is found on the ROM disk. For example:
|
||||
|
||||
`B>SYSCOPY C:=CPM.SYS`
|
||||
`B>SYSCOPY C:=CPM.SYS`
|
||||
|
||||
- **ZSDOS**
|
||||
- **ZSDOS**
|
||||
|
||||
Boot to Z-System from ROM, then use `SYSCOPY` to update the system
|
||||
image on **all** ZSDOS boot disks/slices. The ZSDOS system image is
|
||||
called ZSYS.SYS and is found on the ROM disk. For example:
|
||||
Boot to Z-System from ROM, then use `SYSCOPY` to update the system
|
||||
image on **all** ZSDOS boot disks/slices. The ZSDOS system image is
|
||||
called ZSYS.SYS and is found on the ROM disk. For example:
|
||||
|
||||
`B>SYSCOPY C:=ZSYS.SYS`
|
||||
`B>SYSCOPY C:=ZSYS.SYS`
|
||||
|
||||
- **NZCOM**
|
||||
- **NZCOM**
|
||||
|
||||
NZCOM runs on top of either CP/M 2.2 or ZSDOS. By default, the
|
||||
RomWBW disk image for NZCOM uses ZSDOS. Follow the corresponding
|
||||
procedure above to update the system image on the NZCOM boot
|
||||
disks/slices.
|
||||
NZCOM runs on top of either CP/M 2.2 or ZSDOS. By default, the RomWBW
|
||||
disk image for NZCOM uses ZSDOS. Follow the corresponding procedure
|
||||
above to update the system image on the NZCOM boot disks/slices.
|
||||
|
||||
- **CP/M 3**
|
||||
- **CP/M 3**
|
||||
|
||||
CP/M 3 uses a multi-step boot process involving multiple files. The
|
||||
CP/M 3 boot files are not included on the ROM disk due to space
|
||||
constraints. You will need to transfer the files to your system from
|
||||
the RomWBW distribution directory Binary\\CPM3.
|
||||
CP/M 3 uses a multi-step boot process involving multiple files. The
|
||||
CP/M 3 boot files are not included on the ROM disk due to space
|
||||
constraints. You will need to transfer the files to your system from
|
||||
the RomWBW distribution directory Binary\CPM3.
|
||||
|
||||
After this is done, you will need to use `SYSCOPY` to place the CP/M
|
||||
3 loader image on the boot tracks of all CP/M 3 boot disks/slices.
|
||||
The loader image is called `CPMLDR.SYS`. You must then copy (at a
|
||||
minimum) `CPM3.SYS` and `CCP.COM` onto the disk/slice. Assuming you
|
||||
copied the CP/M 3 boot files onto your RAM disk at A:, you would
|
||||
use:
|
||||
After this is done, you will need to use `SYSCOPY` to place the CP/M 3
|
||||
loader image on the boot tracks of all CP/M 3 boot disks/slices. The
|
||||
loader image is called `CPMLDR.SYS`. You must then copy (at a minimum)
|
||||
`CPM3.SYS` and `CCP.COM` onto the disk/slice. Assuming you copied the
|
||||
CP/M 3 boot files onto your RAM disk at A:, you would use:
|
||||
|
||||
A>B:SYSCOPY C:=CPMLDR.SYS
|
||||
A>B:COPY CPM3.SYS C:
|
||||
A>B:COPY CCP.COM C:
|
||||
A>B:SYSCOPY C:=CPMLDR.SYS
|
||||
A>B:COPY CPM3.SYS C:
|
||||
A>B:COPY CCP.COM C:
|
||||
|
||||
- **ZPM3**
|
||||
- **ZPM3**
|
||||
|
||||
ZPM3 uses a multi-step boot process involving multiple files. The
|
||||
ZPM3 boot files are not included on the ROM disk due to space
|
||||
constraints. You will need to transfer the files to your system from
|
||||
the RomWBW distribution directory Binary\\ZPM3.
|
||||
ZPM3 uses a multi-step boot process involving multiple files. The ZPM3
|
||||
boot files are not included on the ROM disk due to space constraints.
|
||||
You will need to transfer the files to your system from the RomWBW
|
||||
distribution directory Binary\ZPM3.
|
||||
|
||||
After this is done, you will need to use `SYSCOPY` to place the ZPM3
|
||||
loader image on the boot tracks of all ZPM3 boot disks/slices. The
|
||||
loader image is called `ZPMLDR.SYS`. You must then copy (at a
|
||||
minimum) `CPM3.SYS`, `ZCCP.COM`, `ZINSTAL.ZPM`, and `STARTZPM.COM`
|
||||
onto the disk/slice. Assuming you copied the ZPM3 boot files onto
|
||||
your RAM disk at A:, you would use:
|
||||
After this is done, you will need to use `SYSCOPY` to place the ZPM3
|
||||
loader image on the boot tracks of all ZPM3 boot disks/slices. The
|
||||
loader image is called `ZPMLDR.SYS`. You must then copy (at a minimum)
|
||||
`CPM3.SYS`, `ZCCP.COM`, `ZINSTAL.ZPM`, and `STARTZPM.COM` onto the
|
||||
disk/slice. Assuming you copied the ZPM3 boot files onto your RAM disk
|
||||
at A:, you would use:
|
||||
|
||||
A>B:SYSCOPY C:=ZPMLDR.SYS
|
||||
A>B:COPY CPM3.SYS C:
|
||||
A>B:COPY ZCCP.COM C:
|
||||
A>B:COPY ZINSTAL.ZPM C:
|
||||
A>B:COPY STARTZPM.COM C:
|
||||
A>B:SYSCOPY C:=ZPMLDR.SYS
|
||||
A>B:COPY CPM3.SYS C:
|
||||
A>B:COPY ZCCP.COM C:
|
||||
A>B:COPY ZINSTAL.ZPM C:
|
||||
A>B:COPY STARTZPM.COM C:
|
||||
|
||||
You may be wondering if the reference to `CPM3.SYS` is a typo. It is
|
||||
not. The ZPM3 main system code file is called `CPM3.SYS` which is
|
||||
the same name as CP/M 3 uses, but the file contents are not the
|
||||
same.
|
||||
You may be wondering if the reference to `CPM3.SYS` is a typo. It is
|
||||
not. The ZPM3 main system code file is called `CPM3.SYS` which is the
|
||||
same name as CP/M 3 uses, but the file contents are not the same.
|
||||
|
||||
Finally, if you have copies of any of the RomWBW custom applications on
|
||||
your hard disk, you need to update them with the latest copies. The
|
||||
following applications are found on your ROM disk. Use COPY to copy them
|
||||
over any older versions of the app on your disk:
|
||||
|
||||
- ASSIGN.COM
|
||||
- SYSCOPY.COM
|
||||
- MODE.COM
|
||||
- FDU.COM (was FDTST.COM)
|
||||
- FORMAT.COM
|
||||
- XM.COM
|
||||
- FLASH.COM
|
||||
- FDISK80.COM
|
||||
- TALK.COM
|
||||
- RTC.COM
|
||||
- TIMER.COM
|
||||
- INTTEST.COM
|
||||
- ASSIGN.COM
|
||||
- SYSCOPY.COM
|
||||
- MODE.COM
|
||||
- FDU.COM (was FDTST.COM)
|
||||
- FORMAT.COM
|
||||
- XM.COM
|
||||
- FLASH.COM
|
||||
- FDISK80.COM
|
||||
- TALK.COM
|
||||
- RTC.COM
|
||||
- TIMER.COM
|
||||
- INTTEST.COM
|
||||
|
||||
For example: `B>COPY ASSIGN.COM C:`
|
||||
|
||||
Some RomWBW custom applications are too large to fit on the ROM disk. If
|
||||
you are using any of these you will need to transfer them to your system
|
||||
and then update all copies. These applications are found in the
|
||||
Binary\\Apps directory of the distribution and in all of the disk
|
||||
images.
|
||||
Binary\Apps directory of the distribution and in all of the disk images.
|
||||
|
||||
- FAT.COM
|
||||
- TUNE.COM
|
||||
- FAT.COM
|
||||
- TUNE.COM
|
||||
|
||||
## System Update
|
||||
|
||||
@@ -1243,11 +1308,11 @@ and CP/M system.
|
||||
A System Update may be more favorable than a System Upgrade in cases
|
||||
such as:
|
||||
|
||||
- Overwriting of the ROM drive is not desired.
|
||||
- Space is unavailable to hold a full ROMWBW ROM.
|
||||
- To mimimize time taken to transfer and flash a full ROM.
|
||||
- Configuration changes are only minor and do not impact disk
|
||||
applications.
|
||||
- Overwriting of the ROM drive is not desired.
|
||||
- Space is unavailable to hold a full ROMWBW ROM.
|
||||
- To mimimize time taken to transfer and flash a full ROM.
|
||||
- Configuration changes are only minor and do not impact disk
|
||||
applications.
|
||||
|
||||
The ROMWBW build process generates a system upgrade file along with the
|
||||
normal ROM image and can be identified by the extension “.upd”. It will
|
||||
@@ -1298,22 +1363,22 @@ continue the maintenance of these applications and they have become
|
||||
unusable due to changes within RomWBW. As of RomWBW 2.6, these
|
||||
applications are no longer provided.
|
||||
|
||||
- David Giles contributed support for the CSIO support in the SD Card
|
||||
driver.
|
||||
- Ed Brindley contributed some of the code that supports the RC2014
|
||||
platform.
|
||||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the
|
||||
AY-3-8910 sound driver as well as a long list of general code
|
||||
enhancements.
|
||||
- Phillip Stevens contributed support for FreeRTOS.
|
||||
- Curt Mayer contributed the original Linux / MacOS build process.
|
||||
- UNA BIOS and FDISK80 are the products of John Coffman.
|
||||
- FLASH4 is a product of Will Sowerbutts.
|
||||
- CLRDIR is a product of Max Scane.
|
||||
- Tasty Basic is a product of Dimitri Theulings.
|
||||
- Dean Netherton contributed the sound driver interface and the
|
||||
SN76489 sound driver.
|
||||
- The RomWBW Disk Catalog document was produced by Mykl Orders.
|
||||
- David Giles contributed support for the CSIO support in the SD Card
|
||||
driver.
|
||||
- Ed Brindley contributed some of the code that supports the RC2014
|
||||
platform.
|
||||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the
|
||||
AY-3-8910 sound driver as well as a long list of general code
|
||||
enhancements.
|
||||
- Phillip Stevens contributed support for FreeRTOS.
|
||||
- Curt Mayer contributed the original Linux / MacOS build process.
|
||||
- UNA BIOS and FDISK80 are the products of John Coffman.
|
||||
- FLASH4 is a product of Will Sowerbutts.
|
||||
- CLRDIR is a product of Max Scane.
|
||||
- Tasty Basic is a product of Dimitri Theulings.
|
||||
- Dean Netherton contributed the sound driver interface and the SN76489
|
||||
sound driver.
|
||||
- The RomWBW Disk Catalog document was produced by Mykl Orders.
|
||||
|
||||
Contributions of all kinds to RomWBW are very welcome.
|
||||
|
||||
@@ -1364,12 +1429,11 @@ All contributions to RomWBW are subject to this license.
|
||||
The best way to get assistance with RomWBW or any aspect of the
|
||||
RetroBrew Computers projects is via 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)
|
||||
- [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).
|
||||
|
||||
198
ReadMe.txt
198
ReadMe.txt
@@ -1,6 +1,6 @@
|
||||
RomWBW Getting Started
|
||||
Wayne Warthen (mailto:wwarthen@gmail.com)
|
||||
21 Mar 2022
|
||||
13 Jan 2023
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ RomWBW
|
||||
Z80/Z180 System Software
|
||||
|
||||
Version 3.1 Pre-release
|
||||
21 Mar 2022
|
||||
13 Jan 2023
|
||||
|
||||
Wayne Warthen wwarthen@gmail.com
|
||||
|
||||
@@ -213,15 +213,23 @@ disk devices.
|
||||
|
||||
The following ROM applications are available at the boot loader prompt:
|
||||
|
||||
Application
|
||||
-------------- --------------------------------------------------------
|
||||
Monitor Z80 system debug monitor w/ Intel Hex loader
|
||||
Forth Brad Rodriguez’s ANSI compatible Forth language
|
||||
Basic Nascom 8K BASIC language
|
||||
Tasty BASIC Dimitri Theuling’s Tiny BASIC implementation
|
||||
Play A simple video game (requires ANSI terminal emulation)
|
||||
Network Boot Boot through Wiznet MT011 device
|
||||
Flash Update Upload and flash a new ROMWBW image using xmodem
|
||||
--------------------------------------------------------------------------
|
||||
Application
|
||||
------------- ------------------------------------------------------------
|
||||
Monitor Z80 system debug monitor w/ Intel Hex loader
|
||||
|
||||
Forth Brad Rodriguez’s ANSI compatible Forth language
|
||||
|
||||
Basic Nascom 8K BASIC language
|
||||
|
||||
Tasty BASIC Dimitri Theuling’s Tiny BASIC implementation
|
||||
|
||||
Play A simple video game (requires ANSI terminal emulation)
|
||||
|
||||
Network Boot Boot through Wiznet MT011 device
|
||||
|
||||
Flash Update Upload and flash a new ROMWBW image using xmodem
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
In general, the command to exit these applications and restart the
|
||||
system is BYE. The exceptions are the Monitor which uses B and Play
|
||||
@@ -299,26 +307,20 @@ VDU type devices or serial devices. If you want to change which device
|
||||
is the console, the I menu option can be used to choose the unit and
|
||||
it’s speed.
|
||||
|
||||
The command format is I <u> [<c>]
|
||||
The command format is I <u> [<b>]
|
||||
|
||||
where u is unit to select and c is the optional baud rate code as listed
|
||||
below.
|
||||
where u is unit to select and b is the optional baud rate.
|
||||
|
||||
Code | Rate | Code | Rate | Code | Rate | Code | Rate |
|
||||
------|----------|------|----------|------|----------|------|----------|
|
||||
0 | 75 | 8 | 1800 | 16 | 28880 | 24 | 460800 |
|
||||
1 | 150 | 9 | 2400 | 17 | 38400 | 25 | 614400 |
|
||||
2 | 225 | 10 | 3600 | 18 | 57600 | 26 | 921600 |
|
||||
3 | 300 | 11 | 4800 | 19 | 76800 | 27 | 1228822 |
|
||||
4 | 450 | 12 | 7200 | 20 | 115200 | 28 | 1843200 |
|
||||
5 | 600 | 13 | 9600 | 21 | 153600 | 29 | 2457600 |
|
||||
6 | 900 | 14 | 14400 | 22 | 230400 | 30 | 3686400 |
|
||||
7 | 1200 | 15 | 19200 | 23 | 307200 | 31 | 7372800 |
|
||||
------------------------------------------------------------------------
|
||||
Supported baud rates are:
|
||||
|
||||
75 450 1800 7200 38400 115200 460800 1843200
|
||||
150 600 2400 9600 28800 153600 614400 2457600
|
||||
225 900 3600 14400 57600 230400 921600 3686400
|
||||
300 1200 4800 19200 76800 307200 1228800 7372800
|
||||
|
||||
Example: To change current console to 9600 baud
|
||||
|
||||
I 0 13
|
||||
I 0 9600
|
||||
|
||||
Drive Letter Assignment
|
||||
|
||||
@@ -430,11 +432,11 @@ the OS variants included with RomWBW.
|
||||
The following custom applications are found on the ROM disk and are,
|
||||
therefore, globally available.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------
|
||||
Application Description
|
||||
------------- ---------------------------------------------------------------
|
||||
ASSIGN Add, change, and delete drive letter assignments. Use ASSIGN /?
|
||||
for usage instructions.
|
||||
------------- --------------------------------------------------------------
|
||||
ASSIGN Add, change, and delete drive letter assignments. Use ASSIGN
|
||||
/? for usage instructions.
|
||||
|
||||
SYSCOPY Copy system image to a device to make it bootable. Use SYSCOPY
|
||||
with no parms for usage instructions.
|
||||
@@ -446,8 +448,8 @@ therefore, globally available.
|
||||
FORMAT Will someday be a command line tool to format floppy disks.
|
||||
Currently does nothing!
|
||||
|
||||
XM XModem file transfer program adapted to hardware. Automatically
|
||||
uses primary serial port on system.
|
||||
XM XModem file transfer program adapted to hardware.
|
||||
Automatically uses primary serial port on system.
|
||||
|
||||
FLASH Will Sowerbutts’ in-situ ROM programming utility.
|
||||
|
||||
@@ -461,17 +463,21 @@ therefore, globally available.
|
||||
TIMER Display value of running periodic system timer.
|
||||
|
||||
CPUSPD Change the running CPU speed and wait states of the system.
|
||||
-----------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Some custom applications do not fit on the ROM disk. They are found on
|
||||
the disk image files or the individual files can be found in the
|
||||
Binary\Apps directory of the distribution.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
Application Description
|
||||
------------- -------------------------------------------------------------
|
||||
------------- ------------------------------------------------------------
|
||||
TUNE Play .PT2, .PT3, .MYM audio files.
|
||||
|
||||
FAT Access MS-DOS FAT filesystems from RomWBW (based on FatFs).
|
||||
|
||||
INTTEST Test interrupt vector hooking.
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Additional documentation on all of these applications can be found in
|
||||
“RomWBW Applications.pdf” in the Doc directory of the distribution.
|
||||
@@ -499,6 +505,15 @@ well. However, you will find some files on the ROM disk that will work
|
||||
with ZSDOS, but will not work on CP/M 2.2. For example, LDDS, which
|
||||
loads the ZSDOS date/time stamper will only run on ZSDOS.
|
||||
|
||||
Flash ROM Disks
|
||||
|
||||
The limitation of ROM disks being read only can be overcome on some
|
||||
platforms with the appropriate selection of Flash ROM chip and system
|
||||
configuration. In this case the flash-file system can be enabled which
|
||||
will allow the ROM disk to be read and written to. Flash devices have a
|
||||
limited write lifespan and continual usage will eventually wear out the
|
||||
device. It is not suited for high usage applications.
|
||||
|
||||
Disk Devices
|
||||
|
||||
While the RAM/ROM disks provide a functional system, they are not useful
|
||||
@@ -667,14 +682,21 @@ The following table shows the disk image files available. Note that the
|
||||
images in the “Hard” column are fine for use on CF Cards, SD Cards, as
|
||||
well as real spinning hard disks.
|
||||
|
||||
Floppy Hard Description
|
||||
-------------- -------------- ------------------------------
|
||||
fd_cpm22.img hd_cpm22.img DRI CP/M 2.2 boot disk
|
||||
fd_zsdos.img hd_zsdos.img ZSDOS 1.1 boot disk
|
||||
fd_nzcom.img hd_nzcom.img NZCOM boot disk
|
||||
fd_cpm3.img hd_cpm3.img DRI CP/M 3 boot disk
|
||||
fd_zpm3.img hd_zpm3.img ZPM3 boot disk
|
||||
fd_ws4.img hd_ws4.img WordStar v4 application disk
|
||||
-----------------------------------------------------------------------
|
||||
Floppy Hard Description
|
||||
--------------- --------------- ---------------------------------------
|
||||
fd_cpm22.img hd_cpm22.img DRI CP/M 2.2 boot disk
|
||||
|
||||
fd_zsdos.img hd_zsdos.img ZSDOS 1.1 boot disk
|
||||
|
||||
fd_nzcom.img hd_nzcom.img NZCOM boot disk
|
||||
|
||||
fd_cpm3.img hd_cpm3.img DRI CP/M 3 boot disk
|
||||
|
||||
fd_zpm3.img hd_zpm3.img ZPM3 boot disk
|
||||
|
||||
fd_ws4.img hd_ws4.img WordStar v4 application disk
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
In addition to the disk images above, there is also a special hard disk
|
||||
image called hd_combo.img. This image contains all of the images above,
|
||||
@@ -685,14 +707,21 @@ system options.
|
||||
|
||||
This is the layout of the hd_combo disk image:
|
||||
|
||||
Slice Description
|
||||
--------- ------------------------------
|
||||
Slice 0 DRI CP/M 2.2 boot disk
|
||||
Slice 1 ZSDOS 1.1 boot disk
|
||||
Slice 2 NZCOM boot disk
|
||||
Slice 3 DRI CP/M 3 boot disk
|
||||
Slice 4 ZPM3 boot disk
|
||||
Slice 5 WordStar v4 application disk
|
||||
------------------------------------------------------------------------
|
||||
Slice Description
|
||||
------- ----------------------------------------------------------------
|
||||
Slice 0 DRI CP/M 2.2 boot disk
|
||||
|
||||
Slice 1 ZSDOS 1.1 boot disk
|
||||
|
||||
Slice 2 NZCOM boot disk
|
||||
|
||||
Slice 3 DRI CP/M 3 boot disk
|
||||
|
||||
Slice 4 ZPM3 boot disk
|
||||
|
||||
Slice 5 WordStar v4 application disk
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Note that unlike the ROM firmware, you do not need to choose a disk
|
||||
image specific to your hardware. Because the RomWBW firmware provides a
|
||||
@@ -707,6 +736,11 @@ boot from disk as is. You do not need to run SYSCOPY on them to make
|
||||
them bootable. However, if you upgrade your ROM, you should use SYSCOPY
|
||||
to update the system tracks.
|
||||
|
||||
A full implementation of the UCSD p-System for Z80 under RomWBW is also
|
||||
provided. This is a completely separate and standalone disk image called
|
||||
psys.img. It contains 6 p-System filesystem slices, but these are not
|
||||
interoperable with the CP/M slices described above.
|
||||
|
||||
Booting Disks
|
||||
|
||||
When starting your system, following the hardware initialization, you
|
||||
@@ -887,6 +921,70 @@ Notes
|
||||
distribution. I believe it was done this way to make it easier for
|
||||
users to transition from CP/M 3 to ZPM3.
|
||||
|
||||
QPM
|
||||
|
||||
QPM is another OS providing compatibility with and enhancements to CP/M
|
||||
2.2. It is provided as bootable disk images for RomWBW.
|
||||
|
||||
The following documentation files from the original QPM distribution are
|
||||
included in the RomWBW Doc directory:
|
||||
|
||||
- QP/M 2.7 Features and Facilities (qcp27.pdf)
|
||||
- QP/M 2.7 Interface Guide (qdos27.pdf)
|
||||
- QP/M 2.7 Installation Guide and Supplements (qpm27.pdf)
|
||||
|
||||
Refer to the ReadMe.txt file in Source/Images/d_qpm for more details
|
||||
regarding the RomWBW adaptation and customizations.
|
||||
|
||||
Notes
|
||||
|
||||
- QPM is not available as source. This implementation was based on the
|
||||
QPM binary distribution and has been minimally customized for
|
||||
RomWBW.
|
||||
|
||||
- QINSTALL is used to customize QPM. It is included on the disk image.
|
||||
You should review the notes in the ReadMe.txt file in
|
||||
Source/Image/d_qpm before making changes.
|
||||
|
||||
UCSD p-System
|
||||
|
||||
This is a full implementation of the UCSD p-System IV.0 for Z80 running
|
||||
under RomWBW. Unlike the OSes above, p-System uses it’s own unique
|
||||
filesystem and is not interoperable with other OSes.
|
||||
|
||||
It was derived from the p-System Adaptable Z80 System. Unlike some other
|
||||
distributions, this implements a native p-System Z80 BIOS, it does not
|
||||
rely on a CP/M BIOS layer.
|
||||
|
||||
The p-System is provided on a hard disk image file called psys.img. This
|
||||
must be copied to it’s own dedicated hard disk media (CF Card, SD Card,
|
||||
etc.). It is booted by selecting slices 0 of the corresponding hard disk
|
||||
unit at the RomWBW Boot Loader prompt.
|
||||
|
||||
The p-System Users Manual is included in the Doc directory of the
|
||||
distribution as “UCSD p-System Users Manual.pdf”.
|
||||
|
||||
Refer to the ReadMe.txt file in Source/pSys for more details.
|
||||
|
||||
Notes
|
||||
|
||||
- There is no floppy support at this time.
|
||||
|
||||
- The hard disk image contains 6 p-System slices which are assigned to
|
||||
p-System unit numbers 4, 5, 9, 10, 11 which is standard for
|
||||
p-System. Slices 0-5 are assigned sequentially to these p-System
|
||||
unit numbers and it is not possible to reassign them.
|
||||
|
||||
- p-System relies heavily on the use of a full screen terminal. This
|
||||
implementation has been setup to expect an ANSI or DEC VT-100
|
||||
terminal or emulator. The screen output will be garbled if no such
|
||||
terminal or emulator is used for console output.
|
||||
|
||||
- There is no straightforward mechanism to move files in and out of
|
||||
p-System. However, the .vol files in Source/pSys can be read and
|
||||
modified by CiderPress. CiderPress is able to add and remove
|
||||
individual files.
|
||||
|
||||
FreeRTOS
|
||||
|
||||
Phillip Stevens has ported FreeRTOS to run under RomWBW. FreeRTOS is not
|
||||
|
||||
14
Readme.unix
14
Readme.unix
@@ -34,13 +34,11 @@ By default, this will generate all of the standard configurations of
|
||||
RomWBW for all platforms. If you just want to build the ROM for a
|
||||
specific platform and configuration you can use
|
||||
|
||||
make ROM_PLATFORM=<platform> ROM_CONFIG=<config> [ROMSIZE=<size>]
|
||||
make ROM_PLATFORM=<platform> ROM_CONFIG=<config>
|
||||
|
||||
where <platform> is one of the supported platforms such as SBC, RCZ80,
|
||||
etc. and <config> is a configuration of that platform. A ROM size may
|
||||
optionally be specified and must be one of 128, 256, 512, or 1024. It
|
||||
defaults to 512. For example, to build the "126" configuration of
|
||||
the "SCZ180" platform:
|
||||
etc. and <config> is a configuration of that platform. For example,
|
||||
to build the "126" configuration of the "SCZ180" platform:
|
||||
|
||||
make ROM_PLATFORM=SCZ180 ROM_CONFIG=126
|
||||
|
||||
@@ -77,7 +75,7 @@ running. To disable this feature:
|
||||
DISCLAIMER: You do this at your own risk. I highly recommend that you
|
||||
return the settings back to normal immediately after doing a build.
|
||||
|
||||
Heavy use is made of make's include facility and pattern rules. the
|
||||
Heavy use is made of make's include facility and pattern rules. The
|
||||
master rule set is in Tools/Makefile.inc. Changes here will affect
|
||||
almost every Makefile, and where exceptions are needed, the overrides
|
||||
are applied in the lower Makefiles.
|
||||
@@ -101,10 +99,10 @@ Credit:
|
||||
hacked to do case-insensitivity. These are not marked, and are
|
||||
not extensive.
|
||||
|
||||
zx is from the distributed version, and also has local hacks
|
||||
zxcc is from the distributed version, and also has local hacks
|
||||
for case insensitivity.
|
||||
|
||||
Both zx and cpmtools ship with an overly complicated makefile
|
||||
Both zxcc and cpmtools ship with an overly complicated makefile
|
||||
generation system and this is ignored.
|
||||
|
||||
This whole Linux build framework is the work of Curt Mayer,
|
||||
|
||||
329
Source/Apps/TEST/sound/Scales.asm
Normal file
329
Source/Apps/TEST/sound/Scales.asm
Normal file
@@ -0,0 +1,329 @@
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; PLAY SCALES USING HBIOS
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
FCB .EQU $5C ; Location of default FCB
|
||||
BDOS .EQU $0005
|
||||
;
|
||||
.ORG $0100
|
||||
;
|
||||
LD (OLDSTACK),SP ; save old stack pointer
|
||||
LD SP,STACK ; set new stack pointer
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; GET DEVICE # FROM COMMAND LINE
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
LD A,(FCB+1) ; GET FIRST CHAR
|
||||
SUB ' '
|
||||
JR Z,NO_ARG
|
||||
SUB '0'-' '
|
||||
JP C,EXIT
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; DISPLAY DEVICE AND NUMBER OF CHANNELS
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
NO_ARG: LD (DEVICE),A ;
|
||||
LD DE,TXT_DEV ; DEVICE:
|
||||
CALL PRTSTR
|
||||
CALL PRTDECB
|
||||
LD C,A ; GET DEVICE ID
|
||||
LD A,':'
|
||||
CALL PRTCHR
|
||||
LD B,$55
|
||||
PUSH BC
|
||||
LD E,4
|
||||
RST 08
|
||||
LD DE,TXT_NAME
|
||||
LD A,B
|
||||
RRCA \ RRCA \ RRCA \ RRCA
|
||||
CALL PRTIDXDEA ; SHOW NAME
|
||||
LD DE,TXT_CH
|
||||
CALL PRTSTR
|
||||
;
|
||||
POP BC ; GET & DISPLAY # CHANNELS
|
||||
LD E,1
|
||||
RST 08
|
||||
LD A,B
|
||||
CALL PRTDECB
|
||||
CALL CRLF ; NUMBER OF CHANNELS IS IN B
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; LOOP THROUGH EACH CHANNEL
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
CH__TONE: LD A,(DEVICE) ; C CONTAINS DEVICE
|
||||
LD C,A ; THROUGH THIS LOOP
|
||||
;
|
||||
PUSH BC
|
||||
LD B,50H ; RESET DEVICE
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
PUSH BC
|
||||
LD B,51H ; VOLUME FULL
|
||||
LD L,0FFH
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
LD A,B
|
||||
TST_TONE_LP: DEC A
|
||||
LD (CHANNEL),A ; SAVE CURRENT CHANNEL
|
||||
CALL TST_SCALES ; SCALES TEST
|
||||
; CALL TST_VOLUME ; VOLUME TEST
|
||||
CALL CRLF
|
||||
DJNZ TST_TONE_LP
|
||||
;
|
||||
PUSH BC
|
||||
LD B,50H ; RESET DEVICE
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; RESTORE STACK & EXIT
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
EXIT: LD SP, (OLDSTACK) ; Exit to CP/M
|
||||
RST 00H
|
||||
DI
|
||||
HALT
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; PLAY SCALES FROM HIGHEST HBIOS NOTE TO LOWEST
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
TST_SCALES: PUSH BC
|
||||
PUSH AF
|
||||
;
|
||||
LD HL,380 ; START NOTE
|
||||
LD (NOTE),HL ; Top of Octave 7 is 343
|
||||
|
||||
LD B,51H ; VOLUME HIGH
|
||||
LD L,0FFH
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
NEXT0: PUSH BC
|
||||
;
|
||||
LD DE,TXT_TSTCH ; DISPLAY CHANNEL
|
||||
CALL PRTSTR
|
||||
LD A,(CHANNEL)
|
||||
CALL PRTDECB
|
||||
;
|
||||
LD DE,TXT_NOTE ; DISPLAY NOTE
|
||||
CALL PRTSTR
|
||||
LD HL,(NOTE)
|
||||
CALL PRTDECW
|
||||
POP BC
|
||||
;
|
||||
LD B,53H ; SET NOTE
|
||||
LD HL,(NOTE)
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
|
||||
OR A ; DID DRIVER FAIL
|
||||
JR Z,NEXT4 ; THIS NOTE ?
|
||||
|
||||
LD DE,TXT_BAD_N
|
||||
CALL FAILMSG
|
||||
JR SKIP
|
||||
;
|
||||
NEXT4: LD B,57H ; DURATION
|
||||
LD HL,1000
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
|
||||
LD B,54H ; PLAY
|
||||
LD A,(CHANNEL)
|
||||
LD D,A
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
OR A ; DID DRIVER FAIL
|
||||
JR Z,NEXT2 ; TO PLAY ?
|
||||
|
||||
LD DE,TXT_BAD_N
|
||||
CALL FAILMSG
|
||||
JR SKIP
|
||||
;
|
||||
NEXT2: CALL DELAY
|
||||
CALL CRLF
|
||||
;
|
||||
SKIP: LD HL,(NOTE)
|
||||
DEC HL
|
||||
LD (NOTE),HL
|
||||
|
||||
INC HL
|
||||
LD A,H
|
||||
OR L
|
||||
DEC HL
|
||||
JR NZ,NEXT0
|
||||
;
|
||||
LD B,51H ; VOLUME
|
||||
LD L,00H ; OFF
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
LD B,54H ; PLAY
|
||||
LD A,(CHANNEL)
|
||||
LD D,A
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
|
||||
PUSH BC
|
||||
LD C, 6 ; check for keypress
|
||||
LD E,0FFH
|
||||
CALL BDOS
|
||||
POP BC
|
||||
OR A
|
||||
JP NZ,EXIT
|
||||
|
||||
POP AF
|
||||
POP BC
|
||||
;
|
||||
RET
|
||||
;
|
||||
FAILMSG: PUSH AF
|
||||
PUSH BC
|
||||
CALL PRTSTR
|
||||
CALL CRLF
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; CONSTANT TONE ON ALL CHANNELS, SCALE VOLUME
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
TST_VOLUME:
|
||||
LD HL,332+48 ; TONE
|
||||
LD (NOTE),HL
|
||||
;
|
||||
LD B,3
|
||||
NEXTCH1 LD A,B
|
||||
DEC A
|
||||
LD (CHANNEL),A
|
||||
PUSH BC ; ACROSS
|
||||
CALL TONE ; ALL
|
||||
|
||||
LD C, 6 ; KEYPRESS
|
||||
LD E, 0FFH
|
||||
CALL BDOS
|
||||
POP BC ; CHANNELS
|
||||
|
||||
OR A
|
||||
JP NZ,EXIT
|
||||
|
||||
DJNZ NEXTCH1
|
||||
|
||||
RET
|
||||
|
||||
TONE: LD A,(DEVICE)
|
||||
LD C,A
|
||||
|
||||
LD B,50H ; RESET
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
NEXT1: LD B,51H ; VOLUME
|
||||
LD A,(VOLUME)
|
||||
LD L,A
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
LD B,53H ; NOTE
|
||||
LD HL,(NOTE)
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
LD B,54H ; PLAY
|
||||
LD A,(CHANNEL)
|
||||
LD D,A
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
CALL DELAY
|
||||
;
|
||||
LD A,(VOLUME)
|
||||
DEC A
|
||||
LD (VOLUME),A
|
||||
JR NZ,NEXT1
|
||||
;
|
||||
LD B,51H ; VOLUME
|
||||
LD L,00H
|
||||
PUSH BC
|
||||
RST 08
|
||||
POP BC
|
||||
;
|
||||
LD B,54H ; PLAY
|
||||
PUSH BC
|
||||
LD A,(CHANNEL)
|
||||
LD D,A
|
||||
POP BC
|
||||
RST 08
|
||||
;
|
||||
RET
|
||||
;;
|
||||
;------------------------------------------------------------------------------
|
||||
; LONG DELAY
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
DELAY: LD HL,-1
|
||||
DELAY1: DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,DELAY1
|
||||
RET
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY 0
|
||||
; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS
|
||||
; TO THE START OF THE STRING LIST.
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
PRTIDXDEA: LD C,A
|
||||
OR A
|
||||
PRTIDXDEA1: JR Z,PRTIDXDEA3 ; FOUND TARGET SO EXIT
|
||||
PRTIDXDEA2: LD A,(DE) ; LOOP UNIT
|
||||
INC DE ; WE REACH
|
||||
OR A ; END OF STRING
|
||||
JR NZ,PRTIDXDEA2
|
||||
DEC C ; AT STRING END. SO GO
|
||||
JR PRTIDXDEA1 ; CHECK FOR INDEX MATCH
|
||||
PRTIDXDEA3: CALL PRTSTR ; DISPLAY THE STRING
|
||||
RET
|
||||
;
|
||||
#INCLUDE "printing.inc"
|
||||
;
|
||||
TXT_CH .DB "CHANNELS: ",0
|
||||
TXT_TSTCH .DB "CHANNEL: ",0
|
||||
TXT_BAD_N .DB " BAD NOTE",0
|
||||
TXT_BAD_P .DB " PLAY ERROR",0
|
||||
TXT_NOTE .DB " NOTE: ",0
|
||||
TXT_DEV .DB "DEVICE: ",0
|
||||
TXT_NAME .DB "SN76489 ",0
|
||||
.DB "AY-3-8910 ",0
|
||||
.DB "I/O PORT ",0
|
||||
.DB "YM2612 ",0
|
||||
MODE .DB 0 ; scales mode or volume mode
|
||||
DEVICE .DB 0
|
||||
NOTE .DW 128
|
||||
VOLUME .DB 0
|
||||
CHANNEL .DB 0
|
||||
OLDSTACK .DW 0 ; original stack pointer
|
||||
.DS 40H ; space for stack
|
||||
STACK ; top of stack
|
||||
;
|
||||
.END
|
||||
@@ -34,6 +34,7 @@ PRTCR:
|
||||
; Print a zero terminated string at (DE) without destroying any registers
|
||||
;
|
||||
PRTSTR:
|
||||
PUSH AF
|
||||
PUSH DE
|
||||
;
|
||||
PRTSTR1:
|
||||
@@ -46,6 +47,7 @@ PRTSTR1:
|
||||
;
|
||||
PRTSTR2:
|
||||
POP DE ; restore registers
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
; Print the value in A in hex without destroying any registers
|
||||
|
||||
@@ -6,6 +6,7 @@ set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF -dWBW vgmplay.asm vgmplay.com vgmplay.lst || exit /b
|
||||
tasm -t180 -g3 -fFF -dWBW ymfmdemo.asm ymfmdemo.com ymfmdemo.lst || exit /b
|
||||
|
||||
copy /Y vgmplay.com ..\..\..\Binary\Apps\ || exit /b
|
||||
copy /Y Tunes\*.* ..\..\..\Binary\Apps\Tunes\ || exit /b
|
||||
copy /Y Tunes\*.vgm ..\..\..\Binary\Apps\Tunes\ || exit /b
|
||||
|
||||
@@ -10,6 +10,9 @@ DEPS := vgmplay.asm $(shell find . -name '*.inc')
|
||||
vgmplay.com: $(DEPS)
|
||||
$(TASM) -dWBW vgmplay.asm vgmplay.com vgmplay.lst
|
||||
|
||||
ym2612.com:
|
||||
$(TASM) -dWBW ymfmdemo.asm ymfmdemo.com ymfmdemo.lst
|
||||
|
||||
all::
|
||||
mkdir -p $(DEST)/Tunes
|
||||
cp Tunes/* $(DEST)/Tunes
|
||||
cp Tunes/*.vgm $(DEST)/Tunes
|
||||
|
||||
BIN
Source/Apps/VGM/Tunes/More/aggress.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/More/aggress.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/More/anna.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/More/anna.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/More/bgm.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/More/bgm.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/More/descent.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/More/descent.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/More/fieldmap.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/More/fieldmap.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/More/qix.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/More/qix.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/More/startdem.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/More/startdem.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/More/teddy.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/More/teddy.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/bgm.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/bgm.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/ending.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/ending.vgm
Normal file
Binary file not shown.
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/inchina.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/inchina.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/shirakaw.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/shirakaw.vgm
Normal file
Binary file not shown.
BIN
Source/Apps/VGM/Tunes/startdem.vgm
Normal file
BIN
Source/Apps/VGM/Tunes/startdem.vgm
Normal file
Binary file not shown.
@@ -34,6 +34,7 @@ PRTCR:
|
||||
; Print a zero terminated string at (DE) without destroying any registers
|
||||
;
|
||||
PRTSTR:
|
||||
PUSH AF
|
||||
PUSH DE
|
||||
;
|
||||
PRTSTR1:
|
||||
@@ -46,6 +47,7 @@ PRTSTR1:
|
||||
;
|
||||
PRTSTR2:
|
||||
POP DE ; restore registers
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
; Print the value in A in hex without destroying any registers
|
||||
|
||||
@@ -9,122 +9,173 @@
|
||||
; YM2151 support from Ed Brindley
|
||||
;
|
||||
; YM2162/YM3484, GD3 support, VGM Chip identification,
|
||||
; default file type, basic file size checking added by Phil Summers
|
||||
; default file type, basic file size checking, polled CTC mode
|
||||
; added by Phil Summers
|
||||
;
|
||||
; Bugs: YM2151 playback untested & no mute.
|
||||
; CTC polled timing - predicted 44100 divider is too slow
|
||||
;
|
||||
; Assemble with:
|
||||
;
|
||||
; TASM -80 -b VGMPLAY.ASM VGMPLAY.COM
|
||||
;
|
||||
;
|
||||
; A VGM file can play 44100 samples a second. This may be sound chip
|
||||
; register commands or PCM data. This player does not support PCM playback
|
||||
; due to the high processor speed and file size required. Typical VGM files
|
||||
; available use a much lower sample rate and are playable. Where the processor
|
||||
; speed is low and the sample rate is high, the playback overhead will cause
|
||||
; playback speed to be inaccurate.
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Device and system specific definitions
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
P8X180 .EQU 0 ; System configuration
|
||||
RC2014 .EQU 0
|
||||
SBCECB .EQU 1
|
||||
MBC .EQU 0
|
||||
custom .equ 0 ; System configurations
|
||||
P8X180 .equ 1
|
||||
RC2014 .equ 2
|
||||
sbcecb .equ 3
|
||||
MBC .equ 4
|
||||
;
|
||||
.IF P8X180
|
||||
RSEL .EQU 82H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 83H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .EQU 88H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .EQU 89H ; Secondary AY-3-8910 Register data
|
||||
PSG1REG .EQU 84H ; Primary SN76489
|
||||
PSG2REG .EQU 8AH ; Secondary SN76489
|
||||
YM2151_SEL1 .EQU 0B0H ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .EQU 0B1H ; Primary YM2151 register data
|
||||
YM2151_SEL2 .EQU 0B2H ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .EQU 0B3H ; Secondary YM2151 register data
|
||||
FRAME_DLY .EQU 48 ; Frame delay (~ 1/44100)
|
||||
.ENDIF
|
||||
plt_romwbw .equ 1 ; Build for ROMWBW?
|
||||
plt_type .equ sbcecb ; Select build configuration
|
||||
debug .equ 0 ; Display port, register, config info
|
||||
;
|
||||
.IF RC2014
|
||||
RSEL .EQU 0D8H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 0D0H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .EQU 0A0H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .EQU 0A1H ; Secondary AY-3-8910 Register data
|
||||
PSG1REG .EQU 0FFH ; Primary SN76489
|
||||
PSG2REG .EQU 0FBH ; Secondary SN76489
|
||||
YM2151_SEL1 .EQU 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .EQU 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .EQU 0D0H ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .EQU 0D1H ; Secondary YM2151 register data
|
||||
FRAME_DLY .EQU 15 ; Frame delay (~ 1/44100)
|
||||
.ENDIF
|
||||
#IF (plt_type=custom)
|
||||
RSEL .equ 09AH ; Primary AY-3-8910 Register selection
|
||||
RDAT .equ 09BH ; Primary AY-3-8910 Register data
|
||||
RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .equ 89H ; Secondary AY-3-8910 Register data
|
||||
VGMBASE .equ $C0
|
||||
YMSEL .equ VGMBASE+00H ; Primary YM2162 11000000 a1=0 a0=0
|
||||
YMDAT .equ VGMBASE+01H ; Primary YM2162 11000001 a1=0 a0=1
|
||||
YM2SEL .equ VGMBASE+02H ; Secondary YM2162 11000010 a1=1 a0=0
|
||||
YM2DAT .equ VGMBASE+03H ; Secondary YM2162 11000011 a1=1 a0=1
|
||||
PSG1REG .equ VGMBASE+08H ; Primary SN76489
|
||||
PSG2REG .equ VGMBASE+09H ; Secondary SN76489
|
||||
ctcbase .equ VGMBASE+0CH ; CTC base address
|
||||
YM2151_SEL1 .equ 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .equ 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .equ 0FEH ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .equ 0FFH ; Secondary YM2151 register data
|
||||
FRAME_DLY .equ 10 ; Frame delay (~ 1/44100)
|
||||
plt_cpuspd .equ 6 ; Non ROMWBW cpu speed default
|
||||
#ENDIF
|
||||
;
|
||||
.IF SBCECB
|
||||
RSEL .EQU 0D8H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 0D0H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .EQU 0A0H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .EQU 0A1H ; Secondary AY-3-8910 Register data
|
||||
YMSEL .EQU 0C0H ; Primary YM2162 11000000 a1=0 a0=0
|
||||
YMDAT .EQU 0C1H ; Primary YM2162 11000001 a1=0 a0=1
|
||||
YM2SEL .EQU 0C2H ; Secondary YM2162 11000010 a1=1 a0=0
|
||||
YM2DAT .EQU 0C3H ; Secondary YM2162 11000011 a1=1 a0=1
|
||||
PSG1REG .EQU 0C6H ; Primary SN76489
|
||||
PSG2REG .EQU 0C7H ; Secondary SN76489
|
||||
YM2151_SEL1 .EQU 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .EQU 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .EQU 0FEH ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .EQU 0FFH ; Secondary YM2151 register data
|
||||
FRAME_DLY .EQU 8 ; Frame delay (~ 1/44100)
|
||||
.ENDIF
|
||||
#IF (plt_type=P8X180)
|
||||
RSEL .equ 82H ; Primary AY-3-8910 Register selection
|
||||
RDAT .equ 83H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .equ 89H ; Secondary AY-3-8910 Register data
|
||||
PSG1REG .equ 84H ; Primary SN76489
|
||||
PSG2REG .equ 8AH ; Secondary SN76489
|
||||
YM2151_SEL1 .equ 0B0H ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .equ 0B1H ; Primary YM2151 register data
|
||||
YM2151_SEL2 .equ 0B2H ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .equ 0B3H ; Secondary YM2151 register data
|
||||
ctcbase .equ 000H ; CTC base address
|
||||
YMSEL .equ 000H ; Primary YM2162 11000000 a1=0 a0=0
|
||||
YMDAT .equ 000H ; Primary YM2162 11000001 a1=0 a0=1
|
||||
YM2SEL .equ 000H ; Secondary YM2162 11000010 a1=1 a0=0
|
||||
YM2DAT .equ 000H ; Secondary YM2162 11000011 a1=1 a0=1
|
||||
FRAME_DLY .equ 48 ; Frame delay (~ 1/44100)
|
||||
plt_cpuspd .equ 20 ; Non ROMWBW cpu speed default
|
||||
#ENDIF
|
||||
;
|
||||
.IF MBC
|
||||
RSEL .EQU 0A0H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 0A1H ; Primary AY-3-8910 Register data
|
||||
RSEL .EQU 0D8H ; Secondary AY-3-8910 Register selection
|
||||
RDAT .EQU 0D0H ; Secondary AY-3-8910 Register data
|
||||
YMSEL .EQU 0C0H ; 11000000 a1=0 a0=0
|
||||
YMDAT .EQU 0C1H ; 11000001 a1=0 a0=1
|
||||
YM2SEL .EQU 0C2H ; 11000010 a1=1 a0=0
|
||||
YM2DAT .EQU 0C3H ; 11000011 a1=1 a0=1
|
||||
PSGREG .EQU 0C6H ; Primary SN76489
|
||||
PSG2REG .EQU 0C7H ; Secondary SN76489
|
||||
YM2151_SEL1 .EQU 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .EQU 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .EQU 0FEH ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .EQU 0FFH ; Secondary YM2151 register data
|
||||
FRAME_DLY .EQU 10 ; Frame delay (~ 1/44100)
|
||||
.ENDIF
|
||||
#IF (plt_type=RC2014)
|
||||
RSEL .equ 0D8H ; Primary AY-3-8910 Register selection
|
||||
RDAT .equ 0D0H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .equ 0A0H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .equ 0A1H ; Secondary AY-3-8910 Register data
|
||||
PSG1REG .equ 0FFH ; Primary SN76489
|
||||
PSG2REG .equ 0FBH ; Secondary SN76489
|
||||
YM2151_SEL1 .equ 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .equ 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .equ 0D0H ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .equ 0D1H ; Secondary YM2151 register data
|
||||
ctcbase .equ 000H ; CTC base address
|
||||
YMSEL .equ 000H ; Primary YM2162 11000000 a1=0 a0=0
|
||||
YMDAT .equ 000H ; Primary YM2162 11000001 a1=0 a0=1
|
||||
YM2SEL .equ 000H ; Secondary YM2162 11000010 a1=1 a0=0
|
||||
YM2DAT .equ 000H ; Secondary YM2162 11000011 a1=1 a0=1
|
||||
FRAME_DLY .equ 12 ; Frame delay (~ 1/44100)
|
||||
plt_cpuspd .equ 7 ; Non ROMWBW cpu speed default
|
||||
#ENDIF
|
||||
;
|
||||
#IF (plt_type=sbcecb)
|
||||
RSEL .equ 09AH ; Primary AY-3-8910 Register selection
|
||||
RDAT .equ 09BH ; Primary AY-3-8910 Register data
|
||||
RSEL2 .equ 0A0H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .equ 0A1H ; Secondary AY-3-8910 Register data
|
||||
VGMBASE .equ $C0
|
||||
YMSEL .equ VGMBASE+00H ; Primary YM2162 11000000 a1=0 a0=0
|
||||
YMDAT .equ VGMBASE+01H ; Primary YM2162 11000001 a1=0 a0=1
|
||||
YM2SEL .equ VGMBASE+02H ; Secondary YM2162 11000010 a1=1 a0=0
|
||||
YM2DAT .equ VGMBASE+03H ; Secondary YM2162 11000011 a1=1 a0=1
|
||||
PSG1REG .equ VGMBASE+06H ; Primary SN76489
|
||||
PSG2REG .equ VGMBASE+07H ; Secondary SN76489
|
||||
ctcbase .equ VGMBASE+0CH ; CTC base address
|
||||
YM2151_SEL1 .equ 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .equ 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .equ 0FEH ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .equ 0FFH ; Secondary YM2151 register data
|
||||
FRAME_DLY .equ 13 ; Frame delay (~ 1/44100)
|
||||
plt_cpuspd .equ 8 ; Non ROMWBW cpu speed default
|
||||
#ENDIF
|
||||
;
|
||||
#IF (plt_type=MBC)
|
||||
RSEL .equ 0A0H ; Primary AY-3-8910 Register selection
|
||||
RDAT .equ 0A1H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .equ 0D8H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .equ 0D0H ; Secondary AY-3-8910 Register data
|
||||
YMSEL .equ 0C0H ; 11000000 a1=0 a0=0
|
||||
YMDAT .equ 0C1H ; 11000001 a1=0 a0=1
|
||||
YM2SEL .equ 0C2H ; 11000010 a1=1 a0=0
|
||||
YM2DAT .equ 0C3H ; 11000011 a1=1 a0=1
|
||||
PSG1REG .equ 0C6H ; Primary SN76489
|
||||
PSG2REG .equ 0C7H ; Secondary SN76489
|
||||
ctcbase .equ 000H ; CTC base address
|
||||
YM2151_SEL1 .equ 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .equ 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .equ 0FEH ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .equ 0FFH ; Secondary YM2151 register data
|
||||
FRAME_DLY .equ 13 ; Frame delay (~ 1/44100)
|
||||
plt_cpuspd .equ 8 ; Non ROMWBW cpu speed default
|
||||
#ENDIF
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Your customer overrides can go in here i.e. ports
|
||||
; Configure timing loop
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
;RSEL .SET 09AH ; Primary AY-3-8910 Register selection
|
||||
;RDAT .SET 09BH ; Primary AY-3-8910 Register data
|
||||
cpu_loop: .equ 0
|
||||
ctc_poll: .equ 1
|
||||
ctc_int: .equ 2 ; not implemented
|
||||
;
|
||||
delay_type: .equ cpu_loop ; cpu timed loop or utilize ctc
|
||||
delay_wait .equ 0 ; funny wait mode for ctc
|
||||
;
|
||||
D60 .equ 735 ; 735x60=44100 Frame delay values for ntsc
|
||||
D50 .equ 882 ; 882x50=44100 Frame delay values for pal
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Frame delay overide values for different processor speeds.
|
||||
; CTC Defaults
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
;FRAME_DLY .SET 10 ; 1Mhz ; not
|
||||
;FRAME_DLY .SET 10 ; 2Mhz ; implemented
|
||||
;FRAME_DLY .SET 10 ; 4Mhz ; yet
|
||||
;FRAME_DLY .SET 15 ; 8Mhz
|
||||
;FRAME_DLY .SET 10 ; 10Mhz
|
||||
;FRAME_DLY .SET 20 ; 12Mhz
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Frame delay values for pal/ntsc
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
D60 .EQU 735
|
||||
D50 .EQU 882
|
||||
ctcdiv0 .equ 1 ; Divider chain for 3.579545MHz input
|
||||
ctcdiv1 .equ 1 ; Ctc with 3 step divider base address
|
||||
ctcdiv2 .equ 16
|
||||
ctcdiv3 .equ 3 ; 3579545 / 1 / 2 / 41 = 43653 = 1% error
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Processor speed control for SBCV2004+
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
;#DEFINE SBCV2004 ; My SBC board at 12Mhz needs this to switch to
|
||||
HB_RTCVAL .EQU 0FFEEH ; 6MHz for it to work with the ECB-VGM reliably.
|
||||
RTCIO .EQU 070H
|
||||
|
||||
HB_RTCVAL .equ 0FFEEH ; 6MHz for it to work with the ECB-VGM reliably.
|
||||
RTCIO .equ 070H
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; YM2162 Register write macros
|
||||
; YM2162 Register write macros - with wait and timeout
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
#DEFINE setreg(reg,val) \
|
||||
@@ -132,53 +183,57 @@ RTCIO .EQU 070H
|
||||
#DEFCONT \ out (YMSEL),a
|
||||
#DEFCONT \ ld a,val
|
||||
#DEFCONT \ out (YMDAT),a
|
||||
#DEFCONT \ ld b,0
|
||||
#DEFCONT \ in a,(YMSEL)
|
||||
#DEFCONT \ rlca
|
||||
#DEFCONT \ jp c,$-3
|
||||
#DEFCONT \ jp nc,$+5
|
||||
#DEFCONT \ djnz $-6
|
||||
;
|
||||
#DEFINE setreg2(reg,val) \
|
||||
#DEFCONT \ ld a,reg
|
||||
#DEFCONT \ out (YM2SEL),a
|
||||
#DEFCONT \ ld a,val
|
||||
#DEFCONT \ out (YM2DAT),a
|
||||
#DEFCONT \ ld b,0
|
||||
#DEFCONT \ in a,(YMSEL)
|
||||
#DEFCONT \ rlca
|
||||
#DEFCONT \ jp c,$-3
|
||||
#DEFCONT \ jp nc,$+5
|
||||
#DEFCONT \ djnz $-6
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VGM Codes
|
||||
; VGM Codes - see vgmrips.net/wiki/VGM_specification
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
VGM_GG_W .EQU 04FH ; GAME GEAR PSG STEREO. WRITE DD TO PORT 0X06
|
||||
VGM_PSG1_W .EQU 050H ; PSG (SN76489/SN76496) #1 WRITE VALUE DD
|
||||
VGM_PSG2_W .EQU 030H ; PSG (SN76489/SN76496) #2 WRITE VALUE DD
|
||||
VGM_YM26121_W .EQU 052H ; YM2612 #1 WRITE VALUE DD
|
||||
VGM_YM26122_W .EQU 053H ; YM2612 #2 WRITE VALUE DD
|
||||
VGM_WNS .EQU 061H ; WAIT N SAMPLES
|
||||
VGM_W735 .EQU 062H ; WAIT 735 SAMPLES (1/60TH SECOND)
|
||||
VGM_W882 .EQU 063H ; WAIT 882 SAMPLES (1/50TH SECOND)
|
||||
VGM_ESD .EQU 066H ; END OF SOUND DATA
|
||||
VGM_YM21511_W .EQU 054H ; YM2612 #1 WRITE VALUE DD
|
||||
VGM_YM21512_W .EQU 0A4H ; YM2612 #2WRITE VALUE DD
|
||||
VGM_GG_W .equ 04FH ; GAME GEAR PSG STEREO. WRITE DD TO PORT 0X06
|
||||
VGM_PSG1_W .equ 050H ; PSG (SN76489/SN76496) #1 WRITE VALUE DD
|
||||
VGM_PSG2_W .equ 030H ; PSG (SN76489/SN76496) #2 WRITE VALUE DD
|
||||
VGM_YM26121_W .equ 052H ; YM2612 #1 WRITE VALUE DD
|
||||
VGM_YM26122_W .equ 053H ; YM2612 #2 WRITE VALUE DD
|
||||
VGM_WNS .equ 061H ; WAIT N SAMPLES
|
||||
VGM_W735 .equ 062H ; WAIT 735 SAMPLES (1/60TH SECOND)
|
||||
VGM_W882 .equ 063H ; WAIT 882 SAMPLES (1/50TH SECOND)
|
||||
VGM_ESD .equ 066H ; END OF SOUND DATA
|
||||
VGM_YM21511_W .equ 054H ; YM2612 #1 WRITE VALUE DD
|
||||
VGM_YM21512_W .equ 0A4H ; YM2612 #2 WRITE VALUE DD
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Generic CP/M definitions
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
BOOT .EQU 0000H ; boot location
|
||||
BDOS .EQU 0005H ; bdos entry point
|
||||
FCB .EQU 005CH ; file control block
|
||||
FCBCR .EQU FCB + 20H ; fcb current record
|
||||
BUFF .EQU 0080H ; DMA buffer
|
||||
TOPM .EQU 0002H ; Top of memory
|
||||
BOOT .equ 0000H ; boot location
|
||||
BDOS .equ 0005H ; bdos entry point
|
||||
FCB .equ 005CH ; file control block
|
||||
FCBCR .equ FCB + 20H ; fcb current record
|
||||
BUFF .equ 0080H ; DMA buffer
|
||||
TOPM .equ 0002H ; Top of memory
|
||||
|
||||
PRINTF .EQU 9 ; BDOS print string function
|
||||
OPENF .EQU 15 ; BDOS open file function
|
||||
CLOSEF .EQU 16 ; BDOS close file function
|
||||
READF .EQU 20 ; BDOS sequential read function
|
||||
PRINTF .equ 9 ; BDOS print string function
|
||||
OPENF .equ 15 ; BDOS open file function
|
||||
CLOSEF .equ 16 ; BDOS close file function
|
||||
READF .equ 20 ; BDOS sequential read function
|
||||
|
||||
CR .EQU 0DH ; carriage return
|
||||
LF .EQU 0AH ; line feed
|
||||
CR .equ 0DH ; carriage return
|
||||
LF .equ 0AH ; line feed
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Program Start
|
||||
@@ -188,12 +243,29 @@ LF .EQU 0AH ; line feed
|
||||
|
||||
LD (OLDSTACK),SP ; save old stack pointer
|
||||
LD SP,STACK ; set new stack pointer
|
||||
|
||||
LD DE,MSG_WELC ; Welcome Message
|
||||
CALL PRTSTR
|
||||
|
||||
;
|
||||
#IF (delay_type==cpu_loop)
|
||||
call setfdelay ; Setup the frame delay based on cpu speed
|
||||
#ENDIF
|
||||
;
|
||||
#IF (delay_type==ctc_poll)
|
||||
call cfgctc_poll ; If building for polled ctc, initialize it
|
||||
#ENDIF
|
||||
;
|
||||
#IF (delay_type==ctc_int) ; If building for interrupt driven ctc, initialize it
|
||||
call cfgctc_int
|
||||
#ENDIF
|
||||
;
|
||||
#IF (debug)
|
||||
; LD A,0 ; tone to validate presence
|
||||
;TST: LD C,PSG1REG
|
||||
; OUT (C),A
|
||||
; LD C,PSG2REG
|
||||
; OUT (C),A
|
||||
; JR TST
|
||||
#ENDIF
|
||||
call welcome ; Welcome message and build debug info
|
||||
CALL READVGM ; Read in the VGM file
|
||||
|
||||
CALL VGMINFO ; Check and display VGM Information
|
||||
|
||||
LD HL, (VGMDATA + 34H) ; Determine start of VGM
|
||||
@@ -206,25 +278,63 @@ _S1 LD DE, VGMDATA + 34H
|
||||
LD (VGMPOS), HL
|
||||
|
||||
LD HL,D60 ; VGM delay (60hz)
|
||||
LD (VGMDLY), HL
|
||||
|
||||
LD (vdelay), HL
|
||||
;
|
||||
LD IX,VGM_DEV ; IX points to device mask
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Play loop
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
MAINLOOP CALL PLAY ; Play one frame
|
||||
|
||||
LD C,6 ; Check for keypress
|
||||
LD E,0FFH
|
||||
CALL BDOS
|
||||
;
|
||||
LD HL,KEYCHK ; Check for keypress
|
||||
DEC (HL)
|
||||
JR NZ,NO_CHK
|
||||
;
|
||||
LD C,6 ; Every 256 commands
|
||||
LD E,0FFH ; because HBIOS calls
|
||||
CALL BDOS ; take a long time
|
||||
OR A
|
||||
JR NZ,EXIT
|
||||
NO_CHK:
|
||||
#IF (delay_type==cpu_loop)
|
||||
vdelay: .equ $+1
|
||||
ld hl,vdelay
|
||||
fdelay: .equ $+1
|
||||
lp1: LD B,FRAME_DLY ; 44100 one frame = 0.0000226757 seconds
|
||||
DJNZ $
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JP NZ,lp1 ; Normally NZ so jp is faster
|
||||
#ENDIF
|
||||
;
|
||||
#IF (delay_type==ctc_poll)
|
||||
vdelay: .equ $+1
|
||||
ld hl,vdelay ; Frame delay
|
||||
lp1: in a,(ctcch3) ; wait for counter to reach zero
|
||||
dec a
|
||||
jr nz,lp1
|
||||
#IF (delay_wait)
|
||||
lp2: in a,(ctcch3) ; wait for counter to pass zero
|
||||
dec a
|
||||
jr z,lp2
|
||||
|
||||
LD HL,(VGMDLY) ; Frame delay
|
||||
L1 LD B,FRAME_DLY
|
||||
DJNZ $
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,L1
|
||||
|
||||
JR MAINLOOP
|
||||
lp3: in a,(ctcch3) ; wait for counter to reach zero
|
||||
dec a
|
||||
jr nz,lp3
|
||||
#ENDIF
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JP NZ,lp1 ; Normally NZ so jp is faster
|
||||
#ENDIF
|
||||
;
|
||||
#IF (delay_type==ctc_int)
|
||||
#ENDIF
|
||||
;
|
||||
JP MAINLOOP
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Program Exit
|
||||
@@ -240,6 +350,194 @@ EXIT: CALL VGMDEVICES ; Display devices used
|
||||
EXIT_ERR: CALL PRTSTR ; Generic message or error
|
||||
LD SP, (OLDSTACK) ; Exit to CP/M
|
||||
RST 00H
|
||||
DI
|
||||
HALT
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Welcome
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
welcome: LD DE,MSG_WELC ; Welcome Message
|
||||
CALL PRTSTR
|
||||
;
|
||||
#IF (plt_romwbw)
|
||||
LD DE,MSG_ROMWBW ; display system type
|
||||
CALL PRTSTR
|
||||
#ENDIF
|
||||
;
|
||||
LD A,delay_type ; display build type
|
||||
LD DE,MSG_CPU
|
||||
CALL PRTIDXDEA
|
||||
;
|
||||
LD A,plt_type ; display system type
|
||||
LD DE,MSG_CUSTOM
|
||||
CALL PRTIDXDEA
|
||||
call CRLF
|
||||
;
|
||||
#IF (debug)
|
||||
#IF (delay_type==cpu_loop)
|
||||
ld a,'f' ; Display frame rate delay
|
||||
call PRTCHR
|
||||
call PRTDOT
|
||||
ld a,(fdelay)
|
||||
call PRTDECB
|
||||
LD A,' '
|
||||
#ENDIF
|
||||
CALL PRTCHR
|
||||
ld a,'c'
|
||||
call PRTCHR
|
||||
call PRTDOT
|
||||
ld a,ctcdiv0 ; Display ctc divider values
|
||||
call PRTDECB
|
||||
CALL PRTDOT
|
||||
ld a,ctcdiv1
|
||||
call PRTDECB
|
||||
CALL PRTDOT
|
||||
ld a,ctcdiv2
|
||||
call PRTDECB
|
||||
CALL PRTDOT
|
||||
ld a,ctcdiv3
|
||||
call PRTDECB
|
||||
;
|
||||
#IF (delay_wait)
|
||||
ld a,' '
|
||||
CALL PRTCHR
|
||||
LD A,'w' ; Display if using double wait
|
||||
CALL PRTCHR
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
CALL CRLF
|
||||
ret
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Setup frame delay value - Loop count for DJNZ $ loop
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
setfdelay:
|
||||
#IF (delay_type==cpu_loop)
|
||||
#IF (plt_romwbw)
|
||||
LD BC,$F8F0 ; GET CPU SPEED
|
||||
RST 08 ; FROM HBIOS
|
||||
LD A,L ;
|
||||
#ELSE
|
||||
ld a,plt_cpuspd ; USE STANDALONE CPU SPEED
|
||||
#ENDIF
|
||||
LD HL,CLKTBL-1 ; CPU SPEED
|
||||
ADD A,L ; INDEXES
|
||||
LD L,A ; INTO
|
||||
ADC A,H ; TABLE
|
||||
SUB L
|
||||
LD H,A ; LOOK IT UP IN THE
|
||||
LD A,(HL) ; CLOCK TABLE
|
||||
|
||||
LD (fdelay),A ; SAVE LOOP COUNTER FOR CPU SPEED
|
||||
RET
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Frame delay values for different processor speeds.
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; 1/44100hz = 22676ns
|
||||
; 16Mhz = 62.5ns : DJNZ $ = 1 frame delay= 22676ns/13*62.5ns = 27.91
|
||||
; 12Mhz = 83.3ns : DJNZ $ = 1 frame delay= 22676ns/13*83.3ns = 20.94
|
||||
; 10Mhz = 100ns : DJNZ $ = 1 frame delay= 22676ns/13*100ns = 17.44
|
||||
; 8Mhz = 125ns : DJNZ $ = 1 frame delay= 22676ns/13*125ns = 13.95
|
||||
; 7.3728Mhz = 135.6ns : DJNZ $ = 1 frame delay= 22676ns/13*135.6ns = 12.86
|
||||
; 6Mhz = 166.6s : DJNZ $ = 1 frame delay= 22676ns/13*166.6ns = 10.47
|
||||
; 4Mhz = 250ns : DJNZ $ = 1 frame delay= 22676ns/13*250ns = 6.98
|
||||
; 2Mhz = 500ns : DJNZ $ = 1 frame delay= 22676ns/13*500ns = 3.49
|
||||
; 1Mhz = 1000ns : DJNZ $ = 1 frame delay= 22676ns/13*1000ns = 1.74
|
||||
;
|
||||
CLKTBL: .DB 1 ; 1Mhz ; none of these
|
||||
.DB 3 ; 2Mhz ; have been
|
||||
.DB 0 ; 3Mhz ; validated
|
||||
.DB 6 ; 4Mhz
|
||||
.DB 0 ; 5Mhz
|
||||
.DB 10 ; 6Mhz
|
||||
.DB 12 ; 7Mhz 7.3728Mhz
|
||||
.DB 13 ; 8Mhz
|
||||
.DB 0 ; 9Mhz
|
||||
.DB 17 ; 10Mhz
|
||||
.DB 0 ; 11Mhz
|
||||
.DB 20 ; 12Mhz
|
||||
.DB 0 ; 13Mhz
|
||||
.DB 0 ; 14Mhz
|
||||
.DB 0 ; 15Mhz
|
||||
.DB 27 ; 16Mhz
|
||||
.DB 0 ; 17Mhz
|
||||
.DB 0 ; 18Mhz
|
||||
.DB 0 ; 19Mhz
|
||||
.DB 0 ; 20Mhz
|
||||
#ENDIF
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Initialize CTC
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; %01010011 ; CTC DEFAULT CONFIG
|
||||
; %01010111 ; CTC COUNTER MODE CONFIG
|
||||
; %11010111 ; CTC COUNTER INTERRUPT MODE CONFIG
|
||||
; |||||||+-- CONTROL WORD FLAG
|
||||
; ||||||+--- SOFTWARE RESET
|
||||
; |||||+---- TIME CONSTANT FOLLOWS
|
||||
; ||||+----- AUTO TRIGGER WHEN TIME CONST LOADED
|
||||
; |||+------ RISING EDGE TRIGGER
|
||||
; ||+------- TIMER MODE PRESCALER (0=16, 1=256)
|
||||
; |+-------- COUNTER MODE
|
||||
; +--------- INTERRUPT ENABLE
|
||||
;
|
||||
cfgctc_poll:
|
||||
;
|
||||
ctcch0 .equ ctcbase
|
||||
ctcch1 .equ ctcbase+1
|
||||
ctcch2 .equ ctcbase+2
|
||||
ctcch3 .equ ctcbase+3
|
||||
;
|
||||
ctccfg0 .equ %01010011
|
||||
ctccfg1 .equ %01010111
|
||||
ctccfg2 .equ %01010111
|
||||
ctccfg3 .equ %01010111
|
||||
;
|
||||
ld a,ctccfg0 & $7f ; ; Channel 0
|
||||
out (ctcch0),a
|
||||
;
|
||||
ld a,ctccfg1 & $7f ; Channel 1
|
||||
out (ctcch1),a ;
|
||||
ld a,ctcdiv1 & $ff ;
|
||||
out (ctcch1),a ;
|
||||
;
|
||||
ld a,ctccfg2 & $7f ; Channel 2
|
||||
out (ctcch2),a ;
|
||||
ld a,ctcdiv2 & $ff ;
|
||||
out (ctcch2),a ;
|
||||
;
|
||||
ld a,ctccfg3 & $7f ; Channel 3
|
||||
out (ctcch3),a ;
|
||||
ld a,ctcdiv3 & $ff ;
|
||||
out (ctcch3),a ;
|
||||
;
|
||||
ret
|
||||
;
|
||||
#IF (debug)
|
||||
ctctest:
|
||||
ld b,0
|
||||
|
||||
ctclp1: in a,(ctcch3) ; wait for counter to reach zero
|
||||
dec a
|
||||
jr nz,ctclp1
|
||||
|
||||
ctclp2: in a,(ctcch3) ; wait for counter to pass zero
|
||||
dec a
|
||||
jr z,ctclp2
|
||||
|
||||
call PRTDOT
|
||||
;
|
||||
djnz ctclp1
|
||||
#ENDIF
|
||||
ret
|
||||
;
|
||||
cfgctc_int:
|
||||
ret
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Read VGM file into memory
|
||||
@@ -396,7 +694,6 @@ PLAY
|
||||
#IFDEF SBCV2004
|
||||
CALL SLOWIO
|
||||
#ENDIF
|
||||
LD IX,VGM_DEV
|
||||
LD HL, (VGMPOS) ; Start processing VGM commands
|
||||
NEXT LD A, (HL)
|
||||
INC HL
|
||||
@@ -406,19 +703,14 @@ NEXT LD A, (HL)
|
||||
LD HL, (VGMDATA + 1CH) ; Loop offset
|
||||
LD A, H
|
||||
OR L
|
||||
JP Z, EXIT
|
||||
JP Z, EXIT
|
||||
LD DE, VGMDATA + 1CH
|
||||
ADD HL, DE
|
||||
LD (VGMPOS), HL
|
||||
JR NEXT
|
||||
|
||||
NEXT1 CP VGM_GG_W ; Game Gear SN76489 stereo. Ignored
|
||||
JR NZ, PSG
|
||||
LD IX,VGM_DEV
|
||||
SET 0,(IX+1)
|
||||
INC HL
|
||||
JR NEXT
|
||||
|
||||
NEXT1:
|
||||
;
|
||||
; SN76489 SECTION
|
||||
|
||||
PSG CP VGM_PSG1_W ; Write byte to SN76489.
|
||||
@@ -426,7 +718,6 @@ PSG CP VGM_PSG1_W ; Write byte to SN76489.
|
||||
LD A, (HL)
|
||||
INC HL
|
||||
OUT (PSG1REG), A
|
||||
LD IX,VGM_DEV
|
||||
SET 0,(IX+0)
|
||||
JR NEXT
|
||||
|
||||
@@ -435,7 +726,6 @@ PSG2 CP VGM_PSG2_W ; Write byte to second SN76489.
|
||||
LD A, (HL)
|
||||
INC HL
|
||||
OUT (PSG2REG), A
|
||||
LD IX,VGM_DEV
|
||||
SET 1,(IX+0)
|
||||
JR NEXT
|
||||
|
||||
@@ -452,19 +742,17 @@ AY CP 0A0H
|
||||
LD A, (HL)
|
||||
INC HL
|
||||
OUT (RDAT2), A
|
||||
LD IX,VGM_DEV
|
||||
SET 2,(IX+0)
|
||||
JR NEXT
|
||||
AY1 OUT (RSEL), A
|
||||
LD A, (HL)
|
||||
INC HL
|
||||
OUT (RDAT), A
|
||||
LD IX,VGM_DEV
|
||||
SET 3,(IX+0)
|
||||
JR NEXT
|
||||
|
||||
;
|
||||
; YM2612 SECTION
|
||||
|
||||
;
|
||||
YM2162_1 CP VGM_YM26121_W
|
||||
JR NZ, YM2162_2
|
||||
LD A,(HL)
|
||||
@@ -473,7 +761,6 @@ YM2162_1 CP VGM_YM26121_W
|
||||
LD A,(HL)
|
||||
OUT (YMDAT),A
|
||||
INC HL
|
||||
LD IX,VGM_DEV
|
||||
SET 4,(IX+0)
|
||||
JP NEXT
|
||||
;
|
||||
@@ -485,12 +772,11 @@ YM2162_2 CP VGM_YM26122_W
|
||||
LD A,(HL)
|
||||
OUT (YM2DAT),A
|
||||
INC HL
|
||||
LD IX,VGM_DEV
|
||||
SET 4,(IX+0) ; 2nd channel
|
||||
JP NEXT
|
||||
|
||||
;
|
||||
; YM2151 SECTION
|
||||
|
||||
;
|
||||
YM2151_1 CP VGM_YM21511_W
|
||||
JR NZ,YM2151_2
|
||||
LD A,(HL)
|
||||
@@ -499,21 +785,27 @@ YM2151_1 CP VGM_YM21511_W
|
||||
LD A,(HL)
|
||||
OUT (YM2151_DAT1),A
|
||||
INC HL
|
||||
LD IX,VGM_DEV
|
||||
SET 6,(IX+0)
|
||||
JP NEXT
|
||||
;
|
||||
YM2151_2 CP VGM_YM21512_W
|
||||
JR NZ,WAITNN
|
||||
JR NZ,GG
|
||||
LD A,(HL)
|
||||
OUT (YM2151_SEL2),A
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
OUT (YM2151_DAT2),A
|
||||
INC HL
|
||||
LD IX,VGM_DEV
|
||||
SET 7,(IX+0)
|
||||
JP NEXT
|
||||
;
|
||||
; GAME GEAR SN76489 STEREO SECTION
|
||||
;
|
||||
GG: CP VGM_GG_W ; Stereo steering port value
|
||||
JR NZ, WAITNN
|
||||
; SET 0,(IX+1)
|
||||
INC HL
|
||||
JP NEXT
|
||||
;
|
||||
WAITNN CP VGM_WNS ; Wait nn samples
|
||||
JR NZ, WAIT60
|
||||
@@ -524,36 +816,43 @@ WAITNN CP VGM_WNS ; Wait nn samples
|
||||
LD (VGMPOS), HL
|
||||
LD L, A
|
||||
LD H, D
|
||||
LD (VGMDLY), HL
|
||||
LD (vdelay), HL
|
||||
RET
|
||||
;
|
||||
WAIT60 CP VGM_W735 ; Wait 735 samples (60Hz)
|
||||
JR NZ, WAIT50
|
||||
LD (VGMPOS), HL
|
||||
LD HL, D60
|
||||
LD (VGMDLY), HL
|
||||
LD (vdelay), HL
|
||||
RET
|
||||
;
|
||||
WAIT50 CP VGM_W882 ; Wait 882 samples (50Hz)
|
||||
JR NZ, WAIT1
|
||||
LD (VGMPOS), HL
|
||||
LD HL, D50
|
||||
LD (VGMDLY), HL
|
||||
WAIT50: CP VGM_W882 ; Wait 882 samples (50Hz)
|
||||
JR NZ, WAIT1
|
||||
LD (VGMPOS), HL
|
||||
LD HL, D50
|
||||
LD (vdelay), HL
|
||||
RET
|
||||
;
|
||||
WAIT1 CP 70H ; WAIT 0-15 SAMPLES
|
||||
WAIT1: CP 70H ; WAIT 0-15 SAMPLES
|
||||
JR C, UNK ; CODES 70-7FH
|
||||
CP 80H
|
||||
JP NC, UNK
|
||||
SUB 6FH
|
||||
LD L, A
|
||||
LD H, 0
|
||||
LD (VGMDLY), HL
|
||||
LD (vdelay), HL
|
||||
RET
|
||||
;
|
||||
UNK LD IX,VGM_DEV ; Set flag for
|
||||
SET 0,(IX+1) ; unknown device
|
||||
UNK: SET 0,(IX+1) ; unknown device
|
||||
INC HL ; Try and skip
|
||||
#IF (debug)
|
||||
ld a,'u' ; Display unknow command
|
||||
call PRTCHR
|
||||
call PRTDOT
|
||||
call PRTHEX
|
||||
ld a,' '
|
||||
call PRTCHR
|
||||
#ENDIF
|
||||
JP NEXT
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
@@ -609,12 +908,6 @@ CHKDEV: AND %00000011 ; Display
|
||||
CALL PRTCHR ; Skip if not
|
||||
CALL PRTSTR ; used.
|
||||
RET
|
||||
|
||||
DEBUG: PUSH AF
|
||||
LD A,'*'
|
||||
CALL PRTCHR
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Mute Devices.
|
||||
@@ -939,6 +1232,28 @@ FASTIO:
|
||||
RET
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY 0
|
||||
; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS
|
||||
; TO THE START OF THE STRING LIST.
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
PRTIDXDEA:
|
||||
LD C,A
|
||||
OR A
|
||||
PRTIDXDEA1:
|
||||
JR Z,PRTIDXDEA3 ; FOUND TARGET SO EXIT
|
||||
PRTIDXDEA2:
|
||||
LD A,(DE) ; LOOP UNIT
|
||||
INC DE ; WE REACH
|
||||
OR A ; END OF STRING
|
||||
JR NZ,PRTIDXDEA2
|
||||
DEC C ; AT STRING END. SO GO
|
||||
JR PRTIDXDEA1 ; CHECK FOR INDEX MATCH
|
||||
PRTIDXDEA3:
|
||||
CALL PRTSTR ; DISPLAY THE STRING
|
||||
RET
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; External routines.
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
@@ -948,8 +1263,8 @@ FASTIO:
|
||||
; Strings and constants.
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
MSG_WELC: .DB "VGM Player for RomWBW v0.3, 2-Jul-2022",CR,LF
|
||||
; .DB "J.B. Langston/Marco Maccaferri/Phil Summers",CR,LF
|
||||
MSG_WELC: .DB "VGM Player v0.4, 11-Dec-2022"
|
||||
; .DB CR,LF, "J.B. Langston/Marco Maccaferri/Ed Brindley/Phil Summers",CR,LF
|
||||
.DB 0
|
||||
MSG_BADF: .DB "Not a VGM file",CR,LF,0
|
||||
MSG_PO .DB "Played on : ",0
|
||||
@@ -963,17 +1278,33 @@ MSG_NOFILE: .DB "File not found", CR, LF, 0
|
||||
MSG_MEM: .DB "File to big", CR, LF, 0
|
||||
MSG_TITLE: .DB " from: ",0
|
||||
MSG_TRACK .DB "Playing: ",0
|
||||
MSG_CPU .DB "[cpu]",0
|
||||
MSG_CTCPOLL .DB "[ctc polled]",0
|
||||
MSG_CTCINT .DB "[ctc interrupts]",0
|
||||
MSG_ROMWBW .DB " [romwbw] ",0
|
||||
MSG_CUSTOM .DB " [custom] ",0
|
||||
MSG_P8X180 .DB " [p8x180] ",0
|
||||
MSG_RC2014 .DB " [rc2014] ",0
|
||||
MSG_SBCECB .DB " [sbc] ",0
|
||||
MSG_MBC .DB " [mbc] ",0
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Variables
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
VGMPOS .DW 0
|
||||
VGMDLY .DW 0
|
||||
VGMUNK_F .DB 0 ; Flag for unknown device
|
||||
VGM_DEV .DB %00000000 ; yyYYAASS
|
||||
.DB %00000000 ; Unimplemented device flags
|
||||
;VGMDLY .DW 0 ; Saves number of frames to delay
|
||||
KEYCHK .DB 0 ; Counter for keypress checks
|
||||
;
|
||||
VGM_DEV .DB %00000000 ; IX+0 Flags for devices
|
||||
; xx...... ym2151 1 & 2
|
||||
; ..x..... ym2612 2 (not supported)
|
||||
; ...x.... ym2612 1
|
||||
; ....xx.. ay-3-8910 1 & 2
|
||||
; ......xx sn76489 1 & 2
|
||||
|
||||
.DB %00000000 ; IX+1 Unimplemented device flags & future devices
|
||||
;
|
||||
OLDSTACK .DW 0 ; original stack pointer
|
||||
.DS 40H ; space for stack
|
||||
STACK ; top of stack
|
||||
|
||||
@@ -5,39 +5,70 @@ Simple player for VGM (Video Game Music) files.
|
||||
|
||||
Usage:
|
||||
|
||||
VGMPLAY MUSIC.VGM
|
||||
VGMPLAY MUSIC[.VGM]
|
||||
|
||||
Default Ports:
|
||||
Press a key to exit the program.
|
||||
|
||||
D8H-D0H - First AY-3-8910 (RSEL/RDAT)
|
||||
A0H-A1H - Second AY-3-8910
|
||||
FFH - First SN76489
|
||||
FBH - Second SN76489
|
||||
C6H-C7H - YM2612/YM3484
|
||||
Supported devices
|
||||
=================
|
||||
|
||||
If your system uses different ports you need to recompile the source.
|
||||
SN76489
|
||||
AY-3-89810
|
||||
YM2612/YM3484
|
||||
YM2151
|
||||
|
||||
Note: The player should be compatible with VGM files up to version 1.51
|
||||
but there are very few controls (if any) in the code, be sure to have
|
||||
a good VGM file that doesn't contain much extra data. These files can be
|
||||
very big, the player is limited to the available TPA space which is
|
||||
typically around 54-55k, bigger files will overwrite the CP/M code and/or
|
||||
wrap around the 64k limit.
|
||||
Supported platforms
|
||||
===================
|
||||
|
||||
The played is designed to run on a standard RC2014 with a 7.3728 MHz clock,
|
||||
if your system uses a different clock you need to adjust the frame delay accordingly.
|
||||
VGM Player is currently being developed on the ROMWBW platform using the Retrobrew computers
|
||||
EBC-SBC-V2 (Z80), ECB-SCG (AY-3-8910) and ECB-VGM (YM2612 and 2xSN76489) board.
|
||||
It can be configured to run with other hardware such as RC2014, P8X180 and nhyodyne MBC.
|
||||
|
||||
VGM files can be very big and are limited in size by the available TPA space, which is typically 52k.
|
||||
|
||||
Processor speed affects the playback speed. Under ROMWBW the player will detect the cpu speed configuration
|
||||
and adjust timing loops. For other platforms, default speeds are configured but may need to be changed
|
||||
to suit your hardware. Counter/Timer hardware may be supported in future.
|
||||
|
||||
Example Music Files
|
||||
===================
|
||||
|
||||
LEMMIN01.VGM - SN76489 - Lemmings: Title Screen
|
||||
PENGUI03.VGM - AY-3-8910 - Penguin Adventure: Forest Path
|
||||
PITFAL02.VGM - 2xSN76489 - Pitfall II: Scene 1
|
||||
TIGER02.VGM - 2xAY-3-8910 - Tiger Hely: First Mission
|
||||
WONDER01.VGM - 2xSN76489 - Wonder Boy in Monster Land
|
||||
FILTHY01.VGM - YM3484 - Columns : Filthy
|
||||
ITSGAMOV.VGM - YM3484+SN76489 - Puyo Puyo Tsuu : It's Game Over!
|
||||
ENDING.VGM - AY-3-8910 * Puyo Puyo: Ending (Unused) : 24K
|
||||
QIX.VGM - AY-3-8910 - Super Qix: Main BGM 2 : 28K
|
||||
AGGRESS.VGM - AY-3-8910 - Rastan Saga: Aggressive World : 32K
|
||||
PENGUI03.VGM - AY-3-8910 - Penguin Adventure: Forest Path : 44K
|
||||
TIGER02.VGM - 2xAY-3-8910 - Tiger Hely: First Mission : 28K
|
||||
BGM.VGM - 2xAY-3-8910 * SHM: BGM : 8K
|
||||
LEMMIN01.VGM - SN76489 - Lemmings: Title Screen : 44K
|
||||
TEDDY.VGM - 2xSN76489 - TeddyBoy Blues: Title ~ Main Theme : 52K
|
||||
PITFAL02.VGM - 2xSN76489 - Pitfall II: Scene 1 : 16K
|
||||
WONDER01.VGM - 2xSN76489 * Wonder Boy in Monster Land: Monster Land : 40K
|
||||
DESCENT.VGM - SN76489+YM2612 - Flashback: The Quest for Identity: Descent into the Tunnels : 40K
|
||||
SHIRAKAW.VGM - SN76489+YM2612 * Jantei Monogatari: St. Shirakawa University : 32K
|
||||
ANNA.VGM - SN76489+YM2612 - Jantei Monogatari: Anna : 32K
|
||||
FIELDMAP.VGM - SN76489+YM2612 - Taikou Risshiden: Field Map: Summer : 8K
|
||||
ITSGAMOV.VGM - SN76489+YM2612 - Puyo Puyo Tsuu: It's Game Over! : 16K
|
||||
STARTDEM.VGN - 2xSN76489+AY-3-8910 * Exed Exes / Savage Bees: Start Demo ~Main BGM : 32K
|
||||
INCHINA.VGM - YM2612 * Double Dragon 3: The Rosetta Stone: In China : 44K
|
||||
|
||||
Original Source by J.B Langston, Marco Maccaferri
|
||||
ROMWBW + YM2612/YM3484 version by Phil Summers
|
||||
* Included in disk images
|
||||
|
||||
VGM sources
|
||||
===========
|
||||
https://www.smspower.org/forums/15359-VGMPacksGameGearMegaCollection
|
||||
https://vgmrips.net/packs/chip/ym2612
|
||||
https://project2612.org/
|
||||
|
||||
VGM Tools
|
||||
=========
|
||||
https://vgmrips.net/wiki/VGMTool
|
||||
https://github.com/vgmrips/vgmtools
|
||||
|
||||
References
|
||||
==========
|
||||
http://www.primrosebank.net/computers/mtx/tools/PD/vgmplayer.zip - Paul Daniels MTX SN76489 interrupt version with embedded VGM tune.
|
||||
https://github.com/jblang/SN76489/blob/master/examples/vgmplayer.asm - J.B. Langston RC2014 polled version with file loading.
|
||||
https://groups.google.com/g/rc2014-z80/c/9nHnETJzGKU - Marco Maccaferri P8X180 & AY-3-8910 support
|
||||
https://github.com/electrified/rc2014-ym2151/tree/main/software/vgmplay - Ed Brindly RC2014 & YM2151 support
|
||||
|
||||
ROMWBW version by Phil Summers. VGM Player is still in development. The ECB-VGM is also still under development.
|
||||
|
||||
779
Source/Apps/VGM/ymfmdemo.asm
Normal file
779
Source/Apps/VGM/ymfmdemo.asm
Normal file
@@ -0,0 +1,779 @@
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Simple Z80 FM Music Driver.
|
||||
; Adapted from https://github.com/michaelcmartin/bumbershoot/genesis/fm_mus.asm
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; A song in this system is a series of records, where each record
|
||||
; begins with a byte for the number of frames this record lasts,
|
||||
; followed by a byte for the number of register writes to the first
|
||||
; block of FM registers, followed by that many pairs of (register,
|
||||
; value) bytes.
|
||||
; When a zero byte is reached for a record length, the playback
|
||||
; loops back to the "segno" label.
|
||||
;
|
||||
; Song data is created from a Music Macro Language score (mml)
|
||||
; by the makebach.py script
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Device and system specific definitions
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
custom .equ 0 ; System configurations
|
||||
sbcecb .equ 1
|
||||
MBC .equ 2
|
||||
;
|
||||
plt_romwbw .equ 1 ; Build for ROMWBW?
|
||||
plt_type .equ sbcecb ; Select build configuration
|
||||
plt_cpuspd .equ 6 ; Non ROMWBW cpu speed default
|
||||
debug .equ 0
|
||||
|
||||
ctc_delay .equ 0
|
||||
;
|
||||
.org 100H
|
||||
;
|
||||
BDOS .equ 0005h
|
||||
;
|
||||
YMSEL .equ $c0
|
||||
YMDAT .equ $c1
|
||||
ctcbase .equ $cc
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Initialize sound chip and ctc etc
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
init:
|
||||
#IF (debug)
|
||||
call ym_init
|
||||
#ENDIF
|
||||
#IF (ctc_delay)
|
||||
call ctc_config
|
||||
#ENDIF
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Main loop
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
mloop: LD C, 6 ; check for keypress
|
||||
LD E, 0FFH
|
||||
CALL 5
|
||||
OR A
|
||||
JP NZ,0
|
||||
;
|
||||
call ploop ; PLAY
|
||||
jp z,0
|
||||
;
|
||||
ld hl,$1000 ; DELAY
|
||||
dlp: dec hl
|
||||
ld a,h
|
||||
or l
|
||||
jr nz,dlp
|
||||
;
|
||||
jr mloop
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Play loop
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
ploop: ld hl, wait ; HAVE WE REACHED THE
|
||||
dec (hl) ; LAST FRAME
|
||||
ret nz
|
||||
|
||||
ld hl, (ptr) ; POINT TO START OF SONG
|
||||
ld a, (hl) ; GET NO OF FRAMES
|
||||
and a ;
|
||||
ret z
|
||||
; jr nz, nolp
|
||||
;
|
||||
; ld a,'@'
|
||||
; call PRTCHR
|
||||
;
|
||||
; ld hl, segno ; POINT TO CURRENT SEGMENT
|
||||
; ld a, (hl) ; GET FRAME COUNT
|
||||
nolp: ld (wait), a ; AND SAVE IT
|
||||
inc hl
|
||||
call PRTHEX
|
||||
call PRTDOT
|
||||
|
||||
ld b, (hl) ; GET NUMBER OF REGISTER PAIRS TO WRITE
|
||||
inc hl ; POINT TO REGISTER
|
||||
ld a,b
|
||||
call PRTHEX
|
||||
call PRTDOT
|
||||
|
||||
rlp: ld a, (hl) ; SELECT REGISTER
|
||||
out (YMSEL),a
|
||||
call PRTHEX
|
||||
|
||||
inc hl ; GET VALUE
|
||||
ld a, (hl)
|
||||
call PRTHEX
|
||||
|
||||
inc hl
|
||||
|
||||
out (YMDAT),a ; WRITE THE VALUE
|
||||
|
||||
djnz rlp ; DO ALL THE PAIRS IN THIS SEGMENT
|
||||
|
||||
ld (ptr), hl ; SAVE WHERE WE ARE AT
|
||||
call CRLF
|
||||
|
||||
ret
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; CTC initialization
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
ctc_config:
|
||||
; ld b,4 ; 4 channels
|
||||
; ld c,ctcbase ; first channel port
|
||||
;ctc_lp: ld a,ctc_defcfg ; ctc default config
|
||||
; out (c),a ; ctc command
|
||||
; inc c ; next channel port
|
||||
; djnz ctc_lp
|
||||
|
||||
; ld hl,hb_timint ; TIMER INT HANDLER ADR
|
||||
; ld (ivt(ctctivt)),hl
|
||||
;
|
||||
; ld a,int_ctc0a * 2
|
||||
out (ctcbase),a ; SETUP CTC BASE INT VECTOR
|
||||
;
|
||||
ctcch0 .equ ctcbase
|
||||
ctcch1 .equ ctcbase+1
|
||||
ctcch2 .equ ctcbase+2
|
||||
ctcch3 .equ ctcbase+3
|
||||
|
||||
ctccfg0 .equ %01010011
|
||||
ctccfg1 .equ %01010111
|
||||
ctccfg2 .equ %01010111
|
||||
ctccfg3 .equ %01010111
|
||||
|
||||
ctcdiv0 .equ 1 ; 3.579545MHz input 60Hz timer tick
|
||||
ctcdiv1 .equ 8
|
||||
ctcdiv2 .equ 0
|
||||
ctcdiv3 .equ 29
|
||||
|
||||
;ctcdiv0 .equ 1 ; 3.579545MHz input 50Hz timer tick
|
||||
;ctcdiv1 .equ 8
|
||||
;ctcdiv2 .equ 0
|
||||
;ctcdiv3 .equ 34
|
||||
|
||||
;ctcdiv0 .equ 1 ; 3.579545MHz input 44100z timer tick
|
||||
;ctcdiv1 .equ 1
|
||||
;ctcdiv2 .equ 1
|
||||
;ctcdiv3 .equ 81
|
||||
|
||||
ld a,ctccfg0 & $7f ; ; Channel 0
|
||||
out (ctcch0),a
|
||||
;
|
||||
ld a,ctccfg1 & $7f ; Channel 1
|
||||
out (ctcch1),a ;
|
||||
ld a,ctcdiv1 & $ff ;
|
||||
out (ctcch1),a ;
|
||||
;
|
||||
ld a,ctccfg2 & $7f ; Channel 2
|
||||
out (ctcch2),a ;
|
||||
ld a,ctcdiv2 & $ff ;
|
||||
out (ctcch2),a ;
|
||||
;
|
||||
ld a,ctccfg3 & $7f ; Channel 3
|
||||
out (ctcch3),a ;
|
||||
ld a,ctcdiv3 & $ff ;
|
||||
out (ctcch3),a ;
|
||||
;
|
||||
ret
|
||||
;
|
||||
ptr: .dw song
|
||||
wait: .db $01
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; YM2612 initialization - not required if included in song data
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
#DEFINE setreg(reg,val) \
|
||||
#DEFCONT \ ld a,reg
|
||||
#DEFCONT \ out (YMSEL),a
|
||||
#DEFCONT \ ld a,val
|
||||
#DEFCONT \ out (YMDAT),a
|
||||
#DEFCONT \ ld b,0
|
||||
#DEFCONT \ in a,(YMSEL)
|
||||
#DEFCONT \ rlca
|
||||
#DEFCONT \ jp nc,$+5
|
||||
#DEFCONT \ djnz $-6
|
||||
;
|
||||
ym_init:
|
||||
setreg($22,$00) ; lfo off
|
||||
setreg($27,$00) ; note off ch 0
|
||||
setreg($28,$01) ; note off ch 1
|
||||
setreg($28,$02) ; note off ch 2
|
||||
setreg($28,$03) ; note off ch 3
|
||||
setreg($28,$04) ; note off ch 4
|
||||
setreg($28,$05) ; note off ch 5
|
||||
setreg($28,$06) ; note off ch 6
|
||||
setreg($28,$01) ; note off ch 1
|
||||
setreg($2b,$00) ; dac off
|
||||
setreg($30,$71)
|
||||
setreg($34,$0d)
|
||||
setreg($38,$33)
|
||||
setreg($3c,$01) ; dt1/mul
|
||||
setreg($40,$23)
|
||||
setreg($44,$2d)
|
||||
setreg($48,$26)
|
||||
setreg($4c,$00) ; total level
|
||||
setreg($50,$5f)
|
||||
setreg($54,$99)
|
||||
setreg($58,$5f)
|
||||
setreg($5c,$94) ; rs/ar
|
||||
setreg($60,$05)
|
||||
setreg($64,$05)
|
||||
setreg($68,$05)
|
||||
setreg($6c,$07) ; am/dir
|
||||
setreg($70,$02)
|
||||
setreg($74,$02)
|
||||
setreg($78,$02)
|
||||
setreg($7c,$02) ; d2r
|
||||
setreg($80,$11)
|
||||
setreg($84,$11)
|
||||
setreg($88,$11)
|
||||
setreg($8c,$a6) ; d1l/rr
|
||||
setreg($90,$00)
|
||||
setreg($94,$00)
|
||||
setreg($98,$00)
|
||||
setreg($9c,$00) ; proprietary
|
||||
setreg($b0,$32) ; feedback/algorithm
|
||||
setreg($b4,$c0) ; both speakers on
|
||||
setreg($28,$00) ; key off
|
||||
setreg($a4,$22)
|
||||
setreg($a0,$69) ; set frequency
|
||||
;
|
||||
ret
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Example breakdown of first section, which is initialization
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; BYTE NUMBER OF FRAMES
|
||||
; BYTE NUMBER OF REGISTER WRITES
|
||||
; BYTE REGISTER
|
||||
; BYTE VALUE
|
||||
;
|
||||
; CNT $0D 13 frames
|
||||
; $42 66 register writes (132 BYTES)
|
||||
; 2 $30,$71 dac
|
||||
; 4 $34,$0D dac
|
||||
; 6 $38,$33 dac
|
||||
; 8 $3C,$01 dt1/mul
|
||||
; 10 $40,$23 dt1/mul
|
||||
; 12 $44,$2D dt1/mul
|
||||
; 14 $48,$26 dt1/mul
|
||||
; 16 $4C,$00 total level
|
||||
; 18 $50,$5F total level
|
||||
; 20 $54,$99 total level
|
||||
; 22 $58,$5F total level
|
||||
; 24 $5C,$94 rs/ar
|
||||
; 26 $60,$05 rs/ar
|
||||
; 28 $64,$05 rs/ar
|
||||
; 30 $68,$05 rs/ar
|
||||
; 32 $6C,$07 am/dir
|
||||
; 34 $70,$02 am/dir
|
||||
; 36 $74,$02 am/dir
|
||||
; 38 $78,$02 am/dir
|
||||
; 40 $7c,$02 d2r
|
||||
; 42 $80,$11 d2r
|
||||
; 44 $84,$11 d2r
|
||||
; 46 $88,$11 d2r
|
||||
; 48 $8C,$A6
|
||||
; 50 $90,$00
|
||||
; 52 $94,$00
|
||||
; 54 $98,$00
|
||||
; 56 $9C,$00
|
||||
; 58 $B0,$32
|
||||
; 60 $B4,$C0
|
||||
; 62 $31,$71
|
||||
; 64 $35,$0D
|
||||
; 66 $39,$33
|
||||
; 68 $3D,$01
|
||||
; 70 $41,$23
|
||||
; 72 $45,$2D
|
||||
; 74 $49,$26
|
||||
; 76 $4D,$00
|
||||
; 78 $51,$5F
|
||||
; 80 $55,$99
|
||||
; 82 $59,$5F
|
||||
; 84 $5D,$94
|
||||
; 86 $61,$05
|
||||
; 88 $65,$05
|
||||
; 90 $69,$05
|
||||
; 92 $6D,$07
|
||||
; 94 $71,$02
|
||||
; 96 $75,$02
|
||||
; 98 $79,$02
|
||||
; 100 $7D,$02
|
||||
; 102 $81,$11
|
||||
; 104 $85,$11
|
||||
; 106 $89,$11
|
||||
; 108 $8D,$A6
|
||||
; 110 $91,$00
|
||||
; 112 $95,$00
|
||||
; 114 $99,$00
|
||||
; 116 $9D,$00
|
||||
; 118 $B0,$32
|
||||
; 120 $B4,$C0
|
||||
; 122 $A4,$17
|
||||
; 124 $A0,$89
|
||||
; 126 $28,$F0
|
||||
; 128 $A5,$0F
|
||||
; 130 $A1,$89
|
||||
; 132 $28,$F1
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Song data created from Music Macro Language (mml) by makebach
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
song:
|
||||
segno: .db $0D,$42,$30,$71,$34,$0D,$38,$33,$3C,$01,$40,$23,$44,$2D,$48,$26
|
||||
.db $4C,$00,$50,$5F,$54,$99,$58,$5F,$5C,$94,$60,$05,$64,$05,$68,$05
|
||||
.db $6C,$07,$70,$02,$74,$02,$78,$02,$7C,$02,$80,$11,$84,$11,$88,$11
|
||||
.db $8C,$A6,$90,$00,$94,$00,$98,$00,$9C,$00,$B0,$32,$B4,$C0,$31,$71
|
||||
.db $35,$0D,$39,$33,$3D,$01,$41,$23,$45,$2D,$49,$26,$4D,$00,$51,$5F
|
||||
.db $55,$99,$59,$5F,$5D,$94,$61,$05,$65,$05,$69,$05,$6D,$07,$71,$02
|
||||
.db $75,$02,$79,$02,$7D,$02,$81,$11,$85,$11,$89,$11,$8D,$A6,$91,$00
|
||||
.db $95,$00,$99,$00,$9D,$00,$B0,$32,$B4,$C0,$A4,$17,$A0,$89,$28,$F0
|
||||
.db $A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF
|
||||
.db $28,$F0,$02,$01,$28,$00,$0D,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01
|
||||
.db $28,$00,$07,$03,$A4,$1F,$A0,$89,$28,$F0,$06,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$00,$0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01
|
||||
.db $02,$01,$28,$00,$0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$07,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0F,$A1,$89,$28,$F1
|
||||
.db $02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0
|
||||
.db $A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF
|
||||
.db $28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89
|
||||
.db $28,$F0,$A5,$07,$A1,$89,$28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C
|
||||
.db $A0,$BF,$28,$F0,$02,$01,$28,$00,$0D,$03,$A4,$1D,$A0,$A5,$28,$F0
|
||||
.db $02,$01,$28,$00,$07,$03,$A4,$1F,$A0,$89,$28,$F0,$06,$01,$28,$01
|
||||
.db $02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$07
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1
|
||||
.db $02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0
|
||||
.db $A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89
|
||||
.db $28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C
|
||||
.db $A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$1A,$06,$A4,$1E
|
||||
.db $A0,$56,$28,$F0,$A5,$0D,$A1,$08,$28,$F1,$04,$02,$28,$00,$28,$01
|
||||
.db $1A,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$0D,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0D,$A1,$08
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F,$A0,$89,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1D,$A0,$A5,$28,$F0,$A5,$0C
|
||||
.db $A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06,$A4,$1D,$A0,$A5
|
||||
.db $28,$F0,$A5,$0F,$A1,$89,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06
|
||||
.db $A4,$1D,$A0,$A5,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1F,$A0,$89,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $1A,$06,$A4,$1D,$A0,$08,$28,$F0,$A5,$0C,$A1,$3B,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$0D,$06,$A4,$1D,$A0,$A5,$28,$F0,$A5,$0F,$A1,$1D
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1D,$A0,$08,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1D,$A0,$08,$28,$F0
|
||||
.db $02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0
|
||||
.db $A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0D,$03,$A5,$0E,$A1,$56
|
||||
.db $28,$F1,$02,$01,$28,$01,$0D,$03,$A5,$0F,$A1,$1D,$28,$F1,$02,$01
|
||||
.db $28,$01,$0D,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0D,$03
|
||||
.db $A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$01,$03,$03,$A5,$0F,$A1,$1D
|
||||
.db $28,$F1,$0A,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89
|
||||
.db $28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C
|
||||
.db $A0,$BF,$28,$F0,$02,$01,$28,$00,$0D,$03,$A4,$1D,$A0,$A5,$28,$F0
|
||||
.db $02,$01,$28,$00,$07,$03,$A4,$1F,$A0,$89,$28,$F0,$06,$01,$28,$01
|
||||
.db $02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$07
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1
|
||||
.db $02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0
|
||||
.db $A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89
|
||||
.db $28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C
|
||||
.db $A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17
|
||||
.db $A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1,$02,$01,$28,$00,$0D,$03
|
||||
.db $A4,$1C,$A0,$BF,$28,$F0,$02,$01,$28,$00,$0D,$03,$A4,$1D,$A0,$A5
|
||||
.db $28,$F0,$02,$01,$28,$00,$07,$03,$A4,$1F,$A0,$89,$28,$F0,$06,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F,$A0,$1D,$28,$F0
|
||||
.db $02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1F,$A0,$89,$28,$F0
|
||||
.db $A5,$07,$A1,$89,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF
|
||||
.db $28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89
|
||||
.db $28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0F
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17
|
||||
.db $A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03
|
||||
.db $A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$1A,$06
|
||||
.db $A4,$1E,$A0,$56,$28,$F0,$A5,$0D,$A1,$08,$28,$F1,$04,$02,$28,$00
|
||||
.db $28,$01,$0D,$06,$A4,$1D,$A0,$A5,$28,$F0,$A5,$0E,$A1,$56,$28,$F1
|
||||
.db $02,$01,$28,$00,$0B,$03,$A4,$1D,$A0,$08,$28,$F0,$02,$01,$28,$01
|
||||
.db $02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C,$A0,$3B,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1D,$A0,$A5,$28,$F0,$A5,$0C
|
||||
.db $A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1D,$A0,$08
|
||||
.db $28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C
|
||||
.db $A0,$BF,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C
|
||||
.db $A0,$3B,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$17,$A0,$89,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$08,$06
|
||||
.db $A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$08,$28,$F1,$02,$01,$28,$00
|
||||
.db $08,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01,$28,$00,$06,$03,$A4,$1D
|
||||
.db $A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$1A,$06,$A4,$15
|
||||
.db $A0,$A5,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$04,$02,$28,$00,$28,$01
|
||||
.db $1A,$06,$A4,$17,$A0,$1D,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$1A,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$04,$01,$28,$01,$1A,$03,$A5,$0D,$A1,$A5,$28,$F1,$04,$01
|
||||
.db $28,$01,$12,$03,$A5,$07,$A1,$89,$28,$F1,$08,$01,$28,$00,$04,$01
|
||||
.db $28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0F,$A1,$89,$28,$F1
|
||||
.db $02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01,$28,$00
|
||||
.db $0D,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$00,$07,$03,$A4,$1F
|
||||
.db $A0,$89,$28,$F0,$06,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C
|
||||
.db $A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1,$02,$01,$28,$01
|
||||
.db $0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01
|
||||
.db $0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$07,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01
|
||||
.db $28,$00,$0D,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$00,$07,$03
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$06,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$1A,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0D
|
||||
.db $A1,$08,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06,$A4,$1E,$A0,$56
|
||||
.db $28,$F0,$A5,$0F,$A1,$89,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06
|
||||
.db $A4,$1E,$A0,$56,$28,$F0,$A5,$0D,$A1,$08,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1F,$A0,$89,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $1A,$06,$A4,$1D,$A0,$A5,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$1A,$06,$A4,$1D,$A0,$A5,$28,$F0,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1D,$A0,$A5,$28,$F0
|
||||
.db $A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F,$A0,$89
|
||||
.db $28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1D,$A0,$08
|
||||
.db $28,$F0,$A5,$0C,$A1,$3B,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06
|
||||
.db $A4,$1D,$A0,$A5,$28,$F0,$A5,$0F,$A1,$1D,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1D,$A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$1D,$A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$01,$0D,$03,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$01
|
||||
.db $0D,$03,$A5,$0F,$A1,$1D,$28,$F1,$02,$01,$28,$01,$0D,$03,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$02,$01,$28,$01,$0D,$03,$A5,$0E,$A1,$56,$28,$F1
|
||||
.db $02,$01,$28,$01,$03,$03,$A5,$0F,$A1,$1D,$28,$F1,$0A,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01
|
||||
.db $28,$00,$0D,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$00,$07,$03
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$06,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$07
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0
|
||||
.db $02,$01,$28,$00,$0D,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$00
|
||||
.db $07,$03,$A4,$1F,$A0,$89,$28,$F0,$06,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0F,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1
|
||||
.db $02,$01,$28,$00,$02,$01,$28,$01,$1A,$06,$A4,$1E,$A0,$56,$28,$F0
|
||||
.db $A5,$0D,$A1,$08,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1D
|
||||
.db $A0,$A5,$28,$F0,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1D,$A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1C,$A0,$3B,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $1A,$06,$A4,$1D,$A0,$A5,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$0D,$06,$A4,$1D,$A0,$08,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0F
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$17,$A0,$89,$28,$F0
|
||||
.db $02,$01,$28,$01,$02,$01,$28,$00,$08,$06,$A4,$1C,$A0,$3B,$28,$F0
|
||||
.db $A5,$0D,$A1,$08,$28,$F1,$02,$01,$28,$00,$08,$03,$A4,$1C,$A0,$BF
|
||||
.db $28,$F0,$02,$01,$28,$00,$06,$03,$A4,$1D,$A0,$08,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$1A,$06,$A4,$15,$A0,$A5,$28,$F0,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06,$A4,$17,$A0,$1D
|
||||
.db $28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06
|
||||
.db $A4,$17,$A0,$89,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$04,$01,$28,$01
|
||||
.db $1A,$03,$A5,$0D,$A1,$A5,$28,$F1,$04,$01,$28,$01,$12,$03,$A5,$07
|
||||
.db $A1,$89,$28,$F1,$08,$01,$28,$00,$04,$01,$28,$01,$0D,$06,$A4,$17
|
||||
.db $A0,$89,$28,$F0,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1C,$A0,$3B,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1C,$A0,$BF,$28,$F0,$A5,$0D,$A1,$FB,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1C,$A0,$3B,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$17,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$1A,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0E,$A1,$56,$28,$F1
|
||||
.db $04,$02,$28,$00,$28,$01,$1A,$06,$A4,$16,$A0,$56,$28,$F0,$A5,$0C
|
||||
.db $A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06,$A4,$16,$A0,$56
|
||||
.db $28,$F0,$A5,$06,$A1,$56,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$1F,$A0,$89,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1F,$A0,$1D,$28,$F0,$A5,$14,$A1,$BF,$28,$F1
|
||||
.db $02,$01,$28,$00,$0B,$03,$A4,$1E,$A0,$56,$28,$F0,$02,$01,$28,$01
|
||||
.db $02,$01,$28,$00,$0D,$06,$A4,$1F,$A0,$1D,$28,$F0,$A5,$0C,$A1,$BF
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$FB,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F
|
||||
.db $A1,$1D,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$14,$A1,$BF,$28,$F1
|
||||
.db $02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$1C,$A0,$BF,$28,$F0
|
||||
.db $A5,$0F,$A1,$1D,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$FB
|
||||
.db $28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$1F,$A0,$89
|
||||
.db $28,$F0,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F
|
||||
.db $A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1E
|
||||
.db $A0,$56,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1F,$A0,$1D,$28,$F0,$A5,$14,$A1,$BF,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1E,$A0,$56,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $1A,$06,$A4,$1F,$A0,$1D,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$1A,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$14,$A1,$3B
|
||||
.db $28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06,$A4,$1E,$A0,$56,$28,$F0
|
||||
.db $A5,$0F,$A1,$89,$28,$F1,$04,$02,$28,$00,$28,$01,$08,$06,$A4,$1F
|
||||
.db $A0,$1D,$28,$F0,$A5,$14,$A1,$3B,$28,$F1,$02,$01,$28,$00,$08,$03
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$02,$01,$28,$00,$06,$03,$A4,$24,$A0,$3B
|
||||
.db $28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1C,$A0,$BF
|
||||
.db $28,$F0,$A5,$14,$A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06
|
||||
.db $A4,$1D,$A0,$FB,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02,$28,$00
|
||||
.db $28,$01,$1A,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0E,$A1,$56,$28,$F1
|
||||
.db $04,$01,$28,$00,$0D,$03,$A4,$1D,$A0,$FB,$28,$F0,$02,$01,$28,$00
|
||||
.db $0D,$03,$A4,$1E,$A0,$56,$28,$F0,$02,$01,$28,$00,$12,$03,$A4,$1F
|
||||
.db $A0,$1D,$28,$F0,$08,$01,$28,$01,$04,$01,$28,$00,$1A,$06,$A4,$1F
|
||||
.db $A0,$89,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01
|
||||
.db $0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0F,$A1,$89,$28,$F1
|
||||
.db $02,$01,$28,$00,$0B,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$01
|
||||
.db $02,$01,$28,$00,$1A,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0D,$A1,$08
|
||||
.db $28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1E,$A0,$56,$28,$F0
|
||||
.db $A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1D,$A0,$A5
|
||||
.db $28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1D,$A0,$08
|
||||
.db $28,$F0,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C
|
||||
.db $A0,$BF,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1D
|
||||
.db $A0,$08,$28,$F0,$A5,$0C,$A1,$3B,$28,$F1,$04,$02,$28,$00,$28,$01
|
||||
.db $0D,$06,$A4,$1D,$A0,$08,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$08,$28,$F1
|
||||
.db $02,$01,$28,$00,$0B,$03,$A4,$17,$A0,$89,$28,$F0,$02,$01,$28,$01
|
||||
.db $02,$01,$28,$00,$1A,$06,$A4,$17,$A0,$1D,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$16,$A0,$56,$28,$F0
|
||||
.db $A5,$0C,$A1,$3B,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$17,$A0,$1D
|
||||
.db $28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$1A,$06,$A4,$15,$A0,$A5
|
||||
.db $28,$F0,$A5,$05,$A1,$A5,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06
|
||||
.db $A4,$1C,$A0,$3B,$28,$F0,$A5,$0F,$A1,$1D,$28,$F1,$02,$01,$28,$01
|
||||
.db $0B,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01
|
||||
.db $0D,$06,$A4,$15,$A0,$A5,$28,$F0,$A5,$0F,$A1,$1D,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$15,$A0,$A5,$28,$F0,$A5,$0F,$A1,$1D,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$0D,$06,$A4,$15,$A0,$A5,$28,$F0,$A5,$0F
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$15,$A0,$A5,$28,$F0
|
||||
.db $A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$1A,$06,$A4,$1D,$A0,$08
|
||||
.db $28,$F0,$A5,$0F,$A1,$1D,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06
|
||||
.db $A4,$1D,$A0,$A5,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1D,$A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$1D,$A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$01,$0D,$03,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$01
|
||||
.db $0D,$03,$A5,$0F,$A1,$1D,$28,$F1,$02,$01,$28,$01,$0D,$03,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$02,$01,$28,$01,$0D,$03,$A5,$0E,$A1,$56,$28,$F1
|
||||
.db $02,$01,$28,$01,$03,$03,$A5,$0F,$A1,$1D,$28,$F1,$0A,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01
|
||||
.db $28,$00,$0D,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$00,$07,$03
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$06,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$07
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0
|
||||
.db $02,$01,$28,$00,$0D,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$00
|
||||
.db $07,$03,$A4,$1F,$A0,$89,$28,$F0,$06,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0F,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1
|
||||
.db $02,$01,$28,$00,$02,$01,$28,$01,$1A,$06,$A4,$1E,$A0,$56,$28,$F0
|
||||
.db $A5,$0D,$A1,$08,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1D
|
||||
.db $A0,$A5,$28,$F0,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1D,$A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1C,$A0,$3B,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $1A,$06,$A4,$1D,$A0,$A5,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$0D,$06,$A4,$1D,$A0,$08,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0F
|
||||
.db $A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$17,$A0,$89,$28,$F0
|
||||
.db $02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0
|
||||
.db $A5,$0D,$A1,$08,$28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF
|
||||
.db $28,$F0,$02,$01,$28,$00,$16,$03,$A4,$15,$A0,$A5,$28,$F0,$04,$01
|
||||
.db $28,$01,$04,$01,$28,$00,$1A,$06,$A4,$17,$A0,$1D,$28,$F0,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06,$A4,$17,$A0,$89
|
||||
.db $28,$F0,$A5,$0F,$A1,$89,$28,$F1,$04,$01,$28,$01,$1A,$03,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$04,$01,$28,$01,$12,$03,$A5,$07,$A1,$89,$28,$F1
|
||||
.db $08,$01,$28,$00,$04,$01,$28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0
|
||||
.db $A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C,$A0,$3B
|
||||
.db $28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$BF
|
||||
.db $28,$F0,$A5,$0D,$A1,$FB,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C
|
||||
.db $A0,$3B,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$17
|
||||
.db $A0,$89,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$17,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$1A,$06
|
||||
.db $A4,$17,$A0,$89,$28,$F0,$A5,$0E,$A1,$56,$28,$F1,$04,$02,$28,$00
|
||||
.db $28,$01,$1A,$06,$A4,$16,$A0,$56,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1
|
||||
.db $04,$02,$28,$00,$28,$01,$1A,$06,$A4,$16,$A0,$56,$28,$F0,$A5,$06
|
||||
.db $A1,$56,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1F,$A0,$89
|
||||
.db $28,$F0,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F
|
||||
.db $A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1E
|
||||
.db $A0,$56,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1F,$A0,$1D,$28,$F0,$A5,$14,$A1,$BF,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1E,$A0,$56,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $0D,$06,$A4,$1F,$A0,$1D,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0D,$A1,$FB,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$1D,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$14,$A1,$BF,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$1D
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$FB,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$0D,$06,$A4,$1F,$A0,$89,$28,$F0,$A5,$0E
|
||||
.db $A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F,$A0,$1D,$28,$F0
|
||||
.db $02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1E,$A0,$56,$28,$F0
|
||||
.db $A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F,$A0,$89
|
||||
.db $28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1F,$A0,$1D
|
||||
.db $28,$F0,$A5,$14,$A1,$BF,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1E
|
||||
.db $A0,$56,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1F
|
||||
.db $A0,$1D,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01
|
||||
.db $1A,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$14,$A1,$3B,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$1A,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$04,$02,$28,$00,$28,$01,$08,$06,$A4,$1F,$A0,$1D,$28,$F0
|
||||
.db $A5,$14,$A1,$3B,$28,$F1,$02,$01,$28,$00,$08,$03,$A4,$1F,$A0,$89
|
||||
.db $28,$F0,$02,$01,$28,$00,$06,$03,$A4,$24,$A0,$3B,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$14
|
||||
.db $A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06,$A4,$1D,$A0,$FB
|
||||
.db $28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01,$1A,$06
|
||||
.db $A4,$1E,$A0,$56,$28,$F0,$A5,$0E,$A1,$56,$28,$F1,$04,$01,$28,$00
|
||||
.db $0D,$03,$A4,$1D,$A0,$FB,$28,$F0,$02,$01,$28,$00,$0D,$03,$A4,$1E
|
||||
.db $A0,$56,$28,$F0,$02,$01,$28,$00,$12,$03,$A4,$1F,$A0,$1D,$28,$F0
|
||||
.db $08,$01,$28,$01,$04,$01,$28,$00,$1A,$06,$A4,$1F,$A0,$89,$28,$F0
|
||||
.db $A5,$0C,$A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1F
|
||||
.db $A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1E,$A0,$56,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $1A,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0D,$A1,$08,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$0D,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0D,$A1,$A5
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1D,$A0,$08,$28,$F0,$A5,$0E
|
||||
.db $A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C,$A0,$BF,$28,$F0
|
||||
.db $02,$01,$28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1D,$A0,$08,$28,$F0
|
||||
.db $A5,$0C,$A1,$3B,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1D
|
||||
.db $A0,$08,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1C,$A0,$BF,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$08,$28,$F1,$02,$01,$28,$00
|
||||
.db $0B,$03,$A4,$17,$A0,$89,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00
|
||||
.db $1A,$06,$A4,$17,$A0,$1D,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$04,$02
|
||||
.db $28,$00,$28,$01,$0D,$06,$A4,$16,$A0,$56,$28,$F0,$A5,$0C,$A1,$3B
|
||||
.db $28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$17,$A0,$1D,$28,$F0,$02,$01
|
||||
.db $28,$01,$02,$01,$28,$00,$1A,$06,$A4,$15,$A0,$A5,$28,$F0,$A5,$05
|
||||
.db $A1,$A5,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1C,$A0,$3B
|
||||
.db $28,$F0,$A5,$0F,$A1,$1D,$28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0D
|
||||
.db $A1,$A5,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06,$A4,$15
|
||||
.db $A0,$A5,$28,$F0,$A5,$0F,$A1,$1D,$28,$F1,$02,$01,$28,$01,$0B,$03
|
||||
.db $A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06
|
||||
.db $A4,$15,$A0,$A5,$28,$F0,$A5,$0F,$A1,$1D,$28,$F1,$02,$01,$28,$01
|
||||
.db $0B,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01
|
||||
.db $0D,$06,$A4,$1C,$A0,$BF,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$15,$A0,$A5,$28,$F0,$A5,$0F,$A1,$89,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$0D,$06,$A4,$15,$A0,$A5,$28,$F0,$A5,$0F,$A1,$89
|
||||
.db $28,$F1,$02,$01,$28,$01,$0B,$03,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$00,$02,$01,$28,$01,$1A,$06,$A4,$1D,$A0,$08,$28,$F0,$A5,$0F
|
||||
.db $A1,$1D,$28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1D,$A0,$A5
|
||||
.db $28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1D
|
||||
.db $A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C
|
||||
.db $A0,$BF,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1D,$A0,$08,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01
|
||||
.db $0D,$03,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$01,$0D,$03,$A5,$0F
|
||||
.db $A1,$1D,$28,$F1,$02,$01,$28,$01,$0D,$03,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$01,$0D,$03,$A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$01
|
||||
.db $03,$03,$A5,$0F,$A1,$1D,$28,$F1,$0A,$01,$28,$00,$02,$01,$28,$01
|
||||
.db $0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01
|
||||
.db $28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01,$28,$00,$0D,$03
|
||||
.db $A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$00,$07,$03,$A4,$1F,$A0,$89
|
||||
.db $28,$F0,$06,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B
|
||||
.db $28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1F
|
||||
.db $A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1F
|
||||
.db $A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1,$02,$01,$28,$01,$0B,$03
|
||||
.db $A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01,$0D,$06
|
||||
.db $A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$01
|
||||
.db $0B,$03,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01
|
||||
.db $0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1
|
||||
.db $02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01,$28,$00
|
||||
.db $0D,$03,$A4,$1D,$A0,$A5,$28,$F0,$02,$01,$28,$00,$07,$03,$A4,$1F
|
||||
.db $A0,$89,$28,$F0,$06,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C
|
||||
.db $A0,$3B,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01,$28,$00,$0B,$03
|
||||
.db $A4,$1F,$A0,$1D,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06
|
||||
.db $A4,$1F,$A0,$89,$28,$F0,$A5,$07,$A1,$89,$28,$F1,$02,$01,$28,$01
|
||||
.db $0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00,$02,$01,$28,$01
|
||||
.db $0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$01,$0B,$03,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$02,$01
|
||||
.db $28,$01,$0D,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $02,$01,$28,$01,$0B,$03,$A5,$0C,$A1,$BF,$28,$F1,$02,$01,$28,$00
|
||||
.db $02,$01,$28,$01,$1A,$06,$A4,$1E,$A0,$56,$28,$F0,$A5,$0D,$A1,$08
|
||||
.db $28,$F1,$04,$02,$28,$00,$28,$01,$0D,$06,$A4,$1D,$A0,$A5,$28,$F0
|
||||
.db $A5,$0E,$A1,$56,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1D,$A0,$08
|
||||
.db $28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$BF
|
||||
.db $28,$F0,$A5,$0F,$A1,$89,$28,$F1,$02,$01,$28,$00,$0B,$03,$A4,$1C
|
||||
.db $A0,$3B,$28,$F0,$02,$01,$28,$01,$02,$01,$28,$00,$1A,$06,$A4,$1D
|
||||
.db $A0,$A5,$28,$F0,$A5,$0C,$A1,$BF,$28,$F1,$04,$02,$28,$00,$28,$01
|
||||
.db $0D,$06,$A4,$1D,$A0,$08,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1,$02,$01
|
||||
.db $28,$00,$0B,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01,$28,$01,$02,$01
|
||||
.db $28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0F,$A1,$89,$28,$F1
|
||||
.db $02,$01,$28,$00,$0B,$03,$A4,$17,$A0,$89,$28,$F0,$02,$01,$28,$01
|
||||
.db $02,$01,$28,$00,$0D,$06,$A4,$1C,$A0,$3B,$28,$F0,$A5,$0D,$A1,$08
|
||||
.db $28,$F1,$02,$01,$28,$00,$0D,$03,$A4,$1C,$A0,$BF,$28,$F0,$02,$01
|
||||
.db $28,$00,$16,$03,$A4,$15,$A0,$A5,$28,$F0,$04,$01,$28,$01,$04,$01
|
||||
.db $28,$00,$1A,$06,$A4,$17,$A0,$1D,$28,$F0,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $04,$02,$28,$00,$28,$01,$1A,$06,$A4,$17,$A0,$89,$28,$F0,$A5,$0F
|
||||
.db $A1,$89,$28,$F1,$04,$01,$28,$01,$1A,$03,$A5,$0D,$A1,$A5,$28,$F1
|
||||
.db $04,$01,$28,$01,$12,$03,$A5,$07,$A1,$89,$28,$F1,$08,$01,$28,$00
|
||||
.db $04,$01,$28,$01,$00
|
||||
;; 7045 bytes in song
|
||||
|
||||
#include "printing.inc"
|
||||
|
||||
.end
|
||||
@@ -9,6 +9,7 @@ pushd ZCPR-DJ && call Build || exit /b & popd
|
||||
pushd ZSDOS && call Build || exit /b & popd
|
||||
pushd CPM3 && call Build || exit /b & popd
|
||||
pushd ZPM3 && call Build || exit /b & popd
|
||||
pushd pSys && call Build || exit /b & popd
|
||||
pushd Apps && call Build || exit /b & popd
|
||||
pushd Forth && call Build || exit /b & popd
|
||||
pushd TastyBasic && call Build || exit /b & popd
|
||||
|
||||
BIN
Source/CPM22/License.pdf
Normal file
BIN
Source/CPM22/License.pdf
Normal file
Binary file not shown.
BIN
Source/CPM3/License.pdf
Normal file
BIN
Source/CPM3/License.pdf
Normal file
Binary file not shown.
@@ -10,6 +10,7 @@ pushd ZSDOS && call Clean.cmd & popd
|
||||
pushd CBIOS && call Clean.cmd & popd
|
||||
pushd CPM3 && call Clean.cmd & popd
|
||||
pushd ZPM3 && call Clean.cmd & popd
|
||||
pushd pSys && call Clean.cmd & popd
|
||||
pushd Forth && call Clean.cmd & popd
|
||||
pushd TastyBasic && call Clean & popd
|
||||
pushd Fonts && call Clean.cmd & popd
|
||||
|
||||
@@ -30,6 +30,8 @@ RomWBW firmware includes:
|
||||
* HBIOS (Hardware BIOS) providing support for the vast majority of
|
||||
RetroBrew Computers I/O components
|
||||
|
||||
* Diagnostics and customizable debugging information.
|
||||
|
||||
* A complete operating system (either CP/M 2.2 or ZSDOS 1.1)
|
||||
|
||||
* A built-in CP/M filesystem containing the basic applications and
|
||||
@@ -919,7 +921,7 @@ device number assigned by the driver.
|
||||
Each RTC device is handled by an appropriate driver (DSRTC, BQRTC,
|
||||
etc.) which is identified by a device type id from the table below.
|
||||
|
||||
**Type ID** | **Disk Device Type**
|
||||
**Type ID** | **RTC Device Type**
|
||||
----------- | --------------------
|
||||
0x00 | DS1302
|
||||
0x10 | BQ4845P
|
||||
@@ -1396,7 +1398,7 @@ Increase by steps of 4 to select the next corresponding note.
|
||||
Increase by steps of 48 to select the same note in next octave.
|
||||
|
||||
If the driver is able to generate the requested note, a success (0) is
|
||||
returned, otherwise a non-zero error state will be returned.
|
||||
returned, otherwise a non-zero error value will be returned.
|
||||
|
||||
The sound chip resolution and its oscillator limit the range and
|
||||
accuracy of the notes played. The typical range of the AY-3-8910
|
||||
@@ -1441,7 +1443,7 @@ the following HBIOS calls would need to be made:
|
||||
|
||||
```
|
||||
HBIOS B=51 C=00 L=80 ; Set volume to half level
|
||||
HBIOS B=53 C=00 L=69 ; Select Middle C (C4) assuming SN76489
|
||||
HBIOS B=53 C=00 HL=152 ; Select Middle C (C4)
|
||||
HBIOS B=54 C=00 D=01 ; Play note on Channel 1
|
||||
```
|
||||
|
||||
@@ -1516,6 +1518,8 @@ AUDIO ID | Value | Device | Returned registers
|
||||
SND_SN76489 | 0x01 | SN76489 | E: Left channel port, L: Right channel port
|
||||
SND_AY38910 | 0x02 | AY-3-8910 | D: Address port, E: Data port
|
||||
SND_BITMODE | 0x03 | I/O PORT | D: Address port, E: Bit mask
|
||||
SND_YM2612 | 0x04 | YM2612 | D: Part 0 Address port, E: Part 0 Data port
|
||||
| | | H: Part 1 Address port, L: Part 1 Data port
|
||||
|
||||
### Function 0x56 -- Sound Duration (SNDDUR)
|
||||
|
||||
@@ -1545,10 +1549,10 @@ and then return.
|
||||
|
||||
| _Exit Results_
|
||||
| A: Status (0=OK, else error)
|
||||
| D: Serial Device Type
|
||||
| E: Serial Device Number
|
||||
| H: Serial Device Unit Mode
|
||||
| L: Serial Device Unit I/O Base Address
|
||||
| D: Sound Device Type
|
||||
| E: Sound Device Number
|
||||
| H: Sound Device Unit Mode
|
||||
| L: Sound Device Unit I/O Base Address
|
||||
|
||||
Reports information about the sound device unit specified. Register D
|
||||
indicates the device type (driver) and register E indicates the physical
|
||||
@@ -1563,6 +1567,7 @@ _Id_ | _Device Type / Driver_
|
||||
0x00 | SN76489
|
||||
0x10 | AY38910
|
||||
0x20 | BITMODE
|
||||
0x30 | YM2612
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
@@ -2166,7 +2171,7 @@ IM1, the size of the table is the number of vectors chained together.
|
||||
For IM2, the size of the table is the number of slots in the vector
|
||||
table.
|
||||
|
||||
#### SYSINT Subfunction 0x10) -- Get Interrupt (INTGET)
|
||||
#### SYSINT Subfunction 0x10 -- Get Interrupt (INTGET)
|
||||
|
||||
| _Entry Parameters_
|
||||
| BC: 0xFC10
|
||||
@@ -2180,7 +2185,7 @@ On entry, register E must contain an index into the interrupt vector
|
||||
table. On return, HL will contain the address of the current interrupt
|
||||
vector at the specified index.
|
||||
|
||||
#### SYSINT Subfunction 0x20) -- Set Interrupt (INTSET)
|
||||
#### SYSINT Subfunction 0x20 -- Set Interrupt (INTSET)
|
||||
|
||||
| _Entry Parameters_
|
||||
| BC: 0xFC20
|
||||
@@ -2198,6 +2203,173 @@ be inserted in the table at the index. On return, HL will contain the
|
||||
previous address in the table at the index.
|
||||
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
|
||||
Errors and diagnostics
|
||||
========
|
||||
|
||||
ROMWBW tries to provide useful information when a run time or build time
|
||||
error occurs. Many sections of the code also have code blocks that can be
|
||||
enable to aid in debugging and in some cases the level of reporting detail
|
||||
can be customized.
|
||||
|
||||
Run time errors
|
||||
--------
|
||||
|
||||
### PANIC
|
||||
|
||||
A panic error indicates a non-recoverable error. The processor status is displayed on the console
|
||||
and interrupts are disabled and execution is halted. A cold boot or reset is required to restart.
|
||||
|
||||
Example error message:
|
||||
|
||||
\>>> PANIC: @06C4[DFA3:DFC3:0100:F103:04FC:0000:2B5E]
|
||||
|
||||
\*** System Halted ***
|
||||
|
||||
The format of the information provided is
|
||||
|
||||
@XXXX [-AF-:-BC-:-DE-:-HL-:-SP-:-IX-:-IY-]
|
||||
|
||||
Where @XXXX is the address the panic was called from. The other information
|
||||
is the CPU register contents.
|
||||
|
||||
Possible reasons a PANIC may occur are:
|
||||
|
||||
- RAM Bank range error when attempting a read or write to a RAM disk.
|
||||
- Sector read function has not been setup but a read was attempted.
|
||||
- An interrupt vector has not been set up when an interrupt was received.
|
||||
- There was an attempt to add more devices than the device table had room for.
|
||||
- An illegal SD card command was encountered.
|
||||
|
||||
The @XXXX memory address can be cross referenced with the build source code to identify
|
||||
which section of the software or hardware caused the fault.
|
||||
|
||||
### SYSCHK
|
||||
|
||||
A syschk error is identified when an internal error is detected. When this
|
||||
occurs an error code is returned to the calling program in the A register.
|
||||
A non-zero result indicates an error.
|
||||
|
||||
Syschk errors may be reported to the console. Whether this occurs depends on
|
||||
the value of the diagnosis level equate DIAGLVL. By default syschk errors
|
||||
are not reported to the console.
|
||||
|
||||
If the diagnosis level is set to display the diagnosis information, then
|
||||
memory address, register dump and error code is displayed.
|
||||
A key differance with the PANIC error is that execution may be continued.
|
||||
|
||||
Example error message:
|
||||
|
||||
\>>> SYSCHK: @06C4[DFA3:DFC3:0100:F103:04FC:0000:2B5E] FD
|
||||
Continue (Y/N)
|
||||
|
||||
The format of the information provided is similar the PANIC report.
|
||||
|
||||
@XXXX [-AF-:-BC-:-DE-:-HL-:-SP-:-IX-:-IY-] YY
|
||||
|
||||
The syschk error codes YY is returned in the A register.
|
||||
|
||||
| Error | Code YY |
|
||||
| ----------------------------------- | -------- |
|
||||
| Success | 0x00 |
|
||||
| Undefined Error | 0xFF |
|
||||
| Function Not Implemented | 0xFE |
|
||||
| Invalid Function | 0xFD |
|
||||
| Invalid Unit Number | 0xFC |
|
||||
| Out Of Memory | 0xFB |
|
||||
| Parameter Out Of Range | 0xFA |
|
||||
| Media Not Present | 0xF9 |
|
||||
| Hardware Not Present | 0xF8 |
|
||||
| I/O Error | 0xF7 |
|
||||
| Write Request To Read-Only Media | 0xF6 |
|
||||
| Device Timeout | 0xF5 |
|
||||
| Invalid Configuration | 0xF4 |
|
||||
| Internal Error | 0xF3 |
|
||||
|
||||
### Error Level reporting
|
||||
|
||||
placeholder
|
||||
|
||||
Build time errors
|
||||
--------
|
||||
|
||||
### Build chain tool errors
|
||||
|
||||
place holder
|
||||
|
||||
### Assembly time check errors
|
||||
|
||||
placeholder
|
||||
|
||||
Diagnostics
|
||||
--------
|
||||
|
||||
### DIAG
|
||||
|
||||
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.
|
||||
|
||||
To use a LED breakout board, it must be connected the computers data, reset and port
|
||||
select lines.
|
||||
|
||||
To enable the DIAG option the following settings must be made in the systems .ini
|
||||
configuration file, where 0xnn is the port address.
|
||||
|
||||
DIAGENABLE .SET TRUE
|
||||
DIAGPORT .SET 0xnn
|
||||
|
||||
The following table shows the ROMWBW process steps in relation to the LED display.
|
||||
|
||||
| LED | ROMWBW Processes |
|
||||
| -------- |:---------------------------------------------- |
|
||||
| `........` | Initial boot |
|
||||
| | Jump to start address |
|
||||
| | Disable interrupts |
|
||||
| | Set interrupt mode 1 |
|
||||
| | Initialize critical ports and initial speed |
|
||||
| `.......O` | Setup initial stack |
|
||||
| | Memory manager and CPU configuration |
|
||||
| | Set top bank to be RAM |
|
||||
| `......OO` | Get and save battery condition |
|
||||
| | Install HBIOS proxy in upper memory |
|
||||
| | If platform is MBC reconfigure memory manager |
|
||||
| | Setup "ROMLESS" HBIOS image or ... |
|
||||
| | Copy HBIOS from ROM to RAM if RAM flag not set |
|
||||
| | Jump to HBIOS in RAM |
|
||||
| | Set running in RAM flag |
|
||||
| `.....OOO` | Finalize configuration for running in RAM |
|
||||
| | Check battery condition |
|
||||
| | Check for recovery mode boot |
|
||||
| `....OOOO` | Identify CPU type |
|
||||
| `...OOOOO` | Set cpu oscillator speed |
|
||||
| | Setup counter-timers |
|
||||
| | Setup heap |
|
||||
| `..OOOOOO` | Preconsole initialization |
|
||||
| `.OOOOOOO` | Boot delay |
|
||||
| | Set boot console device |
|
||||
| | Bios announcement |
|
||||
| `OOOOOOOO` | Display platform information |
|
||||
| | Display memory configuration |
|
||||
| | Display CPU family |
|
||||
| | Verify ROM checksum |
|
||||
| | Report battery condition |
|
||||
| | Perform device driver initialization |
|
||||
| | Report watchdog status |
|
||||
| | Mark HBIOS heap so it is preserved |
|
||||
| | Switch from boot console to CRT if active |
|
||||
| | Display device summary |
|
||||
| | Execute boot loader |
|
||||
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
### Appendix A Driver Instance Data fields
|
||||
@@ -2229,3 +2401,5 @@ The following section outlines the read only data referenced by the
|
||||
| DCNTL* | 14 | 1 | Z180 DMA/WAIT CONTROL |
|
||||
|
||||
* ONLY PRESENT FOR Z180 BUILDS
|
||||
|
||||
|
||||
|
||||
@@ -272,28 +272,22 @@ be VDU type devices or serial devices. If you want to change which
|
||||
device is the console, the ***I*** menu option can be used to choose
|
||||
the unit and it's speed.
|
||||
|
||||
The command format is ```I <u> [<c>]```
|
||||
The command format is ```I <u> [<b>]```
|
||||
|
||||
where ***u*** is unit to select and ***c*** is the optional baud rate code as listed below.
|
||||
where ***u*** is unit to select and ***b*** is the optional baud rate.
|
||||
|
||||
Supported baud rates are:
|
||||
```
|
||||
Code | Rate | Code | Rate | Code | Rate | Code | Rate |
|
||||
------|----------|------|----------|------|----------|------|----------|
|
||||
0 | 75 | 8 | 1800 | 16 | 28880 | 24 | 460800 |
|
||||
1 | 150 | 9 | 2400 | 17 | 38400 | 25 | 614400 |
|
||||
2 | 225 | 10 | 3600 | 18 | 57600 | 26 | 921600 |
|
||||
3 | 300 | 11 | 4800 | 19 | 76800 | 27 | 1228822 |
|
||||
4 | 450 | 12 | 7200 | 20 | 115200 | 28 | 1843200 |
|
||||
5 | 600 | 13 | 9600 | 21 | 153600 | 29 | 2457600 |
|
||||
6 | 900 | 14 | 14400 | 22 | 230400 | 30 | 3686400 |
|
||||
7 | 1200 | 15 | 19200 | 23 | 307200 | 31 | 7372800 |
|
||||
------------------------------------------------------------------------
|
||||
75 450 1800 7200 38400 115200 460800 1843200
|
||||
150 600 2400 9600 28800 153600 614400 2457600
|
||||
225 900 3600 14400 57600 230400 921600 3686400
|
||||
300 1200 4800 19200 76800 307200 1228800 7372800
|
||||
```
|
||||
|
||||
Example: To change current console to 9600 baud
|
||||
|
||||
```
|
||||
I 0 13
|
||||
I 0 9600
|
||||
```
|
||||
|
||||
|
||||
@@ -411,20 +405,20 @@ functional on all of the OS variants included with RomWBW.
|
||||
The following custom applications are found on the ROM disk and are,
|
||||
therefore, globally available.
|
||||
|
||||
| Application | Description |
|
||||
| ----------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. |
|
||||
| SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. |
|
||||
| MODE | Reconfigures serial ports dynamically. |
|
||||
| FDU | Format and test floppy disks. Menu driven interface. |
|
||||
| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing! |
|
||||
| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. |
|
||||
| FLASH | Will Sowerbutts' in-situ ROM programming utility. |
|
||||
| FDISK80 | John Coffman's Z80 hard disk partitioning tool. See documentation in Doc directory. |
|
||||
| TALK | Direct console I/O to a specified character device. |
|
||||
| RTC | Manage and test the Real Time Clock hardware. |
|
||||
| TIMER | Display value of running periodic system timer. |
|
||||
| CPUSPD | Change the running CPU speed and wait states of the system. |
|
||||
| Application | Description |
|
||||
| ------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. |
|
||||
| SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. |
|
||||
| MODE | Reconfigures serial ports dynamically. |
|
||||
| FDU | Format and test floppy disks. Menu driven interface. |
|
||||
| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing! |
|
||||
| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. |
|
||||
| FLASH | Will Sowerbutts' in-situ ROM programming utility. |
|
||||
| FDISK80 | John Coffman's Z80 hard disk partitioning tool. See documentation in Doc directory. |
|
||||
| TALK | Direct console I/O to a specified character device. |
|
||||
| RTC | Manage and test the Real Time Clock hardware. |
|
||||
| TIMER | Display value of running periodic system timer. |
|
||||
| CPUSPD | Change the running CPU speed and wait states of the system. |
|
||||
|
||||
Some custom applications do not fit on the ROM disk. They are found on the
|
||||
disk image files or the individual files can be found in the Binary\\Apps
|
||||
@@ -434,7 +428,7 @@ directory of the distribution.
|
||||
| ----------- | -------------------------------------------------------------- |
|
||||
| TUNE | Play .PT2, .PT3, .MYM audio files. |
|
||||
| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). |
|
||||
| INTTEST | Test interrupt vector hooking. |
|
||||
| INTTEST | Test interrupt vector hooking. |
|
||||
|
||||
Additional documentation on all of these applications can be found in
|
||||
"RomWBW Applications.pdf" in the Doc directory of the distribution.
|
||||
@@ -463,6 +457,16 @@ will find some files on the ROM disk that will work with ZSDOS, but
|
||||
will not work on CP/M 2.2. For example, `LDDS`, which loads the
|
||||
ZSDOS date/time stamper will only run on ZSDOS.
|
||||
|
||||
## Flash ROM Disks
|
||||
|
||||
The limitation of ROM disks being read only can be overcome on some
|
||||
platforms with the appropriate selection of Flash ROM chip and
|
||||
system configuration. In this case the flash-file system can be
|
||||
enabled which will allow the ROM disk to be read and written to.
|
||||
Flash devices have a limited write lifespan and continual usage will
|
||||
eventually wear out the device. It is not suited for high usage
|
||||
applications.
|
||||
|
||||
## Disk Devices
|
||||
|
||||
While the RAM/ROM disks provide a functional system, they are not
|
||||
@@ -680,6 +684,11 @@ boot from disk as is. You do not need to run `SYSCOPY` on them to make
|
||||
them bootable. However, if you upgrade your ROM, you should use `SYSCOPY`
|
||||
to update the system tracks.
|
||||
|
||||
A full implementation of the UCSD p-System for Z80 under RomWBW is also
|
||||
provided. This is a completely separate and standalone disk image
|
||||
called psys.img. It contains 6 p-System filesystem slices, but these
|
||||
are not interoperable with the CP/M slices described above.
|
||||
|
||||
## Booting Disks
|
||||
|
||||
When starting your system, following the hardware initialization, you
|
||||
@@ -865,6 +874,73 @@ which is confusing, but this is as intended by the ZPM3 distribution.
|
||||
I believe it was done this way to make it easier for users to transition
|
||||
from CP/M 3 to ZPM3.
|
||||
|
||||
## QPM
|
||||
|
||||
QPM is another OS providing compatibility with and enhancements
|
||||
to CP/M 2.2. It is provided as bootable disk images for RomWBW.
|
||||
|
||||
The following documentation files from the original QPM distribution
|
||||
are included in the RomWBW Doc directory:
|
||||
|
||||
- QP/M 2.7 Features and Facilities (qcp27.pdf)
|
||||
- QP/M 2.7 Interface Guide (qdos27.pdf)
|
||||
- QP/M 2.7 Installation Guide and Supplements (qpm27.pdf)
|
||||
|
||||
Refer to the ReadMe.txt file in Source/Images/d_qpm for more details
|
||||
regarding the RomWBW adaptation and customizations.
|
||||
|
||||
### Notes
|
||||
|
||||
- QPM is not available as source. This implementation was based
|
||||
on the QPM binary distribution and has been minimally customized
|
||||
for RomWBW.
|
||||
|
||||
- QINSTALL is used to customize QPM. It is included on the
|
||||
disk image. You should review the notes in the ReadMe.txt
|
||||
file in Source/Image/d_qpm before making changes.
|
||||
|
||||
## UCSD p-System
|
||||
|
||||
This is a full implementation of the UCSD p-System IV.0 for Z80
|
||||
running under RomWBW. Unlike the OSes above, p-System uses it's
|
||||
own unique filesystem and is not interoperable with other OSes.
|
||||
|
||||
It was derived from the p-System Adaptable Z80 System. Unlike
|
||||
some other distributions, this implements a native p-System
|
||||
Z80 BIOS, it does not rely on a CP/M BIOS layer.
|
||||
|
||||
The p-System is provided on a hard disk image file called
|
||||
psys.img. This must be copied to it's own dedicated hard
|
||||
disk media (CF Card, SD Card, etc.). It is booted by
|
||||
selecting slices 0 of the corresponding hard disk unit at
|
||||
the RomWBW Boot Loader prompt.
|
||||
|
||||
The p-System Users Manual is included in the Doc directory
|
||||
of the distribution as "UCSD p-System Users Manual.pdf".
|
||||
|
||||
Refer to the ReadMe.txt file in Source/pSys for more details.
|
||||
|
||||
### Notes
|
||||
|
||||
- There is no floppy support at this time.
|
||||
|
||||
- The hard disk image contains 6 p-System slices which are
|
||||
assigned to p-System unit numbers 4, 5, 9, 10, 11 which
|
||||
is standard for p-System. Slices 0-5 are assigned
|
||||
sequentially to these p-System unit numbers and it is
|
||||
not possible to reassign them.
|
||||
|
||||
- p-System relies heavily on the use of a full screen
|
||||
terminal. This implementation has been setup to expect
|
||||
an ANSI or DEC VT-100 terminal or emulator. The screen
|
||||
output will be garbled if no such terminal or emulator
|
||||
is used for console output.
|
||||
|
||||
- There is no straightforward mechanism to move files in
|
||||
and out of p-System. However, the .vol files in Source/pSys
|
||||
can be read and modified by CiderPress. CiderPress is able
|
||||
to add and remove individual files.
|
||||
|
||||
## FreeRTOS
|
||||
|
||||
Phillip Stevens has ported FreeRTOS to run under RomWBW. FreeRTOS is
|
||||
|
||||
@@ -316,7 +316,9 @@ D+ | d1 d2 -- d1+d2 | Add double numbers
|
||||
2>R | d -- | 2 to R
|
||||
2R> | d -- | fetch 2 from R
|
||||
M*/ | d1 n2 u3 -- d=(d1*n2)/u3 | double precision mult. div
|
||||
|
||||
SVC | hl de bc n -- hl de bc af | Execute a ROMWBW function
|
||||
P! | n p -- | Write a byte to a I/O port
|
||||
P@ | p -- n | Read a byte from and I/O port
|
||||
|
||||
# BASIC
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ setlocal
|
||||
if "%1" == "dist" goto :dist
|
||||
|
||||
::
|
||||
:: Build [<platform> [<config> [<romsize> [<romname>]]]]
|
||||
:: Build [<platform> [<config> [<romname>]]]
|
||||
::
|
||||
|
||||
set TOOLS=../../Tools
|
||||
@@ -28,11 +28,21 @@ PowerShell -ExecutionPolicy Unrestricted .\Build.ps1 %* || exit /b
|
||||
::
|
||||
:: Below, we process the command file created by the PowerShell script.
|
||||
:: This sets the environment variables: Platform, Config, ROMName,
|
||||
:: ROMSize, & CPUType.
|
||||
:: & CPUType.
|
||||
::
|
||||
|
||||
call build_env.cmd
|
||||
|
||||
::
|
||||
:: Create a small app that is used to export key build variables of the build.
|
||||
:: Then run the app to output a file with the variables. Finally, read the
|
||||
:: file into variables usable in this batch file.
|
||||
::
|
||||
|
||||
tasm -t80 -g3 -dCMD hbios_env.asm hbios_env.com hbios_env.lst || exit /b
|
||||
zxcc hbios_env >hbios_env.cmd
|
||||
call hbios_env.cmd
|
||||
|
||||
::
|
||||
:: Start of the actual build process for a given ROM.
|
||||
::
|
||||
@@ -183,34 +193,34 @@ goto :eof
|
||||
|
||||
:dist
|
||||
|
||||
call Build SBC std 512 || exit /b
|
||||
call Build SBC simh 512 || exit /b
|
||||
call Build MBC std 512 || exit /b
|
||||
call Build ZETA std 512 || exit /b
|
||||
call Build ZETA2 std 512 || exit /b
|
||||
call Build N8 std 512 || exit /b
|
||||
call Build MK4 std 512 || exit /b
|
||||
call Build RCZ80 std 512 || exit /b
|
||||
call Build RCZ80 skz 512 || exit /b
|
||||
call Build RCZ80 kio 512 || exit /b
|
||||
call Build RCZ80 mt 512 || exit /b
|
||||
call Build RCZ80 duart 512 || exit /b
|
||||
call Build RCZ80 zrc 512 || exit /b
|
||||
call Build RCZ80 zrc_ram 0 || exit /b
|
||||
call Build RCZ180 ext 512 || exit /b
|
||||
call Build RCZ180 nat 512 || exit /b
|
||||
call Build RCZ280 ext 512 || exit /b
|
||||
call Build RCZ280 nat 512 || exit /b
|
||||
call Build RCZ280 nat_zz 512 || exit /b
|
||||
call Build RCZ280 nat_zzr 256 || exit /b
|
||||
call Build SCZ180 126 512 || exit /b
|
||||
call Build SCZ180 130 512 || exit /b
|
||||
call Build SCZ180 131 512 || exit /b
|
||||
call Build SCZ180 140 512 || exit /b
|
||||
call Build EZZ80 std 512 || exit /b
|
||||
call Build EZZ80 tz80 512 || exit /b
|
||||
call Build DYNO std 512 || exit /b
|
||||
call Build UNA std 512 || exit /b
|
||||
call Build RPH std 512 || exit /b
|
||||
call Build SBC std || exit /b
|
||||
call Build SBC simh || exit /b
|
||||
call Build MBC std || exit /b
|
||||
call Build ZETA std || exit /b
|
||||
call Build ZETA2 std || exit /b
|
||||
call Build N8 std || exit /b
|
||||
call Build MK4 std || exit /b
|
||||
call Build RCZ80 std || exit /b
|
||||
call Build RCZ80 skz || exit /b
|
||||
call Build RCZ80 kio || exit /b
|
||||
call Build RCZ80 mt || exit /b
|
||||
call Build RCZ80 duart || exit /b
|
||||
call Build RCZ80 zrc || exit /b
|
||||
call Build RCZ80 zrc_ram || exit /b
|
||||
call Build RCZ180 ext || exit /b
|
||||
call Build RCZ180 nat || exit /b
|
||||
call Build RCZ280 ext || exit /b
|
||||
call Build RCZ280 nat || exit /b
|
||||
call Build RCZ280 nat_zz || exit /b
|
||||
call Build RCZ280 nat_zzr || exit /b
|
||||
call Build SCZ180 126 || exit /b
|
||||
call Build SCZ180 130 || exit /b
|
||||
call Build SCZ180 131 || exit /b
|
||||
call Build SCZ180 140 || exit /b
|
||||
call Build EZZ80 std || exit /b
|
||||
call Build EZZ80 tz80 || exit /b
|
||||
call Build DYNO std || exit /b
|
||||
call Build UNA std || exit /b
|
||||
call Build RPH std || exit /b
|
||||
|
||||
goto :eof
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
param([string]$Platform = "", [string]$Config = "", [int]$RomSize = 512, [string]$ROMName = "")
|
||||
param([string]$Platform = "", [string]$Config = "", [string]$ROMName = "")
|
||||
|
||||
# If a PowerShell exception occurs, just stop the script immediately.
|
||||
$ErrorAction = 'Stop'
|
||||
@@ -67,19 +67,6 @@ while ($true)
|
||||
$Config = (Read-Host -prompt "Configuration").Trim()
|
||||
}
|
||||
|
||||
#
|
||||
# Establish the ROM size (in KB). It may have been passed in on the command line. Validate
|
||||
# $RomSize and loop requesting a new value as long as it is not valid. The valid ROM sizes
|
||||
# are just hard-coded for now. The ROM size does nothing more than determine the size of the
|
||||
# ROM disk portion of the ROM image.
|
||||
#
|
||||
|
||||
while ($true)
|
||||
{
|
||||
if (($RomSize -eq 0) -or ($RomSize -eq 128) -or ($RomSize -eq 256) -or ($RomSize -eq 512) -or ($RomSize -eq 1024)) {break}
|
||||
$RomSize = (Read-Host -prompt "ROM Size [0|128|256|512|1024]").Trim()
|
||||
}
|
||||
|
||||
#
|
||||
# TASM should be invoked with the proper CPU type. Below, the CPU type is inferred
|
||||
# from the platform.
|
||||
@@ -103,7 +90,7 @@ while ($ROMName -eq "")
|
||||
}
|
||||
|
||||
# Current date/time is queried here to be subsequently imbedded in image
|
||||
$TimeStamp = '"' + (Get-Date -Format 'yyyy-MM-dd') + '"'
|
||||
$TimeStamp = (Get-Date -Format 'yyyy-MM-dd')
|
||||
|
||||
#
|
||||
# Since TASM has no mechanism to include files dynamically based on variables, a file
|
||||
@@ -115,9 +102,8 @@ $TimeStamp = '"' + (Get-Date -Format 'yyyy-MM-dd') + '"'
|
||||
@"
|
||||
; RomWBW Configured for ${Platform} ${Config}, $(Get-Date -Format "s")
|
||||
;
|
||||
#DEFINE TIMESTAMP ${TimeStamp}
|
||||
;
|
||||
ROMSIZE .EQU ${ROMSize}
|
||||
#DEFINE TIMESTAMP "${TimeStamp}"
|
||||
#DEFINE CONFIG "${Platform}_${Config}"
|
||||
;
|
||||
#INCLUDE "${ConfigFile}"
|
||||
;
|
||||
@@ -134,6 +120,5 @@ ROMSIZE .EQU ${ROMSize}
|
||||
set Platform=${Platform}
|
||||
set Config=${Config}
|
||||
set ROMName=${ROMName}
|
||||
set ROMSize=${ROMSize}
|
||||
set CPUType=${CPUType}
|
||||
"@ | Out-File "build_env.cmd" -Encoding ASCII
|
||||
|
||||
@@ -6,38 +6,39 @@ set -e
|
||||
export ROM_PLATFORM
|
||||
export ROM_CONFIG
|
||||
export ROMSIZE
|
||||
export CPUFAM
|
||||
|
||||
if [ "${ROM_PLATFORM}" == "dist" ] ; then
|
||||
echo "!!!DISTRIBUTION BUILD!!!"
|
||||
ROM_PLATFORM="DYNO"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="EZZ80"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="EZZ80"; ROM_CONFIG="tz80"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="MK4"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="N8"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="ext"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="nat"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="ext"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zz"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zzr"; ROMSIZE="256"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="kio"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="mt"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="duart"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="skz"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_ram"; ROMSIZE="0"; bash Build.sh
|
||||
ROM_PLATFORM="RPH"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SBC"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SBC"; ROM_CONFIG="simh"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="MBC"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="126"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="130"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="131"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="140"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="UNA"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="ZETA"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="ZETA2"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="DYNO"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="EZZ80"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="EZZ80"; ROM_CONFIG="tz80"; bash Build.sh
|
||||
ROM_PLATFORM="MK4"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="N8"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="ext"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="nat"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="ext"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zz"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zzr"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="kio"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="mt"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="duart"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="skz"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_ram"; bash Build.sh
|
||||
ROM_PLATFORM="RPH"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="SBC"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="SBC"; ROM_CONFIG="simh"; bash Build.sh
|
||||
ROM_PLATFORM="MBC"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="126"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="130"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="131"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="140"; bash Build.sh
|
||||
ROM_PLATFORM="UNA"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="ZETA"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="ZETA2"; ROM_CONFIG="std"; bash Build.sh
|
||||
exit
|
||||
fi
|
||||
|
||||
@@ -59,19 +60,12 @@ done
|
||||
|
||||
CONFIGFILE=Config/${ROM_PLATFORM}_${ROM_CONFIG}.asm
|
||||
|
||||
if [ -z "${ROMSIZE}" ] ; then
|
||||
ROMSIZE="512"
|
||||
fi
|
||||
|
||||
while [ ! '(' "${ROMSIZE}" = 1024 -o "${ROMSIZE}" = 512 -o "${ROMSIZE}" = 256 -o "${ROMSIZE}" = 128 -o "${ROMSIZE}" = 0 ')' ] ; do
|
||||
echo -n "Romsize :"
|
||||
read ROMSIZE
|
||||
done
|
||||
|
||||
if [ -z "${ROMNAME}" ] ; then
|
||||
ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG}
|
||||
fi
|
||||
|
||||
echo -e "\n\nBuilding $ROM_PLATFORM $ROM_CONFIG\n\n"
|
||||
|
||||
TIMESTAMP=$(date +%Y-%m-%d)
|
||||
|
||||
if [ "$1" = "-d" ] ; then
|
||||
@@ -86,19 +80,21 @@ fi
|
||||
|
||||
CONFIGFILE=Config/${ROM_PLATFORM}_${ROM_CONFIG}.asm
|
||||
|
||||
echo Building $ROMNAME for $ROM_PLATFORM $ROM_CONFIG $ROMSIZE
|
||||
|
||||
cat <<- EOF > build.inc
|
||||
; RomWBW Configured for ${ROM_PLATFORM} ${ROM_CONFIG} ${TIMESTAMP}
|
||||
;
|
||||
#DEFINE TIMESTAMP "${TIMESTAMP}"
|
||||
;
|
||||
ROMSIZE .EQU ${ROMSIZE}
|
||||
#DEFINE CONFIG "${ROM_PLATFORM}_${ROM_CONFIG}"
|
||||
;
|
||||
#INCLUDE "${CONFIGFILE}"
|
||||
;
|
||||
EOF
|
||||
|
||||
make hbios_env.sh
|
||||
source hbios_env.sh
|
||||
|
||||
echo Creating ${ROMSIZE}K ROM named ${ROMNAME}.rom
|
||||
|
||||
export OBJECTS
|
||||
OBJECTS="${ROMNAME}.rom"
|
||||
if [ "${ROM_PLATFORM}" != "UNA" ] ; then
|
||||
|
||||
@@ -14,3 +14,4 @@ if exist *.sys del *.sys
|
||||
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
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "TINYZ80"
|
||||
;
|
||||
#include "cfg_ezz80.asm"
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Multi Board Computer"
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_mbc.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZZ80MB"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "Config/RCZ280_nat.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZZRCC"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "Config/RCZ280_nat.asm"
|
||||
@@ -31,6 +29,7 @@
|
||||
CPUOSC .SET 14745600 ; CPU OSC FREQ IN MHZ
|
||||
;
|
||||
RAMSIZE .SET 256 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .SET 256 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .SET 256 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
;
|
||||
RAMLOC .SET 18 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014 (DUART)"
|
||||
;
|
||||
#include "Config/RCZ80_std.asm"
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014 (KIO)"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "Config/RCZ80_std.asm"
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014 (MT)"
|
||||
;
|
||||
#include "Config/RCZ80_std.asm"
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014 (SKZ)"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "Config/RCZ80_std.asm"
|
||||
|
||||
@@ -36,7 +36,7 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
;
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_RCV9958 ; TMS: DRIVER MODE: TMSMODE_[RC/RCV9958]
|
||||
TMSMODE .SET TMSMODE_MSX9958 ; TMS: DRIVER MODE: TMSMODE_[RC/MSX9958]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -31,6 +31,7 @@ CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
|
||||
;
|
||||
RAMSIZE .SET 2048 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
MEMMGR .SET MM_ZRC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
|
||||
;
|
||||
MDROM .SET FALSE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -62,6 +62,8 @@ SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
;
|
||||
PRPENABLE .SET TRUE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY38910ENABLE .SET TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER (AY38910.ASM)
|
||||
;
|
||||
SN7ENABLE .SET TRUE ; SN : SN76489 DRIVER
|
||||
SN76489ENABLE .SET TRUE ; SN: ENABLE SN76489 SOUND DRIVER (SN76489.ASM)
|
||||
;
|
||||
YM2612ENABLE .SET TRUE ; YM2612: ENABLE ECB VGM YM2612 SOUND DRIVER (YM2612.ASM)
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SBC (simh)"
|
||||
;
|
||||
#include "cfg_sbc.asm"
|
||||
;
|
||||
INTMODE .SET 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SC126"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_scz180.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SC130"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_scz180.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SC131"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_scz180.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SC140"
|
||||
;
|
||||
#include "cfg_scz180.asm"
|
||||
;
|
||||
CPUOSC .SET 18432000 ; CPU OSC FREQ IN MHZ
|
||||
|
||||
@@ -6,26 +6,31 @@ MOREDIFF = game.bin hbios_rom.bin nascom.bin usrrom.bin \
|
||||
SUBDIRS =
|
||||
DEST = ../../Binary
|
||||
TOOLS =../../Tools
|
||||
OTHERS = *.img *.rom *.com *.upd *.bin *.z80 cpm.sys zsys.sys Build.inc font*.asm *.dat
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm fontcgac.asm fontcgau.asm
|
||||
|
||||
ifneq ($(findstring $(ROM_PLATFORM), N8 MK4 RCZ180 SCZ180 DYNO RPH),)
|
||||
TASM=$(BINDIR)/uz80as -t hd64180
|
||||
endif
|
||||
|
||||
ifneq ($(findstring $(ROM_PLATFORM), RCZ280),)
|
||||
TASM=$(BINDIR)/uz80as -t z280
|
||||
endif
|
||||
OTHERS = *.img *.rom *.com *.upd *.bin *.z80 cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh
|
||||
|
||||
# DIFFMAKE = 1
|
||||
|
||||
# DIFFPATH = $(DIFFTO)/Binary
|
||||
|
||||
ifeq ($(DIFFMAKE),1)
|
||||
DIFFBUILD := -d $(DIFFTO)/Source/HBIOS
|
||||
endif
|
||||
|
||||
# DIFFPATH = $(DIFFTO)/Binary
|
||||
ifeq ($(OBJECTS),)
|
||||
start:
|
||||
chmod +x Build.sh
|
||||
bash Build.sh $(DIFFBUILD)
|
||||
endif
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm fontcgac.asm fontcgau.asm
|
||||
|
||||
ifeq ($(CPUFAM),2)
|
||||
TASM=$(BINDIR)/uz80as -t hd64180
|
||||
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
|
||||
|
||||
@@ -39,19 +44,15 @@ endif
|
||||
|
||||
ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG}
|
||||
|
||||
#$(info DEPS=$(DEPS))
|
||||
#$(info ROM_PLATFORM=$(ROM_PLATFORM))
|
||||
#$(info ROM_CONFIG=$(ROM_CONFIG))
|
||||
#$(info ROMSIZE=$(ROMSIZE))
|
||||
#$(info ROMNAME=$(ROMNAME))
|
||||
# $(info DEPS=$(DEPS))
|
||||
# $(info ROM_PLATFORM=$(ROM_PLATFORM))
|
||||
# $(info ROM_CONFIG=$(ROM_CONFIG))
|
||||
# $(info ROMSIZE=$(ROMSIZE))
|
||||
# $(info ROMNAME=$(ROMNAME))
|
||||
# $(info CPUFAM=$(CPUFAM))
|
||||
# $(info TASM=$(TASM))
|
||||
|
||||
all::
|
||||
if [ -z "$(OBJECTS)" ] ; then \
|
||||
chmod +x Build.sh ; \
|
||||
bash Build.sh $(DIFFBUILD) ; \
|
||||
fi
|
||||
|
||||
$(ROMNAME).rom $(ROMNAME).com $(ROMNAME).img : $(ROMDEPS)
|
||||
$(OBJECTS) : $(ROMDEPS)
|
||||
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin ../CPM22/cpm_$(BIOS).bin >osimg.bin
|
||||
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin >osimg_small.bin
|
||||
if [ $(ROM_PLATFORM) != UNA ] ; then \
|
||||
@@ -99,6 +100,12 @@ hbios_app.bin: hbios.asm build.inc $(DEPS)
|
||||
hbios_img.bin: hbios.asm build.inc $(DEPS)
|
||||
$(TASM) -dIMGBOOT hbios.asm hbios_img.bin hbios_img.lst
|
||||
|
||||
hbios_env.com: hbios_env.asm build.inc
|
||||
$(TASM) -dBASH hbios_env.asm hbios_env.com hbios_env.lst
|
||||
|
||||
hbios_env.sh: hbios_env.com
|
||||
$(ZXCC) hbios_env.com >hbios_env.sh
|
||||
|
||||
romldr.bin: build.inc
|
||||
dbgmon.bin: build.inc
|
||||
nascom.bin: build.inc
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#IF AUDIOTRACE
|
||||
;
|
||||
#DEFINE AUDTRACE(STR) PUSH DE \ LD DE, STR \ CALL WRITESTR \ POP DE
|
||||
#DEFINE AUDTRACE_A CALL PRTHEXBYTE
|
||||
#DEFINE AUDTRACE_B PUSH AF \ LD A, B \ CALL PRTHEXBYTE \ POP AF
|
||||
@@ -9,12 +10,13 @@
|
||||
#DEFINE AUDTRACE_BC PUSH HL \ PUSH BC \ POP HL \ CALL PRTHEXWORDHL \ POP HL
|
||||
#DEFINE AUDTRACE_DE PUSH HL \ PUSH DE \ POP HL \ CALL PRTHEXWORDHL \ POP HL
|
||||
#DEFINE AUDTRACE_IY PUSH HL \ PUSH IY \ POP HL \ CALL PRTHEXWORDHL \ POP HL
|
||||
|
||||
;
|
||||
#DEFINE AUDDEBUG(S) push hl \ CALL PRTSTRD \ .TEXT S \ .TEXT "$" \ pop hl ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED
|
||||
|
||||
;
|
||||
#DEFINE AUDTRACE_CR AUDDEBUG("\r\n$")
|
||||
|
||||
;
|
||||
#ELSE
|
||||
;
|
||||
#DEFINE AUDTRACE(S)
|
||||
#DEFINE AUDTRACE_A
|
||||
#DEFINE AUDTRACE_B
|
||||
@@ -25,51 +27,76 @@
|
||||
#DEFINE AUDTRACE_HL
|
||||
#DEFINE AUDTRACE_DE
|
||||
#DEFINE AUDTRACE_IY
|
||||
|
||||
;
|
||||
#DEFINE AUDDEBUG(STR)
|
||||
|
||||
;
|
||||
#DEFINE AUDTRACE_CR
|
||||
;
|
||||
#ENDIF
|
||||
|
||||
|
||||
#IFNDEF AUDIOUTILS
|
||||
#DEFINE AUDIOUTILS
|
||||
|
||||
;
|
||||
#IFNDEF AUDIO_INC
|
||||
#DEFINE AUDIO_INC
|
||||
;
|
||||
; NOTE TABLE VALUES ARE SHIFTED A FEW EXTRA BITS TO MAKE THE
|
||||
; DIVISION AS ACCURATE AS POSSIBLE.
|
||||
;
|
||||
AUD_SCALE .EQU 3
|
||||
;
|
||||
; ON ENTRY, DE IS ADDRESS OF NOTE TABLE, HL IS NOTE TO PLAY
|
||||
; NOTE VALUE 0 MEANS B0b/A0# IN OCTAVE 0 WHICH IS THE FIRST ENTRY
|
||||
; OF THE NOTE TABLE. THE NOTE TABLE REPRESENTS THE FREQUENCIES
|
||||
; FOR 1 FULL OCTAVE IN QUARTER NOTES. SINCE THERE ARE 12 NOTES
|
||||
; IN AN OCTAVE, THE TABLE HAS 48 ENTRIES FOR ALL QUARTER NOTES.
|
||||
;
|
||||
; ON EXIT, HL CONTAINS THE PERIOD VALUE TO PROGRAM INTO THE PSG
|
||||
; DERIVED FROM THE NOTE TABLE SCALED TO THE REQUESTED OCTAVE.
|
||||
;
|
||||
AUD_NOTE:
|
||||
AUDDEBUG("AUDNOTE ")
|
||||
AUDTRACE_HL
|
||||
AUDTRACE_CR
|
||||
AUDTRACE_DE
|
||||
AUDTRACE_CR
|
||||
|
||||
push de
|
||||
LD DE, 48
|
||||
CALL DIV16
|
||||
; BC IS OCTAVE COUNT
|
||||
; HL is NOTE WITIN OCTAVE
|
||||
ADD HL, HL
|
||||
pop de
|
||||
ADD HL, DE
|
||||
|
||||
LD A, (HL) ; RETRIEVE PERIOD COUNT FROM SN7NOTETBL
|
||||
INC HL
|
||||
LD H, (HL)
|
||||
LD L, A
|
||||
|
||||
INC C
|
||||
;
|
||||
; START BY SEPARATING THE NOTE AND OCTAVE PORTION
|
||||
; OF THE INCOMING TONE VALUE IN HL
|
||||
PUSH DE ; SAVE NOTE TABLE ADR
|
||||
LD DE,48 ; 48 QUARTERNOTES PER OCTAVE
|
||||
CALL DIV16 ; SEPARATE OCTAVE AND NOTE
|
||||
;
|
||||
; THE QUOTIENT (BC) IS THE OCTAVE NUMBER REQUESTED
|
||||
; THE REMAINDER (HL) IS THE QUARTER NOTE WITHIN THE OCTAVE.
|
||||
;
|
||||
; NOW USE THE QUARTER NOTE VALUE TO LOOKUP THE CORRESPONDING
|
||||
; PSG PERIOD VALUE IN THE NOTE TABLE.
|
||||
ADD HL,HL ; SCALE FOR 2 BYTE TABLE ENTRY SIZE
|
||||
POP DE ; RECOVER THE TABLE ADR
|
||||
ADD HL,DE ; HL := DESIRED TABLE ENTRY ADR
|
||||
LD A,(HL) ; GET LOW BYTE OF PERIOD TO A
|
||||
INC HL ; POINT TO HIGH BYTE VALUE
|
||||
LD H,(HL) ; GET HIGH BYTE OF PERIOD TO H
|
||||
LD L,A ; PUT LOW BYTE INTO L
|
||||
;
|
||||
; NOW WE SCALE THE PERIOD VALUE DOWN BASED ON THE OCTAVE VALUE IN C
|
||||
; AND BY THE AUD_SCALE VALUE THAT WAS USED IN THE NOTE TABLE.
|
||||
; FOR EACH OCTAVE, THE PERIOD IS HALVED WHICH DOUBLES THE FREQUENCY
|
||||
; THAT WILL BE PRODUCED BY THE PSG. SINCE MOVING UP AN OCTAVE
|
||||
; SHOULD PRODUCE A FREQUENCY THAT IS TWICE THE LOWER OCTIAVE, THIS
|
||||
; WORKS NICELY, ALTHOUGH SOME ERROR MAY BE INTRODUCED.
|
||||
;
|
||||
LD A,AUD_SCALE ; SHIFT BY AUD_SCALE BITS
|
||||
ADD A,C ; ... AND OCTAVE
|
||||
LD B,A ; USE AS LOOP COUNTER
|
||||
AUD_NOTE1:
|
||||
DEC C
|
||||
JR Z, AUD_NOTE2
|
||||
SRL H
|
||||
RR L
|
||||
JR AUD_NOTE1
|
||||
|
||||
AUD_NOTE2:
|
||||
LD A, L ; IF NOT ZERO
|
||||
OR H
|
||||
RET NZ ; RETURN THE CALCULATED PERIOD
|
||||
|
||||
LD H, $FF ; OTHERWISE RETURN -1 PERIOD (ERROR)
|
||||
LD L, $FF
|
||||
SRL H ; RIGHT SHIFT HL
|
||||
RR L ; ... BY ONE BIT
|
||||
DJNZ AUD_NOTE1 ; LOOP UNTIL DONE
|
||||
;
|
||||
; IF THE RESULTANT PERIOD IS ZERO, IT MEANS THAT THE REQUESTED
|
||||
; PERIOD IS TOO LOW (FREQUENCY TOO HIGH) FOR THE PSG TO PRODUCE.
|
||||
LD A, L ; CHECK FOR ZERO
|
||||
OR H ; ... MEANING PSG CAN'T DO IT
|
||||
RET NZ ; IF NOT ZERO, RETURN THE CALCULATED PERIOD
|
||||
DEC HL ; OTHERWISE RETURN -1 PERIOD (ERROR)
|
||||
RET
|
||||
#ENDIF
|
||||
|
||||
@@ -4,8 +4,12 @@
|
||||
;
|
||||
;======================================================================
|
||||
;
|
||||
; @3.579545 OCTAVE RANGE IS 2 - 7 (Bb2/A#2 .. A7)
|
||||
; @4.000000 OCTAVE RANGE IS 2 - 7 (B2 .. A7)
|
||||
; AY-3-8910 & YM2149 PSG CHIPS NEED AN INPUT CLOCK FREQUENCY OF
|
||||
; NO MORE THAN 2 MHZ. THE CLOSEST THING THERE IS TO A STANDARD
|
||||
; IS THE MSX FREQ OF 1.7897725 MHZ.
|
||||
;
|
||||
; @1.7897725 OCTAVE RANGE IS 2 - 7 (Bb2/A#2 .. A7)
|
||||
; @2.0000000 OCTAVE RANGE IS 2 - 7 (B2 .. A7)
|
||||
;
|
||||
AY_RCSND .EQU 0 ; 0 = EB MODULE, 1=MF MODULE
|
||||
;
|
||||
@@ -14,7 +18,6 @@ AY_RSEL .EQU $9A
|
||||
AY_RDAT .EQU $9B
|
||||
AY_RIN .EQU AY_RSEL
|
||||
AY_ACR .EQU $9C
|
||||
AY_CLK .SET 3579545 ; MSX NTSC COLOUR BURST FREQ = 315/88
|
||||
#ENDIF
|
||||
;
|
||||
#IF (AYMODE == AYMODE_N8)
|
||||
@@ -53,7 +56,6 @@ AY_RSEL .EQU $A0
|
||||
AY_RDAT .EQU $A1
|
||||
AY_RIN .EQU AY_RSEL
|
||||
AY_ACR .EQU $A2
|
||||
AY_CLK .SET 3579545 ; MSX NTSC COLOUR BURST FREQ = 315/88
|
||||
#ENDIF
|
||||
;
|
||||
;======================================================================
|
||||
@@ -92,14 +94,16 @@ AY_IDAT .EQU 0 ; NO INSTANCE DATA ASSOCIATED WITH THIS DEVICE
|
||||
;
|
||||
AY_TONECNT .EQU 3 ; COUNT NUMBER OF TONE CHANNELS
|
||||
AY_NOISECNT .EQU 1 ; COUNT NUMBER OF NOISE CHANNELS
|
||||
;;
|
||||
;#IF (AY_CLK > 3579545) ; DEPENDING ON THE
|
||||
;AY_SCALE .EQU 2 ; INPUT CLOCK FREQUENCY
|
||||
;#ELSE ; PRESCALE THE TONE PERIOD
|
||||
;AY_SCALE .EQU 3 ; DATA TO MAINTAIN MAXIMUM
|
||||
;#ENDIF ; RANGE AND ACCURACY
|
||||
;
|
||||
#IF (AY_CLK > 3579545) ; DEPENDING ON THE
|
||||
AY_SCALE .EQU 2 ; INPUT CLOCK FREQUENCY
|
||||
#ELSE ; PRESCALE THE TONE PERIOD
|
||||
AY_SCALE .EQU 3 ; DATA TO MAINTAIN MAXIMUM
|
||||
#ENDIF ; RANGE AND ACCURACY
|
||||
;
|
||||
AY_RATIO .EQU (AY_CLK * 100) / (16 >> AY_SCALE)
|
||||
.ECHO "SN76489 CLOCK: "
|
||||
.ECHO SN7CLK
|
||||
.ECHO "\n"
|
||||
;
|
||||
#INCLUDE "audio.inc"
|
||||
;
|
||||
@@ -306,38 +310,8 @@ AY_VOLUME:
|
||||
;======================================================================
|
||||
;
|
||||
AY_NOTE:
|
||||
AUDTRACE(AYT_NOTE)
|
||||
AUDTRACE_HL
|
||||
AUDTRACE_CR
|
||||
;
|
||||
; CALL PRTHEXWORDHL
|
||||
; CALL PC_COLON
|
||||
;
|
||||
LD DE, AY3NOTETBL ; ON ENTRY HL IS THE NOTE TO PLAY
|
||||
PUSH DE ; AND DE IS THE START OF NOTE TABLE
|
||||
LD DE, 48 ; LOAD DE WITH NOTE TABLE SIZE
|
||||
CALL DIV16 ; AND CALCULATE OCTAVE COUNT IN BC
|
||||
;
|
||||
ADD HL, HL ; HL IS THE REMAINDER FROM ABOVE DIVISION (0-47) AND THE NOTE
|
||||
POP DE ; TO PLAY IN THE OCTAVE. ADD IT TO THE START OF THE NOTE TABLE
|
||||
ADD HL, DE ; TO POINT TO THE PERIOD FOR THE NOTE WE WANT TO PLAY.
|
||||
;
|
||||
LD A, (HL) ; HL POINT TO CURRENT PERIOD COUNT WE WANT TO PLAY
|
||||
INC HL ; SO LOAD PERIOD COUNT FROM NOTE TABLE INTO HL
|
||||
LD H, (HL) ; SO WE CAN UPDATE IT FOR THE REQUIRED OCTAVE
|
||||
LD L, A
|
||||
;
|
||||
;LD A,AY_SCALE - 1 ; THE NOTE TABLE PERIOD DATA HAS BEEN
|
||||
LD A,AY_SCALE ; THE NOTE TABLE PERIOD DATA HAS BEEN
|
||||
ADD A,C ; PRESCALED TO MAINTAIN RANGE SO ALLOW
|
||||
LD B,A ; FOR THIS WHEN CHANGING OCTAVE
|
||||
AY_NOTE1:
|
||||
SRL H ; ADJUST THE PERIOD DATA
|
||||
RR L ; FOR THE DESIRED OCTAVE
|
||||
DJNZ AY_NOTE1 ; FALL THROUGH TO SET PERIOD AND RANGE CHECK
|
||||
;
|
||||
; CALL PRTHEXWORDHL
|
||||
; CALL NEWLINE
|
||||
LD DE, AY3NOTETBL
|
||||
CALL AUD_NOTE ; RETURNS PERIOD IN HL, FALL THRU
|
||||
;
|
||||
;======================================================================
|
||||
; SOUND DRIVER FUNCTION - PERIOD
|
||||
@@ -347,21 +321,22 @@ AY_PERIOD:
|
||||
AUDTRACE(AYT_PERIOD)
|
||||
AUDTRACE_HL
|
||||
AUDTRACE_CR
|
||||
|
||||
LD A, H ; IF ZERO - ERROR
|
||||
OR L
|
||||
JR Z, AY_PERIOD1
|
||||
;
|
||||
LD A, H ; MAXIMUM TONE PERIOD IS 12-BITS
|
||||
LD A,H ; IF ZERO - ERROR
|
||||
OR L
|
||||
JR Z,AY_PERIOD1
|
||||
;
|
||||
LD A,H ; MAXIMUM TONE PERIOD IS 12-BITS
|
||||
AND 11110000B ; ALLOWED RANGE IS 0001-0FFF (4095)
|
||||
JR NZ, AY_PERIOD1 ; RETURN NZ IF NUMBER TOO LARGE
|
||||
LD (AY_PENDING_PERIOD), HL ; SAVE AND RETURN SUCCESSFUL
|
||||
JR NZ,AY_PERIOD1 ; RETURN NZ IF NUMBER TOO LARGE
|
||||
LD (AY_PENDING_PERIOD),HL ; SAVE AND RETURN SUCCESSFUL
|
||||
XOR A ; SET SUCCESS
|
||||
RET
|
||||
;
|
||||
AY_PERIOD1:
|
||||
LD A, $FF ; REQUESTED PERIOD IS LARGER
|
||||
LD (AY_PENDING_PERIOD), A ; THAN THE DEVICE CAN SUPPORT
|
||||
LD (AY_PENDING_PERIOD+1), A; SO SET PERIOD TO FFFF
|
||||
LD HL,$FFFF ; REQUESTED PERIOD IS LARGER
|
||||
LD (AY_PENDING_PERIOD),HL ; THAN PSG CAN SUPPORT, SO
|
||||
OR $FF ; SET PERIOD TO $FFFF
|
||||
RET ; AND RETURN FAILURE
|
||||
;
|
||||
;======================================================================
|
||||
@@ -612,10 +587,32 @@ AYT_REGWR .DB "\r\nOUT AY-3-8910 $"
|
||||
; QUARTER TONE FREQUENCY TABLE
|
||||
;======================================================================
|
||||
;
|
||||
; THE FREQUENCY BY QUARTER TONE STARTING AT A0# OCTAVE 0
|
||||
; USED TO MAP EACH OCTAVE (DIV BY 2 TO JUMP AN OCTAVE UP)
|
||||
; FIRST PLAYABLE NOTE WILL BE 0
|
||||
; ASSUMING A CLOCK OF 1843200 THIS MAPS TO A0#
|
||||
; THE FOLLOWING TABLE MAPS A FULL OCTAVE OF QUARTER-NOTES
|
||||
; STARTING AT A# IN OCTAVE 0 TO THE CORRESPONDING PERIOD
|
||||
; VALUE TO USE ON THE PSG TO ACHIEVE THE DESIRED NOTE FREQUENCY.
|
||||
;
|
||||
; THE FREQUENCY PRODUCED BY THE AY-3-8910 IS:
|
||||
; FREQ = CLOCK / 16 / PERIOD
|
||||
;
|
||||
; SO, TO MAP A DESIRED FREQUENCY TO A PERIOD, WE USE:
|
||||
; PERIOD = CLOCK / 16 / FREQ
|
||||
;
|
||||
; IN ORDER TO IMPROVE THE RESOLUTION OF THE FREQUENCY
|
||||
; VALUE USED, WE ALSO MULTPLY BOTH SIDES OF THE EQUATION
|
||||
; BY 100:
|
||||
; PERIOD * 100 = (CLOCK / 16 / FREQ) * 100
|
||||
;
|
||||
; THE RESULTING PERIOD VALUE CAN BE REPEATEDLY HALVED
|
||||
; TO TO JUMP UP AS MANY OCTAVES AS DESIRED.
|
||||
;
|
||||
; THE FINAL VALUE IS SHIFTED BY AUD_SCALE BITS
|
||||
; IN ORDER TO IMPROVE THE RESOLUTION. THIS FINAL SHIFT
|
||||
; IS REMOVED WHEN IN THE AY_NOTE ROUTINE.
|
||||
;
|
||||
; ASSUMING A CLOCK OF 1.7897725 MHZ, THE FIRST PLAYABLE
|
||||
; NOTE WILL BE A0#/B0b (HBIOS NOTE CODE 0).
|
||||
;
|
||||
AY_RATIO .EQU (AY_CLK * 100) / (16 >> AUD_SCALE)
|
||||
;
|
||||
AY3NOTETBL:
|
||||
.DW AY_RATIO / 2913 ; A0#/B0b 178977250 / 2913 = 61440; PROOF: 61440 >> 3 = 7680, 3579545 / 7680 / 16 = 29.13
|
||||
|
||||
@@ -161,9 +161,7 @@ BQRTC_DISPATCH:
|
||||
JP Z, BQRTC_SETALM ; Set Alarm
|
||||
DEC A
|
||||
JP Z, BQRTC_DEVICE ; Report RTC device info
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOFUNC)
|
||||
RET
|
||||
|
||||
;
|
||||
@@ -173,9 +171,7 @@ BQRTC_GETBYT:
|
||||
BQRTC_SETBYT:
|
||||
BQRTC_GETBLK:
|
||||
BQRTC_SETBLK:
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOTIMPL
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOTIMPL)
|
||||
RET
|
||||
|
||||
; RTC Get Time
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "DYNO"
|
||||
#DEFINE PLATFORM_NAME "Dyno", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
@@ -65,6 +66,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
@@ -83,6 +85,9 @@ DSRTCENABLE .EQU FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU TRUE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -169,7 +174,7 @@ PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -191,13 +196,13 @@ PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -205,3 +210,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_Z180 ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "EASYZ80"
|
||||
#DEFINE PLATFORM_NAME "Easy-Z80", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -66,6 +67,7 @@ WDOGIO .EQU $6F ; WATCHDOG REGISTER ADR
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
@@ -89,6 +91,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -206,7 +211,7 @@ PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -235,13 +240,13 @@ PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -249,3 +254,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_NONE ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
; USED ONLY AS A REFERENCE TO HELP MANAGE THE FULL SET OF POSSIBLE SETTINGS AND
|
||||
; KEEP THINGS CONSISTENT.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ROMWBW"
|
||||
#DEFINE PLATFORM_NAME "RomWBW", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -30,7 +30,8 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_NONE ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
@@ -97,6 +98,7 @@ WDOGIO .EQU $6F ; WATCHDOG REGISTER ADR
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
@@ -123,6 +125,9 @@ DSRTCENABLE .EQU FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -274,7 +279,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -315,13 +320,13 @@ PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -329,3 +334,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_NONE ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Multi Board Computer"
|
||||
#DEFINE PLATFORM_NAME "Nhyodyne", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_MBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -62,6 +63,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU TRUE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
@@ -88,6 +90,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -203,7 +208,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -239,13 +244,13 @@ PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 3579545 / 2 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_MBC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU TRUE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -253,3 +258,7 @@ SPKENABLE .EQU TRUE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_MBC ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "MARK IV"
|
||||
#DEFINE PLATFORM_NAME "Mark IV", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
@@ -68,6 +69,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
@@ -94,6 +96,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -202,7 +207,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -241,13 +246,13 @@ PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_VGM ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -255,3 +260,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_ECB ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "N8"
|
||||
#DEFINE PLATFORM_NAME "N8", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_N8 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
RAMLOC .EQU 0 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
@@ -70,6 +71,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
@@ -96,6 +98,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -236,13 +241,13 @@ PIOSBASE .EQU N8_PPI0 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_VGM ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -250,3 +255,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_Z180 ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
#DEFINE PLATFORM_NAME "RC2014", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
@@ -68,6 +69,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
@@ -91,6 +93,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -163,7 +168,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
|
||||
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
|
||||
GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|RC|RCV9958|RCKBD]
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
;
|
||||
@@ -219,7 +224,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -248,13 +253,13 @@ PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -262,3 +267,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_Z180 ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
#DEFINE PLATFORM_NAME "RC2014", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
@@ -73,6 +74,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
@@ -96,6 +98,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -178,7 +183,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
|
||||
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
|
||||
GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|RC|RCV9958|RCKBD]
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
;
|
||||
@@ -234,7 +239,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -263,13 +268,13 @@ PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -277,3 +282,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_Z280 ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
#DEFINE PLATFORM_NAME "RC2014", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -67,6 +68,7 @@ WDOGIO .EQU $6E ; WATCHDOG REGISTER ADR
|
||||
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
@@ -90,6 +92,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -167,7 +172,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
|
||||
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
|
||||
GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|RC|RCV9958|RCKBD]
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
;
|
||||
@@ -223,7 +228,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -255,13 +260,13 @@ PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_RCZ80 ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -269,3 +274,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_RC ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RHYOPHYRE"
|
||||
#DEFINE PLATFORM_NAME "Rhyophyre", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_RPH ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
RAMLOC .EQU 0 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
@@ -68,6 +69,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
@@ -94,6 +96,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -204,7 +209,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU RPH_PPI0 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -236,13 +241,13 @@ PIOSBASE .EQU RPH_PPI0 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -250,3 +255,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_Z180 ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SBC"
|
||||
#DEFINE PLATFORM_NAME "Single Board Computer", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -62,6 +63,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
@@ -88,6 +90,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -203,7 +208,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -239,13 +244,13 @@ PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU 3575950 ; DEFAULT OSCILLATOR
|
||||
SNMODE .EQU SNMODE_VGM ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_VGM ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -253,3 +258,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_ECB ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SCZ180"
|
||||
#DEFINE PLATFORM_NAME "Small Computer", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
@@ -63,6 +64,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $0D ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
@@ -86,6 +88,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -158,7 +163,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
|
||||
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
|
||||
GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|RC|RCV9958|RCKBD]
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
;
|
||||
@@ -214,7 +219,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -243,13 +248,13 @@ PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM]
|
||||
SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM]
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -257,3 +262,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_Z180 ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,11 +11,12 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "UNA"
|
||||
#DEFINE PLATFORM_NAME "UNA", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "../UBIOS/ubios.inc"
|
||||
;
|
||||
;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
@@ -26,7 +27,10 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
;
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZETA"
|
||||
#DEFINE PLATFORM_NAME "Zeta", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -54,6 +55,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
@@ -75,6 +77,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -147,7 +152,7 @@ PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -181,3 +186,6 @@ SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_NONE ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZETA V2"
|
||||
#DEFINE PLATFORM_NAME "Zeta 2", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,7 +33,8 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VERIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -65,6 +66,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
@@ -86,6 +88,9 @@ DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
|
||||
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
@@ -158,7 +163,7 @@ PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
@@ -189,7 +194,9 @@ SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
;
|
||||
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
|
||||
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
|
||||
DMAMODE .EQU DMAMODE_NONE ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
|
||||
;
|
||||
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
|
||||
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)
|
||||
|
||||
@@ -112,7 +112,7 @@ CTC_PREINIT1:
|
||||
;
|
||||
; CTC USES 4 CONSECUTIVE VECTOR POSITIONS, ONE FOR
|
||||
; EACH CHANNEL. BELOW WE SET THE BASE VECTOR TO THE
|
||||
; START OF THE IVT, SO THE FIRST FOUR ENTIRES OF THE
|
||||
; START OF THE IVT, SO THE FIRST FOUR ENTRIES OF THE
|
||||
; IVT CORRESPOND TO CTC CHANNELS A-D.
|
||||
LD A,INT_CTC0A * 2
|
||||
OUT (CTCBASE),A ; SETUP CTC BASE INT VECTOR
|
||||
|
||||
@@ -171,9 +171,7 @@ CVDU_VDADEV:
|
||||
RET
|
||||
|
||||
CVDU_VDASCS:
|
||||
CALL SYSCHK ; NOT IMPLEMENTED (YET)
|
||||
LD A,ERR_NOTIMPL
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED (YET)
|
||||
RET
|
||||
|
||||
CVDU_VDASCP:
|
||||
|
||||
397
Source/HBIOS/ds1501rtc.asm
Normal file
397
Source/HBIOS/ds1501rtc.asm
Normal file
@@ -0,0 +1,397 @@
|
||||
|
||||
;
|
||||
;==================================================================================================
|
||||
; Maxim DS1501/DS1511 Y2K-Compliant Watchdog RTC Driver
|
||||
;==================================================================================================
|
||||
;
|
||||
; THIS DRIVER CODE WAS CONTRIBUTED TO ROMWBW BY JPELLETIER 3:59 PM 7/24/2022
|
||||
;
|
||||
; Register Addresses (HEX / BCD):
|
||||
;
|
||||
; +---+-----+---------------+-------------------+------------------+----------------+
|
||||
; |ADR| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | RANGE | REGISTER |
|
||||
; +---+-----+---------------+-------------------+------------------+----------------+
|
||||
; | 0 | 0 | 10-Second | 1-Second | 00-59 | Seconds |
|
||||
; +---+-----+-----+---------+-------------------+------------------+----------------+
|
||||
; | 1 | 0 | 10-Minute | 1-Minute | 00-59 | Minutes |
|
||||
; +---+-----+-----+---------+-------------------+------------------+----------------+
|
||||
; | 2 | 0 | 0 | 10-Hour | 1-Hour | 00-23 | Hours |
|
||||
; +---+-----+-----+----+----+-------------------+------------------+----------------+
|
||||
; | 3 | 0 | 0 | 0 | 0 | 0 | Day Of Week | 01-07 | Day Of Week |
|
||||
; +---+-----+-----+----+----+----+--------------+------------------+----------------+
|
||||
; | 4 | 0 | 0 | 10-Date | 1-Date | 01-31 | Date |
|
||||
; +---+-----+-----+----+----+-------------------+------------------+----------------+
|
||||
; | 5 |/EOSC|/E32K|BB32|10Mo| 1-Month | 01-12 | Month |
|
||||
; +---+-----+-----+----+----+-------------------+------------------+----------------+
|
||||
; | 6 | 10-Year | 1-Year | 00-99 | Year |
|
||||
; +---+-----+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
; | 7 | 10-Century | 1-Century | 00-39 | Century |
|
||||
; +---+-----+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
; | 8 | AM1| 10-Second | 1-Second | 00-59 | Seconds Alarm |
|
||||
; +---+-----+---------------+-------------------+------------------+----------------+
|
||||
; | 9 | AM2| 10-Minute | 1-Minute | 00-59 | Minutes Alarm |
|
||||
; +---+-----+-----+---------+-------------------+------------------+----------------+
|
||||
; | A | AM3| 0 | 10-Hour | 1-Hour | 00-23 | Hours Alarm |
|
||||
; +---+-----+-----+----+----+-------------------+------------------+----------------+
|
||||
; | B | AM4|DY/DT| 10-date | Day/Date | 1-7/01-31 | Day/Date Alarm |
|
||||
; +---+-----+-----+----+----+----+--------------+------------------+----------------+
|
||||
; | C | 0.1-Second | 0.01-Second | 00-99 | Watchdog |
|
||||
; +---+-----+-----+---------+-------------------+------------------+----------------+
|
||||
; | D | 10-Second | 1-Second | 00-99 | Watchdog |
|
||||
; +---+-----+-----+---------+-------------------+------------------+----------------+
|
||||
; | E | BLF1| BLF2| PRS| PAB| TDF| KSF| WDF|IRQF| | ControlA |
|
||||
; +---+-----+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
; | F | TE| CS| BME| TPE| TIE| KIE| WDE| WDS| | ControlB |
|
||||
; +---+-----+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
; |10 | Extended RAM Address | 00-FF | RAM Address |
|
||||
; +---+-----+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
; |11 | Reserved | | |
|
||||
; +---+-----+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
; |12 | Reserved | | |
|
||||
; +---+--+--+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
; |13 | Extended RAM Data | 00-FF | RAM Data |
|
||||
; +---+--+--+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
; |14-1F | Reserved | | |
|
||||
; +------+--+-----+----+----+----+----+----+----+------------------+----------------+
|
||||
|
||||
; * = Unused bits; unwritable and read as 0.
|
||||
; 0 = should be set to 0 for valid time/calendar range.
|
||||
; Clock calendar data is BCD. Automatic leap year adjustment.
|
||||
; Day-Of-Week coded as Sunday = 1 through Saturday = 7.
|
||||
|
||||
; Constants
|
||||
|
||||
;By defining 2 bases, this allows some flexibility for address decoding
|
||||
DS1501NVM_BASE .EQU DS1501RTC_BASE + $10
|
||||
|
||||
DS1501RTC_SEC .EQU DS1501RTC_BASE + $00
|
||||
DS1501RTC_MIN .EQU DS1501RTC_BASE + $01
|
||||
DS1501RTC_HOUR .EQU DS1501RTC_BASE + $02
|
||||
DS1501RTC_WEEK_DAY .EQU DS1501RTC_BASE + $03
|
||||
DS1501RTC_DAY .EQU DS1501RTC_BASE + $04
|
||||
DS1501RTC_MONTH .EQU DS1501RTC_BASE + $05
|
||||
DS1501RTC_YEAR .EQU DS1501RTC_BASE + $06
|
||||
DS1501RTC_CENT .EQU DS1501RTC_BASE + $07
|
||||
DS1501RTC_SEC_ALM .EQU DS1501RTC_BASE + $08
|
||||
DS1501RTC_MIN_ALM .EQU DS1501RTC_BASE + $09
|
||||
DS1501RTC_HOUR_ALM .EQU DS1501RTC_BASE + $0A
|
||||
DS1501RTC_DAY_ALM .EQU DS1501RTC_BASE + $0B
|
||||
DS1501RTC_WDOG1 .EQU DS1501RTC_BASE + $0C
|
||||
DS1501RTC_WDOG2 .EQU DS1501RTC_BASE + $0D
|
||||
DS1501RTC_CONTROLA .EQU DS1501RTC_BASE + $0E
|
||||
DS1501RTC_CONTROLB .EQU DS1501RTC_BASE + $0F
|
||||
|
||||
DS1501RTC_RAMADDR .EQU DS1501NVM_BASE + $00
|
||||
DS1501RTC_RAMDATA .EQU DS1501NVM_BASE + $03
|
||||
|
||||
DS1501RTC_HIGH .EQU %11110000
|
||||
DS1501RTC_LOW .EQU %00001111
|
||||
|
||||
;ControlA bit masks
|
||||
;BLF1| BLF2| PRS| PAB| TDF| KSF| WDF|IRQF
|
||||
DS1501RTC_IRQF .EQU %00000001
|
||||
DS1501RTC_WDF .EQU %00000010
|
||||
DS1501RTC_KSF .EQU %00000100
|
||||
DS1501RTC_TDF .EQU %00001000
|
||||
DS1501RTC_PAB .EQU %00010000
|
||||
DS1501RTC_PRS .EQU %00100000
|
||||
DS1501RTC_BLF2 .EQU %01000000
|
||||
DS1501RTC_BLF1 .EQU %10000000
|
||||
|
||||
;ControlB bit masks
|
||||
;TE| CS| BME| TPE| TIE| KIE| WDE| WDS|
|
||||
DS1501RTC_WDS .EQU %00000001
|
||||
DS1501RTC_WDE .EQU %00000010
|
||||
DS1501RTC_KIE .EQU %00000100
|
||||
DS1501RTC_TIE .EQU %00001000
|
||||
DS1501RTC_TPE .EQU %00010000
|
||||
DS1501RTC_BME .EQU %00100000
|
||||
DS1501RTC_CS .EQU %01000000
|
||||
DS1501RTC_TE .EQU %10000000
|
||||
|
||||
DS1501RTC_BUFSIZE .EQU 6 ; 6 BYTE BUFFER (YYMMDDHHMMSS)
|
||||
|
||||
; RTC Device Initialization Entry
|
||||
|
||||
DS1501RTC_INIT:
|
||||
CALL NEWLINE ; Formatting
|
||||
PRTS("DS1501RTC: IO=0x$")
|
||||
LD A, DS1501RTC_BASE
|
||||
CALL PRTHEXBYTE
|
||||
|
||||
CALL NEWLINE ; Formatting
|
||||
PRTS("DS1501NVM: IO=0x$")
|
||||
LD A, DS1501NVM_BASE
|
||||
CALL PRTHEXBYTE
|
||||
|
||||
IN A,(DS1501RTC_CONTROLB) ;clear any pending interrupt flags
|
||||
|
||||
XOR A ; Zero A
|
||||
OR DS1501RTC_TE ;enable time updates
|
||||
OUT (DS1501RTC_CONTROLB), A
|
||||
|
||||
CALL DS1501RTC_LOAD
|
||||
; DISPLAY CURRENT TIME
|
||||
PRTS(" $")
|
||||
LD A, (DS1501RTC_BUF_MON)
|
||||
CALL PRTHEXBYTE
|
||||
PRTS("/$")
|
||||
LD A, (DS1501RTC_BUF_DAY)
|
||||
CALL PRTHEXBYTE
|
||||
PRTS("/$")
|
||||
LD A, (DS1501RTC_BUF_YEAR)
|
||||
CALL PRTHEXBYTE
|
||||
PRTS(" $")
|
||||
LD A, (DS1501RTC_BUF_HOUR)
|
||||
CALL PRTHEXBYTE
|
||||
PRTS(":$")
|
||||
LD A, (DS1501RTC_BUF_MIN)
|
||||
CALL PRTHEXBYTE
|
||||
PRTS(":$")
|
||||
LD A, (DS1501RTC_BUF_SEC)
|
||||
CALL PRTHEXBYTE
|
||||
|
||||
LD BC,DS1501RTC_DISPATCH
|
||||
CALL RTC_SETDISP
|
||||
|
||||
XOR A ; Signal success
|
||||
RET
|
||||
|
||||
; RTC Device Function Dispatch Entry
|
||||
; A: Result (OUT), 0=OK, Z=OK, NZ=Error
|
||||
; B: Function (IN)
|
||||
|
||||
DS1501RTC_DISPATCH:
|
||||
LD A, B ; Get requested function
|
||||
AND $0F ; Isolate Sub-Function
|
||||
JP Z, DS1501RTC_GETTIM ; Get Time
|
||||
DEC A
|
||||
JP Z, DS1501RTC_SETTIM ; Set Time
|
||||
DEC A
|
||||
JP Z, DS1501RTC_GETBYT ; Get NVRAM Byte Value
|
||||
DEC A
|
||||
JP Z, DS1501RTC_SETBYT ; Set NVRAM Byte Value
|
||||
DEC A
|
||||
JP Z, DS1501RTC_GETBLK ; Get NVRAM Data Block Value
|
||||
DEC A
|
||||
JP Z, DS1501RTC_SETBLK ; Set NVRAM Data Block Value
|
||||
DEC A
|
||||
JP Z, DS1501RTC_GETALM ; Get Alarm
|
||||
DEC A
|
||||
JP Z, DS1501RTC_SETALM ; Set Alarm
|
||||
;
|
||||
; NVRAM FUNCTIONS ARE NOT IMPLEMENTED YET
|
||||
;
|
||||
DS1501RTC_GETBYT:
|
||||
DS1501RTC_SETBYT:
|
||||
DS1501RTC_GETBLK:
|
||||
DS1501RTC_SETBLK:
|
||||
CALL PANIC
|
||||
|
||||
; RTC Get Time
|
||||
; A: Result (OUT), 0=OK, Z=OK, NZ=Error
|
||||
; HL: Date/Time Buffer (OUT)
|
||||
; Buffer format is BCD: YYMMDDHHMMSS
|
||||
; 24 hour time format is assumed
|
||||
;
|
||||
DS1501RTC_GETTIM:
|
||||
EX DE, HL
|
||||
CALL DS1501RTC_LOAD
|
||||
; Now copy to read destination (Interbank Save)
|
||||
LD A, BID_BIOS ; Copy from BIOS bank
|
||||
LD (HB_SRCBNK), A ; Set it
|
||||
LD A, (HB_INVBNK) ; Copy to current user bank
|
||||
LD (HB_DSTBNK), A ; Set it
|
||||
LD BC, DS1501RTC_BUFSIZE ; Length is 6 bytes
|
||||
#IF (INTMODE == 1)
|
||||
DI
|
||||
#ENDIF
|
||||
CALL HB_BNKCPY ; Copy the clock data
|
||||
#IF (INTMODE == 1)
|
||||
EI
|
||||
#ENDIF
|
||||
;
|
||||
; CLEAN UP AND RETURN
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET ; AND RETURN
|
||||
;
|
||||
; RTC Set Time
|
||||
; A: Result (OUT), 0=OK, Z=OK, NZ=Error
|
||||
; HL: Date/Time Buffer (IN)
|
||||
; Buffer Format is BCD: YYMMDDHHMMSS
|
||||
; 24 hour time format is assumed
|
||||
;
|
||||
DS1501RTC_SETTIM:
|
||||
;
|
||||
; Copy incoming time data to our time buffer
|
||||
LD A, (HB_INVBNK) ; Copy from current user bank
|
||||
LD (HB_SRCBNK), A ; Set it
|
||||
LD A, BID_BIOS ; Copy to BIOS bank
|
||||
LD (HB_DSTBNK), A ; Set it
|
||||
LD DE, DS1501RTC_BUF ; Destination Address
|
||||
LD BC, DS1501RTC_BUFSIZE ; Length is 6 bytes
|
||||
#IF (INTMODE == 1)
|
||||
DI
|
||||
#ENDIF
|
||||
CALL HB_BNKCPY ; Copy the clock data
|
||||
#IF (INTMODE == 1)
|
||||
EI
|
||||
#ENDIF
|
||||
; Write to clock
|
||||
LD HL, DS1501RTC_BUF
|
||||
CALL DS1501RTC_SUSPEND
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_YEAR), A ; Write Year
|
||||
INC HL
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_MONTH), A ; Write Month
|
||||
INC HL
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_DAY), A ; Write Day
|
||||
INC HL
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_HOUR), A ; Write Hour
|
||||
INC HL
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_MIN), A ; Write Minute
|
||||
INC HL
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_SEC), A ; Write Second
|
||||
CALL DS1501RTC_RESUME
|
||||
; clean up and return
|
||||
XOR A ; Signal success
|
||||
RET ; And return
|
||||
|
||||
; RTC Get Alarm
|
||||
; A: Result (OUT), 0=OK, Z=OK, NZ=Error
|
||||
; HL: Date/Time Buffer (OUT)
|
||||
; Buffer format is BCD: YYMMDDHHMMSS
|
||||
; 24 hour time format is assumed
|
||||
;
|
||||
DS1501RTC_GETALM:
|
||||
EX DE, HL
|
||||
LD HL, DS1501RTC_BUF
|
||||
PUSH HL ; Save address of source buffer
|
||||
CALL DS1501RTC_SUSPEND
|
||||
XOR A
|
||||
LD (HL), A ; Read Year
|
||||
INC HL
|
||||
LD (HL), A ; Read Month
|
||||
INC HL
|
||||
IN A, (DS1501RTC_DAY_ALM) ; Read Day
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A, (DS1501RTC_HOUR_ALM) ; Read Hour
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A, (DS1501RTC_MIN_ALM) ; Read Minute
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A, (DS1501RTC_SEC_ALM) ; Read Second
|
||||
LD (HL), A
|
||||
CALL DS1501RTC_RESUME
|
||||
POP HL ; Restore address of source buffer
|
||||
; Now copy to read destination (Interbank Save)
|
||||
LD A, BID_BIOS ; Copy from BIOS bank
|
||||
LD (HB_SRCBNK), A ; Set it
|
||||
LD A, (HB_INVBNK) ; Copy to current user bank
|
||||
LD (HB_DSTBNK), A ; Set it
|
||||
LD BC, DS1501RTC_BUFSIZE ; Length is 6 bytes
|
||||
#IF (INTMODE == 1)
|
||||
DI
|
||||
#ENDIF
|
||||
CALL HB_BNKCPY ; Copy the clock data
|
||||
#IF (INTMODE == 1)
|
||||
EI
|
||||
#ENDIF
|
||||
;
|
||||
; CLEAN UP AND RETURN
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET ; AND RETURN
|
||||
;
|
||||
; RTC Set Alarm
|
||||
; A: Result (OUT), 0=OK, Z=OK, NZ=Error
|
||||
; HL: Date/Time Buffer (IN)
|
||||
; Buffer Format is BCD: YYMMDDHHMMSS
|
||||
; 24 hour time format is assumed
|
||||
;
|
||||
DS1501RTC_SETALM:
|
||||
; Copy incoming time data to our time buffer
|
||||
LD A, (HB_INVBNK) ; Copy from current user bank
|
||||
LD (HB_SRCBNK), A ; Set it
|
||||
LD A, BID_BIOS ; Copy to BIOS bank
|
||||
LD (HB_DSTBNK), A ; Set it
|
||||
LD DE, DS1501RTC_BUF ; Destination Address
|
||||
LD BC, DS1501RTC_BUFSIZE ; Length is 6 bytes
|
||||
#IF (INTMODE == 1)
|
||||
DI
|
||||
#ENDIF
|
||||
CALL HB_BNKCPY ; Copy the clock data
|
||||
#IF (INTMODE == 1)
|
||||
EI
|
||||
#ENDIF
|
||||
; Write to clock
|
||||
LD HL, DS1501RTC_BUF_DAY
|
||||
CALL DS1501RTC_SUSPEND
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_DAY_ALM), A ; Write Day
|
||||
INC HL
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_HOUR_ALM), A ; Write Hour
|
||||
INC HL
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_MIN_ALM), A ; Write Minute
|
||||
INC HL
|
||||
LD A, (HL)
|
||||
OUT (DS1501RTC_SEC_ALM), A ; Write Second
|
||||
CALL DS1501RTC_RESUME
|
||||
; clean up and return
|
||||
XOR A ; Signal success
|
||||
RET ; And return
|
||||
|
||||
DS1501RTC_SUSPEND:
|
||||
IN A, (DS1501RTC_CONTROLB) ; Suspend Clock
|
||||
AND ~DS1501RTC_TE
|
||||
OUT (DS1501RTC_CONTROLB), A
|
||||
RET
|
||||
|
||||
DS1501RTC_RESUME:
|
||||
IN A, (DS1501RTC_CONTROLB) ; Resume Clock
|
||||
OR DS1501RTC_TE
|
||||
OUT (DS1501RTC_CONTROLB), A
|
||||
RET
|
||||
|
||||
DS1501RTC_LOAD:
|
||||
LD HL, DS1501RTC_BUF
|
||||
PUSH HL ; Save address of source buffer
|
||||
CALL DS1501RTC_SUSPEND
|
||||
IN A, (DS1501RTC_YEAR) ; Read Year
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A, (DS1501RTC_MONTH) ; Read Month
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A, (DS1501RTC_DAY) ; Read Day
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A, (DS1501RTC_HOUR) ; Read Hour
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A, (DS1501RTC_MIN) ; Read Minute
|
||||
LD (HL), A
|
||||
INC HL
|
||||
IN A, (DS1501RTC_SEC) ; Read Second
|
||||
LD (HL), A
|
||||
CALL DS1501RTC_RESUME
|
||||
POP HL ; Restore address of source buffer
|
||||
RET
|
||||
|
||||
; Working Variables
|
||||
|
||||
DS1501RTC_BUF:
|
||||
DS1501RTC_BUF_YEAR: .DB 0 ; Year
|
||||
DS1501RTC_BUF_MON: .DB 0 ; Month
|
||||
DS1501RTC_BUF_DAY: .DB 0 ; Day
|
||||
DS1501RTC_BUF_HOUR: .DB 0 ; Hour
|
||||
DS1501RTC_BUF_MIN: .DB 0 ; Minute
|
||||
DS1501RTC_BUF_SEC: .DB 0 ; Second
|
||||
@@ -100,9 +100,7 @@ DS7_DISPATCH:
|
||||
JP Z, DS7_SETALM ; SET ALARM
|
||||
DEC A
|
||||
JP Z, DS7_DEVICE ; REPORT RTC DEVICE INFO
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOFUNC)
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
@@ -269,9 +267,7 @@ DS7_GETBLK:
|
||||
DS7_SETBLK:
|
||||
DS7_SETALM
|
||||
DS7_GETALM
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOTIMPL
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOTIMPL)
|
||||
RET
|
||||
;-----------------------------------------------------------------------------
|
||||
; REPORT RTC DEVICE INFO
|
||||
@@ -329,7 +325,7 @@ DS7_RL1:CALL PCF_READI2C
|
||||
;
|
||||
#IF (0)
|
||||
LD A,8
|
||||
LD DE,DS7_BUF ; DISLAY DATA READ
|
||||
LD DE,DS7_BUF ; DISPLAY DATA READ
|
||||
CALL PRTHEXBUF ;
|
||||
CALL NEWLINE
|
||||
#ENDIF
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
; DSKY (DISPLAY AND KEYBOARD) ROUTINES
|
||||
;==================================================================================================
|
||||
;
|
||||
; THE DSKY MAY COSESIDE ON THE SAME PPI BUS AS A PPISD. IT MAY NOT
|
||||
; THE DSKY MAY COINCIDE ON THE SAME PPI BUS AS A PPISD. IT MAY NOT
|
||||
; SHARE A PPI BUS WITH A PPIDE. SEE PPI_BUS.TXT FOR MORE INFORMATION.
|
||||
;
|
||||
; LED SEGMENTS (BIT VALUES)
|
||||
|
||||
@@ -247,9 +247,7 @@ DSRTC_DISPATCH:
|
||||
JP Z,DSRTC_SETALM ; SET ALARM
|
||||
DEC A
|
||||
JP Z,DSRTC_DEVICE ; REPORT RTC DEVICE INFO
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOFUNC)
|
||||
RET
|
||||
;
|
||||
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
|
||||
@@ -258,9 +256,7 @@ DSRTC_GETBLK:
|
||||
DSRTC_SETBLK:
|
||||
DSRTC_GETALM:
|
||||
DSRTC_SETALM:
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOTIMPL
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOTIMPL)
|
||||
RET
|
||||
;
|
||||
; RTC GET TIME
|
||||
|
||||
@@ -490,9 +490,7 @@ FD_FNTBL:
|
||||
FD_VERIFY:
|
||||
FD_FORMAT:
|
||||
FD_DEFMED:
|
||||
CALL SYSCHK ; INVALID SUB-FUNCTION
|
||||
LD A,ERR_NOTIMPL
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
|
||||
RET
|
||||
;
|
||||
;
|
||||
@@ -1149,9 +1147,7 @@ FD_RUN1:
|
||||
JR Z,FC_WRITE
|
||||
CP DOP_READID
|
||||
JR Z,FC_READID
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOFUNC)
|
||||
RET
|
||||
|
||||
FD_RUNCHK:
|
||||
|
||||
@@ -157,9 +157,7 @@ GDC_VDADEV: ; VIDEO DEVICE INFORMATION
|
||||
RET
|
||||
;
|
||||
GDC_VDASCS: ; SET CURSOR STYLE
|
||||
CALL SYSCHK ; NOT IMPLEMENTED (YET)
|
||||
LD A,ERR_NOTIMPL
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOTIMPL)
|
||||
RET
|
||||
|
||||
GDC_VDASCP: ; SET CURSOR POSITION
|
||||
|
||||
@@ -53,6 +53,8 @@
|
||||
; - build.inc
|
||||
; - config/<plt>_<cfg>.asm
|
||||
; - cfg_<plt>.asm
|
||||
; - [z180.inc|z280.inc]
|
||||
; - [eipc.inc]
|
||||
; - <drivers>.asm
|
||||
; - <fonts>.asm
|
||||
; - util.asm
|
||||
@@ -61,7 +63,7 @@
|
||||
; - decode.asm
|
||||
; - encode.asm
|
||||
; - [xio|mio].asm
|
||||
; - dsky.asm
|
||||
; - [dsky.asm|dskyng.asm]
|
||||
; - unlzsa2s.asm
|
||||
;
|
||||
; INCLUDE GENERIC STUFF
|
||||
@@ -90,7 +92,7 @@ MODCNT .SET MODCNT + 1
|
||||
; SOME HARDWARE REQUIRES A SPECIFIC ROMSIZE (NOTABLY ZZRCC) OR THE
|
||||
; RESULTING BUILD IMAGES WILL BE CORRUPT. ROMSIZE_CHK IS SPECIFIED
|
||||
; IN THE CONFIG FILE AND IS VERIFIED AGAINST THE ROMSIZE BEING USED
|
||||
; BY THE BUILD. A ROMSIZE_CHK VALUE OF 0 INDICATES THE VERFICATION
|
||||
; BY THE BUILD. A ROMSIZE_CHK VALUE OF 0 INDICATES THE VERIFICATION
|
||||
; IS DISABLED (WHICH IT USUALLY IS).
|
||||
;
|
||||
#IF (ROMSIZE_CHK != 0) & (ROMSIZE != ROMSIZE_CHK)
|
||||
@@ -132,6 +134,11 @@ MODCNT .SET MODCNT + 1
|
||||
#DEFINE LED(N) \;
|
||||
#ENDIF
|
||||
;
|
||||
#DEFINE SYSCHKERR(HB_ERR) \
|
||||
#DEFCONT \ CALL SYSCHKA
|
||||
#DEFCONT \ LD A,HB_ERR
|
||||
#DEFCONT \ OR A
|
||||
;
|
||||
;
|
||||
;
|
||||
#IF (INTMODE == 0)
|
||||
@@ -219,6 +226,7 @@ RTCDEF .SET RTCDEF | %00001000 ; INITIAL SPEED LOW
|
||||
;
|
||||
.FILL (000H - $),0FFH ; RST 0
|
||||
JP HB_START
|
||||
.DB 0 ; SIG PTR STARTS AT $0004
|
||||
.DW ROM_SIG
|
||||
.FILL (008H - $),0FFH ; RST 8
|
||||
JP HB_INVOKE ; INVOKE HBIOS FUNCTION
|
||||
@@ -1093,14 +1101,14 @@ HB_START:
|
||||
;
|
||||
#IFDEF APPBOOT
|
||||
#IF (MEMMGR == MM_Z280)
|
||||
LD A,%00000001
|
||||
LD A,DIAG_01
|
||||
OUT (DIAGPORT),A
|
||||
LD DE,Z280_BOOTERR
|
||||
LD C,9
|
||||
LD A,%00000010
|
||||
LD A,DIAG_02
|
||||
OUT (DIAGPORT),A
|
||||
CALL $0005
|
||||
LD A,%00001000
|
||||
LD A,DIAG_04
|
||||
OUT (DIAGPORT),A
|
||||
RET
|
||||
;
|
||||
@@ -1129,7 +1137,7 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DIAGENABLE)
|
||||
LD A,%00000001
|
||||
LD A,DIAG_01
|
||||
OUT (DIAGPORT),A
|
||||
#ENDIF
|
||||
#IF (LEDENABLE)
|
||||
@@ -1239,7 +1247,7 @@ Z280_INITZ:
|
||||
LD A,Z180_BASE
|
||||
OUT0 ($3F),A ; AT RESET, ICR IS AT $3F
|
||||
|
||||
DIAG(%00000010)
|
||||
DIAG(DIAG_02)
|
||||
|
||||
; DISABLE REFRESH
|
||||
XOR A
|
||||
@@ -1333,8 +1341,10 @@ Z280_INITZ:
|
||||
; NOT WANT TO EFFECT RAM UNTIL AFTER THE BACKUP BATTERY STATUS CHECK
|
||||
; IS PERFORMED NEXT.
|
||||
;
|
||||
LD A,%00000011
|
||||
#IF (DIAGENABLE)
|
||||
LD A,DIAG_02
|
||||
OUT (DIAGPORT),A
|
||||
#ENDIF
|
||||
;
|
||||
; WE USE THE TWO BYTES IMMEDIATELY BELOW THE PROXY TO STORE A COUPLE
|
||||
; VALUES TEMPORARILY BECAUSE WE MAY BE OPERATING IN ROM AT THIS POINT.
|
||||
@@ -1353,7 +1363,7 @@ Z280_INITZ:
|
||||
; WILL NOT START CORRECTLY WHEN THEY CHECK THE ROM ID VERSION BYTES.
|
||||
; THE BATTERY CONDITION VALUE IS TEMPORARILY STORED AT HBX_LOC - 1
|
||||
; BECAUSE WE ARE CURRENTLY RUNNING IN ROM. AFTER WE TRANSITION HBIOS
|
||||
; TO RAM, THE VALUE IS MOVED TO IT'S REAL LCOATION AT HB_BATCOND.
|
||||
; TO RAM, THE VALUE IS MOVED TO IT'S REAL LOCATION AT HB_BATCOND.
|
||||
; IF THERE IS NO DS1210 IN THE SYSTEM, THE CODE BELOW DOES NO HARM.
|
||||
;
|
||||
LD HL,HBX_LOC - 1 ; POINT TO BYTE
|
||||
@@ -1659,8 +1669,8 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
|
||||
; THAT.
|
||||
LD SP,HBX_LOC - 2 ; RESET STACK
|
||||
;
|
||||
; NOTIFY THAT WE MADE THE TRANSTION!
|
||||
DIAG(%00000111)
|
||||
; NOTIFY THAT WE MADE THE TRANSITION!
|
||||
DIAG(DIAG_03)
|
||||
LED(%00000010)
|
||||
;
|
||||
; SET THE IN-RAM FLAG
|
||||
@@ -1787,7 +1797,7 @@ SAVE_REC_M:
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
DIAG(%00001111)
|
||||
DIAG(DIAG_04)
|
||||
;
|
||||
#IF (WBWDEBUG == USEMIO) ; BUFFER OUTPUT UNTIL
|
||||
CALL MIO_INIT ; WE GET TO BOOT MESSAGE
|
||||
@@ -1876,7 +1886,7 @@ HB_CPU1:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
DIAG(%00011111)
|
||||
DIAG(DIAG_05)
|
||||
;
|
||||
; INIT OSCILLATOR SPEED FROM CONFIG
|
||||
;
|
||||
@@ -2168,7 +2178,7 @@ Z280_TC .EQU CPUOSC / 4 / 50 / 2 ; TIME CONSTANT
|
||||
LD A,$FF ; FILL WITH $FF
|
||||
CALL FILL ; DO IT
|
||||
;
|
||||
DIAG(%00111111)
|
||||
DIAG(DIAG_06)
|
||||
;
|
||||
#IF FALSE
|
||||
;
|
||||
@@ -2224,7 +2234,7 @@ NOT_REC_M0:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
DIAG(%01111111)
|
||||
DIAG(DIAG_07)
|
||||
LED(%00000011)
|
||||
;
|
||||
;
|
||||
@@ -2312,7 +2322,7 @@ NXTMIO: LD A,(HL)
|
||||
#ENDIF
|
||||
NOT_REC_M2:
|
||||
;
|
||||
DIAG(%11111111)
|
||||
DIAG(DIAG_08)
|
||||
;
|
||||
; IO PORT SCAN
|
||||
;
|
||||
@@ -2802,6 +2812,43 @@ INITSYS3:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF 0
|
||||
;
|
||||
LD HL,0
|
||||
CALL DBG_NOTE
|
||||
LD HL,48
|
||||
CALL DBG_NOTE
|
||||
LD HL,204
|
||||
CALL DBG_NOTE
|
||||
LD HL,268
|
||||
CALL DBG_NOTE
|
||||
LD HL,436
|
||||
CALL DBG_NOTE
|
||||
;
|
||||
JP INITSYS4
|
||||
;
|
||||
DBG_NOTE:
|
||||
PUSH HL
|
||||
CALL NEWLINE
|
||||
PRTS("AY: $")
|
||||
CALL PRTDEC16
|
||||
PRTS("=$")
|
||||
CALL AY_NOTE
|
||||
LD HL,(AY_PENDING_PERIOD)
|
||||
CALL PRTDEC16
|
||||
POP HL
|
||||
;
|
||||
PRTS(" SN: $")
|
||||
CALL PRTDEC16
|
||||
PRTS("=$")
|
||||
CALL SN7_NOTE
|
||||
LD HL,(SN7_PENDING_PERIOD)
|
||||
CALL PRTDEC16
|
||||
;
|
||||
RET
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
INITSYS4:
|
||||
;
|
||||
#IF (MEMMGR == MM_Z280)
|
||||
@@ -2969,6 +3016,9 @@ HB_INITTBL:
|
||||
#IF (SN76489ENABLE)
|
||||
.DW SN76489_INIT
|
||||
#ENDIF
|
||||
#IF (YM2612ENABLE)
|
||||
.DW YM2612_INIT
|
||||
#ENDIF
|
||||
#IF (SPKENABLE)
|
||||
.DW SP_INIT ; AUDIBLE INDICATOR OF BOOT START
|
||||
#ENDIF
|
||||
@@ -3005,6 +3055,9 @@ HB_INITTBL:
|
||||
#IF (DSRTCENABLE)
|
||||
.DW DSRTC_INIT
|
||||
#ENDIF
|
||||
#IF (DS1501RTCENABLE)
|
||||
.DW DS1501RTC_INIT
|
||||
#ENDIF
|
||||
#IF (BQRTCENABLE)
|
||||
.DW BQRTC_INIT
|
||||
#ENDIF
|
||||
@@ -3069,7 +3122,6 @@ HB_INITTBL:
|
||||
#IF (PPPENABLE)
|
||||
.DW PPP_INIT
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
HB_INITTBLLEN .EQU (($ - HB_INITTBL) / 2)
|
||||
;
|
||||
@@ -3122,7 +3174,7 @@ HB_DISPATCH:
|
||||
PUSH AF
|
||||
LD A,(HB_STACK - HB_STKSIZ + $08)
|
||||
CP $FF
|
||||
CALL SYSCHK
|
||||
SYSCHKERR(ERR_INTERNAL)
|
||||
LD A,$FF
|
||||
LD (HB_STACK - HB_STKSIZ + $08),A
|
||||
POP AF
|
||||
@@ -3150,9 +3202,7 @@ HB_DISPATCH1:
|
||||
; FALL THRU
|
||||
;
|
||||
HB_DISPERR:
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOFUNC)
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
@@ -3493,7 +3543,7 @@ HB_DSKFN:
|
||||
HB_DSKFNADR .EQU $+1
|
||||
CALL PANIC ; READ ONE SECTOR
|
||||
#IF (DIAGENABLE & DIAGDISKIO)
|
||||
DIAG(0) ; CLEAR DIAG LEDS
|
||||
DIAG(DIAG_00) ; CLEAR DIAG LEDS
|
||||
#ENDIF
|
||||
#IF (LEDENABLE & LEDDISKIO)
|
||||
LED($00)
|
||||
@@ -3614,9 +3664,7 @@ RTC_DISPATCH:
|
||||
RET
|
||||
;
|
||||
RTC_DISPERR:
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOHW
|
||||
OR A
|
||||
SYSCHKERR(ERR_NOHW)
|
||||
RET
|
||||
;
|
||||
; SET RTC DISPATCH ADDRESS, USED BY RTC DRIVERS DURING INIT
|
||||
@@ -3714,7 +3762,7 @@ SND_ADDENT:
|
||||
; WORD UNIT SPECIFIC DATA (TYPICALLY A DEVICE INSTANCE DATA ADDRESS)
|
||||
;
|
||||
SND_FNCNT .EQU 8 ; NUMBER OF SND FUNCS (FOR RANGE CHECK)
|
||||
SND_MAX .EQU 4 ; UP TO 4 UNITS
|
||||
SND_MAX .EQU 5 ; UP TO 5 UNITS
|
||||
SND_SIZ .EQU SND_MAX * 4 ; EACH ENTRY IS 4 BYTES
|
||||
;
|
||||
.DB SND_FNCNT ; SND FUNCTION COUNT (FOR RANGE CHECK)
|
||||
@@ -3726,7 +3774,7 @@ SND_TBL .FILL SND_SIZ,0 ; SPACE FOR ENTRIES
|
||||
; SPEAKER BEEP ROUTINE
|
||||
;==================================================================================================
|
||||
;
|
||||
; ROUTINE TO BEEP THE DEAULT SOUND UNIT
|
||||
; ROUTINE TO BEEP THE DEFAULT SOUND UNIT
|
||||
; NEED TO CHECK FOR EXISTENCE OF SOUND UNIT
|
||||
; WHICH CHANNEL SHOULD BE USED? IS THERE A GOOD DEFAULT CHANNEL?
|
||||
;
|
||||
@@ -3814,9 +3862,7 @@ SYS_RESET:
|
||||
JR Z,SYS_RESCOLD
|
||||
CP BF_SYSRES_USER
|
||||
JR Z,SYS_RESUSER
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC
|
||||
OR A ; SIGNAL ERROR
|
||||
SYSCHKERR(ERR_NOFUNC)
|
||||
RET
|
||||
;
|
||||
; SOFT RESET HBIOS, RELEASE HEAP MEMORY NOT USED BY HBIOS
|
||||
@@ -4020,9 +4066,7 @@ SYS_ALLOC:
|
||||
; ALL OTHER REGISTERS PRESERVED
|
||||
;
|
||||
SYS_FREE:
|
||||
CALL SYSCHK ; NOT YET IMPLEMENTED
|
||||
LD A,ERR_NOTIMPL ; NOT YET INMPLEMENTED
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_NOTIMPL) ; NOT YET INMPLEMENTED
|
||||
RET
|
||||
;
|
||||
; GET SYSTEM INFORMATION
|
||||
@@ -4062,9 +4106,7 @@ SYS_GET:
|
||||
JP Z,SYS_GETBNKINFO
|
||||
CP BF_SYSGET_CPUSPD
|
||||
JP Z,SYS_GETCPUSPD
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
|
||||
RET
|
||||
;
|
||||
; GET TIMER
|
||||
@@ -4151,7 +4193,7 @@ SYS_GETBNKINFO:
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; GET SYSTEM CPU SPEED ORMANCE ATTRIBUTES
|
||||
; GET SYSTEM CPU SPEED PERFORMANCE ATTRIBUTES
|
||||
; RETURNS:
|
||||
; L: CLOCK MULT (0:HALF, 1:FULL, 2: DOUBLE)
|
||||
; D: MEMORY WAIT STATES
|
||||
@@ -4356,9 +4398,7 @@ SYS_SET:
|
||||
JR Z,SYS_SETBOOTINFO
|
||||
CP BF_SYSSET_CPUSPD
|
||||
JR Z,SYS_SETCPUSPD
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
|
||||
RET
|
||||
;
|
||||
; SET BOOT INFORMATION
|
||||
@@ -4719,9 +4759,7 @@ SYS_INT:
|
||||
JR Z,SYS_INTGET
|
||||
CP BF_SYSINT_SET
|
||||
JR Z,SYS_INTSET
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
|
||||
RET
|
||||
;
|
||||
; GET INTERRUPT SYSTEM INFORMATION
|
||||
@@ -4747,9 +4785,7 @@ SYS_INTINFO:
|
||||
;
|
||||
SYS_INTVECADR:
|
||||
#IF (INTMODE == 0)
|
||||
CALL SYSCHK ; INVALID FOR INT MODE 0
|
||||
LD A,ERR_BADCFG ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_BADCFG) ; SIGNAL ERROR. INVALID FOR INT MODE 0
|
||||
RET
|
||||
#ENDIF
|
||||
#IF (INTMODE == 1)
|
||||
@@ -4763,9 +4799,7 @@ SYS_INTVECADR:
|
||||
LD A,E ; INCOMING INDEX POSITION TO A
|
||||
CP C ; COMPARE TO VECTOR COUNT
|
||||
JR C,SYS_INTGET1 ; CONTINUE IF POSITION IN RANGE
|
||||
CALL SYSCHK ; ELSE ERROR
|
||||
LD A,ERR_RANGE ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_RANGE) ; ELSE ERROR
|
||||
RET
|
||||
SYS_INTGET1:
|
||||
OR A ; CLEAR CARRY
|
||||
@@ -5246,15 +5280,11 @@ HB_DISPCALC:
|
||||
RET ; JUMP TO DRIVER FUNC ADR ON TOS
|
||||
;
|
||||
HB_FUNCERR:
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOFUNC ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
|
||||
RET
|
||||
;
|
||||
HB_UNITERR:
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOUNIT ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_NOUNIT) ; SIGNAL ERROR
|
||||
RET
|
||||
;
|
||||
; ADD AN ENTRY TO THE UNIT TABLE AT ADDRESS IN HL
|
||||
@@ -5341,9 +5371,7 @@ HB_ALLOC:
|
||||
HB_ALLOC1:
|
||||
; ERROR RETURN
|
||||
POP DE ; RESTORE INCOMING DE
|
||||
CALL SYSCHK
|
||||
LD A,ERR_NOMEM ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
SYSCHKERR(ERR_NOMEM) ; SIGNAL ERROR
|
||||
RET
|
||||
;
|
||||
HB_TMPSZ .DW 0
|
||||
@@ -5772,6 +5800,15 @@ SIZ_DSRTC .EQU $ - ORG_DSRTC
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DS1501RTCENABLE)
|
||||
ORG_DS1501RTC .EQU $
|
||||
#INCLUDE "ds1501rtc.asm"
|
||||
SIZ_DS1501RTC .EQU $ - ORG_DS1501RTC
|
||||
.ECHO "DS1501RTC occupies "
|
||||
.ECHO SIZ_DS1501RTC
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (BQRTCENABLE)
|
||||
ORG_BQRTC .EQU $
|
||||
#INCLUDE "bqrtc.asm"
|
||||
@@ -6018,7 +6055,7 @@ SIZ_FONTS .EQU $ - ORG_FONTS
|
||||
.ECHO SIZ_FONTS
|
||||
.ECHO " bytes.\n"
|
||||
;
|
||||
#IF (CVDUENABLE | VGAENABLE) | GDCENABLE | (TMSENABLE & ((TMSMODE == TMSMODE_RCKBD) | (TMSMODE == TMSMODE_MBC)))
|
||||
#IF (CVDUENABLE | VGAENABLE) | GDCENABLE | (TMSENABLE & ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC)))
|
||||
ORG_KBD .EQU $
|
||||
#INCLUDE "kbd.asm"
|
||||
SIZ_KBD .EQU $ - ORG_KBD
|
||||
@@ -6176,6 +6213,14 @@ SIZ_AY38910 .EQU $ - ORG_AY38910
|
||||
.ECHO SIZ_AY38910
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
#IF (YM2612ENABLE)
|
||||
ORG_YM2612 .EQU $
|
||||
#INCLUDE "ym2612.asm"
|
||||
SIZ_YM2612 .EQU $ - ORG_YM2612
|
||||
.ECHO "YM2612 occupies "
|
||||
.ECHO SIZ_YM2612
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
.ECHO "RTCDEF="
|
||||
.ECHO RTCDEF
|
||||
@@ -6322,7 +6367,7 @@ HB_RDSEC:
|
||||
;
|
||||
; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE?
|
||||
;
|
||||
SYSCHK:
|
||||
SYSCHKA:
|
||||
; CHECK DIAG LEVEL TO SEE IF WE SHOULD DISPLAY
|
||||
PUSH AF ; PRESERVE INCOMING AF VALUE
|
||||
LD A,(CB_DIAGLVL) ; GET DIAGNOSTIC LEVEL
|
||||
@@ -6336,6 +6381,17 @@ SYSCHK:
|
||||
CALL WRITESTR ; PRINT IT
|
||||
POP DE ; RESTORE DE VALUE
|
||||
CALL XREGDMP ; DUMP REGISTERS
|
||||
|
||||
; DISPLAY ERROR CODE. IT IS AT RETURN ADDRESS+1 .. LD A,XX
|
||||
EX (SP),HL ; GET RETURN ADDRESS
|
||||
INC HL ; POINT TO THE ERROR CODE
|
||||
PUSH AF
|
||||
LD A,(HL) ; DISPLAY
|
||||
CALL PRTHEXBYTE
|
||||
POP AF
|
||||
DEC HL ; RESTORE RETURN ADDRESS
|
||||
EX (SP),HL
|
||||
;
|
||||
JR CONTINUE ; CHECK W/ USER
|
||||
;
|
||||
SYSCHK1:
|
||||
@@ -6545,7 +6601,8 @@ PS_PRTDC:
|
||||
RES 7,D ; CLEAR LBA BIT
|
||||
LD B,11 ; 11 BIT SHIFT TO CONVERT BLOCKS --> MB
|
||||
CALL SRL32 ; RIGHT SHIFT
|
||||
CALL PRTDEC ; PRINT LOW WORD IN DECIMAL (HIGH WORD DISCARDED)
|
||||
;CALL PRTDEC ; PRINT LOW WORD IN DECIMAL (HIGH WORD DISCARDED)
|
||||
CALL PRTDEC32 ; PRINT DWORD IN DECIMAL
|
||||
PRTS("MB$") ; PRINT SUFFIX
|
||||
CALL PC_COMMA
|
||||
PRTS("LBA$") ; FOR NOW, WE ASSUME HARD DISK DOES LBA
|
||||
@@ -6559,7 +6616,8 @@ PS_PRTDC1:
|
||||
RES 7,D ; CLEAR LBA BIT
|
||||
LD B,1 ; 11 BIT SHIFT TO CONVERT BLOCKS --> MB
|
||||
CALL SRL32 ; RIGHT SHIFT
|
||||
CALL PRTDEC ; PRINT LOW WORD IN DECIMAL (HIGH WORD DISCARDED)
|
||||
;CALL PRTDEC ; PRINT LOW WORD IN DECIMAL (HIGH WORD DISCARDED)
|
||||
CALL PRTDEC32 ; PRINT DWORD IN DECIMAL
|
||||
PRTS("KB$") ; PRINT SUFFIX
|
||||
CALL PC_COMMA
|
||||
PRTS("LBA$") ; FOR NOW, WE ASSUME HARD DISK DOES LBA
|
||||
@@ -6802,7 +6860,7 @@ PS_SOUND:
|
||||
|
||||
; DEVICE COLUMN
|
||||
|
||||
PUSH BC ;
|
||||
PUSH BC
|
||||
LD E,C
|
||||
XOR A
|
||||
LD DE,PS_SDSND ; POINT TO DEVICE TYPE NAME TABLE
|
||||
@@ -6810,12 +6868,10 @@ PS_SOUND:
|
||||
LD A,C ; MOVE UNIT NUM TO A
|
||||
CALL PRTDECB ; PRINT IT
|
||||
CALL PC_COLON
|
||||
CP 10 ; CHECK FOR MULTIPLE DIGITS
|
||||
CALL C,PC_SPACE ; EXTRA SPACE IF NEEDED
|
||||
LD A,(PRTIDXCNT)
|
||||
SUB 9+1
|
||||
CPL
|
||||
CALL PS_PAD
|
||||
SUB 12-1 ; SUBTRACT FIELD WIDTH (LESS THE COLON)
|
||||
NEG ; MAKE IT A POSITIVE NUMBER
|
||||
CALL PS_PAD ; PAD AS NEEDED
|
||||
POP BC
|
||||
|
||||
; DEVICE TYPE
|
||||
@@ -6832,9 +6888,9 @@ PS_SOUND:
|
||||
LD DE,PS_SDSN76489
|
||||
CALL PRTIDXDEA
|
||||
LD A,(PRTIDXCNT)
|
||||
SUB 18+1
|
||||
CPL
|
||||
CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A)
|
||||
SUB 18 ; SUBTRACT FIELD WIDTH
|
||||
NEG ; MAKE IT A POSITIVE NUMBER
|
||||
CALL PS_PAD ; PAD AS NEEDED
|
||||
|
||||
; DEVICE CHARACTERISTICS
|
||||
;
|
||||
@@ -6876,7 +6932,7 @@ PS_PRTDEV:
|
||||
CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A)
|
||||
RET
|
||||
;
|
||||
; PRINT DEVICE NMEMONIC, DEVTYP/NUM SPECIFIED IN DE
|
||||
; PRINT DEVICE MNEMONIC, DEVTYP/NUM SPECIFIED IN DE
|
||||
;
|
||||
PS_PRTNUL:
|
||||
LD HL,PS_STRNUL
|
||||
@@ -7022,6 +7078,7 @@ PS_SDSND .TEXT "SND$"
|
||||
PS_SDSN76489 .TEXT "SN76489$"
|
||||
PS_SDAY38910 .TEXT "AY-3-8910$"
|
||||
PS_SDBITMODE .TEXT "I/O PORT$"
|
||||
PS_SDYM2612 .TEXT "YM2612$"
|
||||
;
|
||||
; 0 1 2 3 4 5 6 7
|
||||
; 01234567890123456789012345678901234567890123456789012345678901234567890123456789
|
||||
|
||||
@@ -156,6 +156,111 @@ ERR_TIMEOUT .EQU -11 ; DEVICE TIMEOUT
|
||||
ERR_BADCFG .EQU -12 ; INVALID CONFIGURATION
|
||||
ERR_INTERNAL .EQU -13 ; INTERNAL ERROR
|
||||
;
|
||||
; HBIOS DIAG OPTIONS
|
||||
;
|
||||
DIAG_PROG .EQU 0 ; PROGRESS BAR
|
||||
DIAG_STEP .EQU 1 ; STEP BAR
|
||||
DIAG_ASCII .EQU 2 ; 8-BIT ASCII 30H - 39H
|
||||
DIAG_BINARY .EQU 3 ; BINARY 00H - 09H
|
||||
DIAG_7SEG .EQU 4 ; 7-SEGMENT
|
||||
DIAG_FLASH .EQU 5 ; FLASH
|
||||
DIAG_TRIG .EQU 6 ; TRIGGER
|
||||
;
|
||||
DIAG_DISP .EQU DIAG_PROG ; DEFAULT
|
||||
;
|
||||
#IF (DIAG_DISP == DIAG_PROG)
|
||||
DIAG_00 .EQU 00000000B
|
||||
DIAG_01 .EQU 00000001B
|
||||
DIAG_02 .EQU 00000011B
|
||||
DIAG_03 .EQU 00000111B
|
||||
DIAG_04 .EQU 00001111B
|
||||
DIAG_05 .EQU 00011111B
|
||||
DIAG_06 .EQU 00111111B
|
||||
DIAG_07 .EQU 01111111B
|
||||
DIAG_08 .EQU 11111111B
|
||||
DIAG_09 .EQU 11111111B
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DIAG_DISP == DIAG_STEP)
|
||||
DIAG_00 .EQU 00000000B
|
||||
DIAG_01 .EQU 00000001B
|
||||
DIAG_02 .EQU 00000010B
|
||||
DIAG_03 .EQU 00000100B
|
||||
DIAG_04 .EQU 00001000B
|
||||
DIAG_05 .EQU 00010000B
|
||||
DIAG_06 .EQU 00100000B
|
||||
DIAG_07 .EQU 01000000B
|
||||
DIAG_08 .EQU 10000000B
|
||||
DIAG_09 .EQU 11111111B
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DIAG_DISP == DIAG_ASCII)
|
||||
DIAG_00 .EQU '0'
|
||||
DIAG_01 .EQU '1'
|
||||
DIAG_02 .EQU '2'
|
||||
DIAG_03 .EQU '3'
|
||||
DIAG_04 .EQU '4'
|
||||
DIAG_05 .EQU '5'
|
||||
DIAG_06 .EQU '6'
|
||||
DIAG_07 .EQU '7'
|
||||
DIAG_08 .EQU '8'
|
||||
DIAG_09 .EQU '9'
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DIAG_DISP == DIAG_BINARY)
|
||||
DIAG_00 .EQU 0
|
||||
DIAG_01 .EQU 1
|
||||
DIAG_02 .EQU 2
|
||||
DIAG_03 .EQU 3
|
||||
DIAG_04 .EQU 4
|
||||
DIAG_05 .EQU 5
|
||||
DIAG_06 .EQU 6
|
||||
DIAG_07 .EQU 7
|
||||
DIAG_08 .EQU 8
|
||||
DIAG_09 .EQU 9
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DIAG_DISP == DIAG_7SEG)
|
||||
; abcdefg
|
||||
DIAG_00 .EQU 00000000B ; BLANK
|
||||
DIAG_01 .EQU 01111110B ; 0
|
||||
DIAG_02 .EQU 00110000B ; 1
|
||||
DIAG_03 .EQU 01101101B ; 2
|
||||
DIAG_04 .EQU 01111001B ; 3
|
||||
DIAG_05 .EQU 00110011B ; 4
|
||||
DIAG_06 .EQU 01011011B ; 5
|
||||
DIAG_07 .EQU 00011111B ; 6
|
||||
DIAG_08 .EQU 01110000B ; 7
|
||||
DIAG_09 .EQU 01111111B ; 8
|
||||
DIAG_10 .EQU 01110011B ; 9
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DIAG_DISP == DIAG_FLASH)
|
||||
DIAG_00 .EQU 00000000B ; OFF
|
||||
DIAG_01 .EQU 11111111B ; ON
|
||||
DIAG_02 .EQU 00000000B ; OFF
|
||||
DIAG_03 .EQU 11111111B ; ON
|
||||
DIAG_04 .EQU 00000000B ; OFF
|
||||
DIAG_05 .EQU 11111111B ; ON
|
||||
DIAG_06 .EQU 00000000B ; OFF
|
||||
DIAG_07 .EQU 11111111B ; ON
|
||||
DIAG_08 .EQU 00000000B ; OFF
|
||||
DIAG_09 .EQU 11111111B ; ON
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DIAG_DISP == DIAG_TRIG)
|
||||
DIAG_00 .EQU 11111111B ; ON
|
||||
DIAG_01 .EQU 11111111B ; ON
|
||||
DIAG_02 .EQU 11111111B ; ON
|
||||
DIAG_03 .EQU 11111111B ; ON
|
||||
DIAG_04 .EQU 11111111B ; ON
|
||||
DIAG_05 .EQU 11111111B ; ON
|
||||
DIAG_06 .EQU 11111111B ; ON
|
||||
DIAG_07 .EQU 11111111B ; ON
|
||||
DIAG_08 .EQU 11111111B ; ON
|
||||
DIAG_09 .EQU 11111111B ; ON
|
||||
#ENDIF
|
||||
;
|
||||
; MEDIA ID VALUES
|
||||
;
|
||||
MID_NONE .EQU 0
|
||||
@@ -228,6 +333,7 @@ VDADEV_VGA .EQU $40 ; ECB VGA3 - HITACHI HD6445
|
||||
SNDDEV_SN76489 .EQU $00
|
||||
SNDDEV_AY38910 .EQU $10
|
||||
SNDDEV_BITMODE .EQU $20
|
||||
SNDDEV_YM2612 .EQU $30
|
||||
;
|
||||
; HBIOS CONTROL BLOCK OFFSETS
|
||||
; WARNING: THESE OFFSETS WILL CHANGE SIGNIFICANTLY BETWEEN RELEASES
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user