diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index ffdb3fcb..173c62d4 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -1,10 +1,15 @@ Version 2.7.1 -- WBW: Support loading from image file (UNA FSFAT) +------------- +- WBW: Replace XZ with XP compatible build (no functional changes) +- WBW: Reset BDOS serial number on warm start +- WBW: Turn off DRAM refresh on Z180 (fixes Z180 CPU speed detection) Version 2.7.0 ------------- - WBW: Memory page reorganization - WBW: Support for Zeta 2 (from Sergey Kiselev) +- WBW: Support loading from image file (UNA FSFAT) +- WBW: Dynamic CPU speed detection Version 2.6.5 ------------- diff --git a/ReadMe.txt b/ReadMe.txt index b95458bf..27a50270 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -8,12 +8,12 @@ Builders: Wayne Warthen (wwarthen@gmail.com) Douglas Goodall (douglas_goodall@mac.com) David Giles (vk5dg@internode.on.net) -Updated: 2015-04-02 -Version: 2.7.0 +Updated: 2015-04-07 +Version: 2.7.1 This is an adaptation of CP/M-80 2.2 and ZSDOS/ZCPR targeting ROMs for all N8VEM Z80 hardware variations -including SBC, Zeta, N8, and Mark IV. +including SBC 1/2, Zeta 1/2, N8, and Mark IV. NOTE: This is very much a work-in-progress. It is severely lacking appropriate documentation. I am @@ -90,7 +90,7 @@ UNA Variant ----------- RomWBW will now run under it's native BIOS (HBIOS) or -under UNA BIOS (UBIOS). There is a pre-built ROM +under UNA BIOS (UBIOS). There are pre-built ROM images for UNA in the Output directory. CP/M vs. ZSystem diff --git a/RomList.txt b/RomList.txt index 5e9d960d..0d127476 100644 --- a/RomList.txt +++ b/RomList.txt @@ -4,6 +4,23 @@ Refer to the descriptions below to select one that matches your hardware configuration, burn it, and use it. +All builds have the following: + - 512KB ROM Disk + - 512KB RAM Disk + - 38.4Kbps baud console + +All of the above can be modified by using +a custom build. See Build.txt in the +Doc directory. + +Note have all hard disk units are assumed to have +at least 2 slices and therefore two drive letters +are assigned per disk unit by default. However, +you can easily add/remove drive letters and slices +by using the ASSIGN command to modify drive +letter to disk/slice mapping on the fly at +the command line. + Note that there are no longer separate ROM images for CP/M and ZSystem. Both OS variants are now imbedded in the ROM @@ -11,264 +28,169 @@ image and you are given the ability to choose the one you want to boot at startup. -Note that all builds are now set for 512KB ROMs. -The builds will work fine in 1MB ROMs. If you -want to use the full 1MB ROM address space, just -do a cutom build. - -Note that all builds are now set for 38.4Kbps -baud rate on the console with 8 data bits, no -parity, and 1 stop bit. The baud rate can be -changed in the config file if you want to do a -custom build. - N8VEM_std.rom for N8VEM Z80 SBC V1/V2: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk (no floppy/IDE) - Drives A:=ROM, B:=RAM N8VEM_diskio.rom for N8VEM Z80 SBC V1/V2 + DISKIO: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via DISKIO - IDE support via DISKIO - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0-00, F:=IDE0-01, G:=IDE0-02, H:=IDE0-03 + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0:00, F:=IDE0:01 N8VEM_dide.rom for N8VEM Z80 SBC V1/V2 + DUAL IDE: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via DISKIO - IDE support via DISKIO - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0-00, F:=IDE0-01, G:=IDE0-02, H:=IDE0-03 + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0:00, F:=IDE0:01 N8VEM_diskio3.rom for N8VEM Z80 SBC V1/V2 + DISKIO3: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via DISKIO3 - IDE support via DISKIO3 - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0-00, F:=IDE0-01, G:=IDE0-02, H:=IDE0-03 + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0:00, F:=IDE0:01 N8VEM_diskio3+cvdu.rom for N8VEM Z80 SBC V1/V2 + DISKIO3: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via DISKIO3 - IDE support via DISKIO3 - ColorVDU board support - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0-00, F:=IDE0-01, G:=IDE0-02, H:=IDE0-03 - - NOTE: Console defaults to CRT & PS/2 Keyboard. Short JP2 - (one bit input port) to use the serial port as the console. + - Console defaults to VGA & PS/2 Keyboard. Short JP2 (CONFIG) + to use the serial port as the console. + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0:00, F:=IDE0:01 N8VEM_ppide.rom for N8VEM Z80 SBC V1/V2 + PPIDE: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - PPIDE support via built-in PPI - - Drives A:=ROM, B:=RAM, C:=PPIDE0-00, D:=PPIDE0-01, E:=PPIDE0-02, F:=PPIDE0-03 + - Drives A:=ROM, B:=RAM, C:=PPIDE0:00, D:=PPIDE0:01 N8VEM_ppisd.rom for N8VEM Z80 SBC V1/V2 + PPISD: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - PPISD support - - Drives A:=ROM, B:=RAM, C:=SD0-00, D:=SD0-01, E:=SD0-02, F:=SD0-03 + - Drives A:=ROM, B:=RAM, C:=SD0:00, D:=SD0:01 N8VEM_dsd.rom for N8VEM Z80 SBC V1/V2 + Dual SD: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Dual SD support - - Drives A:=ROM, B:=RAM, C:=SD0-00, D:=SD0-01, E:=SD0-02, F:=SD0-03 + - Drives A:=ROM, B:=RAM, C:=SD0:00, D:=SD0:01 N8VEM_propio.rom for N8VEM Z80 SBC V1/V2 + PROPIO: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - SD Card support via PropIO - VGA console support via PropIO - PS/2 Keyboard support via PropIO - - Drives A:=ROM, B:=RAM, C:=PRPSD0-00, D:=PRPSD0-01, E:=PRPSD0-02, F:=PRPSD0-03 - - WARNING: You must use the RomWBW specific firmware - for the Propeller found in the Support directory! - - NOTE: Console defaults to VGA & PS/2 Keyboard. Short JP2 - (one bit input port) to use the serial port as the console. + - You *MUST* use the RomWBW specific firmware + for the Propeller found in the Support directory! + - Console defaults to VGA & PS/2 Keyboard. Short JP2 (CONFIG) + to use the serial port as the console. + - Drives A:=ROM, B:=RAM, C:=PRPSD0:00, D:=PRPSD0:01 N8VEM_mfp.rom for N8VEM Z80 SBC V1/V2: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk (no floppy) - - Drives A:=ROM, B:=RAM, C:=PPIDE0-00, D:=PPIDE0-01, E:=PPIDE0-02, F:=PPIDE0-03 - IDE support via Multifunction / PIC - Second UART via Multifunction / PIC + - Drives A:=ROM, B:=RAM, C:=PPIDE0:00, D:=PPIDE0:01 N8VEM_ci.rom for N8VEM Z80 SBC V1/V2: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk (no floppy/IDE) - - Drives A:=ROM, B:=RAM - Cassette Interface mapped to RDR/PUN + - Drives A:=ROM, B:=RAM N8VEM_simh.rom for N8VEM SIMH Simulator: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk (no floppy/IDE) - - Drives A:=ROM, B:=RAM, C:=HDSK0-00, D:=HDSK0-01, E:=HDSK0-02, F:=HDSK0-03 + - SIMH HDSK (simulated hard disk) support + - Drives A:=ROM, B:=RAM, C:=HDSK0:00, D:=HDSK0:01 N8VEM_rf.rom for N8VEM Z80 SBC V1/2 + RAM Flopppy: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk (no floppy/IDE) - RAM Floppy support - Drives A:=ROM, B:=RAM, C:=RF0, D:=RF1 N8VEM_vdu.rom for N8VEM Z80 SBC V1/V2: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - VDU board support - Drives A:=ROM, B:=RAM - NOTE: Console defaults to CRT & PS/2 Keyboard. Short JP2 (one bit input port) to use the serial port as the console. N8VEM_cvdu.rom for N8VEM Z80 SBC V1/V2: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - ColorVDU board support + - Console defaults to VGA & PS/2 Keyboard. Short JP2 (CONFIG) + to use the serial port as the console. - Drives A:=ROM, B:=RAM - - NOTE: Console defaults to CRT & PS/2 Keyboard. Short JP2 - (one bit input port) to use the serial port as the console. ZETA_std.rom for Zeta Z80 SBC: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via built-in FDC - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=PPIDE00-0, F:=PPIDE0-01, G:=PPIDE0-02, H:=PPIDE0-03 + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=PPIDE00-0, F:=PPIDE0:01 ZETA_ppide.rom for Zeta Z80 SBC + PPIDE: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via built-in FDC - PPIDE support via built-in PPI - - Drives A:=ROM, B:=RAM, C:=PPIDE0-00, D:=PPIDE0-01, E:=PPIDE0-02, F:=PPIDE0-03 + - Drives A:=ROM, B:=RAM, C:=PPIDE0:00, D:=PPIDE0:01 ZETA_ppisd.rom for Zeta Z80 SBC + PPISD: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via built-in FDC - PPISD support - - Drives A:=ROM, B:=RAM, C:=SD0-00, D:=SD0-01, E:=SD0-02, F:=SD0-03 + - Drives A:=ROM, B:=RAM, C:=SD0:00, D:=SD0:01 ZETA_ppp.rom for Zeta Z80 SBC w/ ParPortProp: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via built-in FDC - SD Card support via ParPortProp - VGA console support via ParPortProp - PS/2 Keyboard support via ParPortProp - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=PPPSD0-00, F:=PPPSD0-01, F:=PPPSD0-02, G:=PPPSD0-03 - - WARNING: You must use the RomWBW specific firmware - for the Propeller found in the Support directory! - - NOTE: Console defaults to VGA & PS/2 Keyboard. Short JP1 (CONFIG) - to use the serial port as the console. + - You *MUST* use the RomWBW specific firmware + for the Propeller found in the Support directory! + - Console defaults to VGA & PS/2 Keyboard. Short JP1 (CONFIG) + to use the serial port as the console. + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=PPPSD0:00, F:=PPPSD0:01 ZETA2_std.rom for Zeta 2 Z80 SBC: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via built-in FDC - PPIDE support via built-in PPI - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=PPIDE00-0, F:=PPIDE0-01, G:=PPIDE0-02, H:=PPIDE0-03 + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=PPIDE00-0, F:=PPIDE0:01 ZETA2_ppide.rom for Zeta 2 Z80 SBC + PPIDE: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via built-in FDC - PPIDE support via built-in PPI - - Drives A:=ROM, B:=RAM, C:=PPIDE0-00, D:=PPIDE0-01, E:=PPIDE0-02, F:=PPIDE0-03 + - Drives A:=ROM, B:=RAM, C:=PPIDE0:00, D:=PPIDE0:01 ZETA2_ppisd.rom for Zeta 2 Z80 SBC + PPISD: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via built-in FDC - PPISD support - - Drives A:=ROM, B:=RAM, C:=SD0-00, D:=SD0-01, E:=SD0-02, F:=SD0-03 + - Drives A:=ROM, B:=RAM, C:=SD0:00, D:=SD0:01 ZETA2_ppp.rom for Zeta 2 Z80 SBC w/ ParPortProp: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk - Floppy support via built-in FDC - SD Card support via ParPortProp - VGA console support via ParPortProp - PS/2 Keyboard support via ParPortProp - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=PPPSD0-00, F:=PPPSD0-01, F:=PPPSD0-02, G:=PPPSD0-03 - - WARNING: You must use the RomWBW specific firmware - for the Propeller found in the Support directory! - - NOTE: Console defaults to VGA & PS/2 Keyboard. Short JP1 (CONFIG) - to use the serial port as the console. + - You *MUST* use the RomWBW specific firmware + for the Propeller found in the Support directory! + - Console defaults to VGA & PS/2 Keyboard. Short JP1 (CONFIG) + to use the serial port as the console. + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=PPPSD0:00, F:=PPPSD0:01 N8_2511.rom for N8 2511 Z180: - - Assumes oscillator frequency of 18.432MHz - - CPU clock at X1 (18.432MHz) - - 512KB ROM, 1MB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk + - Assumes CPU oscillator frequency of 18.432MHz - Floppy support via built-in FDC - SD card support via built-in SD card slot - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=SD0-00, F:=SD0-01, G:=SD0-02, H:=SD0-03 + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=SD0:00, F:=SD0:01 N8_2312.rom for N8 2312 Z180: - - Assumes oscillator frequency of 18.432MHz - - CPU clock at X1 (18.432MHz) - - 512KB ROM, 1MB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk + - Assumes CPU oscillator frequency of 18.432MHz - Floppy support via built-in FDC - SD card support via built-in SD card slot - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=SD0-00, F:=SD0-01, G:=SD0-02, H:=SD0-03 + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=SD0:00, F:=SD0:01 MK4_std.rom for Mark IV Z180 SBC: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk (no floppy/IDE) + - Assumes CPU oscillator frequency of 18.432MHz - Onboard SD Card - Onboard IDE - - Drives A:=ROM, B:=RAM, C:=SD0-0, D:=SD0-1, E:=IDE0-00, F:=IDE0-01 + - Drives A:=ROM, B:=RAM, C:=SD0-0, D:=SD0-1, E:=IDE0:00, F:=IDE0:01 MK4_diskio3.rom for Mark IV Z180 SBC: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk (no floppy/IDE) + - Assumes CPU oscillator frequency of 18.432MHz - Floppy support via DISKIO3 - IDE support via DISKIO3 - - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0-00, F:=IDE0-01, G:=IDE0-02, H:=IDE0-03 + - Drives A:=ROM, B:=RAM, C:=FD0, D:=FD1, E:=IDE0:00, F:=IDE0:01 MK4_propio.rom for Mark IV Z180 SBC: - - 512KB ROM, 512KB RAM - - 38.4KB serial console baud rate - - Basic ROM/RAM disk (no floppy/IDE) + - Assumes CPU oscillator frequency of 18.432MHz - SD Card support via PropIO - VGA console support via PropIO - PS/2 Keyboard support via PropIO - - Drives A:=ROM, B:=RAM, C:=PRPSD0-00, D:=PRPSD0-01, E:=PRPSD0-02, F:=PRPSD0-03 - - WARNING: You must use the RomWBW specific firmware - for the Propeller found in the Support directory! - - NOTE: Console defaults to VGA & PS/2 Keyboard. Short JP2 - (one bit input port) to use the serial port as the console. + - You *MUST* use the RomWBW specific firmware + for the Propeller found in the Support directory! + - Drives A:=ROM, B:=RAM, C:=PRPSD0:00, D:=PRPSD0:01 - UNA_std.rom for all UNA support platforms (SBC V1/2, Zeta, N8, Mark IV) - - 512KB ROM + UNA_std.rom for all UNA supported platforms (SBC V1/2, Zeta, Mark IV) - Initial baud rate is 9600, but can be configured - Resources are managed dynamically by UNA BIOS - Refer to UNA project for more details + - Drive assignments occur dynamically based on UNA config diff --git a/Source/BIOS/cbios.asm b/Source/BIOS/cbios.asm index 5a53aa0d..536b8ca4 100644 --- a/Source/BIOS/cbios.asm +++ b/Source/BIOS/cbios.asm @@ -292,6 +292,17 @@ WBOOT: RST 08 ; DO IT #ENDIF ; + ; SOME APPLICATIONS STEAL THE BDOS SERIAL NUMBER STORAGE + ; AREA (FIRST 6 BYTES OF BDOS) ASSUMING IT WILL BE RESTORED + ; AT WARM BOOT BY RELOADING OF BDOS. WE DON'T WANT TO RELOAD + ; BDOS, SO INSTEAD THE SERIAL NUMBER STORAGE IS FIXED HERE + ; SO THAT THE DRI SERIAL NUMBER VERIFICATION DOES NOT FAIL + LD HL,BDOS_LOC + LD B,6 +WBOOT1: LD (HL),0 + INC HL + DJNZ WBOOT1 +; ; FALL THRU TO INVOKE CP/M ; ;__________________________________________________________________________________________________ diff --git a/Source/BIOS/hbios.asm b/Source/BIOS/hbios.asm index bb78624c..c5a263cc 100644 --- a/Source/BIOS/hbios.asm +++ b/Source/BIOS/hbios.asm @@ -578,6 +578,14 @@ HB_START: ; #IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) + ; SET BASE FOR CPU IO REGISTERS + LD A,CPU_BASE + OUT0 (CPU_ICR),A + + ; DISABLE REFRESH + XOR A + OUT0 (CPU_RCR),A + ; SET DEFAULT WAIT STATES TO ACCURATELY MEASURE CPU SPEED LD A,$F0 OUT0 (CPU_DCNTL),A diff --git a/Source/BIOS/loader.asm b/Source/BIOS/loader.asm index 66b6d449..41083f41 100644 --- a/Source/BIOS/loader.asm +++ b/Source/BIOS/loader.asm @@ -93,6 +93,10 @@ START: LD A,CPU_BASE OUT0 (CPU_ICR),A + ; DISABLE REFRESH + XOR A + OUT0 (CPU_RCR),A + ; SET DEFAULT CPU CLOCK MULTIPLIERS (XTAL / 2) XOR A OUT0 (CPU_CCR),A diff --git a/Source/BIOS/ver.inc b/Source/BIOS/ver.inc index c4f70c4f..2e9018a2 100644 --- a/Source/BIOS/ver.inc +++ b/Source/BIOS/ver.inc @@ -1,5 +1,5 @@ #DEFINE RMJ 2 #DEFINE RMN 7 -#DEFINE RUP 0 +#DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "2.7.0" +#DEFINE BIOSVER "2.7.1" diff --git a/Tools/zx/zx.exe b/Tools/zx/zx.exe index 25df16e4..a7f67259 100644 Binary files a/Tools/zx/zx.exe and b/Tools/zx/zx.exe differ diff --git a/Tools/zx/zxdbg.exe b/Tools/zx/zxdbg.exe index 24525f17..b59e7a5b 100644 Binary files a/Tools/zx/zxdbg.exe and b/Tools/zx/zxdbg.exe differ