diff --git a/.github/workflows/commit.yml b/.github/workflows/commit.yml index 6847869f..441834a1 100644 --- a/.github/workflows/commit.yml +++ b/.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: . \ No newline at end of file diff --git a/.gitignore b/.gitignore index 508cc58d..e9b8986e 100644 --- a/.gitignore +++ b/.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 diff --git a/Binary/Clean.cmd b/Binary/Clean.cmd index 28826acb..87c844e3 100644 --- a/Binary/Clean.cmd +++ b/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 diff --git a/Binary/Makefile b/Binary/Makefile index 8e01338f..4b2e6294 100644 --- a/Binary/Makefile +++ b/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 diff --git a/Binary/RomList.txt b/Binary/RomList.txt index f507226f..6b5f71ed 100644 --- a/Binary/RomList.txt +++ b/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 diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 49e26095..1b2410fb 100644 --- a/Doc/ChangeLog.txt +++ b/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 diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index c2b1f54d..64eb7ea4 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Architecture.pdf b/Doc/RomWBW Architecture.pdf index 47571248..4260e3e2 100644 Binary files a/Doc/RomWBW Architecture.pdf and b/Doc/RomWBW Architecture.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index 12627522..05aa5486 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Getting Started.pdf b/Doc/RomWBW Getting Started.pdf index 8ecffa01..607b60df 100644 Binary files a/Doc/RomWBW Getting Started.pdf and b/Doc/RomWBW Getting Started.pdf differ diff --git a/ReadMe.md b/ReadMe.md index 7680b0e8..80cec877 100644 --- a/ReadMe.md +++ b/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 diff --git a/ReadMe.txt b/ReadMe.txt index d7c946d6..918d3bb3 100644 --- a/ReadMe.txt +++ b/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 diff --git a/Readme.unix b/Readme.unix index e7633897..5a7c3b94 100644 --- a/Readme.unix +++ b/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= ROM_CONFIG= + +where is one of the supported platforms such as SBC, RCZ80, +etc. and 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. diff --git a/Source/Apps/Survey.asm b/Source/Apps/Survey.asm index 33c71236..f049be90 100644 --- a/Source/Apps/Survey.asm +++ b/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: diff --git a/Source/Apps/Tune/Tune.asm b/Source/Apps/Tune/Tune.asm index a6e4bfb4..66ad34cd 100644 --- a/Source/Apps/Tune/Tune.asm +++ b/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 diff --git a/Source/Apps/Tune/printing.inc b/Source/Apps/Tune/printing.inc index 8a6b4e9a..6d118ea2 100644 --- a/Source/Apps/Tune/printing.inc +++ b/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 diff --git a/Source/BPBIOS/diskdefs b/Source/BPBIOS/diskdefs index a03e42f0..db9ef4b2 100644 --- a/Source/BPBIOS/diskdefs +++ b/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 diff --git a/Source/BuildZRC.cmd b/Source/BuildZRC.cmd new file mode 100644 index 00000000..4c037580 --- /dev/null +++ b/Source/BuildZRC.cmd @@ -0,0 +1,4 @@ +@echo off +setlocal + +setlocal & cd ZRC && call Build || exit /b 1 & endlocal diff --git a/Source/CPM3/Makefile b/Source/CPM3/Makefile index d64e7e72..46c6bc32 100644 --- a/Source/CPM3/Makefile +++ b/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 > $@ diff --git a/Source/Doc/Architecture.md b/Source/Doc/Architecture.md index c1058b19..7d53e7f6 100644 --- a/Source/Doc/Architecture.md +++ b/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 diff --git a/Source/HBIOS/Build.ps1 b/Source/HBIOS/Build.ps1 index e82b67aa..755dea90 100644 --- a/Source/HBIOS/Build.ps1 +++ b/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" # diff --git a/Source/HBIOS/Build.sh b/Source/HBIOS/Build.sh index 992afbcb..91d4e22c 100755 --- a/Source/HBIOS/Build.sh +++ b/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/null +#LC_CTYPE=en_US.US-ASCII tr '\000' '\345' /dev/null +LC_ALL=en_US.US-ASCII tr '\000' '\345' build.inc ; RomWBW Configured for $platform $config $timestamp diff --git a/Source/HBIOS/Config/EZZ80_tz80.asm b/Source/HBIOS/Config/EZZ80_tz80.asm new file mode 100644 index 00000000..93a45e94 --- /dev/null +++ b/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_.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 _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 diff --git a/Source/HBIOS/Config/RCZ280_ext.asm b/Source/HBIOS/Config/RCZ280_ext.asm new file mode 100644 index 00000000..5b537c25 --- /dev/null +++ b/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_.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 _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 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) diff --git a/Source/HBIOS/Config/RCZ80_zrc.asm b/Source/HBIOS/Config/RCZ80_zrc.asm new file mode 100644 index 00000000..139b7ebe --- /dev/null +++ b/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_.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 _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 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) diff --git a/Source/HBIOS/Makefile b/Source/HBIOS/Makefile index c8f7c8fb..20c273fe 100644 --- a/Source/HBIOS/Makefile +++ b/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 diff --git a/Source/HBIOS/asci.asm b/Source/HBIOS/asci.asm index 0a064734..5e3246bc 100644 --- a/Source/HBIOS/asci.asm +++ b/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 diff --git a/Source/HBIOS/ay38910.asm b/Source/HBIOS/ay38910.asm index 4a10196a..0eac02b2 100644 --- a/Source/HBIOS/ay38910.asm +++ b/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 diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index 5a996286..2e3b1adb 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/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 ; diff --git a/Source/HBIOS/cfg_ezz80.asm b/Source/HBIOS/cfg_ezz80.asm index fe01a1c7..5d8b1fd0 100644 --- a/Source/HBIOS/cfg_ezz80.asm +++ b/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 diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index aebb4956..95680f9c 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/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 ; diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index 62dfd646..d2e61d32 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/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 ; diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 41add6c6..6db938cd 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/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 ; diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index ddeafa9f..c68e7406 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/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 ; diff --git a/Source/HBIOS/cfg_rcz280.asm b/Source/HBIOS/cfg_rcz280.asm new file mode 100644 index 00000000..99ea07a4 --- /dev/null +++ b/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) diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index 0e8d5ca3..050bbe10 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/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 diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 4c4242f7..e7ee36c0 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/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 diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index 720d839e..37e07b37 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/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 ; diff --git a/Source/HBIOS/cfg_zeta.asm b/Source/HBIOS/cfg_zeta.asm index 6793d291..6fdf350e 100644 --- a/Source/HBIOS/cfg_zeta.asm +++ b/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 diff --git a/Source/HBIOS/cfg_zeta2.asm b/Source/HBIOS/cfg_zeta2.asm index fd95b4d2..daf6eb27 100644 --- a/Source/HBIOS/cfg_zeta2.asm +++ b/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 diff --git a/Source/HBIOS/diskdefs b/Source/HBIOS/diskdefs index a03e42f0..db9ef4b2 100644 --- a/Source/HBIOS/diskdefs +++ b/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 diff --git a/Source/HBIOS/eipc.inc b/Source/HBIOS/eipc.inc new file mode 100644 index 00000000..6497e63d --- /dev/null +++ b/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 diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index a2a4575a..0dcbe16c 100644 --- a/Source/HBIOS/hbios.asm +++ b/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 ; diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 3c0452ff..90478171 100644 --- a/Source/HBIOS/std.asm +++ b/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 diff --git a/Source/HBIOS/tms.asm b/Source/HBIOS/tms.asm index 3d16b754..9a97ec8c 100644 --- a/Source/HBIOS/tms.asm +++ b/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" diff --git a/Source/HBIOS/z180.inc b/Source/HBIOS/z180.inc index 5ceb0bae..196019ff 100644 --- a/Source/HBIOS/z180.inc +++ b/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 diff --git a/Source/HBIOS/z280.inc b/Source/HBIOS/z280.inc new file mode 100644 index 00000000..25e280e0 --- /dev/null +++ b/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 diff --git a/Source/Images/Build.cmd b/Source/Images/Build.cmd index c24948a3..78efeccd 100644 --- a/Source/Images/Build.cmd +++ b/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 diff --git a/Source/Images/BuildDisk.ps1 b/Source/Images/BuildDisk.ps1 index 8401560f..22e6b971 100644 --- a/Source/Images/BuildDisk.ps1 +++ b/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) } diff --git a/Source/Images/Makefile b/Source/Images/Makefile index be90202f..7df9706f 100644 --- a/Source/Images/Makefile +++ b/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/null + @LC_ALL=en_US.US-ASCII tr '\000' '\345' /dev/null +blankhd512: + @echo Making Blank HD512 of size $(HD512SIZE)k + @LC_ALL=en_US.US-ASCII tr '\000' '\345' /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' $$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 \ diff --git a/Source/Images/ReadMe.txt b/Source/Images/ReadMe.txt index fb4338e2..3954af2f 100644 --- a/Source/Images/ReadMe.txt +++ b/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 [] + +where: + + specifies the disk contents (e.g., "cpm22") + 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 + 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. diff --git a/Source/Images/diskdefs b/Source/Images/diskdefs index a03e42f0..db9ef4b2 100644 --- a/Source/Images/diskdefs +++ b/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 diff --git a/Source/Images/hdnew_prefix.bin b/Source/Images/hd1024_prefix.dat similarity index 99% rename from Source/Images/hdnew_prefix.bin rename to Source/Images/hd1024_prefix.dat index 5ddb7549..1ec28fa1 100644 Binary files a/Source/Images/hdnew_prefix.bin and b/Source/Images/hd1024_prefix.dat differ diff --git a/Source/Makefile b/Source/Makefile index 3df2bab5..1184c624 100644 --- a/Source/Makefile +++ b/Source/Makefile @@ -11,5 +11,6 @@ SUBDIRS += HBIOS CPM3 SUBDIRS += ZPM3 #SUBDIRS += BPBIOS SUBDIRS += Images +SUBDIRS += ZRC TOOLS = ../Tools include $(TOOLS)/Makefile.inc diff --git a/Source/ZPM3/Build.cmd b/Source/ZPM3/Build.cmd index 93ad5eb5..5430167b 100644 --- a/Source/ZPM3/Build.cmd +++ b/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 diff --git a/Source/ZPM3/Clean.cmd b/Source/ZPM3/Clean.cmd index c2471144..3c953899 100644 --- a/Source/ZPM3/Clean.cmd +++ b/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 diff --git a/Source/ZPM3/Makefile b/Source/ZPM3/Makefile index db2c13dc..46d98359 100644 --- a/Source/ZPM3/Makefile +++ b/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/ diff --git a/Source/ZPM3/autotog.com b/Source/ZPM3/autotog.com deleted file mode 100644 index 3c7a5980..00000000 Binary files a/Source/ZPM3/autotog.com and /dev/null differ diff --git a/Source/ZPM3/autotog.z80 b/Source/ZPM3/autotog.z80 index b59a6663..9862af58 100644 --- a/Source/ZPM3/autotog.z80 +++ b/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.' diff --git a/Source/ZPM3/clrhist.com b/Source/ZPM3/clrhist.com deleted file mode 100644 index 02a39c83..00000000 Binary files a/Source/ZPM3/clrhist.com and /dev/null differ diff --git a/Source/ZPM3/setz3.com b/Source/ZPM3/setz3.com deleted file mode 100644 index 4ddb374f..00000000 Binary files a/Source/ZPM3/setz3.com and /dev/null differ diff --git a/Source/ZRC/Build.cmd b/Source/ZRC/Build.cmd new file mode 100644 index 00000000..e4be1f07 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/Source/ZRC/Clean.cmd b/Source/ZRC/Clean.cmd new file mode 100644 index 00000000..fa12c5c7 --- /dev/null +++ b/Source/ZRC/Clean.cmd @@ -0,0 +1,3 @@ +@echo off +setlocal + diff --git a/Source/ZRC/Makefile b/Source/ZRC/Makefile new file mode 100644 index 00000000..aed2c80b --- /dev/null +++ b/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 >$@ \ No newline at end of file diff --git a/Source/ZRC/ZRC Disk Layout.txt b/Source/ZRC/ZRC Disk Layout.txt new file mode 100644 index 00000000..7f8e3975 --- /dev/null +++ b/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) \ No newline at end of file diff --git a/Source/ZRC/zrc_cfldr.bin b/Source/ZRC/zrc_cfldr.bin new file mode 100644 index 00000000..9a28f43b Binary files /dev/null and b/Source/ZRC/zrc_cfldr.bin differ diff --git a/Source/ZRC/zrc_fill_1.bin b/Source/ZRC/zrc_fill_1.bin new file mode 100644 index 00000000..705bedcd Binary files /dev/null and b/Source/ZRC/zrc_fill_1.bin differ diff --git a/Source/ZRC/zrc_fill_2.bin b/Source/ZRC/zrc_fill_2.bin new file mode 100644 index 00000000..294f4016 Binary files /dev/null and b/Source/ZRC/zrc_fill_2.bin differ diff --git a/Source/ZRC/zrc_fill_3.bin b/Source/ZRC/zrc_fill_3.bin new file mode 100644 index 00000000..a461d083 Binary files /dev/null and b/Source/ZRC/zrc_fill_3.bin differ diff --git a/Source/ZRC/zrc_mon.bin b/Source/ZRC/zrc_mon.bin new file mode 100644 index 00000000..ae6c886c Binary files /dev/null and b/Source/ZRC/zrc_mon.bin differ diff --git a/Source/ZRC/zrc_ptbl.bin b/Source/ZRC/zrc_ptbl.bin new file mode 100644 index 00000000..ca19be4c Binary files /dev/null and b/Source/ZRC/zrc_ptbl.bin differ diff --git a/Source/ver.inc b/Source/ver.inc index f36d1c00..a6197fe2 100644 --- a/Source/ver.inc +++ b/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" diff --git a/Source/ver.lib b/Source/ver.lib index d14c4276..3ac52dcf 100644 --- a/Source/ver.lib +++ b/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 diff --git a/Tools/Makefile.inc b/Tools/Makefile.inc index f0018217..46d8dc48 100644 --- a/Tools/Makefile.inc +++ b/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 \ diff --git a/Tools/cpmtools/diskdefs b/Tools/cpmtools/diskdefs index a03e42f0..db9ef4b2 100644 --- a/Tools/cpmtools/diskdefs +++ b/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 diff --git a/Tools/simh/Sim.cfg b/Tools/simh/Sim.cfg index a8c126f5..dc1e25ab 100644 --- a/Tools/simh/Sim.cfg +++ b/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 diff --git a/Tools/unix/uz80as/Makefile b/Tools/unix/uz80as/Makefile index 712c47b0..b99987aa 100644 --- a/Tools/unix/uz80as/Makefile +++ b/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 \