mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Compare commits
19 Commits
v3.1.1-pre
...
v3.1.1-pre
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d4ca3de40f | ||
|
|
f0def03d0e | ||
|
|
27935123cf | ||
|
|
aa93eb62f2 | ||
|
|
94c32c9fd0 | ||
|
|
3b0951f6d5 | ||
|
|
4385efb0f7 | ||
|
|
d241db5c11 | ||
|
|
0c61385df4 | ||
|
|
cf142b3a91 | ||
|
|
9a503696c8 | ||
|
|
bfdfd83f2a | ||
|
|
95f8c35c36 | ||
|
|
c065af147a | ||
|
|
11ea0c8c27 | ||
|
|
dbea21fadd | ||
|
|
4d5f2ab219 | ||
|
|
b82ff327cf | ||
|
|
23a10343ca |
2
.github/workflows/commit.yml
vendored
2
.github/workflows/commit.yml
vendored
@@ -24,7 +24,6 @@ jobs:
|
||||
sudo apt-get install libncurses-dev
|
||||
sudo apt-get install srecord
|
||||
make dist
|
||||
make clean
|
||||
rm -rf .git*
|
||||
|
||||
- name: List Output
|
||||
@@ -64,7 +63,6 @@ jobs:
|
||||
export TZ='America/Los_Angeles'
|
||||
brew install srecord
|
||||
make dist
|
||||
make clean
|
||||
rm -rf .git*
|
||||
|
||||
- name: List Output
|
||||
|
||||
1
.github/workflows/release.yml
vendored
1
.github/workflows/release.yml
vendored
@@ -27,7 +27,6 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get install libncurses-dev
|
||||
make dist
|
||||
make clean
|
||||
rm -rf .git*
|
||||
|
||||
- name: Upload Artifact
|
||||
|
||||
@@ -7,5 +7,5 @@ include $(TOOLS)/Makefile.inc
|
||||
all::
|
||||
mkdir -p Tunes
|
||||
|
||||
clobber::
|
||||
clean::
|
||||
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.ovr *.hlp *.doc *.COM *.BIN Tunes/*.mym Tunes/*.pt? Tunes/*.vgm
|
||||
|
||||
@@ -3,5 +3,5 @@ MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.com)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clobber::
|
||||
clean::
|
||||
@rm -f *.com
|
||||
|
||||
@@ -3,5 +3,5 @@ MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clobber::
|
||||
@rm -f *.spr
|
||||
clean::
|
||||
@rm -f *.spr *.com *.sys *.dat cpm3fix.pat readme.1st
|
||||
|
||||
@@ -4,5 +4,5 @@ SUBDIRS = Apps CPM3 ZPM3
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clobber::
|
||||
@rm -f *.bin *.com *.img *.rom *.upd *.hex *.pdf *.log *.eeprom *.dat
|
||||
clean::
|
||||
@rm -f *.bin *.com *.img *.rom *.upd *.hex *.pdf *.log *.eeprom *.dat
|
||||
|
||||
@@ -3,5 +3,5 @@ MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clobber::
|
||||
@rm -f *.spr
|
||||
clean::
|
||||
@rm -f *.spr *.com *.sys *.dat *.zpm
|
||||
|
||||
@@ -3,4 +3,4 @@ setlocal
|
||||
|
||||
pushd Source && call Build %* || exit /b & popd
|
||||
|
||||
pause
|
||||
if "%*" == "" pause
|
||||
|
||||
@@ -62,6 +62,7 @@ Version 3.1.1
|
||||
- WBW: ZPMLDR and ZPM3 fixes, credit to Lars Nelson for finding ZPM3 source!
|
||||
- DDW: Add support for MBC sound card
|
||||
- WBW: Add support for "romless" booting
|
||||
- L?N: Fixes for ZCPR-D&J (buffer overflow, default drive/user)
|
||||
|
||||
Version 3.1
|
||||
-----------
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
15
Makefile
15
Makefile
@@ -1,20 +1,19 @@
|
||||
all:
|
||||
$(MAKE) --directory Tools/unix
|
||||
$(MAKE) --directory Tools
|
||||
$(MAKE) --directory Source
|
||||
|
||||
clean:
|
||||
$(MAKE) --directory Tools/unix clean
|
||||
$(MAKE) --directory Tools clean
|
||||
$(MAKE) --directory Source clean
|
||||
$(MAKE) --directory Binary clean
|
||||
rm -f make.log
|
||||
|
||||
clobber:
|
||||
$(MAKE) --directory Tools/unix clobber
|
||||
$(MAKE) --directory Source clobber
|
||||
$(MAKE) --directory Binary clobber
|
||||
rm -f typescript
|
||||
clobber: clean
|
||||
|
||||
diff:
|
||||
$(MAKE) --directory Source diff
|
||||
|
||||
dist:
|
||||
$(MAKE) ROM_PLATFORM=dist
|
||||
$(MAKE) ROM_PLATFORM=dist 2>&1 | tee make.log
|
||||
$(MAKE) --directory Source clean
|
||||
$(MAKE) --directory Tools clean
|
||||
|
||||
17
ReadMe.md
17
ReadMe.md
@@ -3,7 +3,7 @@
|
||||
## Z80/Z180 System Software
|
||||
|
||||
Version 3.1 Pre-release
|
||||
21 Mar 2022
|
||||
09 Jul 2022
|
||||
|
||||
Wayne Warthen <wwarthen@gmail.com>
|
||||
|
||||
@@ -418,7 +418,7 @@ therefore, globally available.
|
||||
|
||||
Some custom applications do not fit on the ROM disk. They are found on
|
||||
the disk image files or the individual files can be found in the
|
||||
Binary\\Apps directory of the distribution.
|
||||
Binary\Apps directory of the distribution.
|
||||
|
||||
| Application | Description |
|
||||
|-------------|-------------------------------------------------------------|
|
||||
@@ -924,7 +924,7 @@ documents.
|
||||
Note that the build scripts for RomWBW create the default disk images
|
||||
supplied with RomWBW. It is relatively easy to customize the contents of
|
||||
the disk images that are part of RomWBW. This is described in more
|
||||
detail in the Source\\Images directory of the distribution.
|
||||
detail in the Source\Images directory of the distribution.
|
||||
|
||||
## FAT Filesystem Transfers
|
||||
|
||||
@@ -945,7 +945,7 @@ however. Longer filenames will show up as a truncated version.
|
||||
|
||||
The `FAT` application is not on your ROM disk because it is too large to
|
||||
fit. You will find it on all of the pre-built disk images as well as in
|
||||
the Binary\\Apps directory of the distribution.
|
||||
the Binary\Apps directory of the distribution.
|
||||
|
||||
For advanced users, it is possible to create a hybrid disk that contains
|
||||
CP/M slices at the beginning and a FAT filesystem after. Such a hybrid
|
||||
@@ -953,7 +953,7 @@ disk can be used to boot an operating system and still have access to
|
||||
FAT files on the FAT portion of the disk. David Reese has prepared a
|
||||
document describing how to do this. It is called
|
||||
“SC126_How-To_No_2\_Preparing_an_SD_Card_for_Use_with_SC126_Rev_1-5.pdf”
|
||||
and can be found in the Doc\\Contrib directory of the distribution.
|
||||
and can be found in the Doc\Contrib directory of the distribution.
|
||||
|
||||
# Startup Command Processing
|
||||
|
||||
@@ -1164,7 +1164,7 @@ system on your disk.
|
||||
CP/M 3 uses a multi-step boot process involving multiple files. The
|
||||
CP/M 3 boot files are not included on the ROM disk due to space
|
||||
constraints. You will need to transfer the files to your system from
|
||||
the RomWBW distribution directory Binary\\CPM3.
|
||||
the RomWBW distribution directory Binary\CPM3.
|
||||
|
||||
After this is done, you will need to use `SYSCOPY` to place the CP/M
|
||||
3 loader image on the boot tracks of all CP/M 3 boot disks/slices.
|
||||
@@ -1182,7 +1182,7 @@ system on your disk.
|
||||
ZPM3 uses a multi-step boot process involving multiple files. The
|
||||
ZPM3 boot files are not included on the ROM disk due to space
|
||||
constraints. You will need to transfer the files to your system from
|
||||
the RomWBW distribution directory Binary\\ZPM3.
|
||||
the RomWBW distribution directory Binary\ZPM3.
|
||||
|
||||
After this is done, you will need to use `SYSCOPY` to place the ZPM3
|
||||
loader image on the boot tracks of all ZPM3 boot disks/slices. The
|
||||
@@ -1225,8 +1225,7 @@ For example: `B>COPY ASSIGN.COM C:`
|
||||
Some RomWBW custom applications are too large to fit on the ROM disk. If
|
||||
you are using any of these you will need to transfer them to your system
|
||||
and then update all copies. These applications are found in the
|
||||
Binary\\Apps directory of the distribution and in all of the disk
|
||||
images.
|
||||
Binary\Apps directory of the distribution and in all of the disk images.
|
||||
|
||||
- FAT.COM
|
||||
- TUNE.COM
|
||||
|
||||
82
ReadMe.txt
82
ReadMe.txt
@@ -1,6 +1,6 @@
|
||||
RomWBW Getting Started
|
||||
Wayne Warthen (mailto:wwarthen@gmail.com)
|
||||
21 Mar 2022
|
||||
09 Jul 2022
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ RomWBW
|
||||
Z80/Z180 System Software
|
||||
|
||||
Version 3.1 Pre-release
|
||||
21 Mar 2022
|
||||
09 Jul 2022
|
||||
|
||||
Wayne Warthen wwarthen@gmail.com
|
||||
|
||||
@@ -213,15 +213,23 @@ disk devices.
|
||||
|
||||
The following ROM applications are available at the boot loader prompt:
|
||||
|
||||
Application
|
||||
-------------- --------------------------------------------------------
|
||||
Monitor Z80 system debug monitor w/ Intel Hex loader
|
||||
Forth Brad Rodriguez’s ANSI compatible Forth language
|
||||
Basic Nascom 8K BASIC language
|
||||
Tasty BASIC Dimitri Theuling’s Tiny BASIC implementation
|
||||
Play A simple video game (requires ANSI terminal emulation)
|
||||
Network Boot Boot through Wiznet MT011 device
|
||||
Flash Update Upload and flash a new ROMWBW image using xmodem
|
||||
--------------------------------------------------------------------------
|
||||
Application
|
||||
------------- ------------------------------------------------------------
|
||||
Monitor Z80 system debug monitor w/ Intel Hex loader
|
||||
|
||||
Forth Brad Rodriguez’s ANSI compatible Forth language
|
||||
|
||||
Basic Nascom 8K BASIC language
|
||||
|
||||
Tasty BASIC Dimitri Theuling’s Tiny BASIC implementation
|
||||
|
||||
Play A simple video game (requires ANSI terminal emulation)
|
||||
|
||||
Network Boot Boot through Wiznet MT011 device
|
||||
|
||||
Flash Update Upload and flash a new ROMWBW image using xmodem
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
In general, the command to exit these applications and restart the
|
||||
system is BYE. The exceptions are the Monitor which uses B and Play
|
||||
@@ -467,11 +475,15 @@ Some custom applications do not fit on the ROM disk. They are found on
|
||||
the disk image files or the individual files can be found in the
|
||||
Binary\Apps directory of the distribution.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
Application Description
|
||||
------------- -------------------------------------------------------------
|
||||
------------- ------------------------------------------------------------
|
||||
TUNE Play .PT2, .PT3, .MYM audio files.
|
||||
|
||||
FAT Access MS-DOS FAT filesystems from RomWBW (based on FatFs).
|
||||
|
||||
INTTEST Test interrupt vector hooking.
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Additional documentation on all of these applications can be found in
|
||||
“RomWBW Applications.pdf” in the Doc directory of the distribution.
|
||||
@@ -667,14 +679,21 @@ The following table shows the disk image files available. Note that the
|
||||
images in the “Hard” column are fine for use on CF Cards, SD Cards, as
|
||||
well as real spinning hard disks.
|
||||
|
||||
Floppy Hard Description
|
||||
-------------- -------------- ------------------------------
|
||||
fd_cpm22.img hd_cpm22.img DRI CP/M 2.2 boot disk
|
||||
fd_zsdos.img hd_zsdos.img ZSDOS 1.1 boot disk
|
||||
fd_nzcom.img hd_nzcom.img NZCOM boot disk
|
||||
fd_cpm3.img hd_cpm3.img DRI CP/M 3 boot disk
|
||||
fd_zpm3.img hd_zpm3.img ZPM3 boot disk
|
||||
fd_ws4.img hd_ws4.img WordStar v4 application disk
|
||||
-----------------------------------------------------------------------
|
||||
Floppy Hard Description
|
||||
--------------- --------------- ---------------------------------------
|
||||
fd_cpm22.img hd_cpm22.img DRI CP/M 2.2 boot disk
|
||||
|
||||
fd_zsdos.img hd_zsdos.img ZSDOS 1.1 boot disk
|
||||
|
||||
fd_nzcom.img hd_nzcom.img NZCOM boot disk
|
||||
|
||||
fd_cpm3.img hd_cpm3.img DRI CP/M 3 boot disk
|
||||
|
||||
fd_zpm3.img hd_zpm3.img ZPM3 boot disk
|
||||
|
||||
fd_ws4.img hd_ws4.img WordStar v4 application disk
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
In addition to the disk images above, there is also a special hard disk
|
||||
image called hd_combo.img. This image contains all of the images above,
|
||||
@@ -685,14 +704,21 @@ system options.
|
||||
|
||||
This is the layout of the hd_combo disk image:
|
||||
|
||||
Slice Description
|
||||
--------- ------------------------------
|
||||
Slice 0 DRI CP/M 2.2 boot disk
|
||||
Slice 1 ZSDOS 1.1 boot disk
|
||||
Slice 2 NZCOM boot disk
|
||||
Slice 3 DRI CP/M 3 boot disk
|
||||
Slice 4 ZPM3 boot disk
|
||||
Slice 5 WordStar v4 application disk
|
||||
------------------------------------------------------------------------
|
||||
Slice Description
|
||||
------- ----------------------------------------------------------------
|
||||
Slice 0 DRI CP/M 2.2 boot disk
|
||||
|
||||
Slice 1 ZSDOS 1.1 boot disk
|
||||
|
||||
Slice 2 NZCOM boot disk
|
||||
|
||||
Slice 3 DRI CP/M 3 boot disk
|
||||
|
||||
Slice 4 ZPM3 boot disk
|
||||
|
||||
Slice 5 WordStar v4 application disk
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Note that unlike the ROM firmware, you do not need to choose a disk
|
||||
image specific to your hardware. Because the RomWBW firmware provides a
|
||||
|
||||
21
Readme.unix
21
Readme.unix
@@ -34,22 +34,19 @@ By default, this will generate all of the standard configurations of
|
||||
RomWBW for all platforms. If you just want to build the ROM for a
|
||||
specific platform and configuration you can use
|
||||
|
||||
make ROM_PLATFORM=<platform> ROM_CONFIG=<config> [ROMSIZE=<size>]
|
||||
make ROM_PLATFORM=<platform> ROM_CONFIG=<config>
|
||||
|
||||
where <platform> is one of the supported platforms such as SBC, RCZ80,
|
||||
etc. and <config> is a configuration of that platform. A ROM size may
|
||||
optionally be specified and must be one of 128, 256, 512, or 1024. It
|
||||
defaults to 512. For example, to build the "126" configuration of
|
||||
the "SCZ180" platform:
|
||||
etc. and <config> is a configuration of that platform. For example,
|
||||
to build the "126" configuration of the "SCZ180" platform:
|
||||
|
||||
make ROM_PLATFORM=SCZ180 ROM_CONFIG=126
|
||||
|
||||
Please be aware that the make-based build does have a few deficiencies.
|
||||
|
||||
First and most important, the Makefiles do not handle reruns very well.
|
||||
To ensure a full buld, use "make clobber" from the top level directory
|
||||
before running the actual build. For those used to using "make clean",
|
||||
you can do that but it is not as thorough as "make clobber".
|
||||
To ensure a full buld, use "make clean" from the top level directory
|
||||
before running the actual build.
|
||||
|
||||
Second, there are some build failures that will not stop the make
|
||||
process. Most of this is because real CP/M 2.2 tools are used in
|
||||
@@ -57,7 +54,7 @@ places and CP/M 2.2 does not allow programs to return a result code.
|
||||
|
||||
Third, not all dependencies are properly handled. So, changes to some
|
||||
files will not cause things to rebuild as appropriate. In general, I
|
||||
recommend doing a "make clobber" before running "make" to ensure that
|
||||
recommend doing a "make clean" before running "make" to ensure that
|
||||
everything is fully rebuilt.
|
||||
|
||||
For macOS users, you may encounter a failure reading or writing files.
|
||||
@@ -78,7 +75,7 @@ running. To disable this feature:
|
||||
DISCLAIMER: You do this at your own risk. I highly recommend that you
|
||||
return the settings back to normal immediately after doing a build.
|
||||
|
||||
Heavy use is made of make's include facility and pattern rules. the
|
||||
Heavy use is made of make's include facility and pattern rules. The
|
||||
master rule set is in Tools/Makefile.inc. Changes here will affect
|
||||
almost every Makefile, and where exceptions are needed, the overrides
|
||||
are applied in the lower Makefiles.
|
||||
@@ -102,10 +99,10 @@ Credit:
|
||||
hacked to do case-insensitivity. These are not marked, and are
|
||||
not extensive.
|
||||
|
||||
zx is from the distributed version, and also has local hacks
|
||||
zxcc is from the distributed version, and also has local hacks
|
||||
for case insensitivity.
|
||||
|
||||
Both zx and cpmtools ship with an overly complicated makefile
|
||||
Both zxcc and cpmtools ship with an overly complicated makefile
|
||||
generation system and this is ignored.
|
||||
|
||||
This whole Linux build framework is the work of Curt Mayer,
|
||||
|
||||
@@ -327,9 +327,9 @@ bdos_s: call bdos
|
||||
ret
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; S u b r o u t i n e
|
||||
; Search for 0 terminated string starting at HL
|
||||
|
||||
sub_476: push af
|
||||
Search0: push af
|
||||
loc_477: push bc
|
||||
xor a
|
||||
ld b,a
|
||||
@@ -361,7 +361,7 @@ text495h: .db 0,0,0
|
||||
|
||||
sub_4A4: ld de,file_fcb
|
||||
ld hl,byte_4F8
|
||||
ld (hl),3Ah
|
||||
ld (hl),':'
|
||||
inc hl
|
||||
xor a
|
||||
ld b,0Dh
|
||||
@@ -370,14 +370,14 @@ sub_4A4: ld de,file_fcb
|
||||
call sub_16C4
|
||||
dec de
|
||||
ld a,(de)
|
||||
add a,40h
|
||||
add a,'A'-1
|
||||
ld (byte_4F4),a
|
||||
dec de
|
||||
ld a,(de)
|
||||
ld de,byte_4F5
|
||||
call sub_16E7
|
||||
ld a,24h
|
||||
ld (byte_507),a
|
||||
ld a,'$'
|
||||
ld (term_fn),a
|
||||
ld de,text4F2h
|
||||
ld c,C_WRITESTR
|
||||
call bdos ; Output string
|
||||
@@ -386,13 +386,13 @@ sub_4A4: ld de,file_fcb
|
||||
or l
|
||||
ret z
|
||||
ld b,1
|
||||
call sub_476
|
||||
call Search0
|
||||
dec hl
|
||||
ld (hl),24h
|
||||
ld (hl),'$'
|
||||
ld de,(byte_2CD4)
|
||||
ld c,C_WRITESTR
|
||||
call bdos ; Output string
|
||||
ld de,text508h
|
||||
ld de,newline
|
||||
ld c,C_WRITESTR
|
||||
jp bdos ; Output string
|
||||
|
||||
@@ -418,8 +418,8 @@ byte_4F8: .db 0 ;
|
||||
.db 0 ;
|
||||
.db 0 ;
|
||||
.db 20h ;
|
||||
byte_507: .db 0
|
||||
text508h: .text "\r\n$"
|
||||
term_fn: .db 0
|
||||
newline: .text "\r\n$"
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; S u b r o u t i n e
|
||||
@@ -1278,7 +1278,7 @@ loc_9AE: ld a,(byte_8AF)
|
||||
ret z
|
||||
push hl
|
||||
ld b,1
|
||||
call sub_476
|
||||
call Search0
|
||||
dec hl
|
||||
ld (hl),20h
|
||||
pop hl
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
;------------------------------------------------------------------------------
|
||||
; SN76489 + AY-3-8910 + YM2162 VGM player for CP/M
|
||||
; SN76489 + AY-3-8910 + YM2162 + YM2151 VGM player for CP/M
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Based on VGM player by J.B. Langston
|
||||
; https://github.com/jblang/SN76489
|
||||
;
|
||||
; Enhanced with multi-chip support by Marco Maccaferri
|
||||
; YM2151 support from Ed Brindley
|
||||
;
|
||||
; YM2162/YM3484, GD3 support, VGM Chip identification,
|
||||
; default file type, basic file size checking added by Phil Summers
|
||||
;
|
||||
; Bugs: YM2612 Mute not working.
|
||||
; Bugs: YM2151 playback untested & no mute.
|
||||
;
|
||||
; Assemble with:
|
||||
;
|
||||
@@ -20,84 +21,145 @@
|
||||
; Device and system specific definitions
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
P8X180 .EQU 0 ; System configuration
|
||||
P8X180 .EQU 0 ; System configuration
|
||||
RC2014 .EQU 0
|
||||
SBCECB .EQU 1
|
||||
|
||||
MBC .EQU 0
|
||||
;
|
||||
.IF P8X180
|
||||
RSEL .EQU 82H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 83H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .EQU 88H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .EQU 89H ; Secondary AY-3-8910 Register data
|
||||
PSGREG .EQU 84H ; Primary SN76489
|
||||
PSG2REG .EQU 8AH ; Secondary SN76489
|
||||
FRAME_DLY .EQU 48 ; Frame delay (~ 1/44100)
|
||||
RSEL .EQU 82H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 83H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .EQU 88H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .EQU 89H ; Secondary AY-3-8910 Register data
|
||||
PSG1REG .EQU 84H ; Primary SN76489
|
||||
PSG2REG .EQU 8AH ; Secondary SN76489
|
||||
YM2151_SEL1 .EQU 0B0H ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .EQU 0B1H ; Primary YM2151 register data
|
||||
YM2151_SEL2 .EQU 0B2H ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .EQU 0B3H ; Secondary YM2151 register data
|
||||
FRAME_DLY .EQU 48 ; Frame delay (~ 1/44100)
|
||||
.ENDIF
|
||||
|
||||
;
|
||||
.IF RC2014
|
||||
RSEL .EQU 0D8H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 0D0H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .EQU 0A0H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .EQU 0A1H ; Secondary AY-3-8910 Register data
|
||||
PSGREG .EQU 0FFH ; Primary SN76489
|
||||
PSG2REG .EQU 0FBH ; Secondary SN76489
|
||||
FRAME_DLY .EQU 15 ; Frame delay (~ 1/44100)
|
||||
RSEL .EQU 0D8H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 0D0H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .EQU 0A0H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .EQU 0A1H ; Secondary AY-3-8910 Register data
|
||||
PSG1REG .EQU 0FFH ; Primary SN76489
|
||||
PSG2REG .EQU 0FBH ; Secondary SN76489
|
||||
YM2151_SEL1 .EQU 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .EQU 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .EQU 0D0H ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .EQU 0D1H ; Secondary YM2151 register data
|
||||
FRAME_DLY .EQU 15 ; Frame delay (~ 1/44100)
|
||||
.ENDIF
|
||||
|
||||
;
|
||||
.IF SBCECB
|
||||
RSEL .EQU 0D8H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 0D0H ; Primary AY-3-8910 Register data
|
||||
RSEL2 .EQU 0A0H ; Secondary AY-3-8910 Register selection
|
||||
RDAT2 .EQU 0A1H ; Secondary AY-3-8910 Register data
|
||||
YMSEL .EQU 0C0H ; Primary YM2162 11000000 a1=0 a0=0
|
||||
YMDAT .EQU 0C1H ; Primary YM2162 11000001 a1=0 a0=1
|
||||
YM2SEL .EQU 0C2H ; Secondary YM2162 11000010 a1=1 a0=0
|
||||
YM2DAT .EQU 0C3H ; Secondary YM2162 11000011 a1=1 a0=1
|
||||
PSG1REG .EQU 0C6H ; Primary SN76489
|
||||
PSG2REG .EQU 0C7H ; Secondary SN76489
|
||||
YM2151_SEL1 .EQU 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .EQU 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .EQU 0FEH ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .EQU 0FFH ; Secondary YM2151 register data
|
||||
FRAME_DLY .EQU 8 ; Frame delay (~ 1/44100)
|
||||
.ENDIF
|
||||
;
|
||||
.IF MBC
|
||||
RSEL .EQU 0A0H ; Primary AY-3-8910 Register selection
|
||||
RDAT .EQU 0A1H ; Primary AY-3-8910 Register data
|
||||
RSEL .EQU 0D8H ; Secondary AY-3-8910 Register selection
|
||||
RDAT .EQU 0D0H ; Secondary AY-3-8910 Register data
|
||||
YMSEL .EQU 0C0H ; 11000000 a1=0 a0=0
|
||||
YMDAT .EQU 0C1H ; 11000001 a1=0 a0=1
|
||||
YM2SEL .EQU 0C2H ; 11000010 a1=1 a0=0
|
||||
YM2DAT .EQU 0C3H ; 11000011 a1=1 a0=1
|
||||
PSGREG .EQU 0C6H ; Primary SN76489
|
||||
PSG2REG .EQU 0C7H ; Secondary SN76489
|
||||
YM2151_SEL1 .EQU 0FEH ; Primary YM2151 register selection
|
||||
YM2151_DAT1 .EQU 0FFH ; Primary YM2151 register data
|
||||
YM2151_SEL2 .EQU 0FEH ; Secondary YM2151 register selection
|
||||
YM2151_DAT2 .EQU 0FFH ; Secondary YM2151 register data
|
||||
FRAME_DLY .EQU 10 ; Frame delay (~ 1/44100)
|
||||
|
||||
#DEFINE SBCV2004
|
||||
HB_RTCVAL .EQU 0FFEEH
|
||||
RTCIO .EQU 070H
|
||||
|
||||
.ENDIF
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Your customer overrides can go in here i.e. ports
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
;RSEL .SET 09AH ; Primary AY-3-8910 Register selection
|
||||
;RDAT .SET 09BH ; Primary AY-3-8910 Register data
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Frame delay overide values for different processor speeds.
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
;FRAME_DLY .SET 10 ; 1Mhz ; not
|
||||
;FRAME_DLY .SET 10 ; 2Mhz ; implemented
|
||||
;FRAME_DLY .SET 10 ; 4Mhz ; yet
|
||||
;FRAME_DLY .SET 15 ; 8Mhz
|
||||
;FRAME_DLY .SET 10 ; 10Mhz
|
||||
;FRAME_DLY .SET 20 ; 12Mhz
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Frame delay values for pal/ntsc
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
D60 .EQU 735
|
||||
D50 .EQU 882
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Processor speed control for SBCV2004+
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
;#DEFINE SBCV2004 ; My SBC board at 12Mhz needs this to switch to
|
||||
HB_RTCVAL .EQU 0FFEEH ; 6MHz for it to work with the ECB-VGM reliably.
|
||||
RTCIO .EQU 070H
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; YM2162 Register write macros
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
#DEFINE setreg(reg,val) \
|
||||
#DEFCONT \ ld a,reg
|
||||
#DEFCONT \ out (YMSEL),a
|
||||
#DEFCONT \ nop
|
||||
#DEFCONT \ nop
|
||||
#DEFCONT \ ld a,val
|
||||
#DEFCONT \ out (YMDAT),a
|
||||
#DEFCONT \ nop
|
||||
#DEFCONT \ nop
|
||||
|
||||
#DEFCONT \ in a,(YMSEL)
|
||||
#DEFCONT \ rlca
|
||||
#DEFCONT \ jp c,$-3
|
||||
;
|
||||
#DEFINE setreg2(reg,val) \
|
||||
#DEFCONT \ ld a,reg
|
||||
#DEFCONT \ out (YM2SEL),a
|
||||
#DEFCONT \ nop
|
||||
#DEFCONT \ nop
|
||||
#DEFCONT \ ld a,val
|
||||
#DEFCONT \ out (YM2DAT),a
|
||||
#DEFCONT \ nop
|
||||
#DEFCONT \ nop
|
||||
|
||||
D50 .EQU 500 ; 900 ;735
|
||||
D60 .EQU 600 ; 1000 ;882
|
||||
#DEFCONT \ out (YM2DAT),a
|
||||
#DEFCONT \ in a,(YMSEL)
|
||||
#DEFCONT \ rlca
|
||||
#DEFCONT \ jp c,$-3
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VGM Codes
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
VGM_GG_W .EQU 04FH ; GAME GEAR PSG STEREO. WRITE DD TO PORT 0X06
|
||||
VGM_PSG_W .EQU 050H ; PSG (SN76489/SN76496) WRITE VALUE DD
|
||||
VGM_YM2612_W .EQU 052H ; YM2612 WRITE VALUE DD
|
||||
VGM_PSG1_W .EQU 050H ; PSG (SN76489/SN76496) #1 WRITE VALUE DD
|
||||
VGM_PSG2_W .EQU 030H ; PSG (SN76489/SN76496) #2 WRITE VALUE DD
|
||||
VGM_YM26121_W .EQU 052H ; YM2612 #1 WRITE VALUE DD
|
||||
VGM_YM26122_W .EQU 053H ; YM2612 #2 WRITE VALUE DD
|
||||
VGM_WNS .EQU 061H ; WAIT N SAMPLES
|
||||
VGM_W735 .EQU 062H ; WAIT 735 SAMPLES (1/60TH SECOND)
|
||||
VGM_W882 .EQU 063H ; WAIT 882 SAMPLES (1/50TH SECOND)
|
||||
VGM_ESD .EQU 066H ; END OF SOUND DATA
|
||||
VGM_YM21511_W .EQU 054H ; YM2612 #1 WRITE VALUE DD
|
||||
VGM_YM21512_W .EQU 0A4H ; YM2612 #2WRITE VALUE DD
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Generic CP/M definitions
|
||||
@@ -168,13 +230,12 @@ L1 LD B,FRAME_DLY
|
||||
; Program Exit
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
EXIT
|
||||
EXIT: CALL VGMDEVICES ; Display devices used
|
||||
CALL VGMMUTE ; Mute Devices
|
||||
|
||||
#IFDEF SBCV2004
|
||||
CALL FASTIO
|
||||
#ENDIF
|
||||
CALL VGMDEVICES ; Display devices used
|
||||
CALL VGMMUTE ; Mute Devices
|
||||
|
||||
LD DE,MSG_EXIT
|
||||
EXIT_ERR: CALL PRTSTR ; Generic message or error
|
||||
LD SP, (OLDSTACK) ; Exit to CP/M
|
||||
@@ -266,7 +327,7 @@ VGMINFO: LD DE,MSG_BADF ; Check valid file
|
||||
EX DE,HL
|
||||
PUSH BC
|
||||
POP DE
|
||||
; CALL PRTHEX32
|
||||
; CALL PRTHEX32 ; Debug
|
||||
|
||||
LD HL,(VGMDATA+16H) ; Is GD3 in range?
|
||||
LD A,H
|
||||
@@ -296,6 +357,9 @@ VGMINFO: LD DE,MSG_BADF ; Check valid file
|
||||
ADD HL,DE
|
||||
|
||||
CALL CRLF
|
||||
LD DE,MSG_TRACK
|
||||
CALL PRTSTR
|
||||
|
||||
GD3_NXT: LD A,(HL) ; Print English Track
|
||||
OR A
|
||||
INC HL
|
||||
@@ -311,7 +375,9 @@ GD3_NXT1: LD A,(HL) ; Skip Japanese Track
|
||||
JR NZ,GD3_NXT1
|
||||
; JR GD3_NXT1
|
||||
|
||||
CALL CRLF
|
||||
LD DE,MSG_TITLE
|
||||
CALL PRTSTR
|
||||
|
||||
GD3_NXT2: LD A,(HL) ; Print English Title
|
||||
OR A
|
||||
INC HL
|
||||
@@ -349,20 +415,22 @@ NEXT LD A, (HL)
|
||||
NEXT1 CP VGM_GG_W ; Game Gear SN76489 stereo. Ignored
|
||||
JR NZ, PSG
|
||||
LD IX,VGM_DEV
|
||||
SET 6,(IX+0)
|
||||
INC HL
|
||||
JR NEXT
|
||||
SET 0,(IX+1)
|
||||
INC HL
|
||||
JR NEXT
|
||||
|
||||
PSG CP VGM_PSG_W ; Write byte to SN76489.
|
||||
; SN76489 SECTION
|
||||
|
||||
PSG CP VGM_PSG1_W ; Write byte to SN76489.
|
||||
JR NZ, PSG2
|
||||
LD A, (HL)
|
||||
INC HL
|
||||
OUT (PSGREG), A
|
||||
OUT (PSG1REG), A
|
||||
LD IX,VGM_DEV
|
||||
SET 0,(IX+0)
|
||||
JR NEXT
|
||||
|
||||
PSG2 CP 30H ; Write byte to second SN76489.
|
||||
PSG2 CP VGM_PSG2_W ; Write byte to second SN76489.
|
||||
JR NZ, AY
|
||||
LD A, (HL)
|
||||
INC HL
|
||||
@@ -371,10 +439,10 @@ PSG2 CP 30H ; Write byte to second SN76489.
|
||||
SET 1,(IX+0)
|
||||
JR NEXT
|
||||
|
||||
; AY SECTION
|
||||
; AY-3-8910 SECTION
|
||||
|
||||
AY CP 0A0H
|
||||
JR NZ,YM
|
||||
JR NZ,YM2162_1
|
||||
LD A, (HL)
|
||||
INC HL
|
||||
BIT 7, A ; Bit 7=1 for second AY-3-8910
|
||||
@@ -395,10 +463,10 @@ AY1 OUT (RSEL), A
|
||||
SET 3,(IX+0)
|
||||
JR NEXT
|
||||
|
||||
; YM SECTION
|
||||
; YM2612 SECTION
|
||||
|
||||
YM: CP 052H
|
||||
JR NZ, YM2
|
||||
YM2162_1 CP VGM_YM26121_W
|
||||
JR NZ, YM2162_2
|
||||
LD A,(HL)
|
||||
OUT (YMSEL),A
|
||||
INC HL
|
||||
@@ -409,9 +477,8 @@ YM: CP 052H
|
||||
SET 4,(IX+0)
|
||||
JP NEXT
|
||||
;
|
||||
YM2: CP 053H
|
||||
JR NZ,WAITNN
|
||||
|
||||
YM2162_2 CP VGM_YM26122_W
|
||||
JR NZ,YM2151_1
|
||||
LD A,(HL)
|
||||
OUT (YM2SEL),A
|
||||
INC HL
|
||||
@@ -419,10 +486,36 @@ YM2: CP 053H
|
||||
OUT (YM2DAT),A
|
||||
INC HL
|
||||
LD IX,VGM_DEV
|
||||
SET 4,(IX+0)
|
||||
SET 4,(IX+0) ; 2nd channel
|
||||
JP NEXT
|
||||
|
||||
; YM2151 SECTION
|
||||
|
||||
YM2151_1 CP VGM_YM21511_W
|
||||
JR NZ,YM2151_2
|
||||
LD A,(HL)
|
||||
OUT (YM2151_SEL1),A
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
OUT (YM2151_DAT1),A
|
||||
INC HL
|
||||
LD IX,VGM_DEV
|
||||
SET 6,(IX+0)
|
||||
JP NEXT
|
||||
;
|
||||
YM2151_2 CP VGM_YM21512_W
|
||||
JR NZ,WAITNN
|
||||
LD A,(HL)
|
||||
OUT (YM2151_SEL2),A
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
OUT (YM2151_DAT2),A
|
||||
INC HL
|
||||
LD IX,VGM_DEV
|
||||
SET 7,(IX+0)
|
||||
JP NEXT
|
||||
;
|
||||
WAITNN: CP 61H ; Wait nn samples
|
||||
WAITNN CP VGM_WNS ; Wait nn samples
|
||||
JR NZ, WAIT60
|
||||
LD A, (HL)
|
||||
INC HL
|
||||
@@ -437,14 +530,14 @@ WAITNN: CP 61H ; Wait nn samples
|
||||
WAIT60 CP VGM_W735 ; Wait 735 samples (60Hz)
|
||||
JR NZ, WAIT50
|
||||
LD (VGMPOS), HL
|
||||
LD HL, D50
|
||||
LD HL, D60
|
||||
LD (VGMDLY), HL
|
||||
RET
|
||||
;
|
||||
WAIT50 CP VGM_W882 ; Wait 882 samples (50Hz)
|
||||
JR NZ, WAIT1
|
||||
LD (VGMPOS), HL
|
||||
LD HL, D60
|
||||
LD HL, D50
|
||||
LD (VGMDLY), HL
|
||||
RET
|
||||
;
|
||||
@@ -458,8 +551,8 @@ WAIT1 CP 70H ; WAIT 0-15 SAMPLES
|
||||
LD (VGMDLY), HL
|
||||
RET
|
||||
;
|
||||
UNK: LD IX,VGM_DEV ; Set flag for
|
||||
SET 6,(IX+0) ; unknown device
|
||||
UNK LD IX,VGM_DEV ; Set flag for
|
||||
SET 0,(IX+1) ; unknown device
|
||||
INC HL ; Try and skip
|
||||
JP NEXT
|
||||
;
|
||||
@@ -489,24 +582,38 @@ VGMDEVICES: LD DE,MSG_PO ; Played on ...
|
||||
SRL A
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,MSG_YM ; YM-2612 Devices
|
||||
LD DE,MSG_YM2612 ; YM-2612 Devices
|
||||
CALL CHKDEV
|
||||
;
|
||||
POP AF
|
||||
SRL A
|
||||
SRL A
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,MSG_YM2151 ; YM-2151 Devices
|
||||
CALL CHKDEV
|
||||
;
|
||||
POP AF
|
||||
; SRL A
|
||||
; SRL A
|
||||
; PUSH AF
|
||||
;
|
||||
LD A,(IX+1)
|
||||
LD DE,MSG_UNK ; Unknown Device Code detected
|
||||
; CALL CHKDEV
|
||||
;
|
||||
CHKDEV: AND %00000011 ; Display
|
||||
SRL A ; number of
|
||||
ADC A,'0' ; devices
|
||||
CP '0'
|
||||
RET Z ; Skip if not
|
||||
CALL PRTCHR ; used.
|
||||
CALL PRTSTR
|
||||
RET Z ; number of
|
||||
SRL A ; devices
|
||||
ADC A,'0'
|
||||
CALL PRTCHR ; Skip if not
|
||||
CALL PRTSTR ; used.
|
||||
RET
|
||||
|
||||
DEBUG: PUSH AF
|
||||
LD A,'*'
|
||||
CALL PRTCHR
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
@@ -518,16 +625,16 @@ VGMMUTE: LD A,(IX+0) ; Only mute devices used.
|
||||
JR Z,SKIP1
|
||||
|
||||
LD A, 9FH ; Mute all channels on psg
|
||||
OUT (PSGREG), A
|
||||
OUT (PSG1REG), A
|
||||
OUT (PSG2REG), A
|
||||
LD A, 0BFH
|
||||
OUT (PSGREG), A
|
||||
OUT (PSG1REG), A
|
||||
OUT (PSG2REG), A
|
||||
LD A, 0DFH
|
||||
OUT (PSGREG), A
|
||||
OUT (PSG1REG), A
|
||||
OUT (PSG2REG), A
|
||||
LD A, 0FFH
|
||||
OUT (PSGREG), A
|
||||
OUT (PSG1REG), A
|
||||
OUT (PSG2REG), A
|
||||
|
||||
SKIP1: LD A,(IX+0)
|
||||
@@ -554,11 +661,12 @@ SKIP1: LD A,(IX+0)
|
||||
OUT (RDAT2), A
|
||||
CALL FASTIO
|
||||
|
||||
SKIP2: LD A,(IX+0)
|
||||
SKIP2: LD A,(IX+0) ; mute all channels on ym2612
|
||||
AND %00110000
|
||||
JP Z,SKIP3
|
||||
|
||||
setreg($22,$00) ; lfo off
|
||||
|
||||
setreg($27,$00) ; Disable independant Channel 3
|
||||
setreg($28,$00) ; note off ch 1
|
||||
setreg($28,$01) ; note off ch 2
|
||||
@@ -573,9 +681,240 @@ SKIP2: LD A,(IX+0)
|
||||
setreg($b6,$00)
|
||||
setreg2($b4,$00) ; sound off ch 4-6
|
||||
setreg2($b5,$00)
|
||||
setreg2($b6,$00)
|
||||
setreg2($b6,$00)
|
||||
|
||||
setreg($40,$7f) ; ch 1-3 total level minimum
|
||||
setreg($41,$7f)
|
||||
setreg($42,$7f)
|
||||
setreg($44,$7f)
|
||||
setreg($45,$7f)
|
||||
setreg($46,$7f)
|
||||
setreg($48,$7f)
|
||||
setreg($49,$7f)
|
||||
setreg($4a,$7f)
|
||||
setreg($4c,$7f)
|
||||
setreg($4d,$7f)
|
||||
setreg($4e,$7f)
|
||||
|
||||
setreg2($40,$7f) ; ch 4-6 total level minimum
|
||||
setreg2($41,$7f)
|
||||
setreg2($42,$7f)
|
||||
setreg2($44,$7f)
|
||||
setreg2($45,$7f)
|
||||
setreg2($46,$7f)
|
||||
setreg2($48,$7f)
|
||||
setreg2($49,$7f)
|
||||
setreg2($4a,$7f)
|
||||
setreg2($4c,$7f)
|
||||
setreg2($4d,$7f)
|
||||
setreg2($4e,$7f)
|
||||
|
||||
#if (0)
|
||||
|
||||
setreg($2a,$00) ; dac value
|
||||
|
||||
setreg($24,$00) ; timer A frequency
|
||||
setreg($25,$00) ; timer A frequency
|
||||
setreg($26,$00) ; time B frequency
|
||||
|
||||
setreg($30,$00) ; ch 1-3 multiply & detune
|
||||
setreg($31,$00)
|
||||
setreg($32,$00)
|
||||
setreg($34,$00)
|
||||
setreg($35,$00)
|
||||
setreg($36,$00)
|
||||
setreg($38,$00)
|
||||
setreg($39,$00)
|
||||
setreg($3a,$00)
|
||||
setreg($3c,$00)
|
||||
setreg($3d,$00)
|
||||
setreg($3e,$00)
|
||||
|
||||
setreg2($30,$00) ; ch 4-6 multiply & detune
|
||||
setreg2($31,$00)
|
||||
setreg2($32,$00)
|
||||
setreg2($34,$00)
|
||||
setreg2($35,$00)
|
||||
setreg2($36,$00)
|
||||
setreg2($38,$00)
|
||||
setreg2($39,$00)
|
||||
setreg2($3a,$00)
|
||||
setreg2($3c,$00)
|
||||
setreg2($3d,$00)
|
||||
setreg2($3e,$00)
|
||||
|
||||
setreg($50,$00) ; ch 1-3 attack rate and scaling
|
||||
setreg($51,$00)
|
||||
setreg($52,$00)
|
||||
setreg($54,$00)
|
||||
setreg($55,$00)
|
||||
setreg($56,$00)
|
||||
setreg($58,$00)
|
||||
setreg($59,$00)
|
||||
setreg($5a,$00)
|
||||
setreg($5c,$00)
|
||||
setreg($5d,$00)
|
||||
setreg($5e,$00)
|
||||
|
||||
setreg2($50,$00) ; ch 4-6 attack rate and scaling
|
||||
setreg2($51,$00)
|
||||
setreg2($52,$00)
|
||||
setreg2($54,$00)
|
||||
setreg2($55,$00)
|
||||
setreg2($56,$00)
|
||||
setreg2($58,$00)
|
||||
setreg2($59,$00)
|
||||
setreg2($5a,$00)
|
||||
setreg2($5c,$00)
|
||||
setreg2($5d,$00)
|
||||
setreg2($5e,$00)
|
||||
|
||||
setreg($60,$00) ; ch 1-3 decay rate and am enable
|
||||
setreg($61,$00)
|
||||
setreg($62,$00)
|
||||
setreg($64,$00)
|
||||
setreg($65,$00)
|
||||
setreg($66,$00)
|
||||
setreg($68,$00)
|
||||
setreg($69,$00)
|
||||
setreg($6a,$00)
|
||||
setreg($6c,$00)
|
||||
setreg($6d,$00)
|
||||
setreg($6e,$00)
|
||||
|
||||
setreg2($60,$00) ; ch 4-6 decay rate and am enable
|
||||
setreg2($61,$00)
|
||||
setreg2($62,$00)
|
||||
setreg2($64,$00)
|
||||
setreg2($65,$00)
|
||||
setreg2($66,$00)
|
||||
setreg2($68,$00)
|
||||
setreg2($69,$00)
|
||||
setreg2($6a,$00)
|
||||
setreg2($6c,$00)
|
||||
setreg2($6d,$00)
|
||||
setreg2($6e,$00)
|
||||
|
||||
setreg($70,$00) ; ch 1-3 sustain rate
|
||||
setreg($71,$00)
|
||||
setreg($72,$00)
|
||||
setreg($74,$00)
|
||||
setreg($75,$00)
|
||||
setreg($76,$00)
|
||||
setreg($78,$00)
|
||||
setreg($79,$00)
|
||||
setreg($7a,$00)
|
||||
setreg($7c,$00)
|
||||
setreg($7d,$00)
|
||||
setreg($7e,$00)
|
||||
|
||||
setreg2($70,$00) ; ch 4-6 sustain rate
|
||||
setreg2($71,$00)
|
||||
setreg2($72,$00)
|
||||
setreg2($74,$00)
|
||||
setreg2($75,$00)
|
||||
setreg2($76,$00)
|
||||
setreg2($78,$00)
|
||||
setreg2($79,$00)
|
||||
setreg2($7a,$00)
|
||||
setreg2($7c,$00)
|
||||
setreg2($7d,$00)
|
||||
setreg2($7e,$00)
|
||||
|
||||
setreg($80,$00) ; ch 1-3 release rate and sustain level
|
||||
setreg($81,$00)
|
||||
setreg($82,$00)
|
||||
setreg($84,$00)
|
||||
setreg($85,$00)
|
||||
setreg($86,$00)
|
||||
setreg($88,$00)
|
||||
setreg($89,$00)
|
||||
setreg($8a,$00)
|
||||
setreg($8c,$00)
|
||||
setreg($8d,$00)
|
||||
setreg($8e,$00)
|
||||
|
||||
setreg2($80,$00) ; ch 4-6 release rate and sustain level
|
||||
setreg2($81,$00)
|
||||
setreg2($82,$00)
|
||||
setreg2($84,$00)
|
||||
setreg2($85,$00)
|
||||
setreg2($86,$00)
|
||||
setreg2($88,$00)
|
||||
setreg2($89,$00)
|
||||
setreg2($8a,$00)
|
||||
setreg2($8c,$00)
|
||||
setreg2($8d,$00)
|
||||
setreg2($8e,$00)
|
||||
|
||||
setreg($90,$00) ; ch 1-3 ssg-eg
|
||||
setreg($91,$00)
|
||||
setreg($92,$00)
|
||||
setreg($94,$00)
|
||||
setreg($95,$00)
|
||||
setreg($96,$00)
|
||||
setreg($98,$00)
|
||||
setreg($99,$00)
|
||||
setreg($9a,$00)
|
||||
setreg($9c,$00)
|
||||
setreg($9d,$00)
|
||||
setreg($9e,$00)
|
||||
|
||||
setreg2($90,$00) ; ch 4-6 ssg-eg
|
||||
setreg2($91,$00)
|
||||
setreg2($92,$00)
|
||||
setreg2($94,$00)
|
||||
setreg2($95,$00)
|
||||
setreg2($96,$00)
|
||||
setreg2($98,$00)
|
||||
setreg2($99,$00)
|
||||
setreg2($9a,$00)
|
||||
setreg2($9c,$00)
|
||||
setreg2($9d,$00)
|
||||
setreg2($9e,$00)
|
||||
|
||||
setreg($a0,$00) ; ch 1-3 frequency
|
||||
setreg($a1,$00)
|
||||
setreg($a2,$00)
|
||||
setreg($a4,$00)
|
||||
setreg($a5,$00)
|
||||
setreg($a6,$00)
|
||||
; setreg($a8,$00) ; ch 3 special mode
|
||||
; setreg($a9,$00)
|
||||
; setreg($aa,$00)
|
||||
; setreg($ac,$00)
|
||||
; setreg($ad,$00)
|
||||
; setreg($ae,$00)
|
||||
|
||||
setreg2($a0,$00) ; ch 4-6 frequency
|
||||
setreg2($a1,$00)
|
||||
setreg2($a2,$00)
|
||||
setreg2($a4,$00)
|
||||
setreg2($a5,$00)
|
||||
setreg2($a6,$00)
|
||||
; setreg2($a8,$00) ; ch 3 special mode
|
||||
; setreg2($a9,$00)
|
||||
; setreg2($aa,$00)
|
||||
; setreg2($ac,$00)
|
||||
; setreg2($ad,$00)
|
||||
; setreg2($ae,$00)
|
||||
|
||||
setreg($b0,$00) ; ch 1-3 algorith + feedback
|
||||
setreg($b1,$00)
|
||||
setreg($b2,$00)
|
||||
setreg2($b0,$00) ; ch 4-6 algorith + feedback
|
||||
setreg2($b1,$00)
|
||||
setreg2($b2,$00)
|
||||
|
||||
#endif
|
||||
|
||||
SKIP3: RET
|
||||
SKIP3: LD A,(IX+0) ; For YM2151 ... Unimplemented
|
||||
AND %11000000
|
||||
JP Z,SKIP4
|
||||
|
||||
; MUTE YM2151
|
||||
|
||||
SKIP4 RET
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Hardware specific routines.
|
||||
@@ -609,18 +948,21 @@ FASTIO:
|
||||
; Strings and constants.
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
MSG_WELC: .DB "VGM Player for RomWBW v0.2, 27-Nov-2021",CR,LF
|
||||
MSG_WELC: .DB "VGM Player for RomWBW v0.3, 2-Jul-2022",CR,LF
|
||||
; .DB "J.B. Langston/Marco Maccaferri/Phil Summers",CR,LF
|
||||
.DB 0
|
||||
MSG_BADF: .DB "Not a VGM file",CR,LF,0
|
||||
MSG_PO .DB "Played on : ",0
|
||||
MSG_YM: .DB "xYM-2612 ",0
|
||||
MSG_YM2612: .DB "xYM-2612 ",0
|
||||
MSG_SN: .DB "xSN76489 ",0
|
||||
MSG_AY: .DB "xAY-3-8910 ",0
|
||||
MSG_UNK .DB "xUnsupported device encountered", CR, LF, 0
|
||||
MSG_YM2151: .DB "xYM-2151 ",0
|
||||
MSG_UNK: .DB "xUnsupported device encountered", CR, LF, 0
|
||||
MSG_EXIT: .DB "FINISHED.",CR,LF,0
|
||||
MSG_NOFILE: .DB "File not found", CR, LF, 0
|
||||
MSG_MEM: .DB "File to big", CR, LF, 0
|
||||
MSG_TITLE: .DB " from: ",0
|
||||
MSG_TRACK .DB "Playing: ",0
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; Variables
|
||||
@@ -629,7 +971,8 @@ MSG_MEM: .DB "File to big", CR, LF, 0
|
||||
VGMPOS .DW 0
|
||||
VGMDLY .DW 0
|
||||
VGMUNK_F .DB 0 ; Flag for unknown device
|
||||
VGM_DEV .DB %00000000 ; UUYYAASS
|
||||
VGM_DEV .DB %00000000 ; yyYYAASS
|
||||
.DB %00000000 ; Unimplemented device flags
|
||||
|
||||
OLDSTACK .DW 0 ; original stack pointer
|
||||
.DS 40H ; space for stack
|
||||
|
||||
@@ -30,7 +30,7 @@ zcpr33n.rel zcpr33t.rel:
|
||||
|
||||
all:: $(HD0IMG)
|
||||
|
||||
clobber::
|
||||
clean::
|
||||
@rm -f $(HD0IMG)
|
||||
|
||||
%.img: zcpr33n.rel zcpr33t.rel
|
||||
|
||||
@@ -432,6 +432,8 @@ WBOOT:
|
||||
#ENDIF
|
||||
;
|
||||
#IFDEF PLTUNA
|
||||
LD SP,STACK ; STACK FOR INITIALIZATION
|
||||
|
||||
; RESTORE COMMAND PROCESSOR FROM UNA BIOS CACHE
|
||||
LD BC,$01FB ; UNA FUNC = SET BANK
|
||||
LD DE,(BNKBIOS) ; UBIOS_PAGE (SEE PAGES.INC)
|
||||
@@ -1626,6 +1628,7 @@ LBA_IO:
|
||||
;
|
||||
DSK_IO2:
|
||||
PUSH BC ; SAVE INCOMING FUNCTION, UNIT
|
||||
RES 7,D ; CLEAR LBA BIT FOR UNA
|
||||
LD B,C ; UNIT TO B
|
||||
LD C,$41 ; UNA SET LBA
|
||||
RST 08 ; CALL UNA
|
||||
|
||||
BIN
Source/CPM22/License.pdf
Normal file
BIN
Source/CPM22/License.pdf
Normal file
Binary file not shown.
BIN
Source/CPM3/License.pdf
Normal file
BIN
Source/CPM3/License.pdf
Normal file
Binary file not shown.
@@ -13,6 +13,7 @@ OTHERS = cpmldr.rel biosldr.rel cpm3res.sys cpm3bnk.sys loader.bin cpmldr.bin
|
||||
OTHERS += biosldrc.rel biosldrd.rel
|
||||
NODELETE = ccp.com gencpm.com genres.dat genbnk.dat bdos3.spr bnkbdos3.spr resbdos3.spr
|
||||
NODELETE += readme.1st cpm3fix.pat
|
||||
NODIFF = zpmbios3
|
||||
|
||||
DEST = ../../Binary/CPM3
|
||||
TOOLS = ../../Tools
|
||||
|
||||
@@ -4,7 +4,7 @@ setlocal
|
||||
if "%1" == "dist" goto :dist
|
||||
|
||||
::
|
||||
:: Build [<platform> [<config> [<romsize> [<romname>]]]]
|
||||
:: Build [<platform> [<config> [<romname>]]]
|
||||
::
|
||||
|
||||
set TOOLS=../../Tools
|
||||
@@ -28,11 +28,21 @@ PowerShell -ExecutionPolicy Unrestricted .\Build.ps1 %* || exit /b
|
||||
::
|
||||
:: Below, we process the command file created by the PowerShell script.
|
||||
:: This sets the environment variables: Platform, Config, ROMName,
|
||||
:: ROMSize, & CPUType.
|
||||
:: & CPUType.
|
||||
::
|
||||
|
||||
call build_env.cmd
|
||||
|
||||
::
|
||||
:: Create a small app that is used to export key build variables of the build.
|
||||
:: Then run the app to output a file with the variables. Finally, read the
|
||||
:: file into variables usable in this batch file.
|
||||
::
|
||||
|
||||
tasm -t80 -g3 -dCMD hbios_env.asm hbios_env.com hbios_env.lst || exit /b
|
||||
zxcc hbios_env >hbios_env.cmd
|
||||
call hbios_env.cmd
|
||||
|
||||
::
|
||||
:: Start of the actual build process for a given ROM.
|
||||
::
|
||||
@@ -183,34 +193,34 @@ goto :eof
|
||||
|
||||
:dist
|
||||
|
||||
call Build SBC std 512 || exit /b
|
||||
call Build SBC simh 512 || exit /b
|
||||
call Build MBC std 512 || exit /b
|
||||
call Build ZETA std 512 || exit /b
|
||||
call Build ZETA2 std 512 || exit /b
|
||||
call Build N8 std 512 || exit /b
|
||||
call Build MK4 std 512 || exit /b
|
||||
call Build RCZ80 std 512 || exit /b
|
||||
call Build RCZ80 skz 512 || exit /b
|
||||
call Build RCZ80 kio 512 || exit /b
|
||||
call Build RCZ80 mt 512 || exit /b
|
||||
call Build RCZ80 duart 512 || exit /b
|
||||
call Build RCZ80 zrc 512 || exit /b
|
||||
call Build RCZ80 zrc_ram 0 || exit /b
|
||||
call Build RCZ180 ext 512 || exit /b
|
||||
call Build RCZ180 nat 512 || exit /b
|
||||
call Build RCZ280 ext 512 || exit /b
|
||||
call Build RCZ280 nat 512 || exit /b
|
||||
call Build RCZ280 nat_zz 512 || exit /b
|
||||
call Build RCZ280 nat_zzr 256 || exit /b
|
||||
call Build SCZ180 126 512 || exit /b
|
||||
call Build SCZ180 130 512 || exit /b
|
||||
call Build SCZ180 131 512 || exit /b
|
||||
call Build SCZ180 140 512 || exit /b
|
||||
call Build EZZ80 std 512 || exit /b
|
||||
call Build EZZ80 tz80 512 || exit /b
|
||||
call Build DYNO std 512 || exit /b
|
||||
call Build UNA std 512 || exit /b
|
||||
call Build RPH std 512 || exit /b
|
||||
call Build SBC std || exit /b
|
||||
call Build SBC simh || exit /b
|
||||
call Build MBC std || exit /b
|
||||
call Build ZETA std || exit /b
|
||||
call Build ZETA2 std || exit /b
|
||||
call Build N8 std || exit /b
|
||||
call Build MK4 std || exit /b
|
||||
call Build RCZ80 std || exit /b
|
||||
call Build RCZ80 skz || exit /b
|
||||
call Build RCZ80 kio || exit /b
|
||||
call Build RCZ80 mt || exit /b
|
||||
call Build RCZ80 duart || exit /b
|
||||
call Build RCZ80 zrc || exit /b
|
||||
call Build RCZ80 zrc_ram || exit /b
|
||||
call Build RCZ180 ext || exit /b
|
||||
call Build RCZ180 nat || exit /b
|
||||
call Build RCZ280 ext || exit /b
|
||||
call Build RCZ280 nat || exit /b
|
||||
call Build RCZ280 nat_zz || exit /b
|
||||
call Build RCZ280 nat_zzr || exit /b
|
||||
call Build SCZ180 126 || exit /b
|
||||
call Build SCZ180 130 || exit /b
|
||||
call Build SCZ180 131 || exit /b
|
||||
call Build SCZ180 140 || exit /b
|
||||
call Build EZZ80 std || exit /b
|
||||
call Build EZZ80 tz80 || exit /b
|
||||
call Build DYNO std || exit /b
|
||||
call Build UNA std || exit /b
|
||||
call Build RPH std || exit /b
|
||||
|
||||
goto :eof
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
param([string]$Platform = "", [string]$Config = "", [int]$RomSize = 512, [string]$ROMName = "")
|
||||
param([string]$Platform = "", [string]$Config = "", [string]$ROMName = "")
|
||||
|
||||
# If a PowerShell exception occurs, just stop the script immediately.
|
||||
$ErrorAction = 'Stop'
|
||||
@@ -67,19 +67,6 @@ while ($true)
|
||||
$Config = (Read-Host -prompt "Configuration").Trim()
|
||||
}
|
||||
|
||||
#
|
||||
# Establish the ROM size (in KB). It may have been passed in on the command line. Validate
|
||||
# $RomSize and loop requesting a new value as long as it is not valid. The valid ROM sizes
|
||||
# are just hard-coded for now. The ROM size does nothing more than determine the size of the
|
||||
# ROM disk portion of the ROM image.
|
||||
#
|
||||
|
||||
while ($true)
|
||||
{
|
||||
if (($RomSize -eq 0) -or ($RomSize -eq 128) -or ($RomSize -eq 256) -or ($RomSize -eq 512) -or ($RomSize -eq 1024)) {break}
|
||||
$RomSize = (Read-Host -prompt "ROM Size [0|128|256|512|1024]").Trim()
|
||||
}
|
||||
|
||||
#
|
||||
# TASM should be invoked with the proper CPU type. Below, the CPU type is inferred
|
||||
# from the platform.
|
||||
@@ -103,7 +90,7 @@ while ($ROMName -eq "")
|
||||
}
|
||||
|
||||
# Current date/time is queried here to be subsequently imbedded in image
|
||||
$TimeStamp = '"' + (Get-Date -Format 'yyyy-MM-dd') + '"'
|
||||
$TimeStamp = (Get-Date -Format 'yyyy-MM-dd')
|
||||
|
||||
#
|
||||
# Since TASM has no mechanism to include files dynamically based on variables, a file
|
||||
@@ -115,9 +102,8 @@ $TimeStamp = '"' + (Get-Date -Format 'yyyy-MM-dd') + '"'
|
||||
@"
|
||||
; RomWBW Configured for ${Platform} ${Config}, $(Get-Date -Format "s")
|
||||
;
|
||||
#DEFINE TIMESTAMP ${TimeStamp}
|
||||
;
|
||||
ROMSIZE .EQU ${ROMSize}
|
||||
#DEFINE TIMESTAMP "${TimeStamp}"
|
||||
#DEFINE CONFIG "${Platform}_${Config}"
|
||||
;
|
||||
#INCLUDE "${ConfigFile}"
|
||||
;
|
||||
@@ -134,6 +120,5 @@ ROMSIZE .EQU ${ROMSize}
|
||||
set Platform=${Platform}
|
||||
set Config=${Config}
|
||||
set ROMName=${ROMName}
|
||||
set ROMSize=${ROMSize}
|
||||
set CPUType=${CPUType}
|
||||
"@ | Out-File "build_env.cmd" -Encoding ASCII
|
||||
|
||||
@@ -6,51 +6,42 @@ set -e
|
||||
export ROM_PLATFORM
|
||||
export ROM_CONFIG
|
||||
export ROMSIZE
|
||||
export CPUFAM
|
||||
|
||||
if [ "${ROM_PLATFORM}" == "dist" ] ; then
|
||||
echo "!!!DISTRIBUTION BUILD!!!"
|
||||
ROM_PLATFORM="DYNO"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="EZZ80"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="EZZ80"; ROM_CONFIG="tz80"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="MK4"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="N8"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="ext"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="nat"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="ext"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zz"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zzr"; ROMSIZE="256"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="kio"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="mt"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="duart"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="skz"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_ram"; ROMSIZE="0"; bash Build.sh
|
||||
ROM_PLATFORM="RPH"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SBC"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SBC"; ROM_CONFIG="simh"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="MBC"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="126"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="130"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="131"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="140"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="UNA"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="ZETA"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="ZETA2"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh
|
||||
ROM_PLATFORM="DYNO"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="EZZ80"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="EZZ80"; ROM_CONFIG="tz80"; bash Build.sh
|
||||
ROM_PLATFORM="MK4"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="N8"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="ext"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ180"; ROM_CONFIG="nat"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="ext"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zz"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zzr"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="kio"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="mt"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="duart"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="skz"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc"; bash Build.sh
|
||||
ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_ram"; bash Build.sh
|
||||
ROM_PLATFORM="RPH"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="SBC"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="SBC"; ROM_CONFIG="simh"; bash Build.sh
|
||||
ROM_PLATFORM="MBC"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="126"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="130"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="131"; bash Build.sh
|
||||
ROM_PLATFORM="SCZ180"; ROM_CONFIG="140"; bash Build.sh
|
||||
ROM_PLATFORM="UNA"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="ZETA"; ROM_CONFIG="std"; bash Build.sh
|
||||
ROM_PLATFORM="ZETA2"; ROM_CONFIG="std"; bash Build.sh
|
||||
exit
|
||||
fi
|
||||
|
||||
###if [ $1 == '-d' ] ; then
|
||||
### shift
|
||||
### diffdir=$1
|
||||
### shift
|
||||
### if [ -f $diffdir/build.inc ] ; then
|
||||
### timestamp=$(grep TIMESTAMP $diffdir/build.inc | awk '{print $3}' | tr -d '\015"')
|
||||
### echo diff build using $timestamp
|
||||
### fi
|
||||
###fi
|
||||
|
||||
# prompt if no match
|
||||
platforms=($(find Config -name \*.asm -print | \
|
||||
sed -e 's,Config/,,' -e 's/_.*$//' | sort -u))
|
||||
@@ -69,36 +60,41 @@ done
|
||||
|
||||
CONFIGFILE=Config/${ROM_PLATFORM}_${ROM_CONFIG}.asm
|
||||
|
||||
if [ -z "${ROMSIZE}" ] ; then
|
||||
ROMSIZE="512"
|
||||
fi
|
||||
|
||||
while [ ! '(' "${ROMSIZE}" = 1024 -o "${ROMSIZE}" = 512 -o "${ROMSIZE}" = 256 -o "${ROMSIZE}" = 128 -o "${ROMSIZE}" = 0 ')' ] ; do
|
||||
echo -n "Romsize :"
|
||||
read ROMSIZE
|
||||
done
|
||||
|
||||
if [ -z "${ROMNAME}" ] ; then
|
||||
ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG}
|
||||
fi
|
||||
|
||||
echo -e "\n\nBuilding $ROM_PLATFORM $ROM_CONFIG\n\n"
|
||||
|
||||
TIMESTAMP=$(date +%Y-%m-%d)
|
||||
|
||||
CONFIGFILE=Config/${ROM_PLATFORM}_${ROM_CONFIG}.asm
|
||||
if [ "$1" = "-d" ] ; then
|
||||
shift
|
||||
diffdir=$1
|
||||
shift
|
||||
if [ -f $diffdir/build.inc ] ; then
|
||||
timestamp=$(grep TIMESTAMP $diffdir/build.inc | awk '{print $3}' | tr -d '\015"')
|
||||
echo diff build using $timestamp
|
||||
fi
|
||||
fi
|
||||
|
||||
echo Building $ROMNAME for $ROM_PLATFORM $ROM_CONFIG $ROMSIZE
|
||||
CONFIGFILE=Config/${ROM_PLATFORM}_${ROM_CONFIG}.asm
|
||||
|
||||
cat <<- EOF > build.inc
|
||||
; RomWBW Configured for ${ROM_PLATFORM} ${ROM_CONFIG} ${TIMESTAMP}
|
||||
;
|
||||
#DEFINE TIMESTAMP "${TIMESTAMP}"
|
||||
;
|
||||
ROMSIZE .EQU ${ROMSIZE}
|
||||
#DEFINE CONFIG "${ROM_PLATFORM}_${ROM_CONFIG}"
|
||||
;
|
||||
#INCLUDE "${CONFIGFILE}"
|
||||
;
|
||||
EOF
|
||||
|
||||
make hbios_env.sh
|
||||
source hbios_env.sh
|
||||
|
||||
echo Creating ${ROMSIZE}K ROM named ${ROMNAME}.rom
|
||||
|
||||
export OBJECTS
|
||||
OBJECTS="${ROMNAME}.rom"
|
||||
if [ "${ROM_PLATFORM}" != "UNA" ] ; then
|
||||
|
||||
@@ -14,3 +14,4 @@ if exist *.sys del *.sys
|
||||
if exist build.inc del build.inc
|
||||
if exist font*.asm del font*.asm
|
||||
if exist build_env.cmd del build_env.cmd
|
||||
if exist hbios_env.cmd del hbios_env.cmd
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "TINYZ80"
|
||||
;
|
||||
#include "cfg_ezz80.asm"
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Multi Board Computer"
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_mbc.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZZ80MB"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "Config/RCZ280_nat.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZZRCC"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "Config/RCZ280_nat.asm"
|
||||
@@ -31,6 +29,7 @@
|
||||
CPUOSC .SET 14745600 ; CPU OSC FREQ IN MHZ
|
||||
;
|
||||
RAMSIZE .SET 256 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .SET 256 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .SET 256 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
;
|
||||
RAMLOC .SET 18 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014 (DUART)"
|
||||
;
|
||||
#include "Config/RCZ80_std.asm"
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014 (KIO)"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "Config/RCZ80_std.asm"
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014 (MT)"
|
||||
;
|
||||
#include "Config/RCZ80_std.asm"
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014 (SKZ)"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "Config/RCZ80_std.asm"
|
||||
|
||||
@@ -31,6 +31,7 @@ CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
|
||||
;
|
||||
RAMSIZE .SET 2048 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
MEMMGR .SET MM_ZRC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
|
||||
;
|
||||
MDROM .SET FALSE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SBC (simh)"
|
||||
;
|
||||
#include "cfg_sbc.asm"
|
||||
;
|
||||
INTMODE .SET 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SC126"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_scz180.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SC130"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_scz180.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SC131"
|
||||
;
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_scz180.asm"
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SC140"
|
||||
;
|
||||
#include "cfg_scz180.asm"
|
||||
;
|
||||
CPUOSC .SET 18432000 ; CPU OSC FREQ IN MHZ
|
||||
|
||||
@@ -1,30 +1,36 @@
|
||||
|
||||
MOREDIFF = camel80.bin game.bin hbios_rom.bin nascom.bin prefix.bin usrrom.bin \
|
||||
MOREDIFF = game.bin hbios_rom.bin nascom.bin usrrom.bin \
|
||||
dbgmon.bin hbios_app.bin imgpad2.bin osimg1.bin osimg2.bin romldr.bin \
|
||||
eastaegg.bin hbios_img.bin osimg.bin tastybasic.bin \
|
||||
game.bin updater.bin usrrom.bin
|
||||
eastaegg.bin hbios_img.bin osimg.bin game.bin updater.bin usrrom.bin
|
||||
|
||||
SUBDIRS =
|
||||
DEST = ../../Binary
|
||||
TOOLS =../../Tools
|
||||
OTHERS = *.img *.rom *.com *.upd *.bin *.z80 cpm.sys zsys.sys Build.inc font*.asm *.dat
|
||||
include $(TOOLS)/Makefile.inc
|
||||
OTHERS = *.img *.rom *.com *.upd *.bin *.z80 cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh
|
||||
|
||||
FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm fontcgac.asm fontcgau.asm
|
||||
# DIFFMAKE = 1
|
||||
|
||||
ifneq ($(findstring $(ROM_PLATFORM), N8 MK4 RCZ180 SCZ180 DYNO RPH),)
|
||||
TASM=$(BINDIR)/uz80as -t hd64180
|
||||
endif
|
||||
|
||||
ifneq ($(findstring $(ROM_PLATFORM), RCZ280),)
|
||||
TASM=$(BINDIR)/uz80as -t z280
|
||||
endif
|
||||
# DIFFPATH = $(DIFFTO)/Binary
|
||||
|
||||
ifeq ($(DIFFMAKE),1)
|
||||
DIFFBUILD := -d $(DIFFTO)/Source/HBIOS
|
||||
endif
|
||||
|
||||
DIFFPATH = $(DIFFTO)/Binary
|
||||
ifeq ($(OBJECTS),)
|
||||
start:
|
||||
chmod +x Build.sh
|
||||
bash Build.sh $(DIFFBUILD)
|
||||
endif
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm fontcgac.asm fontcgau.asm
|
||||
|
||||
ifeq ($(CPUFAM),2)
|
||||
TASM=$(BINDIR)/uz80as -t hd64180
|
||||
else ifeq ($(CPUFAM),3)
|
||||
TASM=$(BINDIR)/uz80as -t z280
|
||||
endif
|
||||
|
||||
DEPS=prereq dbgmon.bin romldr.bin nascom.bin tastybasic.bin game.bin eastaegg.bin updater.bin usrrom.bin imgpad2.bin
|
||||
|
||||
@@ -38,19 +44,15 @@ endif
|
||||
|
||||
ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG}
|
||||
|
||||
#$(info DEPS=$(DEPS))
|
||||
#$(info ROM_PLATFORM=$(ROM_PLATFORM))
|
||||
#$(info ROM_CONFIG=$(ROM_CONFIG))
|
||||
#$(info ROMSIZE=$(ROMSIZE))
|
||||
#$(info ROMNAME=$(ROMNAME))
|
||||
# $(info DEPS=$(DEPS))
|
||||
# $(info ROM_PLATFORM=$(ROM_PLATFORM))
|
||||
# $(info ROM_CONFIG=$(ROM_CONFIG))
|
||||
# $(info ROMSIZE=$(ROMSIZE))
|
||||
# $(info ROMNAME=$(ROMNAME))
|
||||
# $(info CPUFAM=$(CPUFAM))
|
||||
# $(info TASM=$(TASM))
|
||||
|
||||
all::
|
||||
if [ -z "$(OBJECTS)" ] ; then \
|
||||
chmod +x Build.sh ; \
|
||||
bash Build.sh ; \
|
||||
fi
|
||||
|
||||
$(ROMNAME).rom $(ROMNAME).com $(ROMNAME).img &: $(ROMDEPS)
|
||||
$(OBJECTS) : $(ROMDEPS)
|
||||
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin ../CPM22/cpm_$(BIOS).bin >osimg.bin
|
||||
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin >osimg_small.bin
|
||||
if [ $(ROM_PLATFORM) != UNA ] ; then \
|
||||
@@ -98,6 +100,12 @@ hbios_app.bin: hbios.asm build.inc $(DEPS)
|
||||
hbios_img.bin: hbios.asm build.inc $(DEPS)
|
||||
$(TASM) -dIMGBOOT hbios.asm hbios_img.bin hbios_img.lst
|
||||
|
||||
hbios_env.com: hbios_env.asm build.inc
|
||||
$(TASM) -dBASH hbios_env.asm hbios_env.com hbios_env.lst
|
||||
|
||||
hbios_env.sh: hbios_env.com
|
||||
$(ZXCC) hbios_env.com >hbios_env.sh
|
||||
|
||||
romldr.bin: build.inc
|
||||
dbgmon.bin: build.inc
|
||||
nascom.bin: build.inc
|
||||
|
||||
@@ -280,6 +280,8 @@ ANSI_STSTR: ; STATE == STRING DATA
|
||||
;==================================================================================================
|
||||
;
|
||||
ANSI_C0DISP:
|
||||
CP $07 ; BEL
|
||||
JP Z,ANSI_BEL
|
||||
CP $08 ; BS: BACKSPACE
|
||||
JP Z,ANSI_BS
|
||||
CP $09 ; HT: TAB
|
||||
@@ -615,6 +617,9 @@ ANSI_FF:
|
||||
CALL ANSI_VDADISP ; PERFORM FILL
|
||||
JP ANSI_XY ; HOME CURSOR AND RETURN
|
||||
;
|
||||
ANSI_BEL:
|
||||
JP SND_BEEP ; BEEP THE SPEAKER
|
||||
;
|
||||
ANSI_BS:
|
||||
LD A,(ANSI_COL) ; GET CURRENT COLUMN
|
||||
DEC A ; BACK IT UP BY ONE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "DYNO"
|
||||
#DEFINE PLATFORM_NAME "Dyno", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "EASYZ80"
|
||||
#DEFINE PLATFORM_NAME "Easy-Z80", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -225,6 +226,9 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
PIOENABLE .EQU FALSE ; PIO: ENABLE ZILOG PIO DRIVER (PIO.ASM)
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPT0BASE .EQU $E4 ; LPT 0: REGISTERS BASE ADR
|
||||
LPT1BASE .EQU $E8 ; LPT 1: REGISTERS BASE ADR
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
; USED ONLY AS A REFERENCE TO HELP MANAGE THE FULL SET OF POSSIBLE SETTINGS AND
|
||||
; KEEP THINGS CONSISTENT.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ROMWBW"
|
||||
#DEFINE PLATFORM_NAME "RomWBW", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -30,6 +30,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_NONE ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
@@ -269,7 +270,7 @@ PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE1BASE .EQU $20 ; PPIDE 1: PPI REGISTERS BASE ADR
|
||||
PPIDE1A8BIT .EQU FALSE ; PPIDE 1A (MASTER): 8 BIT XFER
|
||||
PPIDE1B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE2BASE .EQU $44 ; PPIDE 2: PPI REGISTERS BASE ADR
|
||||
PPIDE2BASE .EQU $14 ; PPIDE 2: PPI REGISTERS BASE ADR
|
||||
PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Multi Board Computer"
|
||||
#DEFINE PLATFORM_NAME "Nhyodyne", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_MBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -198,7 +199,7 @@ PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE1BASE .EQU $20 ; PPIDE 1: PPI REGISTERS BASE ADR
|
||||
PPIDE1A8BIT .EQU FALSE ; PPIDE 1A (MASTER): 8 BIT XFER
|
||||
PPIDE1B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE2BASE .EQU $44 ; PPIDE 2: PPI REGISTERS BASE ADR
|
||||
PPIDE2BASE .EQU $14 ; PPIDE 2: PPI REGISTERS BASE ADR
|
||||
PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "MARK IV"
|
||||
#DEFINE PLATFORM_NAME "Mark IV", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
@@ -191,7 +192,7 @@ IDE2B8BIT .EQU FALSE ; IDE 2B (MASTER): 8 BIT XFER
|
||||
PPIDEENABLE .EQU FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
PPIDETRACE .EQU 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPIDECNT .EQU 2 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP
|
||||
PPIDE0BASE .EQU $44 ; PPIDE 0: PPI REGISTERS BASE ADR
|
||||
PPIDE0BASE .EQU $14 ; PPIDE 0: PPI REGISTERS BASE ADR
|
||||
PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE1BASE .EQU $20 ; PPIDE 1: PPI REGISTERS BASE ADR
|
||||
@@ -227,6 +228,9 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPT0BASE .EQU $E8 ; LPT 0: REGISTERS BASE ADR
|
||||
LPT1BASE .EQU $EC ; LPT 1: REGISTERS BASE ADR
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "N8"
|
||||
#DEFINE PLATFORM_NAME "N8", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_N8 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
#DEFINE PLATFORM_NAME "RC2014", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
#DEFINE PLATFORM_NAME "RC2014", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
#DEFINE PLATFORM_NAME "RC2014", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -245,6 +246,9 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPT0BASE .EQU $E4 ; LPT 0: REGISTERS BASE ADR
|
||||
LPT1BASE .EQU $E8 ; LPT 1: REGISTERS BASE ADR
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RHYOPHYRE"
|
||||
#DEFINE PLATFORM_NAME "Rhyophyre", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_RPH ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SBC"
|
||||
#DEFINE PLATFORM_NAME "Single Board Computer", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -198,7 +199,7 @@ PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE1BASE .EQU $20 ; PPIDE 1: PPI REGISTERS BASE ADR
|
||||
PPIDE1A8BIT .EQU FALSE ; PPIDE 1A (MASTER): 8 BIT XFER
|
||||
PPIDE1B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE2BASE .EQU $44 ; PPIDE 2: PPI REGISTERS BASE ADR
|
||||
PPIDE2BASE .EQU $14 ; PPIDE 2: PPI REGISTERS BASE ADR
|
||||
PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
@@ -225,6 +226,9 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPT0BASE .EQU $E8 ; LPT 0: REGISTERS BASE ADR
|
||||
LPT1BASE .EQU $EC ; LPT 1: REGISTERS BASE ADR
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SCZ180"
|
||||
#DEFINE PLATFORM_NAME "Small Computer", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
|
||||
|
||||
@@ -11,11 +11,12 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "UNA"
|
||||
#DEFINE PLATFORM_NAME "UNA", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "../UBIOS/ubios.inc"
|
||||
;
|
||||
;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
@@ -26,6 +27,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
;
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZETA"
|
||||
#DEFINE PLATFORM_NAME "Zeta", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZETA V2"
|
||||
#DEFINE PLATFORM_NAME "Zeta 2", " [", CONFIG, "]"
|
||||
;
|
||||
#INCLUDE "hbios.inc"
|
||||
;
|
||||
@@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
|
||||
@@ -118,7 +118,7 @@ DS2d8k .EQU %10101011 ; 2 DIODES 8K RESISTOR
|
||||
;
|
||||
#IF (DSRTCMODE == DSRTCMODE_MFPIC)
|
||||
;
|
||||
DSRTC_IO .EQU $43 ; RTC PORT ON MF/PIC
|
||||
DSRTC_IO .EQU $13 ; RTC PORT ON MF/PIC
|
||||
;
|
||||
DSRTC_DATA .EQU %00000001 ; BIT 0 IS RTC DATA OUT
|
||||
DSRTC_CLK .EQU %00000100 ; BIT 2 IS RTC CLOCK (CLK)
|
||||
|
||||
@@ -219,6 +219,7 @@ RTCDEF .SET RTCDEF | %00001000 ; INITIAL SPEED LOW
|
||||
;
|
||||
.FILL (000H - $),0FFH ; RST 0
|
||||
JP HB_START
|
||||
.DB 0 ; SIG PTR STARTS AT $0004
|
||||
.DW ROM_SIG
|
||||
.FILL (008H - $),0FFH ; RST 8
|
||||
JP HB_INVOKE ; INVOKE HBIOS FUNCTION
|
||||
@@ -2827,42 +2828,7 @@ INITSYS4:
|
||||
#ENDIF
|
||||
;
|
||||
#IFDEF TESTING
|
||||
;
|
||||
; ROUTINE TO BEEP THE DEAULT SOUND UNIT (NOT FINISHED)
|
||||
; NEED TO CHECK FOR EXISTENCE OF SOUND UNIT 0
|
||||
; NEED TO TEST AGAINST ALL SOUND DRIVERS
|
||||
; CAN SPEAKER DRIVER BE MODIFIED TO PLAY ARBITRARY DURATION?
|
||||
; WHICH CHANNEL SHOULD BE USED? IS THERE A GOOD DEFAULT CHANNEL?
|
||||
;
|
||||
SNDUNIT .EQU 0
|
||||
;
|
||||
HB_BEEP:
|
||||
LD B,$50 ; SOUND RESET FUNCTION
|
||||
LD C,SNDUNIT ; SOUND UNIT NUMBER
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
LD B,$51 ; VOLUME
|
||||
LD C,SNDUNIT ; SOUND UNIT NUMBER
|
||||
LD L,$FF ; MAX
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
LD B,$53 ; SELECT NOTE
|
||||
LD C,SNDUNIT ; SOUND UNIT NUMBER
|
||||
;LD HL,0 ; A0#
|
||||
LD HL,200 ; C4
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
;LD B,$56 ; DURATION
|
||||
;LD C,SNDUNIT ; SOUND UNIT NUMBER
|
||||
;LD HL,500 ; 1/2 SECOND
|
||||
;CALL SND_DISPATCH ; DO IT
|
||||
LD B,$54 ; PLAY SOUND
|
||||
LD C,SNDUNIT ; SOUND UNIT NUMBER
|
||||
LD D,1 ; CHANNEL 0
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
LD DE,15625 ; PLAY FOR 1/4 SECOND
|
||||
CALL VDELAY
|
||||
LD B,$50 ; SOUND RESET FUNCTION
|
||||
LD C,SNDUNIT ; SOUND UNIT NUMBER
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
;
|
||||
CALL SND_BEEP
|
||||
#ENDIF
|
||||
;
|
||||
#IFNDEF ROMBOOT
|
||||
@@ -3749,7 +3715,7 @@ SND_ADDENT:
|
||||
; WORD UNIT SPECIFIC DATA (TYPICALLY A DEVICE INSTANCE DATA ADDRESS)
|
||||
;
|
||||
SND_FNCNT .EQU 8 ; NUMBER OF SND FUNCS (FOR RANGE CHECK)
|
||||
SND_MAX .EQU 4 ; UP TO 3 UNITS
|
||||
SND_MAX .EQU 4 ; UP TO 4 UNITS
|
||||
SND_SIZ .EQU SND_MAX * 4 ; EACH ENTRY IS 4 BYTES
|
||||
;
|
||||
.DB SND_FNCNT ; SND FUNCTION COUNT (FOR RANGE CHECK)
|
||||
@@ -3758,6 +3724,49 @@ SND_CNT .DB 0 ; ENTRY COUNT PREFIX
|
||||
SND_TBL .FILL SND_SIZ,0 ; SPACE FOR ENTRIES
|
||||
;
|
||||
;==================================================================================================
|
||||
; SPEAKER BEEP ROUTINE
|
||||
;==================================================================================================
|
||||
;
|
||||
; ROUTINE TO BEEP THE DEAULT SOUND UNIT
|
||||
; NEED TO CHECK FOR EXISTENCE OF SOUND UNIT
|
||||
; WHICH CHANNEL SHOULD BE USED? IS THERE A GOOD DEFAULT CHANNEL?
|
||||
;
|
||||
SND_BEEP:
|
||||
; CHECK FOR AT LEAST 1 SOUND DEVICE
|
||||
LD A,(SND_CNT) ; GET SOUND UNIT COUNT
|
||||
OR A ; CHECK FOR ZERO
|
||||
RET Z ; BAIL OUT IF NO SOUND UNITS
|
||||
|
||||
; PLAY A BEEP ON SOUND DEVICE UNIT 0
|
||||
LD B,$50 ; SOUND RESET FUNCTION
|
||||
LD C,0 ; SOUND UNIT NUMBER
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
LD B,$51 ; VOLUME
|
||||
LD C,0 ; SOUND UNIT NUMBER
|
||||
LD L,$FF ; MAX
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
LD B,$53 ; SELECT NOTE
|
||||
LD C,0 ; SOUND UNIT NUMBER
|
||||
;LD HL,0 ; A0#
|
||||
LD HL,244 ; B5 (CLOSE TO 1 KHZ)
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
;LD B,$56 ; DURATION
|
||||
;LD C,0 ; SOUND UNIT NUMBER
|
||||
;LD HL,500 ; 1/2 SECOND
|
||||
;CALL SND_DISPATCH ; DO IT
|
||||
LD B,$54 ; PLAY SOUND
|
||||
LD C,0 ; SOUND UNIT NUMBER
|
||||
LD D,0 ; CHANNEL 0
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
LD DE,15625 ; PLAY FOR 1/4 SECOND
|
||||
CALL VDELAY ; WAIT WHILE TONE IS PLAYED
|
||||
;CALL LDELAY ; LET SOUND PLAY 1/2 SECOND
|
||||
LD B,$50 ; SOUND RESET FUNCTION
|
||||
LD C,0 ; SOUND UNIT NUMBER
|
||||
CALL SND_DISPATCH ; DO IT
|
||||
RET ; DONE
|
||||
;
|
||||
;==================================================================================================
|
||||
; SYSTEM FUNCTION DISPATCHER
|
||||
;==================================================================================================
|
||||
;
|
||||
|
||||
82
Source/HBIOS/hbios_env.asm
Normal file
82
Source/HBIOS/hbios_env.asm
Normal file
@@ -0,0 +1,82 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; HBIOS ENVIRONMENT CONFIG VALUE EXPORT TOOL
|
||||
;==================================================================================================
|
||||
;
|
||||
; Do we need a private stack???
|
||||
;
|
||||
#include "std.asm"
|
||||
;
|
||||
; Macro to make it simple to print a config value
|
||||
;
|
||||
#define prtval(tag,val) \
|
||||
#defcont \ call PREFIX
|
||||
#defcont \ call PRTSTRD
|
||||
#defcont \ .text tag
|
||||
#defcont \ call PRTEQ
|
||||
#defcont \ ld hl,val
|
||||
#defcont \ call PRTDEC
|
||||
#defcont \ call EOL
|
||||
;
|
||||
; Program starts here
|
||||
;
|
||||
.org $100 ; Normal CP/M start address
|
||||
;
|
||||
; Print all desired config values...
|
||||
;
|
||||
prtval("ROMSIZE$", ROMSIZE)
|
||||
prtval("CPUFAM$", CPUFAM)
|
||||
;
|
||||
ret
|
||||
;
|
||||
; Output correct prefix for command/shell
|
||||
;
|
||||
PREFIX:
|
||||
#ifdef CMD
|
||||
call PRTSTRD
|
||||
.text "set $"
|
||||
#endif
|
||||
ret
|
||||
;
|
||||
; Output an equal sign
|
||||
;
|
||||
PRTEQ:
|
||||
ld a,'='
|
||||
call COUT
|
||||
ret
|
||||
;
|
||||
; Output end-of-line. Handles differences between
|
||||
; DOS/Windows and Unix.
|
||||
;
|
||||
EOL:
|
||||
#ifdef CMD
|
||||
ld a,13
|
||||
call COUT
|
||||
#endif
|
||||
ld a,10
|
||||
call COUT
|
||||
ret
|
||||
|
||||
;
|
||||
; Print a single character from register A.
|
||||
; This routine is required by the utility routines included below.
|
||||
;
|
||||
COUT:
|
||||
push af
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
ld e,a
|
||||
ld c,2
|
||||
call $0005
|
||||
pop hl
|
||||
pop de
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; Include the utility routines
|
||||
;
|
||||
#include "util.asm"
|
||||
;
|
||||
.end
|
||||
@@ -1246,19 +1246,31 @@ IDE_INITDEV00:
|
||||
CALL DUMP_BUFFER ; DUMP IT IF DEBUGGING
|
||||
#ENDIF
|
||||
;
|
||||
XOR A
|
||||
LD (IY+IDE_MED),0 ; CLEAR FLAGS
|
||||
|
||||
; DETERMINE IF CF DEVICE
|
||||
LD HL,HB_WRKBUF ; FIRST WORD OF IDENTIFY DATA HAS CF FLAG
|
||||
LD A,$8A ; FIRST BYTE OF MARKER IS $8A
|
||||
CP (HL) ; COMPARE
|
||||
JR NZ,IDE_INITDEV1 ; IF NO MATCH, NOT CF
|
||||
INC HL
|
||||
LD A,$84 ; SECOND BYTE OF MARKER IS $84
|
||||
CP (HL) ; COMPARE
|
||||
JR NZ,IDE_INITDEV1 ; IF NOT MATCH, NOT CF
|
||||
SET 0,(IY+IDE_MED) ; SET FLAGS BIT FOR CF MEDIA
|
||||
;
|
||||
; DETERMINE IF CF DEVICE BY TESTING FOR CF CARD SIGNATURES
|
||||
; IN THEORY, THERE ARE SOME OTHER POSSIBLE VARIATIONS, BUT
|
||||
; THEY ARE NOT RECOMMENDED BY THE CF CARD SPEC AND MIGHT
|
||||
; OVERLAP WITH "REAL" HARD DISK SIGNATURES. I HAVE NEVER
|
||||
; SEEN A CF CARD THAT DID NOT USE ONE OF THE BELOW.
|
||||
; CREDIT TO LASZLO SZOLNOKI
|
||||
LD BC,$848A ; STANDARD CF CARD SIGNATURE
|
||||
CALL IDE_INITDEV000 ; TEST & SET
|
||||
LD BC,$044A ; ALT SIG FOR NON-REMOVABLE
|
||||
CALL IDE_INITDEV000 ; TEST & SET
|
||||
LD BC,$0040 ; ALT SIG FOR NON-REMOVABLE
|
||||
CALL IDE_INITDEV000 ; TEST & SET
|
||||
JR IDE_INITDEV1 ; CONTINUE INIT
|
||||
;
|
||||
IDE_INITDEV000:
|
||||
; CHECK IF FIRST WORD OF IDENTIFY DATA MATCHES VALUE IN BC
|
||||
; AND SET CF FLAG IF SO
|
||||
LD HL,(HB_WRKBUF) ; FIRST WORD OF IDENTIFY DATA
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,BC ; COMPARE
|
||||
RET NZ ; ABORT IF NOT EQUAL
|
||||
SET 0,(IY+IDE_MED) ; ELSE SET FLAGS BIT FOR CF MEDIA
|
||||
RET ; AND RETURN
|
||||
;
|
||||
IDE_INITDEV1:
|
||||
; DETERMINE IF LBA CAPABLE
|
||||
|
||||
@@ -221,7 +221,7 @@ PIO_PROBE2:
|
||||
RET
|
||||
;
|
||||
PIO_PROBECHIP:
|
||||
; PIO IS HRD TO DETECT DEFINITIVELY. BEST I CAN THINK
|
||||
; PIO IS HARD TO DETECT DEFINITIVELY. BEST I CAN THINK
|
||||
; OF IS TO CHECK THE VALUE READ FROM THE CONTROL PORT.
|
||||
; IT APPEARS TO BE ZERO CONSISTENTLY IF CHIP EXISTS.
|
||||
IN A,(C) ; GET VALUE
|
||||
|
||||
@@ -1273,16 +1273,29 @@ PPIDE_INITDEV00:
|
||||
;
|
||||
LD (IY+PPIDE_MED),0 ; CLEAR MEDIA FLAGS
|
||||
;
|
||||
; DETERMINE IF CF DEVICE
|
||||
LD HL,HB_WRKBUF ; FIRST WORD OF IDENTIFY DATA HAS CF FLAG
|
||||
LD A,$8A ; FIRST BYTE OF MARKER IS $8A
|
||||
CP (HL) ; COMPARE
|
||||
JR NZ,PPIDE_INITDEV1 ; IF NO MATCH, NOT CF
|
||||
INC HL
|
||||
LD A,$84 ; SECOND BYTE OF MARKER IS $84
|
||||
CP (HL) ; COMPARE
|
||||
JR NZ,PPIDE_INITDEV1 ; IF NOT MATCH, NOT CF
|
||||
SET 0,(IY+PPIDE_MED) ; SET FLAGS BIT FOR CF MEDIA
|
||||
; DETERMINE IF CF DEVICE BY TESTING FOR CF CARD SIGNATURES
|
||||
; IN THEORY, THERE ARE SOME OTHER POSSIBLE VARIATIONS, BUT
|
||||
; THEY ARE NOT RECOMMENDED BY THE CF CARD SPEC AND MIGHT
|
||||
; OVERLAP WITH "REAL" HARD DISK SIGNATURES. I HAVE NEVER
|
||||
; SEEN A CF CARD THAT DID NOT USE ONE OF THE BELOW.
|
||||
; CREDIT TO LASZLO SZOLNOKI
|
||||
LD BC,$848A ; STANDARD CF CARD SIGNATURE
|
||||
CALL PPIDE_INITDEV000 ; TEST & SET
|
||||
LD BC,$044A ; ALT SIG FOR NON-REMOVABLE
|
||||
CALL PPIDE_INITDEV000 ; TEST & SET
|
||||
LD BC,$0040 ; ALT SIG FOR NON-REMOVABLE
|
||||
CALL PPIDE_INITDEV000 ; TEST & SET
|
||||
JR PPIDE_INITDEV1 ; CONTINUE INIT
|
||||
;
|
||||
PPIDE_INITDEV000:
|
||||
; CHECK IF FIRST WORD OF IDENTIFY DATA MATCHES VALUE IN BC
|
||||
; AND SET CF FLAG IF SO
|
||||
LD HL,(HB_WRKBUF) ; FIRST WORD OF IDENTIFY DATA
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,BC ; COMPARE
|
||||
RET NZ ; ABORT IF NOT EQUAL
|
||||
SET 0,(IY+PPIDE_MED) ; ELSE SET FLAGS BIT FOR CF MEDIA
|
||||
RET ; AND RETURN
|
||||
;
|
||||
PPIDE_INITDEV1:
|
||||
; DETERMINE IF LBA CAPABLE
|
||||
|
||||
@@ -409,58 +409,57 @@ SNT_PLAY .DB "\r\nSN7_PLAY CH: $"
|
||||
SNT_REGWR .DB "\r\nOUT SN76489, $"
|
||||
#ENDIF
|
||||
|
||||
; THE FREQUENCY BY QUARTER TONE STARTING AT A0# OCTAVE 0
|
||||
; THE FREQUENCY BY QUARTER TONE STARTING AT A0#
|
||||
; USED TO MAP EACH OCTAVE (DIV BY 2 TO JUMP AN OCTAVE UP)
|
||||
; FIRST PLAYABLE NOTE WILL BE $2E
|
||||
; ASSUMING A CLOCK OF 1843200 THIS MAPS TO
|
||||
; 2 QUATER TONES BELOW A1#, WITH A1# AT $30
|
||||
; ASSUMING A CLOCK OF 3575950 HZ, THE FIRST PLAYABLE
|
||||
; NOTE WILL BE A2 (HBIOS NOTE CODE 92).
|
||||
|
||||
SN7NOTETBL:
|
||||
.DW SN7RATIO / 2913
|
||||
.DW SN7RATIO / 2956
|
||||
.DW SN7RATIO / 2999
|
||||
.DW SN7RATIO / 3042
|
||||
.DW SN7RATIO / 3086
|
||||
.DW SN7RATIO / 3131
|
||||
.DW SN7RATIO / 3177
|
||||
.DW SN7RATIO / 3223
|
||||
.DW SN7RATIO / 3270
|
||||
.DW SN7RATIO / 3318
|
||||
.DW SN7RATIO / 3366
|
||||
.DW SN7RATIO / 3415
|
||||
.DW SN7RATIO / 3464
|
||||
.DW SN7RATIO / 3515
|
||||
.DW SN7RATIO / 3566
|
||||
.DW SN7RATIO / 3618
|
||||
.DW SN7RATIO / 3670
|
||||
.DW SN7RATIO / 3724
|
||||
.DW SN7RATIO / 3778
|
||||
.DW SN7RATIO / 3833
|
||||
.DW SN7RATIO / 3889
|
||||
.DW SN7RATIO / 3945
|
||||
.DW SN7RATIO / 4003
|
||||
.DW SN7RATIO / 4061
|
||||
.DW SN7RATIO / 4120
|
||||
.DW SN7RATIO / 4180
|
||||
.DW SN7RATIO / 4241
|
||||
.DW SN7RATIO / 4302
|
||||
.DW SN7RATIO / 4365
|
||||
.DW SN7RATIO / 4428
|
||||
.DW SN7RATIO / 4493
|
||||
.DW SN7RATIO / 4558
|
||||
.DW SN7RATIO / 4624
|
||||
.DW SN7RATIO / 4692
|
||||
.DW SN7RATIO / 4760
|
||||
.DW SN7RATIO / 4829
|
||||
.DW SN7RATIO / 4899
|
||||
.DW SN7RATIO / 4971
|
||||
.DW SN7RATIO / 5043
|
||||
.DW SN7RATIO / 5116
|
||||
.DW SN7RATIO / 5191
|
||||
.DW SN7RATIO / 5266
|
||||
.DW SN7RATIO / 5343
|
||||
.DW SN7RATIO / 5421
|
||||
.DW SN7RATIO / 5499
|
||||
.DW SN7RATIO / 5579
|
||||
.DW SN7RATIO / 5661
|
||||
.DW SN7RATIO / 5743
|
||||
.DW SN7RATIO / 2913 ; A0#/B0b
|
||||
.DW SN7RATIO / 2956 ;
|
||||
.DW SN7RATIO / 2999 ;
|
||||
.DW SN7RATIO / 3042 ;
|
||||
.DW SN7RATIO / 3086 ; B0
|
||||
.DW SN7RATIO / 3131 ;
|
||||
.DW SN7RATIO / 3177 ;
|
||||
.DW SN7RATIO / 3223 ;
|
||||
.DW SN7RATIO / 3270 ; C1
|
||||
.DW SN7RATIO / 3318 ;
|
||||
.DW SN7RATIO / 3366 ;
|
||||
.DW SN7RATIO / 3415 ;
|
||||
.DW SN7RATIO / 3464 ; C1#/D1b
|
||||
.DW SN7RATIO / 3515 ;
|
||||
.DW SN7RATIO / 3566 ;
|
||||
.DW SN7RATIO / 3618 ;
|
||||
.DW SN7RATIO / 3670 ; D1
|
||||
.DW SN7RATIO / 3724 ;
|
||||
.DW SN7RATIO / 3778 ;
|
||||
.DW SN7RATIO / 3833 ;
|
||||
.DW SN7RATIO / 3889 ; D1#/E1b
|
||||
.DW SN7RATIO / 3945 ;
|
||||
.DW SN7RATIO / 4003 ;
|
||||
.DW SN7RATIO / 4061 ;
|
||||
.DW SN7RATIO / 4120 ; E1
|
||||
.DW SN7RATIO / 4180 ;
|
||||
.DW SN7RATIO / 4241 ;
|
||||
.DW SN7RATIO / 4302 ;
|
||||
.DW SN7RATIO / 4365 ; F1
|
||||
.DW SN7RATIO / 4428 ;
|
||||
.DW SN7RATIO / 4493 ;
|
||||
.DW SN7RATIO / 4558 ;
|
||||
.DW SN7RATIO / 4624 ; F1#/G1b
|
||||
.DW SN7RATIO / 4692 ;
|
||||
.DW SN7RATIO / 4760 ;
|
||||
.DW SN7RATIO / 4829 ;
|
||||
.DW SN7RATIO / 4899 ; G1
|
||||
.DW SN7RATIO / 4971 ;
|
||||
.DW SN7RATIO / 5043 ;
|
||||
.DW SN7RATIO / 5116 ;
|
||||
.DW SN7RATIO / 5191 ; G1#/A1b
|
||||
.DW SN7RATIO / 5266 ;
|
||||
.DW SN7RATIO / 5343 ;
|
||||
.DW SN7RATIO / 5421 ;
|
||||
.DW SN7RATIO / 5499 ; A1
|
||||
.DW SN7RATIO / 5579 ;
|
||||
.DW SN7RATIO / 5661 ;
|
||||
.DW SN7RATIO / 5743 ;
|
||||
|
||||
@@ -131,6 +131,8 @@ TTY_DEVICE:
|
||||
;
|
||||
TTY_DOCHAR:
|
||||
LD A,E ; CHARACTER TO PROCESS
|
||||
CP 7 ; BEL
|
||||
JP Z,SND_BEEP
|
||||
CP 8 ; BACKSPACE
|
||||
JR Z,TTY_BS
|
||||
CP 12 ; FORMFEED
|
||||
|
||||
@@ -55,7 +55,7 @@ UART_AFCACT .EQU 5 ; AUTO FLOW CONTROL ACTIVE BIT
|
||||
;
|
||||
UARTSBASE .EQU $68
|
||||
UARTCBASE .EQU $80
|
||||
UARTMBASE .EQU $48
|
||||
UARTMBASE .EQU $18
|
||||
UART4BASE .EQU $C0
|
||||
UARTRBASE .EQU $A0
|
||||
UARTDBASE .EQU $80
|
||||
|
||||
@@ -296,13 +296,10 @@ For example:
|
||||
In this case, you will not be prompted. This is useful if you wish
|
||||
to automate your build process.
|
||||
|
||||
There is a third parameter that you can specify to the BuildROM
|
||||
command via a command line. If you want to build a 1024K (1MB) ROM,
|
||||
you can add "1024" to the end of the line, like this:
|
||||
|
||||
C:\RomWBW\Source> BuildROM MK4 cust 1024
|
||||
|
||||
You must ensure that your system actually supports a 1024K ROM.
|
||||
In the past, the size of the ROM could be specified as the third
|
||||
parameter of the command. This parameter is now deprecated and
|
||||
the size of the ROM is specified in your configuration file
|
||||
using the ROMSIZE variable.
|
||||
|
||||
Special Build Commands
|
||||
----------------------
|
||||
|
||||
@@ -23,8 +23,8 @@ rom512_%.dat rom1024_%.dat: ROMAPPS=$(ROMAPPS1) $(ROMAPPS2)
|
||||
rom%_wbw.dat: BIOS=wbw
|
||||
rom%_una.dat: BIOS=una
|
||||
|
||||
rom128%.dat:
|
||||
>$@
|
||||
rom128_%.dat:
|
||||
touch $@
|
||||
|
||||
%.dat:
|
||||
### Making ROM Disk $@
|
||||
|
||||
@@ -13,4 +13,5 @@ set VER=v0.3.0
|
||||
tasm -80 -g3 -fFF -dROMWBW -d"VERSION \"%VER%\"" tastybasic.asm tastybasic.bin tastybasic.bin.lst
|
||||
tasm -80 -g3 -fFF -dCPM -d"VERSION \"%VER%\"" tastybasic.asm tastybasic.com tastybasic.com.lst
|
||||
|
||||
copy /b /v tastybasic.com ..\..\..\Binary\Apps\tbasic.com
|
||||
copy /b /v tastybasic.com tbasic.com
|
||||
copy /b /v tbasic.com ..\..\..\Binary\Apps\tbasic.com
|
||||
|
||||
@@ -10,4 +10,7 @@ set TASMTABS=%TOOLS%\tasm32
|
||||
set CPMDIR80=%TOOLS%/cpm/
|
||||
|
||||
zxcc M80 -=zcpr/l || exit /b
|
||||
zxcc L80 -zcpr,zcpr.bin/n/e || exit /b
|
||||
zxcc L80 -zcpr,zcpr.bin/n/e || exit /b
|
||||
|
||||
zxcc M80 -=zcprdemo/l || exit /b
|
||||
zxcc L80 -zcprdemo,zcprdemo/n/e || exit /b
|
||||
@@ -5,3 +5,4 @@ if exist *.bin del *.bin
|
||||
if exist *.lst del *.lst
|
||||
if exist *.rel del *.rel
|
||||
if exist *.prn del *.prn
|
||||
if exist *.com del *.com
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
|
||||
OBJECTS= zcpr.bin
|
||||
OBJECTS= zcpr.bin zcprdemo.com
|
||||
|
||||
OTHERS = zcpr.rel
|
||||
OTHERS = *.rel
|
||||
|
||||
TOOLS = ../../Tools
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
zcpr.bin: zcpr.rel
|
||||
$(ZXCC) L80 -zcpr,zcpr.bin/n/e
|
||||
|
||||
zcprdemo.com: zcprdemo.rel
|
||||
$(ZXCC) L80 -zcprdemo,zcprdemo/n/e
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; DATE 05/17/21 08:34:00
|
||||
; DATE 06/02/21 08:08:00
|
||||
;
|
||||
; TITLE ZCPR Console Command Processor - Version D&J
|
||||
; SUBTTL Last Modified: 10 August 1997
|
||||
@@ -396,12 +396,15 @@ CIBUFF: DB ' ' ;DEFAULT (COLD BOOT) COMMAND 13
|
||||
db 0,0,0,0,0,0,0,0 ;77
|
||||
db 0,0,0,0,0,0,0,0 ;85
|
||||
db 0,0,0,0,0,0,0,0 ;93
|
||||
db 0,0,0,0,0,0,0,0 ;101
|
||||
db 0,0,0,0,0,0,0,0 ;109
|
||||
db 0,0,0 ;96
|
||||
; DEFB 0,0,0,0,0,0,0,0 ;101
|
||||
; DEFB 0,0,0 ;104
|
||||
; DEFB 0,0,0,0,0,0,0,0 ;109
|
||||
; DEFB 0,0,0,0,0,0,0,0 ;118
|
||||
BUFEND EQU $
|
||||
; DEFW 0 ;SENTINEL FOR STACK END
|
||||
db 0,0
|
||||
; DEFS 24 ;STACK AREA
|
||||
DEFS 24,0 ;STACK AREA
|
||||
STACK EQU $ ;TOP OF STACK
|
||||
;
|
||||
; SUBMIT FILE CONTROL BLOCK
|
||||
@@ -427,7 +430,7 @@ FCBS2: db 0 ;S2
|
||||
FCBRC: db 0 ;RECORD COUNT
|
||||
FCBDM: db 0,0,0,0,0,0,0,0 ;DISK GROUP MAP
|
||||
db 0,0,0,0,0,0,0,0
|
||||
FCBCR: DEFS 1 ;CURRENT RECORD NUMBER
|
||||
FCBCR: db 0 ;CURRENT RECORD NUMBER
|
||||
;
|
||||
; Type and List Variables
|
||||
;
|
||||
@@ -466,7 +469,7 @@ CMDTBL:
|
||||
DEFW RING
|
||||
DC 'CLS'
|
||||
DEFW CLS
|
||||
DC 'WAIT' ; was 'SAK' ("strike any key")
|
||||
DC 'SAK' ; "Strike Any Key"
|
||||
DEFW SAK
|
||||
DC 'GO'
|
||||
DEFW GO
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,8 @@
|
||||
TITLE ZCPR Console Command Processor - Version D&J
|
||||
SUBTTL Last Modified: 5 March 1994
|
||||
; DATE 06/02/21 08:08:00
|
||||
;
|
||||
; TITLE ZCPR Console Command Processor - Version D&J
|
||||
; SUBTTL Last Modified: 10 August 1997
|
||||
|
||||
; CP/M Z80 Command Processor Replacement (CPR) Version 1.0
|
||||
; CCPZ CREATED AND CUSTOMIZED FOR ARIES-II BY RLC
|
||||
; FURTHER MODIFIED BY RGF AS V2.0
|
||||
@@ -66,6 +68,13 @@
|
||||
;
|
||||
; Added PEEK 30 August 1993.
|
||||
;
|
||||
; Added CLS 10 August 1997 and fixed two bugs. One caused the system to
|
||||
; hang if the command to log into another drive was given while logged
|
||||
; into a drive from which the disk had been removed. The other caused
|
||||
; a warm boot to return to the prior user area if the new user number
|
||||
; had been selected using the USER command (although not if the user area
|
||||
; had been changed using the du: command).
|
||||
;
|
||||
;******** Structure Notes ********
|
||||
;
|
||||
; This CPR is divided into a number of major sections. The following
|
||||
@@ -86,39 +95,40 @@
|
||||
;
|
||||
; 3 Utilities
|
||||
; CRLF PRINTC PRINT PRINTS BELL
|
||||
; CONOUT BREAK CHKETX ABORT READF
|
||||
; READ WRITE DEFDMA DMASET SEARF
|
||||
; SEARDE SEARN OPENF OPEN CLOSE
|
||||
; CREATE BDOSFN SUBKIL DELETE TLOGIN
|
||||
; DLOGIN LOGIN NEWUSR RSTUSR SETUSR
|
||||
; BDOSEA BDOSJP BDOSBC BDOSDE
|
||||
; CLS CONOUT BREAK CHKETX ABORT
|
||||
; READF READ WRITE DEFDMA DMASET
|
||||
; SEARF SEARDE SEARN OPENF OPEN
|
||||
; CLOSE CREATE BDOSFN SUBKIL DELETE
|
||||
; TLOGIN DLOGIN LOGIN NEWUSR RSTUSR
|
||||
; SETUSR BDOSEA BDOSJP BDOSBC BDOSDE
|
||||
;
|
||||
; 4 CPR Utilities
|
||||
; PROMPT REDBUF CNVBUF UCASE SDELM
|
||||
; ADVAN SBLANK ADDAH NUMBER A2NUM
|
||||
; HEXNUM USRNUM ERROR DIRPTR ULOGIN
|
||||
; SCANER SCANT SCANF CMDSER SETUDB
|
||||
; SCANER SCANT SCANF CMDSER
|
||||
;
|
||||
; 5 CPR-Resident Commands and Functions
|
||||
; 5A DIR DIRPR PRFN
|
||||
; 5B ERA
|
||||
; 5C ERAQ PRNNF
|
||||
; 5D SAK REPLY
|
||||
; 5E BELL
|
||||
; 5F LIST
|
||||
; 5G TYPE PAGER
|
||||
; 5H EJECT
|
||||
; 5I SAVE
|
||||
; 5J REN
|
||||
; 5K USER SUSER
|
||||
; 5L DFU
|
||||
; 5M SCL
|
||||
; 5N PEEK
|
||||
; 5O POKE
|
||||
; 5P JUMP
|
||||
; 5Q COM
|
||||
; 5R GO CLLPRG ERRLOG ERRJMP
|
||||
; 5S GET MEMLD PRNLE
|
||||
; 5E CLS
|
||||
; 5F BELL
|
||||
; 5G LIST
|
||||
; 5H TYPE PAGER
|
||||
; 5I EJECT
|
||||
; 5J SAVE
|
||||
; 5K REN
|
||||
; 5L USER SUSER
|
||||
; 5M DFU
|
||||
; 5N SCL
|
||||
; 5O PEEK
|
||||
; 5P POKE
|
||||
; 5Q JUMP
|
||||
; 5R COM UPDATE
|
||||
; 5S GO CLLPRG ERRLOG ERRJMP
|
||||
; 5T GET MEMLD PRNLE
|
||||
; BIOS BOOT
|
||||
;
|
||||
;
|
||||
@@ -142,13 +152,14 @@ TRUE EQU NOT FALSE
|
||||
;
|
||||
; P2DOS - Address of BDOS/P2DOS.
|
||||
;
|
||||
TEST EQU FALSE ;SET TO LOAD/RUN AT 8000H FOR DEBUG
|
||||
TEST EQU TRUE ;SET TO LOAD/RUN AT 8000H FOR DEBUG
|
||||
COMLD EQU FALSE ;SET TO LOAD AND EXECUTE AS A .COM FILE
|
||||
REL EQU FALSE ;SET TO TRUE FOR MOVCPM INTEGRATION
|
||||
;LEAVE ALL FALSE FOR SYSGEN IMAGE
|
||||
;
|
||||
BASE EQU 0 ;BASE OF CP/M SYSTEM
|
||||
P2DOS EQU 0E400H ;BASE OF BDOS/P2DOS
|
||||
;P2DOS EQU 0E400H ;BASE OF BDOS/P2DOS (original)
|
||||
P2DOS EQU 0D800H ;BASE OF BDOS/P2DOS (Retro-Brew)
|
||||
ZCPRSZ EQU 00800H ;SIZE OF ZCPR
|
||||
P2DOSSZ EQU 00E00H ;SIZE OF P2DOS
|
||||
BIOS EQU P2DOS+P2DOSSZ ;BASE OF BIOS
|
||||
@@ -243,7 +254,7 @@ SOFLG EQU 'S' ;LIST $SYS ONLY
|
||||
;
|
||||
; List and Type command customization equates
|
||||
;
|
||||
NLINES EQU 20 ;NUMBER OF LINES ON CRT PAGE
|
||||
NLINES EQU 22 ;NUMBER OF LINES ON CRT PAGE
|
||||
NLINEP EQU 60 ;NUMBER OF LINES ON LIST DEVICE
|
||||
FFKILL EQU TRUE ;TRUE SUPPRESSES FF UNTIL FIRST CHARACTER
|
||||
PGDFLG EQU 'P' ;TYPE AND LIST COMMAND DEFAULT TOGGLE
|
||||
@@ -254,14 +265,17 @@ NOSTAT EQU FALSE ;SET TO TRUE IF BIOS LISTST NOT IMPLEMENTED
|
||||
BUFLEN EQU 80 ;SIZE OF COMMAND INPUT BUFFER
|
||||
MAXUSR EQU 15 ;MAXIMUM USER NUMBER ACCESSIBLE
|
||||
DEFUSR EQU 0 ;DEFAULT USER NUMBER FOR COM FILES
|
||||
DEFDRV EQU 'A' ;DEFAULT DRIVE FOR COM FILES
|
||||
SPRMPT EQU '$' ;CPR PROMPT INDICATING SUBMIT COMMAND
|
||||
COMCHR EQU ';' ;BEGIN COMMENT CHARACTER
|
||||
COMCHR EQU '%' ;BEGIN COMMENT CHARACTER
|
||||
CMDCHR EQU ';' ;BEGIN NEXT COMMAND CHARACTER
|
||||
NUMBASE EQU 'H' ;CHARACTER USED TO SPECIFY HEXIDECIMAL BASE
|
||||
RECFLG EQU 'R' ;CHARACTER FOR SAVE COMMAND TO SAVE RECORDS
|
||||
SUPRES EQU TRUE ;TRUE TO SUPPRESS USER NUMBER FOR USER 0
|
||||
MULTPL EQU TRUE ;TRUE TO ALLOW MULTIPLE COMMANDS ON ONE LINE
|
||||
REBOOT EQU TRUE ;TRUE TO INCLUDE BOOT COMMAND
|
||||
CLSCHR EQU 1AH ;CHARACTER TO CLEAR TERMINAL SCREEN
|
||||
ESC EQU 1BH ;VT100 LEAD-IN CHAR. (FOR 'CLS')
|
||||
;
|
||||
IF TEST
|
||||
CPRMPT EQU '<' ;CPR PROMPT INDICATING TEST MODE
|
||||
@@ -299,7 +313,7 @@ TPA EQU BASE+0100H ;BASE OF TPA
|
||||
IF COMLD OR TEST
|
||||
LD HL,BGNXFR
|
||||
LD DE,CPRLOC
|
||||
LD BC,ENDLD-CPRLOC
|
||||
LD BC,ENDLD-BGNXFR
|
||||
LDIR
|
||||
LD BC,(UDFLAG)
|
||||
JP CPRLOC
|
||||
@@ -368,15 +382,29 @@ ENTRY:
|
||||
; warm boot reloads ZCPR and destroys the contents of the command buffer.
|
||||
; The multiple command feature may be turned off with the SCL command.
|
||||
;
|
||||
MBUFF: DEFB BUFLEN ;MAXIMUM BUFFER LENGTH
|
||||
;MBUFF: DEFB BUFLEN ;MAXIMUM BUFFER LENGTH
|
||||
MBUFF: DEFB BUFEND-CIBUFF ;MAXIMUM BUFFER LENGTH
|
||||
CBUFF: DEFB 0 ;NUMBER OF CHARACTERS IN COMMAND LINE
|
||||
CIBUFF: DEFB ' ' ;DEFAULT (COLD BOOT) COMMAND
|
||||
DEFB 0 ;COMMAND STRING TERMINATOR
|
||||
DEFB ' ZCPR-D&J of 5 March 1994 '
|
||||
DEFB 0 ;TERMINATOR FOR DUMP IDENTIFICATION
|
||||
DEFS BUFLEN-($-CIBUFF)+1
|
||||
DEFW 0 ;SENTINEL FOR STACK END
|
||||
DEFS 24 ;STACK AREA
|
||||
CIBUFF: DB ' ' ;DEFAULT (COLD BOOT) COMMAND 13
|
||||
DEFB 0 ;COMMAND STRING TERMINATOR 14
|
||||
DEFB ' ZCPR-D&J of 17 May 2021 ' ;44
|
||||
DEFB 0 ;TERMINATOR FOR DUMP IDENTIFICATION 45
|
||||
; DEFS BUFLEN-($-CIBUFF)+1
|
||||
db 0,0,0,0,0,0,0,0 ;53
|
||||
db 0,0,0,0,0,0,0,0 ;61
|
||||
db 0,0,0,0,0,0,0,0 ;69
|
||||
db 0,0,0,0,0,0,0,0 ;77
|
||||
db 0,0,0,0,0,0,0,0 ;85
|
||||
db 0,0,0,0,0,0,0,0 ;93
|
||||
db 0,0,0 ;96
|
||||
; DEFB 0,0,0,0,0,0,0,0 ;101
|
||||
; DEFB 0,0,0 ;104
|
||||
; DEFB 0,0,0,0,0,0,0,0 ;109
|
||||
; DEFB 0,0,0,0,0,0,0,0 ;118
|
||||
BUFEND EQU $
|
||||
; DEFW 0 ;SENTINEL FOR STACK END
|
||||
db 0,0
|
||||
DEFS 24,0 ;STACK AREA
|
||||
STACK EQU $ ;TOP OF STACK
|
||||
;
|
||||
; SUBMIT FILE CONTROL BLOCK
|
||||
@@ -393,22 +421,23 @@ SUBCR EQU SUBDN+32 ;CURRENT RECORD NUMBER
|
||||
;
|
||||
; COMMAND FILE CONTROL BLOCK
|
||||
;
|
||||
FCBDN: DEFS 1 ;DISK DRIVE
|
||||
FCBFN: DEFS 8 ;FILE NAME
|
||||
FCBFT: DEFS 3 ;FILE TYPE
|
||||
FCBEX: DEFS 1 ;EXTENT NUMBER
|
||||
FCBS1: DEFS 1 ;S1
|
||||
FCBS2: DEFS 1 ;S2
|
||||
FCBRC: DEFS 1 ;RECORD COUNT
|
||||
FCBDM: DEFS 16 ;DISK GROUP MAP
|
||||
FCBCR: DEFS 1 ;CURRENT RECORD NUMBER
|
||||
FCBDN: db 0 ;DISK DRIVE
|
||||
FCBFN: db 0,0,0,0,0,0,0,0 ;FILE NAME
|
||||
FCBFT: db 0,0,0 ;FILE TYPE
|
||||
FCBEX: db 0 ;EXTENT NUMBER
|
||||
FCBS1: db 0 ;S1
|
||||
FCBS2: db 0 ;S2
|
||||
FCBRC: db 0 ;RECORD COUNT
|
||||
FCBDM: db 0,0,0,0,0,0,0,0 ;DISK GROUP MAP
|
||||
db 0,0,0,0,0,0,0,0
|
||||
FCBCR: db 0 ;CURRENT RECORD NUMBER
|
||||
;
|
||||
; Type and List Variables
|
||||
;
|
||||
CHRCNT: DEFS 1 ;CHARACTER COUNT FOR TYPE AND LIST
|
||||
LNCNT: DEFS 1 ;LINE COUNT FOR TYPE AND LIST
|
||||
TYPLST: DEFS 1 ;FLAG FOR TYPE OR LIST
|
||||
TABCNT: DEFS 1 ;TAB COUNT FOR TYPE AND LIST
|
||||
CHRCNT: db 0 ;CHARACTER COUNT FOR TYPE AND LIST
|
||||
LNCNT: db 0 ;LINE COUNT FOR TYPE AND LIST
|
||||
TYPLST: db 0 ;FLAG FOR TYPE OR LIST
|
||||
TABCNT: db 0 ;TAB COUNT FOR TYPE AND LIST
|
||||
SYSTST: DEFB 0 ;LIST SYSTEM FILES IN DIRECTORY FLAG
|
||||
;
|
||||
; General Variables
|
||||
@@ -416,7 +445,7 @@ SYSTST: DEFB 0 ;LIST SYSTEM FILES IN DIRECTORY FLAG
|
||||
CIBPTR: DEFW CIBUFF ;POINTER TO COMMAND INPUT BUFFER
|
||||
CIPTR: DEFW CIBUFF ;POINTER TO CURRENT CMD FOR ERROR REPORTING
|
||||
TMPUSR: DEFB 0 ;TEMPORARY USER NUMBER
|
||||
TDRIVE: DEFB 0 ;DEFAULT DRIVE
|
||||
TDRIVE: DEFB 0 ;TEMPORARY DRIVE
|
||||
DFUSR: DEFB DEFUSR ;DEFAULT USER
|
||||
LDADR: DEFW TPA ;MEMORY LOAD ADDRESS
|
||||
;
|
||||
@@ -434,11 +463,13 @@ CMDTBL:
|
||||
DEFW USER
|
||||
DC 'DFU'
|
||||
DEFW DFU
|
||||
DC 'PAGE'
|
||||
DC 'FF' ; was 'PAGE'
|
||||
DEFW EJECT
|
||||
DC 'BELL'
|
||||
DEFW RING
|
||||
DC 'SAK'
|
||||
DC 'CLS'
|
||||
DEFW CLS
|
||||
DC 'SAK' ; "Strike Any Key"
|
||||
DEFW SAK
|
||||
DC 'GO'
|
||||
DEFW GO
|
||||
@@ -458,7 +489,7 @@ CMDTBL:
|
||||
DEFW PEEK
|
||||
DC 'POKE'
|
||||
DEFW POKE
|
||||
NCMNDS DEFL 17 ;NUMBER OF COMMANDS
|
||||
NCMNDS DEFL 18 ;NUMBER OF COMMANDS
|
||||
;
|
||||
IF MULTPL
|
||||
DC 'SCL'
|
||||
@@ -515,14 +546,11 @@ RS3:
|
||||
JR Z,RESTRT ;YES, SKIP REST OF LINE
|
||||
CALL SCANER ;PARSE COMMAND NAME FROM COMMAND LINE
|
||||
JR NZ,RS4 ;ERROR IF NAME CONTAINS A "?"
|
||||
CALL DEFDMA ;SET TBUFF TO DMA ADDRESS
|
||||
CALL DLOGIN ;ASSURE PROPER DRIVE
|
||||
CALL RSTUSR ;ASSURE PROPER USER NUMBER
|
||||
CALL SETUDB ;SET UD BYTE TO MATCH USER/DRIVE
|
||||
CALL CMDSER ;SCAN FOR CPR-RESIDENT COMMAND
|
||||
CALL CMDSER ;SCAN FOR COMMAND
|
||||
;
|
||||
; ENTRY POINT FOR CONTINUED SCAN OF COMMAND LINE
|
||||
;
|
||||
CALL UPDATE ;UPDATE BDOS/SYSTEM PARAMETERS
|
||||
CALL ADVAN ;GET ANY CHARACTER
|
||||
JR Z,RESTRT ;NONE, END OF LINE
|
||||
LD (CIPTR),DE ;UPDATE START OF LINE IN CASE ERROR
|
||||
@@ -1023,7 +1051,7 @@ SCAN4:
|
||||
LD (HL),B ;SAVE DRIVE
|
||||
LD B,8 ;MAX OF 8 CHARACTERS
|
||||
XOR A ;CLEAR '?' COUNT
|
||||
EX AF,AF ;AND SAVE
|
||||
EX AF,AF' ;AND SAVE
|
||||
CALL SCANF ;GET POSSIBLE NAME
|
||||
CALL SCANT ;AND POSSIBLE TYPE
|
||||
;
|
||||
@@ -1043,7 +1071,7 @@ SCAN4:
|
||||
; SCAN COMPLETE -- DE POINTS TO DELIMITER BYTE AFTER TOKEN
|
||||
;
|
||||
LD (CIBPTR),DE
|
||||
EX AF,AF ;GET NUMBER OF '?' IN FILENAME.TYP
|
||||
EX AF,AF' ;GET NUMBER OF '?' IN FILENAME.TYP
|
||||
RET
|
||||
;
|
||||
; EXTRACT FILE TYPE FROM POSSIBLE FILENAME.TYP
|
||||
@@ -1068,9 +1096,9 @@ SCAN12:
|
||||
SCAN13:
|
||||
CP '?' ;QUESTION MARK?
|
||||
JR NZ,SCAN14 ;NO, JUST STORE CHARACTER
|
||||
EX AF,AF ;GET QUESTION MARK COUNT
|
||||
EX AF,AF' ;GET QUESTION MARK COUNT
|
||||
INC A ;COUNT IT
|
||||
EX AF,AF ;AND SAVE COUNT
|
||||
EX AF,AF' ;AND SAVE COUNT
|
||||
SCAN14:
|
||||
INC DE ;POINT TO NEXT CHARACTER IN COMMAND LINE
|
||||
LD (HL),A ;STORE CHARACTER IN FCBDN
|
||||
@@ -1096,15 +1124,6 @@ CMDSER:
|
||||
LD A,(HL) ;LOOK FOR DRIVE SPEC
|
||||
DEC A ;ADJUST FOR LOG IN
|
||||
CALL P,TLOGIN ;LOG IN DRIVE
|
||||
SETUDB:
|
||||
LD A,(TMPUSR) ;GET CURRENT USER NUMBER
|
||||
ADD A,A ;PLACE IT IN HIGH NIBBLE
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
LD HL,TDRIVE ;ADD DEFAULT DRIVE NUMBER (LOW NIBBLE)
|
||||
OR (HL)
|
||||
LD (UDFLAG),A ;UPDATE USER/DRIVE BYTE
|
||||
RET
|
||||
CMS0:
|
||||
OR (HL) ;DRIVE OR USER NUMBER
|
||||
@@ -1124,11 +1143,10 @@ CMS2:
|
||||
LD A,(DE) ;NEXT CHARACTER IN INPUT COMMAND MUST BE <SP>
|
||||
CP ' '
|
||||
JR NZ,CMS4
|
||||
LD A,(HL) ;FOUND COMMAND,
|
||||
LD E,(HL) ;FOUND COMMAND,
|
||||
INC HL ;LOAD ADDRESS,
|
||||
LD H,(HL) ;AND
|
||||
LD L,A ;JUMP TO IT
|
||||
JP (HL) ;COMMAND IS CPR-RESIDENT
|
||||
LD D,(HL) ;AND
|
||||
JR CMS6 ;UPDATE SYSTEM DATA AND EXECUTE
|
||||
CMS3:
|
||||
BIT 7,(HL) ;END OF TABLE ENTRY?
|
||||
INC HL
|
||||
@@ -1138,7 +1156,10 @@ CMS4:
|
||||
INC HL
|
||||
DJNZ CMS1 ;NOT TO END OF TABLE YET
|
||||
CMS5:
|
||||
JP COM ;COMMAND MAY BE DISK-RESIDENT
|
||||
LD DE,COM ;LOAD DESTINATION AND UPDATE
|
||||
CMS6:
|
||||
PUSH DE ;PLACE ROUTINE ADDRESS ON STACK
|
||||
JP UPDATE ;UPDATE SYSTEM DATA AND EXECUTE
|
||||
;
|
||||
;**** Section 5 ****
|
||||
; CPR-Resident Commands
|
||||
@@ -1410,6 +1431,21 @@ REPL2:
|
||||
RET
|
||||
;
|
||||
;Section 5E
|
||||
;Command: CLS
|
||||
;Function: To clear screen.
|
||||
;Forms:
|
||||
; CLS
|
||||
;
|
||||
CLS:
|
||||
; LD A,CLSCHR ; Load clear screen character
|
||||
; DEFB 21H ; and skip next instruction
|
||||
; If a multi-character string is
|
||||
; required to clear screen use:
|
||||
CALL PRINT
|
||||
DB ESC,'[2','J'+128
|
||||
RET
|
||||
;
|
||||
;Section 5F
|
||||
;Command: BELL
|
||||
;Function: To ring terminal bell.
|
||||
;Forms:
|
||||
@@ -1419,7 +1455,7 @@ RING:
|
||||
LD A,BELL ; load bell into A
|
||||
JP CONOUT ; and output it
|
||||
;
|
||||
;Section 5F
|
||||
;Section 5G
|
||||
;Command: LIST
|
||||
;Function: To print specified file on list device.
|
||||
;Forms:
|
||||
@@ -1436,7 +1472,7 @@ LIST:
|
||||
;
|
||||
JR TYPE1
|
||||
;
|
||||
;Section 5G
|
||||
;Section 5H
|
||||
;Command: TYPE
|
||||
;Function: To display specified file on console.
|
||||
;Forms:
|
||||
@@ -1559,8 +1595,8 @@ PAGER:
|
||||
PAGE2:
|
||||
JP BDOSJP ; return via bdos
|
||||
;
|
||||
;Section 5H
|
||||
;Command: PAGE
|
||||
;Section 5I
|
||||
;Command: FF (was PAGE)
|
||||
;Function: To eject a page on list device via a form feed.
|
||||
;Forms:
|
||||
; PAGE
|
||||
@@ -1578,7 +1614,7 @@ EJECT:
|
||||
LD C,05H ; list output
|
||||
JP BDOS ; output character and return via bdos
|
||||
;
|
||||
;Section 5I
|
||||
;Section 5J
|
||||
;Command: SAVE
|
||||
;Function: To save the contents of TPA onto disk as a file. Number of
|
||||
; pages or records is in decimal. Saved area begins at 100H.
|
||||
@@ -1627,7 +1663,7 @@ SAVE3:
|
||||
SAVE4:
|
||||
JP PRNLE ;PRINT 'NO SPACE' ERROR
|
||||
;
|
||||
;Section 5J
|
||||
;Section 5K
|
||||
;Command: REN
|
||||
;Function: To change the name of an existing file.
|
||||
;Forms:
|
||||
@@ -1669,7 +1705,7 @@ NAMERR:
|
||||
REN2:
|
||||
JP ABORT
|
||||
;
|
||||
;Section 5K
|
||||
;Section 5L
|
||||
;Command: USER
|
||||
;Function: To change current user number; new user number is in decimal.
|
||||
;Forms:
|
||||
@@ -1679,7 +1715,7 @@ USER:
|
||||
CALL USRNUM ;EXTRACT USER NUMBER FROM COMMAND LINE
|
||||
JP NEWUSR ;SET NEW USER NUMBER
|
||||
;
|
||||
;Section 5L
|
||||
;Section 5M
|
||||
;Command: DFU
|
||||
;Function: To set the Default User Number for the command/file scanner; new
|
||||
; default user number is in decimal.
|
||||
@@ -1691,7 +1727,7 @@ DFU:
|
||||
LD (DFUSR),A ;PUT IT AWAY
|
||||
RET
|
||||
;
|
||||
;Section 5M
|
||||
;Section 5N
|
||||
;Command: SCL
|
||||
;Function: To force ZCPR to parse only a single command per line; reset
|
||||
; to multiple command format at the next ^C.
|
||||
@@ -1708,7 +1744,7 @@ SINGLE:
|
||||
ENDIF
|
||||
;
|
||||
;
|
||||
;Section 5N
|
||||
;Section 5O
|
||||
;Command: PEEK
|
||||
;Function: To display hex values beginning at a specified address.
|
||||
;Forms:
|
||||
@@ -1755,7 +1791,7 @@ PRHEX:
|
||||
JP CONOUT ; go display value
|
||||
;
|
||||
;
|
||||
;Section 5O
|
||||
;Section 5P
|
||||
;Command: POKE
|
||||
;Function: To poke a string of hex values into a set of consecutive addresses.
|
||||
;Forms:
|
||||
@@ -1776,7 +1812,7 @@ POKE1:
|
||||
JR POKE1 ; go for more
|
||||
;
|
||||
;
|
||||
;Section 5P
|
||||
;Section 5Q
|
||||
;Command: JUMP
|
||||
;Function: To call the program (subroutine) at the specified address
|
||||
; without loading from disk.
|
||||
@@ -1787,7 +1823,7 @@ JUMP:
|
||||
CALL HEXNUM ;GET LOAD ADDRESS IN HL
|
||||
JR CLLPRG ;PERFORM CALL
|
||||
;
|
||||
;Section 5Q
|
||||
;Section 5R
|
||||
;Command: COM file processing
|
||||
;Function: To load the specified COM file from disk and execute it.
|
||||
;Forms:
|
||||
@@ -1807,7 +1843,7 @@ COM:
|
||||
CALL MEMLD ;LOAD MEMORY WITH FILE SPECIFIED
|
||||
;(NO RETURN IF ERROR OR TOO BIG)
|
||||
;
|
||||
;Section 5R
|
||||
;Section 5S
|
||||
;Command: GO
|
||||
;Function: To call the program in the TPA without loading from disk.
|
||||
; Same as JUMP 100H, but more convenient, especially when
|
||||
@@ -1868,14 +1904,24 @@ COM3:
|
||||
; RUN LOADED TRANSIENT PROGRAM
|
||||
;
|
||||
CALL CRLF ;NEW LINE
|
||||
CALL DEFDMA ;SET DMA TO 0080
|
||||
CALL RSTUSR ;RESET TO PROPER USER NUMBER
|
||||
UPDATE:
|
||||
CALL DEFDMA ;SET DMA TO DEFAULT VALUE
|
||||
CALL DLOGIN ;ASSURE PROPER DRIVE
|
||||
CALL RSTUSR ;ASSURE PROPER USER NUMBER
|
||||
LD A,E ;GET CURRENT USER NUMBER
|
||||
ADD A,A ;PLACE IT IN HIGH NIBBLE
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
LD HL,TDRIVE ;ADD DEFAULT DRIVE NUMBER (LOW NIBBLE)
|
||||
OR (HL)
|
||||
LD (UDFLAG),A ;UPDATE USER/DRIVE BYTE
|
||||
;
|
||||
; EXECUTION (CALL) OF PROGRAM (SUBROUTINE) OCCURS HERE
|
||||
; EXECUTION (CALL) OF PROGRAM/SUBROUTINE/COMMAND OCCURS HERE
|
||||
;
|
||||
RET ;CALL TRANSIENT
|
||||
;
|
||||
;Section 5S
|
||||
;Section 5T
|
||||
;Command: GET
|
||||
;Function: To load the specified file from disk to the specified address
|
||||
;Forms:
|
||||
@@ -1896,9 +1942,9 @@ MEMLD:
|
||||
LD (LDADR),HL ;SET LOAD ADDRESS
|
||||
;
|
||||
; MLA is a reentry point for a non-standard CP/M Modification
|
||||
; This is the return point when the .COM (or GET) file is not found the
|
||||
; first time, the Default User is selected for the second attempt
|
||||
; and Drive A is selected for the final attempt.
|
||||
; This is the return point when the .COM (or GET) file was not found
|
||||
; so the Default Drive & User are selected for the final attempt
|
||||
; to find the file.
|
||||
;
|
||||
MLA:
|
||||
CALL ULOGIN ;LOG ANY USER
|
||||
@@ -1906,29 +1952,22 @@ MLA:
|
||||
CALL OPENF ;OPEN COMMAND.COM FILE
|
||||
JR NZ,MLA1 ;FILE FOUND - LOAD IT
|
||||
;
|
||||
; FILE NOT FOUND - SELECT DEFAULT USER
|
||||
; FILE NOT FOUND - SELECT DEFAULT COM USER
|
||||
;
|
||||
LD A,L ;GET FCB USER
|
||||
AND A ;DEFAULT USER?
|
||||
JR NZ,MLA0 ;NO
|
||||
LD HL,TMPUSR ;CURRENT USER SAME AS DEFAULT?
|
||||
LD A,(DFUSR) ;GET DEFAULT USER
|
||||
CP (HL)
|
||||
SET 7,A ;MAKE INTO VALID USER NUMBER
|
||||
LD (FCBS1),A ;PUT USER INTO FCB
|
||||
JR NZ,MLA ;AND TRY AGAIN
|
||||
;
|
||||
; FILE NOT FOUND - SELECT DRIVE A IF DEFAULT WAS SOME OTHER DRIVE
|
||||
; AND SELECT DEFAULT COM DRIVE. IF DEFAULT COM DRIVE ALREADY
|
||||
; SELECTED, GIVE UP AND PRINT ERROR MESSAGE
|
||||
;
|
||||
MLA0:
|
||||
LD A,(TDRIVE) ;DRIVE A DEFAULT?
|
||||
AND A
|
||||
LD A,DEFDRV-'@' ;A<= DEFAULT COM DRIVE
|
||||
LD HL,FCBDN ;POINT TO DRIVE IN FCB
|
||||
CP (HL) ;THE SAME?
|
||||
JR Z,MLA3 ;YES, ERROR
|
||||
XOR A
|
||||
LD HL,FCBDN ;POINT AT DRIVE IN FCB
|
||||
OR (HL) ;DRIVE ALREADY SPECIFIED?
|
||||
LD (HL),1 ;SELECT DRIVE A
|
||||
JR Z,MLA ;NO, GO GIVE IT A TRY
|
||||
LD (HL),A ;PUT DEFAULT COM DRIVE IN FCB
|
||||
JR MLA ;GO GIVE IT A TRY
|
||||
MLA3:
|
||||
CALL PRNNF ;CAN'T FIND FILE
|
||||
JR PRNLE1
|
||||
@@ -1961,6 +2000,7 @@ PRNLE1:
|
||||
IF (($-ENTRY) GT ZCPRSZ)
|
||||
*ZCPR too large!!*
|
||||
ENDIF
|
||||
.DEPHASE
|
||||
;
|
||||
IF TEST
|
||||
LISTST:
|
||||
@@ -1977,4 +2017,4 @@ ENDLD EQU $
|
||||
|
||||
END
|
||||
|
||||
PUSH HL ;SAVE POI
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 1
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.1.1-pre.175"
|
||||
#DEFINE BIOSVER "3.1.1-pre.182"
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 1
|
||||
rup equ 1
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.1.1-pre.175"
|
||||
db "3.1.1-pre.182"
|
||||
endm
|
||||
|
||||
11
Tools/Makefile
Normal file
11
Tools/Makefile
Normal file
@@ -0,0 +1,11 @@
|
||||
#
|
||||
# build the tools for linux and Darwin
|
||||
#
|
||||
UNAME := $(shell uname)
|
||||
|
||||
all:
|
||||
$(MAKE) --directory unix
|
||||
|
||||
clean:
|
||||
$(MAKE) --directory unix clean
|
||||
@rm -rf $(UNAME)
|
||||
@@ -134,7 +134,7 @@ endif
|
||||
#
|
||||
all:: $(OBJECTS)
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
$(MAKE) --directory $$dir all ; \
|
||||
$(MAKE) --directory $$dir ; \
|
||||
done
|
||||
@if [ "$(DEST)" ] && [ "$(OBJECTS)" ] ; then for file in $(filter-out $(NOCOPY),$(OBJECTS)) ; do \
|
||||
mkdir -p $(DEST) ; \
|
||||
@@ -156,13 +156,7 @@ clean::
|
||||
done
|
||||
|
||||
clobber:: clean
|
||||
@if [ "$(DEST)" ] ; then for file in $(OBJECTS) ; do \
|
||||
rm -f $$($(CASEFN) $(DEST)/$$file) ; \
|
||||
done ; fi
|
||||
@-rm -f $$($(CASEFN) $(filter-out $(NODELETE),$(OBJECTS)))
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
$(MAKE) --directory $$dir clobber ; \
|
||||
done
|
||||
|
||||
#
|
||||
# this is used to verify that the unix and windows tool chains are generating
|
||||
# the same objects
|
||||
@@ -172,7 +166,7 @@ ifneq ($(DIFFTO),)
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
( echo "diff in $(HERE)/$$dir" ; cd "$$dir" ; make diff ) ; \
|
||||
done
|
||||
@for i in $(OBJECTS) $(MOREDIFF) ; do \
|
||||
@for i in $(filter-out $(NODIFF),$(OBJECTS) $(MOREDIFF)) ; do \
|
||||
sf=$$($(CASEFN) $$i) ; \
|
||||
df=$$($(CASEFN) $(DIFFPATH)/$$i) ; \
|
||||
if [ -f "$$df" -a -f "$$sf" ] ; then \
|
||||
@@ -193,5 +187,6 @@ ifneq ($(DIFFTO),)
|
||||
done
|
||||
endif
|
||||
|
||||
|
||||
vdiff:
|
||||
make VERBOSEDIFF=2 diff
|
||||
|
||||
@@ -15,9 +15,5 @@ all:
|
||||
@chmod +x casefn.sh
|
||||
@$(foreach subdir,$(SUBDIRS),$(MAKE) --directory $(subdir) all;)
|
||||
|
||||
clobber:
|
||||
@$(foreach subdir,$(SUBDIRS),$(MAKE) --directory $(subdir) clobber;)
|
||||
@rm -rf ../$(UNAME)
|
||||
|
||||
clean:
|
||||
@$(foreach subdir,$(SUBDIRS),$(MAKE) --directory $(subdir) clean;)
|
||||
@@ -18,9 +18,6 @@ $(DEST):
|
||||
clean:
|
||||
rm -f $(OBJ_FILES) $(BINARY)
|
||||
|
||||
clobber: clean
|
||||
rm -f $(DEST)/$(BINARY) $(BINARY)
|
||||
|
||||
$(BINARY): $(OBJ_FILES)
|
||||
$(CC) -o $@ $^ $(LIBS)
|
||||
|
||||
|
||||
@@ -20,9 +20,4 @@ all: $(DEST)
|
||||
$(DEST):
|
||||
mkdir $(DEST)
|
||||
|
||||
clobber: clean
|
||||
-for i in *.$(SUFFIX) ; do \
|
||||
rm $(DEST)/$$(basename $$i .$(SUFFIX)) ; \
|
||||
done
|
||||
|
||||
clean:
|
||||
|
||||
@@ -54,8 +54,3 @@ $(DEST):
|
||||
|
||||
clean:
|
||||
-rm -f *.o $(OBJECTS)
|
||||
|
||||
clobber: clean
|
||||
-for i in $(OBJECTS) ; do \
|
||||
rm -f $(DEST)/$$i ; \
|
||||
done
|
||||
|
||||
@@ -41,6 +41,3 @@ $(APP): $(OBJS)
|
||||
|
||||
clean:
|
||||
@rm -rf $(APP) $(OBJDIR)
|
||||
|
||||
clobber: clean
|
||||
rm -f ../../$(UNAME)/$(APP)
|
||||
|
||||
@@ -49,9 +49,6 @@ all: uz80as $(DEST)
|
||||
$(DEST):
|
||||
mkdir -p $(DEST)
|
||||
|
||||
clobber: clean
|
||||
-rm -f uz80as $(DEST)/uz80as
|
||||
|
||||
clean:
|
||||
-rm -f $(OBJECTS) uz80as
|
||||
|
||||
|
||||
@@ -25,9 +25,6 @@ $(DEST):
|
||||
clean:
|
||||
-rm -f $(OBJECTS) config.h zxcc bios.bin
|
||||
|
||||
clobber: clean
|
||||
-rm -f $(DEST)/zxcc $(DEST)/bios.bin zxcc
|
||||
|
||||
$(OBJECTS): config.h bios.bin
|
||||
|
||||
zxcc: $(OBJECTS)
|
||||
|
||||
Reference in New Issue
Block a user