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 |
TOOLS = ../Tools |
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.img *.rom *.com *.eeprom) |
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.img *.rom *.com *.eeprom) |
||||
SUBDIRS = Apps |
|
||||
|
SUBDIRS = Apps CPM3 ZPM3 |
||||
|
|
||||
include $(TOOLS)/Makefile.inc |
include $(TOOLS)/Makefile.inc |
||||
|
|
||||
clobber:: |
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: |
all: |
||||
cd Tools/unix ; make |
|
||||
cd Source ; make |
|
||||
cd Source/Images ; make |
|
||||
|
$(MAKE) --directory Tools/unix |
||||
|
$(MAKE) --directory Source |
||||
|
|
||||
clean: |
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: |
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 |
rm -f typescript |
||||
|
|
||||
diff: |
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 |
.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: |
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