mirror of https://github.com/wwarthen/RomWBW.git
256 changed files with 20627 additions and 5364 deletions
@ -0,0 +1,11 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
if exist *.spr del *.spr |
|||
if exist *.com del *.com |
|||
if exist *.sys del *.sys |
|||
if exist *.pat del *.pat |
|||
if exist *.dat del *.dat |
|||
if exist *.1st del *.1st |
|||
if exist *.spr del *.spr |
|||
if exist *.pat del *.pat |
|||
@ -0,0 +1,7 @@ |
|||
TOOLS = ../../Tools |
|||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr) |
|||
|
|||
include $(TOOLS)/Makefile.inc |
|||
|
|||
clobber:: |
|||
@rm -f *.spr |
|||
@ -0,0 +1,17 @@ |
|||
*********************************************************************** |
|||
*** *** |
|||
*** R o m W B W *** |
|||
*** *** |
|||
*** Z80/Z180 System Software *** |
|||
*** *** |
|||
*********************************************************************** |
|||
|
|||
This directory contains the CP/M 3 system files for the RomWBW CP/M 3 |
|||
adaptation. All of these files are already included on the CP/M 3 |
|||
boot disk images. However if you are creating a CP/M 3 boot disk |
|||
manually, you should copy all of these files to the boot disk. |
|||
|
|||
These files should also be copied to any CP/M 3 boot disks on your |
|||
system when you upgrade your ROM firmware. Some of these files |
|||
*must* match the version of the RomWBW firmware you are using for |
|||
proper operation of your system. |
|||
@ -1,8 +1,8 @@ |
|||
TOOLS = ../Tools |
|||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.img *.rom *.com *.eeprom) |
|||
SUBDIRS = Apps |
|||
SUBDIRS = Apps CPM3 ZPM3 |
|||
|
|||
include $(TOOLS)/Makefile.inc |
|||
|
|||
clobber:: |
|||
rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom |
|||
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.dat |
|||
|
|||
@ -0,0 +1,10 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
if exist *.spr del *.spr |
|||
if exist *.com del *.com |
|||
if exist *.sys del *.sys |
|||
if exist *.pat del *.pat |
|||
if exist *.dat del *.dat |
|||
if exist *.zpm del *.zpm |
|||
if exist *.spr del *.spr |
|||
@ -0,0 +1,7 @@ |
|||
TOOLS = ../../Tools |
|||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr) |
|||
|
|||
include $(TOOLS)/Makefile.inc |
|||
|
|||
clobber:: |
|||
@rm -f *.spr |
|||
@ -0,0 +1,17 @@ |
|||
*********************************************************************** |
|||
*** *** |
|||
*** R o m W B W *** |
|||
*** *** |
|||
*** Z80/Z180 System Software *** |
|||
*** *** |
|||
*********************************************************************** |
|||
|
|||
This directory contains the ZPM3 system files for the RomWBW ZPM3 |
|||
adaptation. All of these files are already included on the ZPM3 |
|||
boot disk images. However if you are creating a CP/M 3 boot disk |
|||
manually, you should copy all of these files to the boot disk. |
|||
|
|||
These files should also be copied to any ZPM3 boot disks on your |
|||
system when you upgrade your ROM firmware. Some of these files |
|||
*must* match the version of the RomWBW firmware you are using for |
|||
proper operation of your system. |
|||
@ -1,186 +1,199 @@ |
|||
|
|||
FLASH4 (c) 2014 William R Sowerbutts <will@sowerbutts.com> |
|||
http://sowerbutts.com/8bit/ |
|||
|
|||
= Warning = |
|||
|
|||
FLASH4 has been tested and confirmed working on: |
|||
* N8VEM SBCv2 |
|||
* N8VEM N8-2312 |
|||
* N8VEM Mark IV SBC |
|||
* DX-Designs P112 |
|||
* ZETA SBC v2 |
|||
|
|||
However it remains somewhat experimental. If it works for you, please let me |
|||
know. If it breaks please also let me know so I can fix it! |
|||
|
|||
|
|||
= Introduction = |
|||
|
|||
FLASH4 is a CP/M program which can read, write and verify Flash ROM contents to |
|||
or from an image file stored on a CP/M filesystem. It is intended for in-system |
|||
programming of Flash ROM chips on Z80 and Z180 systems. |
|||
|
|||
FLASH4 aims to support a range of Flash ROM chips. Ideally I would like to |
|||
support all Flash ROM chips that are in use in Z80/Z180 N8VEM machines. If |
|||
FLASH4 does not support your chip please let me know and I will try to add |
|||
support. |
|||
|
|||
When writing to the Flash ROM chip, FLASH4 will only reprogram the sectors |
|||
whose contents have changed. This helps to reduce wear on the flash memory, |
|||
makes the reprogram operation faster, and reduces the risk of leaving the |
|||
system unbootable if power fails during a reprogramming operation. FLASH4 |
|||
always performs a full verify operation after writing to the chip to confirm |
|||
that the correct data has been loaded. |
|||
|
|||
FLASH4 is reasonably fast. Reprogramming and verifying every sector on a 512KB |
|||
SST 39F040 chip takes 21 seconds on my Mark IV SBC, versus 45 seconds to |
|||
perform the same task using a USB MiniPro TL866 EEPROM programmer under Linux |
|||
on my PC. If only a subset of sectors require reprogramming FLASH4 will be |
|||
even faster. |
|||
|
|||
FLASH4 works with binary ROM image files, it does not support Intel Hex format |
|||
files. Hex files can be easily converted to or from binaries using "hex2bin" or |
|||
the "srec_cat" program from SRecord: |
|||
|
|||
$ srec_cat image.hex -intel -fill 0xFF 0 0x80000 -output image.bin -binary |
|||
$ srec_cat image.bin -binary -output image.hex -intel |
|||
|
|||
FLASH4 can use several different methods to access the Flash ROM chip. The best |
|||
available method is determined automatically at run time. Alternatively you may |
|||
provide a command-line option to force the use of a specific method. |
|||
|
|||
The first two methods use bank switching to map sections of the ROM into the |
|||
CPU address space. FLASH4 will detect the presence of RomWBW or UNA BIOS and |
|||
use the bank switching methods they provide. |
|||
|
|||
On P112 systems the P112 B/P BIOS is detected and P112 bank switching is used. |
|||
|
|||
If no bank switching method can be auto-detected, and the system has a Z180 |
|||
CPU, FLASH4 will use the Z180 DMA engine to access the Flash ROM chip. This |
|||
does not require any bank switching but it is slower and will not work on all |
|||
platforms. |
|||
|
|||
Z180 DMA access requires the flash ROM to be linearly mapped into the lower |
|||
region of physical memory, as it is on the Mark IV SBC (for example). The |
|||
N8-2312 has additional memory mapping hardware, consequently Z180 DMA access on |
|||
the N8-2312 is NOT SUPPORTED and if forced will corrupt the contents of RAM; |
|||
use one of the supported bank switching methods instead. |
|||
|
|||
Z180 DMA access requires the Z180 CPU I/O base control register configured to |
|||
locate the internal I/O addresses at 0x40 (ie ICR bits IOA7, IOA6 = 0, 1). |
|||
|
|||
|
|||
= Usage = |
|||
|
|||
The three basic operations are: |
|||
|
|||
FLASH4 WRITE filename [options] |
|||
|
|||
This will rewrite the flash ROM contents from the named file. The file size |
|||
must exactly match the size of the ROM chip. After the write operation, a |
|||
verify operation will be performed automatically. |
|||
|
|||
FLASH4 VERIFY filename [options] |
|||
|
|||
This will read out the flash ROM contents and report if it matches the contents |
|||
of the named file. The file size must exactly match the size of the ROM chip. |
|||
|
|||
FLASH4 READ filename [options] |
|||
|
|||
This will read out the entire flash ROM contents and write it to the named |
|||
file. |
|||
|
|||
If your ROM chip is larger than the image you wish to write, use the "/PARTIAL" |
|||
(or "/P") command line option. To avoid accidentally flashing the wrong file, |
|||
the image file must be an exact multiple of 32KB in length. The portion of the |
|||
ROM not occupied by the image file is left either unmodified or erased. |
|||
|
|||
If you are using an ROM/EPROM/EEPROM chip which cannot be programmed in-system, |
|||
FLASH4 will not be able to recognise it, however the software can still |
|||
usefully READ and VERIFY the chip. Use the "/ROM" command line option to enable |
|||
"READ" or "VERIFY" mode with unrecognised chips. This mode assumes a 512K ROM |
|||
is fitted; smaller ROMs will be treated as a 512K ROM with the data repated |
|||
multiple times -- with a 256K chip the data is repeated twice, four times for a |
|||
128K chip, etc. |
|||
|
|||
One of the following optional command line arguments may be specified at the |
|||
end of the command line to force FLASH4 to use a particular method to access |
|||
the flash ROM chip: |
|||
|
|||
BIOS interfaces: |
|||
/ROMWBW For ROMWBW BIOS version 2.6 and later |
|||
/ROMWBWOLD For ROMWBW BIOS version 2.5 and earlier |
|||
/UNABIOS For UNA BIOS |
|||
|
|||
Direct hardware interfaces: |
|||
/Z180DMA For Z180 DMA |
|||
/P112 For DX-Designs P112 |
|||
/N8VEMSBC For N8VEM SBC (v1, v2), Zeta (v1) SBC |
|||
|
|||
If no option is specified FLASH4 attempts to determine the best available |
|||
method automatically. |
|||
|
|||
|
|||
= Supported chips and features = |
|||
|
|||
FLASH4 will interrogate your flash ROM chip to identify it automatically. |
|||
FLASH4 assumes that you have a single flash ROM device and it is located at the |
|||
bottom of the physical memory map. |
|||
|
|||
FLASH4 does not support setting or resetting the protection bits on individual |
|||
sectors within Flash ROM devices. If your Flash ROM chip has protected sectors |
|||
you will need to unprotect them by other means before FLASH4 can erase and |
|||
reprogram them. |
|||
|
|||
AT29C series chips employ an optional "software data protection" feature. This |
|||
is supported by FLASH4 and is left activated after programming the chip to |
|||
prevent accidental reprogramming of sectors. |
|||
|
|||
The following chips are supported: |
|||
|
|||
AT29F010 |
|||
AT29F040 |
|||
M29F010 |
|||
M29F040 |
|||
MX29F040 |
|||
SST 39F010 |
|||
SST 39F020 |
|||
SST 39F040 |
|||
AT29C512 |
|||
AT29C040 |
|||
AT29C010 |
|||
AT29C020 |
|||
|
|||
The following chips are supported but have unequal sector sizes; FLASH4 will |
|||
only erase and reprogram the entire chip at once rather than its normal |
|||
sector-by-sector operation: |
|||
|
|||
AT49F001NT |
|||
AT49F001N |
|||
AT49F002N |
|||
AT49F002NT |
|||
AT49F040 |
|||
|
|||
If you use a flash ROM chip that is not listed above please email me |
|||
(will@sowerbutts.com) and I will try to add support for it. |
|||
|
|||
|
|||
= Compiling = |
|||
|
|||
The software is written in a mix of C and assembler. It builds using the SDCC |
|||
toolchain and the SRecord tools. A Makefile is provided to build the executable |
|||
in Linux and I imagine it can be easily modified to build in Windows. |
|||
|
|||
You may need to adjust the path to the SDCC libraries in the Makefile if your |
|||
sdcc installation is not in /usr/local |
|||
|
|||
|
|||
= License = |
|||
|
|||
FLASH4 is licensed under the The GNU General Public License version 3 (see |
|||
included "LICENSE.txt" file). |
|||
|
|||
FLASH4 is provided with NO WARRANTY. In no event will the author be liable for |
|||
any damages. Use of this program is at your own risk. May cause rifts in space |
|||
and time. |
|||
|
|||
FLASH4 (c) 2014-2020 William R Sowerbutts <will@sowerbutts.com> |
|||
http://sowerbutts.com/8bit/ |
|||
|
|||
= Supported machines = |
|||
|
|||
FLASH4 has been tested and confirmed working on: |
|||
* N8VEM SBCv2 |
|||
* N8VEM SBCv2 MegaFlash |
|||
* N8VEM N8-2312 |
|||
* N8VEM Mark IV SBC |
|||
* DX-Designs P112 |
|||
* ZETA SBC v1 |
|||
* ZETA SBC v2 |
|||
* RC2014 with 512KB ROM 512KB RAM module |
|||
|
|||
It should work on many other machines that run RomWBW or UNA BIOS. If you test |
|||
it on another machine please let me know the outcome. |
|||
|
|||
|
|||
= Introduction = |
|||
|
|||
FLASH4 is a CP/M program which can read, write and verify Flash ROM contents to |
|||
or from an image file stored on a CP/M filesystem. It is intended for in-system |
|||
programming of Flash ROM chips on Z80 and Z180 systems. |
|||
|
|||
FLASH4 aims to support a range of Flash ROM chips and machines. Ideally I would |
|||
like to support all Z80/Z180 machines. If FLASH4 does not support your machine |
|||
please let me know and I will try to add support. |
|||
|
|||
When writing to the Flash ROM, FLASH4 will only reprogram the sectors whose |
|||
contents have changed. This helps to reduce wear on the flash memory, makes the |
|||
reprogram operation faster, and reduces the risk of leaving the system |
|||
unbootable if power fails during a reprogramming operation. FLASH4 always |
|||
performs a full verify operation after writing to the chip to confirm that the |
|||
correct data has been loaded. |
|||
|
|||
FLASH4 is reasonably fast. Reprogramming and verifying every sector on a 512KB |
|||
SST 39F040 chip takes 21 seconds on my Mark IV SBC, versus 45 seconds to |
|||
perform the same task using a USB MiniPro TL866 EEPROM programmer under Linux |
|||
on my PC. If only a subset of sectors require reprogramming FLASH4 will be |
|||
even faster. |
|||
|
|||
FLASH4 works with binary ROM image files, it does not support Intel Hex format |
|||
files. Hex files can be easily converted to or from binaries using "hex2bin" or |
|||
the "srec_cat" program from SRecord: |
|||
|
|||
$ srec_cat image.hex -intel -fill 0xFF 0 0x80000 -output image.bin -binary |
|||
$ srec_cat image.bin -binary -output image.hex -intel |
|||
|
|||
FLASH4 version 1.3 introduces support for programming multiple flash chips. |
|||
Some machines use multiple flash chips for larger ROM capacity, for example the |
|||
"Megaflash" version of the Retrobrew Computers SBC-V2 contains two 512KB flash |
|||
ROMs for a total of 1MB ROM. All flash chips in the system must be of the same |
|||
type. |
|||
|
|||
FLASH4 can use several different methods to access the Flash ROM chips. The |
|||
best available method is determined automatically at run time. Alternatively |
|||
you may provide a command-line option to force the use of a specific method. |
|||
|
|||
FLASH4 will detect the presence of RomWBW, UNA BIOS or P112 B/P BIOS and use |
|||
the bank switching methods they provide to map in the flash memory. |
|||
|
|||
If no bank switching method can be auto-detected, and the system has a Z180 |
|||
CPU, FLASH4 will use the Z180 DMA engine to access the Flash ROM chip. This |
|||
does not require any bank switching but it is slower and will not work on all |
|||
platforms. |
|||
|
|||
Z180 DMA access requires the flash ROM to be linearly mapped into the lower |
|||
region of physical memory, as it is on the Mark IV SBC (for example). The |
|||
N8-2312 has additional memory mapping hardware, consequently Z180 DMA access on |
|||
the N8-2312 is NOT SUPPORTED and if forced will corrupt the contents of RAM; |
|||
use one of the supported bank switching methods instead. |
|||
|
|||
Z180 DMA access requires the Z180 CPU I/O base control register configured to |
|||
locate the internal I/O addresses at 0x40 (ie ICR bits IOA7, IOA6 = 0, 1). |
|||
|
|||
|
|||
= Usage = |
|||
|
|||
The three basic operations are: |
|||
|
|||
FLASH4 WRITE filename [options] |
|||
|
|||
FLASH4 VERIFY filename [options] |
|||
|
|||
FLASH4 READ filename [options] |
|||
|
|||
The WRITE command will rewrite the flash ROM contents from the named file. The |
|||
file size must exactly match the size of the ROM chip. After the WRITE |
|||
operation, a VERIFY operation will be performed automatically. |
|||
|
|||
The VERIFY command will read out the flash ROM contents and report if it |
|||
matches the contents of the named file. The file size must exactly match the |
|||
size of the ROM chip. |
|||
|
|||
The READ command will read out the entire flash ROM contents and write it to |
|||
the named file. |
|||
|
|||
FLASH4 will auto-detect most parameters so additional options should not |
|||
normally be required. |
|||
|
|||
The "/V" (verbose) option makes FLASH4 print one line per sector, giving a |
|||
detailed log of what it did. |
|||
|
|||
The "/P" or "/PARTIAL" option can be used if your ROM chip is larger than the |
|||
image you wish to write and you only want to reprogram part of it. To avoid |
|||
accidentally flashing the wrong file, the image file must be an exact multiple |
|||
of 32KB in length. The portion of the ROM not occupied by the image file is |
|||
left either unmodified or erased. |
|||
|
|||
The "/ROM" option can be used when you are using an ROM/EPROM/EEPROM chip which |
|||
cannot be programmed in-system and FLASH4 cannot recognise it. Only the "READ" |
|||
and "VERIFY" commands are supported with this option. This mode assumes a 512K |
|||
ROM is fitted, smaller ROMs will be treated as a 512KB ROM with the data |
|||
repeated multiple times. |
|||
|
|||
One of the following optional command line arguments may be specified at the |
|||
end of the command line to force FLASH4 to use a particular method to access |
|||
the flash ROM chip: |
|||
|
|||
BIOS interfaces: |
|||
/ROMWBW For ROMWBW BIOS version 2.6 and later |
|||
/ROMWBWOLD For ROMWBW BIOS version 2.5 and earlier |
|||
/UNABIOS For UNA BIOS |
|||
|
|||
Direct hardware interfaces: |
|||
/Z180DMA For Z180 DMA |
|||
/P112 For DX-Designs P112 |
|||
/N8VEMSBC For N8VEM SBC (v1, v2), Zeta (v1) SBC |
|||
|
|||
If no option is specified FLASH4 attempts to determine the best available |
|||
method automatically. |
|||
|
|||
If RomWBW 2.6+ is in use, and correctly configured, then multiple flash chips |
|||
can be detected automatically. Multiple chip operation can also be manually |
|||
enabled using the command line options "/1", "/2", "/3" etc up to "/9" to |
|||
specify the number of flash chips to program. All flash chips in the system |
|||
must be of the same type. |
|||
|
|||
|
|||
= Supported flash memory chips = |
|||
|
|||
FLASH4 will interrogate your flash ROM chip to identify it automatically. |
|||
|
|||
FLASH4 does not support setting or resetting the protection bits on individual |
|||
sectors within Flash ROM devices. If your Flash ROM chip has protected sectors |
|||
you will need to unprotect them by other means before FLASH4 can erase and |
|||
reprogram them. |
|||
|
|||
AT29C series chips employ an optional "software data protection" feature. This |
|||
is supported by FLASH4 and is left activated after programming the chip to |
|||
prevent accidental reprogramming of sectors. |
|||
|
|||
The following chips are fully supported and will be programmed sector by |
|||
sector: |
|||
|
|||
AT29F010 |
|||
AT29F040 |
|||
M29F010 |
|||
M29F040 |
|||
MX29F040 |
|||
SST 39F010 |
|||
SST 39F020 |
|||
SST 39F040 |
|||
AT29C512 |
|||
AT29C040 |
|||
AT29C010 |
|||
AT29C020 |
|||
|
|||
The following chips are supported, but have unequal sector sizes, so FLASH4 |
|||
will only erase and reprogram the entire chip at once: |
|||
|
|||
AT49F001N |
|||
AT49F001NT |
|||
AT49F002N |
|||
AT49F002NT |
|||
AT49F040 |
|||
|
|||
|
|||
= Compiling = |
|||
|
|||
The software is written in a mix of C and assembler. It builds using the SDCC |
|||
toolchain and the SRecord tools. SDCC 3.6 and 3.8 have been tested. A Makefile |
|||
is provided to build the executable in Linux and I imagine it can be easily |
|||
modified to build in Windows. |
|||
|
|||
You may need to adjust the path to the SDCC libraries in the Makefile if your |
|||
installation is not in /usr/local or /usr |
|||
|
|||
|
|||
= License = |
|||
|
|||
FLASH4 is licensed under the The GNU General Public License version 3 (see |
|||
included "LICENSE.txt" file). |
|||
|
|||
FLASH4 is provided with NO WARRANTY. In no event will the author be liable for |
|||
any damages. Use of this program is at your own risk. May cause rifts in space |
|||
and time. |
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,19 +1,18 @@ |
|||
all: |
|||
cd Tools/unix ; make |
|||
cd Source ; make |
|||
cd Source/Images ; make |
|||
$(MAKE) --directory Tools/unix |
|||
$(MAKE) --directory Source |
|||
|
|||
clean: |
|||
cd Tools/unix ; make clean |
|||
cd Source ; make clean |
|||
cd Binary ; make clean |
|||
$(MAKE) --directory Tools/unix clean |
|||
$(MAKE) --directory Source clean |
|||
$(MAKE) --directory Binary clean |
|||
|
|||
clobber: |
|||
cd Tools/unix ; make clobber |
|||
cd Source ; make clobber |
|||
cd Binary ; make clobber |
|||
$(MAKE) --directory Tools/unix clobber |
|||
$(MAKE) --directory Source clobber |
|||
$(MAKE) --directory Binary clobber |
|||
rm -f typescript |
|||
|
|||
diff: |
|||
cd Source ; make diff |
|||
$(MAKE) --directory Source diff |
|||
|
|||
|
|||
@ -1,49 +1,87 @@ |
|||
this tree now contains makefiles and tools to build on Linux and MacosX |
|||
Linux is rather more thoroughly tested compared to os-x. |
|||
|
|||
to get here, TASM and the propeller generation tools needed to be replaced, |
|||
and since the unix filesystem is usually case-sensitive, and CP/M and windows |
|||
are not, the cpm tools were made case-insensitive. |
|||
|
|||
TASM was replaced with uz80as, which implements a subset of TASM and fixes some |
|||
bugs. however, I needed to add some functionality to make it build the sources |
|||
as they exist in this tree. in particular, one thing to be very careful of is |
|||
that TASM is not entirely consistent with respect to the .DS directive. |
|||
it's usually a bad idea to mix .DS, .FILL, .DB with .ORG. |
|||
This tree now contains makefiles and tools to build on Linux and |
|||
macOS. Linux is rather more thoroughly tested compared to macOS. |
|||
|
|||
To get here, TASM and the propeller generation tools needed to be |
|||
replaced, and since the unix filesystem is usually case-sensitive, |
|||
and CP/M and windows are not, the cpm tools were made case-insensitive. |
|||
|
|||
TASM was replaced with uz80as, which implements a subset of TASM and |
|||
fixes some bugs. However, I needed to add some functionality to make |
|||
it build the sources as they exist in this tree. In particular, one |
|||
thing to be very careful of is that TASM is not entirely consistent |
|||
with respect to the .DS directive. it's usually a bad idea to mix |
|||
.DS, .FILL, .DB with .ORG. |
|||
|
|||
.DS n is best thought of as .ORG $ + n |
|||
.ORG changes the memory pointer, but does not change the file output point. |
|||
it works a lot more like M80, SLR* .phase |
|||
.ORG changes the memory pointer, but does not change the file |
|||
output point. It works a lot more like M80, SLR* .PHASE |
|||
|
|||
It assumes that you have some standard system tools and libraries |
|||
installed specifically: gcc, gnu make, libncurses |
|||
|
|||
To build: |
|||
cd to the top directory and type "make". |
|||
|
|||
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 |
|||
|
|||
it assumes that you have some standard system tools and libraries installed |
|||
specifically: gcc, gnu make, libncurses |
|||
make ROM_PLATFORM=<platform> ROM_CONFIG=<config> |
|||
|
|||
to build: |
|||
cd to the top directory and type make. |
|||
where <platform> is one of the supported platforms such as SBC, RCZ80, |
|||
etc. and <config> is a configuration of that platform. For example, |
|||
to build the "126" configuration of the "SCZ180" platform: |
|||
|
|||
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. |
|||
make ROM_PLATFORM=SCZ180 ROM_CONFIG=126 |
|||
|
|||
these tools can run a windows-linux regression test, where all the binaries are |
|||
compared to a baseline windows build. |
|||
For macOS users, you may encounter a failure reading or writing files. |
|||
This is caused by protection features in macOS (at least, in Catalina) |
|||
that prevent programs built on your local system (unsigned) from |
|||
running. To disable this feature: |
|||
|
|||
1) Make sure you exit System Preferences. |
|||
2) Open a terminal session and type the following. You will need to |
|||
authenticate with an admin account. sudo spctl --master-disable |
|||
3) Exit terminal |
|||
4) Go into System Preferences and choose Security and Privacy |
|||
5) Select the General tab if it isn't already selected |
|||
6) You should now see a third selection under |
|||
"Allow apps downloaded from:" of Anywhere - select this. |
|||
7) Now you can run the build successfully. |
|||
|
|||
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 |
|||
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. |
|||
|
|||
These tools can run a windows-linux regression test, where all the |
|||
binaries are compared to a baseline windows build. |
|||
|
|||
Credit: |
|||
|
|||
uz80as was written by Jorge Giner Cordero, jorge.giner@hotmail.com, |
|||
and the original source can be found at https://github.com/jorgicor/uz80as |
|||
uz80as was written by Jorge Giner Cordero, |
|||
jorge.giner@hotmail.com, and the original source can be found |
|||
at https://github.com/jorgicor/uz80as. |
|||
|
|||
The propeller tools use bstc and openspin, parallax tools from |
|||
http://www.fnarfbargle.com/bst.html |
|||
https://github.com/parallaxinc/OpenSpin Note that bst is not |
|||
open source or even currently maintained, so I could not |
|||
generate a version for 64 bit macOS. |
|||
|
|||
the propeller tools use bstc and openspin, parallax tools from |
|||
http://www.fnarfbargle.com/bst.html https://github.com/parallaxinc/OpenSpin |
|||
note that bst is not open source or even currently maintained, so I could |
|||
not generate a version for 64 bit osx. |
|||
cpmtools were the most current I could find, and it has been |
|||
hacked to do case-insensitivity. These are not marked, and are |
|||
not extensive. |
|||
|
|||
cpmtools were the most current I could find, and it has been hacked to do |
|||
case-insensitivity. these are not marked, and are not extensive. |
|||
zx is from the distributed version, and also has local hacks |
|||
for case insensitivity. |
|||
|
|||
zx is from distributed version, and also has local hacks for case insensitivity. |
|||
both zx and cpmtools ship with an overly complicated makefile generation system |
|||
and this is ignored. |
|||
Both zx 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, curt@zen-room.org. |
|||
use it for whatever you like; this is not my day job. |
|||
This whole Linux build framework is the work of Curt Mayer, |
|||
curt@zen-room.org. Use it for whatever you like; this is not |
|||
my day job. |
|||
|
|||
File diff suppressed because it is too large
@ -0,0 +1,86 @@ |
|||
|
|||
CLI_ABRT_IF_OPT_FIRST: |
|||
LD A, (FCB+1) |
|||
CP '-' ; OPTION FIRST OR - MISSING FILENAME? |
|||
JP Z, ERRCMD ; SHOW USAGE |
|||
RET |
|||
|
|||
CLI_HAVE_HBIOS_SWITCH: |
|||
LD HL, CLIARGS ; TEST FOR --HBIOS ON COMMAND LINE |
|||
LD DE, HBIOSOPT |
|||
CALL STRINDEX |
|||
JR NZ, CLI_HAVE_HBIOS_SWITCH1 |
|||
OR $FF ; MATCHED --HBIOS |
|||
LD (HBIOSMD), A |
|||
LD BC,(BF_SYSGET*256)+BF_SND |
|||
RST 08 ; CHECK WE HAVE |
|||
XOR A ; AT LEAST ONE |
|||
CP E ; SOUND DEVICE |
|||
RET NZ |
|||
JP ERRHW |
|||
CLI_HAVE_HBIOS_SWITCH1 ; NOT MATCHED --HBIOS |
|||
XOR A |
|||
LD (HBIOSMD), A |
|||
RET |
|||
|
|||
CLI_ABRT_UNSUPPFILTYP: |
|||
PUSH AF |
|||
ISHBIOS |
|||
JR Z, CLI_ABRT_UNSUPPFILTYP1 |
|||
POP AF |
|||
CP TYPMYM |
|||
RET NZ |
|||
ERRWITHMSG(MSGUNSUP) ; EXIT WITH UNSUPPORTED FILE TYPE MESSAGE |
|||
|
|||
CLI_ABRT_UNSUPPFILTYP1: |
|||
POP AF |
|||
RET |
|||
|
|||
CLI_OCTAVE_ADJST: ; SEARCH FOR OCTAVE ADJUSTMENT SWITCH (-n or +n) |
|||
LD HL, CLIARGS ; TEST FOR --HBIOS ON COMMAND LINE |
|||
LD DE, DOWN1 |
|||
CALL STRINDEX |
|||
JR NZ, CLI_OCTAVE_ADJST1 |
|||
|
|||
LD A, -1 |
|||
JR CLI_OCTAVE_ADJST5 |
|||
|
|||
CLI_OCTAVE_ADJST1: |
|||
LD HL, CLIARGS ; TEST FOR --HBIOS ON COMMAND LINE |
|||
LD DE, DOWN2 |
|||
CALL STRINDEX |
|||
JR NZ, CLI_OCTAVE_ADJST2 |
|||
|
|||
LD A, -2 |
|||
JR CLI_OCTAVE_ADJST5 |
|||
|
|||
CLI_OCTAVE_ADJST2: |
|||
LD HL, CLIARGS ; TEST FOR --HBIOS ON COMMAND LINE |
|||
LD DE, UP1 |
|||
CALL STRINDEX |
|||
JR NZ, CLI_OCTAVE_ADJST3 |
|||
|
|||
LD A, 1 |
|||
JR CLI_OCTAVE_ADJST5 |
|||
|
|||
CLI_OCTAVE_ADJST3: |
|||
LD HL, CLIARGS ; TEST FOR --HBIOS ON COMMAND LINE |
|||
LD DE, UP2 |
|||
CALL STRINDEX |
|||
JR NZ, CLI_OCTAVE_ADJST4 |
|||
|
|||
LD A, 2 |
|||
JR CLI_OCTAVE_ADJST5 |
|||
|
|||
CLI_OCTAVE_ADJST4: |
|||
LD A, 0 |
|||
|
|||
CLI_OCTAVE_ADJST5: |
|||
LD (OCTAVEADJ), A |
|||
RET |
|||
|
|||
HBIOSOPT: .DB "--HBIOS", 0 |
|||
DOWN1 .DB "-t1", 0 ; DOWN AN OCTAVE |
|||
DOWN2 .DB "-t2", 0 ; DOWN TWO OCTAVE |
|||
UP1 .DB "+t1", 0 ; UP AN OCTAVE |
|||
UP2 .DB "+t2", 0 ; UP TWO OCTAVE |
|||
@ -0,0 +1,4 @@ |
|||
CLIARGS .EQU $81 |
|||
RESTART .EQU $0000 ; CP/M restart vector |
|||
BDOS .EQU $0005 ; BDOS invocation vector |
|||
FCB .EQU $5C ; Location of default FCB |
|||
@ -0,0 +1,15 @@ |
|||
IDENT .EQU $FFFE ; loc of RomWBW HBIOS ident ptr |
|||
; |
|||
RMJ .EQU 3 ; intended CBIOS version - major |
|||
RMN .EQU 1 ; intended CBIOS version - minor |
|||
; |
|||
BF_SYSVER .EQU $F1 ; BIOS: VER function |
|||
BF_SYSGET .EQU $F8 ; HBIOS: SYSGET function |
|||
; |
|||
BF_SND .EQU $50 |
|||
BF_SNDRESET .EQU BF_SND + 0 ; RESET SOUND SYSTEM |
|||
BF_SNDVOL .EQU BF_SND + 1 ; REQUEST SOUND VOL - L CONTAINS VOLUME (255 MAX, 0 SILENT) - SCALED AS REQUIRED BY DRIVER (EG: MAPS TO JUST 4 BIT RESOLUTION FOR SN76489) |
|||
BF_SNDPRD .EQU BF_SND + 2 ; REQUEST SOUND PERIOD - HL CONTAINS DRIVER SPECIFIC VALUE |
|||
BF_SNDNOTE .EQU BF_SND + 3 ; REQUEST NOTE - L CONTAINS NOTE - EACH VALUE IS QUARTER NOTE |
|||
BF_SNDPLAY .EQU BF_SND + 4 ; INITIATE THE REQUESTED SOUND COMMAND |
|||
BF_SNDQUERY .EQU BF_SND + 5 ; E IS SUBFUNCTION |
|||
@ -0,0 +1,175 @@ |
|||
; |
|||
; Print character in A without destroying any registers |
|||
; |
|||
PRTCHR: |
|||
PUSH BC ; save registers |
|||
PUSH DE |
|||
PUSH HL |
|||
LD E,A ; character to print in E |
|||
LD C,$02 ; BDOS function to output a character |
|||
CALL BDOS ; do it |
|||
POP HL ; restore registers |
|||
POP DE |
|||
POP BC |
|||
RET |
|||
; |
|||
PRTDOT: |
|||
; |
|||
; shortcut to print a dot preserving all regs |
|||
PUSH AF ; save af |
|||
LD A,'.' ; load dot char |
|||
CALL PRTCHR ; print it |
|||
POP AF ; restore af |
|||
RET ; done |
|||
; |
|||
PRTCR: |
|||
; |
|||
; shortcut to print a carriage return preserving all regs |
|||
PUSH AF ; save af |
|||
LD A,13 ; load CR value |
|||
CALL PRTCHR ; print it |
|||
POP AF ; restore af |
|||
RET ; done |
|||
; |
|||
; Print a zero terminated string at (DE) without destroying any registers |
|||
; |
|||
PRTSTR: |
|||
PUSH DE |
|||
; |
|||
PRTSTR1: |
|||
LD A,(DE) ; get next char |
|||
OR A |
|||
JR Z,PRTSTR2 |
|||
CALL PRTCHR |
|||
INC DE |
|||
JR PRTSTR1 |
|||
; |
|||
PRTSTR2: |
|||
POP DE ; restore registers |
|||
RET |
|||
; |
|||
; Print the value in A in hex without destroying any registers |
|||
; |
|||
PRTHEX: |
|||
PUSH AF ; save AF |
|||
PUSH DE ; save DE |
|||
CALL HEXASCII ; convert value in A to hex chars in DE |
|||
LD A,D ; get the high order hex char |
|||
CALL PRTCHR ; print it |
|||
LD A,E ; get the low order hex char |
|||
CALL PRTCHR ; print it |
|||
POP DE ; restore DE |
|||
POP AF ; restore AF |
|||
RET ; done |
|||
; |
|||
; print the hex word value in bc |
|||
; |
|||
PRTHEXWORD: |
|||
PUSH AF |
|||
LD A,B |
|||
CALL PRTHEX |
|||
LD A,C |
|||
CALL PRTHEX |
|||
POP AF |
|||
RET |
|||
; |
|||
; print the hex dword value in de:hl |
|||
; |
|||
PRTHEX32: |
|||
PUSH BC |
|||
PUSH DE |
|||
POP BC |
|||
CALL PRTHEXWORD |
|||
PUSH HL |
|||
POP BC |
|||
CALL PRTHEXWORD |
|||
POP BC |
|||
RET |
|||
; |
|||
; Convert binary value in A to ascii hex characters in DE |
|||
; |
|||
HEXASCII: |
|||
LD D,A ; save A in D |
|||
CALL HEXCONV ; convert low nibble of A to hex |
|||
LD E,A ; save it in E |
|||
LD A,D ; get original value back |
|||
RLCA ; rotate high order nibble to low bits |
|||
RLCA |
|||
RLCA |
|||
RLCA |
|||
CALL HEXCONV ; convert nibble |
|||
LD D,A ; save it in D |
|||
RET ; done |
|||
|
|||
; |
|||
; Convert low nibble of A to ascii hex |
|||
; |
|||
HEXCONV: |
|||
AND $0F ; low nibble only |
|||
ADD A,$90 |
|||
DAA |
|||
ADC A,$40 |
|||
DAA |
|||
RET |
|||
|
|||
; |
|||
; Print value of A or HL in decimal with leading zero suppression |
|||
; Use prtdecb for A or prtdecw for HL |
|||
; |
|||
PRTDECB: |
|||
PUSH HL |
|||
LD H,0 |
|||
LD L,A |
|||
CALL PRTDECW ; print it |
|||
POP HL |
|||
RET |
|||
; |
|||
PRTDECW: |
|||
PUSH AF |
|||
PUSH BC |
|||
PUSH DE |
|||
PUSH HL |
|||
CALL PRTDEC0 |
|||
POP HL |
|||
POP DE |
|||
POP BC |
|||
POP AF |
|||
RET |
|||
; |
|||
PRTDEC0: |
|||
LD E,'0' |
|||
LD BC,-10000 |
|||
CALL PRTDEC1 |
|||
LD BC,-1000 |
|||
CALL PRTDEC1 |
|||
LD BC,-100 |
|||
CALL PRTDEC1 |
|||
LD C,-10 |
|||
CALL PRTDEC1 |
|||
LD E,0 |
|||
LD C,-1 |
|||
PRTDEC1: |
|||
LD A,'0' - 1 |
|||
PRTDEC2: |
|||
INC A |
|||
ADD HL,BC |
|||
JR C,PRTDEC2 |
|||
SBC HL,BC |
|||
CP E |
|||
RET Z |
|||
LD E,0 |
|||
CALL PRTCHR |
|||
RET |
|||
; |
|||
; Start a new line |
|||
; |
|||
CRLF2: |
|||
CALL CRLF ; two of them |
|||
CRLF: |
|||
PUSH AF ; preserve AF |
|||
LD A,13 ; <CR> |
|||
CALL PRTCHR ; print it |
|||
LD A,10 ; <LF> |
|||
CALL PRTCHR ; print it |
|||
POP AF ; restore AF |
|||
RET |
|||
@ -0,0 +1,39 @@ |
|||
STRINDEX: ; SEARCH FOR STRING AT DE WITHIN STRING AT HL |
|||
|
|||
LD B, 0 |
|||
LD C, 0 |
|||
|
|||
TRYNEXT: |
|||
PUSH HL |
|||
PUSH DE |
|||
CALL STRCMP |
|||
POP DE |
|||
POP HL |
|||
RET Z |
|||
|
|||
INC HL |
|||
INC BC |
|||
LD A, (HL) |
|||
OR A |
|||
JR NZ, TRYNEXT |
|||
|
|||
OR $FF ; RETURN NZ |
|||
RET |
|||
|
|||
STRCMP: ; COMPARE STRING AT HL WITH DE - RETURN Z IF LIKE |
|||
LD A, (DE) |
|||
OR A |
|||
RET Z |
|||
|
|||
LD B, A |
|||
LD A, (HL) |
|||
OR A |
|||
JR NZ, STRCMP1 |
|||
OR $FF ; END OF STRING HL - SO NOT FOUND |
|||
RET |
|||
STRCMP1 |
|||
CP B |
|||
RET NZ |
|||
INC HL |
|||
INC DE |
|||
JR STRCMP |
|||
@ -0,0 +1,60 @@ |
|||
|
|||
; |
|||
; Wait for quark play time. Can use hardware timer if |
|||
; supported by hardware or simple delay loop otherwise. |
|||
; Delay loop requires QDLY to be pre-set to to achieve |
|||
; optimal 20ms wait time. |
|||
; |
|||
WAITQ LD A,(WMOD) ; Get delay mode |
|||
OR A ; Set flags |
|||
JR Z,DLY ; Delay mode |
|||
; |
|||
; Timer loop |
|||
CALL TIM2 ; Read timer LSB into A |
|||
LD C,A ; Init prev value |
|||
TIM1 PUSH BC ; Save prev value |
|||
CALL TIM2 ; Read timer LSB into A |
|||
POP BC ; Recover prev value |
|||
CP C ; Compare to prev |
|||
RET NZ ; Done if changed |
|||
JR TIM1 ; Else, loop |
|||
; |
|||
TIM2 LD B,$F8 ; BIOS SYSGET function |
|||
LD C,$D0 ; TIMER sub-function |
|||
RST 08 ; Call BIOS |
|||
LD A,L ; MSB to A |
|||
RET ; Return to loop |
|||
; |
|||
; Delay spin loop (40 tstates per loop) |
|||
DLY LD BC,(QDLY) ; Load quark delay factor |
|||
DLY1 DEC BC ; [6] |
|||
NOP ; [4] |
|||
NOP ; [4] |
|||
NOP ; [4] |
|||
NOP ; [4] |
|||
LD A,B ; [4] |
|||
OR C ; [4] |
|||
JP NZ,DLY1 ; [10] |
|||
RET |
|||
|
|||
; |
|||
; Test for timer running to determine if it can be used for delay |
|||
; Return string message in DE |
|||
; Assigned (WMOD) with 0 if no hardware time, 1 if hardware timer found |
|||
; |
|||
PROBETIMER: |
|||
LD B,BF_SYSGET ; HBIOS: GET function |
|||
LD C,$D0 ; TIMER subfunction |
|||
RST 08 ; DE:HL := current tick count |
|||
LD A,L ; DE:HL == 0? |
|||
OR H |
|||
OR E |
|||
OR D |
|||
LD A,0 ; Assume no timer |
|||
LD DE,MSGDLY ; Delay mode msg |
|||
JR Z,SETDLY ; If tick count is zero, no timer active |
|||
LD A,$FF ; Value for timer active |
|||
LD DE,MSGTIM ; Timer mode msg |
|||
SETDLY: |
|||
LD (WMOD),A ; Save wait mode |
|||
RET |
|||
@ -0,0 +1,4 @@ |
|||
#DEFINE ISHBIOS LD A, (HBIOSMD) \ OR A |
|||
#DEFINE PRTSTRDE(X) LD DE, X \ CALL PRTSTR |
|||
#DEFINE PRTCRLF CALL CRLF |
|||
#DEFINE ERRWITHMSG(X) LD DE, X \ JP ERR |
|||
@ -0,0 +1,77 @@ |
|||
XModem 12.5 & Tera Term Anomaly Analysis |
|||
---------------------------------------- |
|||
|
|||
Protocol Notes: |
|||
|
|||
- During protocol startup, the receiver NAKs the sender repeatedly |
|||
to let the sender know it can start sending. |
|||
- Normally, the receiver sends a NAK character to ask the sender to |
|||
resend a packet. |
|||
- Prior to receiving the first packet, the receiver may send a "C" |
|||
or a "CK" instead of a NAK. This mechanism is used to inform the |
|||
sender that the receiver wants to use (C)RC error detection |
|||
instead of checksum error detection and optionally 1(K) packet sizes. |
|||
- After the first packet exchange, a NAK is always used to |
|||
request a packet be resent. |
|||
|
|||
Anomalous Exchange Description: |
|||
|
|||
XModem on RomWBW is being used to receive a file being sent |
|||
by Tera Term on a Windows PC... |
|||
|
|||
- XModem is started in receive mode |
|||
- User starts process of selecting a file to send on Tera Term |
|||
- XModem begins sending "CK" sequences as described above |
|||
to wake up the sender |
|||
- Tera Term buffers incoming "CK" sequences while user is selecting |
|||
a file to send |
|||
- User completes file selection |
|||
- Tera Term receives the first "CK" which was buffered while user |
|||
was selecting a file |
|||
- Tera Term correctly receives the first "CK", sets itself to |
|||
use CRC and 1K packets, then sends the first packet |
|||
- While waiting for Tera Term to send the first packet, XModem |
|||
is repeatedly timing out and resending the "CK" sequence |
|||
- For each timeout, XModem spends 1 second flushing any incoming |
|||
characters from the sender (it assumes it is flushing line garbage). |
|||
- IFF the first packet from Tera Term starts to arrive during this |
|||
1 second flushing interval, XModem gobbles up and discards the |
|||
first packet sent by Tera Term |
|||
- XModem then sends a new "CK" because it is still waiting for the |
|||
first packet (having just flushed the actual first packet) |
|||
- Tera Term has already switched out of "first packet" mode and will |
|||
now only respond to an actual NAK character, so it ignores all of |
|||
the CKs send from XModem |
|||
- XModem continues to send CKs and Tera Term continues to ignore them |
|||
until XModem hits a retry threshold |
|||
- When XModem hits the retry threshold, it attempts to switch from |
|||
CRC to Checksum assuming the sender was not capable of using |
|||
CRCs |
|||
- XModem now sends a NAK character because that is what is used for |
|||
for first packet NAKing in Checksum mode |
|||
- Tera Term sees the NAK and resends the first packet, but appends a |
|||
CRC instead of a Checksum because Tera Term is still in CRC mode |
|||
- XModem fails the Tera Term first packet resends because it is |
|||
looking for a Checksum and Tera Term is appending CRCs. |
|||
- XModem eventually gives up. |
|||
|
|||
Summary of failure: |
|||
|
|||
If Tera Term happens to start sending the first packet during the |
|||
one second "flush" window of XModem, the exchange will fail during |
|||
the startup sequence. |
|||
|
|||
Since the precise start timing of the first packet is dependent on |
|||
the time the user takes to select a file, the occurrence of the |
|||
failure is essentially random. |
|||
|
|||
The timeout used by XModem is about 5 seconds followed by the 1 |
|||
second line flush. So, there is a 1 in 6 chance that the protocol |
|||
will fail to startup successfully. |
|||
|
|||
Mitigation: |
|||
|
|||
- Modified the receive timeout recovery to *not* flush the incoming |
|||
buffer for one second. Flushing in this scenario makes no sense |
|||
anyway because a timeout just occurred meaning no data is being |
|||
received. |
|||
File diff suppressed because it is too large
@ -0,0 +1,920 @@ |
|||
;======================================================================= |
|||
; |
|||
; XMHB.Z80 - XMODEM12 PATCH FILE FOR ROMWBW HBIOS |
|||
; |
|||
; Wayne Warthen - wwarthen@gmail.com |
|||
; |
|||
; 2018-06-06 WBW Added support for RC2014 w/ Z180 |
|||
; 2019-08-17 WBW Refactored and merged Phil's ECB-FIFO support |
|||
; 2019-08-28 WBW Refactored ASCI support |
|||
; |
|||
;======================================================================= |
|||
; |
|||
ASEG |
|||
; |
|||
NO EQU 0 |
|||
YES EQU NOT NO |
|||
; |
|||
ERRDET EQU NO ; detect parity/framing/overrun errs |
|||
; |
|||
BASE EQU 100H ; start of cp/m normal program area |
|||
; |
|||
BDOS EQU 00005H ; BDOS function dispatch vector |
|||
; |
|||
;======================================================================= |
|||
; |
|||
; Jump table: The jump table must be in exactly the same sequence as the |
|||
; one in XMODEM. Note the ORG of 103H - This jump table has no jump to |
|||
; 'BEGIN'. |
|||
; |
|||
ORG BASE + 3 ; start after 'JMP BEGIN' |
|||
; |
|||
JP CONOUT ; must be 00000h if not used, see below |
|||
JP MINIT ; initialization routine (if needed) |
|||
JP UNINIT ; undo whatever 'MINIT' did (or return) |
|||
JPTBL: |
|||
JP SENDR ; send character (via pop psw) |
|||
JP CAROK ; test for carrier |
|||
JP MDIN ; receive data byte |
|||
JP GETCHR ; get character from modem |
|||
JP RCVRDY ; check receive ready |
|||
JP SNDRDY ; check send ready |
|||
JP SPEED ; get speed value for file transfer time |
|||
JP EXTRA1 ; extra for custom routine |
|||
JP EXTRA2 ; extra for custom routine |
|||
JP EXTRA3 ; extra for custom routine |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Output character to console |
|||
; |
|||
CONOUT EQU 0 ; not used |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Initialize modem |
|||
; |
|||
; This procedure has been usurped to dynamically detect the type |
|||
; of system we are running on and install the *real* jump table |
|||
; entries as appropriate. |
|||
; |
|||
MINIT: |
|||
; Announce |
|||
LD DE,RBC ; RetroBrew Computers |
|||
LD C,9 ; BDOS string display function |
|||
CALL BDOS ; Do it |
|||
; |
|||
; Identify BIOS (RomWBW HBIOS or UNA UBIOS) |
|||
CALL IDBIO ; 1=HBIOS, 2=UBIOS |
|||
LD (BIOID),A ; Save it |
|||
DEC A ; Test for HBIOS |
|||
JR Z,HINIT ; Do HBIOS setup |
|||
DEC A ; Test for UBIOS |
|||
JR Z,UINIT ; Do UBIOS setup |
|||
; |
|||
; Neither UNA nor RomWBW |
|||
LD DE,ERR_BIO ; BIOS error message |
|||
LD C,9 ; BDOS string display function |
|||
CALL BDOS ; Do it |
|||
JP 0 ; Bail out! |
|||
; |
|||
MINIT_RET: |
|||
PUSH HL ; Save HL (JP table adr) |
|||
|
|||
; Display port notification string |
|||
LD C,9 ; BDOS string display function |
|||
CALL BDOS ; Do it |
|||
; |
|||
; Newline |
|||
LD C,9 ; BDOS string display function |
|||
LD DE,CRLF ; Newline |
|||
CALL BDOS ; Do it |
|||
; |
|||
; Copy real vectors into active jump table |
|||
POP HL ; Recover HL |
|||
LD DE,JPTBL ; Real jump table is destination |
|||
LD BC,7 * 3 ; Copy 7 3-byte entries |
|||
LDIR ; Do the copy |
|||
; |
|||
; Return with CPU speed in A |
|||
LD A,(CPUSPD) ; A := CPU speed in MHz |
|||
LD HL,(RCVSCL) ; HL := receive scalar |
|||
RET ; and return |
|||
; |
|||
HINIT: |
|||
; Display RomWBW notification string |
|||
LD DE,HBTAG ; BIOS notification string |
|||
LD C,9 ; BDOS string display function |
|||
CALL BDOS ; Do it |
|||
; |
|||
; Get CPU speed from RomWBW HBIOS and save it |
|||
LD B,0F8H ; HBIOS SYSGET function 0xF8 |
|||
LD C,0F0H ; CPUINFO subfunction 0xF0 |
|||
RST 08 ; Do it, L := CPU speed in MHz |
|||
LD A,L ; Move it to A |
|||
LD (CPUSPD),A ; Save it |
|||
; |
|||
; Get HBIOS character 0 device type |
|||
LD B,006H ; HBIOS DEVICE function 0x06 |
|||
LD C,000H ; HBIOS char 0 device |
|||
RST 08 ; Do it, D=device type |
|||
LD A,D ; Put result in A |
|||
CP 000H ; UART? |
|||
JP Z,U_INIT ; If so, do UART init |
|||
CP 010H ; ASCI? |
|||
JP Z,A_INIT ; If so, do ASCI init |
|||
CP 080H ; USB-FIFO? |
|||
JP Z,UF_INIT ; If so, do USB-FIFO init |
|||
JP H_INIT ; Otherwise, use HBIOS I/O |
|||
; |
|||
UINIT: |
|||
; Display UNA notification string |
|||
LD DE,UBTAG ; BIOS notification string |
|||
LD C,9 ; BDOS string display function |
|||
CALL BDOS ; Do it |
|||
; |
|||
; Get CPU speed from UNA and save it |
|||
LD C,0F8H ; UNA BIOS Get PHI function |
|||
RST 08 ; Returns speed in Hz in DE:HL |
|||
LD B,4 ; Divide MHz in DE:HL by 100000H |
|||
UINIT1: |
|||
SRL D ; ... to get approx CPU speed in |
|||
RR E ; ...MHz. Throw away HL, and |
|||
DJNZ UINIT1 ; ...right shift DE by 4. |
|||
INC E ; Fix up for value truncation |
|||
LD A,E ; Put in A |
|||
LD (CPUSPD),A ; Save it |
|||
; |
|||
; Check CPU, Z80=UART, Z180=ASCI |
|||
LD DE,00202H ; D := 2, E := 2 |
|||
MLT DE ; DE := D * E == 4 |
|||
BIT 2,E ; Bit 2 wil be set if mlt happend |
|||
JP Z,U_INIT ; UART initialization |
|||
JP A_INIT ; otherwise, ASCI |
|||
; |
|||
HWERR: |
|||
; Failed to identify target comm hardware |
|||
LD DE,ERR_HW ; Hardware error message |
|||
LD C,9 ; BDOS string display function |
|||
CALL BDOS ; Do it |
|||
JP 0 ; Bail out! |
|||
; |
|||
; Identify active BIOS. RomWBW HBIOS=1, UNA UBIOS=2, else 0 |
|||
; |
|||
IDBIO: |
|||
; |
|||
; Check for UNA (UBIOS) |
|||
LD A,(0FFFDH) ; fixed location of UNA API vector |
|||
CP 0C3H ; jp instruction? |
|||
JR NZ,IDBIO1 ; if not, not UNA |
|||
LD HL,(0FFFEH) ; get jp address |
|||
LD A,(HL) ; get byte at target address |
|||
CP 0FDH ; first byte of UNA push ix instruction |
|||
JR NZ,IDBIO1 ; if not, not UNA |
|||
INC HL ; point to next byte |
|||
LD A,(HL) ; get next byte |
|||
CP 0E5H ; second byte of UNA push ix instruction |
|||
JR NZ,IDBIO1 ; if not, not UNA, check others |
|||
LD A,2 ; UNA BIOS id = 2 |
|||
RET ; and done |
|||
; |
|||
IDBIO1: |
|||
; Check for RomWBW (HBIOS) |
|||
LD HL,(0FFFEH) ; HL := HBIOS ident location |
|||
LD A,'W' ; First byte of ident |
|||
CP (HL) ; Compare |
|||
JR NZ,IDBIO2 ; Not HBIOS |
|||
INC HL ; Next byte of ident |
|||
LD A,~'W' ; Second byte of ident |
|||
CP (HL) ; Compare |
|||
JR NZ,IDBIO2 ; Not HBIOS |
|||
LD A,1 ; HBIOS BIOS id = 1 |
|||
RET ; and done |
|||
; |
|||
IDBIO2: |
|||
; No idea what this is |
|||
XOR A ; Setup return value of 0 |
|||
RET ; and done |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Uninitialize modem |
|||
; |
|||
UNINIT: |
|||
LD A,(BIOID) |
|||
CP 1 ; Is HBIOS? |
|||
JR Z,H_UNINIT ; Handle HBIOS |
|||
CP 2 ; Is UBIOS? |
|||
JR Z,U_UNINIT ; Handle UBIOS |
|||
RET ; Just return |
|||
; |
|||
H_UNINIT: |
|||
; HBIOS: Reset character device 0 |
|||
LD B,04H ; HBIOS CIOINIT function 0x04 |
|||
LD C,0 ; Unit = 0 |
|||
LD DE,-1 ; Reset w/ current settings |
|||
RST 08 ; Do it |
|||
RET ; not initialized, so no 'UN-INITIALIZE' |
|||
; |
|||
U_UNINIT: |
|||
; UBIOS: Reset character device 0 |
|||
LD C,10H ; UNA INIT function 0x10 |
|||
LD B,0 ; Unit = 0 |
|||
LD DE,-1 ; Reset w/ current settings |
|||
RST 08 ; Do it |
|||
RET ; not initialized, so no 'UN-INITIALIZE' |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; The following are all dummy routines that are unused because MINIT |
|||
; dynamically installs the real jump table. |
|||
; |
|||
SENDR: |
|||
CAROK: |
|||
MDIN: |
|||
GETCHR: |
|||
RCVRDY: |
|||
SNDRDY: |
|||
SPEED: |
|||
EXTRA1: |
|||
EXTRA2: |
|||
EXTRA3: |
|||
RET |
|||
; |
|||
BIOID DB 0 ; BIOS ID, 1=HBIOS, 2=UBIOS |
|||
CPUSPD DB 10 ; CPU speed in MHz |
|||
RCVSCL DW 6600 ; RECV loop timeout scalar |
|||
; |
|||
RBC DB "RBC, 28-Aug-2019$" |
|||
; |
|||
U_LBL DB ", UART$" |
|||
A_LBL DB ", ASCI$" |
|||
S_LBL DB ", SIO$" |
|||
H_LBL DB ", COM$" |
|||
UF_LBL DB ", USB-FIFO$" |
|||
; |
|||
UBTAG DB " [UNA]$" |
|||
HBTAG DB " [WBW]$" |
|||
; |
|||
CRLF DB 13, 10, "$" |
|||
; |
|||
ERR_BIO DB 13, 10, 13, 10, "++ Unknown BIOS ++", 13, 10, "$" |
|||
ERR_HW DB 13, 10, 13, 10, "++ Unknown Hardware ++", 13, 10, "$" |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; 8250-like UART @ Port 68H |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; UART port constants |
|||
; |
|||
U_BASE EQU 68H ; UART base port |
|||
U_DATP EQU U_BASE + 0 ; data in port |
|||
U_DATO EQU U_BASE + 0 ; data out port |
|||
U_CTLP EQU U_BASE + 5 ; control/status port |
|||
U_SNDB EQU 20H ; bit to test for send ready |
|||
U_SNDR EQU 20H ; value when ready to send |
|||
U_RCVB EQU 01H ; bit to test for receive ready |
|||
U_RCVR EQU 01H ; value when ready to receive |
|||
U_PARE EQU 04H ; bit for parity error |
|||
U_OVRE EQU 02H ; bit for overrun error |
|||
U_FRME EQU 08H ; bit for framing error |
|||
U_ERRS EQU U_FRME | U_OVRE | U_PARE |
|||
; |
|||
; Following jump table is dynamically patched into real jump |
|||
; table at program startup. See MINIT above. Note that only a |
|||
; subset of the jump table is overlaid (SENDR to SPEED). |
|||
; |
|||
U_JPTBL: |
|||
JP U_SENDR ; send character (via pop psw) |
|||
JP U_CAROK ; test for carrier |
|||
JP U_MDIN ; receive data byte |
|||
JP U_GETCHR ; get character from modem |
|||
JP U_RCVRDY ; check receive ready |
|||
JP U_SNDRDY ; check send ready |
|||
JP U_SPEED ; get speed value for file transfer time |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; UART initialization |
|||
; |
|||
U_INIT: |
|||
LD HL,13000 ; Receive loop timeout scalar |
|||
LD (RCVSCL),HL ; ... for UART RCVRDY timing |
|||
; |
|||
LD HL,U_JPTBL |
|||
LD DE,U_LBL |
|||
JP MINIT_RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Send character on top of stack |
|||
; |
|||
U_SENDR: |
|||
POP AF ; get character to send from stack |
|||
OUT (U_DATO),A ; send to port |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test and report carrier status, Z set if carrier present |
|||
; |
|||
U_CAROK: |
|||
XOR A ; not used, always indicate present |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Get a character (assume character ready has already been tested) |
|||
; |
|||
U_MDIN: |
|||
U_GETCHR: |
|||
IN A,(U_DATP) ; read character from port |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for character ready to receive, Z = ready |
|||
; Error code returned in A register |
|||
; *** Error code does not seem to be used *** |
|||
; |
|||
U_RCVRDY: |
|||
IN A,(U_CTLP) ; get modem status |
|||
; |
|||
IF ERRDET |
|||
; |
|||
; With error detection (slower) |
|||
PUSH BC ; save scratch register |
|||
PUSH AF ; save full status on stack |
|||
AND U_ERRS ; isolate line err bits |
|||
LD B,A ; save err status in B |
|||
POP AF ; get full status back |
|||
AND U_RCVB ; isolate ready bit |
|||
CP U_RCVR ; test it (set flags) |
|||
LD A,B ; get the error code back |
|||
POP BC ; restore scratch register |
|||
; |
|||
ELSE |
|||
; |
|||
; No error detection (faster) |
|||
AND U_RCVB ; isolate ready bit |
|||
CP U_RCVR ; test it (set flags) |
|||
LD A,0 ; report no line errors |
|||
; |
|||
ENDIF |
|||
; |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for ready to send a character, Z = ready |
|||
; |
|||
U_SNDRDY: |
|||
IN A,(U_CTLP) ; get status |
|||
AND U_SNDB ; isolate transmit ready bit |
|||
CP U_SNDR ; test for ready value |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Report baud rate (index into SPTBL returned in register A) |
|||
; |
|||
U_SPEED: |
|||
LD A,8 ; arbitrarily return 9600 baud |
|||
RET |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; Z180 Primary ASCI |
|||
; |
|||
; - Port is determined dynamically in A_INIT |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; ASCI port constants |
|||
; |
|||
A_DATP EQU 08H ; Z180 TSR - ASCI receive data port |
|||
A_DATO EQU 06H ; Z180 TDR - ASCI transmit data port |
|||
A_CTLP EQU 04H ; Z180 STAT - ASCI status port |
|||
A_CTL2 EQU 00H ; Z180 CNTLA - ASCI control port |
|||
; |
|||
A_SNDB EQU 02H ; Z180 STAT:TDRE - xmit data reg empty bit |
|||
A_SNDR EQU 02H ; Z180 STAT:TDRE - xmit data reg empty value |
|||
A_RCVB EQU 80H ; Z180 STAT:RDRF - rcv data reg full bit |
|||
A_RCVR EQU 80H ; Z180 STAT:RDRF - rcv data reg full value |
|||
A_PARE EQU 20H ; Z180 STAT:PE - parity error bit |
|||
A_OVRE EQU 40H ; Z180 STAT:OVRN - overrun error bit |
|||
A_FRME EQU 10H ; Z180 STAT:FE - framing error bit |
|||
A_ERRS EQU A_FRME | A_OVRE | A_PARE |
|||
; |
|||
A_BASE DB 00H ; internal IO base address for Z180 |
|||
; |
|||
; Following jump table is dynamically patched over initial jump |
|||
; table at program startup. See MINIT above. Note that only a |
|||
; subset of the jump table is overlaid (SENDR to SPEED). |
|||
; |
|||
A_JPTBL: |
|||
JP A_SENDR ; send character (via pop psw) |
|||
JP A_CAROK ; test for carrier |
|||
JP A_MDIN ; receive data byte |
|||
JP A_GETCHR ; get character from modem |
|||
JP A_RCVRDY ; check receive ready |
|||
JP A_SNDRDY ; check send ready |
|||
JP A_SPEED ; get speed value for file transfer time |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; ASCI initialization |
|||
; |
|||
A_INIT: |
|||
LD HL,7500 ; Receive loop timeout scalar |
|||
LD (RCVSCL),HL ; ... for ASCI RCVRDY timing |
|||
; |
|||
; Test for location of Z180 internal registers |
|||
; and use appropriate I/O address. |
|||
LD B,0 ; set MSB for 16 bit I/O |
|||
LD C,040H|3FH ; internal registers @ 40H? |
|||
IN A,(C) ; read |
|||
CP 040H|01FH ; same value except for bit 5? |
|||
JR Z,A_INIT1 ; do ASCI init (port in C) |
|||
LD C,0C0H|3FH ; internal registers @ C0H? |
|||
IN A,(C) ; read |
|||
CP 0C0H|1FH ; same value except for bit 5? |
|||
JR Z,A_INIT1 ; do ASCI init (port in C) |
|||
JP HWERR ; unknown hardware error |
|||
; |
|||
A_INIT1: |
|||
LD A,C ; test port value to A |
|||
AND 0C0H ; only top two bits relevant |
|||
LD (A_BASE),A ; save it |
|||
ADD A,A_CTLP ; status port offset |
|||
LD C,A ; put in C for I/O |
|||
LD B,0 ; MSB for 16 bit I/O |
|||
XOR A ; clear interrupt enable flags |
|||
OUT (C),A ; do it |
|||
; |
|||
LD HL,A_JPTBL |
|||
LD DE,A_LBL |
|||
JP MINIT_RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Send character on top of stack |
|||
; |
|||
A_SENDR: |
|||
EX (SP),HL ; save HL, HL := char to send |
|||
PUSH BC ; save scratch register |
|||
LD A,(A_BASE) ; IO base address |
|||
ADD A,A_DATO ; data out port offset |
|||
LD C,A ; put in C for I/O |
|||
LD B,0 ; MSB for 16 bit I/O |
|||
OUT (C),H ; send to port |
|||
POP BC ; restore scratch reg |
|||
POP HL ; restore HL |
|||
RET ; done |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test and report carrier status, Z set if carrier present |
|||
; |
|||
A_CAROK: |
|||
XOR A ; not used, always indicate present |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Get a character (assume character ready has already been tested) |
|||
; |
|||
A_MDIN: |
|||
A_GETCHR: |
|||
PUSH BC ; save scratch register |
|||
LD A,(A_BASE) ; IO base address |
|||
ADD A,A_DATP ; data in port offset |
|||
LD C,A ; put in C for I/O |
|||
LD B,0 ; MSB for 16 bit I/O |
|||
IN A,(C) ; read character from port |
|||
POP BC ; restore scratch reg |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for character ready to receive, Z = ready |
|||
; Error code returned in A register |
|||
; *** Error code does not seem to be used *** |
|||
; |
|||
A_RCVRDY: |
|||
PUSH BC ; save scratch register |
|||
LD A,(A_BASE) ; IO base address |
|||
ADD A,A_CTLP ; status port offset |
|||
LD C,A ; put in C for I/O |
|||
LD B,0 ; MSB for 16 bit I/O |
|||
IN A,(C) ; get modem status |
|||
PUSH AF ; save full status on stack |
|||
AND A_ERRS ; isolate line err bits |
|||
LD B,A ; save err status in B |
|||
|
|||
; Z180 ASCI ports will stall if there are errors. |
|||
; Error bits are NOT cleared by merely reading |
|||
; the status register. Below, bit 3 of ASCI |
|||
; control register is written with a zero to |
|||
; clear error(s) if needed. |
|||
JR Z,A_RCVRDY2 ; if no errs, continue |
|||
PUSH BC ; save scratch reg |
|||
LD A,(A_BASE) ; IO base address |
|||
ADD A,A_CTL2 ; status port offset |
|||
LD C,A ; put in C for I/O |
|||
LD B,0 ; MSB for 16 bit I/O |
|||
IN A,(C) ; get current control reg value |
|||
AND 0F7H ; force err reset bit to zero |
|||
OUT (C),A ; write control register |
|||
POP BC ; restore scratch reg |
|||
; |
|||
A_RCVRDY2: |
|||
POP AF ; get full status back |
|||
AND A_RCVB ; isolate ready bit |
|||
CP A_RCVR ; test it (set flags) |
|||
LD A,B ; get the error code back |
|||
POP BC ; restore scratch register |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for ready to send a character, Z = ready |
|||
; |
|||
A_SNDRDY: |
|||
PUSH BC ; save scratch register |
|||
LD A,(A_BASE) ; IO base address |
|||
ADD A,A_CTLP ; status port offset |
|||
LD C,A ; put in C for I/O |
|||
LD B,0 ; MSB for 16 bit I/O |
|||
IN A,(C) ; get modem status |
|||
AND A_SNDB ; isolate transmit ready bit |
|||
CP A_SNDR ; test for ready value |
|||
POP BC ; restore scratch register |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Report baud rate (index into SPTBL returned in register A) |
|||
; |
|||
A_SPEED: |
|||
LD A,8 ; arbitrarily return 9600 baud |
|||
RET |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; Zilog SIO @ Port 80H |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; Currently assumes the port address and ordering conventions of the |
|||
; official RC2014 SIO module. Will not work with others such as EZZ80 |
|||
; or ZP. |
|||
; |
|||
; SIO port constants |
|||
; |
|||
S_BASE EQU 80H ; SIO base port |
|||
S_DATP EQU S_BASE + 1 ; data in port |
|||
S_DATO EQU S_BASE + 1 ; data out port |
|||
S_CTLP EQU S_BASE + 0 ; control/status port |
|||
S_SNDB EQU 04H ; bit to test for send ready |
|||
S_SNDR EQU 04H ; value when ready to send |
|||
S_RCVB EQU 01H ; bit to test for receive ready |
|||
S_RCVR EQU 01H ; value when ready to receive |
|||
; |
|||
; Following jump table is dynamically patched into real jump |
|||
; table at program startup. See MINIT above. Note that only a |
|||
; subset of the jump table is overlaid (SENDR to SPEED). |
|||
; |
|||
S_JPTBL: |
|||
JP S_SENDR ; send character (via pop psw) |
|||
JP S_CAROK ; test for carrier |
|||
JP S_MDIN ; receive data byte |
|||
JP S_GETCHR ; get character from modem |
|||
JP S_RCVRDY ; check receive ready |
|||
JP S_SNDRDY ; check send ready |
|||
JP S_SPEED ; get speed value for file transfer time |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; SIO initialization |
|||
; |
|||
S_INIT: |
|||
LD HL,12000 ; Receive loop timeout scalar |
|||
LD (RCVSCL),HL ; ... for UART RCVRDY timing |
|||
; |
|||
; Suppress interrupts |
|||
LD A,01H ; WR1 |
|||
OUT (S_CTLP),A ; Select WR1 |
|||
XOR A ; No interrupts |
|||
OUT (S_CTLP),A ; Do it |
|||
; |
|||
LD HL,S_JPTBL |
|||
LD DE,S_LBL |
|||
JP MINIT_RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Send character on top of stack |
|||
; |
|||
S_SENDR: |
|||
POP AF ; get character to send from stack |
|||
OUT (S_DATO),A ; send to port |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test and report carrier status, Z set if carrier present |
|||
; |
|||
S_CAROK: |
|||
XOR A ; not used, always indicate present |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Get a character (assume character ready has already been tested) |
|||
; |
|||
S_MDIN: |
|||
S_GETCHR: |
|||
IN A,(S_DATP) ; read character from port |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for character ready to receive, Z = ready |
|||
; Error code returned in A register |
|||
; *** Error code does not seem to be used *** |
|||
; |
|||
S_RCVRDY: |
|||
;XOR A |
|||
;OUT (S_CTLP),A ; select WR0 |
|||
IN A,(S_CTLP) ; get status |
|||
AND S_RCVB ; isolate ready bit |
|||
CP S_RCVR ; test it (set flags) |
|||
LD A,0 ; report no line errors |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for ready to send a character, Z = ready |
|||
; |
|||
S_SNDRDY: |
|||
;XOR A |
|||
;OUT (S_CTLP),A ; select WR0 |
|||
IN A,(S_CTLP) ; get status |
|||
AND S_SNDB ; isolate ready bit |
|||
CP S_SNDR ; test it (set flags) |
|||
LD A,0 ; report no line errors |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Report baud rate (index into SPTBL returned in register A) |
|||
; |
|||
S_SPEED: |
|||
LD A,8 ; arbitrarily return 9600 baud |
|||
RET |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; HBIOS Console (COM0:) |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; Following jump table is dynamically patched over initial jump |
|||
; table at program startup. See MINIT above. Note that only a |
|||
; subset of the jump table is overlaid (SENDR to SPEED). |
|||
; |
|||
H_JPTBL: |
|||
JP H_SENDR ; send character (via pop psw) |
|||
JP H_CAROK ; test for carrier |
|||
JP H_MDIN ; receive data byte |
|||
JP H_GETCHR ; get character from modem |
|||
JP H_RCVRDY ; check receive ready |
|||
JP H_SNDRDY ; check send ready |
|||
JP H_SPEED ; get speed value for file transfer time |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; HBIOS initialization |
|||
; |
|||
H_INIT: |
|||
LD HL,1250 ; Smaller receive loop timeout scalar |
|||
LD (RCVSCL),HL ; ... to compensate for BIOS overhead |
|||
; |
|||
LD HL,H_JPTBL |
|||
LD DE,H_LBL |
|||
JP MINIT_RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Send character on top of stack |
|||
; |
|||
H_SENDR: |
|||
POP AF ; get character to send from stack |
|||
PUSH BC |
|||
PUSH DE |
|||
PUSH HL |
|||
LD B,01H ; HBIOS OUT function |
|||
LD C,0 ; console is unit 0 by fiat |
|||
LD E,A ; character to E |
|||
RST 08 ; HBIOS call |
|||
POP HL |
|||
POP DE |
|||
POP BC |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test and report carrier status, Z set if carrier present |
|||
; |
|||
H_CAROK: |
|||
XOR A ; not used, always indicate present |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Get a character (assume character ready has already been tested) |
|||
; |
|||
; This routine must NOT block. |
|||
; |
|||
H_MDIN: |
|||
H_GETCHR: |
|||
PUSH BC |
|||
PUSH DE |
|||
PUSH HL |
|||
LD B,02H ; HBIOS IST function |
|||
LD C,0 ; console is unit 0 by fiat |
|||
RST 08 ; HBIOS call, A := bytes pending |
|||
JR NZ,H_MDIN1 ; If char(s) waiting, go get it |
|||
XOR A ; otherwise, return null |
|||
JR H_MDIN2 ; and done |
|||
H_MDIN1: |
|||
LD B,00H ; HBIOS IN function |
|||
LD C,0 ; console is unit 0 by fiat |
|||
RST 08 ; HBIOS call |
|||
LD A,E ; byte received to A |
|||
H_MDIN2: |
|||
POP HL |
|||
POP DE |
|||
POP BC |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for character ready to receive, Z = ready |
|||
; Error code returned in A register |
|||
; *** Error code does not seem to be used *** |
|||
; |
|||
H_RCVRDY: |
|||
PUSH BC |
|||
PUSH DE |
|||
PUSH HL |
|||
LD B,02H ; HBIOS IST function |
|||
LD C,0 ; console is unit 0 by fiat |
|||
RST 08 ; HBIOS call, A := bytes pending |
|||
SUB 1 ; CF set IFF zero |
|||
RL A ; CF to bit 0 of A |
|||
AND 01H ; set Z flag as needed |
|||
LD A,0 ; report no line errors |
|||
POP HL |
|||
POP DE |
|||
POP BC |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for ready to send a character, Z = ready |
|||
; |
|||
H_SNDRDY: |
|||
PUSH BC |
|||
PUSH DE |
|||
PUSH HL |
|||
LD B,03H ; HBIOS OST function |
|||
LD C,0 ; console is unit 0 by fiat |
|||
RST 08 ; HBIOS call, A := xmit buf bytes avail |
|||
SUB 1 ; CF set IFF zero |
|||
RL A ; CF to bit 0 of A |
|||
AND 01H ; set Z flag as needed |
|||
POP HL |
|||
POP DE |
|||
POP BC |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Report baud rate (index into SPTBL returned in register A) |
|||
; |
|||
H_SPEED: |
|||
LD A,8 ; arbitrarily return 9600 baud |
|||
RET |
|||
; |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
; WILL SOWERBUTTS ECB USB-FIFO |
|||
; |
|||
;======================================================================= |
|||
;======================================================================= |
|||
; |
|||
UF_BASE EQU 0CH |
|||
UF_DATA EQU (UF_BASE+0) |
|||
UF_STATUS EQU (UF_BASE+1) |
|||
UF_SEND_IMM EQU (UF_BASE+2) |
|||
; |
|||
; Following jump table is dynamically patched over initial jump |
|||
; table at program startup. See MINIT above. Note that only a |
|||
; subset of the jump table is overlaid (SENDR to SPEED). |
|||
; |
|||
UF_JPTBL: |
|||
JP UF_SENDR ; send character (via pop psw) |
|||
JP UF_CAROK ; test for carrier |
|||
JP UF_MDIN ; receive data byte |
|||
JP UF_GETCHR ; get character from modem |
|||
JP UF_RCVRDY ; check receive ready |
|||
JP UF_SNDRDY ; check send ready |
|||
JP UF_SPEED ; get speed value for file transfer time |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; USB-FIFO initialization |
|||
; |
|||
UF_INIT: |
|||
LD HL,12000 ; Receive loop timeout scalar |
|||
LD (RCVSCL),HL ; ... for UART RCVRDY timing |
|||
; |
|||
LD HL,UF_JPTBL |
|||
LD DE,UF_LBL |
|||
JP MINIT_RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Send character on top of stack |
|||
; |
|||
UF_SENDR: |
|||
|
|||
POP AF ; get character to send from stack |
|||
OUT (UF_DATA),A ; WRITE TO FIFO |
|||
OUT (UF_SEND_IMM),A ; SEND IMMEDIATE |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test and report carrier status, Z set if carrier present |
|||
; |
|||
UF_CAROK: |
|||
XOR A ; not used, always indicate present |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Get a character (assume character ready has already been tested) |
|||
; |
|||
; This routine must NOT block. |
|||
; |
|||
UF_MDIN: |
|||
UF_GETCHR: |
|||
IN A,(UF_DATA) ; GET CHAR |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for character ready to receive, Z = ready |
|||
; Error code returned in A register |
|||
; *** Error code does not seem to be used *** |
|||
; |
|||
UF_RCVRDY: |
|||
IN A,(UF_STATUS) ; B7=0 IF CHAR AVAIL, =1 IF NO CHAR. |
|||
RLCA ; B0=0 IF CHAR AVAIL, =1 IF NO CHAR. |
|||
AND 00000001B ; A=0, ZF=1 IF NO CHAR, A=1, ZF=0 IF CHAR AVAIL, |
|||
LD A,0 |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Test for ready to send a character, Z = ready |
|||
; |
|||
UF_SNDRDY: |
|||
IN A,(UF_STATUS) ; Bit 0=0 IF SPACE AVAIL, =1 IF FULL |
|||
AND 00000001B ; A=0, ZF=1 IF SPACE AVAIL, A=1, ZF=0 IF FULL. |
|||
RET |
|||
; |
|||
;----------------------------------------------------------------------- |
|||
; |
|||
; Report baud rate (index into SPTBL returned in register A) |
|||
; |
|||
UF_SPEED: |
|||
LD A,8 ; arbitrarily return 9600 baud |
|||
RET |
|||
; |
|||
END |
|||
@ -0,0 +1,4 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
setlocal & cd ZRC && call Build || exit /b 1 & endlocal |
|||
File diff suppressed because it is too large
@ -0,0 +1,830 @@ |
|||
!include(Common.inc) |
|||
!def(document)(Disk Catalog) |
|||
!def(author)(Mykl Orders) |
|||
--- |
|||
title: | |
|||
| !product |
|||
| Version !ver |
|||
| |
|||
| !document |
|||
author: !author (mailto:!authmail) |
|||
date: !date |
|||
institution: !orgname |
|||
documentclass: article |
|||
classoption: |
|||
- oneside |
|||
toc: true |
|||
papersize: letter |
|||
geometry: |
|||
- top=1.5in |
|||
- bottom=1.5in |
|||
- left=1.0in |
|||
- right=1.0in |
|||
# - showframe |
|||
linestretch: 1.25 |
|||
colorlinks: true |
|||
fontfamily: helvet |
|||
fontsize: 12pt |
|||
header-includes: |
|||
- | |
|||
```{=latex} |
|||
\usepackage{fancyhdr} |
|||
\usepackage{xhfill} |
|||
\renewcommand*{\familydefault}{\sfdefault} |
|||
\setstretch{1.25} % for TOC |
|||
``` |
|||
--- |
|||
|
|||
```{=latex} |
|||
\clearpage |
|||
\pagestyle{fancyplain} |
|||
\fancyhf{} |
|||
\pagenumbering{arabic} |
|||
\lhead{\fancyplain{}{\nouppercase{\footnotesize \bfseries \leftmark \hfill !product !document}}} |
|||
\lfoot{\small RetroBrew Computing Group ~~ {\xrfill[3pt]{1pt}[cyan]} ~~ \thepage} |
|||
``` |
|||
|
|||
`\clearpage`{=latex} |
|||
|
|||
# RomWBW Distribution File Catalog |
|||
|
|||
This document is a reference to the files found on the disk media |
|||
distributed with RomWBW. Specifically, RomWBW provides a set |
|||
of floppy and hard disk images in the Binary directory of the |
|||
distribution. The contents of these images is listed here. |
|||
|
|||
The files on the disk images were sourced from a variety of locations. |
|||
The primary sources of these files are listed below. Note that the |
|||
primary documentation for each of these sources is listed. You are |
|||
strongly encouraged to refer to this documentation for more information |
|||
on using the applications and files listed. |
|||
|
|||
## Sources |
|||
|
|||
- **RomWBW**: RomWBW Custom Applications |
|||
|
|||
Documentation: RomWBW Applications.pdf* |
|||
|
|||
These files are custom applications built exclusively to enhance the |
|||
functionality of RomWBW. In some cases they are built from scratch |
|||
while others are customized versions of well known CP/M tools. |
|||
|
|||
- **CPM22**: Digital Research CP/M-80 2.2 Distribution Files |
|||
|
|||
Documentation: CPM Manual.pdf |
|||
|
|||
These files are from the official Digital Research distribution |
|||
of CP/M 2.2. Applications have been patched according to the |
|||
DRI patch list. |
|||
|
|||
- **ZSDOS**: ZSDOS 1.1 Disk Operating System Distribution Files |
|||
|
|||
Documentation: *ZSDOS Manual.pdf* |
|||
|
|||
These files are from the official ZSDOS 1.1 distribution. Some of |
|||
the files are redistributions of applications from other sources. |
|||
|
|||
- **ZCPR**: ZCPR 1.0 Command Processor Distribution Files |
|||
|
|||
Documentation: *ZCPR Manual.pdf* |
|||
|
|||
These files are from the ZCPR 1.0 distribution. |
|||
|
|||
- **NZCOM**: NZCOM Automatic Z-System Distribution Files |
|||
|
|||
Documentation: *NZCOM Users Manual.pdf* |
|||
|
|||
These files are from the last official release of NZCOM. |
|||
|
|||
- **CPM3**: Digital Research CP/M 3 Distribution Files |
|||
|
|||
Documentation: *CPM3 Users Guide.pdf*, *CPM3 System Guide.pdf*, |
|||
*CPM3 Programmers Guide.pdf*, *CPM3 Command Summary.pdf* |
|||
|
|||
These files are from the official Digital Research distribution of |
|||
CP/M 3. Applications have been patched according to the DRI |
|||
patch list. |
|||
|
|||
- **ZPM3**: Digital Research CP/M-80 2.2 Distribution Files |
|||
|
|||
Documentation: *CPM Manual.pdf* |
|||
|
|||
These files are from Simeon Cran's ZPM3 operating system distribution. |
|||
|
|||
`\clearpage`{=latex} |
|||
|
|||
# CPM 2.2 Boot Disk |
|||
|
|||
| Floppy Disk Image: **fd_cpm22.img** |
|||
| Hard Disk Image: **hd_cpm22.img** |
|||
| Combo Disk Image: **Slice 0** |
|||
|
|||
| **User 0** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ASM.COM` | CPM22 | DRI 8080 Assembler | |
|||
| `CR.COM` | -- | Crunch archiver | |
|||
| `DDT.COM` | CPM22 | DRI Dynamic Debugger | |
|||
| `DDTZ.DOC` | -- | Z80 replacement for DDT | |
|||
| `DIRX.COM` | -- | Directory lister with file sizes | |
|||
| `DUMP.COM` | CPM22 | DRI type contents of disk file in hex | |
|||
| `ED.COM` | CPM22 | DRI context editor | |
|||
| `KERMIT.COM` | -- | Generic CP/M 2.2 Kermit communication application | |
|||
| `LBREXT.COM` | -- | Extract library files | |
|||
| `LIB.COM` | -- | DRI Library manager | |
|||
| `LINK.COM` | -- | DRI CPM relocatable linker | |
|||
| `LOAD.COM` | -- | DRI hex file loader into memory | |
|||
| `MAC.COM` | -- | DRI CPM macro assembler | |
|||
| `MBASIC.COM` | -- | Microsoft Basic | |
|||
| `PIP.COM` | CPM22 | DRI Periperal Interchange Program | |
|||
| `PMARC.COM` | -- | LHA file compressor | |
|||
| `PMEXT.COM` | -- | Extractor for PMARC archives | |
|||
| `RMAC.COM` | -- | DRI Relocatable Macro Assembler | |
|||
| `STAT.COM` | CPM22 | DRI statistices about file storage and device assignment | |
|||
| `SUBMIT.COM` | CPM22 | DRI batch processor | |
|||
| `UNCR.COM` | -- | NZCOM Uncrunch decompression | |
|||
| `UNZIP.COM` | -- | Extractor for ZIP archives | |
|||
| `XSUB.COM` | CPM22 | DRI eXtended submit | |
|||
| `ZSID.COM` | -- | DRI Z80 symbolic instruction debugger | |
|||
| `ASSIGN.COM` | RomWBW | RomWBW Drive/Slice mapper | |
|||
| `FAT.COM` | RomWBW | RomWBW FAT filesystem access | |
|||
| `FDU.COM` | RomWBW | RomWBW Floppy Disk Utility | |
|||
| `FORMAT.COM` | RomWBW | RomWBW media formatter (placeholder) | |
|||
| `INTTEST.COM` | RomWBW | RomWBW Interrupt test | |
|||
| `MODE.COM` | RomWBW | RomWBW Modify serial port characteristics | |
|||
| `RTC.COM` | RomWBW | RomWBW Display and set RTC | |
|||
| `SURVEY.COM` | RomWBW | System survey | |
|||
| `SYSCOPY.COM` | RomWBW | RomWBW Read/write system boot image | |
|||
| `SYSGEN.COM` | RomWBW | DRI CPM SYSGEN to put CPM onto a new drive | |
|||
| `TALK.COM` | RomWBW | RomWBW Direct console I/O to a serial port | |
|||
| `TIMER.COM` | RomWBW | RomWBW Display timer tick counter | |
|||
| `TUNE.COM` | RomWBW | RomWBW Play PT or MYM sound files | |
|||
| `XM.COM` | RomWBW | RomWBW XMODEM file transfer | |
|||
| `CPM.SYS` | RomWBW | CPM2.2 system image | |
|||
| `CLRDIR.COM` | -- | Max Scane's disk directory cleaner | |
|||
| `COMPARE.COM` | -- | FoxHollow compare two files | |
|||
| `DDTZ.COM` | -- | Z80 replacement for DDT | |
|||
| `FDISK80.COM` | -- | John Coffman's Partition editor for FAT filesystem | |
|||
| `FLASH.COM` | -- | Will Sowerbutts' in-situ EEPROM programmer | |
|||
| `NULU.COM` | -- | NZCOM new library utility | |
|||
| `UNARC.COM` | -- | Extractor for ARC archives | |
|||
| `ZAP.COM` | -- | Disk editor/patcher | |
|||
| `ZDE.COM` | -- | Z-system display editor | |
|||
| `ZDENST.COM` | -- | ZDE Installer | |
|||
|
|||
| **User 1** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `SAMPKEY.DOC` | -- | ZDE Distribution File | |
|||
| `SAMPKEY.ZDK` | -- | ZDE Distribution File | |
|||
| `SAMPKEY.ZDT` | -- | ZDE Distribution File | |
|||
| `ZDE10.DOC` | -- | ZDE Distribution File | |
|||
| `ZDE10.FOR` | -- | ZDE Distribution File | |
|||
| `ZDE10.NEW` | -- | ZDE Distribution File | |
|||
| `ZDE10.QRF` | -- | ZDE Distribution File | |
|||
| `ZDE10.TOC` | -- | ZDE Distribution File | |
|||
| `ZDE13.FOR` | -- | ZDE Distribution File | |
|||
| `ZDE13.NEW` | -- | ZDE Distribution File | |
|||
| `ZDE16.COM` | -- | ZDE Distribution File | |
|||
| `ZDE16.DIR` | -- | ZDE Distribution File | |
|||
| `ZDE16.FIX` | -- | ZDE Distribution File | |
|||
| `ZDE16.FOR` | -- | ZDE Distribution File | |
|||
| `ZDE16.NEW` | -- | ZDE Distribution File | |
|||
| `ZDE16A.COM` | -- | ZDE Distribution File | |
|||
| `ZDE16A.PAT` | -- | ZDE Distribution File | |
|||
| `ZDENST16.COM` | -- | ZDE Distribution File | |
|||
| `ZDEPROP.DOC` | -- | ZDE Distribution File | |
|||
| `ZDEPROP.Z80` | -- | ZDE Distribution File | |
|||
| `ZDKCOM13.COM` | -- | ZDE Distribution File | |
|||
| `ZDKCOM13.DOC` | -- | ZDE Distribution File | |
|||
|
|||
| **User 3** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ATTACK.PT3` | -- | Sound File | |
|||
| `BACKUP.PT3` | -- | Sound File | |
|||
| `BADMICE.PT3` | -- | Sound File | |
|||
| `DEMO.MYM` | -- | Sound File | |
|||
| `DEMO1.MYM` | -- | Sound File | |
|||
| `DEMO3.MYM` | -- | Sound File | |
|||
| `DEMO3MIX.MYM` | -- | Sound File | |
|||
| `DEMO4.MYM` | -- | Sound File | |
|||
| `HOWRU.PT3` | -- | Sound File | |
|||
| `ITERATN.PT3` | -- | Sound File | |
|||
| `LOOKBACK.PT3` | -- | Sound File | |
|||
| `LOUBOUTN.PT3` | -- | Sound File | |
|||
| `NAMIDA.PT3` | -- | Sound File | |
|||
| `RECOLL.PT3` | -- | Sound File | |
|||
| `SANXION.PT3` | -- | Sound File | |
|||
| `SYNCH.PT3` | -- | Sound File | |
|||
| `TOSTAR.PT3` | -- | Sound File | |
|||
| `VICTORY.PT3` | -- | Sound File | |
|||
| `WICKED.PT3` | -- | Sound File | |
|||
| `YEOLDE.PT3` | -- | Sound File | |
|||
| `YEOVIL.PT3` | -- | Sound File | |
|||
|
|||
`\clearpage`{=latex} |
|||
|
|||
# ZSDOS 1.1 Boot Disk |
|||
|
|||
| Floppy Disk Image: **fd_zsdos.img** |
|||
| Hard Disk Image: **hd_zsdos.img** |
|||
| Combo Disk Image: **Slice 1** |
|||
|
|||
| **User 0** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ASM.COM` | CPM22 | DRI 8080 Assembler | |
|||
| `CLOCKS.DAT` | ZSDOS | ZSDOS Library of clock drivers | |
|||
| `COPY.CFG` | ZSDOS | ZSDOS Configuration file for COPY.COM | |
|||
| `COPY.COM` | ZSDOS | ZSDOS File copier with file dates and archiving | |
|||
| `COPY.UPD` | ZSDOS | ZSDOS ??? | |
|||
| `CR.COM` | -- | Crunch archiver | |
|||
| `DATSWEEP.COM` | ZSDOS | ZSDOS Comprehensive file management utility | |
|||
| `DDT.COM` | CPM22 | DRI Dynamic Debugger | |
|||
| `DDTZ.DOC` | -- | Z80 replacement for DDT | |
|||
| `DIRX.COM` | -- | Directory lister with file sizes | |
|||
| `DSCONFIG.COM` | ZSDOS | ZSDOS DATSWEEP configuration tool | |
|||
| `DUMP.COM` | CPM22 | DRI type contents of disk file in hex | |
|||
| `ED.COM` | CPM22 | DRI context editor | |
|||
| `FA16.CFG` | ZSDOS | ZSDOS FILEATTR.COM v1.6 configuration file | |
|||
| `FA16.DOC` | ZSDOS | ZSDOS FILEATTR.COM v1.6 documentation | |
|||
| `FA16A.FOR` | ZSDOS | ZSDOS FILEATTR.COM v1.6a information | |
|||
| `FA16CFG.TXT` | ZSDOS | ZSDOS FILEATTR.COM v1.6 configuration instructions | |
|||
| `FILEATTR.COM` | ZSDOS | ZSDOS Modify file attributes | |
|||
| `FILEDATE.CFG` | ZSDOS | ZSDOS Configuration file for FILEDATE.COM | |
|||
| `FILEDATE.COM` | ZSDOS | ZSDOS Disk directory that allows sorting and selecting by date and name | |
|||
| `FILEDATE.COM` | ZSDOS | ZSDOS Disk directory that allows sorting and selecting by date and name | |
|||
| `INITDIR.CFG` | ZSDOS | ZSDOS Configuration file for INITDIR.COM | |
|||
| `INITDIR.COM` | ZSDOS | ZSDOS Prepare disks for P2DOS Stamps | |
|||
| `KERMIT.COM` | -- | Generic CP/M 2.2 Kermit communication application | |
|||
| `LBREXT.COM` | -- | Extract library files | |
|||
| `LDDS.COM` | ZSDOS | Clock driver | |
|||
| `LDNZT.COM` | ZSDOS | Clock driver | |
|||
| `LDP2D.COM` | ZSDOS | Clock driver | |
|||
| `LIB.COM` | -- | DRI Library manager | |
|||
| `LINK.COM` | -- | DRI CPM relocatable linker | |
|||
| `LOAD.COM` | -- | DRI hex file loader into memory | |
|||
| `MAC.COM` | -- | DRI CPM macro assembler | |
|||
| `MBASIC.COM` | -- | Microsoft Basic | |
|||
| `PIP.COM` | CPM22 | DRI Periperal Interchange Program | |
|||
| `PMARC.COM` | -- | LHA file compressor | |
|||
| `PMEXT.COM` | -- | Extractor for PMARC archives | |
|||
| `PUTBG.COM` | ZSDOS | ZSDOS Prepare disk for backgrounder | |
|||
| `PUTDS.COM` | ZSDOS | ZSDOS Prepare disk for datestamper | |
|||
| `RELOG.COM` | ZSDOS | ZSDOS relog disks after program that bypasses BDOS | |
|||
| `RMAC.COM` | -- | DRI Relocatable Macro Assembler | |
|||
| `SETTERM.COM` | ZSDOS | ZSDOS Installs terminal control codes into DateSamper utilities | |
|||
| `SETUPZST.COM` | ZSDOS | ZSDOS Select clock driver | |
|||
| `STAMPS.DAT` | ZSDOS | ZSDOS Library of stamping routines | |
|||
| `STAT.COM` | CPM22 | DRI statistices about file storage and device assignment | |
|||
| `SUBMIT.COM` | CPM22 | DRI batch processor | |
|||
| `SUPERSUB.COM` | ZSDOS | | |
|||
| `TD.CFG` | ZSDOS | ZSDOS Configuration file for TD.COM | |
|||
| `TD.COM` | ZSDOS | ZSDOS Time/Date utility | |
|||
| `TERMBASE.DAT` | ZSDOS | ZSDOS Terminal information library for SETTERM | |
|||
| `TESTCLOK.COM` | ZSDOS | ZSDOS Test various clock drivers | |
|||
| `UNCR.COM` | -- | NZCOM Uncrunch decompression | |
|||
| `UNZIP.COM` | -- | Extractor for ZIP archives | |
|||
| `XSUB.COM` | CPM22 | DRI eXtended submit | |
|||
| `ZCAL.COM` | ZSDOS | ZSDOS Show month calendar | |
|||
| `ZCNFG.COM` | ZSDOS | ZSDOS Configure various utilities | |
|||
| `ZCNFG24.CFG` | ZSDOS | ZSDOS Configuration file for ZCNFG.COM | |
|||
| `ZPATH.COM` | ZSDOS | ZSDOS Set BDOS and/or ZCPR command path | |
|||
| `ZSCONFIG.COM` | ZSDOS | ZSDOS Dynamically regulate many of ZSDOS features | |
|||
| `ZSID.COM` | -- | DRI Z80 symbolic instruction debugger | |
|||
| `ZSVSTAMP.COM` | ZSDOS | ZSDOS Save/restore file timestamp | |
|||
| `ZSVSTAMP.DOC` | ZSDOS | ZSDOS ZSVSTAMP.COM documentation | |
|||
| `ZXD.CFG` | ZSDOS | ZSDOS Configuration file for ZXD.COM | |
|||
| `ZXD.COM` | ZSDOS | ZSDOS Extended directory utility | |
|||
| `ASSIGN.COM` | RomWBW | RomWBW Drive/Slice mapper | |
|||
| `FAT.COM` | RomWBW | RomWBW FAT filesystem access | |
|||
| `FDU.COM` | RomWBW | RomWBW Floppy Disk Utility | |
|||
| `FORMAT.COM` | RomWBW | RomWBW media formatter (placeholder) | |
|||
| `INTTEST.COM` | RomWBW | RomWBW Interrupt test | |
|||
| `MODE.COM` | RomWBW | RomWBW Modify serial port characteristics | |
|||
| `RTC.COM` | RomWBW | RomWBW Display and set RTC | |
|||
| `SURVEY.COM` | RomWBW | System survey | |
|||
| `SYSCOPY.COM` | RomWBW | RomWBW Read/write system boot image | |
|||
| `SYSGEN.COM` | RomWBW | DRI CPM SYSGEN to put CPM onto a new drive | |
|||
| `TALK.COM` | RomWBW | RomWBW Direct console I/O to a serial port | |
|||
| `TIMER.COM` | RomWBW | RomWBW Display timer tick counter | |
|||
| `TUNE.COM` | RomWBW | RomWBW Play PT or MYM sound files | |
|||
| `XM.COM` | RomWBW | RomWBW XMODEM file transfer | |
|||
| `ZSYS.SYS` | RomWBW | ZSDOS system image | |
|||
| `CLRDIR.COM` | -- | Max Scane's disk directory cleaner | |
|||
| `COMPARE.COM` | -- | FoxHollow compare two files | |
|||
| `DDTZ.COM` | -- | Z80 replacement for DDT | |
|||
| `FDISK80.COM` | -- | John Coffman's Partition editor for FAT filesystem | |
|||
| `FLASH.COM` | -- | Will Sowerbutts' in-situ EEPROM programmer | |
|||
| `NULU.COM` | -- | NZCOM new library utility | |
|||
| `UNARC.COM` | -- | Extractor for ARC archives | |
|||
| `ZAP.COM` | -- | Disk editor/patcher | |
|||
| `ZDE.COM` | -- | Z-system display editor | |
|||
| `ZDENST.COM` | -- | ZDE Installer | |
|||
|
|||
| **User 1** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `SAMPKEY.DOC` | -- | ZDE Distribution File | |
|||
| `SAMPKEY.ZDK` | -- | ZDE Distribution File | |
|||
| `SAMPKEY.ZDT` | -- | ZDE Distribution File | |
|||
| `ZDE10.DOC` | -- | ZDE Distribution File | |
|||
| `ZDE10.FOR` | -- | ZDE Distribution File | |
|||
| `ZDE10.NEW` | -- | ZDE Distribution File | |
|||
| `ZDE10.QRF` | -- | ZDE Distribution File | |
|||
| `ZDE10.TOC` | -- | ZDE Distribution File | |
|||
| `ZDE13.FOR` | -- | ZDE Distribution File | |
|||
| `ZDE13.NEW` | -- | ZDE Distribution File | |
|||
| `ZDE16.COM` | -- | ZDE Distribution File | |
|||
| `ZDE16.DIR` | -- | ZDE Distribution File | |
|||
| `ZDE16.FIX` | -- | ZDE Distribution File | |
|||
| `ZDE16.FOR` | -- | ZDE Distribution File | |
|||
| `ZDE16.NEW` | -- | ZDE Distribution File | |
|||
| `ZDE16A.COM` | -- | ZDE Distribution File | |
|||
| `ZDE16A.PAT` | -- | ZDE Distribution File | |
|||
| `ZDENST16.COM` | -- | ZDE Distribution File | |
|||
| `ZDEPROP.DOC` | -- | ZDE Distribution File | |
|||
| `ZDEPROP.Z80` | -- | ZDE Distribution File | |
|||
| `ZDKCOM13.COM` | -- | ZDE Distribution File | |
|||
| `ZDKCOM13.DOC` | -- | ZDE Distribution File | |
|||
|
|||
| **User 3** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ATTACK.PT3` | -- | Sound File | |
|||
| `BACKUP.PT3` | -- | Sound File | |
|||
| `BADMICE.PT3` | -- | Sound File | |
|||
| `DEMO.MYM` | -- | Sound File | |
|||
| `DEMO1.MYM` | -- | Sound File | |
|||
| `DEMO3.MYM` | -- | Sound File | |
|||
| `DEMO3MIX.MYM` | -- | Sound File | |
|||
| `DEMO4.MYM` | -- | Sound File | |
|||
| `HOWRU.PT3` | -- | Sound File | |
|||
| `ITERATN.PT3` | -- | Sound File | |
|||
| `LOOKBACK.PT3` | -- | Sound File | |
|||
| `LOUBOUTN.PT3` | -- | Sound File | |
|||
| `NAMIDA.PT3` | -- | Sound File | |
|||
| `RECOLL.PT3` | -- | Sound File | |
|||
| `SANXION.PT3` | -- | Sound File | |
|||
| `SYNCH.PT3` | -- | Sound File | |
|||
| `TOSTAR.PT3` | -- | Sound File | |
|||
| `VICTORY.PT3` | -- | Sound File | |
|||
| `WICKED.PT3` | -- | Sound File | |
|||
| `YEOLDE.PT3` | -- | Sound File | |
|||
| `YEOVIL.PT3` | -- | Sound File | |
|||
|
|||
`\clearpage`{=latex} |
|||
|
|||
# NZCOM Boot Disk |
|||
|
|||
| Floppy Disk Image: **fd_nzcom.img** |
|||
| Hard Disk Image: **hd_nzcom.img** |
|||
| Combo Disk Image: **Slice 2** |
|||
|
|||
| **User 0** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `!(C)1988` | NZCOM | | |
|||
| `!NZ-COM` | NZCOM | | |
|||
| `!VERS--1.2H` | NZCOM | | |
|||
| `ALIAS.CMD` | NZCOM | NZCOM Aliases file for ARUNZ.COM | |
|||
| `ARUNZ.COM` | NZCOM | NZCOM Invoke an alias in ALIAS.CMD | |
|||
| `BGZRDS19.LBR` | NZCOM | | |
|||
| `CLEDINST.COM` | NZCOM | Command line editing and history shell installer | |
|||
| `CLEDSAVE.COM` | NZCOM | Write command line history to disk | |
|||
| `CONFIG.LBR` | NZCOM | | |
|||
| `COPY.COM` | NZCOM | ZSDOS File copier with file dates and archiving | |
|||
| `CPSET.COM` | NZCOM | NZCOM Create multiple definitions for CRT and PRT | |
|||
| `CRUNCH.COM` | NZCOM | NZCOM Text compression | |
|||
| `DOCFILES.LBR` | NZCOM | | |
|||
| `EDITNDR.COM` | NZCOM | NZCOM Associate names with directories | |
|||
| `FCP.LBR` | NZCOM | NZCOM ??? Flow control | |
|||
| `FF.COM` | NZCOM | NZCOM File finder | |
|||
| `HELP.COM` | NZCOM | DRI CPM+ | |
|||
| `HLPFILES.LBR` | NZCOM | | |
|||
| `IF.COM` | NZCOM | NZCOM Flow condition tester for FCP | |
|||
| `JETLDR.COM` | NZCOM | NZCOM General-purpose module loader | |
|||
| `KERMIT.COM` | -- | Generic CP/M 2.2 Kermit communication application | |
|||
| `LBREXT.COM` | NZCOM | Extract library files | |
|||
| `LBRHELP.COM` | NZCOM | | |
|||
| `LDIR.COM` | NZCOM | NZCOM Display the directory of a library | |
|||
| `LPUT.COM` | NZCOM | NZCOM Put files into a library | |
|||
| `LSH-HELP.COM` | NZCOM | | |
|||
| `LSH.COM` | NZCOM | | |
|||
| `LSH.WZ` | NZCOM | | |
|||
| `LSHINST.COM` | NZCOM | | |
|||
| `LX.COM` | NZCOM | NZCOM Extract and execute a memeber of a library | |
|||
| `MKZCM.COM` | NZCOM | NZCOM NZCOM system defining utility | |
|||
| `NAME.COM` | NZCOM | NZCOM Name a drive/user | |
|||
| `NZ-DBASE.INF` | NZCOM | NZCOM Dbase information | |
|||
| `NZBLITZ.COM` | NZCOM | | |
|||
| `NZBLTZ14.CFG` | NZCOM | | |
|||
| `NZBLTZ14.HZP` | NZCOM | | |
|||
| `NZCOM.COM` | NZCOM | NZCOM system loader from CP/M | |
|||
| `NZCOM.LBR` | NZCOM | NZCOM Library of NZCOM system modules | |
|||
| `NZCPR.LBR` | NZCOM | NZCOM Default command processor | |
|||
| `PATH.COM` | NZCOM | NZCOM Set/display command search path | |
|||
| `PUBLIC.COM` | NZCOM | | |
|||
| `PWD.COM` | NZCOM | | |
|||
| `RCP.LBR` | NZCOM | NZCOM Resident command package | |
|||
| `RELEASE.NOT` | NZCOM | | |
|||
| `SAINST.COM` | NZCOM | | |
|||
| `SALIAS.COM` | NZCOM | NZCOM Screen alias | |
|||
| `SAVENDR.COM` | NZCOM | NZCOM Save named directory assignments to a file | |
|||
| `SDZ.COM` | NZCOM | NZCOM Super directory | |
|||
| `SHOW.COM` | NZCOM | NZCOM Show resident commands | |
|||
| `SUB.COM` | NZCOM | | |
|||
| `SUBMIT.COM` | -- | DRI batch processor | |
|||
| `TCAP.LBR` | NZCOM | NZCOM Terminal capability descriptor library | |
|||
| `TCJ.INF` | NZCOM | | |
|||
| `TCJ25.WZ` | NZCOM | | |
|||
| `TCJ26.WZ` | NZCOM | | |
|||
| `TCJ27.WZ` | NZCOM | | |
|||
| `TCJ28.WZ` | NZCOM | | |
|||
| `TCJ29.WZ` | NZCOM | | |
|||
| `TCJ30.WZ` | NZCOM | | |
|||
| `TCJ31UPD.WZ` | NZCOM | | |
|||
| `TCJ32.WZ` | NZCOM | | |
|||
| `TCJ33UPD.WZ` | NZCOM | | |
|||
| `TCSELECT.COM` | NZCOM | NZCOM Create terminal capability file | |
|||
| `TY3ERA.COM` | NZCOM | NZCOM Type-3 transient program to erase a file | |
|||
| `TY3REN.COM` | NZCOM | NZCOM Type-3 transient program to rename a file | |
|||
| `TY4ERA.COM` | NZCOM | NZCOM Type-4 transient program to erase a file | |
|||
| `TY4REN.COM` | NZCOM | NZCOM Type-4 transient program to rename a file | |
|||
| `TY4SAVE.COM` | NZCOM | NZCOM Type-4 transient program to save memory to a file | |
|||
| `TY4SP.COM` | NZCOM | NZCOM Type-4 transient program ti display disk space | |
|||
| `UNCRUNCH.COM` | NZCOM | NZCOM Text decompressor | |
|||
| `VIEW.COM` | NZCOM | | |
|||
| `XTCAP.COM` | NZCOM | | |
|||
| `Z3LOC.COM` | NZCOM | NZCOM Display the addresses of the ZCPR3 CCP, BDOS, and BIOS | |
|||
| `Z3TCAP.TCP` | NZCOM | NZCOM Database of terminal descriptors | |
|||
| `ZCNFG.COM` | NZCOM | ZSDOS Configure various utilities | |
|||
| `ZERR.COM` | NZCOM | | |
|||
| `ZEX.COM` | NZCOM | NZCOM Memory-based batch processor | |
|||
| `ZF-DIM.COM` | NZCOM | NZCOM ZFILER shell for dim-video terminals | |
|||
| `ZF-REV.COM` | NZCOM | NZCOM ZFILER shell for reverse-video terminals | |
|||
| `ZFILEB38.LZT` | NZCOM | | |
|||
| `ZFILER.CMD` | NZCOM | NZCOM Macro script file for ZFILER | |
|||
| `ZHELPERS.LZT` | NZCOM | | |
|||
| `ZLT.COM` | NZCOM | | |
|||
| `ZNODES66.LZT` | NZCOM | | |
|||
| `ZSDOS.ZRL` | NZCOM | | |
|||
| `ZSYSTEM.IZF` | NZCOM | | |
|||
| `ASSIGN.COM` | RomWBW | RomWBW Drive/Slice mapper | |
|||
| `FAT.COM` | RomWBW | RomWBW FAT filesystem access | |
|||
| `FDU.COM` | RomWBW | RomWBW Floppy Disk Utility | |
|||
| `FORMAT.COM` | RomWBW | RomWBW media formatter (placeholder) | |
|||
| `INTTEST.COM` | RomWBW | RomWBW Interrupt test | |
|||
| `MODE.COM` | RomWBW | RomWBW Modify serial port characteristics | |
|||
| `RTC.COM` | RomWBW | RomWBW Display and set RTC | |
|||
| `SURVEY.COM` | RomWBW | System survey | |
|||
| `SYSCOPY.COM` | RomWBW | RomWBW Read/write system boot image | |
|||
| `SYSGEN.COM` | RomWBW | DRI CPM SYSGEN to put CPM onto a new drive | |
|||
| `TALK.COM` | RomWBW | RomWBW Direct console I/O to a serial port | |
|||
| `TIMER.COM` | RomWBW | RomWBW Display timer tick counter | |
|||
| `TUNE.COM` | RomWBW | RomWBW Play PT or MYM sound files | |
|||
| `XM.COM` | RomWBW | RomWBW XMODEM file transfer | |
|||
| `CPM.SYS` | RomWBW | | |
|||
| `ZSYS.SYS` | RomWBW | | |
|||
| `CLRDIR.COM` | -- | Max Scane's disk directory cleaner | |
|||
| `COMPARE.COM` | -- | FoxHollow compare two files | |
|||
| `DDTZ.COM` | -- | Z80 replacement for DDT | |
|||
| `FDISK80.COM` | -- | John Coffman's Partition editor for FAT filesystem | |
|||
| `FLASH.COM` | -- | Will Sowerbutts' in-situ EEPROM programmer | |
|||
| `NULU.COM` | -- | NZCOM new library utility | |
|||
| `UNARC.COM` | -- | Extractor for ARC archives | |
|||
| `ZAP.COM` | -- | Disk editor/patcher | |
|||
| `ZDE.COM` | -- | Z-system display editor | |
|||
| `ZDENST.COM` | -- | ZDE Installer | |
|||
|
|||
| **User 3** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ATTACK.PT3` | -- | Sound File | |
|||
| `BACKUP.PT3` | -- | Sound File | |
|||
| `BADMICE.PT3` | -- | Sound File | |
|||
| `DEMO.MYM` | -- | Sound File | |
|||
| `DEMO1.MYM` | -- | Sound File | |
|||
| `DEMO3.MYM` | -- | Sound File | |
|||
| `DEMO3MIX.MYM` | -- | Sound File | |
|||
| `DEMO4.MYM` | -- | Sound File | |
|||
| `HOWRU.PT3` | -- | Sound File | |
|||
| `ITERATN.PT3` | -- | Sound File | |
|||
| `LOOKBACK.PT3` | -- | Sound File | |
|||
| `LOUBOUTN.PT3` | -- | Sound File | |
|||
| `NAMIDA.PT3` | -- | Sound File | |
|||
| `RECOLL.PT3` | -- | Sound File | |
|||
| `SANXION.PT3` | -- | Sound File | |
|||
| `SYNCH.PT3` | -- | Sound File | |
|||
| `TOSTAR.PT3` | -- | Sound File | |
|||
| `VICTORY.PT3` | -- | Sound File | |
|||
| `WICKED.PT3` | -- | Sound File | |
|||
| `YEOLDE.PT3` | -- | Sound File | |
|||
| `YEOVIL.PT3` | -- | Sound File | |
|||
|
|||
`\clearpage`{=latex} |
|||
|
|||
# CP/M 3 Boot Disk |
|||
|
|||
| Floppy Disk Image: **fd_cpm3.img** |
|||
| Hard Disk Image: **hd_cpm3.img** |
|||
| Combo Disk Image: **Slice 3** |
|||
|
|||
| **User 0** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `DATE.COM` | CPM3 | DRI CPM+ Set or display the date and time | |
|||
| `DEVICE.COM` | CPM3 | DRI CPM+ Assign logical devices with one or more physical devices | |
|||
| `DIR.COM` | CPM3 | DRI CPM+ DIR with options | |
|||
| `DUMP.COM` | CPM3 | DRI type contents of disk file in hex | |
|||
| `ED.COM` | CPM3 | DRI context editor | |
|||
| `ERASE.COM` | CPM3 | DRI file deletion | |
|||
| `GENCOM.COM` | CPM3 | DRI CPM+ Generate special COM file with attached RSX files | |
|||
| `GET.COM` | CPM3 | DRI CPM+ Temporarily get console input form a disk file | |
|||
| `HELP.COM` | CPM3 | DRI CPM+ Display information on how to use commands | |
|||
| `HELP.HLP` | CPM3 | DRI CPM+ Databse of help information for HELP.COM | |
|||
| `HEXCOM.CPM` | CPM3 | DRI CPM+ Create a COM file from a nex file output by MAC | |
|||
| `INITDIR.COM` | CPM3 | DRI CPM+ Initializes a disk to allow time and date stamping | |
|||
| `KERMIT.COM` | -- | Generic CP/M 3 Kermit communication application | |
|||
| `PATCH.COM` | CPM3 | DRI CPM+ Display or install patch to the CPM+ system or command files | |
|||
| `PIP.COM` | CPM3 | DRI Periperal Interchange Program | |
|||
| `PUT.COM` | CPM3 | DIR CPM+ Temporarily redirect printer or console output to a disk file | |
|||
| `RENAME.COM` | CPM3 | DRI CPM+ Rename a file | |
|||
| `ROMWBW.TXT` | RomWBW | | |
|||
| `SAVE.COM` | CPM3 | DRI CPM+ Copy the contents of memory to a file | |
|||
| `SET.COM` | CPM3 | DIR CPM+ Set file options | |
|||
| `SETDEF.COM` | CPM3 | DIR CPM+ Set system options including the drive search chain | |
|||
| `SHOW.COM` | CPM3 | DIR CPM+ Display disk and drive statistics | |
|||
| `SUBMIT.COM` | CPM3 | DRI batch processor | |
|||
| `TYPE.COM` | CPM3 | DIR CPM+ Display the contents of an ASCII character file | |
|||
| `ZSID.COM` | CPM3 | DRI Z80 symbolic instruction debugger | |
|||
| `CPMLDR.COM` | RomWBW | DRI CPM 3.0 loader | |
|||
| `CPMLDR.SYS` | RomWBW | DRI CPM 3.0 loader | |
|||
| `CCP.COM` | CPM3 | DRI CPM+ Console Command Processor | |
|||
| `GENCPM.COM` | CPM3 | DRI CPM+ Create a memory image of CPM3.SYS | |
|||
| `GENRES.DAT` | RomWBW | | |
|||
| `GENBNK.DAT` | RomWBW | | |
|||
| `BIOS3.SPR` | RomWBW | DRI CPM+ GENCPM input file for non-banked BIOS | |
|||
| `BNKBIOS3.SPR` | RomWBW | DRI CPM+ GENCPM input file for banked BIOS | |
|||
| `BDOS3.SPR` | CPM3 | DRI CPM+ GENCPM input file for the non-banked BDOS | |
|||
| `BNKBDOS3.SPR` | CPM3 | DRI CPM+ GENCPM input file for banked BDOS | |
|||
| `RESBDOS3.SPR` | CPM3 | DRI CPM+ GENCPM input file for resident BDOS | |
|||
| `CPM3RES.SYS` | RomWBW | DRI CPM+ (non-banked) memory image | |
|||
| `CPM3BNK.SYS` | RomWBW | DRI CPM+ (banked) memory image | |
|||
| `GENCPM.DAT` | RomWBW | DRI CPM+ System generation tool data file | |
|||
| `CPM3.SYS` | RomWBW | DRI CPM+ (non-banked) memory image | |
|||
| `README.1ST` | CPM3 | | |
|||
| `CPM3FIX.PAT` | CPM3 | | |
|||
| `ASSIGN.COM` | RomWBW | RomWBW Drive/Slice mapper | |
|||
| `FAT.COM` | RomWBW | RomWBW FAT filesystem access | |
|||
| `FDU.COM` | RomWBW | RomWBW Floppy Disk Utility | |
|||
| `FORMAT.COM` | RomWBW | RomWBW media formatter (placeholder) | |
|||
| `INTTEST.COM` | RomWBW | RomWBW Interrupt test | |
|||
| `MODE.COM` | RomWBW | RomWBW Modify serial port characteristics | |
|||
| `RTC.COM` | RomWBW | RomWBW Display and set RTC | |
|||
| `SURVEY.COM` | RomWBW | System survey | |
|||
| `SYSCOPY.COM` | RomWBW | RomWBW Read/write system boot image | |
|||
| `SYSGEN.COM` | RomWBW | DRI CPM SYSGEN to put CPM onto a new drive | |
|||
| `TALK.COM` | RomWBW | RomWBW Direct console I/O to a serial port | |
|||
| `TIMER.COM` | RomWBW | RomWBW Display timer tick counter | |
|||
| `TUNE.COM` | RomWBW | RomWBW Play PT or MYM sound files | |
|||
| `XM.COM` | RomWBW | RomWBW XMODEM file transfer | |
|||
| `CLRDIR.COM` | -- | Max Scane's disk directory cleaner | |
|||
| `COMPARE.COM` | -- | FoxHollow compare two files | |
|||
| `DDTZ.COM` | -- | Z80 replacement for DDT | |
|||
| `FDISK80.COM` | -- | John Coffman's Partition editor for FAT filesystem | |
|||
| `FLASH.COM` | -- | Will Sowerbutts' in-situ EEPROM programmer | |
|||
| `NULU.COM` | -- | NZCOM new library utility | |
|||
| `UNARC.COM` | -- | Extractor for ARC archives | |
|||
| `ZAP.COM` | -- | Disk editor/patcher | |
|||
| `ZDE.COM` | -- | Z-system display editor | |
|||
| `ZDENST.COM` | -- | ZDE Installer | |
|||
|
|||
| **User 3** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ATTACK.PT3` | -- | Sound File | |
|||
| `BACKUP.PT3` | -- | Sound File | |
|||
| `BADMICE.PT3` | -- | Sound File | |
|||
| `DEMO.MYM` | -- | Sound File | |
|||
| `DEMO1.MYM` | -- | Sound File | |
|||
| `DEMO3.MYM` | -- | Sound File | |
|||
| `DEMO3MIX.MYM` | -- | Sound File | |
|||
| `DEMO4.MYM` | -- | Sound File | |
|||
| `HOWRU.PT3` | -- | Sound File | |
|||
| `ITERATN.PT3` | -- | Sound File | |
|||
| `LOOKBACK.PT3` | -- | Sound File | |
|||
| `LOUBOUTN.PT3` | -- | Sound File | |
|||
| `NAMIDA.PT3` | -- | Sound File | |
|||
| `RECOLL.PT3` | -- | Sound File | |
|||
| `SANXION.PT3` | -- | Sound File | |
|||
| `SYNCH.PT3` | -- | Sound File | |
|||
| `TOSTAR.PT3` | -- | Sound File | |
|||
| `VICTORY.PT3` | -- | Sound File | |
|||
| `WICKED.PT3` | -- | Sound File | |
|||
| `YEOLDE.PT3` | -- | Sound File | |
|||
| `YEOVIL.PT3` | -- | Sound File | |
|||
|
|||
`\clearpage`{=latex} |
|||
|
|||
# ZPM3 Boot Disk |
|||
|
|||
| Floppy Disk Image: **fd_zpm3.img** |
|||
| Hard Disk Image: **hd_zpm3.img** |
|||
| Combo Disk Image: **Slice 4** |
|||
|
|||
| **User 0** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `HELP.HLP` | ZPM3 | | |
|||
| `ROMWBW.TXT` | RomWBW | | |
|||
| `ZPMLDR.COM` | RomWBW | | |
|||
| `ZPMLDR.SYS` | RomWBW | | |
|||
| `CPMLDR.COM` | RomWBW | | |
|||
| `CPMLDR.SYS` | RomWBW | | |
|||
| `CPM3.SYS` | RomWBW | | |
|||
| `ZCCP.COM` | ZPM3 | | |
|||
| `ZINSTAL.ZPM` | ZPM3 | | |
|||
| `STARTZPM.COM` | ZPM3 | | |
|||
| `MAKEDOS.COM` | ZPM3 | | |
|||
| `GENCPM.DAT` | RomWBW | | |
|||
| `BNKBIOS3.SPR` | RomWBW | | |
|||
| `BNKBDOS3.SPR` | ZPM3 | | |
|||
| `RESBDOS3.SPR` | ZPM3 | | |
|||
|
|||
| **User 3** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ATTACK.PT3` | -- | Sound File | |
|||
| `BACKUP.PT3` | -- | Sound File | |
|||
| `BADMICE.PT3` | -- | Sound File | |
|||
| `DEMO.MYM` | -- | Sound File | |
|||
| `DEMO1.MYM` | -- | Sound File | |
|||
| `DEMO3.MYM` | -- | Sound File | |
|||
| `DEMO3MIX.MYM` | -- | Sound File | |
|||
| `DEMO4.MYM` | -- | Sound File | |
|||
| `HOWRU.PT3` | -- | Sound File | |
|||
| `ITERATN.PT3` | -- | Sound File | |
|||
| `LOOKBACK.PT3` | -- | Sound File | |
|||
| `LOUBOUTN.PT3` | -- | Sound File | |
|||
| `NAMIDA.PT3` | -- | Sound File | |
|||
| `RECOLL.PT3` | -- | Sound File | |
|||
| `SANXION.PT3` | -- | Sound File | |
|||
| `SYNCH.PT3` | -- | Sound File | |
|||
| `TOSTAR.PT3` | -- | Sound File | |
|||
| `VICTORY.PT3` | -- | Sound File | |
|||
| `WICKED.PT3` | -- | Sound File | |
|||
| `YEOLDE.PT3` | -- | Sound File | |
|||
| `YEOVIL.PT3` | -- | Sound File | |
|||
|
|||
| **User 10** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ALIAS.HLP` | -- | | |
|||
| `HP-RPN.HLP` | -- | | |
|||
| `HP-ZP.HLP` | -- | | |
|||
| `IF.HLP` | -- | | |
|||
| `MENU.HLP` | -- | | |
|||
| `VLU.HLP` | -- | | |
|||
| `ZFHIST.HLP` | -- | | |
|||
| `ZFILER.HLP` | -- | | |
|||
| `ZFMACRO.HLP` | -- | | |
|||
| `ZP.HLP` | -- | | |
|||
|
|||
| **User 14** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `COPY.CFG` | -- | | |
|||
| `ERASE.CFG` | -- | | |
|||
| `HELPC15.CFG` | -- | | |
|||
| `ZCNFG24.CFG` | -- | | |
|||
| `ZEX.CFG` | -- | | |
|||
| `ZF11.CFG` | -- | | |
|||
| `ZP17.CFG` | -- | | |
|||
|
|||
| **User 15** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ALIAS.COM` | -- | | |
|||
| `ARUNZ.COM` | -- | | |
|||
| `COPY.COM` | -- | | |
|||
| `DATE.COM` | CPM3 | | |
|||
| `DEV.COM` | -- | | |
|||
| `DEVICE.COM` | CPM3 | | |
|||
| `DIR.COM` | CPM3 | | |
|||
| `DISKINFO.COM` | -- | | |
|||
| `DU.COM` | -- | | |
|||
| `DUMP.COM` | CPM3 | | |
|||
| `ED.COM` | CPM3 | | |
|||
| `ERASE.COM` | CPM3 | | |
|||
| `GENCOM.COM` | CPM3 | | |
|||
| `GENCPM.COM` | CPM3 | | |
|||
| `GET.COM` | CPM3 | | |
|||
| `GOTO.COM` | -- | | |
|||
| `HELP.COM` | CPM3 | | |
|||
| `HEXCOM.COM` | CPM3 | | |
|||
| `IF.COM` | -- | | |
|||
| `INITDIR.COM` | CPM3 | | |
|||
| `KERMIT.COM` | CPM3 | | |
|||
| `LBREXT.COM` | -- | | |
|||
| `LIB.COM` | -- | | |
|||
| `LINK.COM` | -- | | |
|||
| `LOADSEG.COM` | -- | | |
|||
| `MAC.COM` | -- | | |
|||
| `MBASIC.COM` | -- | | |
|||
| `NAMES.NDR` | -- | | |
|||
| `PATCH.COM` | CPM3 | | |
|||
| `PIP.COM` | CPM3 | | |
|||
| `PUT.COM` | CPM3 | | |
|||
| `REMOVE.COM` | -- | | |
|||
| `RENAME.COM` | CPM3 | | |
|||
| `RMAC.COM` | -- | | |
|||
| `RSXDIR.COM` | -- | | |
|||
| `SAINST.COM` | -- | | |
|||
| `SALIAS.COM` | -- | | |
|||
| `SAVE.COM` | CPM3 | | |
|||
| `SET.COM` | CPM3 | | |
|||
| `SETDEF.COM` | CPM3 | | |
|||
| `SETPATH.COM` | -- | | |
|||
| `SHOW.COM` | CPM3 | | |
|||
| `SUBMIT.COM` | CPM3 | | |
|||
| `TCAP.Z3T` | -- | | |
|||
| `TYPE.COM` | CPM3 | | |
|||
| `VERROR.COM` | -- | | |
|||
| `VLU.COM` | -- | | |
|||
| `XREF.COM` | -- | | |
|||
| `ZCNFG.COM` | -- | | |
|||
| `ZERASE.COM` | -- | | |
|||
| `ZEX.COM` | -- | | |
|||
| `ZFILER.COM` | -- | | |
|||
| `ZHELP.COM` | -- | | |
|||
| `ZP.COM` | -- | | |
|||
| `ZSHOW.COM` | -- | | |
|||
| `ZSID.COM` | -- | | |
|||
| `ZXD.COM` | -- | | |
|||
| `AUTOTOG.COM` | ZPM3 | | |
|||
| `CLRHIST.COM` | ZPM3 | | |
|||
| `SETZ3.COM` | ZPM3 | | |
|||
| `ASSIGN.COM` | RomWBW | | |
|||
| `FAT.COM` | RomWBW | | |
|||
| `FDU.COM` | RomWBW | | |
|||
| `FORMAT.COM` | RomWBW | | |
|||
| `INTTEST.COM` | RomWBW | | |
|||
| `MODE.COM` | RomWBW | | |
|||
| `RTC.COM` | RomWBW | | |
|||
| `SURVEY.COM` | RomWBW | | |
|||
| `SYSCOPY.COM` | RomWBW | | |
|||
| `SYSGEN.COM` | RomWBW | | |
|||
| `TALK.COM` | RomWBW | | |
|||
| `TIMER.COM` | RomWBW | | |
|||
| `TUNE.COM` | RomWBW | | |
|||
| `XM.COM` | RomWBW | | |
|||
| `CLRDIR.COM` | -- | | |
|||
| `COMP.COM` | -- | | |
|||
| `DDTZ.COM` | -- | | |
|||
| `FDISK80.COM` | -- | | |
|||
| `FLASH.COM` | -- | | |
|||
| `NULU.COM` | -- | | |
|||
| `TCVIEW.COM` | -- | | |
|||
| `UNARC.COM` | -- | | |
|||
| `Z3LOC.COM` | -- | | |
|||
| `ZAP.COM` | -- | | |
|||
| `ZDE.COM` | -- | | |
|||
| `ZDENST.COM` | -- | | |
|||
|
|||
`\clearpage`{=latex} |
|||
|
|||
# WordStar 4 Application Disk |
|||
|
|||
| Floppy Disk Image: **fd_ws4.img** |
|||
| Hard Disk Image: **hd_ws4.img** |
|||
| Combo Disk Image: **Slice 5** |
|||
|
|||
| **User 0** | **Source** | **Description** | |
|||
| -------------- | ---------- | ------------------------------------------------------------ | |
|||
| `ANAGRAM.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `CHAPTER1.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `CHAPTER2.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `CHAPTER3.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `DIARY.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `DICTSORT.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `FIND.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `HOMONYMS.TXT` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `HYEXCEPT.TXT` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `HYPHEN.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `LOOKUP.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `MAINDICT.CMP` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `MARKFIX.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `MOVEPRN.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `PATCH.LST` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `PRINT.TST` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `READ.ME` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `README.` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `REVIEW.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `RULER.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `SAMPLE1.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `SAMPLE2.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `SAMPLE3.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `SPELL.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `TABLE.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `TEXT.DOC` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `TW.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WC.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WINSTALL.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WORDFREQ.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WS.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WS.OVR` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WSCHANGE.COM` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WSCHANGE.OVR` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WSCHHELP.OVR` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WSHELP.OVR` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WSINDEX.XCL` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WSMSGS.OVR` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WSPRINT.OVR` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
| `WSSHORT.OVR` | WS4 | MicroPro WordStar 4 Distribution File | |
|||
Binary file not shown.
Binary file not shown.
@ -1,41 +1,45 @@ |
|||
; |
|||
;================================================================================================== |
|||
; EASY Z80 STANDARD CONFIGURATION |
|||
;================================================================================================== |
|||
; |
|||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
|||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
|||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
|||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
|||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
|||
; YOUR FILE IN THE BUILD PROCESS. |
|||
; |
|||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
|||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
|||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
|||
; SETTINGS. |
|||
; |
|||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
|||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING |
|||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! |
|||
; |
|||
; 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" |
|||
; |
|||
CPUOSC .SET 16000000 ; CPU OSC FREQ IN MHZ |
|||
; |
|||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|||
; |
|||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
|||
; |
|||
EIPCENABLE .SET TRUE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION |
|||
; |
|||
CTCBASE .SET $10 ; CTC BASE I/O ADDRESS |
|||
LEDENABLE .SET TRUE ; ENABLES STATUS LED (SINGLE LED) |
|||
LEDPORT .SET $6E ; STATUS LED PORT ADDRESS |
|||
SIO0BASE .SET $18 ; SIO 0: REGISTERS BASE ADR |
|||
IDE0BASE .SET $90 ; IDE 0: IO BASE ADDRESS |
|||
; |
|||
;================================================================================================== |
|||
; EASY Z80 STANDARD CONFIGURATION |
|||
;================================================================================================== |
|||
; |
|||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
|||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
|||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
|||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
|||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
|||
; YOUR FILE IN THE BUILD PROCESS. |
|||
; |
|||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
|||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
|||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
|||
; SETTINGS. |
|||
; |
|||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
|||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING |
|||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! |
|||
; |
|||
; 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 |
|||
; |
|||
CPUOSC .SET 16000000 ; CPU OSC FREQ IN MHZ |
|||
; |
|||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|||
; |
|||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
|||
; |
|||
EIPCENABLE .SET TRUE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION |
|||
; |
|||
CTCBASE .SET $10 ; CTC BASE I/O ADDRESS |
|||
LEDENABLE .SET TRUE ; ENABLES STATUS LED (SINGLE LED) |
|||
LEDPORT .SET $6E ; STATUS LED PORT ADDRESS |
|||
SIO0BASE .SET $18 ; SIO 0: REGISTERS BASE ADR |
|||
IDE0BASE .SET $90 ; IDE 0: IO BASE ADDRESS |
|||
; |
|||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) |
|||
|
|||
@ -0,0 +1,48 @@ |
|||
; |
|||
;================================================================================================== |
|||
; RC2014 Z280 STANDARD CONFIGURATION (EXTERNAL MMU ON 512K RAM/ROM BANKED MEMORY MODULE) |
|||
;================================================================================================== |
|||
; |
|||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
|||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
|||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
|||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
|||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
|||
; YOUR FILE IN THE BUILD PROCESS. |
|||
; |
|||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
|||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
|||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
|||
; SETTINGS. |
|||
; |
|||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
|||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING |
|||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! |
|||
; |
|||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO |
|||
; DIRECTORIES ABOVE THIS ONE). |
|||
; |
|||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT |
|||
; |
|||
#include "cfg_rcz280.asm" |
|||
; |
|||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP |
|||
; |
|||
CPUOSC .SET 24000000 ; CPU OSC FREQ IN MHZ |
|||
; |
|||
INTMODE .SET 1 |
|||
; |
|||
Z280_MEMWAIT .SET 0 ; Z280: MEMORY WAIT STATES (0-3) |
|||
Z280_IOWAIT .SET 1 ; Z280: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3) |
|||
Z280_INTWAIT .SET 0 ; Z280: INT ACK WAIT STATUS (0-3) |
|||
; |
|||
Z2UENABLE .SET TRUE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM) |
|||
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) |
|||
ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) |
|||
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) |
|||
; |
|||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|||
; |
|||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
|||
; |
|||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) |
|||
@ -0,0 +1,52 @@ |
|||
; |
|||
;================================================================================================== |
|||
; RC2014 Z280 STANDARD CONFIGURATION (NATIVE Z280 MMU W/ LINEAR MEMORY) |
|||
;================================================================================================== |
|||
; |
|||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
|||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
|||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
|||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
|||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
|||
; YOUR FILE IN THE BUILD PROCESS. |
|||
; |
|||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
|||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
|||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
|||
; SETTINGS. |
|||
; |
|||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
|||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING |
|||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! |
|||
; |
|||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO |
|||
; DIRECTORIES ABOVE THIS ONE). |
|||
; |
|||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT |
|||
; |
|||
#include "cfg_rcz280.asm" |
|||
; |
|||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP |
|||
; |
|||
CPUOSC .SET 24000000 ; CPU OSC FREQ IN MHZ |
|||
; |
|||
MEMMGR .SET MM_Z280 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280] |
|||
; |
|||
INTMODE .SET 3 |
|||
; |
|||
Z280_MEMWAIT .SET 0 ; Z280: MEMORY WAIT STATES (0-3) |
|||
Z280_IOWAIT .SET 1 ; Z280: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3) |
|||
Z280_INTWAIT .SET 0 ; Z280: INT ACK WAIT STATUS (0-3) |
|||
; |
|||
Z2UENABLE .SET TRUE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM) |
|||
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) |
|||
ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) |
|||
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) |
|||
; |
|||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|||
; |
|||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
|||
; |
|||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) |
|||
; |
|||
Z2UOSCEXT .SET TRUE ; Z2U: USE EXTERNAL OSCILLATOR |
|||
@ -0,0 +1,36 @@ |
|||
; |
|||
;================================================================================================== |
|||
; RC2014 Z80 CONFIGURATION W/ DUART |
|||
;================================================================================================== |
|||
; |
|||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
|||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
|||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
|||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
|||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
|||
; YOUR FILE IN THE BUILD PROCESS. |
|||
; |
|||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
|||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
|||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
|||
; SETTINGS. |
|||
; |
|||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
|||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING |
|||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! |
|||
; |
|||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO |
|||
; DIRECTORIES ABOVE THIS ONE). |
|||
; |
|||
#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 |
|||
; |
|||
DUARTENABLE .SET TRUE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM) |
|||
DUARTCNT .SET 1 ; DUART: NUMBER OF CHIPS TO DETECT (1-2) |
|||
; |
|||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) |
|||
@ -0,0 +1,49 @@ |
|||
; |
|||
;================================================================================================== |
|||
; RC2014 Z80 ZRC CONFIGURATION |
|||
;================================================================================================== |
|||
; |
|||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
|||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
|||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
|||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
|||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
|||
; YOUR FILE IN THE BUILD PROCESS. |
|||
; |
|||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
|||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
|||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
|||
; SETTINGS. |
|||
; |
|||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
|||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING |
|||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! |
|||
; |
|||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO |
|||
; DIRECTORIES ABOVE THIS ONE). |
|||
; |
|||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT |
|||
; |
|||
#include "cfg_rcz80.asm" |
|||
; |
|||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP |
|||
; |
|||
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ |
|||
; |
|||
MEMMGR .SET MM_ZRC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180] |
|||
; |
|||
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) |
|||
ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) |
|||
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) |
|||
; |
|||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) |
|||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) |
|||
; |
|||
FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) |
|||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC] |
|||
; |
|||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|||
; |
|||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
|||
; |
|||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) |
|||
@ -0,0 +1,65 @@ |
|||
; |
|||
;================================================================================================== |
|||
; SBC MAXIMUM CONFIGURATION |
|||
;================================================================================================== |
|||
; |
|||
; THIS CONFIGURATION FILE IS *NOT* MEANT TO GENERATE A FUNCTIONAL ROM. |
|||
; IT IS USED TO HELP TEST BUILDS WITH MOST FEATURES ENABLED. |
|||
; |
|||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
|||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
|||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
|||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
|||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
|||
; YOUR FILE IN THE BUILD PROCESS. |
|||
; |
|||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
|||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
|||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
|||
; SETTINGS. |
|||
; |
|||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
|||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .SET OPERATOR BELOW. ATTEMPTING |
|||
; TO REDEFINE A VALUE WITH .SET BELOW WILL CAUSE TASM ERRORS! |
|||
; |
|||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO |
|||
; DIRECTORIES ABOVE THIS ONE). |
|||
; |
|||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT |
|||
; |
|||
#include "cfg_sbc.asm" |
|||
; |
|||
BATCOND .SET TRUE ; ENABLE LOW BATTERY WARNING MESSAGE |
|||
HBIOS_MUTEX .SET TRUE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD) |
|||
USELZSA2 .SET TRUE ; ENABLE FONT COMPRESSION |
|||
; |
|||
KIOENABLE .SET TRUE ; ENABLE ZILOG KIO SUPPORT |
|||
; |
|||
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT |
|||
; |
|||
DSKYENABLE .SET TRUE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE) |
|||
; |
|||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) |
|||
; |
|||
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) |
|||
; |
|||
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) |
|||
; |
|||
VDUENABLE .SET TRUE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) |
|||
CVDUENABLE .SET TRUE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) |
|||
TMSENABLE .SET TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) |
|||
VGAENABLE .SET TRUE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) |
|||
; |
|||
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) |
|||
; |
|||
RFENABLE .SET TRUE ; RF: ENABLE RAM FLOPPY DRIVER |
|||
; |
|||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|||
; |
|||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
|||
; |
|||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) |
|||
; |
|||
PRPENABLE .SET TRUE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) |
|||
; |
|||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER |
|||
@ -0,0 +1,56 @@ |
|||
; |
|||
;================================================================================================== |
|||
; SC140 STANDARD CONFIGURATION |
|||
;================================================================================================== |
|||
; |
|||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
|||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
|||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
|||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
|||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
|||
; YOUR FILE IN THE BUILD PROCESS. |
|||
; |
|||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
|||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
|||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
|||
; SETTINGS. |
|||
; |
|||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
|||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING |
|||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! |
|||
; |
|||
; 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 |
|||
; |
|||
Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2 |
|||
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3) |
|||
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3) |
|||
; |
|||
HBIOS_MUTEX .SET FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD) |
|||
; |
|||
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED) |
|||
; |
|||
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT |
|||
; |
|||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) |
|||
; |
|||
ASCIENABLE .SET TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) |
|||
; |
|||
ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) |
|||
; |
|||
SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) |
|||
; |
|||
FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) |
|||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|DIDE|N8|DIO3] |
|||
; |
|||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|||
; |
|||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
|||
; |
|||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue