Compare commits

...

33 Commits

Author SHA1 Message Date
Wayne Warthen
c628ba10f2 Workaround Z280 CPU Bug for LZSA2
The LZSA2 decompressor invoked a known Z280 CPU bug.  A small modification to the code resolves this.
2023-05-07 17:45:43 -07:00
Wayne Warthen
9358299f14 Z280 Workaround for VGARC
Z280 is having an issue with OTDR instruction when loading the font for VGARC.  For now, the use of OTDR has been eliminated.
2023-05-07 16:27:25 -07:00
Wayne Warthen
d445c4a015 Disable LZSA Compression for Z280
- The LZSA2 decompressor code is failing mysteriously on Z280 CPUs.  I have simply disabled it in the Z280 primary configuration file.
2023-05-04 14:14:36 -07:00
Wayne Warthen
e32002545b VGARC Improvements, Doc Fix
- Added ability to enable VGARC and front panel in default config without I/O conflicts (does **not** support having both types of hardware present at the same time).
- Fixed documentation error in issue #345 reported by @MorfeoMatrixx.
2023-05-03 15:58:12 -07:00
Wayne Warthen
7ac88efac1 Support for VGARC
Initial support for Bill Shen's VGARC video/keyboard module for RCBus.
2023-05-02 19:23:51 -07:00
Wayne Warthen
9f71fe05aa Cleanup IDE and PPIDE drivers
- The use of hardware reset has been improved such that it is generally only used at initial boot up.
- Minor improvements to CF card detection and initialization.
- Implement a simple wait mechanism to accommodate the startup time of the RC2014 SD Pico module.
- Front panel I/O port for SC series of systems has been moved to 0x00 which is consistent with all other systems and avoids some I/O conflicts.
2023-04-30 12:03:16 -07:00
Wayne Warthen
ad3c533145 Fix IDE Detection on Spinning Disks
Prior improvement to IDE device detection broke detection of spinning hard disks.  IDE registers cannot be used prior to device init completion (spin up).  Not a problem for CF, but special steps required to ensure devices are fully initialized before register testing.
2023-04-23 18:47:43 -07:00
Wayne Warthen
e43a939f54 Improve IDE Device Detection
Per issue #343, some systems could initially detect a non-existent IDE device which would cause a long time-out.  This should resolve the issue.
2023-04-21 17:08:18 -07:00
Wayne Warthen
e5b7409f44 Support Per-floppy Device Drive Types
- Floppy devices are now configured per-device so that each floppy drive can be different (e.g., first floppy is 3.5" and second floppy is 5.25").
- Removed need to use termination signal on floppy sector I/O.

Addresses issue #318
2023-04-20 16:24:14 -07:00
Wayne Warthen
9100f199b1 Z80-Retro SD Card Support (Alan Cox) 2023-04-18 11:40:22 -07:00
Wayne Warthen
bcc50a31a9 Fix SIO Ports in Z80R Mode 2023-04-17 19:22:37 -07:00
Wayne Warthen
c891ba2bad Support Z80-Retro Platform
Code provided by Alan Cox
2023-04-16 20:30:16 -07:00
Wayne Warthen
2f9e77ca13 Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev 2023-04-14 19:05:49 -07:00
Wayne Warthen
f346209c82 Front Panel Switch Support 2023-04-14 19:05:37 -07:00
Wayne Warthen
0742fb6188 Merge pull request #342 from wwarthen/master
Merge pull request #340 from wwarthen/dev
2023-04-14 19:00:02 -07:00
Wayne Warthen
94239866a5 Merge pull request #340 from wwarthen/dev
Dev
2023-04-14 18:29:17 -07:00
Wayne Warthen
2681b84a20 Finalize v3.2.1 2023-04-14 18:10:24 -07:00
Wayne Warthen
b5437c56e9 Suppress Serial HFC During Boot
If serial hardware flow control is enabled, but not working, then a system will appear dead because it won't send any data to the host computer.  This change suppresses hardware flow control during boot just to ensure that boot messages can make it to the serial console.  This will only be effective for serial interfaces that support dynamic management of HFC.
2023-04-11 13:09:22 -07:00
Wayne Warthen
f640630a06 CPU Speed Calc Tweek
- Exit CPU speed detection routine earlier if the clock is not ticking.
- Fix minor regression in the SBC_simh.asm config file.
2023-04-10 16:20:12 -07:00
Wayne Warthen
53e201bd28 Handle Overflow in CPUSPD
Edge case where the CPU speed detection routine would overflow in a fast emulator and return a speed of 0.000 MHz.  Modified to fail back to the default CPU speed from the config file if an overflow occurs.
2023-04-09 12:48:36 -07:00
Wayne Warthen
51d962aeab Finalize v3.2.1 2023-04-07 10:22:46 -07:00
Wayne Warthen
5f36cf9a12 Fix TUNE Delay Factor Handling 2023-04-03 13:44:52 -07:00
Wayne Warthen
d812066f2e Update Z80 Tests
Update Z80 CPU instruction test suite to v1.2.
2023-03-29 15:46:46 -07:00
Wayne Warthen
7563863be2 DOS/65 Refresh
- Refresh WIP files of DOS/65 from Dan Werner
- Another tweak to SURVEY
- Regen PDF docs
2023-03-27 14:44:54 -07:00
Wayne Warthen
9654d487ba Merge pull request #338 from b1ackmai1er/dev
VGMPLAY documentation and YM2151 support
2023-03-27 14:14:14 -07:00
b1ackmai1er
5b339aef3e Update vgmplay.txt 2023-03-27 23:39:26 +08:00
b1ackmai1er
47a7d81bb9 Update Applications.md
Add basic VGMPLAY information
2023-03-27 23:36:24 +08:00
b1ackmai1er
a92c44e53f ym2151 vgm files 2023-03-26 20:43:47 +08:00
b1ackmai1er
cc9f5dd516 Update vgmplay.asm
YM2151 updates
2023-03-26 19:31:52 +08:00
Wayne Warthen
6e34de0e02 Cosmetic
Minor cosmetic changes in source.
2023-03-25 12:05:57 -07:00
Wayne Warthen
5a6d7f853b Update HEXCOM.COM
Renamed HEXCOM.CPM -> HEXCOM.COM.
2023-03-25 11:57:26 -07:00
b1ackmai1er
a646f49866 Merge pull request #52 from wwarthen/dev
Dev
2023-03-24 17:06:35 +08:00
Wayne Warthen
98a33b8b50 CTC & CPU Speed
- Revamped CTC detection algorithm hoping to handle problem XRBR is having
- Fixed typo in dynamic CPU speed test that caused it to not be properly recorded/reported (credit XRBR)
- Allow use of DEL/RUBOUT keys as backspace in ROM Loader and Debug Monitor
2023-03-23 12:54:57 -07:00
127 changed files with 6249 additions and 1746 deletions

View File

@@ -1,7 +1,19 @@
Version 3.3
-----------
- WBW: Support Front Panel switches
- A?C: Preliminary support for Z80-Retro
- A?C: Support for SD PIO
- A?C: Support for Z80-Retro SD interface
- WBW: Support per-drive floppy configuration
- WBW: Support for Bill Shen's VGARC
Version 3.2.1
-------------
- M?P: Fixed Zeta 2 FDD and CPUSPD config settings
- WBW: Fixed SURVEY.COM (again)
- DDW: Updates to DOS/65 binaries in disk images
- PMS: Updates to VGMPLAY including support for YM2151
- WBW: Fix for quark delay adjustment being trashed
Version 3.2
-----------

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,9 +1,9 @@
**RomWBW ReadMe** \
Version 3.2.1 \
Version 3.3 \
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
22 Mar 2023
03 May 2023
# Overview

View File

@@ -1,6 +1,6 @@
RomWBW ReadMe
Wayne Warthen (wwarthen@gmail.com)
22 Mar 2023
03 May 2023

View File

@@ -615,6 +615,8 @@ NEXTK:
CALL TYPE
DB ' Bytes ROM',TAB,TAB+EOL
LHLD BDOS+1
LXI D,-6
DAD D
CALL BINDEC
CALL TYPE
DB ' Bytes in TPA'

View File

@@ -45,6 +45,7 @@
; 2021-08-13 [WBW] Add support for LiNC Z50 Sound Card
; 2021-08-17 [WBW] When playing via HBIOS, call BF_SNDRESET at end
; 2022-03-20 [DDW] Add support for MBC PSG module
; 2023-03-30 [WBW] Fix for quark delay adjustment being trashed
;_______________________________________________________________________________
;
; ToDo:
@@ -301,6 +302,11 @@ GOPT3 LD A,0 ; SETUP value to PT3 sound files
JR GOPTX ; Play PTx file
GOPTX
LD HL,(QDLY) ; Get basic quark delay
OR A ; Clear carry
SBC HL,DE ; Adjust for file type
LD (QDLY),HL ; Save updated quark delay factor
CALL CRLF2
LD DE, MSGSONGNAME ; Print song name message
CALL PRTSTR
@@ -322,10 +328,6 @@ GOPTX2 LD A,(DE)
CALL CRLF2 ; Formatting
LD DE,MSGPLY ; Playing message
CALL PRTSTR ; Print message
LD HL,(QDLY) ; Get basic quark delay
OR A ; Clear carry
SBC HL,DE ; Adjust for file type
LD (QDLY),HL ; Save updated quark delay factor
CALL START ; Do initialization
PTXLP CALL START+5 ; Play one quark
LD A,(START+10) ; Get setup byte
@@ -655,8 +657,8 @@ TMP .DB 0 ; work around use of undocumented Z80
HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE
OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN
MSGBAN .DB "Tune Player for RomWBW v3.5, 20-Mar-2022",0
MSGUSE .DB "Copyright (C) 2021, Wayne Warthen, GNU GPL v3",13,10
MSGBAN .DB "Tune Player for RomWBW v3.5a, 30-Mar-2023",0
MSGUSE .DB "Copyright (C) 2023, Wayne Warthen, GNU GPL v3",13,10
.DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10
.DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [--hbios] [+tn|-tn]",0

Binary file not shown.

Binary file not shown.

View File

@@ -12,14 +12,12 @@
; default file type, basic file size checking, polled CTC mode
; added by Phil Summers
;
; Bugs: YM2151 playback untested & no mute.
; CTC polled timing - predicted 44100 divider is too slow
; Bugs: CTC polled timing - predicted 44100 divider is too slow
;
; Assemble with:
;
; TASM -80 -b VGMPLAY.ASM VGMPLAY.COM
;
;
; A VGM file can play 44100 samples a second. This may be sound chip
; register commands or PCM data. This player does not support PCM playback
; due to the high processor speed and file size required. Typical VGM files
@@ -31,60 +29,59 @@
; Device and system specific definitions
;------------------------------------------------------------------------------
;
custom .equ 0 ; System configurations
custom .equ 0 ; System configurations
P8X180 .equ 1
RCBUS .equ 2
sbcecb .equ 3
sbcecb .equ 3
MBC .equ 4
;
plt_romwbw .equ 1 ; Build for ROMWBW?
plt_type .equ sbcecb ; Select build configuration
debug .equ 0 ; Display port, register, config info
plt_romwbw .equ 1 ; Build for ROMWBW?
plt_type .equ sbcecb ; Select build configuration
debug .equ 0 ; Display port, register, config info
;
;------------------------------------------------------------------------------
; Platform specific definitions. If building for ROMWBW, these may be overridden
;------------------------------------------------------------------------------
#IF (plt_type=custom)
RSEL .equ 09AH ; Primary AY-3-8910 Register selection
RDAT .equ 09BH ; Primary AY-3-8910 Register data
RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection
RDAT2 .equ 89H ; Secondary AY-3-8910 Register data
RSEL .equ 09AH ; Primary AY-3-8910 Register selection
RDAT .equ 09BH ; Primary AY-3-8910 Register data
RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection
RDAT2 .equ 89H ; Secondary AY-3-8910 Register data
VGMBASE .equ $C0
YMSEL .equ VGMBASE+00H ; Primary YM2162 11000000 a1=0 a0=0
YMDAT .equ VGMBASE+01H ; Primary YM2162 11000001 a1=0 a0=1
YM2SEL .equ VGMBASE+02H ; Secondary YM2162 11000010 a1=1 a0=0
YM2DAT .equ VGMBASE+03H ; Secondary YM2162 11000011 a1=1 a0=1
PSG1REG .equ VGMBASE+08H ; Primary SN76489
PSG2REG .equ VGMBASE+09H ; Secondary SN76489
ctcbase .equ VGMBASE+0CH ; CTC base address
YM2151_SEL1 .equ 0FEH ; Primary YM2151 register selection
YM2151_DAT1 .equ 0FFH ; Primary YM2151 register data
YM2151_SEL2 .equ 0FEH ; Secondary YM2151 register selection
YM2151_DAT2 .equ 0FFH ; Secondary YM2151 register data
plt_cpuspd .equ 6;000000 ; Non ROMWBW cpu speed default
FRAME_DLY .equ 10 ; Frame delay (~ 1/44100)
YMSEL .equ VGMBASE+00H ; Primary YM2162 11000000 a1=0 a0=0
YMDAT .equ VGMBASE+01H ; Primary YM2162 11000001 a1=0 a0=1
YM2SEL .equ VGMBASE+02H ; Secondary YM2162 11000010 a1=1 a0=0
YM2DAT .equ VGMBASE+03H ; Secondary YM2162 11000011 a1=1 a0=1
PSG1REG .equ VGMBASE+04H ; Primary SN76489
PSG2REG .equ VGMBASE+05H ; Secondary SN76489
YM2151_SEL1 .equ VGMBASE+08H ; Primary YM2151 register selection
YM2151_DAT1 .equ VGMBASE+09H ; Primary YM2151 register data
YM2151_SEL2 .equ VGMBASE+0AH ; Secondary YM2151 register selection
YM2151_DAT2 .equ VGMBASE+0BH ; Secondary YM2151 register data
ctcbase .equ VGMBASE+0CH ; CTC base address
plt_cpuspd .equ 6;000000 ; Non ROMWBW cpu speed default
FRAME_DLY .equ 10 ; Frame delay (~ 1/44100)
#ENDIF
;
#IF (plt_type=P8X180)
RSEL .equ 82H ; Primary AY-3-8910 Register selection
RDAT .equ 83H ; Primary AY-3-8910 Register data
RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection
RDAT2 .equ 89H ; Secondary AY-3-8910 Register data
PSG1REG .equ 84H ; Primary SN76489
PSG2REG .equ 8AH ; Secondary SN76489
YM2151_SEL1 .equ 0B0H ; Primary YM2151 register selection
YM2151_DAT1 .equ 0B1H ; Primary YM2151 register data
YM2151_SEL2 .equ 0B2H ; Secondary YM2151 register selection
YM2151_DAT2 .equ 0B3H ; Secondary YM2151 register data
ctcbase .equ 000H ; CTC base address
YMSEL .equ 000H ; Primary YM2162 11000000 a1=0 a0=0
YMDAT .equ 000H ; Primary YM2162 11000001 a1=0 a0=1
YM2SEL .equ 000H ; Secondary YM2162 11000010 a1=1 a0=0
YM2DAT .equ 000H ; Secondary YM2162 11000011 a1=1 a0=1
FRAME_DLY .equ 48 ; Frame delay (~ 1/44100)
plt_cpuspd .equ 20 ; Non ROMWBW cpu speed default
RSEL .equ 82H ; Primary AY-3-8910 Register selection
RDAT .equ 83H ; Primary AY-3-8910 Register data
RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection
RDAT2 .equ 89H ; Secondary AY-3-8910 Register data
PSG1REG .equ 84H ; Primary SN76489
PSG2REG .equ 8AH ; Secondary SN76489
YM2151_SEL1 .equ 0B0H ; Primary YM2151 register selection
YM2151_DAT1 .equ 0B1H ; Primary YM2151 register data
YM2151_SEL2 .equ 0B2H ; Secondary YM2151 register selection
YM2151_DAT2 .equ 0B3H ; Secondary YM2151 register data
ctcbase .equ 000H ; CTC base address
YMSEL .equ 000H ; Primary YM2162 11000000 a1=0 a0=0
YMDAT .equ 000H ; Primary YM2162 11000001 a1=0 a0=1
YM2SEL .equ 000H ; Secondary YM2162 11000010 a1=1 a0=0
YM2DAT .equ 000H ; Secondary YM2162 11000011 a1=1 a0=1
FRAME_DLY .equ 48 ; Frame delay (~ 1/44100)
plt_cpuspd .equ 20 ; Non ROMWBW cpu speed default
#ENDIF
;
#IF (plt_type=RCBUS)
@@ -103,7 +100,7 @@ YMSEL .equ 000H ; UNDEFINED ; Primary YM2162 11000000 a1=0 a0=0
YMDAT .equ 000H ; UNDEFINED ; Primary YM2162 11000001 a1=0 a0=1
YM2SEL .equ 000H ; UNDEFINED ; Secondary YM2162 11000010 a1=1 a0=0
YM2DAT .equ 000H ; UNDEFINED ; Secondary YM2162 11000011 a1=1 a0=1
plt_cpuspd .equ 7;372800 ; CPUOSC ; Non ROMWBW cpu speed default
plt_cpuspd .equ 7;372800 ; CPUOSC ; Non ROMWBW cpu speed default
FRAME_DLY .equ 12 ; Frame delay (~ 1/44100)
#ENDIF
;
@@ -184,7 +181,7 @@ RTCIO .equ 070H
; YM2162 Register write macros - with wait and timeout
;------------------------------------------------------------------------------
;
#DEFINE setreg(reg,val) \
#DEFINE s2612reg(reg,val) \
#DEFCONT \ ld a,reg
#DEFCONT \ out (YMSEL),a
#DEFCONT \ ld a,val
@@ -195,7 +192,7 @@ RTCIO .equ 070H
#DEFCONT \ jp nc,$+5
#DEFCONT \ djnz $-6
;
#DEFINE setreg2(reg,val) \
#DEFINE s2612reg2(reg,val) \
#DEFCONT \ ld a,reg
#DEFCONT \ out (YM2SEL),a
#DEFCONT \ ld a,val
@@ -205,9 +202,30 @@ RTCIO .equ 070H
#DEFCONT \ rlca
#DEFCONT \ jp nc,$+5
#DEFCONT \ djnz $-6
;
;------------------------------------------------------------------------------
; VGM Codes - see vgmrips.net/wiki/VGM_specification
; YM2151 Register write macros - with wait and timeout
;------------------------------------------------------------------------------
;
; Status Byte: Bit
; 7 Busy Flag (1=Busy)
; 6-2 Not Used
; 1 Timer B Overflow (0=No Overflow, 1=Overflow)
; 0 Timer A Overflow (0=No Overflow, 1=Overflow)
;
#DEFINE s2151reg(reg,val) \
#DEFCONT \ ld a,reg
#DEFCONT \ out (YM2151_SEL1),a
#DEFCONT \ ld a,val
#DEFCONT \ out (YM2151_DAT1),a
#DEFCONT \ ld b,0
#DEFCONT \ in a,(YM2151_SEL1)
#DEFCONT \ rlca
#DEFCONT \ jp nc,$+5
#DEFCONT \ djnz $-6
;
;------------------------------------------------------------------------------
; VGM Codes - see vgmrips.net/wiki/VGM_Specification
;------------------------------------------------------------------------------
VGM_GG_W .equ 04FH ; GAME GEAR PSG STEREO. WRITE DD TO PORT 0X06
@@ -219,8 +237,8 @@ VGM_WNS .equ 061H ; WAIT N SAMPLES
VGM_W735 .equ 062H ; WAIT 735 SAMPLES (1/60TH SECOND)
VGM_W882 .equ 063H ; WAIT 882 SAMPLES (1/50TH SECOND)
VGM_ESD .equ 066H ; END OF SOUND DATA
VGM_YM21511_W .equ 054H ; YM2612 #1 WRITE VALUE DD
VGM_YM21512_W .equ 0A4H ; YM2612 #2 WRITE VALUE DD
VGM_YM21511_W .equ 054H ; YM2151 #1 WRITE VALUE DD
VGM_YM21512_W .equ 0A4H ; YM2151 #2 WRITE VALUE DD
;------------------------------------------------------------------------------
; Generic CP/M definitions
@@ -490,7 +508,7 @@ YM2162_2 CP VGM_YM26122_W
; YM2151 SECTION
;
YM2151_1 CP VGM_YM21511_W
JR NZ,YM2151_2
JR NZ,YM2151_2
LD A,(HL)
OUT (YM2151_SEL1),A
INC HL
@@ -759,252 +777,254 @@ SKIP1: LD A,(IX+0)
XOR A
OUT (RDAT), A
OUT (RDAT2), A
#IFDEF SBCV2004
CALL FASTIO
#ENDIF
SKIP2: LD A,(IX+0) ; mute all channels on ym2612
AND %00110000
JP Z,SKIP3
setreg($22,$00) ; lfo off
s2612reg($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
setreg($28,$02) ; note off ch 3
setreg($28,$04) ; note off ch 4
setreg($28,$05) ; note off ch 5
setreg($28,$06) ; note off ch 6
setreg($2b,$00) ; dac off
s2612reg($27,$00) ; Disable independant Channel 3
s2612reg($28,$00) ; note off ch 1
s2612reg($28,$01) ; note off ch 2
s2612reg($28,$02) ; note off ch 3
s2612reg($28,$04) ; note off ch 4
s2612reg($28,$05) ; note off ch 5
s2612reg($28,$06) ; note off ch 6
s2612reg($2b,$00) ; dac off
setreg($b4,$00) ; sound off ch 1-3
setreg($b5,$00)
setreg($b6,$00)
setreg2($b4,$00) ; sound off ch 4-6
setreg2($b5,$00)
setreg2($b6,$00)
s2612reg($b4,$00) ; sound off ch 1-3
s2612reg($b5,$00)
s2612reg($b6,$00)
s2612reg2($b4,$00) ; sound off ch 4-6
s2612reg2($b5,$00)
s2612reg2($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)
s2612reg($40,$7f) ; ch 1-3 total level minimum
s2612reg($41,$7f)
s2612reg($42,$7f)
s2612reg($44,$7f)
s2612reg($45,$7f)
s2612reg($46,$7f)
s2612reg($48,$7f)
s2612reg($49,$7f)
s2612reg($4a,$7f)
s2612reg($4c,$7f)
s2612reg($4d,$7f)
s2612reg($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)
s2612reg2($40,$7f) ; ch 4-6 total level minimum
s2612reg2($41,$7f)
s2612reg2($42,$7f)
s2612reg2($44,$7f)
s2612reg2($45,$7f)
s2612reg2($46,$7f)
s2612reg2($48,$7f)
s2612reg2($49,$7f)
s2612reg2($4a,$7f)
s2612reg2($4c,$7f)
s2612reg2($4d,$7f)
s2612reg2($4e,$7f)
#if (0)
setreg($2a,$00) ; dac value
s2612reg($2a,$00) ; dac value
setreg($24,$00) ; timer A frequency
setreg($25,$00) ; timer A frequency
setreg($26,$00) ; time B frequency
s2612reg($24,$00) ; timer A frequency
s2612reg($25,$00) ; timer A frequency
s2612reg($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)
s2612reg($30,$00) ; ch 1-3 multiply & detune
s2612reg($31,$00)
s2612reg($32,$00)
s2612reg($34,$00)
s2612reg($35,$00)
s2612reg($36,$00)
s2612reg($38,$00)
s2612reg($39,$00)
s2612reg($3a,$00)
s2612reg($3c,$00)
s2612reg($3d,$00)
s2612reg($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)
s2612reg2($30,$00) ; ch 4-6 multiply & detune
s2612reg2($31,$00)
s2612reg2($32,$00)
s2612reg2($34,$00)
s2612reg2($35,$00)
s2612reg2($36,$00)
s2612reg2($38,$00)
s2612reg2($39,$00)
s2612reg2($3a,$00)
s2612reg2($3c,$00)
s2612reg2($3d,$00)
s2612reg2($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)
s2612reg($50,$00) ; ch 1-3 attack rate and scaling
s2612reg($51,$00)
s2612reg($52,$00)
s2612reg($54,$00)
s2612reg($55,$00)
s2612reg($56,$00)
s2612reg($58,$00)
s2612reg($59,$00)
s2612reg($5a,$00)
s2612reg($5c,$00)
s2612reg($5d,$00)
s2612reg($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)
s2612reg2($50,$00) ; ch 4-6 attack rate and scaling
s2612reg2($51,$00)
s2612reg2($52,$00)
s2612reg2($54,$00)
s2612reg2($55,$00)
s2612reg2($56,$00)
s2612reg2($58,$00)
s2612reg2($59,$00)
s2612reg2($5a,$00)
s2612reg2($5c,$00)
s2612reg2($5d,$00)
s2612reg2($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)
s2612reg($60,$00) ; ch 1-3 decay rate and am enable
s2612reg($61,$00)
s2612reg($62,$00)
s2612reg($64,$00)
s2612reg($65,$00)
s2612reg($66,$00)
s2612reg($68,$00)
s2612reg($69,$00)
s2612reg($6a,$00)
s2612reg($6c,$00)
s2612reg($6d,$00)
s2612reg($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)
s2612reg2($60,$00) ; ch 4-6 decay rate and am enable
s2612reg2($61,$00)
s2612reg2($62,$00)
s2612reg2($64,$00)
s2612reg2($65,$00)
s2612reg2($66,$00)
s2612reg2($68,$00)
s2612reg2($69,$00)
s2612reg2($6a,$00)
s2612reg2($6c,$00)
s2612reg2($6d,$00)
s2612reg2($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)
s2612reg($70,$00) ; ch 1-3 sustain rate
s2612reg($71,$00)
s2612reg($72,$00)
s2612reg($74,$00)
s2612reg($75,$00)
s2612reg($76,$00)
s2612reg($78,$00)
s2612reg($79,$00)
s2612reg($7a,$00)
s2612reg($7c,$00)
s2612reg($7d,$00)
s2612reg($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)
s2612reg2($70,$00) ; ch 4-6 sustain rate
s2612reg2($71,$00)
s2612reg2($72,$00)
s2612reg2($74,$00)
s2612reg2($75,$00)
s2612reg2($76,$00)
s2612reg2($78,$00)
s2612reg2($79,$00)
s2612reg2($7a,$00)
s2612reg2($7c,$00)
s2612reg2($7d,$00)
s2612reg2($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)
s2612reg($80,$00) ; ch 1-3 release rate and sustain level
s2612reg($81,$00)
s2612reg($82,$00)
s2612reg($84,$00)
s2612reg($85,$00)
s2612reg($86,$00)
s2612reg($88,$00)
s2612reg($89,$00)
s2612reg($8a,$00)
s2612reg($8c,$00)
s2612reg($8d,$00)
s2612reg($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)
s2612reg2($80,$00) ; ch 4-6 release rate and sustain level
s2612reg2($81,$00)
s2612reg2($82,$00)
s2612reg2($84,$00)
s2612reg2($85,$00)
s2612reg2($86,$00)
s2612reg2($88,$00)
s2612reg2($89,$00)
s2612reg2($8a,$00)
s2612reg2($8c,$00)
s2612reg2($8d,$00)
s2612reg2($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)
s2612reg($90,$00) ; ch 1-3 ssg-eg
s2612reg($91,$00)
s2612reg($92,$00)
s2612reg($94,$00)
s2612reg($95,$00)
s2612reg($96,$00)
s2612reg($98,$00)
s2612reg($99,$00)
s2612reg($9a,$00)
s2612reg($9c,$00)
s2612reg($9d,$00)
s2612reg($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)
s2612reg2($90,$00) ; ch 4-6 ssg-eg
s2612reg2($91,$00)
s2612reg2($92,$00)
s2612reg2($94,$00)
s2612reg2($95,$00)
s2612reg2($96,$00)
s2612reg2($98,$00)
s2612reg2($99,$00)
s2612reg2($9a,$00)
s2612reg2($9c,$00)
s2612reg2($9d,$00)
s2612reg2($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)
s2612reg($a0,$00) ; ch 1-3 frequency
s2612reg($a1,$00)
s2612reg($a2,$00)
s2612reg($a4,$00)
s2612reg($a5,$00)
s2612reg($a6,$00)
; s2612reg($a8,$00) ; ch 3 special mode
; s2612reg($a9,$00)
; s2612reg($aa,$00)
; s2612reg($ac,$00)
; s2612reg($ad,$00)
; s2612reg($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)
s2612reg2($a0,$00) ; ch 4-6 frequency
s2612reg2($a1,$00)
s2612reg2($a2,$00)
s2612reg2($a4,$00)
s2612reg2($a5,$00)
s2612reg2($a6,$00)
; s2612reg2($a8,$00) ; ch 3 special mode
; s2612reg2($a9,$00)
; s2612reg2($aa,$00)
; s2612reg2($ac,$00)
; s2612reg2($ad,$00)
; s2612reg2($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)
s2612reg($b0,$00) ; ch 1-3 algorith + feedback
s2612reg($b1,$00)
s2612reg($b2,$00)
s2612reg2($b0,$00) ; ch 4-6 algorith + feedback
s2612reg2($b1,$00)
s2612reg2($b2,$00)
#endif
@@ -1014,6 +1034,64 @@ SKIP3: LD A,(IX+0) ; For YM2151 ... Unimplemented
; MUTE YM2151
s2151reg($14,$30) ; disable timer %00110000
s2151reg($0f,$00) ; disable noise
;
s2151reg($1b,$00) ; CTx output off, LFO waveform
s2151reg($08,$00) ; key off all channels
s2151reg($08,$01)
s2151reg($08,$02)
s2151reg($08,$03)
s2151reg($08,$04)
s2151reg($08,$05)
s2151reg($08,$06)
s2151reg($08,$07)
s2151reg($60,$7f) ; total level = silent
s2151reg($61,$7f)
s2151reg($62,$7f)
s2151reg($63,$7f)
s2151reg($64,$7f)
s2151reg($65,$7f)
s2151reg($66,$7f)
s2151reg($67,$7f)
s2151reg($68,$7f)
s2151reg($69,$7f)
s2151reg($6A,$7f)
s2151reg($6B,$7f)
s2151reg($6C,$7f)
s2151reg($6D,$7f)
s2151reg($6E,$7f)
s2151reg($6F,$7f)
s2151reg($70,$7f)
s2151reg($71,$7f)
s2151reg($72,$7f)
s2151reg($73,$7f)
s2151reg($74,$7f)
s2151reg($75,$7f)
s2151reg($76,$7f)
s2151reg($77,$7f)
s2151reg($78,$7f)
s2151reg($79,$7f)
s2151reg($7A,$7f)
s2151reg($7B,$7f)
s2151reg($7C,$7f)
s2151reg($7D,$7f)
s2151reg($7E,$7f)
s2151reg($7F,$7f)
s2151reg($20,$00) ; channel output off, no feedback
s2151reg($21,$00)
s2151reg($22,$00)
s2151reg($23,$00)
s2151reg($24,$00)
s2151reg($25,$00)
s2151reg($26,$00)
s2151reg($27,$00)
;
SKIP4 RET
;
;------------------------------------------------------------------------------

View File

@@ -21,7 +21,7 @@ Supported platforms
===================
VGM Player is currently being developed on the ROMWBW platform using the Retrobrew computers
EBC-SBC-V2 (Z80), ECB-SCG (AY-3-8910) and ECB-VGM (YM2612 and 2xSN76489) board.
EBC-SBC-V2 (Z80), ECB-SCG (AY-3-8910) and ECB-VGM (YM2612,YM2151 2xSN76489) board.
It can be configured to run with other hardware such as RCBus, P8X180 and nhyodyne MBC.
VGM files can be very big and are limited in size by the available TPA space, which is typically 52k.
@@ -50,13 +50,15 @@ FIELDMAP.VGM - SN76489+YM2612 - Taikou Risshiden: Field Map: Summer
ITSGAMOV.VGM - SN76489+YM2612 - Puyo Puyo Tsuu: It's Game Over! : 16K
STARTDEM.VGN - 2xSN76489+AY-3-8910 * Exed Exes / Savage Bees: Start Demo ~Main BGM : 32K
INCHINA.VGM - YM2612 * Double Dragon 3: The Rosetta Stone: In China : 44K
SURE.VGM - YM2151 - Martial Age: Sure?? : 36K
SABERDAN.VGM - YM2151 - Road Runner: Sabre Dance (Attract Mode - Stage 4) : 28K
* Included in disk images
VGM sources
===========
https://www.smspower.org/forums/15359-VGMPacksGameGearMegaCollection
https://vgmrips.net/packs/chip/ym2612
https://vgmrips.net/packs/chip/ym2151
https://project2612.org/
VGM Tools

View File

@@ -1028,3 +1028,81 @@ hardware interface code is specific to RomWBW and the application will
not operate correctly on non-RomWBW systems.
The source code is provided in the RomWBW distribution.
`\clearpage`{=latex}
# VGMPLAY
This application will allow you to play Video Game Music files. VGM
files contain music samples from a range of different sound chips
that were used in arcade games, game consoles and personal computer
systems.
Video Game Music files have a .VGM file extension and each file
contains an embedded header that identifies the hardware it is
intended for and also the title of the music.
All RomWBW operating system boot disks include a selection of sound
files in user area 3. Additional music files can be found at:
[VGMRIPS website](https://vgmrips.net)
[PROJECT2612 website](https://project2612.org/)
Sound files are loaded into memory for playback, so the maximum size
file that can be played is around 52Kb.
Sound chips currently supported are:
* AY-3-8190 (and equivalent YM2149)
* YM2612 (and equivalent YM3848)
* SN76489 (single chip mono and dual chip stereo)
* YM2151
VGMPLAY supports playback of files with multiple combinations of these
chips.
## Syntax
`VGMPLAY `*`<filename>`*
*`<filename>`* is the name of a sound file ending in .VGM
## Usage
VGMPLAY does not automatically detect the hardware platform or sound
hardware that you are using. This means a version customized for your
system must be assembled before use.
To play a sound file, just use the VGMPLAY command and specify the file
to play after the command. So, for example, `VGMPLAY TEDDY` will load
the TEDDY.VGM sound file into memory and begin playing it.
Playback can be stopped by pressing a key. There may be a delay before
playback stops.
## Notes
The default build configuration for VGMPLAY is:
CPU speed: Autodetected
| chip | number | port | notes
| --------- | ------- | -------- | ----------
| AY-3-8910 | 1st | 09ah | stereo
| AY-3-8910 | 2nd | not set | stereo
| YM2612 | 1st | 0c0h | stereo
| YM2612 | 2nd | 0c4h | stereo
| SN76489 | 1st | 0c8h | mono/left
| SN76489 | 2nd | 0c9h | mono/right
| YM2151 | 1st | 0cah | stereo
| YM2151 | 2nd | 0cbh | stereo
Inconsistant, garbled or distorted playback can be an indication that
your CPU clock speed is too high for your sound chip. In this case, if
your platform supports speed switching, then the CPUSPD application
can be used to reduce your processor speed.
VGMPLAY is still under development. The source code is provided in the
RomWBW distribution.

View File

@@ -1,4 +1,4 @@
$define{doc_ver}{Version 3.2.1}$
$define{doc_ver}{Version 3.3}$
$define{doc_product}{RomWBW}$
$define{doc_root}{https://github.com/wwarthen/RomWBW/raw/dev/Doc}$
$ifndef{doc_title}$ $define{doc_title}{Document Title}$ $endif$

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

View File

@@ -2123,6 +2123,17 @@ Wait States (D) is the actual number of wait states, not the number
of wait states added. The returned Status (A) is a standard HBIOS
result code.
#### SYSGET Subfunction 0xF4 -- Get Front Panel Swithes (PANEL)
| **Entry Parameters** | **Returned Values** |
|----------------------------------------|----------------------------------------|
| B: 0xF8 | A: Status |
| C: 0xF4 | L: Switches |
This function will return the current value of the switches (L) from the
front panel of the system. If no front panel is available in the
system, the returned Status (A) will indicate a No Hardware error.
### Function 0xF9 -- System Set (SYSSET)
| **Entry Parameters** | **Returned Values** |
@@ -2206,6 +2217,18 @@ limited set of divisors. If there is no satisfactory divisor to
retain the existing baud rate under the new CPU speed, then the baud
rate of the ASCI port(s) will be affected.
#### SYSSET Subfunction 0xF4 -- Set Front Panel LEDs (PANEL)
| **Entry Parameters** | **Returned Values** |
|----------------------------------------|----------------------------------------|
| B: 0xF9 | A: Status |
| C: 0xF4 | |
| L: LEDs | |
This function will set the front panel LEDs based on the bits in L. If
no front panel is available in the system, the returned Status (A) will
indicate a No Hardware error.
### Function 0xFA -- System Peek (SYSPEEK)
| **Entry Parameters** | **Returned Values** |

View File

@@ -201,6 +201,7 @@ below, **carefully** pick the appropriate ROM image for your hardware.
| [Z80 ZRC CPU Module]^7^ | RCBus | RCZ80_zrc.rom | 115200 |
| [Z280 ZZRCC CPU Module]^7^ | RCBus | RCZ280_zzrc.rom | 115200 |
| [Z280 ZZ80MB SBC]^7^ | RCBus | RCZ280_zz80mb.rom | 115200 |
| [Z80-Retro SBC]^8^ | - | Z80RETRO_std.rom | 38400 |
| ^1^Designed by Andrew Lynch
| ^2^Designed by Sergey Kiselev
@@ -209,6 +210,7 @@ below, **carefully** pick the appropriate ROM image for your hardware.
| ^5^Designed by Stephen Cousins
| ^6^Designed by Steve Garcia
| ^7^Designed by Bill Shen
| ^8^Designed by Peter Wilson
RCBus refers to Spencer Owen's RC2014 bus specification and derivatives
including RC26, RC40, RC80, and BP80.
@@ -782,6 +784,55 @@ The use of diagnostic levels above 4 are really intended only for
software developers. I do not recommend changing this under
normal circumstances.
## Front Panel
RomWBW supports the concept of a simple front panel. The following
image is a conceptual view of such a front panel. If your system has a
front panel, it should look similar to the [RomWBW Front Panel](#panel).
![RomWBW Front Panel](Graphics/Panel){#panel width=50% }
The LEDs in the top row of the panel are used for multiple purposes.
They are initially used to display the progress of the
system boot. This may help in diagnosing a hardware or configuration
issue in a system that does not progress far enough to display text
output on the console. The meaning of the LEDs is:
| | |
|------------|------------------------------|
| `O-------` | System Boot has started |
| `OO------` | Common RAM bank activated |
| `OOO-----` | HBIOS transitioned to RAM |
| `OOOO----` | Basic initialization done |
| `OOOOO---` | CPU detection complete |
| `OOOOOO--` | System timer configured |
| `OOOOOOO-` | Pre-console device init done |
| `OOOOOOOO` | Console activation |
Once the system has booted, the LEDs are used to indicate disk device
activity. Each LED numbered 7-0 represents disk units 7-0. As each
disk device performs I/O, the LED will light.
The second row of the front panel is composed of switches that allow
you to control a few aspects of the system startup.
The first two switches affect the device used as the console initially.
Setting the CRT/Serial switch will cause the system to boot directly
to an attached CRT device (if available). Setting the Pri/Sec switch
will cause the system to boot to the secondary Serial or CRT device
(depending on the setting of the first switch).
The final six switches allow you to cause the system to automatically
boot into a desired function. The Auto/Menu switch must be set to
enable this, otherwise the normal ROM Loader prompt will be used.
If the Disk/ROM switch is not set, then you can use the last 3
switches to select a ROM app to auto-start. If the Disk/ROM switch is
set, then the system will attempt a disk boot based on the following
switches. The Floppy/Hard switch can be used to boot to a Floppy or
Hard Disk. In either case, the first Floppy or Hard Disk will be used
for the boot. If a Hard Disk boot is selected, then the last three
switches can be used to select any of the first 8 slices.
# Disk Management
The systems supported by RomWBW all have the ability to use persistent
@@ -3757,6 +3808,7 @@ the RomWBW HBIOS configuration.
- WDC Floppy Disk Controller w/ 3.5" HD Drives
- Onboard IDE Hard Disk Interface Module
- PPIDE Hard Disk Interface Module
- VGARC Video & Keyboard Module
- Serial baud rate is usually determined by hardware for ACIA and
SIO interfaces
@@ -3780,6 +3832,7 @@ the RomWBW HBIOS configuration.
- WDC Floppy Disk Controller w/ 3.5" HD Drives
- Onboard IDE Hard Disk Interface Module
- PPIDE Hard Disk Interface Module
- VGARC Video & Keyboard Module
- Serial baud rate is usually determined by hardware for ACIA and
SIO interfaces
@@ -3803,11 +3856,27 @@ the RomWBW HBIOS configuration.
- WDC Floppy Disk Controller w/ 3.5" HD Drives
- Onboard IDE Hard Disk Interface Module
- PPIDE Hard Disk Interface Module
- VGARC Video & Keyboard Module
- Serial baud rate is usually determined by hardware for ACIA and
SIO interfaces
`\clearpage`{=latex}
### Z80-Retro SBC
| | |
|-------------------|------------------|
| ROM Image File | Z80RETRO_std.rom |
| Console Baud Rate | 38400 |
| Interrupts | Mode 2 |
- CPU speed is assumed to be 14.7456 MHz
- Hardware auto-detected:
- SIO Serial Interface Module
- Onboard CTC
`\clearpage`{=latex}
## Appendix B - Device Summary
The table below briefly describes each of the possible devices that
@@ -3857,5 +3926,6 @@ may be discovered by RomWBW in your system.
| USB-FIFO | Char | FT232H-based ECB USB FIFO |
| VDU | Video | MC6845 Family Video Display Controller |
| VGA | Video | HD6445CP4-based Video Display Controller |
| VRC | Video | VGARC Video Display Controller |
| YM | Audio | YM2612 Programmable Sound Generator |
| Z2U | Char | Zilog Z280 CPU Built-in Serial Ports |

View File

@@ -11,8 +11,8 @@ echo Preparing compressed font files...
lzsa -f2 -r font8x8u.bin font8x8c.bin || exit /b
lzsa -f2 -r font8x11u.bin font8x11c.bin || exit /b
lzsa -f2 -r font8x16u.bin font8x16c.bin || exit /b
lzsa -f2 -r fontcgau.bin fontcgac.bin || exit /b
lzsa -f2 -r fontvgarcu.bin fontvgarcc.bin || exit /b
fonttool font8x8u.bin > font8x8u.asm || exit /b
fonttool font8x11u.bin > font8x11u.asm || exit /b
@@ -20,6 +20,7 @@ fonttool font8x16u.bin > font8x16u.asm || exit /b
fonttool font8x8c.bin > font8x8c.asm || exit /b
fonttool font8x11c.bin > font8x11c.asm || exit /b
fonttool font8x16c.bin > font8x16c.asm || exit /b
fonttool fontcgau.bin > fontcgau.asm || exit /b
fonttool fontcgac.bin > fontcgac.asm || exit /b
fonttool fontvgarcu.bin > fontvgarcu.asm || exit /b
fonttool fontvgarcc.bin > fontvgarcc.asm || exit /b

View File

@@ -1,8 +1,8 @@
OBJECTS = \
font8x8u.asm font8x11u.asm font8x16u.asm fontcgau.asm \
font8x8c.asm font8x11c.asm font8x16c.asm fontcgac.asm
font8x8u.asm font8x11u.asm font8x16u.asm fontcgau.asm fontvgarcu.asm \
font8x8c.asm font8x11c.asm font8x16c.asm fontcgac.asm fontvgarcc.asm
OTHERS = font8x8c.bin font8x11c.bin font8x16c.bin fontcgac.bin
OTHERS = font8x8c.bin font8x11c.bin font8x16c.bin fontcgac.bin fontvgarcc.bin
TOOLS = ../../Tools
@@ -26,5 +26,8 @@ font8x16c.bin: font8x16u.bin
fontcgac.bin: fontcgau.bin
$(BINDIR)/lzsa -f2 -r $< $@
fontvgarcc.bin: fontvgarcu.bin
$(BINDIR)/lzsa -f2 -r $< $@
%.asm: %.bin
$(BINDIR)/bin2asm $< > $@

BIN
Source/Fonts/fontvgarcu.bin Normal file

Binary file not shown.

View File

@@ -117,7 +117,11 @@ GET ($F8):
L=Clock Mult (0:Half, 1:Full, 2: Double)
D=Memory Wait States
E=I/O Wait States
PANEL ($F4):
BC=Function/Subfunction A=Result
L=Switch Values
SET ($F9):
BC=Function/Subfunction A=Result
@@ -142,6 +146,11 @@ SET ($F9):
E=I/O Wait States
PANEL ($F4):
BC=Function/Subfunction A=Result
L=LED Values
PEEK ($FA):
B=Function A=Result
D=Bank E=Byte Value

View File

@@ -223,5 +223,6 @@ call Build SCZ180 sc503 || exit /b
call Build DYNO std || exit /b
call Build UNA std || exit /b
call Build RPH std || exit /b
call Build Z80RETRO std || exit /b
goto :eof

View File

@@ -27,7 +27,7 @@ $ErrorAction = 'Stop'
# UNA BIOS is simply imbedded, it is not built here.
#
$PlatformListZ80 = "SBC", "MBC", "ZETA", "ZETA2", "RCZ80", "UNA"
$PlatformListZ80 = "SBC", "MBC", "ZETA", "ZETA2", "RCZ80", "Z80RETRO", "UNA"
$PlatformListZ180 = "N8", "MK4", "RCZ180", "SCZ180", "DYNO", "RPH"
$PlatformListZ280 = "RCZ280"

View File

@@ -38,6 +38,7 @@ if [ "${ROM_PLATFORM}" == "dist" ] ; then
ROM_PLATFORM="SCZ180"; ROM_CONFIG="sc140"; bash Build.sh
ROM_PLATFORM="SCZ180"; ROM_CONFIG="sc503"; bash Build.sh
ROM_PLATFORM="UNA"; ROM_CONFIG="std"; bash Build.sh
ROM_PLATFORM="Z80RETRO"; 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

View File

@@ -29,6 +29,9 @@
CPUOSC .SET 18432000 ; CPU OSC FREQ IN MHZ
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
MEMMGR .SET MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
;
Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
@@ -46,6 +49,7 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
;

View File

@@ -29,6 +29,9 @@
CPUOSC .SET 18432000 ; CPU OSC FREQ IN MHZ
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
MEMMGR .SET MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
;
Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
@@ -46,9 +49,9 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER

View File

@@ -30,6 +30,9 @@ CPUOSC .SET 12000000 ; CPU OSC FREQ IN MHZ
INTMODE .SET 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
MEMMGR .SET MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
;
Z280_MEMLOWAIT .SET 0 ; Z280: LOW 8MB MEMORY WAIT STATES (0-3)
@@ -45,6 +48,7 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -30,6 +30,9 @@ CPUOSC .SET 12000000 ; CPU OSC FREQ IN MHZ
INTMODE .SET 3 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
MEMMGR .SET MM_Z280 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
;
Z280_MEMLOWAIT .SET 0 ; Z280: LOW 8MB MEMORY WAIT STATES (0-3)
@@ -45,6 +48,7 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -32,6 +32,9 @@ CPUOSC .SET 12000000 ; CPU OSC FREQ IN MHZ
INTMODE .SET 3 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
MEMMGR .SET MM_Z280 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
;
RAMLOC .SET 23 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
@@ -51,7 +54,8 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]

View File

@@ -32,6 +32,9 @@ CPUOSC .SET 14745600 ; CPU OSC FREQ IN MHZ
INTMODE .SET 3 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
MEMMGR .SET MM_Z280 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
;
RAMSIZE .SET 256 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
@@ -59,7 +62,8 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]

View File

@@ -33,11 +33,12 @@ CPUOSC .SET 10000000 ; CPU OSC FREQ IN MHZ
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
WDOGMODE .SET WDOG_EZZ80 ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
WDOGIO .SET $6F ; WATCHDOG REGISTER ADR
;
DIAGENABLE .SET FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
;
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
@@ -60,6 +61,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -30,6 +30,9 @@ CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
KIOENABLE .SET TRUE ; ENABLE ZILOG KIO SUPPORT
@@ -55,6 +58,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -29,6 +29,9 @@
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
SKZENABLE .SET TRUE ; ENABLE SERGEY'S Z80-512K FEATURES
SKZDIV .SET DIV_12 ; UART CLK (CLK2) DIVIDER FOR Z80-512K
WDOGMODE .SET WDOG_SKZ ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
@@ -50,6 +53,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -29,6 +29,9 @@
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
@@ -41,6 +44,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
@@ -53,6 +57,7 @@ FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT SC ONLY
;
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)

View File

@@ -33,11 +33,13 @@ CPUOSC .SET 16000000 ; CPU OSC FREQ IN MHZ
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
EIPCENABLE .SET TRUE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
WDOGMODE .SET WDOG_EZZ80 ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
WDOGIO .SET $6F ; WATCHDOG REGISTER ADR
;
DIAGENABLE .SET FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
LEDENABLE .SET TRUE ; ENABLES STATUS LED (SINGLE LED)
LEDPORT .SET $6E ; STATUS LED PORT ADDRESS
;
@@ -65,6 +67,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -30,6 +30,9 @@
CPUOSC .SET 14745600 ; CPU OSC FREQ IN MHZ
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
RAMSIZE .SET 1536 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .SET MM_ZRC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
;
@@ -42,7 +45,8 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]

View File

@@ -31,6 +31,9 @@
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
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]
@@ -46,6 +49,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -35,7 +35,8 @@ USELZSA2 .SET TRUE ; ENABLE FONT COMPRESSION
;
KIOENABLE .SET TRUE ; ENABLE ZILOG KIO SUPPORT
;
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
DSKYENABLE .SET TRUE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
;

View File

@@ -30,6 +30,9 @@ INTMODE .SET 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
;
HTIMENABLE .SET TRUE ; ENABLE SIMH TIMER SUPPORT
;
SIMRTCENABLE .SET TRUE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
DSRTCENABLE .SET FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
;
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
UARTSBCFORCE .SET TRUE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
;

View File

@@ -35,8 +35,9 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
;
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .SET $0D ; DIAGNOSTIC PORT ADDRESS
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
FPLED_IO .SET $0D ; FP: PORT ADDRESS FOR FP LEDS
;
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
@@ -50,6 +51,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -35,8 +35,10 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED)
DIAGENABLE .SET FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
;
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
@@ -50,6 +52,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
;
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER

View File

@@ -34,8 +34,10 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
;
FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL SWITCHES
;
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED)
DIAGENABLE .SET FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
;
DSRTCENABLE .SET FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)

View File

@@ -34,9 +34,10 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
;
FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL SWITCHES
;
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED)
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .SET $A0 ; DIAGNOSTIC PORT ADDRESS
;
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)

View File

@@ -34,9 +34,10 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
;
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
;
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED)
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .SET $A0 ; DIAGNOSTIC PORT ADDRESS
;
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)

View File

@@ -0,0 +1,35 @@
;
;==================================================================================================
; ZETA2 STANDARD CONFIGURATION
;==================================================================================================
;
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
; YOUR FILE IN THE BUILD PROCESS.
;
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
; SETTINGS.
;
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
; DIRECTORIES ABOVE THIS ONE).
;
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
;
#include "cfg_z80retro.asm"
;
CPUOSC .SET 14745600 ; CPU OSC FREQ IN MHZ
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
;
UARTENABLE .SET FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
;
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)

View File

@@ -24,7 +24,8 @@ endif
include $(TOOLS)/Makefile.inc
FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm fontcgac.asm fontcgau.asm
FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm \
fontcgac.asm fontcgau.asm fontvgarcc.asm fontvgarcu.asm
ifeq ($(CPUFAM),2)
TASM=$(BINDIR)/uz80as -t hd64180

View File

@@ -634,9 +634,9 @@ ANSI_BEL:
ANSI_BS:
LD A,(ANSI_COL) ; GET CURRENT COLUMN
DEC A ; BACK IT UP BY ONE
RET C ; IF CARRY, MARGIN EXCEEDED, ABORT
RET M ; IF CARRY, MARGIN EXCEEDED, ABORT
LD (ANSI_COL),A ; SAVE NEW COLUMN
JP ANSI_XY ; UDPATE CUSROR AND RETURN
JP ANSI_XY ; UDPATE CURSOR AND RETURN
;
ANSI_CR:
XOR A ; ZERO ACCUM

View File

@@ -53,7 +53,7 @@
; ASEXT:
; 7 6 5 4 3 2 1 0
; R D C X B F D S
; 0 1 1 0 0 1 1 0 DEFAULT VALUES
; 0 1 1 0 0 0 0 0 DEFAULT VALUES
; | | | | | | | |
; | | | | | | | +-- SEND BREAK
; | | | | | | +---- BREAK DETECT (RO)
@@ -64,6 +64,10 @@
; | +-------------- DCD0 DISABLE
; +---------------- RDRF INT INHIBIT
;
ASCI_DEF_CNTLA .EQU $64
ASCI_DEF_CNTLB .EQU $20
ASCI_DEF_ASEXT .EQU $60
;
ASCI_BUFSZ .EQU 32 ; RECEIVE RING BUFFER SIZE
;
ASCI_NONE .EQU 0 ; NOT PRESENT
@@ -513,17 +517,29 @@ ASCI_INITDEV3:
SET 4,C ; SET CNTLB BIT 4 FOR ODD PARITY
;
ASCI_INITDEV4:
; SETUP ASEXT
LD A,D ; CONFIG HIGH BYTE
AND %00100000 ; BIT 5 IS RTS
CPL ; INVERT FOR ASEXT
LD L,A ; MOVE TO L
LD A,ASCI_DEF_ASEXT ; GET ASEXT DEFAULT
AND L ; COMBINE
LD L,A ; AND LEAVE IN L
;
; SAVE CONFIG PERMANENTLY NOW
LD (IY+4),E ; SAVE LOW WORD
LD (IY+5),D ; SAVE HI WORD
JR ASCI_INITGO
;
ASCI_INITSAFE:
LD B,$64 ; CNTLA FAILSAFE VALUE
LD C,$20 ; CNTLB FAILSAFE VALUE
LD B,ASCI_DEF_CNTLA ; CNTLA FAILSAFE VALUE
LD C,ASCI_DEF_CNTLB ; CNTLB FAILSAFE VALUE
LD L,ASCI_DEF_ASEXT ; ASEXT FAILSAFE VALUE
;
ASCI_INITGO:
; IMPLEMENT CONFIGURATION
; B = CNTLA, C=CNTLB, L=ASEXT
PUSH HL ; SAVE ASEXT
LD H,B ; H := CNTLA VAL
LD L,C ; L := CNTLB VAL
LD B,0 ; MSB OF PORT MUST BE ZERO!
@@ -532,6 +548,7 @@ ASCI_INITGO:
INC C ; BUMP TO
INC C ; ... CNTLB REG, B IS STILL 0
OUT (C),L ; WRITE CNTLB VALUE
POP HL ; RECOVER ASEXT
INC C ; BUMP TO
INC C ; ... STAT REG, B IS STILL 0
#IF ((ASCIINTS) & (INTMODE > 0))
@@ -543,8 +560,11 @@ ASCI_INITGO:
LD A,$0E ; BUMP TO
ADD A,C ; ... ASEXT REG
LD C,A ; PUT IN C FOR I/O, B IS STILL 0
LD A,$66 ; STATIC VALUE FOR ASEXT
OUT (C),A ; WRITE ASEXT REG
BIT 0,C ; IS C ADDRESSING AN ODD NUMBERED PORT?
JR NZ,ASCI_INITGOZ ; IF SO, THIS IS SEC SERIAL, NO CTS!
OUT (C),L ; WRITE ASEXT REG
;
ASCI_INITGOZ:
;
#IF ((ASCIINTS) & (INTMODE > 0))
;

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -66,9 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
@@ -146,7 +149,7 @@ SIOENABLE .EQU FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $80 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU 7372800 ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU SER_115200_8N1 ; SIO 0A: SERIAL LINE CONFIG
@@ -154,7 +157,7 @@ SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO0BCLK .EQU 7372800 ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0BCFG .EQU SER_115200_8N1 ; SIO 0B: SERIAL LINE CONFIG
SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO1BASE .EQU $84 ; SIO 1: REGISTERS BASE ADR
SIO1ACLK .EQU 7372800 ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO1ACFG .EQU SER_115200_8N1 ; SIO 1A: SERIAL LINE CONFIG
@@ -172,6 +175,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -183,9 +187,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_DYNO ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
@@ -225,7 +229,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -12,7 +12,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -95,9 +95,12 @@ SKZDIV .EQU DIV_1 ; UART CLK (CLK2) DIVIDER FOR Z80-512K
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
WDOGIO .EQU $6F ; WATCHDOG REGISTER ADR
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
@@ -194,7 +197,7 @@ SIOENABLE .EQU FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $80 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU CPUOSC ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
@@ -202,7 +205,7 @@ SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO0BCLK .EQU CPUOSC ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0BCFG .EQU DEFSERCFG ; SIO 0B: SERIAL LINE CONFIG
SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO1BASE .EQU $84 ; SIO 1: REGISTERS BASE ADR
SIO1ACLK .EQU CPUOSC ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO1ACFG .EQU DEFSERCFG ; SIO 1A: SERIAL LINE CONFIG
@@ -226,6 +229,7 @@ TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|M
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -237,9 +241,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_NONE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
@@ -280,7 +284,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -60,9 +60,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU TRUE ; ENABLES STATUS LED
@@ -132,7 +135,7 @@ SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $B0 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU (4915200/8) ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
@@ -154,6 +157,7 @@ TMSMODE .EQU TMSMODE_MBC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MS
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -166,9 +170,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_MBC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
@@ -209,7 +213,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -66,9 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
@@ -143,7 +146,7 @@ SIOENABLE .EQU FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $B0 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU (4915200/8) ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
@@ -165,6 +168,7 @@ TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MS
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -176,9 +180,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_DIDE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
@@ -219,7 +223,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -68,9 +68,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
@@ -145,7 +148,7 @@ SIOENABLE .EQU FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $B0 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU (4915200/8) ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
@@ -167,6 +170,7 @@ TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSX
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -178,9 +182,9 @@ FDENABLE .EQU TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_N8 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
@@ -221,7 +225,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU N8_PPI0 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -66,9 +66,18 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
;
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
@@ -146,7 +155,7 @@ SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $80 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU 7372800 ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU SER_115200_8N1 ; SIO 0A: SERIAL LINE CONFIG
@@ -154,7 +163,7 @@ SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO0BCLK .EQU 7372800 ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0BCFG .EQU SER_115200_8N1 ; SIO 0B: SERIAL LINE CONFIG
SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO1BASE .EQU $84 ; SIO 1: REGISTERS BASE ADR
SIO1ACLK .EQU 7372800 ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO1ACFG .EQU SER_115200_8N1 ; SIO 1A: SERIAL LINE CONFIG
@@ -172,6 +181,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -183,9 +193,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
@@ -225,7 +235,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z280 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -66,9 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
@@ -156,7 +159,7 @@ SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $80 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU 7372800 ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
@@ -164,7 +167,7 @@ SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO0BCLK .EQU 7372800 ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0BCFG .EQU DEFSERCFG ; SIO 0B: SERIAL LINE CONFIG
SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO1BASE .EQU $84 ; SIO 1: REGISTERS BASE ADR
SIO1ACLK .EQU 7372800 ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO1ACFG .EQU DEFSERCFG ; SIO 1A: SERIAL LINE CONFIG
@@ -182,6 +185,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -193,9 +197,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
@@ -235,7 +239,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -65,9 +65,12 @@ SKZDIV .EQU DIV_1 ; UART CLK (CLK2) DIVIDER FOR Z80-512K
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
WDOGIO .EQU $6E ; WATCHDOG REGISTER ADR
;
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
@@ -84,8 +87,8 @@ VDAEMU_SERKBD .EQU $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPKTRACE .EQU 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE]
KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE]
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
;
@@ -150,7 +153,7 @@ SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $80 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU CPUOSC ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
@@ -158,7 +161,7 @@ SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO0BCLK .EQU CPUOSC ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0BCFG .EQU DEFSERCFG ; SIO 0B: SERIAL LINE CONFIG
SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO1BASE .EQU $84 ; SIO 1: REGISTERS BASE ADR
SIO1ACLK .EQU CPUOSC ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO1ACFG .EQU DEFSERCFG ; SIO 1A: SERIAL LINE CONFIG
@@ -176,6 +179,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -187,9 +191,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
@@ -229,7 +233,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_RPH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_RPH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU TRUE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -66,9 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
@@ -156,6 +159,7 @@ TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSX
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -167,9 +171,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_N8 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
@@ -210,7 +214,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU RPH_PPI0 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -60,9 +60,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
@@ -132,7 +135,7 @@ SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $B0 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU (4915200/8) ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
@@ -154,6 +157,7 @@ TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MS
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -161,14 +165,13 @@ MDRAM .EQU TRUE ; MD: ENABLE RAM DISK
MDTRACE .EQU 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MDFFENABLE .EQU FALSE ; MD: ENABLE FLASH FILE SYSTEM
;
;
FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_DIO3 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
@@ -209,7 +212,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -66,9 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $0D ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $0D ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
@@ -146,7 +149,7 @@ SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO0MODE .EQU SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $80 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU 7372800 ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU SER_115200_8N1 ; SIO 0A: SERIAL LINE CONFIG
@@ -154,7 +157,7 @@ SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO0BCLK .EQU 7372800 ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0BCFG .EQU SER_115200_8N1 ; SIO 0B: SERIAL LINE CONFIG
SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
SIO1MODE .EQU SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO1BASE .EQU $84 ; SIO 1: REGISTERS BASE ADR
SIO1ACLK .EQU 7372800 ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO1ACFG .EQU SER_115200_8N1 ; SIO 1A: SERIAL LINE CONFIG
@@ -172,6 +175,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -183,9 +187,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
@@ -225,7 +229,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,10 +15,14 @@
;
#INCLUDE "../UBIOS/ubios.inc"
;
;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA]
;
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
@@ -32,5 +36,3 @@ ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
;
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING

View File

@@ -0,0 +1,225 @@
;
;==================================================================================================
; ROMWBW 2.X CONFIGURATION DEFAULTS FOR SIMPLE Z80 RETRO
;==================================================================================================
;
; THIS FILE CONTAINS THE FULL SET OF DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM
; INDICATED ABOVE. THIS FILE SHOULD *NOT* NORMALLY BE CHANGED. INSTEAD, YOU SHOULD
; OVERRIDE ANY SETTINGS YOU WANT USING A CONFIGURATION FILE IN THE CONFIG DIRECTORY
; UNDER THIS DIRECTORY.
;
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
; FOR THE PLATFORM.
;
#DEFINE PLATFORM_NAME "Z80Retro", " [", CONFIG, "]"
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_Z80RETRO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 14745600 ; CPU OSC FREQ IN MHZ
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 VERIFICATION (0=DISABLED)
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH]
MPGSEL_0 .EQU $60 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .EQU $61 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
MPGSEL_2 .EQU $62 ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY)
MPGSEL_3 .EQU $63 ; Z2 MEM MGR BANK 3 PAGE SELECT REG (WRITE ONLY)
MPGENA .EQU $64 ; Z2 MEM MGR PAGING ENABLE REGISTER (BIT 0, WRITE ONLY)
;
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
;
KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT
KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
;
CTCENABLE .EQU TRUE ; ENABLE ZILOG CTC SUPPORT
CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT
CTCBASE .EQU $40 ; CTC BASE I/O ADDRESS
CTCTIMER .EQU FALSE ; ENABLE CTC PERIODIC TIMER (too fast for RomWBW right now)
CTCMODE .EQU CTCMODE_CTR ; CTC MODE: CTCMODE_[NONE|CTR|TIM16|TIM256]
CTCPRE .EQU 256 ; PRESCALE CONSTANT (1-256)
CTCPRECH .EQU 0 ; PRESCALE CHANNEL (0-3)
CTCTIMCH .EQU 1 ; TIMER CHANNEL (0-3)
CTCOSC .EQU 7372800 ; CTC CLOCK FREQUENCY
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
LEDPORT .EQU $00 ; STATUS LED PORT ADDRESS
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
;
DSKYENABLE .EQU FALSE ; ENABLES DSKY
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
VDAEMU_SERKBD .EQU $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
;
DSRTCENABLE .EQU FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
;
DS1501RTCENABLE .EQU FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM)
DS1501RTC_BASE .EQU $50 ; DS1501RTC: I/O BASE ADDRESS
;
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
;
DS7RTCENABLE .EQU FALSE ; DS7RTC: ENABLE DS-1307 I2C CLOCK DRIVER (DS7RTC.ASM)
DS7RTCMODE .EQU DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTC_[PCF]
;
DUARTENABLE .EQU FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM)
;
UARTENABLE .EQU FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA ONBOARD UART
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
;
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
;
Z2UENABLE .EQU FALSE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM)
;
ACIAENABLE .EQU FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
;
SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
SIOCNT .EQU 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
SIO0MODE .EQU SIOMODE_Z80R ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO0BASE .EQU $80 ; SIO 0: REGISTERS BASE ADR
SIO0ACLK .EQU CPUOSC/2 ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO0BCLK .EQU CPUOSC/2 ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO0BCFG .EQU DEFSERCFG ; SIO 0B: SERIAL LINE CONFIG
SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1MODE .EQU SIOMODE_Z80R ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R]
SIO1BASE .EQU $84 ; SIO 1: REGISTERS BASE ADR
SIO1ACLK .EQU CPUOSC/2 ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO1ACFG .EQU DEFSERCFG ; SIO 1A: SERIAL LINE CONFIG
SIO1ACTCC .EQU -1 ; SIO 1A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1BCLK .EQU CPUOSC/2 ; SIO 1B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
SIO1BCFG .EQU DEFSERCFG ; SIO 1B: SERIAL LINE CONFIG
SIO1BCTCC .EQU -1 ; SIO 1B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
;
XIOCFG .EQU DEFSERCFG ; XIO: SERIAL LINE CONFIG
;
VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
MDRAM .EQU TRUE ; MD: ENABLE RAM DISK
MDTRACE .EQU 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MDFFENABLE .EQU FALSE ; MD: ENABLE FLASH FILE SYSTEM
;
FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_ZETA2 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 1 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
IDEENABLE .EQU FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
;
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 1 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP
PPIDE0BASE .EQU $60 ; PPIDE 0: PPI REGISTERS BASE ADR
PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_Z80R ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
;
PRPENABLE .EQU FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
;
PPPENABLE .EQU FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM)
PPPBASE .EQU $60 ; PPP: PPI REGISTERS BASE ADDRESS
PPPSDENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER SD CARD SUPPORT
PPPSDTRACE .EQU 1 ; PPP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPPCONENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER VIDEO/KBD SUPPORT
;
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)
;
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)
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
;
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
;
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
DMAMODE .EQU DMAMODE_NONE ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC)
;
YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER (MUTE STUB)
VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76469s/CTC)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; BIOS_[WBW|UNA]: HARDWARE BIOS
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -52,9 +52,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
@@ -126,6 +129,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -137,9 +141,9 @@ FDENABLE .EQU TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_ZETA ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 1 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
@@ -153,7 +157,7 @@ PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -15,7 +15,7 @@
;
#INCLUDE "hbios.inc"
;
PLATFORM .EQU PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH]
PLATFORM .EQU PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
@@ -63,9 +63,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
;
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
;
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
;
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
@@ -137,6 +140,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
@@ -148,9 +152,9 @@ FDENABLE .EQU TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .EQU FDMODE_ZETA2 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT .EQU 1 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
@@ -164,7 +168,7 @@ PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
;
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR]
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

View File

@@ -9,7 +9,7 @@ CTC_DEFCFG .EQU %01010011 ; CTC DEFAULT CONFIG
CTC_CTRCFG .EQU %01010111 ; CTC COUNTER MODE CONFIG
CTC_TIM16CFG .EQU %00010111 ; CTC TIMER/16 MODE CONFIG
CTC_TIM256CFG .EQU %00110111 ; CTC TIMER/256 MODE CONFIG
CTC_TIMCFG .EQU %11010111 ; CTC TIMER CHANNEL CONFIG
;CTC_TIMCFG .EQU %11010111 ; CTC TIMER CHANNEL CONFIG
; |||||||+-- CONTROL WORD FLAG
; ||||||+--- SOFTWARE RESET
; |||||+---- TIME CONSTANT FOLLOWS
@@ -147,18 +147,16 @@ CTCTIVT .EQU INT_CTC0A + CTCTIMCH
;==================================================================================================
;
CTC_PREINIT:
; BLINDLY RESET THE CTC ASSUMING IT IS THERE
LD A,CTC_DEFCFG
OUT (CTCBASE),A
OUT (CTCBASE+1),A
OUT (CTCBASE+2),A
OUT (CTCBASE+3),A
;
CALL CTC_DETECT ; DO WE HAVE ONE?
LD (CTC_EXIST),A ; SAVE IT
RET NZ ; ABORT IF NONE
;
; RESET ALL CTC CHANNELS
LD B,4 ; 4 CHANNELS
LD C,CTCBASE ; FIRST CHANNEL PORT
CTC_PREINIT1:
LD A,CTC_DEFCFG ; CTC DEFAULT CONFIG
OUT (C),A ; CTC COMMAND
INC C ; NEXT CHANNEL PORT
DJNZ CTC_PREINIT1
;
#IF (CTCTIMER & (INTMODE == 2))
; SETUP TIMER INTERRUPT IVT SLOT
@@ -177,12 +175,12 @@ CTC_PREINIT1:
; CTC CHANNEL AS A PRESCALER AND ANOTHER AS THE ACTUAL
; TIMER INTERRUPT. THE PRESCALE CHANNEL OUTPUT MUST BE WIRED
; TO THE TIMER CHANNEL TRIGGER INPUT VIA HARDWARE.
LD A,CTC_PRECFG ; PRESCALE CHANNEL CONFIGURATION
LD A,CTC_PRECFG ; PRESCALE TIMER CHANNEL CFG
OUT (CTC_PREIO),A ; SETUP PRESCALE CHANNEL
LD A,CTC_DIVHI & $FF ; PRESCALE CHANNEL CONSTANT
OUT (CTC_PREIO),A ; SET PRESCALE CONSTANT
;
LD A,CTC_TIMCFG ; TIMER CHANNEL CONTROL WORD VALUE
LD A,CTC_CTRCFG | $80 ; TIMER CHANNEL + INT CFG
OUT (CTC_SCLIO),A ; SETUP TIMER CHANNEL
LD A,CTC_DIVLO & $FF ; TIMER CHANNEL CONSTANT
OUT (CTC_SCLIO),A ; SET TIMER CONSTANT
@@ -258,32 +256,33 @@ CTC_PRTCFG1:
RET
;
;==================================================================================================
; DETECT CTC BY CHECKING REGISTER CAN BE WRITTEN AND READ, AND THEN BY SETTING UP ONE CHANNEL IN
; TIMER MODE AND CHECKING IT IS COUNTING DOWN.
; DETECT CTC BY PROGRAMMING THE FIRST CHANNEL TO COUNT IN TIMER
; MODE (BASED ON CPU CLOCK). THEN CHECK IF COUNTER IS ACTUALLY
; RUNNING.
;==================================================================================================
;
CTC_DETECT:
LD A,CTC_TIM256CFG
OUT (CTCBASE),A
XOR A
OUT (CTCBASE),A
; CTC SHOULD NOW BE RUNNING WITH TIME CONSTANT 0
LD A,CTC_TIM256CFG ; RESET
OUT (CTCBASE),A
IN A,(CTCBASE) ; SHOULD READ 0 NOW
CP 0
JR NZ,CTC_NO
LD A,CTC_TIM16CFG ; RESET & SETUP TIMER MODE
OUT (CTCBASE),A ; SEND TO CTC
LD A,$FF ; TIME CONSTANT $FF
OUT (CTCBASE),A
IN A,(CTCBASE) ; SHOULD NOT BE 0 NOW
CP 0
JR Z,CTC_NO
XOR A
RET
OUT (CTCBASE),A ; SEND CONSTANT & START CTR
NOP ; BRIEF DELAY
IN A,(CTCBASE) ; READ COUNTER
LD C,A ; SAVE VALUE
CALL DLY8 ; WAIT A BIT
IN A,(CTCBASE) ; READ COUNTER AGAIN
PUSH AF ; SAVE RESULT
LD A,CTC_DEFCFG ; DEFAULT CHANNEL CFG
OUT (CTCBASE),A ; RESTORE TO DEFAULTS
POP AF ; GET RESULT BACK
CP C ; COMPARE TO PREVIOUS
JR Z,CTC_NO ; IF SAME, FAIL
XOR A ; SIGNAL SUCCESS
RET ; AND DONE
CTC_NO:
OR $FF
RET
OR $FF ; SIGNAL FAILURE
RET ; AND DONE
;
; CTC DRIVER DATA STORAGE
;
;
CTC_EXIST .DB $FF
CTC_EXIST .DB $FF ; SET TO ZERO IF EXISTS

View File

@@ -902,5 +902,6 @@ CVDU_INIT8563:
;==================================================================================================
;
CVDU_IDAT:
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
.DB CVDU_KBDST
.DB CVDU_KBDDATA

View File

@@ -878,6 +878,8 @@ GETLNLOP:
JR Z,GETLNDONE ; YES, EXIT
CP CHR_BS ; IS <BS>?
JR Z,GETLNBS ; IF SO, HANDLE IT
CP CHR_DEL ; IS <DEL>?
JR Z,GETLNBS ; IF SO, HANDLE AS <BS>
CP ' ' ; UNEXPECTED CONTROL CHAR?
JR C,GETLNLOP ; IF SO, IGNORE IT AND GET NEXT
LD B,A ; SAVE CHAR IN B FOR NOW
@@ -1854,6 +1856,7 @@ CHR_CR .EQU 0DH
CHR_LF .EQU 0AH
CHR_BS .EQU 08H
CHR_ESC .EQU 1BH
CHR_DEL .EQU 7FH
;
;__________________________________________________________________________________________________
;

View File

@@ -109,7 +109,7 @@ FRC_TOSEEKWT .EQU -15H ; EB
; FD DEVICE CONFIGURATION
;
FD_DEVCNT .EQU FDCNT ; 2 DEVICES SUPPORTED
FD_CFGSIZ .EQU 8 ; SIZE OF CFG TBL ENTRIES
FD_CFGSIZ .EQU 9 ; SIZE OF CFG TBL ENTRIES
;
; PER DEVICE DATA OFFSETS
; ; OFFSET OF...
@@ -121,25 +121,28 @@ FD_HST .EQU 4 ; HOSTS SEEK POSITION
FD_HSTTRK .EQU FD_HST + 0 ; HOST TRACK (WORD)
FD_HSTSEC .EQU FD_HST + 2 ; HOST SECTOR (BYTE)
FD_HSTHD .EQU FD_HST + 3 ; HOST HEAD (BYTE)
FD_TYPE .EQU 8 ; FLOPPY DSIK TYPE (BYTE)
;
FD_CFGTBL:
; DEVICE 0, PRIMARY MASTER
.DB 0 ; DEVICE NUMBER
.DB 0 ; DEVICE STATUS
.DB FDMEDIA ; MEDIA TYPE
.DB $FF ; CURRENT MEDIA TYPE (INIT TO NONE)
.DB $FF ; CURRENT TRACK
.DW 0 ; HOST TRACK
.DB 0 ; HOST SECTOR
.DB 0 ; HOST HEAD
.DB FD0TYPE ; DRIVE TYPE
#IF (FD_DEVCNT >= 2)
; DEVICE 1, PRIMARY SLAVE
.DB 1 ; DRIVER DEVICE NUMBER
.DB 0 ; DEVICE STATUS
.DB FDMEDIA ; MEDIA TYPE
.DB $FF ; CURRENT MEDIA TYPE (INIT TO NONE)
.DB $FF ; CURRENT TRACK
.DW 0 ; HOST TRACK
.DB 0 ; HOST SECTOR
.DB 0 ; HOST HEAD
.DB FD1TYPE ; DRIVE TYPE
#ENDIF
;
#IF ($ - FD_CFGTBL) != (FD_DEVCNT * FD_CFGSIZ)
@@ -199,6 +202,42 @@ FSST_ENTSIZ .EQU $ - FSST
FSST_COUNT .EQU (($ - FSST) / FSST_ENTSIZ) ; # ENTRIES IN TABLE
#ENDIF
;
; FDC DRIVE TYPE MEDIA OPTIONS
;
; THIS TABLE LISTS THE TYPES OF MEDIA THAT SHOULD BE ATTEMPTED
; FOR EACH POSSIBLE DRIVE TYPE. THE ENTRIES MATCH THE ORDER OF THE
; FDT_ VALUES DEFINED IN STD.ASM
;
FD_MEDIAMAP:
.DW FDMM_NONE ; NO DRIVE TYPE
.DW FDMM_3DD
.DW FDMM_3HD
.DW FDMM_5DD
.DW FDMM_5HD
.DW FDMM_8
;
FDMM_NONE .DB $FF
FDMM_3DD .DB FDM720, $FF
FDMM_3HD .DB FDM144, FDM720, $FF
FDMM_5DD .DB FDM360, $FF
FDMM_5HD .DB FDM120, FDM360, $FF
FDMM_8 .DB FDM111, $FF
;
; FDC DRIVE TYPE ATTRIBUTES
;
; LOOKUP TABLE TO MAP THE DEVICE ATTRIBUTES BYTE RETURNED
; BY THE FD_DEVICE FUNCTION BASED ON THE DRIVE TYPE.
; THE ENTRIES MATCH THE ORDER OF THE
; FDT_ VALUES DEFINED IN STD.ASM
;
FD_DEVATTR:
.DB %11100000 ; DRIVE TYPE NONE
.DB %11010100 ; DRIVE TYPE 3.5 DD
.DB %11011000 ; DRIVE TYPE 3.5 HD
.DB %10110100 ; DRIVE TYPE 5.25 DD
.DB %10111000 ; DRIVE TYPE 5.25 HD
.DB %10010100 ; DRIVE TYPE 8
;
; FDC COMMANDS
;
CFD_READ .EQU 00000110B ; CMD,HDS/DS,C,H,R,N,EOT,GPL,DTL --> ST0,ST1,ST2,C,H,R,N
@@ -498,21 +537,11 @@ FD_DEFMED:
FD_DEVICE:
LD D,DIODEV_FD ; D := DEVICE TYPE
LD E,(IY+FD_DEV) ; E := PHYSICAL DEVICE NUMBER
#IF (FDMEDIA == FDM720)
LD C,%11010100 ; 3.5" DS/DD
#ENDIF
#IF (FDMEDIA == FDM144)
LD C,%11011000 ; 3.5" DS/HD
#ENDIF
#IF (FDMEDIA == FDM360)
LD C,%10110100 ; 5.25" DS/DD
#ENDIF
#IF (FDMEDIA == FDM120)
LD C,%10111000 ; 5.25" DS/HD
#ENDIF
#IF (FDMEDIA == FDM111)
LD C,%10010100 ; 8" DS/DD
#ENDIF
LD A,(IY+FD_TYPE) ; DRIVE TYPE
LD HL,FD_DEVATTR ; DEVICE ATTR TABLE
CALL ADDHLA ; POINT TO ENTRY
LD C,(HL) ; GET IT
LD H,FDMODE ; H := MODE
LD L,FDC_MSR ; L := BASE I/O ADDRESS
XOR A ; SIGNAL SUCCESS
@@ -527,9 +556,7 @@ FD_MEDIA:
#IF (FDMAUTO)
; SETUP TO READ TRK 0, HD 0, SEC 0
;LD A,C ; C STILL HAS REQUESTED DRIVE
LD A,(IY+FD_DEV) ; GET DRIVE UNIT
;AND 0FH
LD (FCD_DS),A
LD A,0
LD (FCD_C),A
@@ -538,53 +565,77 @@ FD_MEDIA:
LD (FCD_R),A
LD A,DOP_READID
LD (FCD_DOP),A
#ENDIF
#IF (FDTRACE < 3)
LD A,(IY+FD_TYPE) ; GET DRIVE TYPE VALUE
;CALL PRTHEXBYTE ; *DEBUG*
LD HL,FD_MEDIAMAP ; POINT TO MEDIA MAP TABLE
ADD A,A ; TABLE IS WORD SIZED
CALL ADDHLA ; LOOKUP ENTRY
LD A,(HL) ; DEREFERENCE
INC HL
LD H,(HL)
LD L,A
#IF (FDMAUTO)
#IF (FDTRACE < 3)
; SUPPRESS TRACING FOR MEDIA TESTS
LD A,0
LD (FCD_TRACE),A
#ENDIF
LD B,5
#ENDIF
LD B,5 ; 5 ATTEMPTS
FD_MEDIARETRY:
; TRY PRIMARY MEDIA CHOICE FIRST
LD A,FDMEDIA
CALL FD_TESTMEDIA
JR Z,FD_MEDIA3 ; IF SUCCESS, WE ARE DONE
; TRY ALTERNATE MEDIA CHOICE
LD A,FDMEDIAALT
CALL FD_TESTMEDIA
JR Z,FD_MEDIA3 ; IF SUCCESS, WE ARE DONE
DJNZ FD_MEDIARETRY
PUSH HL ; SAVE MEDIA MAP PTR
CALL FD_MEDIALOOP ; TRY IT
POP HL ; RECOVER MEDIA MAP PTR
JR Z,FD_MEDIA3 ; CONTINUE ON SUCCESS
DJNZ FD_MEDIARETRY ; LOOP TILL DONE
FD_MEDIARETRY1:
; NO JOY, RETURN WITH E=0 (NO MEDIA)
;LD HL,(FDDS_MEDIAADR)
;LD (HL),0 ; SET TO NO MEDIA
LD (IY+FD_MEDTYP),0 ; SET DRIVE = NO MEDIA
LD E,0
LD (IY+FD_MEDTYP),$FF ; SET MEDIA TYPE TO UNDEFINED
LD E,0 ; NO MEDIA FLAG
LD A,ERR_NOMEDIA ; SIGNAL ERROR
OR A ; SET FLAGS
RET
FD_MEDIALOOP:
LD A,(HL) ; LOAD NEXT MEDIA TYPE TO TRY
CP $FF ; END OF MEDIA TYPES TO TRY?
JR Z,FD_MEDIALOOP1 ; NO MORE TO TRY, LOOP EXIT
CALL FD_TESTMEDIA ; TRY IT
RET Z ; RETURN ON SUCCESS
INC HL ; NEXT MEDIA TYPE TO TRY
JR FD_MEDIALOOP ; LOOP
FD_MEDIALOOP1:
OR $FF ; SIGNAL FAILURE
RET ; RETURN
FD_TESTMEDIA:
;LD HL,(FDDS_MEDIAADR)
;LD (HL),A
;CALL PRTHEXBYTE ; *DEBUG*
LD (IY+FD_MEDTYP),A
PUSH HL
PUSH BC
CALL FD_START
POP BC
POP HL
;CALL PRTHEXBYTE ; *DEBUG*
RET
FD_MEDIA3:
#IF (FDTRACE < 3)
#IF (FDTRACE < 3)
; RESTORE TRACING FOR MEDIA TESTS
LD A,FDTRACE
LD (FCD_TRACE),A
#ENDIF
#ENDIF
#ELSE
LD A,(HL)
LD (IY+FD_MEDTYP),A
#ENDIF
FD_MEDIA4:
@@ -778,7 +829,7 @@ FD_DETECT1:
;
FD_INITUNIT:
LD (IY+FD_STAT),0 ; CLEAR STATUS
LD (IY+FD_MEDTYP),FDMEDIA ; SET DEFAULT MEDIA TYPE
LD (IY+FD_MEDTYP),$FF ; SET UNKNOWN MEDIA TYPE
LD (IY+FD_CURTRK),$FE ; SPECIAL VALUE FOR CURTRK
RET
;
@@ -1285,7 +1336,8 @@ FC_SETUPIO:
LD (DE),A
INC DE
LD A,(FCD_EOT)
;LD A,(FCD_EOT)
LD A,(FCD_R) ; READ ONLY ONE SECTOR
LD (DE),A
INC DE
@@ -1397,15 +1449,17 @@ FC_RESETFDC:
; PULSE TERMCT TO TERMINATE ANY ACTIVE EXECUTION PHASE
;
FC_PULSETC:
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC))
IN A,(FDC_TC)
#ELSE
LD A,(FST_DOR)
SET 0,A
OUT (FDC_DOR),A
RES 0,A
OUT (FDC_DOR),A
#ENDIF
; PULSING TC NO LONGER REQUIRED BECAUSE WE ONLY READ A SINGLE SECTOR
;
;#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC))
; IN A,(FDC_TC)
;#ELSE
; LD A,(FST_DOR)
; SET 0,A
; OUT (FDC_DOR),A
; RES 0,A
; OUT (FDC_DOR),A
;#ENDIF
RET
;
; SET FST_DOR FOR MOTOR CONTROL ON
@@ -1694,7 +1748,7 @@ FXR_TO: ; TIMEOUT
;
FXR_ABORT: ; EXECUTION ABORTED
HB_EI ; INTERRUPTS OK AGAIN
JR FOP_RES ; GET RSEULTS, NO NEED TO PULSE TC
JR FOP_RES ; GET RESULTS, NO NEED TO PULSE TC
;
FXR_END: ; EXECUTION COMPLETED NORMALLY
CALL FC_PULSETC ; PULSE TC TO END EXECUTION
@@ -1828,7 +1882,9 @@ FOP_EVALST1:
LD C,FRC_ENDCYL
BIT 7,A
JR NZ,FOP_SETFST
; THI IS NORMAL BECAUSE WE NOW READ ONLY A SINGLE SECTOR
;JR NZ,FOP_SETFST
JR NZ,FOP_EXIT
LD C,FRC_DATAERR
BIT 5,A

View File

@@ -325,5 +325,6 @@ GDC_POS .DW 0 ; CURRENT DISPLAY POSITION
;==================================================================================================
;
GDC_IDAT:
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
.DB GDC_KBDST
.DB GDC_KBDDATA

File diff suppressed because it is too large Load Diff

View File

@@ -109,11 +109,13 @@ BF_SYSGET_CPUINFO .EQU $F0 ; GET CPU INFORMATION
BF_SYSGET_MEMINFO .EQU $F1 ; GET MEMORY CAPACTITY INFO
BF_SYSGET_BNKINFO .EQU $F2 ; GET BANK ASSIGNMENT INFO
BF_SYSGET_CPUSPD .EQU $F3 ; GET CLOCK SPEED & WAIT STATES
BF_SYSGET_PANEL .EQU $F4 ; GET FRONT PANEL SWITCHES VAL
;
BF_SYSSET_TIMER .EQU $D0 ; SET TIMER VALUE
BF_SYSSET_SECS .EQU $D1 ; SET SECONDS VALUE
BF_SYSSET_BOOTINFO .EQU $E0 ; SET BOOT INFORMATION
BF_SYSSET_CPUSPD .EQU $F3 ; SET CLOCK SPEED & WAIT STATES
BF_SYSSET_PANEL .EQU $F4 ; SET FRONT PANEL LEDS
;
BF_SYSINT_INFO .EQU $00 ; GET INTERRUPT SYSTEM INFO
BF_SYSINT_GET .EQU $10 ; GET INT VECTOR ADDRESS
@@ -137,6 +139,7 @@ PLT_DYNO .EQU 11 ; DYNO MICRO-ATX MOTHERBOARD
PLT_RCZ280 .EQU 12 ; RCBUS W/ Z280
PLT_MBC .EQU 13 ; MULTI BOARD COMPUTER
PLT_RPH .EQU 14 ; RHYOPHYRE GRAPHICS COMPUTER
PLT_Z80RETRO .EQU 15 ; Z80 RETRO COMPUTER
;
; HBIOS GLOBAL ERROR RETURN VALUES
;
@@ -261,6 +264,15 @@ DIAG_08 .EQU 11111111B ; ON
DIAG_09 .EQU 11111111B ; ON
#ENDIF
;
; FRONT PANEL SWITCHES
;
SW_CRT .EQU %10000000 ; CRT/SER CONSOLE
SW_SEC .EQU %01000000 ; SEC/PRI CONSOLE
SW_AUTO .EQU %00100000 ; AUTO/MENU BOOT
SW_DISK .EQU %00010000 ; DISK/ROM
SW_FLOP .EQU %00001000 ; FLOP/HD
SW_OPT .EQU %00000111 ; SLICE/ROM APP
;
; MEDIA ID VALUES
;
MID_NONE .EQU 0
@@ -326,7 +338,7 @@ VDADEV_CVDU .EQU $10 ; ECB COLOR VDU - MOS 8563
VDADEV_GDC .EQU $20 ; GRAPHICS DISPLAY CTLR - UPD7220
VDADEV_TMS .EQU $30 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918
VDADEV_VGA .EQU $40 ; ECB VGA3 - HITACHI HD6445
;VDADEV_V9958 .EQU $50 ; V9958 VDU
VDADEV_VRC .EQU $50 ; VGARC
;
; SOUND DEVICE IDS
;

File diff suppressed because it is too large Load Diff

View File

@@ -14,9 +14,10 @@
;
; DRIVER DATA OFFSETS (FROM IY)
;
KBD_ST .EQU 0 ; BYTE, STATUS PORT NUM (R)
KBD_MODE .EQU 0 ; BYTE, KEYBOARD MODE (STD OR VRC)
KBD_ST .EQU 1 ; BYTE, STATUS PORT NUM (R)
KBD_CMD .EQU KBD_ST ; BYTE, CMD PORT NUM (W)
KBD_DAT .EQU 1 ; BYTE, DATA PORT NUM (R/W)
KBD_DAT .EQU 2 ; BYTE, DATA PORT NUM (R/W)
;
; TIMING CONSTANTS
;
@@ -69,17 +70,33 @@ KBD_INIT:
LD (KBD_REPEAT),A ; SAVE IT
LD A,KBD_DEFSTATE ; GET DEFAULT STATE
LD (KBD_STATE),A ; SAVE IT
;
LD A,(IY+KBD_MODE) ; GET KBD MODE BYTE
CP KBDMODE_VRC ; VRC?
JR Z,KBD_INIT1 ; IF SO, MUST ASSUME PRESENT
;
LD A,$AA ; CONTROLLER SELF TEST
CALL KBD_PUTCMD ; SEND IT
CALL KBD_GETDATA ; CONTROLLER SHOULD RESPOND WITH $55 (ACK)
;
CP $55 ; IS IT THERE?
JR Z,KBD_INIT1 ; IF SO, CONTINUE
PRTS(" NOT PRESENT$") ; DIAGNOSE PROBLEM
RET ; BAIL OUT
;
KBD_INIT1:
PRTS(" MODE=$") ; TAG
LD A,(IY+KBD_MODE) ; GET MODE VALUE
LD DE,KBD_STR_MODEPS2
CP KBDMODE_PS2
JR Z,KBD_INIT2
LD DE,KBD_STR_MODEVRC
CP KBDMODE_VRC
JR Z,KBD_INIT2
LD DE,KBD_STR_MODEUNK
KBD_INIT2:
CALL WRITESTR
;
LD A,$60 ; SET COMMAND REGISTER
CALL KBD_PUTCMD ; SEND IT
; LD A,$60 ; XLAT ENABLED, MOUSE DISABLED, NO INTS
@@ -88,11 +105,6 @@ KBD_INIT1:
CALL KBD_GETDATA ; GOBBLE UP $AA FROM POWER UP, AS NEEDED
; LD A,$AE ; COMMAND = ENABLE KEYBOARD
; CALL KBD_PUTCMD ; SEND IT
; LD A,$A7 ; COMMAND = DISABLE MOUSE
; CALL KBD_PUTCMD ; SEND IT
CALL KBD_RESET ; RESET THE KEYBOARD
CALL KBD_SETLEDS ; UPDATE LEDS BASED ON CURRENT TOGGLE STATE BITS
CALL KBD_SETRPT ; UPDATE REPEAT RATE BASED ON CURRENT SETTING
@@ -177,6 +189,9 @@ KBD_PUTCMD:
; PUT A CMD BYTE FROM A TO THE KEYBOARD INTERFACE WITH TIMEOUT
;
LD E,A ; SAVE INCOMING VALUE IN E
LD A,(IY+KBD_MODE) ; GET MODE BYTE
CP KBDMODE_VRC ; VGARC KEYBOARD?
JR Z,KBD_PUTCMD2 ; BAIL OUT
LD B,KBD_WAITTO ; SETUP TO LOOP
KBD_PUTCMD0:
CALL KBD_OST ; GET OUTPUT REGISTER STATUS
@@ -194,6 +209,7 @@ KBD_PUTCMD1:
#ENDIF
LD C,(IY+KBD_CMD) ; COMMAND PORT
OUT (C),A ; WRITE IT
KBD_PUTCMD2:
XOR A ; SIGNAL SUCCESS
RET
;
@@ -203,6 +219,9 @@ KBD_PUTDATA:
; PUT A DATA BYTE FROM A TO THE KEYBOARD INTERFACE WITH TIMEOUT
;
LD E,A ; SAVE INCOMING VALUE IN E
LD A,(IY+KBD_MODE) ; GET MODE BYTE
CP KBDMODE_VRC ; VGARC KEYBOARD?
JR Z,KBD_PUTDATA2 ; BAIL OUT
LD B,KBD_WAITTO ; SETUP TO LOOP
KBD_PUTDATA0:
CALL KBD_OST ; GET OUTPUT REGISTER STATUS
@@ -219,6 +238,7 @@ KBD_PUTDATA1:
#ENDIF
LD C,(IY+KBD_DAT) ; DATA PORT
OUT (C),A ; WRITE IT
KBD_PUTDATA2:
XOR A ; SIGNAL SUCCESS
RET
;
@@ -681,11 +701,21 @@ KBD_DECNEW: ; START NEW KEYPRESS (CLEAR ALL STATUS BITS)
LD (KBD_STATUS),A ; CLEAR STATUS
JP KBD_DEC1 ; RESTART THE ENGINE
;
; DRIVER DATA
;
KBD_STR_MODEPS2 .TEXT "PS2$"
KBD_STR_MODEVRC .TEXT "VRC$"
KBD_STR_MODEUNK .TEXT "???$"
;
;
;
#IF (KBDKBLOUT == KBD_US)
;
;__________________________________________________________________________________________________
;
; MAPPING TABLES US/ENGLISH
;__________________________________________________________________________________________________
;
KBD_MAPSTD: ; SCANCODE IS INDEX INTO TABLE TO RESULTANT LOOKUP KEYCODE
.DB $FF,$E8,$FF,$E4,$E2,$E0,$E1,$EB,$FF,$E9,$E7,$E5,$E3,$09,'`',$FF
.DB $FF,$B4,$B0,$FF,$B2,'q','1',$FF,$FF,$FF,'z','s','a','w','2',$FF
@@ -722,7 +752,9 @@ KBD_MAPNUMPAD: ; KEYCODE TRANSLATION FROM NUMPAD RANGE TO STD ASCII/KEYCODES
.DB $F3,$F7,$F5,$F8,$FF,$F9,$F2,$F6,$F4,$F0,$F1,$2F,$2A,$2D,$2B,$0D
.DB $31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$2E,$2F,$2A,$2D,$2B,$0D
#ENDIF
;
#IF (KBDKBLOUT == KBD_DE)
;
;__________________________________________________________________________________________________
;
; MAPPING TABLES GERMAN

File diff suppressed because it is too large Load Diff

View File

@@ -41,6 +41,7 @@ bel .equ 7 ; ASCII bell
bs .equ 8 ; ASCII backspace
lf .equ 10 ; ASCII linefeed
cr .equ 13 ; ASCII carriage return
del .equ 127 ; ASCII del/rubout
;
cmdbuf .equ $80 ; cmd buf is in second half of page zero
cmdmax .equ 60 ; max cmd len (arbitrary), must be < bufsiz
@@ -179,6 +180,30 @@ start1:
call pstr ; do it
call clrbuf ; zero fill the cmd buffer
;
#if (BIOS == BIOS_WBW)
;
ld b,BF_SYSGET ; HBIOS SysGet
ld c,BF_SYSGET_PANEL ; ... Panel swiches value
rst 08 ; do it
jr nz,nofp ; no switches, skip over
ld a,l ; put value in A
ld (switches),a ; save it
;
call nl ; formatting
ld hl,str_switches ; tag
call pstr ; display
ld a,(switches) ; get switches value
call prthexbyte ; display
;
ld a,(switches) ; get switches value
and SW_AUTO ; auto boot?
call nz,runfp ; process front panel
;
nofp:
; fall thru
;
#endif
;
#if (BOOT_TIMEOUT != -1)
; Initialize auto command timeout downcounter
or $FF ; auto cmd active value
@@ -211,12 +236,12 @@ prompt:
ld hl,msg_sel ; boot select msg
call DSKY_SHOW ; show on DSKY
#IF (DSKYMODE == DSKYMODE_NG)
#if (DSKYMODE == DSKYMODE_NG)
call DSKY_PUTLED
.db $3f,$3f,$3f,$3f,$00,$00,$00,$00
call DSKY_BEEP
call DSKY_L2ON
#ENDIF
#endif
#endif
;
@@ -365,6 +390,125 @@ runcmd2:
ld (bootslice),a ; save boot slice
jp diskboot ; boot the disk unit/slice
;
#if (BIOS == BIOS_WBW)
;
;=======================================================================
; Process Front Panel switches
;=======================================================================
;
runfp:
ld a,(switches) ; get switches value
and SW_DISK ; disk boot?
jr nz,fp_diskboot ; handle disk boot
;
fp_romboot:
; Handle FP ROM boot
ld a,(switches) ; get switches value
and SW_OPT ; isolate options bits
ld hl,fpapps ; rom apps cmd char list
call addhla ; point to the right one
ld a,(hl) ; get it
;
; Attempt ROM application launch
ld ix,(ra_tbl_loc) ; point to start of ROM app tbl
ld c,a ; save command in C
fp_romboot1:
ld a,(ix+ra_conkey) ; get match char
and ~$80 ; clear "hidden entry" bit
cp c ; compare
jp z,romload ; if match, load it
ld de,ra_entsiz ; table entry size
add ix,de ; bump IX to next entry
ld a,(ix) ; check for end
or (ix+1) ; ... of table
jr nz,fp_romboot1 ; loop till done
ret ; no match, return
;
fpapps .db "MBFPCZNU"
;
fp_diskboot:
; get count of disk units
ld b,BF_SYSGET ; HBIOS Get function
ld c,BF_SYSGET_DIOCNT ; HBIOS DIO Count sub fn
rst 08 ; call HBIOS
ld a,e ; count to A
ld (diskcnt),a ; save it
or a ; set flags
ret z ; bort if no disk units
ld a,(switches) ; get switches value
and SW_FLOP ; floppy switch bit
jr nz,fp_flopboot ; handle auto flop boot
; fall thru for auto hd boot
;
fp_hdboot:
; Find the first hd with media and boot to that unit using
; the slice specified by the FP switches.
ld a,(diskcnt) ; get disk count
ld b,a ; init loop counter
ld c,0 ; init disk index
fp_hdboot1:
push bc ; save loop control
ld b,BF_DIODEVICE ; HBIOS Disk Device func
rst 08 ; unit in C, do it
pop bc ; restore loop control
ld a,d ; device type to A
cp DIODEV_IDE ; type IDE or greater is HD
jr c,fp_hdboot2 ; if not, continue loop
push bc ; save loop control
ld b,BF_DIOMEDIA ; HBIOS Sense Media
ld e,1 ; perform media discovery
rst 08 ; do it
pop bc ; restore loop control
jr z,fp_hdboot3 ; if has media, go boot it
fp_hdboot2:
inc c ; else next disk
djnz fp_hdboot1 ; loop thru all disks
ret ; nothing works, abort
;
fp_hdboot3:
ld a,c ; disk unit to A
ld (bootunit),a ; save it
ld a,(switches) ; get switches value
and SW_OPT ; isolate slice value
ld (bootslice),a ; save it
jp diskboot ; do it
;
fp_flopboot:
; Find the nth floppy drive and boot to that unit. The
; floppy number is based on the option switches.
ld a,(diskcnt) ; get disk count
ld b,a ; init loop counter
ld c,0 ; init disk index
ld a,(switches) ; get switches value
and SW_OPT ; isolate option bits
ld e,a ; floppy unit down counter
inc e ; pre-increment for ZF check
fp_flopboot1:
push bc ; save loop control
push de ; save floppy down ctr
ld b,BF_DIODEVICE ; HBIOS Disk Device func
rst 08 ; unit in C, do it
ld a,d ; device type to A
pop de ; restore loop control
pop bc ; restore floppy down ctr
cp DIODEV_FD ; type FD?
jr nz,fp_flopboot3 ; if not floppy, skip
dec e ; decrement down ctr
jr z,fp_flopboot2 ; if ctr expired, boot this unit
fp_flopboot3:
inc c ; else next disk
djnz fp_flopboot1 ; loop thru all disks
ret ; nothing works, abort
;
fp_flopboot2:
ld a,c ; disk unit to A
ld (bootunit),a ; save it
xor a ; ; zero accum
ld (bootslice),a ; floppy boot slice is always 0
jp diskboot ; do it
;
#endif
;
;=======================================================================
; Process a DSKY command from key in A
;=======================================================================
@@ -1208,20 +1352,24 @@ diskread:
;
clrled:
#if (BIOS == BIOS_WBW)
#if (DIAGENABLE)
xor a ; zero accum
out (DIAGPORT),a ; clear diag leds
#if (FPLED_ENABLE)
;xor a ; zero accum
;out (FPLED_IO),a ; clear diag leds
ld b,BF_SYSSET ; HBIOS SysGet
ld c,BF_SYSSET_PANEL ; ... Panel swiches value
ld l,$00 ; all LEDs off
rst 08 ; do it
#endif
#if (LEDENABLE)
#if (LEDMODE == LEDMODE_STD)
ld a,$FF ; led is inverted
out (LEDPORT),a ; clear led
ld a,$FF ; led is inverted
out (LEDPORT),a ; clear led
#endif
#if (LEDMODE == LEDMODE_RTC)
; Bits 0 and 1 of the RTC latch are for the LEDs.
ld a,(HB_RTCVAL)
and ~%00000011
out (RTCIO),a ; clear led
out (RTCIO),a ; clear led
ld (HB_RTCVAL),a
#endif
#endif
@@ -1281,6 +1429,8 @@ rdln_nxt:
call cin ; get a character
cp bs ; backspace?
jr z,rdln_bs ; handle it if so
cp del ; del/rubout?
jr z,rdln_bs ; handle as backspace
cp cr ; return?
jr z,rdln_cr ; handle it if so
;
@@ -2165,6 +2315,7 @@ str_upd .db "XModem Flash Updater",0
str_user .db "User App",0
str_egg .db "",0
str_net .db "Network Boot",0
str_switches .db "FP Switches = 0x",0
newcon .db 0
newspeed .db 0
;
@@ -2191,6 +2342,8 @@ ra_tbl_loc .dw 0 ; points to active ra_tbl
bootunit .db 0 ; boot disk unit
bootslice .db 0 ; boot disk slice
loadcnt .db 0 ; num disk sectors to load
switches .db 0 ; front panel switches
diskcnt .db 0 ; disk unit count value
;
;=======================================================================
; Pad remainder of ROM Loader

View File

@@ -282,6 +282,35 @@ SD_INVCS .EQU FALSE ; INVERT CS
#ENDIF
;
;
#IF (SDMODE == SDMODE_PIO) ; Z80 PIO
;
; These mappings work for the RCbus Gluino card with an Arduino
; shield attached and are the ones also used in other bitbang setups
; directly attached to a PIO. It also works on a straight digital I/O
; port as the config writes will disappear into oblivion harmlessly
;
; The Gluino mapping (ie Arduino pin mapping equivalent) is thus
; D10 SS, D11 CIPO, D12 COPI, D13 SCL.
;
; For speed reasons MISO/MOSI are mapped to the top and bottom bits.
; RomWBW doesn't yet use this fact but the optimized Fuzix routines do.
;
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS)
SD_IOBASE .EQU $69 ; IO BASE ADDRESS FOR SD INTERFACE
SD_OPRREG .EQU SD_IOBASE ; OUTPUT PORT (OUTPUT: CS, CLK, DIN)
SD_OPRDEF .EQU %11111111 ; OUTPUT PORT DEFAULT STATE
SD_INPREG .EQU SD_IOBASE ; INPUT REGISTER
SD_CS0 .EQU %00001000 ; SELECT
SD_CLK .EQU %00010000 ; CLOCK
SD_DI .EQU %00000001 ; DATA IN (CARD <- CPU) MOSI
SD_DO .EQU %10000000 ; DATA OUT (CARD -> CPU) MISO
SD_CINIT .EQU TRUE ; INITIALIZE OUTPUT PORT
SD_DDR .EQU $6B ; DATA DIRECTION REGISTER
SD_DDRVAL .EQU %11100110 ; DATA DIRECTION REGISTER VALUE
SD_INVCS .EQU TRUE ; INVERT CS
#ENDIF
;
;
#IF (SDMODE == SDMODE_USR) ; USER DEFINED HARDWARE CONFIGURATION
;
; THIS MODE IS INTENDED TO ALLOW A USER TO EASILY CONFIGURE A CUSTOM
@@ -304,6 +333,27 @@ SD_DDRVAL .EQU %00001101 ; DATA DIRECTION REGISTER VALUE
SD_INVCS .EQU FALSE ; INVERT CS
#ENDIF
;
#IF (SDMODE == SDMODE_Z80R) ; Z80 Retro
;
; SPLIT OVER TWO REGISTERS TO DRIVE CLK. THE CS LINE IS ON THE GPIO
; WHICH IS THE SAME LATCHES THAT CONTROL MMU ON/OFF, SO DON;T GLITCH
; THEM WHEN UPDATING!
;
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS)
SD_OPRDEF .EQU %00000001 ; OUTPUT PORT DEFAULT STATE
SD_OPRMSK .EQU %00000101 ; OUTPUT PORT MASK
SD_OPRREG .EQU $64 ; CS VIA GPIO
SD_IOBASE .EQU $68 ; 68/69 FOR OUTPUT
SD_IOREG .EQU SD_IOBASE ; INPUT REGISTER
SD_IOCLK .EQU SD_IOBASE+1 ; CLOCK IS OFF A0
SD_GPIO .EQU $64 ; MISO IS ON THE GPIO
SD_CS0 .EQU %00000100 ; SELECT
SD_DI .EQU %00000001 ; DATA IN (CARD <- CPU) MOSI
SD_DO .EQU %00000001 ; DATA OUT (CARD -> CPU) MISO
SD_CINIT .EQU FALSE ; INITIALIZE OUTPUT PORT
SD_INVCS .EQU FALSE ; INVERT CS
#ENDIF
;
#IF (SD_DEVCNT > SD_DEVMAX)
.ECHO "*** ERROR: SDCNT EXCEEDS MAXIMUM SUPPORTED BY INTERFACE!!!\n"
!!! ; FORCE AN ASSEMBLY ERROR
@@ -510,6 +560,22 @@ SD_INIT:
CALL PRTHEXBYTE
#ENDIF
;
#IF (SDMODE == SDMODE_PIO)
PRTS(" MODE=PIO$")
PRTS(" IO=0x$")
LD A,SD_IOBASE
CALL PRTHEXBYTE
#ENDIF
;
#IF (SDMODE == SDMODE_Z80R)
PRTS(" MODE=Z80R$")
PRTS(" IO=0x$")
LD A,SD_IOBASE
CALL PRTHEXBYTE
LD A,SD_OPRDEF
LD (SD_OPRVAL),A
#ENDIF
;
#IF (SDMODE == SDMODE_USR)
PRTS(" MODE=USER$")
PRTS(" IO=0x$")
@@ -1736,6 +1802,17 @@ SD_SETUP:
OUT (SD_OPRREG),A ; OPRREG == SIO_MCR
#ENDIF
;
#IF (SDMODE == SDMODE_PIO)
LD A,SD_OPRDEF ; All output bits high
OUT (SD_OPRREG),A
LD A,$CF ; Port B mode 3
OUT (SD_DDR),A
LD A,SD_DDRVAL ; Set the direction bits
OUT (SD_DDR),A
LD A,$07 ; No interrupts
OUT (SD_DDR),A
#ENDIF
;
#IF (SDMODE == SDMODE_USR)
#IF (SD_CINIT == TRUE)
LD A,(SD_OPRMSK) ; GET OUTPUT PORT MASK
@@ -1863,7 +1940,7 @@ SD_DESELECT:
AND ~SD_CS0
#ENDIF
; ADJUST BIT(S) FOR INTERFACES USING INVERTED CS BITS
#IF ((SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_UART) | (SDMODE == SDMODE_SC))
#IF ((SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_UART) | (SDMODE == SDMODE_SC) | (SDMODE == SDMODE_PIO) | (SDMODE == SDMODE_Z80R))
#IF ((SDMODE == SDMODE_SC) & (SD_DEVCNT > 1))
XOR SD_CS0 | SD_CS1
#ELSE
@@ -1910,9 +1987,48 @@ SD_PUT:
SET 4,A ; SET TRANSMIT ENABLE
OUT0 (SD_CNTR),A
#ELSE
#IF (SDMODE == SDMODE_UART)
#IF (SDMODE == SDMODE_Z80R)
; USE C - THE CALLING CODE FOR COMMAND SEND FAILS TO SAVE HL/DE
; WHILST THE OTHER PATHS DO ?
LD C,A
RL C
RLA
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
RL C
RLA
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
RL C
RLA
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
RL C
RLA
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
RL C
RLA
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
RL C
RLA
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
RL C
RLA
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
RL C
RLA
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
#ELSE
#IF (SDMODE == SDMODE_UART)
XOR $FF ; DI IS INVERTED ON UART
#ENDIF
#ENDIF
LD C,A ; C=BYTE TO SEND
LD B,8 ; SEND 8 BITS (LOOP 8 TIMES)
LD A,(SD_OPRVAL) ; LOAD CURRENT OPR VALUE
@@ -1928,6 +2044,7 @@ SD_PUT1:
DJNZ SD_PUT1 ; REPEAT FOR ALL 8 BITS
LD A,(SD_OPRVAL) ; LOAD CURRENT OPR VALUE
OUT (SD_OPRREG),A ; LEAVE WITH CLOCK LOW
#ENDIF
#ENDIF
#ENDIF
RET ; DONE
@@ -1950,34 +2067,83 @@ SD_GET:
CALL MIRROR ; MSB<-->LSB MIRROR BITS
LD A,C ; KEEP RESULT
#ELSE
#IF (SDMODE == SDMODE_Z80R)
; MUST PRESERVE HL,DE
PUSH DE
LD A,1
LD C,SD_GPIO
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
IN B,(C)
RR B
RL E
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
IN B,(C)
RR B
RL E
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
IN B,(C)
RR B
RL E
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
IN B,(C)
RR B
RL E
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
IN B,(C)
RR B
RL E
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
IN B,(C)
RR B
RL E
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
IN B,(C)
RR B
RL E
OUT (SD_IOREG),A
OUT (SD_IOCLK),A
IN B,(C)
RR B
RL E
LD A,E
POP DE
#ELSE
LD B,8 ; RECEIVE 8 BITS (LOOP 8 TIMES)
LD A,(SD_OPRVAL) ; LOAD CURRENT OPR VALUE
SD_GET1:
XOR SD_CLK ; TOGGLE CLOCK
OUT (SD_OPRREG),A ; UPDATE CLOCK
IN A,(SD_INPREG) ; READ THE DATA WHILE CLOCK IS ACTIVE
#IF ((SDMODE == SDMODE_JUHA) | (SDMODE == SDMODE_PPI))
#IF ((SDMODE == SDMODE_JUHA) | (SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_PIO))
RLA ; ROTATE INP:7 INTO CF
#ENDIF
#IF (SDMODE == SDMODE_N8)
#ENDIF
#IF (SDMODE == SDMODE_N8)
RLA ; ROTATE INP:6 INTO CF
RLA ; "
#ENDIF
#IF (SDMODE == SDMODE_UART)
#ENDIF
#IF (SDMODE == SDMODE_UART)
RLA ; ROTATE INP:5 INTO CF
RLA ; "
RLA ; "
#ENDIF
#IF (SDMODE == SDMODE_DSD)
#ENDIF
#IF (SDMODE == SDMODE_DSD)
RRA ; ROTATE INP:0 INTO CF
#ENDIF
#ENDIF
RL C ; ROTATE CF INTO C:0
LD A,(SD_OPRVAL) ; BACK TO INITIAL VALUES (TOGGLE CLOCK)
OUT (SD_OPRREG),A ; DO IT
DJNZ SD_GET1 ; REPEAT FOR ALL 8 BITS
LD A,C ; GET BYTE RECEIVED INTO A
#IF (SDMODE == SDMODE_UART)
#IF (SDMODE == SDMODE_UART)
XOR $FF ; DO IS INVERTED ON UART
#ENDIF
#ENDIF
#ENDIF
#ENDIF

View File

@@ -60,13 +60,20 @@ SIO0B_CMD .EQU SIO0BASE + $03
SIO0B_DAT .EQU SIO0BASE + $01
#ENDIF
;
#IF (SIO0MODE == SIOMODE_ZP)
#IF (SIO0MODE == SIOMODE_ZP)
SIO0A_CMD .EQU SIO0BASE + $06
SIO0A_DAT .EQU SIO0BASE + $04
SIO0B_CMD .EQU SIO0BASE + $07
SIO0B_DAT .EQU SIO0BASE + $05
#ENDIF
;
#IF (SIO0MODE == SIOMODE_Z80R)
SIO0A_CMD .EQU SIO0BASE + $03
SIO0A_DAT .EQU SIO0BASE + $01
SIO0B_CMD .EQU SIO0BASE + $02
SIO0B_DAT .EQU SIO0BASE + $00
#ENDIF
;
#IF (SIOCNT >= 2)
;
#IF (SIO1MODE == SIOMODE_STD)
@@ -97,6 +104,13 @@ SIO1B_CMD .EQU SIO1BASE + $07
SIO1B_DAT .EQU SIO1BASE + $05
#ENDIF
;
#IF (SIO1MODE == SIOMODE_Z80R)
SIO1A_CMD .EQU SIO0BASE + $03
SIO1A_DAT .EQU SIO0BASE + $01
SIO1B_CMD .EQU SIO0BASE + $02
SIO1B_DAT .EQU SIO0BASE + $00
#ENDIF
;
#ENDIF
;
SIO_PREINIT:
@@ -785,10 +799,14 @@ SIO_INITBROK:
;
; SET RECEIVE DATA BITS WR3
;
LD A,D ; HI WORD OF CONFIG
AND %00100000 ; BIT 5 IS AUTO-CTS
LD H,A ; SAVE IN H
LD A,L ; DATA BITS
AND $C0 ; CLEAR OTHER BITS
OR $21 ; CTS/DCD AUTO, RX ENABLE
;
OR $01 ; RX ENABLE
OR H ; COMBINE WITH AUTO-CTS
;
LD (SIO_WR3),A
;
; SAVE CONFIG PERMANENTLY NOW

View File

@@ -1,5 +1,5 @@
; The purpose of this file is to define generic symbols and to include
; the requested build configuraton file to bring in platform specifics.
; the requested build configuration file to bring in platform specifics.
; There are several hardware platforms supported by SBC.
; 1. SBC Z80 SBC (v1 or v2) w/ ECB interface
@@ -16,6 +16,7 @@
; 12. RCZ280 Z280 CPU on RCBUS or ZZ80MB
; 13. MBC Andrew Lynch's Multi Board Computer
; 14. RPH Andrew Lynch's RHYOPHYRE Graphics Computer
; 15. Z80RETRO Peter Wilson's Z80-Retro Computer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
@@ -91,6 +92,15 @@ FDM360 .EQU 2 ; 5.25" FLOPPY, 360KB, 2 SIDES, 40 TRKS, 9 SECTORS
FDM120 .EQU 3 ; 5.25" FLOPPY, 1.2MB, 2 SIDES, 80 TRKS, 15 SECTORS
FDM111 .EQU 4 ; 8" FLOPPY, 1.11MB, 2 SIDES, 74 TRKS, 15 SECTORS
;
; FLOPPY DISK TYPE
;
FDT_NONE .EQU 0 ; NONE
FDT_3DD .EQU 1 ; 3.5" FLOPPY, DOUBLE DENSITY
FDT_3HD .EQU 2 ; 3.5" FLOPPY, HIGH DENSITY
FDT_5DD .EQU 3 ; 5.25" FLOPPY, DOUBLE DENSITY
FDT_5HD .EQU 4 ; 5.25" FLOPPY, HIGH DNSITY
FDT_8 .EQU 5 ; 8" FLOPPY, DOUBLE DENSITY
;
; ZILOG CTC MODE SELECTIONS
;
CTCMODE_NONE .EQU 0 ; NO CTC
@@ -116,6 +126,7 @@ SIOMODE_STD .EQU 1 ; STD SIO REG CFG (EZZ80, KIO)
SIOMODE_RC .EQU 2 ; RCBUS SIO MODULE (SPENCER OWEN)
SIOMODE_SMB .EQU 3 ; RCBUS SIO MODULE (SCOTT BAKER)
SIOMODE_ZP .EQU 4 ; ECB-ZILOG PERIPHERALS BOARD
SIOMODE_Z80R .EQU 5 ; SIO A/B SWAPPED
;
; TYPE OF CONSOLE BELL TO USE
;
@@ -182,6 +193,8 @@ SDMODE_MK4 .EQU 7 ; MARK IV
SDMODE_SC .EQU 8 ; SC (Steve Cousins)
SDMODE_MT .EQU 9 ; MT (Shift register SPI WIZNET for RCBUS)
SDMODE_USR .EQU 10 ; USER DEFINED (in sd.asm) (NOT COMPLETE)
SDMODE_PIO .EQU 11 ; Z80 PIO bitbang
SDMODE_Z80R .EQU 12 ; Z80 Retro
;
; AY SOUND CHIP MODE SELECTIONS
;
@@ -244,6 +257,12 @@ DMAMODE_Z280 .EQU 3 ; Z280 INTEGRATED DMA
DMAMODE_RC .EQU 4 ; RCBUS Z80 DMA
DMAMODE_MBC .EQU 5 ; MBC
;
; KEYBOARD MODE SELECTIONS
;
KBDMODE_NONE .EQU 0
KBDMODE_PS2 .EQU 1 ; PS/2 KEYBOARD CONTROLLER
KBDMODE_VRC .EQU 2 ; VGARC KEYBOARD CONTROLLER
;
; SERIAL DEVICE CONFIGURATION CONSTANTS
;
SER_DATA5 .EQU 0 << 0

View File

@@ -942,10 +942,10 @@ TMS_IDAT:
.DB TMS_PPIX ; PPI CONTROL PORT
#ENDIF
#IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC))
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
.DB TMS_KBDST ; 8242 CMD/STATUS PORT
.DB TMS_KBDDATA ; 8242 DATA PORT
.DB 0 ; FILLER
.DB 0 ; FILER
#ENDIF
;
.DB TMS_DATREG

View File

@@ -739,7 +739,7 @@ UART_DETECT2:
LD A,C ; RETURN RESULT IN A
RET
;
; DETERMINE TEH UART CHIP VARIANT AND RETURN IN A
; DETERMINE THE UART CHIP VARIANT AND RETURN IN A
;
UART_CHIP:
;

View File

@@ -1,3 +1,4 @@
; WARNING: This code does not seem to be working on Z280. WBW - 5/3/2023
;
; Size-optimized LZSA2 decompressor by spke & uniabis (134 bytes)
;
@@ -59,8 +60,8 @@
; 3. This notice may not be removed or altered from any source distribution.
;
; #DEFINE BACKWARD_DECOMPRESS ; uncomment for data compressed with option -b (+5 bytes, -3% speed)
; #DEFINE AVOID_SELFMODIFYING_CODE ; uncomment to disallow self-modifying code (-1 byte, -4% speed)
; #DEFINE BACKWARD_DECOMPRESS ; uncomment for data compressed with option -b (+5 bytes, -3% speed)
; #DEFINE AVOID_SELFMODIFYING_CODE ; uncomment to disallow self-modifying code (-1 byte, -4% speed)
#IFNDEF BACKWARD_DECOMPRESS
@@ -78,7 +79,7 @@
#DEFINE ADD_OFFSET \
#DEFCONT \ ld a,e \ sub l \ ld l,a
#DEFCONT \ ld a,d \ sbc h \ ld h,a ; 6*4 = 24t / 6 bytes
#DEFCONT \ ld a,d \ sbc h \ ld h,a ; 6*4 = 24t / 6 bytes
#DEFINE BLOCKCOPY \
#DEFCONT \ lddr
@@ -117,7 +118,7 @@ MatchLen: and %00000111 \ add a,2 \ cp 9
call z,ExtendedCode
CopyMatch: ld c,a
push hl ; BC = len, DE = dest, HL = -offset, SP -> [src]
push hl ; BC = len, DE = dest, HL = -offset, SP -> [src]
#IFNDEF AVOID_SELFMODIFYING_CODE
PrevOffset .EQU $+1 \ ld hl,0
@@ -125,8 +126,8 @@ PrevOffset .EQU $+1 \ ld hl,0
push ix \ pop hl
#ENDIF
ADD_OFFSET
BLOCKCOPY ; BC = 0, DE = dest
pop hl ; HL = src
BLOCKCOPY ; BC = 0, DE = dest
pop hl ; HL = src
ReadToken: ld a,(hl) \ NEXT_HL \ push af
and %00011000 \ jr z,NoLiterals
@@ -162,12 +163,16 @@ ExtendedCode: call ReadNibble \ inc a \ jr z,ExtraByte
ExtraByte ld a,15 \ add a,c \ add a,(hl) \ NEXT_HL \ ret nc
ld a,(hl) \ NEXT_HL
ld b,(hl) \ NEXT_HL \ ret nz
pop bc ; RET is not needed, because RET from ReadNibble is sufficient
pop bc ; RET is not needed, because RET from ReadNibble is sufficient
ReadNibble: ld c,a
skipLDCA xor a \ ex af,af' \ ret m
skipLDCA xor a \ nop \ ex af,af' \ ret m ; NOP for Z280 bug
ld a,(hl) \ or $F0 \ ex af,af'
ld a,(hl) \ NEXT_HL \ or $0F
rrca \ rrca \ rrca \ rrca \ ret
; The extraneous NOP instruction above is to workaround a bug in the
; Z280 processor where ex af,af' can copy rather than swap the flags
; register.
; See https://www.retrobrewcomputers.org/forum/index.php?t=msg&goto=10183&

View File

@@ -1039,5 +1039,6 @@ REGS_VGA:
;==================================================================================================
;
VGA_IDAT:
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
.DB VGA_KBDST
.DB VGA_KBDDATA

670
Source/HBIOS/vrc.asm Normal file
View File

@@ -0,0 +1,670 @@
;======================================================================
; VIDEO DRIVER FOR VGARC
; https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:vgarc1:vgarc1home
;
; WRITTEN BY: WAYNE WARTHEN -- 5/1/2023
;======================================================================
;
; TODO:
;
;======================================================================
; VGARC DRIVER - CONSTANTS
;======================================================================
;
VRC_BASE .EQU $00 ; FIRST CHAR DATA PORT
VRC_FONTBASE .EQU VRC_BASE + $0C ; FIRST FONT PORT
VRC_SCROLLIO .EQU $F5 ; SCROLL REG PORT
;
VRC_KBDDATA .EQU $F4
VRC_KBDST .EQU $F5
;
VRC_ROWS .EQU 48
VRC_COLS .EQU 64
;
#DEFINE USEFONTVGARC
#DEFINE VRC_FONT FONTVGARC
;
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
;
;======================================================================
; VRC DRIVER - INITIALIZATION
;======================================================================
;
VRC_INIT:
LD IY,VRC_IDAT ; POINTER TO INSTANCE DATA
;
CALL NEWLINE ; FORMATTING
PRTS("VRC: IO=0x$")
LD A,VRC_BASE
CALL PRTHEXBYTE
CALL VRC_PROBE ; CHECK FOR HW PRESENCE
JR Z,VRC_INIT1 ; CONTINUE IF HW PRESENT
;
; HARDWARE NOT PRESENT
PRTS(" NOT PRESENT$")
OR $FF ; SIGNAL FAILURE
RET
;
VRC_INIT1:
; RECORD DRIVER ACTIVE
OR $FF
LD (VRC_ACTIVE),A
; DISPLAY CONSOLE DIMENSIONS
LD A,VRC_COLS
CALL PC_SPACE
CALL PRTDECB
LD A,'X'
CALL COUT
LD A,VRC_ROWS
CALL PRTDECB
PRTS(" TEXT$")
; HARDWARE INITIALIZATION
CALL VRC_CRTINIT ; SETUP THE VGARC CHIP REGISTERS
CALL VRC_LOADFONT ; LOAD FONT DATA FROM ROM TO VGARC STORAGE
CALL VRC_VDARES ; RESET
CALL KBD_INIT ; INITIALIZE KEYBOARD DRIVER
; ADD OURSELVES TO VDA DISPATCH TABLE
LD BC,VRC_FNTBL ; BC := FUNCTION TABLE ADDRESS
LD DE,VRC_IDAT ; DE := VGARC INSTANCE DATA PTR
CALL VDA_ADDENT ; ADD ENTRY, A := UNIT ASSIGNED
; INITIALIZE EMULATION
LD C,A ; C := ASSIGNED VIDEO DEVICE NUM
LD DE,VRC_FNTBL ; DE := FUNCTION TABLE ADDRESS
LD HL,VRC_IDAT ; HL := VGARC INSTANCE DATA PTR
CALL TERM_ATTACH ; DO IT
XOR A ; SIGNAL SUCCESS
RET
;
;======================================================================
; VGARC DRIVER - VIDEO DISPLAY ADAPTER (VDA) FUNCTIONS
;======================================================================
;
VRC_FNTBL:
.DW VRC_VDAINI
.DW VRC_VDAQRY
.DW VRC_VDARES
.DW VRC_VDADEV
.DW VRC_VDASCS
.DW VRC_VDASCP
.DW VRC_VDASAT
.DW VRC_VDASCO
.DW VRC_VDAWRC
.DW VRC_VDAFIL
.DW VRC_VDACPY
.DW VRC_VDASCR
.DW KBD_STAT
.DW KBD_FLUSH
.DW KBD_READ
.DW VRC_VDARDC
#IF (($ - VRC_FNTBL) != (VDA_FNCNT * 2))
.ECHO "*** INVALID VRC FUNCTION TABLE ***\n"
!!!!!
#ENDIF
VRC_VDAINI:
; RESET VDA
; CURRENTLY IGNORES VIDEO MODE AND BITMAP DATA
CALL VRC_VDARES ; RESET VDA
XOR A ; SIGNAL SUCCESS
RET
VRC_VDAQRY:
LD C,$00 ; MODE ZERO IS ALL WE KNOW
LD D,VRC_ROWS ; ROWS
LD E,VRC_COLS ; COLS
LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED YET
XOR A ; SIGNAL SUCCESS
RET
VRC_VDARES:
XOR A ; CLEAR ATTRIBUTES (REV VIDEO OFF)
LD (VRC_ATTR),A ; SAVE IT
DEC A ; INIT CUR NESTING, INIT TO HIDDEN
LD (VRC_CURSOR),A ; SAVE IT
LD HL,0 ; ZERO THE SCROLL OFFSET
LD (VRC_OFF),HL ; SAVE VALUE
XOR A ; ZERO
LD (VRC_LOFF),A ; SCROLL OFFSET (LINES)
LD A,' ' ; BLANK THE SCREEN
LD DE,VRC_ROWS*VRC_COLS ; FILL ENTIRE BUFFER
CALL VRC_FILL ; DO IT
LD DE,0 ; ROW = 0, COL = 0
CALL VRC_XY ; SEND CURSOR TO TOP LEFT
CALL VRC_SHOWCUR ; NOW SHOW THE CURSOR
;
XOR A ; SIGNAL SUCCESS
RET
VRC_VDADEV:
LD D,VDADEV_VRC ; D := DEVICE TYPE
LD E,0 ; E := PHYSICAL UNIT IS ALWAYS ZERO
LD H,0 ; H := 0, DRIVER HAS NO MODES
LD L,VRC_BASE ; L := BASE I/O ADDRESS
XOR A ; SIGNAL SUCCESS
RET
VRC_VDASCS:
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED (YET)
RET
VRC_VDASCP:
CALL VRC_XY ; SET CURSOR POSITION
XOR A ; SIGNAL SUCCESS
RET
VRC_VDASAT:
; INCOMING IS: -----RUB (R=REVERSE, U=UNDERLINE, B=BLINK)
;
; ALL WE SUPPORT IS REVERSE. MOVE BIT TO BIT 7 OF ATTR BYTE
LD A,E ; GET ATTR VALUE
RRCA ; ROTATE TO BIT 7
RRCA
RRCA
AND $80 ; ENSURE ONLY BIT 7
LD (VRC_ATTR),A ; SAVE IT
XOR A ; SIGNAL SUCCESS
RET ; DONE
VRC_VDASCO:
; INCOMING IS: IBGRIBGR (I=INTENSITY, B=BLUE, G=GREEN, R=RED)
;
; NONE SUPPORTED, IGNORE
XOR A ; SIGNAL SUCCESS
RET ; DONE
VRC_VDAWRC:
LD A,E ; CHARACTER TO WRITE GOES IN A
CALL VRC_PUTCHAR ; PUT IT ON THE SCREEN
XOR A ; SIGNAL SUCCESS
RET
VRC_VDAFIL:
LD A,E ; FILL CHARACTER GOES IN A
EX DE,HL ; FILL LENGTH GOES IN DE
CALL VRC_FILL ; DO THE FILL
XOR A ; SIGNAL SUCCESS
RET
VRC_VDACPY:
; LENGTH IN HL, SOURCE ROW/COL IN DE, DEST IS VRC_POS
; BLKCPY USES: HL=SOURCE, DE=DEST, BC=COUNT
PUSH HL ; SAVE LENGTH
CALL VRC_XY2IDX ; ROW/COL IN DE -> SOURCE ADR IN HL
POP BC ; RECOVER LENGTH IN BC
LD DE,(VRC_POS) ; PUT DEST IN DE
JP VRC_BLKCPY ; DO A BLOCK COPY
VRC_VDASCR:
LD A,E ; LOAD E INTO A
OR A ; SET FLAGS
RET Z ; IF ZERO, WE ARE DONE
PUSH DE ; SAVE E
JP M,VRC_VDASCR1 ; E IS NEGATIVE, REVERSE SCROLL
CALL VRC_SCROLL ; SCROLL FORWARD ONE LINE
POP DE ; RECOVER E
DEC E ; DECREMENT IT
JR VRC_VDASCR ; LOOP
VRC_VDASCR1:
CALL VRC_RSCROLL ; SCROLL REVERSE ONE LINE
POP DE ; RECOVER E
INC E ; INCREMENT IT
JR VRC_VDASCR ; LOOP
;----------------------------------------------------------------------
; READ VALUE AT CURRENT VDU BUFFER POSITION
; RETURN E = CHARACTER, B = COLOUR, C = ATTRIBUTES
;----------------------------------------------------------------------
VRC_VDARDC:
OR $FF ; UNSUPPORTED FUNCTION
RET
;
;======================================================================
; VGARC DRIVER - PRIVATE DRIVER FUNCTIONS
;======================================================================
;
;
;----------------------------------------------------------------------
; PROBE FOR VGARC HARDWARE
;----------------------------------------------------------------------
;
; ON RETURN, ZF SET INDICATES HARDWARE FOUND
;
VRC_PROBE:
LD C,VRC_BASE + 1 ; +1 AVOIDS LEDS
LD B,$00
LD A,$AA
OUT (C),A
INC B
LD A,$55
OUT (C),A
DEC B
IN A,(C)
CP $AA
RET NZ
INC B
IN A,(C)
CP $55
RET
;
;----------------------------------------------------------------------
; CRTC DISPLAY CONTROLLER CHIP INITIALIZATION
;----------------------------------------------------------------------
;
VRC_CRTINIT:
XOR A ; ZERO ACCUM
LD A,$80 ; ACTIVATE AND ZERO HW SCROLL
OUT (VRC_SCROLLIO),A ; RESET HW SCROLL
RET ; DONE
;
;----------------------------------------------------------------------
; LOAD FONT DATA
;----------------------------------------------------------------------
;
VRC_LOADFONT:
;
#IF USELZSA2
LD (VRC_STACK),SP ; SAVE STACK
LD HL,(VRC_STACK) ; AND SHIFT IT
LD DE,$2000 ; DOWN 4KB TO
OR A ; CREATE A
SBC HL,DE ; DECOMPRESSION BUFFER
LD SP,HL ; HL POINTS TO BUFFER
EX DE,HL ; START OF STACK BUFFER
PUSH DE ; SAVE IT
LD HL,VRC_FONT ; START OF FONT DATA
CALL DLZSA2 ; DECOMPRESS TO DE
POP HL ; RECALL STACK BUFFER POSITION
#ELSE
LD HL,VRC_FONT ; START OF FONT DATA
#ENDIF
;
#IF 0
; THIS APPROACH TO LOADING FONTS IS BEST (FASTEST), BUT IS
; CAUSING ARTIFACTS ON THE DISPLAYED FONTS WHEN RUN ON A
; Z280. IT IS NOT CLEAR WHAT THE PROBLEM IS (POSSIBLY
; Z280 BUG), BUT FOR NOW WE AVOID THIS AND USE AN
; ALTERNATIVE APPROACH BELOW.
LD DE,0+(128*8)-1 ; LENGTH OF FONT DATA - 1
ADD HL,DE ; ADD TO HL
LD BC,VRC_FONTBASE+3 ; WORK BACKWARDS
OTDR ; DO 4 PAGES
DEC C
OTDR
DEC C
OTDR
DEC C
OTDR
DEC C
#ENDIF
;
#IF 1
; ALTERNATIVE APPROACH TO LOADING FONTS. THIS ONE AVOIDS
; THE USE OF OTDR WHICH SEEMS TO CAUSE PROBLEMS ON Z280.
LD B,0
LD C,VRC_FONTBASE
VRC_LOADFONT1:
LD A,(HL)
OUT (C),A
INC HL
INC B
JR NZ,VRC_LOADFONT1
INC C
LD A,C
CP VRC_FONTBASE + 4
JR NZ,VRC_LOADFONT1
#ENDIF
;
#IF USELZSA2
LD HL,(VRC_STACK) ; ERASE DECOMPRESS BUFFER
LD SP,HL ; BY RESTORING THE STACK
RET ; DONE
VRC_STACK .DW 0
#ELSE
RET
#ENDIF
;
;----------------------------------------------------------------------
; SET CURSOR POSITION TO ROW IN D AND COLUMN IN E
;----------------------------------------------------------------------
;
VRC_XY:
PUSH DE ; SAVE NEW POSITION FOR NOW
CALL VRC_HIDECUR ; HIDE THE CURSOR
POP DE ; RECOVER INCOMING ROW/COL
CALL VRC_XY2IDX ; CONVERT ROW/COL TO BUF IDX
LD (VRC_POS),HL ; SAVE THE RESULT (DISPLAY POSITION)
JP VRC_SHOWCUR ; SHOW THE CURSOR AND EXIT
;
;----------------------------------------------------------------------
; CONVERT XY COORDINATES IN DE INTO LINEAR INDEX IN HL
; D=ROW, E=COL
;----------------------------------------------------------------------
;
VRC_XY2IDX:
LD A,E ; SAVE COLUMN NUMBER IN A
LD H,D ; SET H TO ROW NUMBER
LD E,VRC_COLS ; SET E TO ROW LENGTH
CALL MULT8 ; MULTIPLY TO GET ROW OFFSET, H * E = HL, E=0, B=0
LD E,A ; GET COLUMN BACK
ADD HL,DE ; ADD IT IN
LD DE,(VRC_OFF) ; SCREEN OFFSET
ADD HL,DE ; ADJUST
;
PUSH HL ; SAVE IT
LD DE,VRC_ROWS * VRC_COLS ; DE := BUF SIZE
OR A ; CLEAR CARRY
SBC HL,DE ; SUBTRACT FROM HL
JR C,VRC_XY2IDX1 ; BYPASS IF NO WRAP
POP DE ; THROW AWAY TOS
RET ; DONE
VRC_XY2IDX1:
POP HL ; NO WRAP, RESTORE
RET ; RETURN
;
;----------------------------------------------------------------------
; SHOW OR HIDE CURSOR
;----------------------------------------------------------------------
;
; VGARC USES HIGH BIT OF CHAR VALUE FOR INVERSE VIDEO. WE HAVE NO
; HARDWARE CURSOR, SO WE LEVERAGE THE INVERSE VIDEO TO SHOW A CURSOR.
; SINCE ANY OPERATION THAT POTENTIALLY OVERWERITES THE CURSOR POSITION
; COULD DESTROY THE CURSOR, WE HAVE A COUPLE FUNCTIONS TO SHOW AND
; HIDE THE CURSOR. A VARIABLE IS USED TO TRACK THE SHOW/HIDE
; OPERATIONS BECAUSE WE MAY HAVE NESTED CALLS. ZERO MEANS SHOW
; REAL CURSOR. ANY VALUE LESS THAN ZERO MEANS HIDDEN.
;
VRC_SHOWCUR:
LD A,(VRC_CURSOR) ; GET CURRENT NESTING VALUE
INC A ; INCREMENT TO SHOW
LD (VRC_CURSOR),A ; SAVE IT
RET NZ ; ALREADY SHOWN, NOTHING TO DO
;
; WE TRANSITIONED FROM NON-ZERO TO ZERO. NEED TO ACTUALLY
; SHOW THE CURSOR NOW.
;
JR VRC_FLIPCUR
;
VRC_HIDECUR:
LD A,(VRC_CURSOR) ; GET CURRENT NESTING VALUE
DEC A ; DECREMENT TO HIDE
LD (VRC_CURSOR),A ; SAVE IT
INC A ; BACK TO ORIGINAL VALUE
RET NZ ; ALREADY HIDDEN, NOTHING TO DO
;
; WE TRANSITIONED FROM ZERO TO NEGATIVE. NEED TO ACTUALLY
; HIDE THE CURSOR NOW. SINCE SHOWING AND HIDING ARE THE
; SAME OPERATION (FLIP REV VID BIT), WE REUSE CODE ABOVE.
;
JR VRC_FLIPCUR
;
VRC_FLIPCUR:
; SHOWING OR HIDING THE CURSOR IS THE SAME OPERATION.
; SO WE USE COMMON CODE TO FLIP THE REV VID BIT.
LD HL,(VRC_POS) ; CURSOR POSITION
LD B,L ; INVERT FOR I/O
LD C,H
IN A,(C) ; GET VALUE
XOR $80 ; FLIP REV VID BIT
OUT (C),A ; WRITE NEW VALUE
RET
;
;----------------------------------------------------------------------
; WRITE VALUE IN A TO CURRENT VDU BUFFER POSITION, ADVANCE CURSOR
;----------------------------------------------------------------------
;
VRC_PUTCHAR:
; WRITE CHAR AT CURRENT CURSOR POSITION. SINCE THE CURSOR
; IS JUST THE HIGH BIT (REV VIDEO), WE FIRST TURN OFF THE
; CURSOR, WRITE THE CHAR, UPDATE THE CURSOR POSITION, AND
; FINALLY TURN THE CURSOR BACK ON AT THE NEW POSITION.
;
PUSH AF ; SAVE INCOMING CHAR
CALL VRC_HIDECUR ; HIDE CURSOR
POP AF
LD HL,(VRC_POS) ; GET CUR BUF POSITION
LD B,L ; INVERT FOR I/O
LD C,H
AND $7F ; SUPPRESS ATTRIBUTE (HI BIT)
LD L,A ; PUT VALUE IN L
LD A,(VRC_ATTR) ; GET CURRENT ATTRIBUTE
OR L ; COMBINE WITH CHAR VALUE
OUT (C),A ; WRITE VALUE TO BUFFER
;
; SET CURSOR AT NEW POSITION
LD HL,(VRC_POS) ; GET CURRENT BUF OFFSET
INC HL ; INCREMENT
PUSH HL ; SAVE IT
LD DE,VRC_ROWS * VRC_COLS ; DE := BUF SIZE
OR A ; CLEAR CARRY
SBC HL,DE ; SUBTRACT FROM HL
JR C,VRC_PUTCHAR1 ; BYPASS IF NO WRAP
POP DE ; THROW AWAY TOS
LD HL,0 ; BACK TO START
JR VRC_PUTCHAR2 ; CONTINUE
VRC_PUTCHAR1:
POP HL ; NO WRAP, RESTORE
VRC_PUTCHAR2:
LD (VRC_POS),HL ; SAVE NEW POSITION
JP VRC_SHOWCUR ; SHOW IT AND RETURN
;
;----------------------------------------------------------------------
; FILL AREA IN BUFFER WITH SPECIFIED CHARACTER AND CURRENT COLOR/ATTRIBUTE
; STARTING AT THE CURRENT FRAME BUFFER POSITION
; A: FILL CHARACTER
; DE: NUMBER OF CHARACTERS TO FILL
;----------------------------------------------------------------------
;
VRC_FILL:
LD (VRC_FILL1+1),A ; SAVE FILL CHAR
PUSH DE ; SAVE INCOMING DE
CALL VRC_HIDECUR ; HIDE CURSOR
POP DE ; RESTORE INCOMING DE
LD HL,(VRC_POS) ; STARTING POSITION
;
VRC_FILL1:
LD A,$FF ; FILL CHAR
LD B,L ; INVERT FOR I/O
LD C,H
OUT (C),A ; PUT CHAR TO BUF
;
DEC DE ; DECREMENT COUNT
LD A,D ; TEST FOR ZERO
OR E
JP Z,VRC_SHOWCUR ; EXIT VIA SHOW CURSOR IF DONE
;
INC HL ; INCREMENT
PUSH HL ; SAVE IT
LD BC,VRC_ROWS * VRC_COLS ; BC := BUF SIZE
OR A ; CLEAR CARRY
SBC HL,BC ; SUBTRACT FROM HL
JR C,VRC_FILL2 ; BYPASS IF NO WRAP
POP BC ; THROW AWAY TOS
LD HL,0 ; BACK TO START
JR VRC_FILL3 ; CONTINUE
VRC_FILL2:
POP HL ; NO WRAP, RESTORE
VRC_FILL3:
LD (VRC_POS),HL ; SAVE NEW POSITION
JR VRC_FILL1 ; LOOP TILL DONE
;
;----------------------------------------------------------------------
; SCROLL ENTIRE SCREEN FORWARD BY ONE LINE (CURSOR POSITION UNCHANGED)
;----------------------------------------------------------------------
;
VRC_SCROLL:
; SCROLL DOWN 1 LINE VIA HARDWARE
CALL VRC_HIDECUR ; SUPPRESS CURSOR
LD A,(VRC_LOFF) ; GET LINE OFFSET
INC A ; BUMP
CP VRC_ROWS ; OVERFLOW?
JR C,VRC_SCROLL1 ; IF NOT, SKIP
XOR A ; ELSE, BACK TO ZERO
VRC_SCROLL1:
LD (VRC_LOFF),A ; SAVE NEW VALUE
OR $80 ; SET HW SCROLL ENABLE BIT
OUT (VRC_SCROLLIO),A ; DO IT
;
; ADJUST BUFFER OFFSET
LD HL,(VRC_OFF) ; BUFFER OFFSET
LD DE,VRC_COLS ; COLUMNS
ADD HL,DE ; ADD TO GET NEW OFFSET
PUSH HL ; SAVE IT
LD DE,VRC_ROWS * VRC_COLS ; DE := BUF SIZE
OR A ; CLEAR CARRY
SBC HL,DE ; SUBTRACT FROM HL
JR C,VRC_SCROLL2 ; BYPASS IF NO WRAP
POP DE ; BURN TOS
JR VRC_SCROLL3 ; CONTINUE
VRC_SCROLL2:
POP HL ; NO WRAP, RESTORE HL
VRC_SCROLL3:
LD (VRC_OFF),HL ; SAVE NEW OFFSET
;
; FILL EXPOSED LINE
LD HL,(VRC_POS) ; GET CURSOR POS
PUSH HL ; SAVE IT
LD D,VRC_ROWS - 1 ; LAST ROW
LD E,0 ; FIRST COLUMN
CALL VRC_XY2IDX ; HL = START OF LAST LINE
LD (VRC_POS),HL ; SET FILL POSITION
LD A,' ' ; FILL WITH BLANKS
LD DE,VRC_COLS ; FILL ONE LINE
CALL VRC_FILL ; FILL LAST LINE
POP HL ; RECOVER CURSOR POS
LD (VRC_POS),HL ; PUT VALUE BACK
;
; ADJUST CURSOR POSITION
LD HL,(VRC_POS) ; CURSOR POSITION
LD DE,VRC_COLS ; COLUMNS
ADD HL,DE ; NEW CURSOR POS
PUSH HL ; SAVE IT
LD DE,VRC_ROWS * VRC_COLS ; DE := DISPLAY SIZE
OR A ; CLEAR CARRY
SBC HL,DE ; SUBTRACT FROM HL
JR C,VRC_SCROLL4 ; BYPASS IF NO WRAP
POP DE ; BURN TOS
JR VRC_SCROLL5 ; CONTINUE
VRC_SCROLL4:
POP HL ; NO WRAP, RESTORE HL
VRC_SCROLL5:
LD (VRC_POS),HL ; SAVE NEW CURSOR POS
JP VRC_SHOWCUR ; EXIT VIA SHOW CURSOR
;
;----------------------------------------------------------------------
; REVERSE SCROLL ENTIRE SCREEN BY ONE LINE (CURSOR POSITION UNCHANGED)
;----------------------------------------------------------------------
;
VRC_RSCROLL:
; SCROLL UP 1 LINE VIA HARDWARE
CALL VRC_HIDECUR ; SUPPRESS CURSOR
LD A,(VRC_LOFF) ; GET LINE OFFSET
DEC A ; BUMP
CP $FF ; OVERFLOW?
JR NZ,VRC_RSCROLL1 ; IF NOT, SKIP
LD A,VRC_ROWS - 1 ; ELSE, BACK TO LAST ROW
VRC_RSCROLL1:
LD (VRC_LOFF),A ; SAVE NEW VALUE
OR $80 ; SET HW SCROLL ENABLE BIT
OUT (VRC_SCROLLIO),A ; DO IT
;
; ADJUST BUFFER OFFSET
LD HL,(VRC_OFF) ; BUFFER OFFSET
LD DE,VRC_COLS ; COLUMNS
OR A ; CLEAR CARRY
SBC HL,DE ; SUBTRACT TO GET NEW OFFSET
PUSH HL ; SAVE IT
JR NC,VRC_RSCROLL2 ; BYPASS IF NO WRAP
LD DE,VRC_ROWS * VRC_COLS ; DISPLAY SIZE
ADD HL,DE ; HANDLE WRAP
POP DE ; BURN TOS
JR VRC_RSCROLL3 ; CONTINUE
VRC_RSCROLL2:
POP HL ; NO WRAP, RESTORE HL
VRC_RSCROLL3:
LD (VRC_OFF),HL ; SAVE NEW OFFSET
;
; FILL EXPOSED LINE
LD HL,(VRC_POS) ; GET CURSOR POS
PUSH HL ; SAVE IT
LD D,0 ; FIRST ROW
LD E,0 ; FIRST COLUMN
CALL VRC_XY2IDX ; HL = START OF FIRST LINE
LD (VRC_POS),HL ; SET FILL POSITION
LD A,' ' ; FILL WITH BLANKS
LD DE,VRC_COLS ; FILL ONE LINE
CALL VRC_FILL ; FILL FIRST LINE
POP HL ; RECOVER CURSOR POS
LD (VRC_POS),HL ; PUT VALUE BACK
;
; ADJUST CURSOR POSITION
LD HL,(VRC_POS) ; CURSOR POSITION
LD DE,VRC_COLS ; COLUMNS
OR A ; CLEAR CARRY
SBC HL,DE ; NEW CURSOR POS
PUSH HL ; SAVE IT
JR NC,VRC_RSCROLL4 ; BYPASS IF NO WRAP
LD DE,VRC_ROWS * VRC_COLS ; DISPLAY SIZE
ADD HL,DE ; HANDLE WRAP
POP DE ; BURN TOS
JR VRC_RSCROLL5 ; CONTINUE
VRC_RSCROLL4:
POP HL ; NO WRAP, RESTORE HL
VRC_RSCROLL5:
LD (VRC_POS),HL ; SAVE NEW CURSOR POS
JP VRC_SHOWCUR ; EXIT VIA SHOW CURSOR
;
;----------------------------------------------------------------------
; BLOCK COPY BC BYTES FROM HL TO DE
;----------------------------------------------------------------------
;
VRC_BLKCPY:
PUSH BC
PUSH HL
CALL VRC_HIDECUR
POP HL
POP BC
;
VRC_BLKCPY1:
LD A,B
OR C
JP Z,VRC_SHOWCUR ; EXIT VIA SHOW CURSOR
;
PUSH BC ; SAVE LOOP CTL
LD B,L ; INVERT FOR I/O
LD C,H
IN A,(C) ; GET SOURCE CHAR
LD B,E ; INVERT FOR I/O
LD C,D
OUT (C),A ; WRITE DEST CHAR
POP BC ; RESTORE LOOP CTL
;
INC HL ; NEXT SRC CHAR
INC DE ; NEXT DEST CHAR
DEC BC ; DEC COUNT
JR VRC_BLKCPY1 ; LOOP TILL DONE
;
;==================================================================================================
; VGARC DRIVER - DATA
;==================================================================================================
;
VRC_ATTR .DB 0 ; CURRENT COLOR
VRC_POS .DW 0 ; CURRENT DISPLAY POSITION
VRC_OFF .DW 0 ; SCREEN START OFFSET INTO DISP BUF
VRC_LOFF .DB 0 ; LINE OFFSET INTO DISP BUF
VRC_CURSOR .DB 0 ; CURSOR NESTING LEVEL
VRC_ACTIVE .DB FALSE ; FLAG FOR DRIVER ACTIVE
;
;==================================================================================================
; VGA DRIVER - INSTANCE DATA
;==================================================================================================
;
VRC_IDAT:
.DB KBDMODE_VRC ; VGARC KEYBOARD CONTROLLER
.DB VRC_KBDST
.DB VRC_KBDDATA

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -4,6 +4,10 @@ This disk is one of several ready-to-run disks provided with RomWBW.
It contains the files to start and run DOS/65 on an MBC system that
contains Dan Werner's 6502 processor.
WARNING: This is a work in progress. Use of this disk image requires
specific hardware and configuration. You should contact Dan Werner
before attempting to use this disk image.
The remainder of this document describes the usage and contents of
this disk. It is highly recommended that you review the "RomWBW
User Guide.pdf" document found in the Doc directory of the

View File

@@ -0,0 +1,15 @@
S1230800A2192003018508AD08018509A20D200301A509C920D004A508100538E9012907D2
S1230820A20E8509200301A22220030185028403A000B102186901850A85108504C8B1025F
S12308406900850B85118505A006B102850FA21B20030185068407A900850C850D850E2018
S12308607A09A40DA60CB1063D8609D004A930D00AA50AD002C60BC60AA931208109A50435
S1230880D002C605C604A5040505F01EE60CA50CC908D0CEA900850CE60DD002E607A50D7C
S12308A02903D0BE207A094C6208207A09207A0920EF08A920208109A50F0AAABD9909BCCE
S12308C09A09A209200301A9A3A009A209200301A900850EA510A411850A840B20EF08A95A
S12308E0B5A009A209200301A508A20E4C0301A20038A50AE910850AA50BE927850BE8B021
S1230900F1A50A6910850AA50B6927850BCAF0068A850E207409A20038A50AE9E8850AA553
S12309200BE903850BE8B0F1A50A69E8850AA50B6903850B206809A20038A50AE964850A72
S1230940A50BE900850BE8B0F1A50A6964850A206809A20038A50AE90AE8B0FB690A850A34
S1230960206809A50A4C7409CAF004860ED004A50EF0068A093020810960A90D208109A9C5
S12309800AA2024C0301804020100804020131243224342438243136248E0990099209940D
S11F09A00996094B20424C4F434B532046524545204F46202420544F54414C2463
S9

View File

@@ -0,0 +1,309 @@
S12308004C441910434F50595249474854202843292032303038202D20524943484152445A
S123082020412E204C45415259C9419007C949B003290F60A926A01B205008A200F02BC902
S12308401AD00160A202D022A20ED01EA21AD01AA209D016A20FD015A210D011A213D00D23
S1230860A216D009A214D002A2154C0301200301C9FF608579847AA000B179C924D0016024
S1230880209C09C8D0F3A98FA01B2050084C3B08A91CA02160A93DA02160A95EA0216020D5
S12308A095084C5C08A97FA021204C082090084C640838A507E97F8575A508E9258576A27C
S12308C00746766675CAD0F9E475D0016020F108A507A408204C08209508206808F0034CE8
S12308E0860818A507698085079002E608C675D0DFA97FA0258507840860247E3022247DC9
S123090010034C3F08A609E07FD00BA60AE02DD0054820210968A0009109E609D002E60ACD
S12309206038A509E97F8577A50AE9298578A20746786677CAD0F9E477D00160206009A5BA
S123094009A40A204C08209A08206808F0034C860818A509698085099002E60AC677D0DF9E
S1230960A97FA0298509840A60290F0930C93A9002690660484A4A4A4A207D096820690921
S1230980A607E07FD00BA608E029D0054820B20868A0009107E607D002E608600848866ECD
S12309A0846F2404100320FA08A46FA66E682860484A4A4A4A206909209C09682069094CBF
S12309C09C09484A4A4A4A206909203F08682069094C3F08A90D209C09A90A4C9C09A90DA3
S12309E0203F08A90A4C3F0818A5496D0308854BA54A6900854C18A54B6902854B9002E614
S1230A004C60A4198403A5188502D01C98F004C901D01560A503D002C602C603A502D0088D
S1230A20A503F0EFC901F0EBA9FF8548A50B8549A50C854AA901852EA900852D20E809A0AA
S1230A4000B149D14BD008C8CC0308D0F4F0169014AC0308C8B14948B14B914968914B8834
S1230A6010F3C88448A54B8549A54C854A20E809E62ED002E62DA52DC50290C3A52EC503CC
S1230A8090BD2448108E60E8E428D0011860A525F0021860A526C9FFF0F8386018A53F69B2
S1230AA0028542A5406900854138A526E5428526A8A525E5418525D0059830093860C9FF38
S1230AC0D0039830F71860A5283018A620E428F002B010BDCB2DC920F00486213860E88630
S1230AE020D0EA1860A0008423A620E428F002B018BDCB2DC920F008C93DF004C93BD00F5A
S1230B00C000D016CA86223860C000F0F71860C927D007C8C002D002A000E8E623D0CCA60C
S1230B2020E428F002B02EBDCB2DC927D01320870A8620B020BDCB2DC927D0F2E88620D041
S1230B40E0BDCB2DC920F00DC929F00AC92CF006E88620D0CC1860205D0B901060BDCB2D60
S1230B60C9419005C95B900218603860BDCB2DC9309005C93A900218603860A0FFC8CC03EE
S1230B8008F00AC42FB01020570BB0021860BDCB2D996F2EE8B0E6A920996F2EB0DFA90050
S1230BA085258526A9018536A9FE251F851F863D863C20580E900160A02BC92DD007A8208C
S1230BC0870A9001608431863DA9008532853320580E900160C93CD004E632D006C93ED0EA
S1230BE008E63320870A900160863D206C0B9005A00A4CBB0CC924D005A0104CAD0CC94002
S1230C00D005A0084CAD0CC925D005A0024CAD0C205D0B904720070E38E901CD03089001C5
S1230C2060207B0B200E0F90034CC60C700320750FA52BD01FA52AD01BA526D01EA525D0D9
S1230C401AA531C92BD010863DCA20870AB00520580E90074C020EA63C863D60C92AD00B8D
S1230C60A51C8535A51D8534E8D05BC927F0016020870A900160BDCB2DC927D00C20870A52
S1230C80B025BDCB2DC927D01E8535A900853420870AB032BDCB2DC927D00C20870AB02631
S1230CA0BDCB2DC927D01FA63D60E8D01920870A900160863D20570BB00160843020070EA7
S1230CC0206D0EB00160A532F006A9008534F00CA533F008A5348535A9008534A531C92BAA
S1230CE0D03AA5261865358526A52565348525A9002AA8201A0ED00F98D0034CEA0DA908B0
S1230D00051F851F4CEA0D98F009A9FE251F851F4CEA0DA901051F851F4CEA0DC92DD041A5
S1230D20A52638E5358526A525E5348525A9002AA8201A0ED01598F009A9FE251F851F4C46
S1230D40EA0DA901051F851F4CEA0D843FA901251F453FD0034CEA0DA908051F851F4CEAE9
S1230D600DC92AD04EA9008571857020280E20400E8A48A21046346635900D18A57165260A
S1230D808571A5706525857006262625CAD0E668AAA5718526A5708525201A0ED009A9FE74
S1230DA0251F851F4CEA0DA901051F851F202E0E4CEA0DC92FF005A63C863D60A900857162
S1230DC0857020280E20400EA5350534D005A63C863D6038A526E5358526A525E534852514
S1230DE090AFE671D0EDE670D0E9E428F002100D20580EB008BCCB2D863C4CBF0BA9FF857B
S1230E003660A90085366020870AB00520570BB0F68A38E53D852FA63D60A901251F0A858E
S1230E203FA902251F453F60A901251FF01118A52649FF69018526A52549FF6900852560E8
S1230E40A902251FF0F918A53549FF69018535A53449FF6900853460BDCB2DC920F00DC951
S1230E602CF009C929F005C93BF0011860A90085348535BDCB2D206C0B9004290F10082089
S1230E805D0B900738E937C5309002186085158A48A430C002D004A201D01EC008D004A253
S1230EA003D016C010D004A204D00EC00AD0DCA534853FA5358540A203063526349006A5F6
S1230EC01F0908851FCAD0F1C00AD0210640263F9006A51F0908851FA5351865408535A544
S1230EE034653F85349006A51F0908851FA5151865358535A534690085349006A51F0908C2
S1230F00851F68AAE8C62FF0034C730E3860A50B850FA50C8510A901852EA900852DB8A543
S1230F202DC518900AD02CA52EC519F002B024AC030888B10F1005297F2CCB1FD96F2ED07E
S1230F40148810EFAC0308B10F8534C8B10F85357001601860A50F186D0308850F9002E6E7
S1230F601018A50F6902850F9002E610E62ED0AEE62D4C1E0FA9FF85348535AD6F2E0980FE
S1230F808D6F2EA510C50E9008D027A50FC50DB021AC030888B96F2E910F8810F8AC030839
S1230FA0A534910FA535C8910F7006E619D002E618603860A9008528857B857C202710A6E1
S1230FC07B9D1D2EC927F004C922D00848A57C49FF857C68247C300AC9419006C95BB00299
S1230FE0295FA6289DCB2DC909D016E67BA9209DCB2DE628A628E051B0198A2907D0EEF04D
S1231000BBC91AF020C90AF01CE67BE628A528C95290A9A90D8D1B2E8D6D2EA90A8D1C2E71
S12310208D6E2E38601860A505C97FA506E9259037207A10A9088574A505A406204C0820C5
S12310409008206408F00FC901F0034C8608A000A91A9105D00F18A505698085059002E64D
S123106006C674D0D3207A10A000B105297FC91AD00160E605D002E60660A97FA021850551
S1231080840660A9238511A91F8512A200A002B96F2ED111D00E8810F6BDAC208538BDE4D2
S12310A020853760A51118690385119002E612E8E03930D91860854784438644A51C85452C
S12310C0A51D85469818651C851C9002E61DA547D00CA904251EF0034CB2114C4012853EFD
S12310E0F818A51B6901851BA51A6900851AD8A52BD005A9008D7F2DA914251EF00620B224
S1231100114C0F134C4012A50B850FA50C8510A901852EA900852DB8A52DC518F003900979
S123112060A52EC519F002B0F7205113A000B10F1005297F2CCB1F209C09C8CC0308D0EE28
S1231140204E135007A004207A11F00BB10F20B009C8B10F20B00920D40918A50F6D03082E
S1231160850F9002E61018A50F6902850F9002E610E62ED0A2E62D4C1711A92A205313880E
S1231180D0F860A2008AA820B6102404101F206313A940251EF00C20631320020A2007115A
S12311A020D409A9F5A01A20500820DE09A2FB9A3860A97F856CA92D856DA545851CA54631
S12311C0851DA54348A9008515205113A51D204113A51C20411320511368D00E48A52CD054
S12311E0422058132058134C2012AAC9049008A20338E9034CF911A90048CA3018A000B193
S12312006C204113205113E61CD002E61DE66CD0E9E66DD0E5A52CD00AA628300620581342
S123122020FC1220D409E62C68F015AAA980251ED0048A4CC411188A651C851C9002E61D12
S123124024041010A543F00C8573A51E2920F004247F100160A54DD00CA545854F856BA531
S123126046854E856AA545C56BF00620A9124C5912A546C56AD0F4A000A64DB97F2D955005
S1231280E66BD002E66AC8E8864DC673D005E018F01760E018D0E4984820A91268A8A56B60
S12312A0854FA56A854E4C7912A90085698568A54DD00160A93B208009A54D20F0122074C1
S12312C009A54D186902854DA9018572A672B54D20F012207409E672C64DD0F0A568207474
S12312E009A569207409A90D208009A90A4C80094818656985699002E6686860A2FFC67BA9
S1231300E8E47BB009BD1D2E209C094C0013602404300160A985A01B207308205813A6448B
S1231320CA30062051134C2013A95E209C0920D409A53E0AAABDB61BBCB71B2073084CD46F
S123134009E615E6154CB009205113205113205113A920E6154C9C09A9094C9C0920D409A4
S123136020D40920D4094CD409A900A20D951FCA10FBA24B9D7F2DCA10FA20B40FCACA865E
S123138028C91AD015A90D8D1D2EA90A8D1E2EA2FF8528A201867B4C8311F8A517690185CA
S12313A017A51669008516D820C70AB008A000A2008A4C2E19206C0B900B20870A8627865D
S12313C020B0EA90F020C70A90E3BDCB2DC93BF0DC20E50AB009A903A003A6214C2E19A6CF
S12313E021BDCB2DC92ED0034C4715C92AD0034C9E14A423CC03089009F007A909A0034C0E
S12314002E19842F207B0BB004A90AD0F0A523C903D00820831090034CED16A529D0B7E6C5
S123142029A620205D0BB004A908D0D1AD702EC920D01CAD6F2EC941F010C958F00CC95978
S1231440F008C953F004C950D005A9144CFD138624A200BD6F2E48E8EC0308D0F6A52348D6
S1231460A622E8862020C70A9007BDCB2DC93DF047200E0F9011A534C51DD006A535C51C6E
S1231480F010A0034C3215A51D8534A51C853520830FA621E424F0034CCA134CAD13E62A63
S12314A0E620862420C70AB0034C2117BDCB2DC93DF005A9164CFD13E62A20870A8620908E
S12314C0034C211720C70AB005A0004C1317209E0BA536300CD005A90B4C8017A90D4C80F7
S12314E017A52AC901F02AA901251FF012A621A915A00020B610A200861C861D4C3119A204
S1231500008AA820B610A525851DA526851C4C3119688523AE0308CA689D6F2ECA10F92019
S12315200E0F9015A534C525D006A535C526F014A000A902A6244C2E19A5258534A5268508
S12315403520830F4CAD13A621E8A9F68513A91E8514A903852F207B0BCA20870AB007BD59
S1231560CB2DC920D0F48620B007A000A90E4CDA13A20EA002B96F2ED113D0158810F68A4C
S12315800AAABDD81E8513BDD91E8514A51E6C1300A51318690385139002E614CA10D4307B
S12315A0C9A51E2904F00CAD02018DAF15AD3EFF209C094CAD13A001D002A002842B20C70B
S12315C00AB0034C1317209E0BA536F05B105D8620A62BA000A526997F2DE002D006A525CF
S12315E0C8997F2DA51F2909D008E001D00DA525F009A42BA904A6214CFF15A42BA9002050
S1231600B610A620E428F002B00EBDCB2DC92CF00AC920F0034CFE174C311920870A8620B0
S123162020C70AB0A14C2117A906D019BDCB2D8580C927F004C922D00AE421D006A42BC07B
S123164001F00EA90D48201F0B68A42BA63D4CFF158620A000A62020870A862090034C2360
S123166017BDCB2DC580D010A62020870A8620B08CBDCB2DC580D085C9209004C97F900276
S1231680A900997F2DC84C551620C70AB0034CAD13A621A903852F207B0BB0034C6A15A935
S12316A0058513A91F8514A2094C73150920D02629DF4CD616297F4CD6160980D0180940B0
S12316C0D01429BF4CD6160910D00B29EF4CD6160904D00229FB851E201F0BB0034CAD130F
S12316E0BDCB2DC92CD0F6E886204C8916A900853A8539853BA8A5378D7F2DA538C914D0D0
S123170005A0014CAF13A5228520E62020C70AB009A003A907A6224C2E19BDCB2DC93BD0BE
S123172007A003A9074CDA13C941D020E428F007BCCC2DC020D015A438B9D91F3009186558
S1231740378D7F2D4C0117A9054CD813C923D005A90A4C5B17C928D00EA905853AE6212037
S1231760870A90034C2117209E0BA536305CA53AC90AF011A536F04CA538C90EF03DA90D2C
S1231780A63D4CFD13BDCB2DC927D02F20870A9005A0024C2317BDCB2DC9209004C97F90EA
S12317A002A9008526A9008525A9F6251F851F20870AB016BDCB2DC920F00FA90DA63DA0A8
S12317C0024C2E19E63BA9028539201F0B9057BDCB2DC929D01BE63AE63AA537C94CF04CB6
S12317E020870A90034C2117BDCB2DC92CF014D00DBDCB2DC92CD013A537C94CD005A91284
S12318004CD81320870A90034C2117BDCB2DC958D005E63A4C4B18C959F005A90C4CFD1323
S1231820E63AE63AD025A537C94CD01FA53AD007A00284394CE418C907D0C3A92020870A55
S1231840B0EEBCCB2DC020F0E7D0B3A53BD04EA9028539A538C90ED018A51C853FA51D8529
S123186040209C0AB007A911A0024CDA13A9008525A53AC906900EC90AB00A208E0AB00579
S1231880A9134CBD17A525D014A9018539A53A186902853AC90D9010A90F4CD813A53A18D5
S12318A0690D853AC910B00EA888B9CB1F186538A8B9DA1F102EA53BF015A539C902F003B7
S12318C04CFE17C639A53A38E90B853A4C9418A539C901F0034CFE17E639A53A18690B85D7
S12318E03A4CA418186537A000997F2DA53BD030C8A526997F2DC8A539C901F005A5259989
S12319007F2DA909251FF008A439C8A9044CDA13A539C901D004A525D0EEA439C84CAF13E7
S1231920AD7F2DA003291FC910D00188A90120B610A2FB9A1860A97FA02585058406206964
S12319401390FB60A903A01B205008A202A9009500E8E081D0F9AD0308C906B005A9068D3A
S12319600308A208BD0701C93FF00E9D1C219D3D219D5E21CA10ED30034C8608AD1001C997
S123198020F03B2029088D1C21AD1101C920F02EC95AD00538667F30062029088D3D21ADE3
S12319A01201C920F018C958D00538667D300FC95AD00538667E30062029088D5E21209078
S12319C008205408F0B3209F08247F3010209508206008F0A4209508205408F09C209A08D2
S12319E0205C08A57D057E3010209A08206008F088209A08205408F080A9F4851EA96FA012
S1231A002E186D0308850B9001C8840CAD0401AC050138ED0308850DB00188840E38A50DB0
S1231A20E902850DB002C60EA2FF9AA9D1A01A205008203619A93FA01B205008A9008516EA
S1231A408517851C851D851A851B854D8D28218D29218D3C21A9F4851EA9FF8504209008D2
S1231A6020540820020A20DE09A9E3A01A20500820F108206009203619A971A01B20500897
S1231A80A51A20C209A51B20C20920DE09247F301D20A91238A507E97F297FF008A91A204C
S1231AA080094C941A20B208209508205808A57D057E301A38A509E97F297FF008A91A20C8
S1231AC09C094CB41A202109209A082058084C3B085354415254204F46205041535320313D
S1231AE00D0A245354415254204F46205041535320320D0A24454E44204F4620504153539D
S1231B00203224444F532F363520415353454D424C45520D0A56455253494F4E20322E311F
S1231B20312D410D0A24494C4C4547414C2044524956452044455349474E41544F522445BA
S1231B404E44204F46205041535320310D0A534F5254494E472053594D424F4C2054414268
S1231B604C45202D20504C454153452057414954244E554D424552204F46204552524F5208
S1231B8053203D20242A2A4552524F522A2A240D0A444F532F36352046494C452045525217
S1231BA04F52202D20415353454D424C592041424F52544544240000EA1BFB1B141C2E1CD9
S1231BC0401C5D1C7F1C931CC21CD11CFB1C1E1D3D1D501D6E1D911DB31DD01DFA1D1F1EB4
S1231BE0421E681E901EA51EC21E554E444546494E45442053594D424F4C244C4142454C9E
S1231C002050524556494F55534C5920444546494E454424494C4C4547414C204F52204D23
S1231C20495353494E47204F50434F44452441444452455353204E4F542056414C4944240A
S1231C40414343554D554C41544F52204D4F4445204E4F5420414C4C4F57454424464F52B7
S1231C6057415244205245464552454E434520494E202E425954204F52202E574F52245212
S1231C80414E204F464620454E44204F46204C494E45244C4142454C20444F4553204E4F36
S1231CA05420424547494E205749544820414C5048414245544943204348415241435445A3
S1231CC052244C4142454C20544F4F204C4F4E47244C4142454C204F52204F50434F4445A9
S1231CE020434F4E5441494E53204E4F4E2D414C5048414E554D4552494324464F5257410D
S1231D005244205245464552454E434520494E20455155415445204F52204F524724494E5A
S1231D2056414C494420494E444558202D204D5553542042452058204F52205924494E5677
S1231D40414C49442045585052455353494F4E24554E444546494E454420415353454D42A4
S1231D604C45522044495245435449564524494E56414C4944204F504552414E4420464FB4
S1231D80522050414745205A45524F204D4F444524494E56414C4944204F504552414E44B7
S1231DA020464F52204142534F4C555445204D4F44452452454C4154495645204252414E91
S1231DC04348204F5554204F462052414E474524494C4C4547414C204F504552414E4420B3
S1231DE05459504520464F52205448495320494E535452554354494F4E244F5554204F46EB
S1231E0020424F554E4453204F4E20494E4449524543542041444452455353494E4724413B
S1231E202C582C592C532C20414E44205020415245205245534552564544204C4142454C8F
S1231E40532450524F4752414D20434F554E544552204E45474154495645202D20524553E5
S1231E60455420544F203024494E56414C494420434841524143544552202D20455850453B
S1231E804354494E47203D20464F52204F524724534F55524345204C494E4520544F4F20EE
S1231EA04C4F4E4724444956494445204259205A45524F20494E2045585052455353494F61
S1231EC04E2453594D424F4C205441424C45204F564552464C4F5724D416D016CB16C716E8
S1231EE0B016AC16C216BE16BA16B51689168311A115BA15B615425954574F525041474588
S1231F004E444F505447454E4E4F4753594D4E4F534B494D4E4F4B4552524E4F454C495315
S1231F204E4F4C414443414E4441534C424343424353424551424954424D49424E454250A3
S1231F404C42524B425643425653434C43434C44434C49434C56434D50435058435059442F
S1231F604543444558444559454F52494E43494E58494E594A4D504A53524C44414C4458E4
S1231F804C44594C53524E4F504F5241504841504850504C41504C50524F4C524F52525484
S1231FA0495254535342435345435345445345495354415354585354595441585441595455
S1231FC05358545841545853545941FF0D1B29374553616F7D8B99A7B5C3FFFFFFFF04FFCA
S1231FE0FFFFFFFFFFFFFFFF0404FFFF0004000400000400FF001414FFFF10FFFF14FF107D
S1232000FF10FFFFFFFFFFFFFFFFFFFF10FF14FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
S1232020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000020FF99
S1232040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C
S1232060FFFFFFFFFFFF1010FFFFFFFFFFFFFFFFFFFFFFFF08FFFFFFFF00FF00FFFF00FF4E
S1232080FFFF0C0C0000080C080C08080C08FFFF1C1CFFFF18FFFF1CFFFFFF18FFFF181831
S12320A0FFFFFFFFFFFFFFFF1CFFFFFF0101050E0E0E070E0E0E140E0E141414140106061C
S12320C00C1414010C14140304010B0805140114141414050514140114141402090A141462
S12320E01414141461210690B0F02430D01000507018D858B8C1E0C0C6CA8841E6E8C84C44
S123210020A1A2A046EA014808682826664060E138F878818684AAA8BA8A9A98000000009F
S1232120000000000041534D000000000000000000000000000000000000000000000000BA
S12321400000000000004B494D00000000000000000000000000000000000000000000009A
S12321600000000000000050524E000000000000000000000000000000000000000000006B
S123218000000000000000000000000000000000000000000000000000000000000000003B
S12321A000000000000000000000000000000000000000000000000000000000000000001B
S12321C00000000000000000000000000000000000000000000000000000000000000000FB
S12321E00000000000000000000000000000000000000000000000000000000000000000DB
S12322000000000000000000000000000000000000000000000000000000000000000000BA
S123222000000000000000000000000000000000000000000000000000000000000000009A
S123224000000000000000000000000000000000000000000000000000000000000000007A
S123226000000000000000000000000000000000000000000000000000000000000000005A
S123228000000000000000000000000000000000000000000000000000000000000000003A
S12322A000000000000000000000000000000000000000000000000000000000000000001A
S12322C00000000000000000000000000000000000000000000000000000000000000000FA
S12322E00000000000000000000000000000000000000000000000000000000000000000DA
S12323000000000000000000000000000000000000000000000000000000000000000000B9
S1232320000000000000000000000000000000000000000000000000000000000000000099
S1232340000000000000000000000000000000000000000000000000000000000000000079
S1232360000000000000000000000000000000000000000000000000000000000000000059
S1232380000000000000000000000000000000000000000000000000000000000000000039
S12323A0000000000000000000000000000000000000000000000000000000000000000019
S12323C00000000000000000000000000000000000000000000000000000000000000000F9
S12323E00000000000000000000000000000000000000000000000000000000000000000D9
S12324000000000000000000000000000000000000000000000000000000000000000000B8
S1232420000000000000000000000000000000000000000000000000000000000000000098
S1232440000000000000000000000000000000000000000000000000000000000000000078
S1232460000000000000000000000000000000000000000000000000000000000000000058
S1232480000000000000000000000000000000000000000000000000000000000000000038
S12324A0000000000000000000000000000000000000000000000000000000000000000018
S12324C00000000000000000000000000000000000000000000000000000000000000000F8
S12324E00000000000000000000000000000000000000000000000000000000000000000D8
S12325000000000000000000000000000000000000000000000000000000000000000000B7
S1232520000000000000000000000000000000000000000000000000000000000000000097
S1232540000000000000000000000000000000000000000000000000000000000000000077
S1232560000000000000000000000000000000000000000000000000000000000000000057
S1232580000000000000000000000000000000000000000000000000000000000000000037
S12325A0000000000000000000000000000000000000000000000000000000000000000017
S12325C00000000000000000000000000000000000000000000000000000000000000000F7
S12325E00000000000000000000000000000000000000000000000000000000000000000D7
S12326000000000000000000000000000000000000000000000000000000000000000000B6
S1232620000000000000000000000000000000000000000000000000000000000000000096
S1232640000000000000000000000000000000000000000000000000000000000000000076
S1232660000000000000000000000000000000000000000000000000000000000000000056
S1232680000000000000000000000000000000000000000000000000000000000000000036
S12326A0000000000000000000000000000000000000000000000000000000000000000016
S12326C00000000000000000000000000000000000000000000000000000000000000000F6
S12326E00000000000000000000000000000000000000000000000000000000000000000D6
S12327000000000000000000000000000000000000000000000000000000000000000000B5
S1232720000000000000000000000000000000000000000000000000000000000000000095
S1232740000000000000000000000000000000000000000000000000000000000000000075
S1232760000000000000000000000000000000000000000000000000000000000000000055
S1232780000000000000000000000000000000000000000000000000000000000000000035
S12327A0000000000000000000000000000000000000000000000000000000000000000015
S12327C00000000000000000000000000000000000000000000000000000000000000000F5
S12327E00000000000000000000000000000000000000000000000000000000000000000D5
S12328000000000000000000000000000000000000000000000000000000000000000000B4
S1232820000000000000000000000000000000000000000000000000000000000000000094
S1232840000000000000000000000000000000000000000000000000000000000000000074
S1232860000000000000000000000000000000000000000000000000000000000000000054
S1232880000000000000000000000000000000000000000000000000000000000000000034
S12328A0000000000000000000000000000000000000000000000000000000000000000014
S12328C00000000000000000000000000000000000000000000000000000000000000000F4
S12328E00000000000000000000000000000000000000000000000000000000000000000D4
S12329000000000000000000000000000000000000000000000000000000000000000000B3
S1232920000000000000000000000000000000000000000000000000000000000000000093
S1232940000000000000000000000000000000000000000000000000000000000000000073
S1232960000000000000000000000000000000000000000000000000000000000000000053
S1232980000000000000000000000000000000000000000000000000000000000000000033
S12329A0000000000000000000000000000000000000000000000000000000000000000013
S12329C00000000000000000000000000000000000000000000000000000000000000000F3
S12329E00000000000000000000000000000000000000000000000000000000000000000D3
S1232A000000000000000000000000000000000000000000000000000000000000000000B2
S1232A20000000000000000000000000000000000000000000000000000000000000000092
S1232A40000000000000000000000000000000000000000000000000000000000000000072
S1232A60000000000000000000000000000000000000000000000000000000000000000052
S1232A80000000000000000000000000000000000000000000000000000000000000000032
S1232AA0000000000000000000000000000000000000000000000000000000000000000012
S1232AC00000000000000000000000000000000000000000000000000000000000000000F2
S1232AE00000000000000000000000000000000000000000000000000000000000000000D2
S1232B000000000000000000000000000000000000000000000000000000000000000000B1
S1232B20000000000000000000000000000000000000000000000000000000000000000091
S1232B40000000000000000000000000000000000000000000000000000000000000000071
S1232B60000000000000000000000000000000000000000000000000000000000000000051
S1232B80000000000000000000000000000000000000000000000000000000000000000031
S1232BA0000000000000000000000000000000000000000000000000000000000000000011
S1232BC00000000000000000000000000000000000000000000000000000000000000000F1
S1232BE00000000000000000000000000000000000000000000000000000000000000000D1
S1232C000000000000000000000000000000000000000000000000000000000000000000B0
S1232C20000000000000000000000000000000000000000000000000000000000000000090
S1232C40000000000000000000000000000000000000000000000000000000000000000070
S1232C60000000000000000000000000000000000000000000000000000000000000000050
S1232C80000000000000000000000000000000000000000000000000000000000000000030
S1232CA0000000000000000000000000000000000000000000000000000000000000000010
S1232CC00000000000000000000000000000000000000000000000000000000000000000F0
S1232CE00000000000000000000000000000000000000000000000000000000000000000D0
S1232D000000000000000000000000000000000000000000000000000000000000000000AF
S1232D2000000000000000000000000000000000000000000000000000000000000000008F
S1232D4000000000000000000000000000000000000000000000000000000000000000006F
S1232D6000000000000000000000000000000000000000000000000000000000000000004F
S1232D8000000000000000000000000000000000000000000000000000000000000000002F
S1232DA000000000000000000000000000000000000000000000000000000000000000000F
S1232DC00000000000000000000000000000000000000000000000000000000000000000EF
S1232DE00000000000000000000000000000000000000000000000000000000000000000CF
S1232E000000000000000000000000000000000000000000000000000000000000000000AE
S1232E2000000000000000000000000000000000000000000000000000000000000000008E
S1232E4000000000000000000000000000000000000000000000000000000000000000006E
S1122E600000000000000000000000000000005F
S9

Binary file not shown.

View File

@@ -0,0 +1,335 @@
S12308004CBA1C434F50595249474854202D205249434841524420412E204C454152592043
S12308202D2032303038A907A0014C0301A90AA02E4C0301A90D204F08A90A4C4F08A920DF
S12308402C042E3005A2024C0301A2054C0301C909D00C203E08E66FA56F2907D0F56048FC
S1230860204008E66F68C90AF00160A900856F6085938494A9008595A22F38A593E910857C
S123088093A594E9278594E8B0F1A59369108593A5946927859420E608A593E9E88593A557
S12308A094E9038594E8B0F1A59369E88593A5946903859420E608A593E9648593A594E9E6
S12308C0008594E8B0F1A5936964859320E608A593E90A8593E8B0F7690A859320E608A933
S12308E03005934C4F08A92024953008E030F005A9FF85958A204F08A22F38608D03098C79
S12309000409ADFFFFC924D00160204F08EE0309D0F0EE04094C0209A9A3A02D20FC084CF1
S12309200001A203BDB92D9D0F01CAD0F78E13018E14018E2701A96AA030A21A200301A2CC
S12309400F202608300160A9BDA02D4C1C09A210202D083001604C18092C032E100160A28C
S123096008BD07019D0A2ECA10F7E88E162E8E172E8E2A2EA213202D08A216202D08100363
S12309804C180960A9008D092E8D082E85478D072E8548602C032E100160A9EAA030A21AAE
S12309A0200301A215202D08F0034C1809A96AA030A21A4C0301A67210094820940968A274
S12309C0008672E6729DEA3060A214202608C90290034C180960A251A9209D6A31CAE0FFE0
S12309E0D0F860A570A471207008A574204F08A920204F08A9008542A642BD6A31204F0812
S1230A00E642A542C57390F0F0EE20340820D609A93A85746020700AD006A54DC91AD0136E
S1230A20A204BDD32D9D6A30CA10F7E88675206A0A854DA676E052B008E88676A54D9D6A1B
S1230A4031A54DC90DD019E670D002E671A676CA8673AD002EF00320E309A9008576A54DE2
S1230A60C909F00160A920854D60A675BD6A3060E675100EA900857520C909C901D003A92E
S1230A80FF60206A0A854DC90AF0E5A9006020150AC920F0F9C91AF0F560A54DC95CF0019B
S1230AA06020150AC90DD0F94C8E0A8578A5768577E677E677A549C917F00FA54DC90DF0BD
S1230AC009209A0A20150A4CBD0A2CFE2D10432C002E300320E309E643D002E644A93F2083
S1230AE04F08A92D204F08A92D204F08C677F00A3008A92D204F084CEC0AA95E204F082065
S1230B003408A5780AAABD5A2DBC5B2D20FC08203408A9008D062E4C84092CFD2D100BA266
S1230B2008BD17019D2A2ECAD0F7202209A900856E856F85708571857620D609A98085756B
S1230B40A93A8574AD2B2EC924D044A201BD2B2EE8C920F03AA0FFC941D0058CFF2DF0EDE7
S1230B60C943D0058C032EF0E4C945D0058C012EF0DBC946D0058C042EF0D2A000C942D0B7
S1230B80058C002EF0C7C944D0C38C022EF0BEA9008D052E4C8E0A246E100160E64EA64E59
S1230BA0A54D954E18654C293F854CE01FB00160A9FF856E6020970B4C8E0A20970B4C1586
S1230BC00AA54DC9309007C93AB003A9FF60A90060A54DC9619007C97BB003A9FF60A90063
S1230BE060A54DC92ED003A9FF60A9006020D10B2D022ED00160A54D295F854D6020ED0B76
S1230C0020D10BF00160A54DC9419007C95BB003A9FF60A9006020FD0BF0016020C10BF0B3
S1230C2001604CE10B20C10BD0016020BB0B4C250CA54DC920D003208E0AA900856E60A68F
S1230C407BBDF72E8580BD172F8583BDB72E858C8A0AAABD772FBC782F85868487BD372F33
S1230C60BC382F858F8490A67CBDF72E8582BD172F8585BDB72E858E8A0AAABD772FBC7883
S1230C802F858A848BBD372FBC382F85918492A67DBDF72E8581BD172F8584BDB72E858DC6
S1230CA08A0AAABD772FBC782F858884896048A57B0AAA689D772F989D782F6048A57C4CFA
S1230CC0B10CA67B9DF72E60A67B9D172F60A67C9D172F60A67C9DF72E60A67C9DB72E60FF
S1230CE0A67B9DB72E6048A57B0AAA689D372F989D382F60E6B2D002E6B32CFD2D30034C92
S1230D00B60960E645D002E6462CFE2D10034CB60960A90085A1A4A1B1A2E6A1A4A1D94E58
S1230D2000D009A54EC5A1B0EDA9FF60A54EC5A190F7A90060A909C54E905AA64EBDEE2978
S1230D401869AD85A2A900692885A3A90085A4E6A4A64EBDF829C5A4903B20120DD00E1841
S1230D60A5A2654E85A290E7E6A34C4F0DA64EBD022A1865A4AABD9E298549C9419013C936
S1230D8063F00F854B38E941AABD0C2A854AA9358549A9FF60A90060A900854E854C854977
S1230DA0854A246E30132C052E1008208E0AA9008D052EA54DC922D02EA9328549A9008541
S1230DC06E20150AC922F011C90DD005A9164CAB0A20970B246E10E960208E0AC922F001CA
S1230DE06020970B4CC10D20C10BD00520E10BF051A9318549A54DC930D00620150A4CF7BA
S1230E000D20250C20E10BF00620BB0B20250C20ED0BA54DC945D01B20B50BC92BF004C9A3
S1230E202DD00320B50B20C10BD005A90920AB0A20250CA54ED008E64EA930854F854C4C6C
S1230E40310C20FD0BD0034CDE0E20160CF00620BB0B4C4A0EA54DC924D00AA932854A20D9
S1230E60BB0B4C690EA931854A20350DD020A54FC946D013A550C94ED00DA54EC901F00767
S1230E80A93685494C310CA93485494C310CA549C900D012A54DC90DD0034C980D20150A80
S1230EA0209A0A4C940EC963F0034C310CA93320030DA54D20030D20150AC90DF00B209ADC
S1230EC00AA54D20030D4CB70EA92C20030DA90020030DA545D002C646C6454C980DA54D3D
S1230EE0C95CD006209A0A4C980D20970BA54DC90DD007A9FF8D052E3003208E0A20350D28
S1230F00F00160A9074CAB0AA000B1A71865A785A79002E6A818A5A7690785A79002E6A843
S1230F2060A000B1A7602CFD2D3001604CB609489820F40C684CF40C48980980A8684C2F5B
S1230F400F489809C0A8684C2F0F2C012E300160A570A47120380FA95F4CF40C2CFD2D1004
S1230F6014A27FA9009D372ECAE0FFD0F8A9BEA03185AA84ABAD0401AC050138E90285A5D5
S1230F8085B9B0018884A684BAA900A00191B960A000B1A785BC84BBA5A7A4A81869028562
S1230FA0AC9001C884ADA001C4BCF0059003A5BB60B1AC1865BB293F85BBC84CA80FA5B72A
S1230FC00AAABD372EBC382E60A6A7A4A8E886ACD001C884AD60A0001871A79001C8186532
S1230FE0A785AC9865A885AD601865AAA4AB9001C8C5A598E5A6B00160A9FF8DFE2DA91355
S123100020AB0A4C0001489848A90420D60FA0016891AC886891ACA5ACD002C6ADC6ACB1A4
S1231020AC098091AC60A90320D60FA000B1AC297F6048A90320D60FA0006811AC91AC60C9
S1231040A90320D60FA000B1AC3003A90060A9FF60A90420D60FA000B1AC48C8B1ACA8686E
S12310606020BE0F85A784A8A5A705A8F02BA000B1A785BDD1B5D011A4BDB1B5C8C8D1A743
S1231080D007C6BDD0F2A9FF6020C90FA000B1AC48C8B1ACA8684C6410A90060A000B1B5E7
S12310A01869074820E90FA5AAA4AB85A784A8A000B1B591A7AAF00BC8B1B5C8C891AA88EA
S12310C0CAD0F6A90320D60FA0009891AC20C90F20BE0F4898A00191AC886891ACA5B70A20
S12310E0AAA5A79D372EA5A89D382E681865AA85AA9002E6AB6048A90620D60FA0006891CE
S1231100AC60A90620D60FA000B1AC6020261085BEA90185BFA5BEC5BFB0016020080F20D8
S1231120900F0A18693785C0A02E9001C884C1A000A5A7D1C0D007C8A5A8D1C0F016A000F9
S1231140B1C048C8B1C085C16885C0E6C0D0E0E6C14C2F1120C90FA000B1AC91C0C8B1ACB2
S123116091C0E6BF4C151120261085BEA90185BFA5BEC5BFB0016020080FA5A7A4A885C070
S1231180E6C0D001C884C120900F0AAAA000BD372E91C0C8BD382E91C020900F0AAAA5A746
S12311A09D372EA5A89D382EE6BF4C701101300131A90085B285B3854585468D5B308D367C
S12311C02E85B1A90185B0A9FF85AE85AF2084092CFD2D300160205909A9AFA01185B584DC
S12311E0B6A93185B7209C10A93120260FA92420260FA900A8200610A904203210A9ADA076
S12312001185B584B6A93085B7209C10A93020260FA92420260FA901A000200610A9044C9B
S12312203210AABDD72E1869F7A02F9001C8604820221285B584B668AABDB72E85B760207C
S12312402F124C6110203F12F00160209C10A90060E6AED002E6AFA5AEA4AF60A934A02E49
S123126085B584B6AD362E293F85B7602CFD2D30016048205C12209C10681865B2A4B390DA
S123128001C84C0610EE362E205C124C61102085122051104C2F0FA585C931D009A583C9D2
S12312A031D003A9FF6020D112A90060A583C585D003A9FF60A90D20AB0AA90060A58320E9
S12312C0CE0CA583C931D003A9FF6020D112A90060A90C4CAB0AA584C932D00320D112A9CE
S12312E05B4CF40C20D612E682A5824CD40CA58020F610A92020F40CA58020F40CA9144CFE
S1231300F40CA584C931D005A9144CF40CA91B4CF40CA9FF8547A93B4CF40CA683E032D009
S12313200820F40CA91B4CF40C9820F40CA9144CF40CA580C900D007A586A48720380F240A
S1231340471007A931A0224C1B132C082E1007A92AA0294C1B13A93CA03D4C1B13A95B2026
S1231360F40CEE5B30AE5B30BD5B30A00020380FA95C20F40CA9394CF40CA580AE5B309D1A
S12313805B3060C6A9A5A9C9FFD007E6A9A9104CAB0AA93620F40CA004B1B948C8B1B9A88A
S12313A068202F0FA000A5B291B9C8A5B3098091B9A001B1B930016018A5B9690885B990DE
S12313C0F0E6BA4CB113A57D203F12F012A006B1B9C5A7D00AC8B1B9C5A8D0034C8313A981
S12313E00E4CAB0A24B41005A91420AB0AA90085B460A57B204512D001602CFE2D30016069
S1231400204010F00160A9FF85B46020F213A91E24483002A93620F40C2051104C2F0F2012
S12314204512F00F202610C900F013A90B20AB0A4C3E14205112200610A9002032102051D4
S1231440108586848720AE0CA90020C20C2C072E300160A9008D072EA006A5A791A5C8A5FF
S1231460A891A56085C284C3A93220C80CA91C20F40CA90185C4A000B1C2C5C4900CA4C455
S1231480B1C220F40CE6C44C7614246E100620980D4C7214A9004CF40CA92E20F40CA9045D
S12314A020C20CA93120C80CA57B203F12F00D202610C904D0062051104C2F0FA90185C5E6
S12314C0A54EC5C5900CA6C5B54E20260FE6C54CC014A92420260FE6B0D002E6B1A5B0A447
S12314E0B14C2F0F2C082E1010A583C931D005A92B4CF40CA92C4CF40CA583C931F005A933
S1231500244CF40CA580C94AD00160A9234CF40CA582C90AF00160A58AA48B85A784A820B5
S1231520080FA5A7A4A820BC0CC68EA58E20DA0C2051104C380FA582C90AD017A58AA48B30
S123154085A784A8200211C584F005A90520AB0A4C0213A901A484C031D002A900458E29A0
S123156001F005A90520AB0AA58E4A20DA0CC685A5854CCE0CA582C90AD01CA58EF005A919
S12315800420AB0AA91E20F40CA58FA49085A784A82051104C2F0FA5852903F005A90420A4
S12315A0AB0AA58220F40CA5852940F005A9324CCE0CA9314CCE0C2CFD2D300160A57D2079
S12315C02F12209C10205112200610A58420F610A900203210A682E88A4CD40C85B8ADFE39
S12315E02D2DFF2DF011A98CA02D20FC08A5B8A000207008203408203F0CA5B80AAAB00F0E
S1231600BD1E168D0D16BD1F168D0E164CFFFFBD1E178D0D16BD1F178D0E164C0C1650171D
S1231620501751178617E413E41350175017501750175017501750175017501750175017DF
S123164050175017501750175017501750175017501750175017501750178D179617501793
S1231660A417AF17B4175017B9175017C4175017CF175017ED170018BD120B18501716184A
S1231680211850172C1837185017501749184E1853188418E412A31875151015B118B7187F
S12316A0DC189914EA18F118F618F618FB18FB18001905190A190A190F199919B719DE191A
S12316C0E319041A041A091A50170B141C1A291A3C1A611AB715931A931AB715501750171B
S12316E05017981AD612B41A5017EE12EE12BA1AC61AE4125017F91AF91A0C1B50171C1BB4
S1231700261B121332133213161B50172C1BE414E4145017E414E4145017371B3C1B4B1B39
S12317205017641B0B147A136F1B5D13771B8D1B951B9F1B5017501750175017C61383136A
S12317405017C613AB1BCC1BD11BD61B3E1C431C60A57B203F12F027204010F01320511006
S1231760C5B2D004C4B3F005A90020AB0A4C4A0FA5B2A4B3200610A9082032104C4A0FA946
S12317802A85744C4A0FA93A85744C4A0F20AC12F0034C021360A582C900F00160A58AA456
S12317A08B4C380F209712D00160A5814CF40CA90D4CC20CA95D4CC20C209712D00160A908
S12317C00C4CF40C20BD12D00160A90B4CF40C20AC12D00160A583C931D005A5814CF40C15
S12317E018A581691020F40CA9314CCE0C20AC12D00160A900A483C031F002A91D4CF40C3A
S1231800209712D00160A9014CF40C20BD12D00160A9304CF40C209712D00160A9024CF4AA
S12318200C209712D00160A9034CF40C209712D00160A9044CF40CA580C900F005A90E4CCD
S1231840F40CA586A4874C410FA5844CCE0CA57B4C1F142C072E1005A90320AB0A20E41297
S1231860A58AA48B85A784A8200211C582F005A91120AB0A20511020410FA92120F40CA92C
S1231880024CD40CA57C203F12F007202610C902F005A90A20AB0AA90020D40CA5A7A4A8AE
S12318A04CBC0C203615A591A492858F84904C75152036154C1015A57B203F12D005A9064A
S12318C04CAB0AA5A7A4A820E60CA5A7A4A820AE0CA90A20C20C2026104CE00CA54B20C2E6
S12318E00CA5834A4A29074CE00CA94EA0004C6414A9074CC20CA9094CD40CA90A4CD40CD2
S1231900A9064CC20CA9054CC20CA9084CD40CA006B1A585A7C8B1A585A8A5804A9005A935
S12319201220F40C20511020410FA90020F40CA5804A900B20511020380FA91320F40CA940
S12319400F20F40CA5804A902DA91320F40CA900A820380FA90520F40CA905A00020380F11
S1231960A93820F40CA90A20F40CA902A00020380FA93920F40CA90920F40CA93720F40C09
S1231980A000B1A548C8B1A5A868202F0FA002A5B291A5C8A5B391A560A93620F40CA002F3
S12319A0B1A548C8B1A5A868202F0FA004A5B291A5C8A5B391A560A9FF8D072E38A5A5E93D
S12319C00885A585B9A4A6B0018884A684BAA001B1B9297F91B9A90020E90FE6A960A90151
S12319E04CD40CA006B1A585A7C8B1A585A820511020380FA90020C20CA92E20F40CA90025
S1231A00A84C2F0FA9004C6C12A95B20F40CA95E20F40C20F2132051104C2F0FA903206C6A
S1231A2012A93620F40C4C8E12A584C932D005A90820AB0AA93720F40C4C8E1220AC12D08C
S1231A400160A58AA48B85A784A8A581203210200C11A91320F40CA91F20F40CA9004C6C81
S1231A6012A93620F40C208E12A57B20451248A58320CE0CA5A7A4A820BC0C2CFD2D300486
S1231A80684C671168F005A90220AB0AA5B2A4B34C0610A9004CD40CA57C201F14A585C9ED
S1231AA031D005A91720AB0AA586A48720410FA92D4CF40CA900A84C380F20E412A58AA4D2
S1231AC08B85A784A860A57C204512F00A2CFD2D1005A90120AB0AA9022032102CFD2D10D0
S1231AE00620511220061020511020380FA90020D40CA5A7A4A84CBC0CA583C932D00320D0
S1231B00D112A95B20F40CA9404CF40C2C082E100AA93E20F40CA9008D082E60A92720F452
S1231B200CA90085476020E4144C1213A93F20F40CA9008D082E60A9344CF40CA9FF8D08FD
S1231B402EA95B20F40CA9264CF40CA9FF8D082EA95B20F40CA91320F40CA95B20F40CA9DC
S1231B60254CF40C2C082E100160A9354CF40C207A13A9004C6C1220851220511020380F34
S1231B80A96020F40CA91320F40C4C5D13200B14A9014CC20C200B14A682E88A4CD40CA9CF
S1231BA0FF8548200B14A900854860A931C584D004C583F0034CD112A95B20F40CA91320DF
S1231BC0F40CA95B20F40CA9284CF40CA91F4CF40CA9104CF40C2CFD2D1033A9008DFD2DAE
S1231BE0A5A9F009A91820AB0AA90085A9A92A20F40C18A5B2A4B369039001C829FC202F3B
S1231C000FA545A446202F0F2051124C2F0FA54DC90DF00620150A4C0E1CA91020F40CA97D
S1231C207F20F40C209409204E09A543A444207008A992A02D20FC082034084C0001A92FB8
S1231C404CF40CA94D4CF40CA579A47A0AAA982AA8188A69AB8D6C1C9869248D6D1CA200F0
S1231C60206B1C48E8206B1CA86860BDFFFF60A579A47A1869578D801C9869278D811CAD1B
S1231C80FFFFA00060E67BA57BC920F00160A9124CAB0A247E100720980DA900857E60A69B
S1231CA07F9DF72FE8867FE065B00160A9154CAB0A205C0F20B1114C1A0BA202A90095001C
S1231CC0E8E0C6D0F9A9FF8DFD2D8D022EA93A8574A9808575A9D8A02D20FC0820340820A0
S1231CE0B11C2CFD2D30082CFE2D30034CEF1EA9FF857E8D062EA979A0008579847AA9FFD0
S1231D00857BA900857F8DD72E2C062E10D4A978C579A900E57AB0034CDB1D20851CA57BFD
S1231D200AAAA5799DB72FA57A9DB82F20481C8598849920931C206F1C186598859A98653E
S1231D4099859BA59AD002C69BC69AA59AC598A59BE59990B418A59869FF859FA599691EB0
S1231D6085A0A000B19FC549D057A57FA67B9DD72EA200869EB54E209F1CE69EA69EE44E90
S1231D8090F3F0F1A67BA54C9DB72EA54A9D172FA5980A859FA5992A85A018A59F69E38550
S1231DA09FA5A0692085A0A000B19F8579C8B19F857AA9FF857EA59AA49B859884994CD207
S1231DC01DA598C59AD00BA599C59BD005A90F20AB0AE698D002E6994C4B1DA9BDC579A99B
S1231DE000E57A90034C731E206F1C859838A57BE598857CA8C8847D38A579E9BD20DC15F4
S1231E002C062E30034CE21CA57C857B20481C85988499A67BBDD72E857F8A0AAABDB72F3A
S1231E20859ABDB82F859BA200869DA698BD6320859CF011C59AD004A59BF009E698D0E7B5
S1231E40E6994C271EA5980A859FA5992A85A018A59F69AB859FA5A0692385A0A000B19FFC
S1231E608579C8B19F857A0579D005A9008D062E4C091DA9AFC579A900E57A905520481C13
S1231E808598849920931CA200869D18A59869CC859FA599691F85A0A000B19F859CF00DC9
S1231EA0C549F009E698D0DFE6994C871EA5980A859FA5992A85A018A59F697D859FA5A0D7
S1231EC0692285A0A000B19F8579C8B19F857A4C091D20851C206F1C48A57B0AAA689DB793
S1231EE02F989DB82F20481C8579847A4C091DA9FF8D002E20B11CA9FF8DFE2D4CE21C00A7
S1231F00310A0D023132343536310D16200203071B1E31323435360203071E31323435368A
S1231F2036340C3402030731323435360C343131320203070C1E31323435360202020905C5
S1231F40093104083110141C1D1F23242526282A2B2C2D2E30313334310E06160D34093453
S1231F60091709152129101521242B091521050915210515210509152105091521060915D6
S1231F8021152127152129051521061521090609101114191A1B1C1D1F23242526282A2BE7
S1231FA02C2D2E3033340210141C1D1F23242526282A2B2C2D2E303334340D180B220902C3
S1231FC00103070A0D0F1213030709000031000A0D000D000B17220034000C340031320024
S1231FE006090B1722000200020009000408000408000408000408000408000B1722000EEF
S1232000000E000E0009000900090009000900152100152100152100152100152127001529
S1232020210015210015210017001521001521000900090006090034000B17000B172200D1
S123204002000B17003400180018000B0017000B00090002000103070A0D0F12130003075C
S123206000090000000000376900130000202F000003040C0E10111415161A1B2224262807
S123208062646667727400002E001C0021003F000506080900070A0017000D1320232F370C
S12320A06365696A00000000002700000000000000000000000000000000000000000B004F
S12320C0000000000000636A0000000000280000000000003E00004A004A00000000000035
S12320E00000000000BF00080104010300FF0000018100FE00FD004601020149014B0103AD
S123210000050008001F002100FF0000018100FE00FD000300050008002100FF0000018140
S123212000FE00FD0017012A0015008100030005000800FF0000018100FE00FD00140081A7
S1232140001101FF00000103000500080014002100FF0000018100FE00FD00F70026010486
S1232160004F0118011B01400107000A00470118001A000C01200022001D0148017D007E59
S123218000520126004A017F00800051015401130155018100450117002E011B00DC0082E1
S12321A000110083000D00BE000E00DF00E00015011800DF00E00048014A010C00DF00E0A3
S12321C000F600F800DF00E000F400DF00E000F900FC00DF00E00025012701DF00E0003C9E
S12321E0011000DF00E000DF00E0002400DF00E00025002001DF00E0003D01DF00E0000F58
S1232200003E013F01180019001A001D001E0053010C01200022001D0148017D007E00525E
S12322200126004A017F0080005101540155018100FB0018001A000C01200022001D0148C9
S1232240017D007E00520126004A017F00800051015401550181002D0016001C007C00144E
S1232260011E011A017A00060009007B000101030105010901060009000B000000000001EA
S123228000B00002000200070112000601B100B100B10013004E014D0123002300B2002783
S12322A0002700B300B400B400B400B400B40028002900F5002B00B5002C004C01310031BB
S12322C000E70032003200EA0033003300EB0034003400E80035003500E900B600B600B6AF
S12322E00037003900EC003A00ED003B00EE004200340144002C0145002B0146002D014819
S12323000028014C004C0029014D004D0035014E004E00DB005400540038015500550055A7
S123232000B700570057005001580058002A0159005900360116015B005D005D0039015E5B
S1232340005E000D015F0041016000420161006100B8006300B900BA00BA0065003A013AE5
S1232360013A0166006800FA00BB00BB0069006A00BC006D00DD006E00DE006F00C1001278
S12323800170007100100173001C017500BD0076007600760076007600760076007600E5EF
S12323A00077007700E6007800220100000000A1004700A900AA00A800C700C600C800DA98
S12323C0000B01C900620050005A00970098005C009B00530056009A004A0096004B009CE8
S12323E0009200930094009500990052004F00510049002E00A700A600E200E100E400E3B2
S123240000AE00AD00850087008600880084008B008C008A00F000EF00310140004000305D
S123242001400040003001400040003001F1007200F3007400A3003C00F2003F00CA003D54
S1232440002F000A01C2000F01A4008900C500AC006C006B00CC004100AB001F01C400AFAC
S123246000240123016700CD009100CE00D200A5008F0090008E00CF009F008D00330164C5
S123248000A000A200D000D50038003E009E009D00D1004301300044013600CB004300D8FA
S12324A000D400D300C300D600D700000001000200180018000400040004000400040004B6
S12324C00022001800240018000A00180018000B00A80018001800180004000C000E001817
S12324E000180018002100220023002400250018002D0018002F001800300032003C003D7A
S1232500003E003F004000180024004200430043004300430043004500460059005A005A95
S1232520005A005B005C00590025005D005E005F00600061006100610062006300640067DB
S1232540006C006400640064006F00730076007A007E006400820085006400640064008870
S12325600064008B00640064008E008E008F00180024001800910018001800A700A800246D
S123258000BA00BB00BC00BC00BD00BD00BD001800BF001800C000C100C900CB000100030B
S12325A000060008000C000E00110014001A001C001E0020002300260029002C002F003356
S12325C0003500370039003B003D003F0041004300460049004C004F005300560059005C8F
S12325E0005E0061006400660068006B006D0070007400760079007B007D007F00810083C0
S12326000085008700890092009500C000D90032012F0137012101D9000E013B013201D974
S123262000D90032011901010002000200030003000300030003000400040007000700073F
S1232640000700070007000700070007000700070007000700070007000700070007000904
S1232660000A000D000E000E00240024002500250027002700290029002B002B002B002B45
S1232680002B002D002D002D003200320035003500350035003700370042004200430043D4
S12326A00044004400450045004600460048004800480048004800480048004800480049A7
S12326C0004A004B004C004C004D004D004D004E004E004F0050005100520053005300540A
S12326E000540055005600560057005800580059005A005A005B005D005D005E005F005F3C
S123270000600060006100620062006300630063006600660067006700670068006800696D
S12327200069006A006A006C006C006D006E006E006F0070007100710073007400740076A5
S123274000760078007800790079007A007B007C007D007E007F0000010209090606060605
S1232760060601090109010909011209090906020A09090901010101080902090109020A91
S12327800101010102090101020202020201130101010101010108010101010101010101EE
S12327A0030503020202040304040402030302020203020302020101020901091609090197
S12327C012010101010101020109010901080201020302040203030602020203030303038D
S12327E0040202020202020202030303030403030302030302020302030402030202020283
S12328000202020209030201132327282B3755616365696A750200000000000000000200EC
S1232820000000000000000000000000000000000001010100020000000200010002000288
S123284002010100020200020000000200020102020001020000000000010001000000015B
S123286000030100010000010501010202030102000002010002010200010002020102012C
S1232880000202010201000002000202000200000200000204000001010102020002010012
S12328A0010001010000020300000000000D3C282B2A292D2C3D2F3B3E3A235E4946544FF2
S12328C0474F4F4E4F5245514C5447544C4547454E45464F524C455452454D44494D44458C
S12328E0464E4F54414E4454414E53494E434F535351525441424C4F474C454E465245416C
S1232900544E414253455850494E54454E44504F53524E4453474E41534356414C584F521B
S12329205355425045454B504F4B455448454E52454144474F544F454C53454E4558545316
S1232940544F504441544146494C45434852244D494424535445505354522443414C4C537F
S1232960494E485052494E54494E505554474F535542434C4F53454C4546542452455455D2
S1232980524E52494748542452454D41524B524553544F524552414E444F4D495A4500174B
S12329A0010203040507090D08060A0B0C0E11161014150D010A120F131C1D001A191E185C
S12329C0484546494A4E544C47414B421B4F434451582120501F2926242225286323525531
S12329E02757595A2D2C2B2A532E5600303300000F2576B6CFE1E8E8000F0B1B100503018C
S1232A00000100000F1A35454A4D4E4E01010001010101010101010000010001054146053E
S1232A204746410501014455504C4943415445204C4142454C53204F522053594E43485297
S1232A404F4E495A4154494F4E204552524F52244944454E54494649455220494E204449A2
S1232A604D2050524556494F55534C5920444546494E454424505245444546494E4544209A
S1232A8046554E4354494F4E204E414D452050524556494F55534C5920444546494E45443A
S1232AA024464F52204C4F4F5020494E444558204E4F542053494D504C4520464C4F415484
S1232AC0494E4720504F494E54205641524941424C4524494E434F5252454354204E554D27
S1232AE0424552204F4620504152414D455445525320494E2046554E4354494F4E2052453C
S1232B00464552454E434524494E56414C494420504152414D455445522054595045204902
S1232B204E2046554E4354494F4E205245464552454E434524554E444546494E45442046F2
S1232B40554E4354494F4E24494E56414C494420434841524143544552244558505245537E
S1232B6053494F4E20494E2049462053544154454D454E54204E4F5420464C4F4154494E9F
S1232B804720504F494E5424494C4C4547414C20464C4F4154494E4720504F494E5420469E
S1232BA04F524D4154245355425343524950544544205641524941424C45204E4F5420503B
S1232BC0524556494F55534C592044494D454E53494F4E4544244152524159204E414D45EC
S1232BE020555345442041532053494D504C45205641524149424C4524535452494E472061
S1232C0045585052455353494F4E204E4F5420414C4C4F574544244D49584544204D4F44CC
S1232C20452028535452494E47202D20464C4F4154494E47292045585052455353494F4E12
S1232C40244E455854205641524941424C4520444F4553204E4F54204D4154434820464F09
S1232C6052244E4F2050524F44554354494F4E20455849535453244E455854205354415457
S1232C80454D454E5420574954484F5554204D41544348494E4720464F5224494E434F5252
S1232CA052454354204E554D424552204F46205355425343524950545324434F4D50494C2A
S1232CC0455220535441434B204F564552464C4F572453594D424F4C205441424C45204F3E
S1232CE0564552464C4F5724554E444546494E4544204C4142454C2456415243205441422E
S1232D004C45204F564552464C4F5724554E5445524D494E4154454420535452494E4724BB
S1232D20494E56414C4944205459504520494E2046494C45204944454E5449464945522408
S1232D40464F5220574954484F5554204D41544348494E47204E45585424262A502A752ADD
S1232D60A12AD32A082B352B482B5A2B882BA62BD62BF92B172C412C622C772C9B2CBA2CC5
S1232D80D22CE82CF82C0C2D202D402D50524F442024204552524F525320444554454354B7
S1232DA04544244449534B204552524F52202D2041424F5254494E4720244241534E4F20F3
S1232DC0534F55524345202D2041424F5254494E472024454E440D0A42415349432D452F26
S1232DE0363520434F4D50494C4552202D2056455253494F4E20322E30332D4124000000E1
S1232E0000000000000000000000000000000000000000494E5400000000000000000000C3
S1232E20000000000000000000000020202020202020202002170000000000000000000055
S1232E4000000000000000000000000000000000000000000000000000000000000000006E
S1232E6000000000000000000000000000000000000000000000000000000000000000004E
S1232E8000000000000000000000000000000000000000000000000000000000000000002E
S1232EA000000000000000000000000000000000000000000000000000000000000000000E
S1232EC00000000000000000000000000000000000000000000000000000000000000000EE
S1232EE00000000000000000000000000000000000000000000000000000000000000000CE
S1232F000000000000000000000000000000000000000000000000000000000000000000AD
S1232F2000000000000000000000000000000000000000000000000000000000000000008D
S1232F4000000000000000000000000000000000000000000000000000000000000000006D
S1232F6000000000000000000000000000000000000000000000000000000000000000004D
S1232F8000000000000000000000000000000000000000000000000000000000000000002D
S1232FA000000000000000000000000000000000000000000000000000000000000000000D
S1232FC00000000000000000000000000000000000000000000000000000000000000000ED
S1232FE00000000000000000000000000000000000000000000000000000000000000000CD
S12330000000000000000000000000000000000000000000000000000000000000000000AC
S123302000000000000000000000000000000000000000000000000000000000000000008C
S123304000000000000000000000000000000000000000000000000000000000000000006C
S123306000000000000000000000000000000000000000000000000000000000000000004C
S123308000000000000000000000000000000000000000000000000000000000000000002C
S12330A000000000000000000000000000000000000000000000000000000000000000000C
S12330C00000000000000000000000000000000000000000000000000000000000000000EC
S12330E00000000000000000000000000000000000000000000000000000000000000000CC
S12331000000000000000000000000000000000000000000000000000000000000000000AB
S123312000000000000000000000000000000000000000000000000000000000000000008B
S123314000000000000000000000000000000000000000000000000000000000000000006B
S123316000000000000000000000000000000000000000000000000000000000000000004B
S123318000000000000000000000000000000000000000000000000000000000000000002B
S12131A00000000000000000000000000000000000000000000000000000000000000D
S9

View File

@@ -0,0 +1,92 @@
S1230800A900850A850B850C850DA94DA00F8502840385048405A94DA013850684078508D8
S12308208409A93CA00A205709A200BD07019D0B0BBD17019D2C0BE8E00CD0EFA9009D0B71
S12308400B9D2C0BE8E010D0F5AD2D0BC920D014AD350BC920D00DA201BD0B0B9D2C0BE881
S1230860E00CD0F520610920680920880820A908C512F0F6A9B0A00A20570920CA08A9A5A7
S1230880A00A2057094C0001207E09B00BE60BD006E60CD002E60D60A980850A20A908A96B
S12308A0CDA00A2057094C740820BF09901B240A300AA9ECA00A2057094C7408A98AA00A16
S12308C020570920CA084C000160A900850EA9A0A086A201200209A910A027A2002002092F
S12308E0A9E8A003A200200209A964A000A200200209A90AA000A200200209A50B09304C24
S12309005209850F84108611A2FF38A50BE50F850BA50CE510850CA50DE511850DE8B0EBB8
S1230920A50B650F850BA50C6510850CA50D6511850D8AF00338660E240E10050930205273
S12309400960A90BA00B4C4D09A92CA00BA2144C0301A2024C0301A2094C0301A21A4C03A9
S123096001A90BA00B4C6C09A92CA00BA20F200301100AA964A00A2057094C0001602000DF
S12309800A901A20120AA502A403205C09204209D02220240A20000A90EC20120AA000B1B2
S12309A0028512A502C504A503E505E602D002E603A51260A502A403850484054C9A09206F
S12309C0090A901A201B0AA506A407205C09204909D02220300A20090A90EC201B0AA000E4
S12309E0B1068513A506C508A507E509E606D002E607A51360A506A407850884094CDB092F
S1230A00A502C94DA503E90F60A506C94DA507E91360A94DA00B8502840360A94DA00F8513
S1230A200684076018A502698085029002E6036018A506698085069002E6076046494C4581
S1230A4020434F4D50415249534F4E20524F5554494E450D0A56455253494F4E20322E3044
S1230A60322D41240D0A4F4E45204F46205448452046494C455320444F4553204E4F5420F0
S1230A80455849535421240D0A240D0A46494C4553204D41544348202D204C454E475448FF
S1230AA020495320242028444543494D414C29240D0A46494C45532041524520554E4551D3
S1230AC055414C204154204259544520240D0A454F46204F4E2046494C4520312042555499
S1230AE0204E4F542046494C452032240D0A454F46204F4E2046494C4520322042555420C0
S1230B004E4F542046494C452031240000000000000000000000000000000000000000002B
S1230B200000000000000000000000000000000000000000000000000000000000000000B1
S1230B40000000000000000000000000000000000000000000000000000000000000000091
S1230B60000000000000000000000000000000000000000000000000000000000000000071
S1230B80000000000000000000000000000000000000000000000000000000000000000051
S1230BA0000000000000000000000000000000000000000000000000000000000000000031
S1230BC0000000000000000000000000000000000000000000000000000000000000000011
S1230BE00000000000000000000000000000000000000000000000000000000000000000F1
S1230C000000000000000000000000000000000000000000000000000000000000000000D0
S1230C200000000000000000000000000000000000000000000000000000000000000000B0
S1230C40000000000000000000000000000000000000000000000000000000000000000090
S1230C60000000000000000000000000000000000000000000000000000000000000000070
S1230C80000000000000000000000000000000000000000000000000000000000000000050
S1230CA0000000000000000000000000000000000000000000000000000000000000000030
S1230CC0000000000000000000000000000000000000000000000000000000000000000010
S1230CE00000000000000000000000000000000000000000000000000000000000000000F0
S1230D000000000000000000000000000000000000000000000000000000000000000000CF
S1230D200000000000000000000000000000000000000000000000000000000000000000AF
S1230D4000000000000000000000000000000000000000000000000000000000000000008F
S1230D6000000000000000000000000000000000000000000000000000000000000000006F
S1230D8000000000000000000000000000000000000000000000000000000000000000004F
S1230DA000000000000000000000000000000000000000000000000000000000000000002F
S1230DC000000000000000000000000000000000000000000000000000000000000000000F
S1230DE00000000000000000000000000000000000000000000000000000000000000000EF
S1230E000000000000000000000000000000000000000000000000000000000000000000CE
S1230E200000000000000000000000000000000000000000000000000000000000000000AE
S1230E4000000000000000000000000000000000000000000000000000000000000000008E
S1230E6000000000000000000000000000000000000000000000000000000000000000006E
S1230E8000000000000000000000000000000000000000000000000000000000000000004E
S1230EA000000000000000000000000000000000000000000000000000000000000000002E
S1230EC000000000000000000000000000000000000000000000000000000000000000000E
S1230EE00000000000000000000000000000000000000000000000000000000000000000EE
S1230F000000000000000000000000000000000000000000000000000000000000000000CD
S1230F200000000000000000000000000000000000000000000000000000000000000000AD
S1230F4000000000000000000000000000000000000000000000000000000000000000008D
S1230F6000000000000000000000000000000000000000000000000000000000000000006D
S1230F8000000000000000000000000000000000000000000000000000000000000000004D
S1230FA000000000000000000000000000000000000000000000000000000000000000002D
S1230FC000000000000000000000000000000000000000000000000000000000000000000D
S1230FE00000000000000000000000000000000000000000000000000000000000000000ED
S12310000000000000000000000000000000000000000000000000000000000000000000CC
S12310200000000000000000000000000000000000000000000000000000000000000000AC
S123104000000000000000000000000000000000000000000000000000000000000000008C
S123106000000000000000000000000000000000000000000000000000000000000000006C
S123108000000000000000000000000000000000000000000000000000000000000000004C
S12310A000000000000000000000000000000000000000000000000000000000000000002C
S12310C000000000000000000000000000000000000000000000000000000000000000000C
S12310E00000000000000000000000000000000000000000000000000000000000000000EC
S12311000000000000000000000000000000000000000000000000000000000000000000CB
S12311200000000000000000000000000000000000000000000000000000000000000000AB
S123114000000000000000000000000000000000000000000000000000000000000000008B
S123116000000000000000000000000000000000000000000000000000000000000000006B
S123118000000000000000000000000000000000000000000000000000000000000000004B
S12311A000000000000000000000000000000000000000000000000000000000000000002B
S12311C000000000000000000000000000000000000000000000000000000000000000000B
S12311E00000000000000000000000000000000000000000000000000000000000000000EB
S12312000000000000000000000000000000000000000000000000000000000000000000CA
S12312200000000000000000000000000000000000000000000000000000000000000000AA
S123124000000000000000000000000000000000000000000000000000000000000000008A
S123126000000000000000000000000000000000000000000000000000000000000000006A
S123128000000000000000000000000000000000000000000000000000000000000000004A
S12312A000000000000000000000000000000000000000000000000000000000000000002A
S12312C000000000000000000000000000000000000000000000000000000000000000000A
S12312E00000000000000000000000000000000000000000000000000000000000000000EA
S12313000000000000000000000000000000000000000000000000000000000000000000C9
S12313200000000000000000000000000000000000000000000000000000000000000000A9
S1101340000000000000000000000000009C
S9

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