Browse Source

Merge pull request #142 from wwarthen/dev

Dev
pull/153/head
b1ackmai1er 5 years ago
committed by GitHub
parent
commit
d79de72f1b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 34
      .github/workflows/commit.yml
  2. 1
      .gitignore
  3. 1
      Binary/Clean.cmd
  4. 2
      Binary/Makefile
  5. 17
      Binary/RomList.txt
  6. 6
      Doc/ChangeLog.txt
  7. BIN
      Doc/RomWBW Applications.pdf
  8. BIN
      Doc/RomWBW Architecture.pdf
  9. BIN
      Doc/RomWBW Disk Catalog.pdf
  10. BIN
      Doc/RomWBW Getting Started.pdf
  11. 2
      ReadMe.md
  12. 2
      ReadMe.txt
  13. 58
      Readme.unix
  14. 8
      Source/Apps/Survey.asm
  15. 59
      Source/Apps/Tune/Tune.asm
  16. 2
      Source/Apps/Tune/printing.inc
  17. 30
      Source/BPBIOS/diskdefs
  18. 4
      Source/BuildZRC.cmd
  19. 4
      Source/CPM3/Makefile
  20. 51
      Source/Doc/Architecture.md
  21. 2
      Source/HBIOS/Build.ps1
  22. 5
      Source/HBIOS/Build.sh
  23. 41
      Source/HBIOS/Config/EZZ80_tz80.asm
  24. 43
      Source/HBIOS/Config/RCZ280_ext.asm
  25. 45
      Source/HBIOS/Config/RCZ80_zrc.asm
  26. 3
      Source/HBIOS/Makefile
  27. 31
      Source/HBIOS/asci.asm
  28. 6
      Source/HBIOS/ay38910.asm
  29. 5
      Source/HBIOS/cfg_dyno.asm
  30. 6
      Source/HBIOS/cfg_ezz80.asm
  31. 11
      Source/HBIOS/cfg_master.asm
  32. 7
      Source/HBIOS/cfg_mk4.asm
  33. 7
      Source/HBIOS/cfg_n8.asm
  34. 7
      Source/HBIOS/cfg_rcz180.asm
  35. 220
      Source/HBIOS/cfg_rcz280.asm
  36. 6
      Source/HBIOS/cfg_rcz80.asm
  37. 6
      Source/HBIOS/cfg_sbc.asm
  38. 7
      Source/HBIOS/cfg_scz180.asm
  39. 6
      Source/HBIOS/cfg_zeta.asm
  40. 4
      Source/HBIOS/cfg_zeta2.asm
  41. 30
      Source/HBIOS/diskdefs
  42. 75
      Source/HBIOS/eipc.inc
  43. 263
      Source/HBIOS/hbios.asm
  44. 12
      Source/HBIOS/std.asm
  45. 35
      Source/HBIOS/tms.asm
  46. 2
      Source/HBIOS/z180.inc
  47. 13
      Source/HBIOS/z280.inc
  48. 42
      Source/Images/Build.cmd
  49. 18
      Source/Images/BuildDisk.ps1
  50. 90
      Source/Images/Makefile
  51. 724
      Source/Images/ReadMe.txt
  52. 30
      Source/Images/diskdefs
  53. BIN
      Source/Images/hd1024_prefix.dat
  54. 1
      Source/Makefile
  55. 5
      Source/ZPM3/Build.cmd
  56. 3
      Source/ZPM3/Clean.cmd
  57. 5
      Source/ZPM3/Makefile
  58. BIN
      Source/ZPM3/autotog.com
  59. 8
      Source/ZPM3/autotog.z80
  60. BIN
      Source/ZPM3/clrhist.com
  61. BIN
      Source/ZPM3/setz3.com
  62. 13
      Source/ZRC/Build.cmd
  63. 3
      Source/ZRC/Clean.cmd
  64. 19
      Source/ZRC/Makefile
  65. 16
      Source/ZRC/ZRC Disk Layout.txt
  66. BIN
      Source/ZRC/zrc_cfldr.bin
  67. BIN
      Source/ZRC/zrc_fill_1.bin
  68. BIN
      Source/ZRC/zrc_fill_2.bin
  69. BIN
      Source/ZRC/zrc_fill_3.bin
  70. BIN
      Source/ZRC/zrc_mon.bin
  71. BIN
      Source/ZRC/zrc_ptbl.bin
  72. 2
      Source/ver.inc
  73. 2
      Source/ver.lib
  74. 2
      Tools/Makefile.inc
  75. 30
      Tools/cpmtools/diskdefs
  76. 4
      Tools/simh/Sim.cfg
  77. 2
      Tools/unix/uz80as/Makefile

34
.github/workflows/commit.yml

@ -9,7 +9,7 @@ on:
- v*
jobs:
build:
buildLinux:
runs-on: ubuntu-latest
@ -24,9 +24,39 @@ jobs:
make
make clean
rm -rf .git*
- name: List Output
run: |
cd Binary
ls -l
find -type f -exec md5sum '{}' \;
- name: Upload Artifact
uses: actions/upload-artifact@v1
with:
name: RomWBW_Linux-${{env.GITHUB_REF_SLUG}}-${{env.GITHUB_SHA_SHORT}}
path: .
buildMacOS:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: |
make
make clean
rm -rf .git*
- name: List Output
run: |
cd Binary
ls -l
find . -type f -exec md5 -r -- '{}' +;
- name: Upload Artifact
uses: actions/upload-artifact@v1
with:
name: RomWBW-${{env.GITHUB_REF_SLUG}}-${{env.GITHUB_SHA_SHORT}}
name: RomWBW_MacOS
path: .

1
.gitignore

@ -90,6 +90,7 @@ Tools/unix/zx/zx
!Source/ZCPR-DJ/*.[Cc][Oo][Mm]
!Source/ZPM3/*.[Cc][Oo][Mm]
!Source/ZSDOS/*.[Cc][Oo][Mm]
!Source/ZRC/*.bin
!Tools/cpm/bin
!Tools/unix/zx
!Tools/zx

1
Binary/Clean.cmd

@ -7,7 +7,6 @@ if exist *.com del *.com
if exist *.img del *.img
if exist *.rom del *.rom
if exist *.pdf del *.pdf
if exist *.log del *.log
if exist *.eeprom del *.eeprom
setlocal & cd Apps && call Clean || exit /b 1 & endlocal

2
Binary/Makefile

@ -5,4 +5,4 @@ SUBDIRS = Apps CPM3 ZPM3
include $(TOOLS)/Makefile.inc
clobber::
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.dat

17
Binary/RomList.txt

@ -182,6 +182,23 @@ RCZ180 (RCZ180_nat.rom & RCZ180_ext.rom):
- RCZ180_ext.rom uses external bank management to access
memory, such as the 512K RAM/ROM module.
RCZ280 (RCZ280_ext.rom):
*** Experimental ***
- Assumes CPU oscillator of 24 MHz
- Bus clock will be 6 MHz, so does not match RC2014 standard!!!
- Requires 512K RAM/ROM module
- Auto detects Serial I/O Module (ACIA), Dual Serial
Module (SIO/2), and EP Dual UART.
- Console on whichever serial module is installed,
order of priority is UART, SIO, then ACIA.
- Baud rate is determined by hardware, but normally 115200.
- Auto support for RC2014 Compact Flash Module
- Auto support for RC2014 PPIDE Module
- Support for Scott Baker SIO board may be enabled in config
- Support for Scott Baker floppy controllers (SMC & WDC) may
be enabled in config
- Support for J.B. Lang TMS9918 video card may be enabled in config
SCZ180 (SCZ180_126.rom, SCZ180_130.rom, SCZ180_131.rom):
- Same as RCZ180
- Adds auto support for SPI SD Card

6
Doc/ChangeLog.txt

@ -5,6 +5,10 @@ Version 3.1.1
- WBW: Change Propeller VGA signal timings to 60Hz refresh
- WBW: Enhanced SYSTEM RESET function to allow a warm start back to boot loader
- C?O: Add DUART driver
- WBW: Early Z280 support (requires 512K RAM/ROM board)
- HCS: ZRC memory manager support
- S?K: Support for Tiny Z80 by Sergey
- E?B: Support for v6 YM/AY sound card
Version 3.1
-----------
@ -119,7 +123,7 @@ Version 2.9.1
- PMS: Added Forth, Nascom BASIC, and Tasty BASIC to ROM
- PMS: Refactored ROM Loader to support more ROM images, now table driven
- WBW: Refactored DSKY code
- SK: Initial support for Easy Z80
- S?K: Initial support for Easy Z80
- PMS: Enhance VDU driver to support alternative screen dimensions
- WBW: DDT and DDTZ modified to use RST 30 instead of RST 38 to avoid conflicts with IM 1 interrupts
- WBW: Added timer interrupt support for CTC under Zeta 2 and Easy Z80

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Architecture.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Getting Started.pdf

Binary file not shown.

2
ReadMe.md

@ -3,7 +3,7 @@
## Z80/Z180 System Software
Version 3.1 Pre-release
Tuesday 19 May 2020
Tuesday 18 August 2020
Wayne Warthen <wwarthen@gmail.com>

2
ReadMe.txt

@ -3,7 +3,7 @@ RomWBW
Z80/Z180 System Software
Version 3.1 Pre-release
Tuesday 19 May 2020
Tuesday 18 August 2020
Wayne Warthen wwarthen@gmail.com

58
Readme.unix

@ -1,13 +1,13 @@
This tree now contains makefiles and tools to build on Linux and
MacosX Linux is rather more thoroughly tested compared to os-x.
macOS. Linux is rather more thoroughly tested compared to macOS.
To get here, TASM and the propeller generation tools needed to be
replaced, and since the unix filesystem is usually case-sensitive,
and CP/M and windows are not, the cpm tools were made case-insensitive.
TASM was replaced with uz80as, which implements a subset of TASM and
fixes some bugs. however, I needed to add some functionality to make
it build the sources as they exist in this tree. in particular, one
fixes some bugs. However, I needed to add some functionality to make
it build the sources as they exist in this tree. In particular, one
thing to be very careful of is that TASM is not entirely consistent
with respect to the .DS directive. it's usually a bad idea to mix
.DS, .FILL, .DB with .ORG.
@ -23,13 +23,19 @@ To build:
cd to the top directory and type "make".
By default, this will generate all of the standard configurations of
RomWBW for all platforms. If you want to customize the process to
only build one (or a subset) of the configurations, edit the "makefile"
in the HBIOS directory. If you create your own, custom configuration,
you can add it there as well.
RomWBW for all platforms. If you just want to build the ROM for a
specific platform and configuration you can use
For MacOS users, you may encounter a failure reading or writing files.
This is caused by protection features in MacOS (at least, in Catalina)
make ROM_PLATFORM=<platform> ROM_CONFIG=<config>
where <platform> is one of the supported platforms such as SBC, RCZ80,
etc. and <config> is a configuration of that platform. For example,
to build the "126" configuration of the "SCZ180" platform:
make ROM_PLATFORM=SCZ180 ROM_CONFIG=126
For macOS users, you may encounter a failure reading or writing files.
This is caused by protection features in macOS (at least, in Catalina)
that prevent programs built on your local system (unsigned) from
running. To disable this feature:
@ -47,7 +53,7 @@ DISCLAIMER: You do this at your own risk. I highly recommend that you
return the settings back to normal immediately after doing a build.
Heavy use is made of make's include facility and pattern rules. the
master rule set is in Tools/Makefile.inc. changes here will affect
master rule set is in Tools/Makefile.inc. Changes here will affect
almost every Makefile, and where exceptions are needed, the overrides
are applied in the lower Makefiles.
@ -56,20 +62,26 @@ binaries are compared to a baseline windows build.
Credit:
uz80as was written by Jorge Giner Cordero, jorge.giner@hotmail.com,
and the original source can be found at https://github.com/jorgicor/uz80as
uz80as was written by Jorge Giner Cordero,
jorge.giner@hotmail.com, and the original source can be found
at https://github.com/jorgicor/uz80as.
The propeller tools use bstc and openspin, parallax tools from
http://www.fnarfbargle.com/bst.html
https://github.com/parallaxinc/OpenSpin Note that bst is not
open source or even currently maintained, so I could not
generate a version for 64 bit macOS.
the propeller tools use bstc and openspin, parallax tools from
http://www.fnarfbargle.com/bst.html https://github.com/parallaxinc/OpenSpin
note that bst is not open source or even currently maintained, so I could
not generate a version for 64 bit osx.
cpmtools were the most current I could find, and it has been
hacked to do case-insensitivity. These are not marked, and are
not extensive.
cpmtools were the most current I could find, and it has been hacked to do
case-insensitivity. these are not marked, and are not extensive.
zx is from the distributed version, and also has local hacks
for case insensitivity.
zx is from distributed version, and also has local hacks for case insensitivity.
both zx and cpmtools ship with an overly complicated makefile generation system
and this is ignored.
Both zx and cpmtools ship with an overly complicated makefile
generation system and this is ignored.
This whole linux build framework is the work of Curt Mayer, curt@zen-room.org.
use it for whatever you like; this is not my day job.
This whole Linux build framework is the work of Curt Mayer,
curt@zen-room.org. Use it for whatever you like; this is not
my day job.

8
Source/Apps/Survey.asm

@ -600,9 +600,11 @@ PORTLP:
mov c,a ; port number to reg c
mvi b,0 ; for 16 bit port addressing
db 0edh,078h ; z80: in a,(c)
; inactive port could return 0xFF or 0x78
CPI 0FFH
JZ NEXTPT
; inactive port could return 0xFF or 0x78 or the port address
cmp c
jz nextpt
cpi 0FFh
jz nextpt
cpi 078h
jz nextpt
ISPORT:

59
Source/Apps/Tune/Tune.asm

@ -41,6 +41,7 @@
; 2020-03-29 [WBW] Fix error in Z180 I/O W/S bracketing
; 2020-04-25 [DEN] Added support to use HBIOS Sound driver
; 2020-05-02 [PMS] Add support for SBC-V2 slow-io hack
; 2020-09-03 [E?B] Add support for Ed Brindley YM/AY Sound Card v6
;_______________________________________________________________________________
;
; ToDo:
@ -270,9 +271,9 @@ _LDX LD C,16 ; CPM Close File function
CALL BDOS ; Do it
;
; Play loop
CALL CRLF2 ; Formatting
LD DE,MSGPLY ; Playing message
CALL PRTSTR ; Print message
; CALL CRLF2 ; Formatting
; LD DE,MSGPLY ; Playing message
; CALL PRTSTR ; Print message
;CALL CRLF2 ; Formatting
;CALL SLOWCPU
LD A,(FILTYP) ; Get file type
@ -295,7 +296,29 @@ GOPT3 LD A,0 ; SETUP value to PT3 sound files
LD DE,185 ; Avg TS / quark = 7400, so 185 delay loops
JR GOPTX ; Play PTx file
GOPTX LD HL,(QDLY) ; Get basic quark delay
GOPTX
CALL CRLF2
LD DE, MSGSONGNAME ; Print song name message
CALL PRTSTR
LD DE, MDLADDR + $1E ; Print 32 character long song name from module
LD B, $20
GOPTX1 LD A,(DE)
CALL PRTCHR
INC DE
DJNZ GOPTX1
CALL CRLF
LD DE, MSGARTIST ; Print "by" message
CALL PRTSTR
LD DE, MDLADDR + $42 ; Print 32 character long composer/artist from module
LD B, $20
GOPTX2 LD A,(DE)
CALL PRTCHR
INC DE
DJNZ GOPTX2
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
@ -313,7 +336,11 @@ PTXLP CALL START+5 ; Play one quark
CALL WAITQ ; Wait one quark period
JR PTXLP ; Loop for next quark
;
gomym ld hl,(QDLY) ; Get basic quark delay
gomym
CALL CRLF2 ; Formatting
LD DE,MSGPLY ; Playing message
CALL PRTSTR ; Print message
ld hl,(QDLY) ; Get basic quark delay
or a ; Clear carry
ld de,125 ; Avg TS / quark = ~5000, so 125 delay loops
sbc hl,de ; Adjust for file type
@ -536,12 +563,18 @@ CFGTBL: ; PLT RSEL RDAT RIN Z180 ACR
;
.DB $07, $D8, $D0, $D8, $FF, $FF ; RCZ80 W/ RC SOUND MODULE (EB)
.DW HWSTR_RCEB
;
.DB $07, $A0, $A1, $A2, $FF, $FF ; RCZ80 W/ RC SOUND MODULE (EB Rev 6)
.DW HWSTR_RCEB6
;
.DB $07, $D1, $D0, $D0, $FF, $FF ; RCZ80 W/ RC SOUND MODULE (MF)
.DW HWSTR_RCMF
;
.DB $08, $68, $60, $68, $C0, $FF ; RCZ180 W/ RC SOUND MODULE (EB)
.DW HWSTR_RCEB
;
.DB $08, $A0, $A1, $A2, $C0, $FF ; RCZ180 W/ RC SOUND MODULE (EB Rev 6)
.DW HWSTR_RCEB6
;
.DB $08, $61, $60, $60, $C0, $FF ; RCZ180 W/ RC SOUND MODULE (MF)
.DW HWSTR_RCMF
@ -549,11 +582,17 @@ CFGTBL: ; PLT RSEL RDAT RIN Z180 ACR
.DB $09, $D8, $D0, $D8, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (EB)
.DW HWSTR_RCEB
;
.DB $09, $D1, $D0, $D0, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (EB)
.DB $09, $A0, $A1, $A2, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (EB Rev 6)
.DW HWSTR_RCEB6
;
.DB $09, $D1, $D0, $D0, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (MF)
.DW HWSTR_RCMF
;
.DB $0A, $68, $60, $68, $C0, $FF ; SCZ180 W/ RC SOUND MODULE (EB)
.DW HWSTR_RCEB
;
.DB $0A, $A0, $A1, $A2, $C0, $FF ; SCZ180 W/ RC SOUND MODULE (EB Rev 6)
.DW HWSTR_RCEB6
;
.DB $0A, $61, $60, $60, $C0, $FF ; SCZ180 W/ RC SOUND MODULE (MF)
.DW HWSTR_RCMF
@ -585,7 +624,7 @@ 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.1, 25-Apr-2020",0
MSGBAN .DB "Tune Player for RomWBW v3.2, 03-Sep-2020",0
MSGUSE .DB "Copyright (C) 2020, 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
@ -606,9 +645,13 @@ MSGERR .DB "App Error", 0
HWSTR_SCG .DB "SCG ECB Board",0
HWSTR_N8 .DB "N8 Onboard Sound",0
HWSTR_RCEB .DB "RC2014 Sound Module (EB)",0
HWSTR_RCEB6 .DB "RC2014 Sound Module (EBv6)",0
HWSTR_RCMF .DB "RC2014 Sound Module (MF)",0
MSGUNSUP .db "MYM FILES NOT SUPPORTED YET\r\n", 0
MSGUNSUP .db "MYM files not supported yet!\r\n", 0
MSGSONGNAME .DB "Song name: ", 0
MSGARTIST .DB "by: ", 0
;
;===============================================================================
; PTx Player Routines

2
Source/Apps/Tune/printing.inc

@ -24,7 +24,7 @@ PRTDOT:
;
PRTCR:
;
; shortcut to print a dot preserving all regs
; shortcut to print a carriage return preserving all regs
PUSH AF ; save af
LD A,13 ; load CR value
CALL PRTCHR ; print it

30
Source/BPBIOS/diskdefs

@ -345,9 +345,9 @@ diskdef wbw_fd120
os 2.2
end
# RomWBW 8320KB Hard Disk Slice
# RomWBW 8320KB Hard Disk Slice (512 directory entry format)
# Legacy format, 512 dir entries, 16,630 sectors / slice
diskdef wbw_hd
diskdef wbw_hd512
seclen 512
tracks 1040
sectrk 16
@ -358,8 +358,8 @@ diskdef wbw_hd
os 2.2
end
# First 4 slices of wbw_hd
diskdef wbw_hd0
# First 4 slices of wbw_hd512
diskdef wbw_hd512_0
seclen 512
tracks 1040
sectrk 16
@ -370,7 +370,7 @@ diskdef wbw_hd0
os 2.2
end
diskdef wbw_hd1
diskdef wbw_hd512_1
seclen 512
tracks 2080
sectrk 16
@ -381,7 +381,7 @@ diskdef wbw_hd1
os 2.2
end
diskdef wbw_hd2
diskdef wbw_hd512_2
seclen 512
tracks 3120
sectrk 16
@ -392,7 +392,7 @@ diskdef wbw_hd2
os 2.2
end
diskdef wbw_hd3
diskdef wbw_hd512_3
seclen 512
tracks 4160
sectrk 16
@ -404,10 +404,10 @@ diskdef wbw_hd3
end
# RomWBW 8MB Hard Disk
# RomWBW 8MB Hard Disk (1024 directory entry format)
# New format, 1024 dir entries, 16,384 sectors / slice
# Pure filesystem image, no prefix
diskdef wbw_hdnew
# Pure filesystem image, no MBR prefix
diskdef wbw_hd1024
seclen 512
tracks 1024
sectrk 16
@ -418,9 +418,9 @@ diskdef wbw_hdnew
os 2.2
end
# First 4 slices of wbw_hdnew
# First 4 slices of wbw_hd1024
# Assumes 128KB prefix (256 sectors)
diskdef wbw_hdnew0
diskdef wbw_hd1024_0
seclen 512
tracks 1040
sectrk 16
@ -431,7 +431,7 @@ diskdef wbw_hdnew0
os 2.2
end
diskdef wbw_hdnew1
diskdef wbw_hd1024_1
seclen 512
tracks 2064
sectrk 16
@ -442,7 +442,7 @@ diskdef wbw_hdnew1
os 2.2
end
diskdef wbw_hdnew2
diskdef wbw_hd1024_2
seclen 512
tracks 3112
sectrk 16
@ -453,7 +453,7 @@ diskdef wbw_hdnew2
os 2.2
end
diskdef wbw_hdnew3
diskdef wbw_hd1024_3
seclen 512
tracks 4136
sectrk 16

4
Source/BuildZRC.cmd

@ -0,0 +1,4 @@
@echo off
setlocal
setlocal & cd ZRC && call Build || exit /b 1 & endlocal

4
Source/CPM3/Makefile

@ -89,12 +89,10 @@ zpmbios3.spr: $(BIOSOBJS)
cpm3.sys: cpm3$(DEFCPM3).sys
cp cpm3$(DEFCPM3).sys cpm3.sys
rm -f /tmp/casefn.cache
gencpm.dat: gen$(DEFCPM3).dat
cp gen$(DEFCPM3).dat gencpm.dat
rm -f /tmp/casefn.cache
cpmldr.sys: loader.bin cpmldr.bin
cat loader.bin cpmldr.bin > $@

51
Source/Doc/Architecture.md

@ -428,7 +428,7 @@ _Code_ | _Meaning_
-7 | media not present
-8 | hardware not present
-9 | I/O error
-10 | write request to read-only media
-10 | write request to read-only media
-11 | device timeout
-12 | invalid configuration
@ -1440,7 +1440,7 @@ returned, otherwise a non-zero error state will be returned.
The sound chip resolution and its oscillator limit the range and
accuracy of the notes played. The typically range of the AY-3-8910
is six octaves, Bb2/A#2-A7, where each value is a unique tone. Values
above and below can still be played but each quarter tone step may not
above and below can still be played but each quarter tone step may not
result in a note change.
The following table shows the mapping of the input value in HL
@ -1460,8 +1460,8 @@ to the corresponding octave and note.
| G | 36 | 84 | 132 | 180 | 228 | 276 | 324 | 372 |
| Ab/G# | 40 | 88 | 136 | 184 | 232 | 280 | 328 | 376 |
| A | 44 | 92 | 140 | 188 | 236 | 284 | 332 | 380 |
### Function 0x54 -- Sound Play SNDPLAY)
### Function 0x54 -- Sound Play SNDPLAY)
| _Entry Parameters_
| B: 0x54
@ -1573,7 +1573,7 @@ mode. i.e. a tone will start playing and the play function will return. The tone
continue to play until the next tone is played. I/O PORT are not compatible and will
not play a note if the duration is zero.
For other values, when a tone is played, it will play for the duration defined in HL
For other values, when a tone is played, it will play for the duration defined in HL
and then return.
### Function 0x57 -- Sound Device (SNDDEVICE)
@ -1826,7 +1826,8 @@ unit data address inside the HBIOS driver. On entry, place the
CIO function number to lookup in D and the CIO unit number in E.
On return, HL will contain the address of the requested function
in the HBIOS driver (in the HBIOS bank). DE will contain the
associated unit data address (also in the HBIOS bank).
associated unit data address (also in the HBIOS bank). See
Appendix A for details.
This function can be used to speed up HBIOS calls by looking up the
function and data address for a specific driver function. After this,
@ -1903,7 +1904,8 @@ unit data address inside the HBIOS driver. On entry, place the
VDA function number to lookup in D and the VDA unit number in E.
On return, HL will contain the address of the requested function
in the HBIOS driver (in the HBIOS bank). DE will contain the
associated unit data address (also in the HBIOS bank).
associated unit data address (also in the HBIOS bank). See
Appendix A for details.
This function can be used to speed up HBIOS calls by looking up the
function and data address for a specific driver function. After this,
@ -1937,7 +1939,8 @@ unit data address inside the HBIOS driver. On entry, place the
SND function number to lookup in D and the SND unit number in E.
On return, HL will contain the address of the requested function
in the HBIOS driver (in the HBIOS bank). DE will contain the
associated unit data address (also in the HBIOS bank).
associated unit data address (also in the HBIOS bank). See
Appendix A for details.
This function can be used to speed up HBIOS calls by looking up the
function and data address for a specific driver function. After this,
@ -2186,3 +2189,35 @@ On entry, register E must contain an index into the interrupt vector table
and register HL must contain the address of the new interrupt vector to
be inserted in the table at the index. On return, HL will contain the
previous address in the table at the index.
`\clearpage`{=latex}
### Appendix A Driver Instance Data fields
The following section outlines the read only data referenced by the
`SYSGET`, subfunctions `xxxFN` for specific drivers.
#### TMS9918 Driver:
| Name | Offset | Size (bytes)| Description |
|--------|--------|-------------|-------------|
| PPIA | 0 | 1 | PPI PORT A |
| PPIB | 1 | 1 | PPI PORT B |
| PPIC | 2 | 1 | PPI PORT C |
| PPIX | 3 | 1 | PPI CONTROL PORT |
| DATREG | 4 | 1 | IO PORT ADDRESS FOR MODE 0 |
| CMDREG | 5 | 1 | IO PORT ADDRESS FOR MODE 1 |
| The following are the register mirror values that HBIOS used for initialisation |
| REG. 0 | 6 | 1 | $00 - NO EXTERNAL VID
| REG. 1 | 7 | 1 | $50 or $70 - SET MODE 1 and interrupt if enabled |
| REG. 2 | 8 | 1 | $00 - PATTERN NAME TABLE := 0
| REG. 3 | 9 | 1 | $00 - NO COLOR TABLE
| REG. 4 | 10 | 1 | $01 - SET PATTERN GENERATOR TABLE TO $800
| REG. 5 | 11 | 1 | $00 - SPRITE ATTRIBUTE IRRELEVANT
| REG. 6 | 12 | 1 | $00 - NO SPRITE GENERATOR TABLE
| REG. 7 | 13 | 1 | $F0 - WHITE ON BLACK
| DCNTL* | 14 | 1 | Z180 DMA/WAIT CONTROL |
* ONLY PRESENT FOR Z180 BUILDS

2
Source/HBIOS/Build.ps1

@ -19,7 +19,7 @@ param([string]$Platform = "", [string]$Config = "", [string]$RomSize = "512", [s
# setup mechanism so that multiple configuration are not needed. When building for UNA, the pre-built
# UNA BIOS is simply imbedded, it is not built here.
#
$PlatformListZ80 = "SBC", "ZETA", "ZETA2", "RCZ80", "EZZ80", "UNA"
$PlatformListZ80 = "SBC", "ZETA", "ZETA2", "RCZ80", "RCZ280", "EZZ80", "UNA"
$PlatformListZ180 = "N8", "MK4", "RCZ180", "SCZ180", "DYNO"
#

5
Source/HBIOS/Build.sh

@ -65,7 +65,10 @@ romfmt=wbw_rom${romsize}
outdir=../../Binary
echo "creating empty rom disk of size $romsize in $blankfile"
dd of=$blankfile bs=1024 count=`expr $romsize - 128` < <(LC_CTYPE=en_US.US-ASCII tr '\000' '\345' </dev/zero)
#LANG=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$blankfile bs=1024 count=`expr $romsize - 128` 2>/dev/null
#LC_CTYPE=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$blankfile bs=1024 count=`expr $romsize - 128` 2>/dev/null
LC_ALL=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$blankfile bs=1024 count=`expr $romsize - 128`
hexdump $blankfile
cat <<- EOF > build.inc
; RomWBW Configured for $platform $config $timestamp

41
Source/HBIOS/Config/EZZ80_tz80.asm

@ -0,0 +1,41 @@
;
;==================================================================================================
; EASY Z80 STANDARD CONFIGURATION
;==================================================================================================
;
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
; YOUR FILE IN THE BUILD PROCESS.
;
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
; SETTINGS.
;
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
; DIRECTORIES ABOVE THIS ONE).
;
#DEFINE PLATFORM_NAME "TINYZ80"
;
#include "cfg_ezz80.asm"
;
CPUOSC .SET 16000000 ; CPU OSC FREQ IN MHZ
;
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
;
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
EIPCENABLE .SET TRUE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
CTCBASE .SET $10 ; CTC BASE I/O ADDRESS
LEDENABLE .SET TRUE ; ENABLES STATUS LED (SINGLE LED)
LEDPORT .SET $6E ; STATUS LED PORT ADDRESS
SIO0BASE .SET $18 ; SIO 0: REGISTERS BASE ADR
IDE0BASE .SET $90 ; IDE 0: IO BASE ADDRESS

43
Source/HBIOS/Config/RCZ280_ext.asm

@ -0,0 +1,43 @@
;
;==================================================================================================
; RC2014 Z280 STANDARD CONFIGURATION (EXTERNAL 512K RAM/ROM BANKED MEMORY MODULE)
;==================================================================================================
;
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
; YOUR FILE IN THE BUILD PROCESS.
;
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
; SETTINGS.
;
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
; DIRECTORIES ABOVE THIS ONE).
;
#define BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
;
#include "cfg_rcz280.asm"
;
CPUOSC .SET 24000000 ; CPU OSC FREQ IN MHZ
;
INTMODE .SET 1
;
Z280_MEMWAIT .SET 0 ; Z280: MEMORY WAIT STATES (0-3)
Z280_IOWAIT .SET 1 ; Z280: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z280_INTWAIT .SET 0 ; Z280: INT ACK WAIT STATUS (0-3)
;
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
;
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
;
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)

45
Source/HBIOS/Config/RCZ80_zrc.asm

@ -0,0 +1,45 @@
;
;==================================================================================================
; RC2014 Z80 ZRC CONFIGURATION
;==================================================================================================
;
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
; YOUR FILE IN THE BUILD PROCESS.
;
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
; SETTINGS.
;
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
; DIRECTORIES ABOVE THIS ONE).
;
#define BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
;
#include "cfg_rcz80.asm"
;
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
;
MEMMGR .SET MM_ZRC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
;
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
;
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
;
FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
;
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
;
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)

3
Source/HBIOS/Makefile

@ -7,14 +7,17 @@ ifdef ROM_PLATFORM
else
OBJECTS += DYNO_std.rom DYNO_std.com
OBJECTS += EZZ80_std.rom EZZ80_std.com
OBJECTS += EZZ80_tz80.rom EZZ80_tz80.com
OBJECTS += MK4_std.rom MK4_std.com
OBJECTS += N8_std.rom N8_std.com
OBJECTS += RCZ180_ext.rom RCZ180_ext.com
OBJECTS += RCZ180_nat.rom RCZ180_nat.com
OBJECTS += RCZ280_ext.rom RCZ280_ext.com
OBJECTS += RCZ80_kio.rom RCZ80_kio.com
OBJECTS += RCZ80_mt.rom RCZ80_mt.com
OBJECTS += RCZ80_duart.rom RCZ80_duart.com
OBJECTS += RCZ80_std.rom RCZ80_std.com
OBJECTS += RCZ80_zrc.rom RCZ80_zrc.com
OBJECTS += SBC_simh.rom SBC_simh.com
OBJECTS += SBC_std.rom SBC_std.com
OBJECTS += SCZ180_126.rom SCZ180_126.com

31
Source/HBIOS/asci.asm

@ -796,8 +796,32 @@ ASCI1_BUFSZ .EQU $ - ASCI1_BUF ; SIZE OF RING BUFFER
;
ASCI_CFG:
;
#IF (ASCISWAP)
;
ASCI1_CFG:
; ASCI CHANNEL B CONFIG
.DB 0 ; DEVICE NUMBER (SET DURING INIT)
.DB 0 ; ASCI TYPE (SET DURING INIT)
.DB 1 ; MODULE ID
.DB ASCI1_BASE ; BASE PORT
.DW ASCI1CFG ; LINE CONFIGURATION
.DW ASCI1_RCVBUF ; POINTER TO RCV BUFFER STRUCT
;
ASCI_CFGSIZ .EQU $ - ASCI_CFG ; SIZE OF ONE CFG TABLE ENTRY
;
ASCI0_CFG:
; ASCI CHANNEL A CONFIG
.DB 0 ; DEVICE NUMBER (SET DURING INIT)
.DB 0 ; ASCI TYPE (SET DURING INIT)
.DB 0 ; MODULE ID
.DB ASCI0_BASE ; BASE PORT
.DW ASCI0CFG ; LINE CONFIGURATION
.DW ASCI0_RCVBUF ; POINTER TO RCV BUFFER STRUCT
;
#ELSE
;
ASCI0_CFG:
; ASCI MODULE A CONFIG
; ASCI CHANNEL A CONFIG
.DB 0 ; DEVICE NUMBER (SET DURING INIT)
.DB 0 ; ASCI TYPE (SET DURING INIT)
.DB 0 ; MODULE ID
@ -808,7 +832,7 @@ ASCI0_CFG:
ASCI_CFGSIZ .EQU $ - ASCI_CFG ; SIZE OF ONE CFG TABLE ENTRY
;
ASCI1_CFG:
; ASCI MODULE B CONFIG
; ASCI CHANNEL B CONFIG
.DB 0 ; DEVICE NUMBER (SET DURING INIT)
.DB 0 ; ASCI TYPE (SET DURING INIT)
.DB 1 ; MODULE ID
@ -816,4 +840,7 @@ ASCI1_CFG:
.DW ASCI1CFG ; LINE CONFIGURATION
.DW ASCI1_RCVBUF ; POINTER TO RCV BUFFER STRUCT
;
#ENDIF
;
;
ASCI_CFGCNT .EQU ($ - ASCI_CFG) / ASCI_CFGSIZ

6
Source/HBIOS/ay38910.asm

@ -36,6 +36,12 @@ AY_RDAT .EQU $60
AY_RIN .EQU AY_RSEL+AY_RCSND
#ENDIF
;
#IF (AYMODE == AYMODE_MSX)
AY_RSEL .EQU $A0
AY_RDAT .EQU $A1
AY_RIN .EQU $A2
#ENDIF
;
;======================================================================
;
; REGISTERS

5
Source/HBIOS/cfg_dyno.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "DYNO"
;
PLATFORM .EQU PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180]
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
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
@ -48,6 +48,8 @@ KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
;
CTCENABLE .EQU FALSE ; ENABLE ZILOG CTC SUPPORT
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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
@ -79,6 +81,7 @@ DUARTENABLE .EQU FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM)
UARTENABLE .EQU FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
;
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
ASCISWAP .EQU FALSE ; ASCI: SWAP CHANNELS
ASCI0CFG .EQU DEFSERCFG ; ASCI 0: SERIAL LINE CONFIG
ASCI1CFG .EQU DEFSERCFG ; ASCI 1: SERIAL LINE CONFIG
;

6
Source/HBIOS/cfg_ezz80.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "EASYZ80"
;
PLATFORM .EQU PLT_EZZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180]
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)
@ -28,7 +28,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
MEMMGR .EQU MM_Z2 ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY)
@ -51,6 +51,8 @@ CTCPRECH .EQU 2 ; PRESCALE CHANNEL (0-3)
CTCTIMCH .EQU 3 ; TIMER CHANNEL (0-3)
CTCOSC .EQU 921600 ; CTC CLOCK FREQUENCY
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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

11
Source/HBIOS/cfg_master.asm

@ -11,7 +11,7 @@
#DEFINE PLATFORM_NAME "ROMWBW"
;
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180]
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)
@ -25,7 +25,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_NONE ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
MEMMGR .EQU MM_NONE ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
@ -40,6 +40,10 @@ Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
;
Z280_MEMWAIT .EQU 0 ; Z280: MEMORY WAIT STATES (0-3)
Z280_IOWAIT .EQU 1 ; Z280: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z280_INTWAIT .EQU 0 ; Z280: INT ACK WAIT STATUS (0-3)
;
N8_PPI0 .EQU $80 ; N8: FIRST PARALLEL PORT REGISTERS BASE ADR
N8_PPI1 .EQU $84 ; N8: SECOND PARALLEL PORT REGISTERS BASE ADR
N8_RTC .EQU $88 ; N8: RTC LATCH REGISTER ADR
@ -69,6 +73,8 @@ CTCPRECH .EQU 2 ; PRESCALE CHANNEL (0-3)
CTCTIMCH .EQU 3 ; TIMER CHANNEL (0-3)
CTCOSC .EQU 614400 ; CTC CLOCK FREQUENCY
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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
@ -119,6 +125,7 @@ UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
;
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
ASCISWAP .EQU FALSE ; ASCI: SWAP CHANNELS
ASCI0CFG .EQU DEFSERCFG ; ASCI 0: SERIAL LINE CONFIG
ASCI1CFG .EQU DEFSERCFG ; ASCI 1: SERIAL LINE CONFIG
;

7
Source/HBIOS/cfg_mk4.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "MARK IV"
;
PLATFORM .EQU PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180]
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
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
@ -28,7 +28,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
MEMMGR .EQU MM_Z180 ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
RAMBIAS .EQU 512 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
;
Z180_BASE .EQU $40 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
@ -51,6 +51,8 @@ CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT
CTCBASE .EQU $B0 ; CTC BASE I/O ADDRESS
CTCTIMER .EQU FALSE ; ENABLE CTC PERIODIC TIMER
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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
@ -94,6 +96,7 @@ UART4 .EQU TRUE ; UART: AUTO-DETECT 4UART UART
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
;
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
ASCISWAP .EQU FALSE ; ASCI: SWAP CHANNELS
ASCI0CFG .EQU DEFSERCFG ; ASCI 0: SERIAL LINE CONFIG
ASCI1CFG .EQU DEFSERCFG ; ASCI 1: SERIAL LINE CONFIG
;

7
Source/HBIOS/cfg_n8.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "N8"
;
PLATFORM .EQU PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180]
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
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
@ -28,7 +28,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_N8 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
MEMMGR .EQU MM_N8 ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
;
Z180_BASE .EQU $40 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
@ -54,6 +54,8 @@ CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT
CTCBASE .EQU $B0 ; CTC BASE I/O ADDRESS
CTCTIMER .EQU FALSE ; ENABLE CTC PERIODIC TIMER
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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
@ -97,6 +99,7 @@ UART4 .EQU TRUE ; UART: AUTO-DETECT 4UART UART
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
;
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
ASCISWAP .EQU FALSE ; ASCI: SWAP CHANNELS
ASCI0CFG .EQU DEFSERCFG ; ASCI 0: SERIAL LINE CONFIG
ASCI1CFG .EQU DEFSERCFG ; ASCI 1: SERIAL LINE CONFIG
;

7
Source/HBIOS/cfg_rcz180.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "RC2014"
;
PLATFORM .EQU PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180]
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
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
@ -28,7 +28,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
MEMMGR .EQU MM_Z180 ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
RAMBIAS .EQU 512 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
@ -51,6 +51,8 @@ CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT
CTCBASE .EQU $88 ; CTC BASE I/O ADDRESS
CTCTIMER .EQU FALSE ; ENABLE CTC PERIODIC TIMER
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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
@ -96,6 +98,7 @@ UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
;
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
ASCISWAP .EQU FALSE ; ASCI: SWAP CHANNELS
ASCI0CFG .EQU DEFSERCFG ; ASCI 0: SERIAL LINE CONFIG
ASCI1CFG .EQU DEFSERCFG ; ASCI 1: SERIAL LINE CONFIG
;

220
Source/HBIOS/cfg_rcz280.asm

@ -0,0 +1,220 @@
;
;==================================================================================================
; ROMWBW 2.X CONFIGURATION DEFAULTS FOR RC2014 Z280 (512K RAM/ROM CARD)
;==================================================================================================
;
; 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 "RC2014"
;
PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
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
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
;
CPUOSC .EQU 24000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_Z2 ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY)
MPGSEL_3 .EQU $7B ; Z2 MEM MGR BANK 3 PAGE SELECT REG (WRITE ONLY)
MPGENA .EQU $7C ; Z2 MEM MGR PAGING ENABLE REGISTER (BIT 0, WRITE ONLY)
;
Z280_MEMWAIT .EQU 0 ; Z280: MEMORY WAIT STATES (0-3)
Z280_IOWAIT .EQU 1 ; Z280: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z280_INTWAIT .EQU 0 ; Z280: INT ACK WAIT STATUS (0-3)
;
RTCIO .EQU $C0 ; RTC LATCH REGISTER ADR
;
KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT
KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
;
CTCENABLE .EQU FALSE ; ENABLE ZILOG CTC SUPPORT
CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT
CTCBASE .EQU $88 ; CTC BASE I/O ADDRESS
CTCTIMER .EQU FALSE ; ENABLE CTC PERIODIC TIMER
CTCMODE .EQU CTCMODE_TIM16 ; CTC MODE: CTCMODE_[NONE|CTR|TIM16|TIM256]
CTCPRE .EQU 256 ; PRESCALE CONSTANT (1-256)
CTCPRECH .EQU 2 ; PRESCALE CHANNEL (0-3)
CTCTIMCH .EQU 3 ; TIMER CHANNEL (0-3)
CTCOSC .EQU 7372800 ; CTC CLOCK FREQUENCY
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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
;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
;
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
;
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
;
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)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
;
DUARTENABLE .EQU FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM)
DUARTCNT .EQU 2 ; DUART: NUMBER OF CHIPS TO DETECT (1-2)
DUART0BASE .EQU $A0 ; DUART 0: BASE ADDRESS OF CHIP
DUART0ACFG .EQU DEFSERCFG ; DUART 0A: SERIAL LINE CONFIG
DUART0BCFG .EQU DEFSERCFG ; DUART 0B: SERIAL LINE CONFIG
DUART1BASE .EQU $40 ; DUART 1: BASE ADDRESS OF CHIP
DUART1ACFG .EQU DEFSERCFG ; DUART 1A: SERIAL LINE CONFIG
DUART1BCFG .EQU DEFSERCFG ; DUART 1B: SERIAL LINE CONFIG
;
UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA ONBOARD UART
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 TRUE ; UART: AUTO-DETECT RC UART
;
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
;
ACIAENABLE .EQU TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
ACIADEBUG .EQU FALSE ; ACIA: ENABLE DEBUG OUTPUT
ACIACNT .EQU 1 ; ACIA: NUMBER OF CHIPS TO DETECT (1-2)
ACIA0BASE .EQU $80 ; ACIA 0: REGISTERS BASE ADR
ACIA0CLK .EQU 7372800 ; ACIA 0: OSC FREQ IN HZ
ACIA0DIV .EQU 1 ; ACIA 0: SERIAL CLOCK DIVIDER
ACIA0CFG .EQU DEFSERCFG ; ACIA 0: SERIAL LINE CONFIG (SEE STD.ASM)
ACIA1BASE .EQU $40 ; ACIA 1: REGISTERS BASE ADR
ACIA1CLK .EQU 7372800 ; ACIA 1: OSC FREQ IN HZ
ACIA1DIV .EQU 1 ; ACIA 1: SERIAL CLOCK DIVIDER
ACIA1CFG .EQU DEFSERCFG ; ACIA 1: SERIAL LINE CONFIG (SEE STD.ASM)
;
SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
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]
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
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]
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
SIO1ACTCC .EQU -1 ; SIO 1A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
SIO1BCLK .EQU 7372800 ; 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)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
;
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
MDTRACE .EQU 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
;
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|EPWDC]
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
;
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
;
IDEENABLE .EQU FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
IDETRACE .EQU 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
IDECNT .EQU 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH
IDE0MODE .EQU IDEMODE_RC ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC]
IDE0BASE .EQU $10 ; IDE 0: IO BASE ADDRESS
IDE0DATLO .EQU $00 ; IDE 0: DATA LO PORT FOR 16-BIT I/O
IDE0DATHI .EQU $00 ; IDE 0: DATA HI PORT FOR 16-BIT I/O
IDE0A8BIT .EQU TRUE ; IDE 0A (MASTER): 8 BIT XFER
IDE0B8BIT .EQU TRUE ; IDE 0B (MASTER): 8 BIT XFER
IDE1MODE .EQU IDEMODE_NONE ; IDE 1: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC]
IDE1BASE .EQU $00 ; IDE 1: IO BASE ADDRESS
IDE1DATLO .EQU $00 ; IDE 1: DATA LO PORT FOR 16-BIT I/O
IDE1DATHI .EQU $00 ; IDE 1: DATA HI PORT FOR 16-BIT I/O
IDE1A8BIT .EQU TRUE ; IDE 1A (MASTER): 8 BIT XFER
IDE1B8BIT .EQU TRUE ; IDE 1B (MASTER): 8 BIT XFER
IDE2MODE .EQU IDEMODE_NONE ; IDE 2: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC]
IDE2BASE .EQU $00 ; IDE 2: IO BASE ADDRESS
IDE2DATLO .EQU $00 ; IDE 2: DATA LO PORT FOR 16-BIT I/O
IDE2DATHI .EQU $00 ; IDE 2: DATA HI PORT FOR 16-BIT I/O
IDE2A8BIT .EQU TRUE ; IDE 2A (MASTER): 8 BIT XFER
IDE2B8BIT .EQU TRUE ; IDE 2B (MASTER): 8 BIT XFER
;
PPIDEENABLE .EQU FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
PPIDETRACE .EQU 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPIDECNT .EQU 1 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP
PPIDE0BASE .EQU $20 ; PPIDE 0: PPI REGISTERS BASE ADR
PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
PPIDE1BASE .EQU $00 ; PPIDE 1: PPI REGISTERS BASE ADR
PPIDE1A8BIT .EQU FALSE ; PPIDE 1A (MASTER): 8 BIT XFER
PPIDE1B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
PPIDE2BASE .EQU $00 ; PPIDE 2: PPI REGISTERS BASE ADR
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]
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
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)
;
HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.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)
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
SN7CLK .EQU 7372800 / 4 ; DEFAULT TO CPUOSC / 4
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU 7372800 / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

6
Source/HBIOS/cfg_rcz80.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "RC2014"
;
PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180]
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)
@ -28,7 +28,7 @@ INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
MEMMGR .EQU MM_Z2 ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY)
@ -50,6 +50,8 @@ CTCPRECH .EQU 2 ; PRESCALE CHANNEL (0-3)
CTCTIMCH .EQU 3 ; TIMER CHANNEL (0-3)
CTCOSC .EQU CPUOSC ; CTC CLOCK FREQUENCY
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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

6
Source/HBIOS/cfg_sbc.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "SBC"
;
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180]
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)
@ -28,7 +28,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
MEMMGR .EQU MM_SBC ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
;
@ -48,6 +48,8 @@ CTCPRECH .EQU 2 ; PRESCALE CHANNEL (0-3)
CTCTIMCH .EQU 3 ; TIMER CHANNEL (0-3)
CTCOSC .EQU 614400 ; CTC CLOCK FREQUENCY
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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

7
Source/HBIOS/cfg_scz180.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "SCZ180"
;
PLATFORM .EQU PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180]
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
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
@ -28,7 +28,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
MEMMGR .EQU MM_Z180 ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
RAMBIAS .EQU 512 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
;
Z180_BASE .EQU $C0 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
@ -46,6 +46,8 @@ CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT
CTCBASE .EQU $88 ; CTC BASE I/O ADDRESS
CTCTIMER .EQU FALSE ; ENABLE CTC PERIODIC TIMER
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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
@ -91,6 +93,7 @@ UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
;
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
ASCISWAP .EQU FALSE ; ASCI: SWAP CHANNELS
ASCI0CFG .EQU DEFSERCFG ; ASCI 0: SERIAL LINE CONFIG
ASCI1CFG .EQU DEFSERCFG ; ASCI 1: SERIAL LINE CONFIG
;

6
Source/HBIOS/cfg_zeta.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "ZETA"
;
PLATFORM .EQU PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z80 ; CPU_[Z80|Z180]: CPU FAMILY
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
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
@ -28,7 +28,7 @@ INTMODE .EQU 0 ; INTERRUPT MODE: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
MEMMGR .EQU MM_SBC ; MM_[SBC|Z2|N8|Z180]: MEMORY MANAGER
MEMMGR .EQU MM_SBC ; MM_[SBC|Z2|N8|Z180|Z280|ZRC]: MEMORY MANAGER
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
;
@ -40,6 +40,8 @@ KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
;
CTCENABLE .EQU FALSE ; ENABLE ZILOG CTC SUPPORT
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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

4
Source/HBIOS/cfg_zeta2.asm

@ -14,7 +14,7 @@
#DEFINE PLATFORM_NAME "ZETA V2"
;
PLATFORM .EQU PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180]
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)
@ -51,6 +51,8 @@ CTCPRECH .EQU 0 ; PRESCALE CHANNEL (0-3)
CTCTIMCH .EQU 1 ; TIMER CHANNEL (0-3)
CTCOSC .EQU 921600 ; CTC CLOCK FREQUENCY
;
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
;
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

30
Source/HBIOS/diskdefs

@ -345,9 +345,9 @@ diskdef wbw_fd120
os 2.2
end
# RomWBW 8320KB Hard Disk Slice
# RomWBW 8320KB Hard Disk Slice (512 directory entry format)
# Legacy format, 512 dir entries, 16,630 sectors / slice
diskdef wbw_hd
diskdef wbw_hd512
seclen 512
tracks 1040
sectrk 16
@ -358,8 +358,8 @@ diskdef wbw_hd
os 2.2
end
# First 4 slices of wbw_hd
diskdef wbw_hd0
# First 4 slices of wbw_hd512
diskdef wbw_hd512_0
seclen 512
tracks 1040
sectrk 16
@ -370,7 +370,7 @@ diskdef wbw_hd0
os 2.2
end
diskdef wbw_hd1
diskdef wbw_hd512_1
seclen 512
tracks 2080
sectrk 16
@ -381,7 +381,7 @@ diskdef wbw_hd1
os 2.2
end
diskdef wbw_hd2
diskdef wbw_hd512_2
seclen 512
tracks 3120
sectrk 16
@ -392,7 +392,7 @@ diskdef wbw_hd2
os 2.2
end
diskdef wbw_hd3
diskdef wbw_hd512_3
seclen 512
tracks 4160
sectrk 16
@ -404,10 +404,10 @@ diskdef wbw_hd3
end
# RomWBW 8MB Hard Disk
# RomWBW 8MB Hard Disk (1024 directory entry format)
# New format, 1024 dir entries, 16,384 sectors / slice
# Pure filesystem image, no prefix
diskdef wbw_hdnew
# Pure filesystem image, no MBR prefix
diskdef wbw_hd1024
seclen 512
tracks 1024
sectrk 16
@ -418,9 +418,9 @@ diskdef wbw_hdnew
os 2.2
end
# First 4 slices of wbw_hdnew
# First 4 slices of wbw_hd1024
# Assumes 128KB prefix (256 sectors)
diskdef wbw_hdnew0
diskdef wbw_hd1024_0
seclen 512
tracks 1040
sectrk 16
@ -431,7 +431,7 @@ diskdef wbw_hdnew0
os 2.2
end
diskdef wbw_hdnew1
diskdef wbw_hd1024_1
seclen 512
tracks 2064
sectrk 16
@ -442,7 +442,7 @@ diskdef wbw_hdnew1
os 2.2
end
diskdef wbw_hdnew2
diskdef wbw_hd1024_2
seclen 512
tracks 3112
sectrk 16
@ -453,7 +453,7 @@ diskdef wbw_hdnew2
os 2.2
end
diskdef wbw_hdnew3
diskdef wbw_hd1024_3
seclen 512
tracks 4136
sectrk 16

75
Source/HBIOS/eipc.inc

@ -0,0 +1,75 @@
;
; Z80 EIPC (Z84C15) REGISTERS
;
EIPC_SCRP .EQU $EE ; SYSTEM CONTROL REGISTER POINTER
EIPC_SCDP .EQU $EF ; SYSTEM CONTROL DATA PORT
EIPC_WDTMR .EQU $F0 ; WATCHDOG TIMER MASTER REGISTER
EIPC_WDTCR .EQU $F1 ; WATCHDOG TIMER COMMAND REGISTER
EIPC_INTPR .EQU $F4 ; INTERRUPT PRIORITY REGISTER
;
; SYSTEM CONTROL REGISTERS (REGISTER NUMBER TO BE WRITTEN TO EIPC_SCRP)
;
EIPC_WCR .EQU $00 ; WAIT STATE CONTROL REGISTER
EIPC_MWBR .EQU $01 ; MEMORY WAIT BOUNDARY REGISTER
EIPC_CSBR .EQU $02 ; CHIP SELECT BOUNDARY REGISTER
EIPC_MCR .EQU $03 ; MISCELLANEOUS CONTROL REGISTER
;
; WAIT STATE VALUES (FOR EIPC_WCR)
;
EIPC_IO_0WS .EQU $00 ; NO (ZERO) I/O WAIT STATES
EIPC_IO_2WS .EQU $01 ; 2 I/O WAIT STATES
EIPC_IO_4WS .EQU $02 ; 4 I/O WAIT STATES
EIPC_IO_6WS .EQU $03 ; 6 I/O WAIT STATES
EIPC_MEM_OWS .EQU $00 ; NO (ZERO) MEMORY WAIT STATES
EIPC_MEM_1WS .EQU $04 ; 1 MEMORY WAIT STATE
EIPC_MEM_2WS .EQU $08 ; 2 MEMORY WAIT STATES
EIPC_MEM_3WS .EQU $0C ; 3 MEMORY WAIT STATES
EIPC_OCF_0WS .EQU $00 ; NO ADDITIONAL WAIT ON OP-CODE FETCH
EIPC_OCF_1WS .EQU $10 ; +1 WAIT STATE ON OP-CODE FETCH
EIPC_INT_0WS .EQU $00 ; NO WAIT ON INTERRUPT VECTOR READ
EIPC_INT_1WS .EQU $20 ; 1 WAIT STATE ON INT. VECTOR READ
EIPC_CHAIN_0WS .EQU $00 ; 0 WAIT ON INT ACK. / 0 WAIT ON RETI
EIPC_CHAIN_2WS .EQU $40 ; 2 WAIT ON INT ACK. / 0 WAIT ON RETI
EIPC_CHAIN_4WS .EQU $80 ; 4 WAIT ON INT ACK. / 2 WAIT ON RETI
EIPC_CHAIN_6WS .EQU $C0 ; 6 WAIT ON INT ACK. / 4 WAIT ON RETI
;
; MISCELLANEOUS CONTROL REGISTER VALUES
;
EIPC_CS0_DIS .EQU $00 ; DISABLE /CS0
EIPC_CS0_ENA .EQU $01 ; ENABLE /CS0
EIPC_CS1_DIS .EQU $00 ; DISABLE /CS1
EIPC_CS1_ENA .EQU $02 ; ENABLE /CS1
EIPC_32CRC_DIS .EQU $00 ; DISABLE 32-BIT CRC FOR SIO CHANNEL A
EIPC_32CRC_ENA .EQU $04 ; ENABLE 32-BIT CRC FOR SIO CHANNEL A
EIPC_RSTOUT_DIS .EQU $08 ; DISABLE RESET OUTPUT
EIPC_RSTOUT_ENA .EQU $00 ; ENABLE RESET OUTPUT
EIPC_CLKDIV1 .EQU $10 ; DIVIDE XTAL/CGC CLOCK BY ONE
EIPC_CLKDIV2 .EQU $00 ; DIVIDE XTAL/CGC CLOCK BY TWO
;
; WATCHDOG TIMER MASTER REGISTER VALUES
;
EIPC_WDT_CONST .EQU $03 ; MUST SET LOWER THREE BITS TO 011
EIPC_HALT_IDLE1 .EQU $00 ; HALT / POWER DOWN MODE - IDLE 1 MODE
EIPC_HALT_IDLE2 .EQU $08 ; HALT / POWER DOWN MODE - IDLE 2 MODE
EIPC_HALT_STOP .EQU $10 ; HALT / POWER DOWN MODE - STOP MODE
EIPC_HALT_RUN .EQU $18 ; HALT / POWER DOWN MODE - RUN MODE
EIPC_WDT_P2_16 .EQU $00 ; SET WATCHDOG PERIOD TO TOC * 2^16
EIPC_WDT_P2_18 .EQU $20 ; SET WATCHDOG PERIOD TO TOC * 2^18
EIPC_WDT_P2_20 .EQU $40 ; SET WATCHDOG PERIOD TO TOC * 2^20
EIPC_WDT_P2_22 .EQU $60 ; SET WATCHDOG PERIOD TO TOC * 2^22
EIPC_WDTE .EQU $80 ; ENABLE WATCHDOG TIMER
;
; WATCHDOG TIMER COMMAND REGISTER VALUES
;
EIPC_DIS_WDT .EQU $B1 ; DISABLE WATCHDOG TIMER
EIPC_CLR_WDT .EQU $4E ; CLEAR WATCHDOG TIMER
EIPC_HLT_MODE .EQU $DB ; CHANGE HALT MODE
;
; INTERRUPT PRIORITY REGISTER VALUES
;
EIPC_CTC_SIO_PIO .EQU $00 ; PRIORITY HIGH TO LOW: CTC, SIO, PIO
EIPC_SIO_CTC_PIO .EQU $01 ; PRIORITY HIGH TO LOW: SIO, CTC, PIO
EIPC_CTC_PIO_SIO .EQU $02 ; PRIORITY HIGH TO LOW: CTC, PIO, SIO
EIPC_PIO_SIO_CTC .EQU $03 ; PRIORITY HIGH TO LOW: PIO, SIO, CTC
EIPC_PIC_CTC_SIO .EQU $04 ; PRIORITY HIGH TO LOW: PIO, CTC, SIO
EIPC_SIO_PIO_CTC .EQU $05 ; PRIORITY HIGH TO LOW: SIO, PIO, CTC

263
Source/HBIOS/hbios.asm

@ -411,6 +411,20 @@ HBX_BNKSEL1:
OUT0 (Z180_BBR),A ; WRITE TO BANK BASE
RET ; DONE
#ENDIF
#IF (MEMMGR == MM_Z280)
; TBD
RET ; DONE
#ENDIF
#IF (MEMMGR == MM_ZRC)
BIT 7,A ; BIT 7 SET REQUESTS RAM PAGE
JR Z,HBX_ROM ; NOT SET, SELECT ROM PAGE
RES 7,A ; RAM PAGE REQUESTED: CLEAR ROM BIT
ADD A,$10 ; ADD 16 x 32K - RAM STARTS FROM 512K
;
HBX_ROM:
OUT ($1F),A ; HCS WRITE TO THE BANK CONTROL REGISTER
RET ; DONE
#ENDIF
;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; Copy Data - Possibly between banks. This resembles CP/M 3, but
@ -427,7 +441,17 @@ HBX_BNKSEL1:
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;
HBX_BNKCPY:
#IF (INTMODE > 0)
#IF (CPUFAM == CPU_Z280)
PUSH IY
PUSH BC
;LD C,$00
LD C,Z280_MSR
;LDCTL IY,(C)
.DB $FD,$ED,$66
POP BC
PUSH IY
DI
#ELSE
LD A,I
DI
PUSH AF
@ -461,7 +485,15 @@ HBX_BC_LAST:
LD SP,$FFFF ; RESTORE STACK
HBX_BC_SP .EQU $ - 2 ; ... TO ORIGINAL VALUE
#IF (INTMODE > 0)
#IF (CPUFAM == CPU_Z280)
POP IY
PUSH BC
LD C,Z280_MSR
;LDCTL (C),IY
.DB $FD,$ED,$6E
POP BC
POP IY
#ELSE
POP AF
JP PO,$+4
EI
@ -824,19 +856,29 @@ HB_START:
;
LD SP,HBX_LOC ; SETUP INITIAL STACK JUST BELOW HBIOS PROXY
;
;#IF (CPUFAM == CPU_Z280)
; LD C,$12 ; CACHE CONTROL REGISTER
; LD HL,$0060 ; DISABLE INSTRUCTION CACHE
; ;LDCTL (C),HL ; SET IT (8 BITS)
; .DB $ED,$6E
; ;PCACHE ; PURGE ANY REMNANTS OF CACHE
; .DB $ED,$65
;#ENDIF
#IF (CPUFAM == CPU_Z280)
;LD C,Z280_CCR ; CACHE CONTROL REGISTER
;LD HL,$0060 ; DISABLE INSTRUCTION CACHE
;;LDCTL (C),HL ; SET IT (8 BITS)
;.DB $ED,$6E
;;PCACHE ; PURGE ANY REMNANTS OF CACHE
;.DB $ED,$65
;
LD C,Z280_BTCR ; BUS TIMING AND CONTROL REGISTER
LD HL,$0033 ; 3 I/O WAIT STATES ADDED
;LD HL,$00F3 ; 3 I/O W/S & 3 INT ACK W/S
;LDCTL (C),HL ; SET IT (8 BITS)
.DB $ED,$6E
#ENDIF
;
#IF (CPUFAM == CPU_Z180)
; SET BASE FOR CPU IO REGISTERS
; DO NOT USE Z180_ICR FROM Z180.INC BECAUSE THE ICR
; IS NOT YET AT THE RUNNING LOCATION. AT RESET, THE Z180
; REGISTER BASE I/O ADDRESS IS ZERO, SO INITIALLY, ICR IS
; AT $3F.
LD A,Z180_BASE
OUT0 (Z180_ICR),A
OUT0 ($3F),A ; AT RESET, ICR IS AT $3F
DIAG(%00000010)
@ -878,6 +920,22 @@ HB_START:
;
#ENDIF
;
#IF (EIPCENABLE)
LD A,(EIPC_WDT_CONST | EIPC_HALT_RUN | EIPC_WDT_P2_22)
OUT (EIPC_WDTMR),A ; CLEAR WDTE BIT (DISABLE WATCHDOG)
LD A,EIPC_DIS_WDT ; DISABLE WDT - SECOND KEY
OUT (EIPC_WDTCR),A
LD A,EIPC_WCR ; SET SYSTEM CONTROL REGISTER POINTER
; (SCRP) TO POINT TO WAIT STATE
OUT (EIPC_SCRP),A ; CONTROL REGISTER (WCR)
LD A,(EIPC_IO_0WS | EIPC_MEM_OWS | EIPC_OCF_0WS | EIPC_INT_0WS | EIPC_CHAIN_0WS)
OUT (EIPC_SCDP),A ; NO WAIT STATES
LD A,EIPC_MCR ; SET SCRP TO POINT TO MISCELLANEOUS
OUT (EIPC_SCRP),A ; CONTROL REGISTER (MCR)
LD A,EIPC_CLKDIV1 ; DIVIDE CLOCK BY 1, /CS0 DISABLE
OUT (EIPC_SCDP),A ; SET SYSTEM CONTROL DATA PORT (SCDP)
#ENDIF
;
#IF (MEMMGR == MM_Z2)
; SET PAGING REGISTERS
#IFDEF ROMBOOT
@ -959,6 +1017,7 @@ HB_START:
LD DE,0
LD BC,$8000
CALL HBX_BNKCPY
;DI
;
; TRANSITION TO HBIOS IN RAM BANK
;
@ -1090,12 +1149,13 @@ SAVE_REC_M:
;
; DISCOVER CPU TYPE
;
; THIS CODE IS DERIVED FROM UNA BY JOHN COFFMAN
; SOME OF THIS CODE IS DERIVED FROM UNA BY JOHN COFFMAN
;
; 0: Z80
; 1: Z80180 - ORIGINAL Z180 (EQUIVALENT TO HD64180)
; 2: Z8S180 - ORIGINAL S-CLASS, REV. K, AKA SL1960, NO ASCI BRG
; 3: Z8S180 - REVISED S-CLASS, REV. N, W/ ASCI BRG
; 4: Z8280
;
LD HL,0 ; L = 0 MEANS Z80
;
@ -1126,6 +1186,18 @@ SAVE_REC_M:
;
#ENDIF
;
#IF (CPUFAM == CPU_Z280)
;
; TEST FOR Z280 PER ZILOG DOC
LD A,$40 ; INITIALIZE THE OPERAND
.DB $CB,$37 ; THIS INSTRUCTION WILL SET THE S FLAG
; ON THE Z80 CPU AND CLEAR THE S FLAG
; ON THE Z280 MPU.
JP M,HB_CPU1 ; IF Z80, SKIP AHEAD
LD L,4 ; WE ARE Z280
;
#ENDIF
;
HB_CPU1:
LD A,L
LD (HB_CPUTYPE),A
@ -1191,6 +1263,31 @@ HB_CPU2:
;
#ENDIF
;
#IF (CPUFAM == CPU_Z280)
;
LD C,Z280_BTCR ; BUS TIMING AND CONTROL REG
;LDCTL HL,(C) ; GET IT
.DB $ED,$66
LD A,L ; PUT IN A
AND %00111100 ; CLEAR DC AND I/O FIELDS
OR Z280_INTWAIT << 6 ; SET INT ACK WAIT STATES
OR Z280_IOWAIT ; SET I/O WAIT STATES
LD L,A ; BACK TO L
;LDCTL (C),HL ; SET IT
.DB $ED,$6E
;
LD C,Z280_BTIR ; BUS TIMING AND INIT REG
;LDCTL HL,(C) ; GET IT
.DB $ED,$66
LD A,L ; PUT IN A
AND %11110011 ; CLEAR DC AND I/O FIELDS
OR Z280_MEMWAIT << 2 ; SET LOW MEM WAIT STATES
LD L,A ; BACK TO L
;LDCTL (C),HL ; SET IT
.DB $ED,$6E
;
#ENDIF
;
#IF (INTMODE == 2)
; SETUP Z80 IVT AND INT MODE 2
LD A,HBX_IVT >> 8 ; SETUP HI BYTE OF IVT ADDRESS
@ -1267,7 +1364,6 @@ HB_CPU2:
;
#ENDIF
;
;
; INITIALIZE HEAP STORAGE
;
; INITIALIZE POINTERS
@ -1451,31 +1547,71 @@ HB_SPDTST:
CALL PRTHEXBYTE
#ENDIF
;
#IF (CPUFAM == CPU_Z280)
CALL PRTSTRD
.TEXT ", BUS @ $"
LD C,Z280_BTIR ; BUS TIMING AND CTL REG
;LDCTL HL,(C) ; GET IT
.DB $ED,$66
LD A,L ; MOVE TO A
AND %00000011 ; ISOLATE CS FIELD
LD HL,(CB_CPUKHZ) ; GET CPU SPEED
CP %00000001 ; BUS @ 1/1
JR Z,HB_Z280BUS ; GOT IT, SHOW IT
SRL H ; DIVIDE
RR L ; ... BY 2
CP %00000000 ; BUS @ 1/2
JR Z,HB_Z280BUS ; GOT IT, SHOW IT
SRL H ; DIVIDE
RR L ; ... BY 2
CP %00000010 ; BUS @ 1/4
JR Z,HB_Z280BUS ; GOT IT, SHOW IT
PRTS("???$") ; INVALID VALUE
JR HB_Z280BUS1 ; CONTINUE
HB_Z280BUS:
CALL PRTD3M ; PRINT AS DECIMAL WITH 3 DIGIT MANTISSA
HB_Z280BUS1:
PRTS("MHz$") ; SUFFIX
#ENDIF
;
; DISPLAY CPU CONFIG
;
CALL NEWLINE
XOR A
#IF (CPUFAM == CPU_Z180)
LD A,Z180_MEMWAIT
#ELSE
LD A,0
#ENDIF
#IF (CPUFAM == CPU_Z280)
LD A,Z280_MEMWAIT
#ENDIF
CALL PRTDECB
CALL PRTSTRD
.TEXT " MEM W/S, $"
LD A,1
#IF (CPUFAM == CPU_Z180)
LD A,Z180_IOWAIT + 1
#ELSE
LD A,1
#ENDIF
#IF (CPUFAM == CPU_Z280)
LD A,Z280_IOWAIT + 1
#ENDIF
CALL PRTDECB
CALL PRTSTRD
.TEXT " I/O W/S$"
#IF (CPUFAM == CPU_Z280)
CALL PRTSTRD
.TEXT ", $"
LD A,Z280_INTWAIT
CALL PRTDECB
CALL PRTSTRD
.TEXT " INT W/S$"
#ENDIF
#IF (INTMODE > 0)
CALL PRTSTRD
.TEXT ", INT MODE $"
LD A,INTMODE
CALL PRTDECB
#ENDIF
;
; DISPLAY MEMORY CONFIG
;
@ -1489,6 +1625,34 @@ HB_SPDTST:
CALL PRTSTRD
.TEXT "KB RAM$"
;
#IF (CPUFAM == CPU_Z280)
CALL NEWLINE
PRTS("Z280: $")
PRTS("MSR=$")
LD C,Z280_MSR ; MASTER STATUS REGISTER
;LDTCL HL,(C) ; GET VALUE
.DB $ED,$66
CALL PRTHEXWORDHL
CALL PC_SPACE
PRTS("BTCR=$")
LD C,Z280_BTCR ; BUS TIMING AND CONTROL REGISTER
;LDTCL HL,(C) ; GET VALUE
.DB $ED,$66
CALL PRTHEXWORDHL
CALL PC_SPACE
PRTS("BTIR=$")
LD C,Z280_BTIR ; BUS TIMING AND CONTROL REGISTER
;LDTCL HL,(C) ; GET VALUE
.DB $ED,$66
CALL PRTHEXWORDHL
CALL PC_SPACE
PRTS("CCR=$")
LD C,Z280_CCR ; CACHE CONTROL REGISTER
;LDTCL HL,(C) ; GET VALUE
.DB $ED,$66
CALL PRTHEXWORDHL
#ENDIF
;
; LOW BATTERY DIAGNOSTIC MESSAGE
;
#IF (BATCOND)
@ -2782,15 +2946,34 @@ SYS_SETSECS:
;
SYS_PEEK:
#IF (INTMODE == 1)
#IF (CPUFAM == CPU_Z280)
PUSH IY
;LD C,$00
LD C,Z280_MSR
;LDCTL IY,(C)
.DB $FD,$ED,$66
PUSH IY
DI
#ELSE
LD A,I
DI
PUSH AF
#ENDIF
#ENDIF
CALL HBX_PEEK ; IMPLEMENTED IN PROXY
#IF (INTMODE == 1)
#IF (CPUFAM == CPU_Z280)
;LD C,$00
LD C,Z280_MSR
POP IY
;LDCTL (C),IY
.DB $FD,$ED,$6E
POP IY
#ELSE
POP AF
JP PO,$+4
EI
#ENDIF
#ENDIF
XOR A
RET
@ -2804,15 +2987,32 @@ SYS_PEEK:
;
SYS_POKE:
#IF (INTMODE == 1)
#IF (CPUFAM == CPU_Z280)
PUSH IY
LD C,Z280_MSR
;LDCTL IY,(C)
.DB $FD,$ED,$66
PUSH IY
DI
#ELSE
LD A,I
DI
PUSH AF
#ENDIF
#ENDIF
CALL HBX_POKE ; IMPLEMENTED IN PROXY
#IF (INTMODE == 1)
#IF (CPUFAM == CPU_Z280)
LD C,Z280_MSR
POP IY
;LDCTL (C),IY
.DB $FD,$ED,$6E
POP IY
#ELSE
POP AF
JP PO,$+4
EI
#ENDIF
#ENDIF
XOR A
RET
@ -3568,21 +3768,21 @@ SIZ_AY38910 .EQU $ - ORG_AY38910
;
HB_CPUSPD:
;
#IF (DSRTCENABLE)
#IF (DSRTCENABLE & ((CPUFAM == CPU_Z80) | (CPUFAM == CPU_Z180)))
;
LD A,(DSRTC_STAT) ; GET RTC STATUS
OR A ; SET FLAGS
RET NZ ; NOT ZERO IS ERROR
;
HB_CPUSPD1:
#IF (CPUFAM == CPU_Z180)
#IF (CPUFAM == CPU_Z180)
; USE MEM W/S = 2 AND I/O W/S = 3 FOR TEST
IN0 A,(Z180_DCNTL)
PUSH AF
LD A,$B0
;LD A,$F0
OUT0 (Z180_DCNTL),A
#ENDIF
#ENDIF
; WAIT FOR AN INITIAL TICK TO ALIGN, THEN WAIT
; FOR SECOND TICK AND TO GET A FULL ONE SECOND LOOP COUNT
@ -3592,11 +3792,11 @@ HB_CPUSPD1:
LD (HB_CURSEC),A ; SAVE NEW VALUE
CALL HB_WAITSEC ; WAIT FOR SECONDS TICK
;
#IF (CPUFAM == CPU_Z180)
#IF (CPUFAM == CPU_Z180)
; RESTORE W/S SETTINGS FROM BEFORE TEST
POP AF
OUT0 (Z180_DCNTL),A
#ENDIF
#ENDIF
;
LD A,H
OR L
@ -3627,7 +3827,7 @@ HB_WAITSEC:
LD DE,0 ; INIT LOOP COUNTER
HB_WAITSEC1:
;
#IF (CPUFAM == CPU_Z80)
#IF (CPUFAM == CPU_Z80)
; LOOP TARGET IS 4000 T-STATES, SO CPU FREQ IN KHZ = LOOP COUNT * 4
CALL DLY32
CALL DLY16
@ -3636,9 +3836,9 @@ HB_WAITSEC1:
SBC HL,HL ; 15 TSTATES
INC HL ; 6 TSTATES
INC HL ; 6 TSTATES
#ENDIF
#ENDIF
;
#IF (CPUFAM == CPU_Z180)
#IF (CPUFAM == CPU_Z180)
; LOOP TARGET IS 4000 T-STATES, SO CPU FREQ IN KHZ = LOOP COUNT * 4
CALL DLY2
ADD IX,BC ; 10 + 4 = 14 TSTATES
@ -3646,7 +3846,7 @@ HB_WAITSEC1:
NOP ; 5 TSTATES
NOP ; 5 TSTATES
NOP ; 5 TSTATES
#ENDIF
#ENDIF
;
PUSH DE ; SAVE COUNTER
CALL HB_RDSEC ; GET SECONDS
@ -3669,7 +3869,7 @@ HB_RDSEC:
LD A,E ; VALUE TO A
RET
;
#ELSE
#ELSE
;
RET ; NO RTC, ABORT
;
@ -4261,10 +4461,11 @@ PS_PAD1:
DJNZ PS_PAD1
RET
;
HB_CPU_STR: .TEXT " Z80$" ; HB_STRZ80
.TEXT " Z80180$" ; HB_STRZ180
.TEXT " Z8S180-K$" ; HB_STRZS180K
.TEXT " Z8S180-N$" ; HB_STRZS180N
HB_CPU_STR: .TEXT " Z80$"
.TEXT " Z80180$"
.TEXT " Z8S180-K$"
.TEXT " Z8S180-N$"
.TEXT " Z80280$"
;
PS_STRNUL .TEXT "--$" ; DISPLAY STRING FOR NUL VALUE
;

12
Source/HBIOS/std.asm

@ -80,6 +80,8 @@ MM_SBC .EQU 1 ; ORIGINAL N8VEM/RBC Z80 SBC BANKED MEMORY
MM_Z2 .EQU 2 ; 16K X 4 BANKED MEMORY INTRODUCED ON ZETA2
MM_N8 .EQU 3 ; Z180 CUSTOMIZED FOR N8 MEMORY EXTENSIONS
MM_Z180 .EQU 4 ; Z180 NATIVE MEMORY MANAGER
MM_Z280 .EQU 5 ; Z280 NATIVE MEMORY MANAGER
MM_ZRC .EQU 6 ; ZRC BANK SWITCHING
;
; BOOT STYLE
;
@ -183,6 +185,7 @@ AYMODE_N8 .EQU 1 ; N8 BUILT-IN SOUND
AYMODE_SCG .EQU 2 ; SCG ECB BOARD
AYMODE_RCZ80 .EQU 3 ; RC2014 SOUND MODULE BY ED BRINDLEY ON Z80
AYMODE_RCZ180 .EQU 4 ; RC2014 SOUND MODULE BY ED BRINDLEY ON Z180
AYMODE_MSX .EQU 5 ; RC2014 SOUND MODULE REV6 BY ED BRINDLEY ON Z80/Z180 AT MSX PORTS
;
; TMS VIDEO MODE SELECTIONS
;
@ -330,6 +333,12 @@ FORCECON .EQU 0 ; DEFAULT IS TO FOLLOW NORMAL SEQUENCE
#IF (CPUFAM == CPU_Z180)
#INCLUDE "z180.inc"
#ENDIF
#IF (CPUFAM == CPU_Z280)
#INCLUDE "z280.inc"
#ENDIF
#IF (EIPCENABLE)
#INCLUDE "eipc.inc"
#ENDIF
#ENDIF
;
; SETUP DEFAULT CPU SPEED VALUES
@ -345,6 +354,9 @@ CPUKHZ .SET CPUKHZ / 2 ; ADJUST FOR HALF SPEED OPERATION
CPUKHZ .SET CPUKHZ * 2 ; ADJUST FOR DOUBLE SPEED OPERATION
#ENDIF
#ENDIF
#IF (CPUFAM == CPU_Z280)
CPUKHZ .SET CPUKHZ / 2 ; Z180 PHI IS ALWAYS 1/2 OSC
#ENDIF
#ENDIF
;
CPUMHZ .EQU CPUKHZ / 1000 ; CPU FREQ IN MHZ

35
Source/HBIOS/tms.asm

@ -19,12 +19,10 @@ TMSCTRL1: .EQU 1 ; CONTROL BITS
TMSINTEN: .EQU 5 ; INTERRUPT ENABLE BIT
#IF TMSTIMENABLE
.ECHO "TMS INTERRUPTS ENABLED"
.ECHO "TMS INTERRUPTS ENABLED\n"
#ENDIF
#IF (TMSMODE == TMSMODE_RC)
;TMS_DATREG .EQU $BE ; READ/WRITE DATA
;TMS_CMDREG .EQU $BF ; READ STATUS / WRITE REG SEL
TMS_DATREG .EQU $98 ; READ/WRITE DATA
TMS_CMDREG .EQU $99 ; READ STATUS / WRITE REG SEL
TMS_PPIA .EQU 0 ; PPI PORT A
@ -817,6 +815,22 @@ TMS_INTHNDL:
TMS_POS .DW 0 ; CURRENT DISPLAY POSITION
TMS_CURSAV .DB 0 ; SAVES ORIGINAL CHARACTER UNDER CURSOR
TMS_BUF .FILL 256,0 ; COPY BUFFER
;
;==================================================================================================
; TMS DRIVER - INSTANCE DATA
;==================================================================================================
;
TMS_IDAT:
.DB TMS_PPIA
.DB TMS_PPIB
.DB TMS_PPIC
.DB TMS_PPIX
TMS_PORTS:
.DB TMS_DATREG
.DB TMS_CMDREG
;
;==================================================================================================
; TMS DRIVER - TMS9918 REGISTER INITIALIZATION
@ -873,16 +887,11 @@ TMS_INIT9918_REG_1:
;
TMS_INIT9918LEN .EQU $ - TMS_INIT9918
;
;
#IF (CPUFAM == CPU_Z180)
TMS_DCNTL .DB $00 ; SAVE Z180 DCNTL AS NEEDED
#ENDIF
;
;==================================================================================================
; TMS DRIVER - INSTANCE DATA
;==================================================================================================
;
TMS_IDAT:
.DB TMS_PPIA
.DB TMS_PPIB
.DB TMS_PPIC
.DB TMS_PPIX
.ECHO "TMS instance data occupies "
.ECHO $ - TMS_IDAT
.ECHO " bytes\n"

2
Source/HBIOS/z180.inc

@ -64,4 +64,4 @@ Z180_BBR .EQU Z180_BASE + $39 ; MMU BANK BASE REGISTER
Z180_CBAR .EQU Z180_BASE + $3A ; MMU COMMON/BANK AREA REGISTER
;
Z180_OMCR .EQU Z180_BASE + $3E ; OPERATION MODE CONTROL
Z180_ICR .EQU $3F ; I/O CONTROL REGISTER (NOT RELOCATED!!!)
Z180_ICR .EQU Z180_BASE + $3F ; I/O CONTROL REGISTER

13
Source/HBIOS/z280.inc

@ -0,0 +1,13 @@
;
; Z280 REGISTERS
;
Z280_MSR .EQU $00 ; MASTER STATUS REG
Z280_ISR .EQU $16 ; INTERRUPT STATUS REG
Z280_VPR .EQU $06 ; INT/TRAP VECT PTR REG
Z280_IOPR .EQU $08 ; I/O PAGE REG
Z280_BTIR .EQU $FF ; BUS TIMING & INIT REG
Z280_BTCR .EQU $02 ; BUS TIMING & CONTROL REG
Z280_SLR .EQU $04 ; STACK LIMIT REG
Z280_TCR .EQU $10 ; TRAP CONTROL REG
Z280_CCR .EQU $12 ; CACHE CONTROL REG
Z280_LAR .EQU $14 ; LOCAL ADDRESS REG

42
Source/Images/Build.cmd

@ -12,35 +12,35 @@ call BuildDisk.cmd zpm3 wbw_fd144 ..\cpm3\cpmldr.sys
call BuildDisk.cmd ws4 wbw_fd144
echo.
echo Building Legacy Hard Disk Images...
echo Building Hard Disk Images (512 directory entry format)...
echo.
call BuildDisk.cmd cpm22 wbw_hd ..\cpm22\cpm_wbw.sys
call BuildDisk.cmd zsdos wbw_hd ..\zsdos\zsys_wbw.sys
call BuildDisk.cmd nzcom wbw_hd ..\zsdos\zsys_wbw.sys
call BuildDisk.cmd cpm3 wbw_hd ..\cpm3\cpmldr.sys
call BuildDisk.cmd zpm3 wbw_hd ..\cpm3\cpmldr.sys
call BuildDisk.cmd ws4 wbw_hd
call BuildDisk.cmd cpm22 wbw_hd512 ..\cpm22\cpm_wbw.sys
call BuildDisk.cmd zsdos wbw_hd512 ..\zsdos\zsys_wbw.sys
call BuildDisk.cmd nzcom wbw_hd512 ..\zsdos\zsys_wbw.sys
call BuildDisk.cmd cpm3 wbw_hd512 ..\cpm3\cpmldr.sys
call BuildDisk.cmd zpm3 wbw_hd512 ..\cpm3\cpmldr.sys
call BuildDisk.cmd ws4 wbw_hd512
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp wbw_hd
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp wbw_hd512
echo.
echo Building Combo Disk (legacy format) Image...
copy /b ..\..\Binary\hd_cpm22.img + ..\..\Binary\hd_zsdos.img + ..\..\Binary\hd_nzcom.img + ..\..\Binary\hd_cpm3.img + ..\..\Binary\hd_zpm3.img + ..\..\Binary\hd_ws4.img ..\..\Binary\hd_combo.img
echo Building Combo Disk (512 directory entry format) Image...
copy /b ..\..\Binary\hd512_cpm22.img + ..\..\Binary\hd512_zsdos.img + ..\..\Binary\hd512_nzcom.img + ..\..\Binary\hd512_cpm3.img + ..\..\Binary\hd512_zpm3.img + ..\..\Binary\hd512_ws4.img ..\..\Binary\hd512_combo.img
echo.
echo Building New Hard Disk Images...
echo Building Hard Disk Images (1024 directory entry format)...
echo.
call BuildDisk.cmd cpm22 wbw_hdnew ..\cpm22\cpm_wbw.sys
call BuildDisk.cmd zsdos wbw_hdnew ..\zsdos\zsys_wbw.sys
call BuildDisk.cmd nzcom wbw_hdnew ..\zsdos\zsys_wbw.sys
call BuildDisk.cmd cpm3 wbw_hdnew ..\cpm3\cpmldr.sys
call BuildDisk.cmd zpm3 wbw_hdnew ..\cpm3\cpmldr.sys
call BuildDisk.cmd ws4 wbw_hdnew
call BuildDisk.cmd cpm22 wbw_hd1024 ..\cpm22\cpm_wbw.sys
call BuildDisk.cmd zsdos wbw_hd1024 ..\zsdos\zsys_wbw.sys
call BuildDisk.cmd nzcom wbw_hd1024 ..\zsdos\zsys_wbw.sys
call BuildDisk.cmd cpm3 wbw_hd1024 ..\cpm3\cpmldr.sys
call BuildDisk.cmd zpm3 wbw_hd1024 ..\cpm3\cpmldr.sys
call BuildDisk.cmd ws4 wbw_hd1024
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp wbw_hdnew
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp wbw_hd1024
copy hdnew_prefix.bin ..\..\Binary\
copy hd1024_prefix.dat ..\..\Binary\
echo.
echo Building Combo Disk (new format) Image...
copy /b hdnew_prefix.bin + ..\..\Binary\hdnew_cpm22.img + ..\..\Binary\hdnew_zsdos.img + ..\..\Binary\hdnew_nzcom.img + ..\..\Binary\hdnew_cpm3.img + ..\..\Binary\hdnew_zpm3.img + ..\..\Binary\hdnew_ws4.img ..\..\Binary\hdnew_combo.img
echo Building Combo Disk (1024 directory entry format) Image...
copy /b hd1024_prefix.dat + ..\..\Binary\hd1024_cpm22.img + ..\..\Binary\hd1024_zsdos.img + ..\..\Binary\hd1024_nzcom.img + ..\..\Binary\hd1024_cpm3.img + ..\..\Binary\hd1024_zpm3.img + ..\..\Binary\hd1024_ws4.img ..\..\Binary\hd1024_combo.img

18
Source/Images/BuildDisk.ps1

@ -23,20 +23,20 @@ switch ($Format)
$Size = 1440KB
}
"wbw_hd"
"wbw_hd512"
{
# Legacy Hard Disk Format
$Desc = "Hard Disk (legacy format)"
$ImgFile = "hd_${Disk}.img"
# 512 Directory Entry Hard Disk Format
$Desc = "Hard Disk (512 directory entry format)"
$ImgFile = "hd512_${Disk}.img"
$MediaID = 4
$Size = 8MB + 128KB
}
"wbw_hdnew"
"wbw_hd1024"
{
# New Hard Disk Format
$Desc = "Hard Disk (new format)"
$ImgFile = "hdnew_${Disk}.img"
# 1024 Directory Entry Hard Disk Format
$Desc = "Hard Disk (1024 directory entry format)"
$ImgFile = "hd1024_${Disk}.img"
$MediaID = 10
$Size = 8MB
}
@ -48,7 +48,7 @@ if (-not (Test-Path("d_${Disk}/")))
return
}
"Generating $Desc $Disk..."
"Generating $Disk $Desc..."
if ($SysFile.Length -gt 0)
{ [byte[]]$SysImg = [System.IO.File]::ReadAllBytes($SysFile) }

90
Source/Images/Makefile

@ -5,23 +5,23 @@ SYSTEMS = ../CPM22/cpm_wbw.sys ../ZSDOS/zsys_wbw.sys ../CPM3/cpmldr.sys
FDIMGS = fd144_cpm22.img fd144_zsdos.img fd144_nzcom.img \
fd144_cpm3.img fd144_zpm3.img fd144_ws4.img
HDIMGS = hd_cpm22.img hd_zsdos.img hd_nzcom.img \
hd_cpm3.img hd_zpm3.img hd_ws4.img
# HDIMGS += hd_bp.img
HDNEWIMGS = hdnew_cpm22.img hdnew_zsdos.img hdnew_nzcom.img \
hdnew_cpm3.img hdnew_zpm3.img hdnew_ws4.img
# HDNEWIMGS += hdnew_bp.img
HD512IMGS = hd512_cpm22.img hd512_zsdos.img hd512_nzcom.img \
hd512_cpm3.img hd512_zpm3.img hd512_ws4.img
# HDIMGS += hd512_bp.img
HD1024IMGS = hd1024_cpm22.img hd1024_zsdos.img hd1024_nzcom.img \
hd1024_cpm3.img hd1024_zpm3.img hd1024_ws4.img
# HD1024IMGS += hd1024_bp.img
HDPREFIX =
HDNEWPREFIX = hdnew_prefix.bin
HD512PREFIX =
HD1024PREFIX = hd1024_prefix.dat
OBJECTS = $(FDIMGS)
OBJECTS += $(HDIMGS) hd_combo.img $(HDPREFIX)
OBJECTS += $(HDNEWIMGS) hdnew_combo.img $(HDNEWPREFIX)
OBJECTS += $(HD512IMGS) hd512_combo.img $(HD512PREFIX)
OBJECTS += $(HD1024IMGS) hd1024_combo.img $(HD1024PREFIX)
OTHERS = blank144 blankhd blankhdnew
OTHERS = blank144 blankhd512 blankhd1024
NODELETE = $(HDPREFIX) $(HDNEWPREFIX)
NODELETE = $(HD512PREFIX) $(HD1024PREFIX)
DEST=../../Binary
@ -30,10 +30,10 @@ include $(TOOLS)/Makefile.inc
DIFFPATH = $(DIFFTO)/Binary
hd_combo.img: $(HDPREFIX) $(HDIMGS)
hd512_combo.img: $(HD512PREFIX) $(HD512IMGS)
cat $^ > $@
hdnew_combo.img: $(HDNEWPREFIX) $(HDNEWIMGS)
hd1024_combo.img: $(HD1024PREFIX) $(HD1024IMGS)
cat $^ > $@
#
@ -49,20 +49,23 @@ FDSIZE := 1440
blank144:
@echo Making Blank Floppy of size $(FDSIZE)k
@LC_CTYPE=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$@ bs=1024 count=$(FDSIZE) 2>/dev/null
@LC_ALL=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$@ bs=1024 count=$(FDSIZE)
@hexdump $@
HDSIZE := 8320
HDNEWSIZE := 8192
HD512SIZE := 8320
HD1024SIZE := 8192
blankhd:
@echo Making Blank Hd of size $(HDSIZE)k
@LC_CTYPE=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$@ bs=1024 count=$(HDSIZE) 2>/dev/null
blankhd512:
@echo Making Blank HD512 of size $(HD512SIZE)k
@LC_ALL=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$@ bs=1024 count=$(HD512SIZE)
@hexdump $@
blankhdnew:
@echo Making Blank HdNew of size $(HDNEWSIZE)k
@LC_CTYPE=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$@ bs=1024 count=$(HDNEWSIZE) 2>/dev/null
%.img: $(SYSTEMS) blank144 blankhd blankhdnew Makefile
blankhd1024:
@echo Making Blank HD1024 of size $(HD1024SIZE)k
@LC_ALL=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$@ bs=1024 count=$(HD1024SIZE)
@hexdump $@
%.img: $(SYSTEMS) blank144 blankhd512 blankhd1024 Makefile
@sys= ; \
case $@ in \
(*cpm22*) sys=../CPM22/cpm_wbw.sys;; \
@ -72,11 +75,11 @@ blankhdnew:
if echo $@ | grep -q ^fd144_ ; then \
fmt=wbw_fd144 ; type=fd144_ ; proto=blank144 ; \
fi ; \
if echo $@ | grep -q ^hd_ ; then \
fmt=wbw_hd ; type=hd_ ; proto=blankhd ; \
if echo $@ | grep -q ^hd512_ ; then \
fmt=wbw_hd512 ; type=hd512_ ; proto=blankhd512 ; \
fi ; \
if echo $@ | grep -q ^hdnew_ ; then \
fmt=wbw_hdnew ; type=hdnew_ ; proto=blankhdnew ; \
if echo $@ | grep -q ^hd1024_ ; then \
fmt=wbw_hd1024 ; type=hd1024_ ; proto=blankhd1024 ; \
fi ; \
d=$$(echo $(basename $@) | sed s/$$type//) ; \
echo Generating $@ ; \
@ -85,7 +88,6 @@ blankhdnew:
echo copying system $$sys to $@ ; \
$(BINDIR)/mkfs.cpm -f $$fmt -b $$sys $@ ; \
fi ; \
# LC_CTYPE=en_US.US-ASCII echo $$mid | dd bs=1 count=4 seek=1410 conv=notrunc of=$@ ; \
for u in $$(seq 0 15) ; do \
dir=d_$$d/u$$u ; \
if [ -d $$dir ] ; then \
@ -110,22 +112,22 @@ blankhdnew:
done ; \
fi ; \
clean::
@rm -f *.ls
imgdiff:
@for i in $(FDIMGS) $(HDIMGS) $(HDNEWIMGS) ; do \
echo $$i ; \
clean::
@rm -f *.ls
imgdiff:
@for i in $(FDIMGS) $(HD512IMGS) $(HD1024IMGS) ; do \
echo $$i ; \
if echo $$i | grep -q ^fd144_ ; then \
fmt=wbw_fd144 ; \
fi ; \
if echo $$i | grep -q ^hd_ ; then \
fmt=wbw_hd ; \
if echo $$i | grep -q ^hd512_ ; then \
fmt=wbw_hd512 ; \
fi ; \
if echo $$i | grep -q ^hdnew_ ; then \
fmt=wbw_hdnew ; \
if echo $$i | grep -q ^hd1024_ ; then \
fmt=wbw_hd1024 ; \
fi ; \
$(BINDIR)/cpmls -i -f $$fmt $$i > $$i.ls ; \
$(BINDIR)/cpmls -i -f $$fmt $(DIFFPATH)/$$i > $$i.diff.ls ; \
done \
$(BINDIR)/cpmls -i -f $$fmt $$i > $$i.ls ; \
$(BINDIR)/cpmls -i -f $$fmt $(DIFFPATH)/$$i > $$i.diff.ls ; \
done \

724
Source/Images/ReadMe.txt

@ -7,7 +7,7 @@
***********************************************************************
This directory contains a toolset for RomWBW that builds floppy and
hard disk media images that can be used on RomWBW by writing the
hard disk media images that can be used with RomWBW by writing the
image to a floppy or hard disk (including CF and SD cards).
In summary, CP/M files are placed inside of a pre-defined Windows
@ -47,29 +47,38 @@ structure. The structure is:
| .
+--> u15
A given disk is reprsented by a directory named d_xxx where xxx can
A given disk is represented by a directory named d_xxx where xxx can
be anything you want. Within the d_xxx directory, the CP/M user
areas are represented by subdirectories names u0 thru u15. The files
areas are represented by subdirectories named u0 thru u15. The files
to be placed in the disk image are placed inside of the u0 thru u15
directories depending on which user area you want the file(s) to
appear. You do not need to create all of the u## subdirectories,
only the ones corresponding to the user areas you want to put files in.
To build the disk images, you run the Build.cmd batch file from a
command prompt. Build.cmd in turn invokes separate scripts to create
the floppy and hard disk images.
To build all the disk images, you run the Build.cmd batch file from a
command prompt. Build.cmd in turn invokes a separate script to create
each floppy and hard disk image.
As distributed, you will see that there are several d_ directories
populated with files. If you look at the Build.cmd
script, you will find that the names of each of these directories is
listed. If you want to add a new d_ directory to be converted into a
disk image, you will need to add the name of your new directory to
this list. Note that each d_ directory may be turned into a floppy
image or a hard disk image or both.
populated with files. If you look at the Build.cmd script, you will
find that the names of each of these directories is listed. If you
want to add a new d_ directory to be converted into a disk image, you
will need to add the name of your new directory to this list. Note
that each d_ directory may be turned into a floppy image or a hard
disk image or both.
At present, the scripts assume that the floppy media is 1.44MB. You
will need to modify the scripts if you want to create different media.
The resultant disk images (.img files) can be written to the start of
a disk using your Windows/Linux/Mac computer and will then be usable
in your RomWBW computer. On Windows, you can use Win32DiskImager to
do this (see Tools\Win32DiskImager). On Linux/Mac, you can usee dd.
WARNING: The hd1024 disk images must be prefixed by the
hd1024_prefix.dat file before being written to your target media.
See the Hard Disk Formats section below for more information.
Building the Images
-------------------
@ -81,23 +90,44 @@ included in the distribution under the Tools directory.
Many of the disk images depend upon files that are produced by
building the shared components of RomWBW. Prior to running
the Build command in the Images directory, you should first
run the BuildShared command in the Source directory.
run the BuildShared command in the Source directory. This produces
several files that are prerequisites for creating the disk images.
The scripts are intended to be run from a command prompt. Open a
command prompt and navigate to the Images directory. Use the command
"Build" to build both the floppy and hard disk images in one run.
You can build a single disk image by running either BuildFD.cmd or
BuildHD.cmd with a single parameter specifying the disk name.
You can build a single disk image by running BuildDisk.cmd:
BuildDisk <disk> <format> [<system>]
where:
<disk> specifies the disk contents (e.g., "cpm22")
<format> specifies the disk format which must be one of:
- "fd144": 1.44M floppy disk
- "hd512": hard disk with 512 directory entries
- "hd1024": hard disk with 1024 directory entries
<system> optionally specifies a boot system image to place in the
system tracks of the disk (e.g., "..\cpm22\cpm_wbw.sys"
For example:
| BuildDisk.cmd cpm22 wbw_hd512 ..\cpm22\cpm_wbw.sys
will create a hard disk image (512 directory entry format) with the
CP/M 2.2 files from the d_cpm22 directory tree and will place the
CP/M 2.2 system image in the boot system tracks.
After completion of the script, the resultant image files are placed
in the Binary directory with names such as fd_xxx.img and hd_xxx.img.
in the Binary directory with names such as fd144_xxx.img, hd512_xxx.img,
and hd1024_xxx.img.
Sample output from running Build.cmd is provided at the end of
this file.
Be aware that the script always builds the image file from scratch.
Be aware that the script always builds the image files from scratch.
It will not update the previous contents. Any contents of a
pre-existing image file will be permanently destroyed.
pre-existing image file will be overwritten.
Slices
------
@ -114,19 +144,72 @@ independent CP/M drives.
The disk image creation scripts in this directory will only create a
single CP/M file system (i.e., a single slice). However, you can
easily create a multi-slice disk image by merely concatenating
multiple images together. For example, if you wanted to create a 2
slice disk image that has ZSDOS in the first slice and Wordstar in
multiple images together (the 1024 directory entry format requires a
prefix file, see below). For example, if you wanted to create a 2
slice disk image that has ZSDOS in the first slice and WordStar in
the second slice, you could use the following command from a Windows
command prompt:
| C:\RomWBW\Binary>copy /b hd_zsdos.img + hd_ws.img hd_multi.img
| C:\RomWBW\Binary>copy /b hd512_zsdos.img + hd512_ws4.img hd_multi.img
You can now write hd_multi.img onto your SD or CF Card and you will
have ZSDOS in the first slice and Wordstar in the second slice.
The concept of slices applies ONLY to hard disks. Floppy disks are
The concept of slices applies only to hard disks. Floppy disks are
not large enough to support multiple slices.
Hard Disk Formats
-----------------
RomWBW supports two hard disk formats: the original format used by
RomWBW with 512 directory entries per slice and a new format with
1024 directory entries per slice. These formats are referred to as
hd512 and hd1024 respectively. You will note that filenames start
with either hd512_ or hd1024_ to indicate the hard disk format.
WARNING: You **can not** mix the two hard disk formats on one hard
disk device. You can use different formats on different hard disk
devices in a single system though.
RomWBW determines which of the hard disk formats to use for a given
hard disk device based on whether there is a RomWBW hard disk
partition on the disk containing the slices. If there is no RomWBW
partition, then RomWBW will assume the 512 directory entry format for
all slices and will assume the slices start at the first sector of
the hard disk. If there is a RomWBW partition on the hard disk
device, then RomWBW will assume the 1024 directory entry format for
all slices and will assume the slices are located in the defined
partition. You cannot mix the hard disk formats on a single disk
device.
WARNNG: The hd1024_xxx.img files **must** be prefixed by a partition
table before being written to your disk media. The hd1024_prefix.dat
file is provided for this. The hd1024_prefix.dat defines the required
partition table. Any number of hd1024 slice images can be
concatenated after the prefix. For example, to make the
hd1024_cpm22.img file ready to write to your media, you would need to
do something like this:
| C:\RomWBW\Binary>copy /b hd1024_prefix.dat + hd1024_cpm22.img hd_cpm22.img
and then use the resulting hd_cpm22.img to write to the target media.
For example, if you wanted to create a 2 slice disk image using the
hd1024 entry format that has ZSDOS in the first slice and Wordstar in
the second slice, you could use the following command from a Windows
command prompt:
| C:\RomWBW\Binary>copy /b hd1024_prefix.dat + hd1024_zsdos.img + hd1024_ws4.img hd_multi.img
Since the hd512 format does not utilize a partition, you do not
prefix the hd512_xxx.img files with anything. They are ready to write
to your media as is.
In general, the hd1024 format is considered the better format to use.
It provides double the directory space and places all slices inside
of a hard disk partition that DOS/Windows should respect as "used"
space.
Disk Images
-----------
@ -134,328 +217,297 @@ The standard RomWBW build process builds the disk images defined
in this directory. The resultant images are placed in the Binary
directory and are ready to copy to your media.
Additionally, a "combo" disk image is created in both the hd512 and
hd1024 formats that contains a multi-slice image that is handy to
use for initial testing. The combo disk image contains the following
slices:
| Slice 0: CP/M 2.2 (bootable)
| Slice 1: ZSDOS 1.1 (bootable)
| Slice 2: NZCOM (bootable), requires configuration
| Slice 3: CP/M 3 (bootable)
| Slice 4: ZPM3 (bootable)
| Slice 5: WordStar 4
A description of the specific image files is found in the file
called DiskList.txt in the Binary directory of the distribution.
NOTE: The hd1024_combo.img file is already prefixed with
hd1024_prefix.dat, so you do not need to add the prefix file. It is
ready to write to your media.
Sample Run
----------
Below is sample output from building the hard disk images:
C:\Users\Wayne\Projects\RBC\Build\RomWBW\Source\Images>Build.cmd
| :
| : Cleaning...
| :
| :
| : Creating System Images
| :
| ..\bl\bl.bin
| ..\cpm22\os2ccp.bin
| ..\cpm22\os3bdos.bin
| ..\cbios\cbios_wbw.bin
| 1 file(s) copied.
| ..\bl\bl.bin
| ..\cpm22\os2ccp.bin
| ..\cpm22\os3bdos.bin
| ..\cbios\cbios_una.bin
| Building Floppy Disk Images...
|
| Generating cpm22 1.44MB Floppy Disk...
| cpmcp -f wbw_fd144 fd144_cpm22.img d_cpm22/u0/*.* 0:
| cpmcp -f wbw_fd144 fd144_cpm22.img d_cpm22/u1/*.* 1:
| cpmcp -f wbw_fd144 fd144_cpm22.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_fd144 fd144_cpm22.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_fd144 fd144_cpm22.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_fd144 fd144_cpm22.img ../CPM22/cpm_wbw.sys 0:cpm.sys
| cpmcp -f wbw_fd144 fd144_cpm22.img Common/*.* 0:
| Moving image fd144_cpm22.img into output directory...
| Generating zsdos 1.44MB Floppy Disk...
| cpmcp -f wbw_fd144 fd144_zsdos.img d_zsdos/u0/*.* 0:
| cpmcp -f wbw_fd144 fd144_zsdos.img d_zsdos/u1/*.* 1:
| cpmcp -f wbw_fd144 fd144_zsdos.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_fd144 fd144_zsdos.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_fd144 fd144_zsdos.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_fd144 fd144_zsdos.img ../ZSDOS/zsys_wbw.sys 0:zsys.sys
| cpmcp -f wbw_fd144 fd144_zsdos.img Common/*.* 0:
| Moving image fd144_zsdos.img into output directory...
| Generating nzcom 1.44MB Floppy Disk...
| cpmcp -f wbw_fd144 fd144_nzcom.img d_nzcom/u0/*.* 0:
| cpmcp -f wbw_fd144 fd144_nzcom.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_fd144 fd144_nzcom.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_fd144 fd144_nzcom.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_fd144 fd144_nzcom.img ../CPM22/cpm_wbw.sys 0:cpm.sys
| cpmcp -f wbw_fd144 fd144_nzcom.img ../ZSDOS/zsys_wbw.sys 0:zsys.sys
| cpmcp -f wbw_fd144 fd144_nzcom.img Common/*.* 0:
| Moving image fd144_nzcom.img into output directory...
| Generating cpm3 1.44MB Floppy Disk...
| cpmcp -f wbw_fd144 fd144_cpm3.img d_cpm3/u0/*.* 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/cpmldr.com 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/cpmldr.sys 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/ccp.com 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/gencpm.com 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/genres.dat 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/genbnk.dat 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/bios3.spr 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/bnkbios3.spr 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/bdos3.spr 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/resbdos3.spr 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/cpm3res.sys 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/cpm3bnk.sys 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/gencpm.dat 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/cpm3.sys 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/readme.1st 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../CPM3/cpm3fix.pat 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_fd144 fd144_cpm3.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_fd144 fd144_cpm3.img Common/*.* 0:
| Moving image fd144_cpm3.img into output directory...
| Generating zpm3 1.44MB Floppy Disk...
| cpmcp -f wbw_fd144 fd144_zpm3.img d_zpm3/u0/*.* 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img d_zpm3/u10/*.* 10:
| cpmcp -f wbw_fd144 fd144_zpm3.img d_zpm3/u14/*.* 14:
| cpmcp -f wbw_fd144 fd144_zpm3.img d_zpm3/u15/*.* 15:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/zpmldr.com 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/zpmldr.sys 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../CPM3/cpmldr.com 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../CPM3/cpmldr.sys 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/autotog.com 15:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/clrhist.com 15:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/setz3.com 15:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/cpm3.sys 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/zccp.com 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/zinstal.zpm 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/startzpm.com 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/makedos.com 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/gencpm.dat 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/bnkbios3.spr 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../ZPM3/resbdos3.spr 0:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../../Binary/Apps/*.com 15:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_fd144 fd144_zpm3.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_fd144 fd144_zpm3.img Common/*.* 15:
| Moving image fd144_zpm3.img into output directory...
| Generating ws4 1.44MB Floppy Disk...
| cpmcp -f wbw_fd144 fd144_ws4.img d_ws4/u0/*.* 0:
| Moving image fd144_ws4.img into output directory...
|
| Building Hard Disk Images (512 directory entry format)...
|
| Generating cpm22 Hard Disk (512 directory entry format)...
| cpmcp -f wbw_hd512 hd512_cpm22.img d_cpm22/u0/*.* 0:
| cpmcp -f wbw_hd512 hd512_cpm22.img d_cpm22/u1/*.* 1:
| cpmcp -f wbw_hd512 hd512_cpm22.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_hd512 hd512_cpm22.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd512 hd512_cpm22.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd512 hd512_cpm22.img ../CPM22/cpm_wbw.sys 0:cpm.sys
| cpmcp -f wbw_hd512 hd512_cpm22.img Common/*.* 0:
| Moving image hd512_cpm22.img into output directory...
| Generating zsdos Hard Disk (512 directory entry format)...
| cpmcp -f wbw_hd512 hd512_zsdos.img d_zsdos/u0/*.* 0:
| cpmcp -f wbw_hd512 hd512_zsdos.img d_zsdos/u1/*.* 1:
| cpmcp -f wbw_hd512 hd512_zsdos.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_hd512 hd512_zsdos.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd512 hd512_zsdos.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd512 hd512_zsdos.img ../ZSDOS/zsys_wbw.sys 0:zsys.sys
| cpmcp -f wbw_hd512 hd512_zsdos.img Common/*.* 0:
| Moving image hd512_zsdos.img into output directory...
| Generating nzcom Hard Disk (512 directory entry format)...
| cpmcp -f wbw_hd512 hd512_nzcom.img d_nzcom/u0/*.* 0:
| cpmcp -f wbw_hd512 hd512_nzcom.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_hd512 hd512_nzcom.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd512 hd512_nzcom.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd512 hd512_nzcom.img ../CPM22/cpm_wbw.sys 0:cpm.sys
| cpmcp -f wbw_hd512 hd512_nzcom.img ../ZSDOS/zsys_wbw.sys 0:zsys.sys
| cpmcp -f wbw_hd512 hd512_nzcom.img Common/*.* 0:
| Moving image hd512_nzcom.img into output directory...
| Generating cpm3 Hard Disk (512 directory entry format)...
| cpmcp -f wbw_hd512 hd512_cpm3.img d_cpm3/u0/*.* 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/cpmldr.com 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/cpmldr.sys 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/ccp.com 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/gencpm.com 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/genres.dat 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/genbnk.dat 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/bios3.spr 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/bnkbios3.spr 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/bdos3.spr 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/resbdos3.spr 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/cpm3res.sys 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/cpm3bnk.sys 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/gencpm.dat 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/cpm3.sys 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/readme.1st 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../CPM3/cpm3fix.pat 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd512 hd512_cpm3.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd512 hd512_cpm3.img Common/*.* 0:
| Moving image hd512_cpm3.img into output directory...
| Generating zpm3 Hard Disk (512 directory entry format)...
| cpmcp -f wbw_hd512 hd512_zpm3.img d_zpm3/u0/*.* 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img d_zpm3/u10/*.* 10:
| cpmcp -f wbw_hd512 hd512_zpm3.img d_zpm3/u14/*.* 14:
| cpmcp -f wbw_hd512 hd512_zpm3.img d_zpm3/u15/*.* 15:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/zpmldr.com 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/zpmldr.sys 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../CPM3/cpmldr.com 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../CPM3/cpmldr.sys 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/autotog.com 15:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/clrhist.com 15:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/setz3.com 15:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/cpm3.sys 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/zccp.com 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/zinstal.zpm 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/startzpm.com 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/makedos.com 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/gencpm.dat 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/bnkbios3.spr 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../ZPM3/resbdos3.spr 0:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../../Binary/Apps/*.com 15:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd512 hd512_zpm3.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd512 hd512_zpm3.img Common/*.* 15:
| Moving image hd512_zpm3.img into output directory...
| Generating ws4 Hard Disk (512 directory entry format)...
| cpmcp -f wbw_hd512 hd512_ws4.img d_ws4/u0/*.* 0:
| Moving image hd512_ws4.img into output directory...
|
| Building Combo Disk (512 directory entry format) Image...
| ..\..\Binary\hd512_cpm22.img
| ..\..\Binary\hd512_zsdos.img
| ..\..\Binary\hd512_nzcom.img
| ..\..\Binary\hd512_cpm3.img
| ..\..\Binary\hd512_zpm3.img
| ..\..\Binary\hd512_ws4.img
| 1 file(s) copied.
| ..\bl\bl.bin
| ..\zcpr-dj\zcpr.bin
| ..\zsdos\zsdos.bin
| ..\cbios\cbios_wbw.bin
|
| Building Hard Disk Images (1024 directory entry format)...
|
| Generating cpm22 Hard Disk (1024 directory entry format)...
| cpmcp -f wbw_hd1024 hd1024_cpm22.img d_cpm22/u0/*.* 0:
| cpmcp -f wbw_hd1024 hd1024_cpm22.img d_cpm22/u1/*.* 1:
| cpmcp -f wbw_hd1024 hd1024_cpm22.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_hd1024 hd1024_cpm22.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd1024 hd1024_cpm22.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd1024 hd1024_cpm22.img ../CPM22/cpm_wbw.sys 0:cpm.sys
| cpmcp -f wbw_hd1024 hd1024_cpm22.img Common/*.* 0:
| Moving image hd1024_cpm22.img into output directory...
| Generating zsdos Hard Disk (1024 directory entry format)...
| cpmcp -f wbw_hd1024 hd1024_zsdos.img d_zsdos/u0/*.* 0:
| cpmcp -f wbw_hd1024 hd1024_zsdos.img d_zsdos/u1/*.* 1:
| cpmcp -f wbw_hd1024 hd1024_zsdos.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_hd1024 hd1024_zsdos.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd1024 hd1024_zsdos.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd1024 hd1024_zsdos.img ../ZSDOS/zsys_wbw.sys 0:zsys.sys
| cpmcp -f wbw_hd1024 hd1024_zsdos.img Common/*.* 0:
| Moving image hd1024_zsdos.img into output directory...
| Generating nzcom Hard Disk (1024 directory entry format)...
| cpmcp -f wbw_hd1024 hd1024_nzcom.img d_nzcom/u0/*.* 0:
| cpmcp -f wbw_hd1024 hd1024_nzcom.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_hd1024 hd1024_nzcom.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd1024 hd1024_nzcom.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd1024 hd1024_nzcom.img ../CPM22/cpm_wbw.sys 0:cpm.sys
| cpmcp -f wbw_hd1024 hd1024_nzcom.img ../ZSDOS/zsys_wbw.sys 0:zsys.sys
| cpmcp -f wbw_hd1024 hd1024_nzcom.img Common/*.* 0:
| Moving image hd1024_nzcom.img into output directory...
| Generating cpm3 Hard Disk (1024 directory entry format)...
| cpmcp -f wbw_hd1024 hd1024_cpm3.img d_cpm3/u0/*.* 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/cpmldr.com 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/cpmldr.sys 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/ccp.com 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/gencpm.com 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/genres.dat 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/genbnk.dat 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/bios3.spr 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/bnkbios3.spr 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/bdos3.spr 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/resbdos3.spr 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/cpm3res.sys 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/cpm3bnk.sys 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/gencpm.dat 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/cpm3.sys 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/readme.1st 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../CPM3/cpm3fix.pat 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../../Binary/Apps/*.com 0:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd1024 hd1024_cpm3.img Common/*.* 0:
| Moving image hd1024_cpm3.img into output directory...
| Generating zpm3 Hard Disk (1024 directory entry format)...
| cpmcp -f wbw_hd1024 hd1024_zpm3.img d_zpm3/u0/*.* 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img d_zpm3/u10/*.* 10:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img d_zpm3/u14/*.* 14:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img d_zpm3/u15/*.* 15:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/zpmldr.com 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/zpmldr.sys 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../CPM3/cpmldr.com 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../CPM3/cpmldr.sys 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/autotog.com 15:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/clrhist.com 15:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/setz3.com 15:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/cpm3.sys 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/zccp.com 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/zinstal.zpm 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/startzpm.com 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/makedos.com 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/gencpm.dat 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/bnkbios3.spr 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../ZPM3/resbdos3.spr 0:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../../Binary/Apps/*.com 15:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../../Binary/Apps/Tunes/*.pt? 3:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img ../../Binary/Apps/Tunes/*.mym 3:
| cpmcp -f wbw_hd1024 hd1024_zpm3.img Common/*.* 15:
| Moving image hd1024_zpm3.img into output directory...
| Generating ws4 Hard Disk (1024 directory entry format)...
| cpmcp -f wbw_hd1024 hd1024_ws4.img d_ws4/u0/*.* 0:
| Moving image hd1024_ws4.img into output directory...
| 1 file(s) copied.
| ..\bl\bl.bin
| ..\zcpr-dj\zcpr.bin
| ..\zsdos\zsdos.bin
| ..\cbios\cbios_una.bin
|
| Building Combo Disk (1024 directory entry format) Image...
| hd1024_prefix.dat
| ..\..\Binary\hd1024_cpm22.img
| ..\..\Binary\hd1024_zsdos.img
| ..\..\Binary\hd1024_nzcom.img
| ..\..\Binary\hd1024_cpm3.img
| ..\..\Binary\hd1024_zpm3.img
| ..\..\Binary\hd1024_ws4.img
| 1 file(s) copied.
| :
| : Building Floppy Disk Images...
| :
| Generating Floppy Disk cpm22...
| cpmcp -f wbw_fd144 fd_cpm22.img d_cpm22/u0/*.* 0:
| cpmcp -f wbw_fd144 fd_cpm22.img d_cpm22/u1/*.* 1:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_fd144 fd_cpm22.img ../../Binary/Apps/Tunes/*.* 3:
| Adding System Image cpm_wbw...
| Moving image fd_cpm22.img into output directory...
| 1 file(s) moved.
| Generating Floppy Disk zsdos...
| cpmcp -f wbw_fd144 fd_zsdos.img d_zsdos/u0/*.* 0:
| cpmcp -f wbw_fd144 fd_zsdos.img d_zsdos/u1/*.* 1:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_fd144 fd_zsdos.img ../../Binary/Apps/Tunes/*.* 3:
| Adding System Image zsys_wbw...
| Moving image fd_zsdos.img into output directory...
| 1 file(s) moved.
| Generating Floppy Disk nzcom...
| cpmcp -f wbw_fd144 fd_nzcom.img d_nzcom/u0/*.* 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_fd144 fd_nzcom.img ../../Binary/Apps/Tunes/*.* 3:
| Adding System Image zsys_wbw...
| Moving image fd_nzcom.img into output directory...
| 1 file(s) moved.
| Generating Floppy Disk cpm3...
| cpmcp -f wbw_fd144 fd_cpm3.img d_cpm3/u0/*.* 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/cpmldr.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/ccp.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/gencpm.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/genres.dat 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/genbnk.dat 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/bios3.spr 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/bnkbios3.spr 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/bdos3.spr 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/resbdos3.spr 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/cpm3res.sys 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/cpm3bnk.sys 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/gencpm.dat 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/cpm3.sys 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/readme.1st 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../CPM3/cpm3fix.pat 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_fd144 fd_cpm3.img ../../Binary/Apps/Tunes/*.* 3:
| Moving image fd_cpm3.img into output directory...
| 1 file(s) moved.
| Generating Floppy Disk zpm3...
| cpmcp -f wbw_fd144 fd_zpm3.img d_zpm3/u0/*.* 0:
| cpmcp -f wbw_fd144 fd_zpm3.img d_zpm3/u10/*.* 10:
| cpmcp -f wbw_fd144 fd_zpm3.img d_zpm3/u14/*.* 14:
| cpmcp -f wbw_fd144 fd_zpm3.img d_zpm3/u15/*.* 15:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/zpmldr.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/cpmldr.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/autotog.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/clrhist.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/setz3.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/cpm3.sys 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/zccp.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/zinstal.zpm 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/startzpm.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/makedos.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/gencpm.dat 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/bnkbios3.spr 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../ZPM3/resbdos3.spr 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_fd144 fd_zpm3.img ../../Binary/Apps/Tunes/*.* 3:
| Moving image fd_zpm3.img into output directory...
| 1 file(s) moved.
| Generating Floppy Disk ws4...
| cpmcp -f wbw_fd144 fd_ws4.img d_ws4/u0/*.* 0:
| Moving image fd_ws4.img into output directory...
| 1 file(s) moved.
| :
| : Building Hard Disk Images...
| :
| Generating Hard Disk cpm22...
| cpmcp -f wbw_hd0 hd_cpm22.img d_cpm22/u0/*.* 0:
| cpmcp -f wbw_hd0 hd_cpm22.img d_cpm22/u1/*.* 1:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_hd0 hd_cpm22.img ../../Binary/Apps/Tunes/*.* 3:
| Adding System Image cpm_wbw...
| Moving image hd_cpm22.img into output directory...
| 1 file(s) moved.
| Generating Hard Disk zsdos...
| cpmcp -f wbw_hd0 hd_zsdos.img d_zsdos/u0/*.* 0:
| cpmcp -f wbw_hd0 hd_zsdos.img d_zsdos/u1/*.* 1:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_hd0 hd_zsdos.img ../../Binary/Apps/Tunes/*.* 3:
| Adding System Image zsys_wbw...
| Moving image hd_zsdos.img into output directory...
| 1 file(s) moved.
| Generating Hard Disk nzcom...
| cpmcp -f wbw_hd0 hd_nzcom.img d_nzcom/u0/*.* 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_hd0 hd_nzcom.img ../../Binary/Apps/Tunes/*.* 3:
| Adding System Image zsys_wbw...
| Moving image hd_nzcom.img into output directory...
| 1 file(s) moved.
| Generating Hard Disk cpm3...
| cpmcp -f wbw_hd0 hd_cpm3.img d_cpm3/u0/*.* 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/cpmldr.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/ccp.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/gencpm.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/genres.dat 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/genbnk.dat 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/bios3.spr 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/bnkbios3.spr 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/bdos3.spr 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/resbdos3.spr 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/cpm3res.sys 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/cpm3bnk.sys 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/gencpm.dat 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/cpm3.sys 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/readme.1st 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../CPM3/cpm3fix.pat 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_hd0 hd_cpm3.img ../../Binary/Apps/Tunes/*.* 3:
| Moving image hd_cpm3.img into output directory...
| 1 file(s) moved.
| Generating Hard Disk zpm3...
| cpmcp -f wbw_hd0 hd_zpm3.img d_zpm3/u0/*.* 0:
| cpmcp -f wbw_hd0 hd_zpm3.img d_zpm3/u10/*.* 10:
| cpmcp -f wbw_hd0 hd_zpm3.img d_zpm3/u14/*.* 14:
| cpmcp -f wbw_hd0 hd_zpm3.img d_zpm3/u15/*.* 15:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/zpmldr.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/cpmldr.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/autotog.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/clrhist.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/setz3.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/cpm3.sys 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/zccp.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/zinstal.zpm 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/startzpm.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/makedos.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/gencpm.dat 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/bnkbios3.spr 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/bnkbdos3.spr 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../ZPM3/resbdos3.spr 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/assign.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/fat.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/fdu.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/format.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/mode.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/osldr.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/rtc.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/survey.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/syscopy.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/sysgen.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/talk.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/timer.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/xm.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/inttest.com 0:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/tune.com 3:
| cpmcp -f wbw_hd0 hd_zpm3.img ../../Binary/Apps/Tunes/*.* 3:
| Moving image hd_zpm3.img into output directory...
| 1 file(s) moved.
| Generating Hard Disk ws4...
| cpmcp -f wbw_hd0 hd_ws4.img d_ws4/u0/*.* 0:
| Moving image hd_ws4.img into output directory...
| 1 file(s) moved.

30
Source/Images/diskdefs

@ -345,9 +345,9 @@ diskdef wbw_fd120
os 2.2
end
# RomWBW 8320KB Hard Disk Slice
# RomWBW 8320KB Hard Disk Slice (512 directory entry format)
# Legacy format, 512 dir entries, 16,630 sectors / slice
diskdef wbw_hd
diskdef wbw_hd512
seclen 512
tracks 1040
sectrk 16
@ -358,8 +358,8 @@ diskdef wbw_hd
os 2.2
end
# First 4 slices of wbw_hd
diskdef wbw_hd0
# First 4 slices of wbw_hd512
diskdef wbw_hd512_0
seclen 512
tracks 1040
sectrk 16
@ -370,7 +370,7 @@ diskdef wbw_hd0
os 2.2
end
diskdef wbw_hd1
diskdef wbw_hd512_1
seclen 512
tracks 2080
sectrk 16
@ -381,7 +381,7 @@ diskdef wbw_hd1
os 2.2
end
diskdef wbw_hd2
diskdef wbw_hd512_2
seclen 512
tracks 3120
sectrk 16
@ -392,7 +392,7 @@ diskdef wbw_hd2
os 2.2
end
diskdef wbw_hd3
diskdef wbw_hd512_3
seclen 512
tracks 4160
sectrk 16
@ -404,10 +404,10 @@ diskdef wbw_hd3
end
# RomWBW 8MB Hard Disk
# RomWBW 8MB Hard Disk (1024 directory entry format)
# New format, 1024 dir entries, 16,384 sectors / slice
# Pure filesystem image, no prefix
diskdef wbw_hdnew
# Pure filesystem image, no MBR prefix
diskdef wbw_hd1024
seclen 512
tracks 1024
sectrk 16
@ -418,9 +418,9 @@ diskdef wbw_hdnew
os 2.2
end
# First 4 slices of wbw_hdnew
# First 4 slices of wbw_hd1024
# Assumes 128KB prefix (256 sectors)
diskdef wbw_hdnew0
diskdef wbw_hd1024_0
seclen 512
tracks 1040
sectrk 16
@ -431,7 +431,7 @@ diskdef wbw_hdnew0
os 2.2
end
diskdef wbw_hdnew1
diskdef wbw_hd1024_1
seclen 512
tracks 2064
sectrk 16
@ -442,7 +442,7 @@ diskdef wbw_hdnew1
os 2.2
end
diskdef wbw_hdnew2
diskdef wbw_hd1024_2
seclen 512
tracks 3112
sectrk 16
@ -453,7 +453,7 @@ diskdef wbw_hdnew2
os 2.2
end
diskdef wbw_hdnew3
diskdef wbw_hd1024_3
seclen 512
tracks 4136
sectrk 16

BIN
Source/Images/hdnew_prefix.bin → Source/Images/hd1024_prefix.dat

Binary file not shown.

1
Source/Makefile

@ -11,5 +11,6 @@ SUBDIRS += HBIOS CPM3
SUBDIRS += ZPM3
#SUBDIRS += BPBIOS
SUBDIRS += Images
SUBDIRS += ZRC
TOOLS = ../Tools
include $(TOOLS)/Makefile.inc

5
Source/ZPM3/Build.cmd

@ -43,6 +43,11 @@ copy genbnk.dat gencpm.dat
zx gencpm -auto -display
rem pause
rem ZPM3 Tools
zx Z80ASM -clrhist/F
zx Z80ASM -setz3/F
zx Z80ASM -autotog/F
rem Loader
tasm -t80 -g3 -fFF loader.asm loader.bin loader.lst

3
Source/ZPM3/Clean.cmd

@ -16,6 +16,9 @@ if exist zpmldr.com del zpmldr.com
if exist cpmldr.com del cpmldr.com
if exist startzpm.com del startzpm.com
if exist gencpm.com del gencpm.com
if exist clrhist.com del clrhist.com
if exist setz3.com del setz3.com
if exist autotog.com del autotog.com
if exist *.dat del *.dat
if exist biosldr?.rel del biosldr?.rel
if exist *.bin del *.bin

5
Source/ZPM3/Makefile

@ -1,9 +1,6 @@
OBJECTS = zpmldr.com zpmldr.sys cpm3.sys startzpm.com zccp.com
#ifdef REBUILD_ZPM_TOOLS
NODELETE = makedos.com zinstal.zpm bnkbdos3.spr resbdos3.spr
OBJECTS += setz3.com clrhist.com autotog.com
#else
NODELETE = setz3.com clrhist.com autotog.com makedos.com zinstal.zpm bnkbdos3.spr resbdos3.spr
#endif
OBJECTS += cpmldr.com cpmldr.sys zinstal.zpm makedos.com gencpm.dat bnkbios3.spr bnkbdos3.spr resbdos3.spr
OTHERS = zpmldr.bin loader.bin biosldrd.rel biosldrc.rel util.rel gencpm.com
DEST = ../../Binary/ZPM3/

BIN
Source/ZPM3/autotog.com

Binary file not shown.

8
Source/ZPM3/autotog.z80

@ -45,13 +45,13 @@ ACPoff equ 85h ; Offset in SCB base page of Auto Command Prompting bit
HELPmsg:
db ' SYNTAX:'
db 10,13
db ' AUTOTOG Toggles the state of the Auto Command Prompting'
db ' AUTOTOG Toggles the state of the Auto Command Prompting'
db 10,13
db ' AUTOTOG ON Enables Auto Command Prompting'
db ' AUTOTOG ON Enables Auto Command Prompting'
db 10,13
db ' AUTOTOG OFF Disables Auto Command Prompting'
db ' AUTOTOG OFF Disables Auto Command Prompting'
db 10,13
db ' AUTOTOG // Displays a brief help message'
db ' AUTOTOG // Displays a brief help message'
db '$'
ONmsg:
db 'ZPM3 Auto Command Prompting is now enabled. Toggle with ^Q.'

BIN
Source/ZPM3/clrhist.com

Binary file not shown.

BIN
Source/ZPM3/setz3.com

Binary file not shown.

13
Source/ZRC/Build.cmd

@ -0,0 +1,13 @@
@echo off
setlocal
if not exist ..\..\Binary\RCZ80_zrc.rom goto :err
copy /b zrc_cfldr.bin + zrc_ptbl.bin + zrc_fill_1.bin + zrc_mon.bin + zrc_fill_2.bin + ..\..\Binary\RCZ80_zrc.rom + zrc_fill_3.bin ..\..\Binary\hd1024_zrc_prefix.dat
goto :eof
:err
echo *** Can't build ZRC prefix file -- missing "..\..\Binary\RCZ80_zrc.rom"
exit /b 1

3
Source/ZRC/Clean.cmd

@ -0,0 +1,3 @@
@echo off
setlocal

19
Source/ZRC/Makefile

@ -0,0 +1,19 @@
HD1024ZRCPREFIX = hd1024_zrc_prefix.dat
ZRCROM = ../../Binary/RCZ80_zrc.rom
OBJECTS :=
ifneq ($(wildcard $(ZRCROM)),)
OBJECTS += $(HD1024ZRCPREFIX)
endif
DEST=../../Binary
TOOLS = ../../Tools
include $(TOOLS)/Makefile.inc
DIFFPATH = $(DIFFTO)/Binary
$(HD1024ZRCPREFIX):
cat zrc_cfldr.bin zrc_ptbl.bin zrc_fill_1.bin zrc_mon.bin zrc_fill_2.bin $(ZRCROM) zrc_fill_3.bin >$@

16
Source/ZRC/ZRC Disk Layout.txt

@ -0,0 +1,16 @@
CF Boot Loader: Sector 0 (bytes 0-255)
RomWBW Partition Table: Sector 0 (bytes 256-511)
ZRC Monitor: Sectors 0xF8-0xFF (bytes 0x1F000-0x1FFFF)
RomWBW: Sectors 0x120-0x51F (bytes 0x24000-0xA3FFF)
Start of Slices (0x1E partition): Sector 0x800 (byte 0x100000)
Start Length Description
------- ------- ---------------------------
0x00000 0x00100 CF Boot Loader
0x00100 0x00100 RomWBW Partition Table
0x00200 0x1EE00 Filler
0x1F000 0x01000 ZRC Monitor
0x20000 0x04000 Filler
0x24000 0x80000 RomWBW
0xA4000 0x5C000 Filler
0x100000: Start of slices (partition 0x1E)

BIN
Source/ZRC/zrc_cfldr.bin

Binary file not shown.

BIN
Source/ZRC/zrc_fill_1.bin

Binary file not shown.

BIN
Source/ZRC/zrc_fill_2.bin

Binary file not shown.

BIN
Source/ZRC/zrc_fill_3.bin

Binary file not shown.

BIN
Source/ZRC/zrc_mon.bin

Binary file not shown.

BIN
Source/ZRC/zrc_ptbl.bin

Binary file not shown.

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.18"
#DEFINE BIOSVER "3.1.1-pre.22"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1
rtp equ 0
biosver macro
db "3.1.1-pre.18"
db "3.1.1-pre.22"
endm

2
Tools/Makefile.inc

@ -66,6 +66,7 @@ CPM=$(TOOLS)/cpm/bin
%.com: %.z80
$(ZXCC) $(CPM)/Z80ASM -$(basename $<)/F ; \
rm -f /tmp/casefn.cache ; \
mv $$($(CASEFN) $@) tmp.com ; mv tmp.com $@
%.bin: %.asm
@ -115,6 +116,7 @@ all:: $(OBJECTS)
@if [ "$(DEST)" ] ; then for file in $(filter-out $(NOCOPY),$(OBJECTS)) ; do \
mkdir -p $(DEST) ; \
echo copy $$file to $(DEST) ; \
rm -f /tmp/casefn.cache ; \
cp $$($(CASEFN) $$file) $(DEST) ; \
done ; fi
@if [ "$(DOCDEST)" ] ; then for file in $(DOCS) ; do \

30
Tools/cpmtools/diskdefs

@ -345,9 +345,9 @@ diskdef wbw_fd120
os 2.2
end
# RomWBW 8320KB Hard Disk Slice
# RomWBW 8320KB Hard Disk Slice (512 directory entry format)
# Legacy format, 512 dir entries, 16,630 sectors / slice
diskdef wbw_hd
diskdef wbw_hd512
seclen 512
tracks 1040
sectrk 16
@ -358,8 +358,8 @@ diskdef wbw_hd
os 2.2
end
# First 4 slices of wbw_hd
diskdef wbw_hd0
# First 4 slices of wbw_hd512
diskdef wbw_hd512_0
seclen 512
tracks 1040
sectrk 16
@ -370,7 +370,7 @@ diskdef wbw_hd0
os 2.2
end
diskdef wbw_hd1
diskdef wbw_hd512_1
seclen 512
tracks 2080
sectrk 16
@ -381,7 +381,7 @@ diskdef wbw_hd1
os 2.2
end
diskdef wbw_hd2
diskdef wbw_hd512_2
seclen 512
tracks 3120
sectrk 16
@ -392,7 +392,7 @@ diskdef wbw_hd2
os 2.2
end
diskdef wbw_hd3
diskdef wbw_hd512_3
seclen 512
tracks 4160
sectrk 16
@ -404,10 +404,10 @@ diskdef wbw_hd3
end
# RomWBW 8MB Hard Disk
# RomWBW 8MB Hard Disk (1024 directory entry format)
# New format, 1024 dir entries, 16,384 sectors / slice
# Pure filesystem image, no prefix
diskdef wbw_hdnew
# Pure filesystem image, no MBR prefix
diskdef wbw_hd1024
seclen 512
tracks 1024
sectrk 16
@ -418,9 +418,9 @@ diskdef wbw_hdnew
os 2.2
end
# First 4 slices of wbw_hdnew
# First 4 slices of wbw_hd1024
# Assumes 128KB prefix (256 sectors)
diskdef wbw_hdnew0
diskdef wbw_hd1024_0
seclen 512
tracks 1040
sectrk 16
@ -431,7 +431,7 @@ diskdef wbw_hdnew0
os 2.2
end
diskdef wbw_hdnew1
diskdef wbw_hd1024_1
seclen 512
tracks 2064
sectrk 16
@ -442,7 +442,7 @@ diskdef wbw_hdnew1
os 2.2
end
diskdef wbw_hdnew2
diskdef wbw_hd1024_2
seclen 512
tracks 3112
sectrk 16
@ -453,7 +453,7 @@ diskdef wbw_hdnew2
os 2.2
end
diskdef wbw_hdnew3
diskdef wbw_hd1024_3
seclen 512
tracks 4136
sectrk 16

4
Tools/simh/Sim.cfg

@ -23,8 +23,8 @@ attach n8vem0 %1
; hard disks
;set hdsk debug=read;write;verbose
attach hdsk0 ..\..\Binary\hd_combo.img
attach hdsk1 ..\..\Binary\hd_combo.img
attach hdsk0 ..\..\Binary\hd512_combo.img
attach hdsk1 ..\..\Binary\hd1024_combo.img
set hdsk0 format=HDSK
set hdsk1 format=HDSK
set hdsk0 geom=T:8192/N:256/S:512

2
Tools/unix/uz80as/Makefile

@ -4,7 +4,7 @@
DEST = ../../`uname`
CC = gcc
CFLAGS = -g
CFLAGS = -g -fcommon
OBJECTS = ngetopt.o main.o options.o \
utils.o err.o incl.o sym.o \

Loading…
Cancel
Save