Compare commits

..

1 Commits
v2.5.2 ... v2.5

Author SHA1 Message Date
wayne
a1326737ee Version 2.5 2013-06-23 04:55:14 +00:00
62 changed files with 402 additions and 749 deletions

View File

@@ -1,14 +1,14 @@
/************************************/
/* applvers.h dwg - 2.5.2.18 */
/* applvers.h dwg - 2.5.0.15 */
/************************************/
#define A_RMJ 2
#define A_RMN 5
#define A_RUP 2
#define A_RTP 18
#define A_RUP 0
#define A_RTP 16
#define A_MONTH 9
#define A_DAY 29
#define A_MONTH 6
#define A_DAY 23
#define A_YEAR 2013
#define A_YR 13

View File

@@ -2,15 +2,15 @@
A$RMJ equ 2
A$RMN equ 5
A$RUP equ 2
A$RTP equ 18
A$RUP equ 0
A$RTP equ 16
A$MONTH equ 9
A$DAY equ 29
A$MONTH equ 6
A$DAY equ 23
A$YEAR equ 2013
date macro
dat db ' 9/29/2013$'
dat db ' 6/23/2013$'
endm
serial macro

View File

@@ -131,7 +131,7 @@ prtcfg1(pSysCfg)
pCfg->conbaud);
pager();
printf ("Default Video Display: %s, Default Emulation: %s",
VDAName[(pCfg->defvda) >> 4], EmuName[pCfg->defemu]);
VDAName[pCfg->defvda], EmuName[pCfg->defemu]);
pager();
printf ("Current Terminal Type: %s",
TermName[pCfg->termtype]);

View File

@@ -1,11 +1,3 @@
Version 2.5.2
-------------
- WBW: Added initial support for RAM Floppy
Version 2.5.1
-------------
- WBW: Fix PPIDE bug
Version 2.5
-----------
- WBW: Implemented CRT driver model (video and keyboard)

View File

@@ -1,9 +1,5 @@
Assembling the RomWBW firmware under Linux.
Note: Updated on 6/25/2013 to eliminate the need for the separate Linux
makefile. The standard makefile now has conditionals to allow it to be
used under Windows of Linux (I hope) --WW
This method has been used under Ubuntu Linux and may have to be adapted for
other distributions. It is a bit more involved than the Windows procedure.
@@ -29,17 +25,24 @@ These are all done from a terminal. (: is end of the command prompt)
1. Go to the RomWBW Source directory.e.g.
:cd /n8vem/RomWBW/current/Source
2. The Linux version of TASM can't handle the CR-LF line endings. So from the
2. I have included a new makefile called "makefile.linux" in the Source
directory. Rename this to just "makefile". Edit it to suit your targets and
if you have changed the default location for TASM.
:~/RomWBW/current/Source mv makefile.linux makefile
3. The Linux version of TASM can't handle the CR-LF line endings. So from the
command prompt use dos2unix to convert all the source files.
:~/RomWBW/current/Source dos2unix -f *.asm *.inc *.z80 *.lib diskdefs
3. You'll have to alter the disk definitions for the cpmtools package to cater
4. You'll have to alter the disk definitions for the cpmtools package to cater
for the new roms. Easiest way is to copy the one given in the source over the
old. This must be done as superuser.
:~/RomWBW/current/Source sudo cp diskdefs /etc/cpmtools/diskdefs
4. From now on it's the same as using the DOS/Windows instructions in Build.txt.
5. From now on it's the same as using the DOS/Windows instructions in Build.txt.
Make any last changes, go to the Source directory and make
:~/RomWBW/current/Source make clean ; make
DGG

Binary file not shown.

Binary file not shown.

View File

@@ -7,7 +7,7 @@ echo which means that local scripts can be run without
echo being signed. This is required to use the RomWBW
echo build process.
echo.
PowerShell -command Write-Host "Your PowerShell ExecutionPolicy is currently set to: `'(Get-ExecutionPolicy)`'"
PowerShell -command Write-Host "Your PowerShell ExecutionPolicy is currently (Get-ExecutionPolicy)"
echo.
echo In order to modify the ExecutionPolicy, this command
echo file *MUST* be run with administrator privileges.
@@ -24,6 +24,6 @@ echo Attempting to change Execution Policy...
echo.
PowerShell Set-ExecutionPolicy RemoteSigned
echo.
PowerShell -command Write-Host "Your new PowerShell ExecutionPolicy is now set to: `'(Get-ExecutionPolicy)`'"
PowerShell -command Write-Host "Your new PowerShell ExecutionPolicy is now (Get-ExecutionPolicy)"
echo.
pause

View File

@@ -8,8 +8,8 @@ Builders: Wayne Warthen (wwarthen@gmail.com)
Douglas Goodall (douglas_goodall@mac.com)
David Giles (vk5dg@internode.on.net)
Updated: 2013-09-28
Version: 2.5.2
Updated: 2013-06-23
Version: 2.5
This is an adaptation of CP/M-80 2.2 and ZSDOS/ZCPR
targeting ROMs for all N8VEM Z80 hardware variations

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -108,13 +108,6 @@ DRI CP/M (BDOS & CCP)
- Basic ROM/RAM disk (no floppy/IDE)
- Drives A:=ROM, B:=RAM, C:=HDSK0-00, D:=HDSK0-01, E:=HDSK0-02, F:=HDSK0-03
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
@@ -260,13 +253,6 @@ ZSYSTEM (ZSDOS & ZCPR)
- Basic ROM/RAM disk (no floppy/IDE)
- Drives A:=ROM, B:=RAM, C:=HDSK0-00, D:=HDSK0-01, E:=HDSK0-02, F:=HDSK0-03
N8VEM_rf_z.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
ZETA_std_z.rom for Zeta Z80 SBC:
- 512KB ROM, 512KB RAM
- 38.4KB serial console baud rate

View File

@@ -46,7 +46,7 @@ WBOOTE JP WBOOT ; #1 - WARM START
; easily located by external programs. They transfger control to routines
; that are located somewhere within the main section of the CBIOS.
;
JP PANIC ; #17 - SEL. RAM BANK FOR LOW32K (deprecated, use HBIOS)
JP BNKSEL ; #17 - SEL. RAM BANK FOR LOW32K (obsolete, use HBIOS)
JP GETDSK ; #18 - Get Disk Info (device/unit/lu)
JP SETDSK ; #19 - Set Disk Into (device/unit/lu)
JP GETINFO ; #20 - Get BIOS Info Base Ptr
@@ -101,13 +101,15 @@ WBOOT:
IM 1
;
LD SP,ISTACK ; STACK FOR INITIALIZATION
;
LD B,BF_SYSBNKCPY ; B = FUNCTION = BANK COPY
LD C,$81 ; C = BANK = RAM BANK 1
LD HL,$0800 ; SOURCE = $800, CCP CACHE IN RAM BANK 1
LD DE,CPM_LOC ; DESTINATION IS LOCATION OF ACTIVE CCP
LD IX,CCPSIZ ; SIZE OF CCP
RST 08
;
; RELOAD COMMAND PROCESSOR FROM CACHE
LD A,1 ; SELECT RAM BANK 1
CALL RAMPG ; DO IT
LD HL,0800H ; LOCATION IN RAM BANK 1 OF COMMAND PROCESSOR CACHE
LD DE,CPM_LOC ; LOCATION OF ACTIVE COMMAND PROCESSOR
LD BC,CCPSIZ ; SIZE OF COMMAND PROCESSOR
LDIR ; COPY
CALL RAMPGZ ; RESTORE RAM PAGE 0
;
; FALL THRU TO INVOKE CP/M
;
@@ -376,6 +378,12 @@ READWRITE:
JR BLKRW
;
;__________________________________________________________________________________________________
BNKSEL:
;
LD A,C
JP RAMPG
;
;__________________________________________________________________________________________________
GETDSK:
;
; INPUT: C=DRIVE # (0=A, 1=B, ... P=16)
@@ -1425,14 +1433,6 @@ SIZ_HDSK_DPH .EQU $ - ORG_HDSK_DPH
.ECHO SIZ_HDSK_DPH
.ECHO " bytes.\n"
#ENDIF
#IF (RFENABLE)
ORG_RF_DPH .EQU $
#INCLUDE "rf_dph.asm"
SIZ_RF_DPH .EQU $ - ORG_RF_DPH
.ECHO "RF DPH occupies "
.ECHO SIZ_RF_DPH
.ECHO " bytes.\n"
#ENDIF
;
; DISK PARAMETER BLOCKS
;
@@ -1496,24 +1496,6 @@ DPB_RAM:
.DW 0 ; OFF: RESERVED TRACKS = 0 TRK
;__________________________________________________________________________________________________
;
; 4MB RAM FLOPPY DRIVE, 32 TRKS, 1024 SECS/TRK, 128 BYTES/SEC
; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 256
; SEC/TRK ENGINEERED SO THAT AFTER DEBLOCKING, SECTOR NUMBER OCCUPIES 1 BYTE (0-255)
;
.DB (2048 / 128) ; RECORDS PER BLOCK (BLS / 128)
DPB_RF:
.DW 1024 ; SPT: SECTORS PER TRACK
.DB 4 ; BSH: BLOCK SHIFT FACTOR
.DB 15 ; BLM: BLOCK MASK
.DB 0 ; EXM: EXTENT MASK
.DW 2047 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = (4MB / 2K BLS) - 1 = 2047
.DW 255 ; DRM: DIR ENTRIES - 1 = 256 - 1 = 255
.DB 11110000B ; AL0: DIR BLK BIT MAP, FIRST BYTE
.DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE
.DW 0 ; CKS: DIRECTORY CHECK VECTOR SIZE = 256 / 4
.DW 0 ; OFF: RESERVED TRACKS = 0 TRK
;__________________________________________________________________________________________________
;
; 8MB HARD DISK DRIVE, 65 TRKS, 1024 SECS/TRK, 128 BYTES/SEC
; BLOCKSIZE (BLS) = 4K, DIRECTORY ENTRIES = 128
; SEC/TRK ENGINEERED SO THAT AFTER DEBLOCKING, SECTOR NUMBER OCCUPIES 1 BYTE (0-255)
@@ -1650,7 +1632,6 @@ DPB_MAP:
.DW DPB_FD360 ; MID_FD360
.DW DPB_FD120 ; MID_FD120
.DW DPB_FD111 ; MID_FD111
.DW DPB_RF ; MID_RF
;
DPB_CNT .EQU ($ - DPB_MAP) / 2
;
@@ -1726,10 +1707,6 @@ DPH_MAP:
.DW HDSKDPH2
.DW HDSKDPH3
#ENDIF
#IF (DSKMAP == DM_RF)
.DW RFDPH0
.DW RFDPH1
#ENDIF
#IF (DSKMAP != DM_ROM)
.DW MDDPH0
#ENDIF
@@ -1776,10 +1753,6 @@ DPH_MAP:
.DW HDSKDPH2
.DW HDSKDPH3
#ENDIF
#IF ((DSKMAP != DM_RF) & RFENABLE)
.DW RFDPH0
.DW RFDPH1
#ENDIF
#ENDIF ; CUSTOM_DPHMAP
;
DPH_CNT .EQU ($ - DPH_MAP) / 2
@@ -1882,6 +1855,9 @@ INIT:
; SETUP A TEMP STACK IN UPPER 32K
LD SP,ISTACK ; STACK FOR INITIALIZATION
; ENSURE RAM PAGE ZERO ACTIVE
CALL RAMPGZ
; THIS INIT CODE WILL BE OVERLAID, SO WE ARE GOING
; TO MODIFY THE BOOT ENTRY POINT TO CAUSE A PANIC
; TO EASILY IDENTIFY IF SOMETHING TRIES TO INVOKE
@@ -1916,13 +1892,14 @@ INIT1:
CALL WRITESTR
CALL NEWLINE
; SAVE COMMAND PROCESSOR TO CACHE IN RAM BANK 1
LD B,BF_SYSBNKCPY ; B = FUNCTION = BANK COPY
LD C,$81 ; C = BANK = RAM BANK 1
LD HL,CPM_LOC ; SOURCE IS LOCATION OF ACTIVE CCP
LD DE,$0800 ; DESTINATION = $800, CCP CACHE IN RAM BANK 1
LD IX,CCPSIZ ; SIZE OF CCP
RST 08
; SAVE COMMAND PROCESSOR TO CACHE IN RAM1
LD A,1
CALL RAMPG
LD HL,CPM_LOC ; LOCATION OF ACTIVE COMMAND PROCESSOR
LD DE,0800H ; LOCATION IN RAM 1 OF COMMAND PROCESSOR CACHE
LD BC,CCPSIZ ; SIZE OF COMMAND PROCESSOR
LDIR
CALL RAMPGZ
; SYSTEM INITIALIZATION
CALL BLKRES ; RESET DISK (DE)BLOCKING ALGORITHM

View File

@@ -83,8 +83,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -83,8 +83,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -91,8 +91,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU TRUE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU TRUE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -91,8 +91,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -1,103 +0,0 @@
;
;==================================================================================================
; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC
;==================================================================================================
;
; BUILD CONFIGURATION OPTIONS
;
CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS
;
BOOTCON .EQU CIODEV_UART ; CONSOLE DEVICE FOR BOOT MESSAGES (MUST BE PRIMARY SERIAL PORT FOR PLATFORM)
DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, CIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON
ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED)
CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT
DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220)
DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...)
TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!!
CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA)
;
DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DM_PPPSD, DM_HDSK
;
DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE)
;
UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE)
UARTCNT .EQU 1 ; NUMBER OF UARTS
UART0IOB .EQU $68 ; UART0 IOBASE
UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE
UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY)
UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!)
;
ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT
ASCI0BAUD .EQU CONBAUD ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0)
ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1)
;
VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT
CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT
UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT
N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT
;
DEFIOBYTE .EQU $00 ; DEFAULT INITIAL VALUE FOR CP/M IOBYTE, $00=TTY, $01=CRT (MUST HAVE CRT HARDWARE)
ALTIOBYTE .EQU DEFIOBYTE ; ALT INITIAL VALUE (USED WHEN CONFIG JUMPER SHORTED)
WRTCACHE .EQU TRUE ; ENABLE WRITE CACHING IN CBIOS (DE)BLOCKING ALGORITHM
DSKTRACE .EQU FALSE ; ENABLE TRACING OF CBIOS DISK FUNCTION CALLS
;
MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED)
;
FDENABLE .EQU FALSE ; TRUE FOR FLOPPY SUPPORT
FDMODE .EQU FDMODE_DIO ; FDMODE_DIO, FDMODE_ZETA, FDMODE_DIDE, FDMODE_N8, FDMODE_DIO3
FDTRACE .EQU 1 ; 0=SILENT, 1=FATAL ERRORS, 2=ALL ERRORS, 3=EVERYTHING (ONLY RELEVANT IF FDENABLE = TRUE)
FDMEDIA .EQU FDM144 ; FDM720, FDM144, FDM360, FDM120 (ONLY RELEVANT IF FDENABLE = TRUE)
FDMEDIAALT .EQU FDM720 ; ALTERNATE MEDIA TO TRY, SAME CHOICES AS ABOVE (ONLY RELEVANT IF FDMAUTO = TRUE)
FDMAUTO .EQU TRUE ; SELECT BETWEEN MEDIA OPTS ABOVE AUTOMATICALLY
;
IDEENABLE .EQU FALSE ; TRUE FOR IDE SUPPORT
IDEMODE .EQU IDEMODE_DIO ; IDEMODE_DIO, IDEMODE_DIDE
IDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
IDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!)
IDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
PPIDEENABLE .EQU FALSE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE)
PPIDEIOB .EQU $60 ; PPIDE IOBASE
PPIDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPIDEENABLE = TRUE)
PPIDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!)
PPIDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
PPIDESLOW .EQU FALSE ; ADD DELAYS TO HELP PROBLEMATIC HARDWARE (TRY THIS IF PPIDE IS UNRELIABLE)
;
SDENABLE .EQU FALSE ; TRUE FOR SD SUPPORT
SDMODE .EQU SDMODE_JUHA ; SDMODE_JUHA, SDMODE_CSIO, SDMODE_UART, SDMODE_PPI, SDMODE_DSD
SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER
;
PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!)
PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!)
PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE)
PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO)
;
PPPENABLE .EQU FALSE ; TRUE FOR PARPORTPROP SUPPORT
PPPSDENABLE .EQU TRUE ; TRUE FOR PARPORTPROP SD SUPPORT
PPPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPPENABLE = TRUE)
PPPSDCAPACITY .EQU 64 ; CAPACITY OF PPP SD DEVICE (IN MB)
PPPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO)
;
HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU TRUE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242
KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE)
;
TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT
ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT
ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABLE = TRUE)
;
BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE
BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU TRUE ; TRUE FOR HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -1,103 +0,0 @@
;
;==================================================================================================
; ROMWBW 2.X CONFIGURATION FOR ZETA W/ PPISD
;==================================================================================================
;
; BUILD CONFIGURATION OPTIONS
;
CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS
;
BOOTCON .EQU CIODEV_UART ; CONSOLE DEVICE FOR BOOT MESSAGES (MUST BE PRIMARY SERIAL PORT FOR PLATFORM)
DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, CIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON
ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED)
CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT
DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220)
DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...)
TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!!
CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA)
;
DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DM_PPPSD, DM_HDSK
;
DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE)
;
UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE)
UARTCNT .EQU 1 ; NUMBER OF UARTS
UART0IOB .EQU $68 ; UART0 IOBASE
UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE
UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY)
UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!)
;
ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT
ASCI0BAUD .EQU CONBAUD ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0)
ASCI1BAUD .EQU CONBAUD ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1)
;
VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT
CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT
UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT
N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT
;
DEFIOBYTE .EQU $00 ; DEFAULT INITIAL VALUE FOR CP/M IOBYTE, $00=TTY, $01=CRT (MUST HAVE CRT HARDWARE)
ALTIOBYTE .EQU DEFIOBYTE ; ALT INITIAL VALUE (USED WHEN CONFIG JUMPER SHORTED)
WRTCACHE .EQU TRUE ; ENABLE WRITE CACHING IN CBIOS (DE)BLOCKING ALGORITHM
DSKTRACE .EQU FALSE ; ENABLE TRACING OF CBIOS DISK FUNCTION CALLS
;
MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED)
;
FDENABLE .EQU TRUE ; TRUE FOR FLOPPY SUPPORT
FDMODE .EQU FDMODE_ZETA ; FDMODE_DIO, FDMODE_ZETA, FDMODE_DIDE, FDMODE_N8, FDMODE_DIO3
FDTRACE .EQU 1 ; 0=SILENT, 1=FATAL ERRORS, 2=ALL ERRORS, 3=EVERYTHING (ONLY RELEVANT IF FDENABLE = TRUE)
FDMEDIA .EQU FDM144 ; FDM720, FDM144, FDM360, FDM120 (ONLY RELEVANT IF FDENABLE = TRUE)
FDMEDIAALT .EQU FDM720 ; ALTERNATE MEDIA TO TRY, SAME CHOICES AS ABOVE (ONLY RELEVANT IF FDMAUTO = TRUE)
FDMAUTO .EQU TRUE ; SELECT BETWEEN MEDIA OPTS ABOVE AUTOMATICALLY
;
IDEENABLE .EQU FALSE ; TRUE FOR IDE SUPPORT
IDEMODE .EQU IDEMODE_DIO ; IDEMODE_DIO, IDEMODE_DIDE
IDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
IDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!)
IDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
PPIDEENABLE .EQU FALSE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE)
PPIDEIOB .EQU $60 ; PPIDE IOBASE
PPIDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPIDEENABLE = TRUE)
PPIDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!)
PPIDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
PPIDESLOW .EQU FALSE ; ADD DELAYS TO HELP PROBLEMATIC HARDWARE (TRY THIS IF PPIDE IS UNRELIABLE)
;
SDENABLE .EQU TRUE ; TRUE FOR SD SUPPORT
SDMODE .EQU SDMODE_PPI ; SDMODE_JUHA, SDMODE_CSIO, SDMODE_UART, SDMODE_PPI, SDMODE_DSD
SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER
;
PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!)
PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!)
PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE)
PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO)
;
PPPENABLE .EQU FALSE ; TRUE FOR PARPORTPROP SUPPORT
PPPSDENABLE .EQU TRUE ; TRUE FOR PARPORTPROP SD SUPPORT
PPPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPPENABLE = TRUE)
PPPSDCAPACITY .EQU 64 ; CAPACITY OF PPP SD DEVICE (IN MB)
PPPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO)
;
HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242
KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE)
;
TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT
ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT
ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABLE = TRUE)
;
BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE
BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -87,8 +87,6 @@ HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB)
;
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
;
PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD
PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE)
KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242

View File

@@ -149,9 +149,6 @@ HB_INITTBL:
#IF (HDSKENABLE)
.DW HDSK_INIT
#ENDIF
#IF (RFENABLE)
.DW RF_INIT
#ENDIF
#IF (PPKENABLE)
.DW PPK_INIT
#ENDIF
@@ -329,10 +326,6 @@ DIO_DISPATCH1:
#IF (HDSKENABLE)
CP DIODEV_HDSK
JP Z,HDSK_DISPATCH
#ENDIF
#IF (RFENABLE)
CP DIODEV_RF
JP Z,RF_DISPATCH
#ENDIF
CALL PANIC
;
@@ -741,15 +734,6 @@ SIZ_HDSK .EQU $ - ORG_HDSK
.ECHO " bytes.\n"
#ENDIF
#IF (RFENABLE)
ORG_RF .EQU $
#INCLUDE "rf.asm"
SIZ_RF .EQU $ - ORG_RF
.ECHO "RF occupies "
.ECHO SIZ_RF
.ECHO " bytes.\n"
#ENDIF
#IF (PPKENABLE)
ORG_PPK .EQU $
#INCLUDE "ppk.asm"

View File

@@ -524,7 +524,7 @@ dmloop:
ld (BL_TMPDRV),a ; save it for printing if needed
call CBIOS_GETDSK ; get drive into, c still has drive number
or a ; set flags on result
jp nz,dmdone ; error, skip this drive
jr nz,dmdone ; error, skip this drive
ld (BL_TMPLU),de ; save lu for later
ld a,b ; device/unit into a for matching below
@@ -570,10 +570,6 @@ dmloop:
cp DIODEV_HDSK ; SIMH HDSK
jr z,dmprt
ld de,str_devrf
cp DIODEV_RF ; RAM FLOPPY
jr z,dmprt
jr dmdone
dmprt:
@@ -774,7 +770,6 @@ str_devsd .DB "SD$"
str_devprpsd .DB "PRPSD$"
str_devpppsd .DB "PPPSD$"
str_devhdsk .DB "HDSK$"
str_devrf .DB "RF$"
#ENDIF
;
;==================================================================================================

View File

@@ -99,12 +99,8 @@ ifndef ROMNAME
ROMNAME := $(PLATFORM)_$(CONFIG)
endif
ifndef "windir"
CPMTOOLSPATH := ../tools/cpmtools
CPMCP := $(CPMTOOLSPATH)/cpmcp.exe
else
CPMCP := /usr/bin/cpmcp
endif
ROMDSKFILES := ../RomDsk/$(SYS)_$(ROMSIZE)KB/*.* ../RomDsk/cfg_$(PLATFORM)_$(CONFIG)/*.* ../Apps/Output/*.*
@@ -116,16 +112,11 @@ DOSBIN := zsdos.bin
CPBIN := zcprw.bin
endif
OUTDIR := ../Output
OUTDIR := ..\Output
ifndef "windir"
TASMPATH := ../tools/tasm32
TASM := $(TASMPATH)/tasm.exe
TASMTABS := $(TASMPATH)
else
TASM := /usr/local/bin/tasm
TASMTABS := /usr/local/lib
endif
export TASMTABS
ASMOPT80 := -t$(CPU) -g3
@@ -156,9 +147,8 @@ $(error Usage: make PLATFORM=[N8VEM|ZETA|N8|S2I|S100] CONFIG=<config> ROMSIZE=[5
endif
endif
all: $(OUTDIR)/$(ROMNAME).rom $(OUTDIR)/$(ROMNAME).sys $(OUTDIR)/$(ROMNAME).com
all: $(OUTDIR)\$(ROMNAME).rom $(OUTDIR)\$(ROMNAME).sys $(OUTDIR)\$(ROMNAME).com
ifndef "windir"
build.inc:
echo ; >$@
echo ; RomWBW Configured for $(PLATFORM) $(CONFIG), %date:~4,10% %time% >>$@
@@ -178,28 +168,6 @@ build.inc:
echo ; >>$@
echo #INCLUDE "config_$(PLATFORM)_$(CONFIG).asm" >>$@
echo ; >>$@
else
echo ';' >$@
echo -n '; RomWBW Configured for '$(CONFIG)'' >>$@
date >> $@
echo ';' >>$@
echo -n '#DEFINE TIMESTAMP "' >>$@
date '+%Y %m %d %H%M"' >>$@
echo ';' >>$@
echo '; INCLUDE PLATFORM SPECIFIC DEVICE DEFINITIONS' >>$@
echo ';' >>$@
echo 'ROMSIZE .EQU '$(ROMSIZE)'' >>$@
echo 'PLATFORM .EQU PLT_'$(PLATFORM)'' >>$@
echo '#IF (PLATFORM == PLT_S100)' >>$@
echo ' #INCLUDE "std-s100.inc"' >>$@
echo '#ELSE' >>$@
echo ' #INCLUDE "std-n8vem.inc"' >>$@
echo '#ENDIF' >>$@
echo ';' >>$@
echo '#INCLUDE "config_'$(PLATFORM)'_'$(CONFIG)'.asm"' >>$@
echo ';' >>$@
endif
bootrom.bin : bootrom.asm std.asm build.inc ver.inc
$(TASM) $(ASMOPT80) $< $@
@@ -224,55 +192,27 @@ dbgmon.bin: dbgmon.asm std.asm ver.inc build.inc
syscfg.bin: syscfg.asm std.asm build.inc ver.inc
os.bin: $(CPBIN) $(DOSBIN) cbios.bin
ifndef "windir"
copy /B $(subst $(SPACE),+,$(^)) "$@"
else
cat $(CPBIN) $(DOSBIN) cbios.bin >>$@
endif
copy /B $(subst $(SPACE),+,$(^)) $@
rom0.bin: pgzero.bin bootrom.bin syscfg.bin loader.bin romfill.bin dbgmon.bin os.bin hbfill.bin
ifndef "windir"
copy /B $(subst $(SPACE),+,$(^)) "$@"
else
cat pgzero.bin bootrom.bin syscfg.bin loader.bin romfill.bin dbgmon.bin os.bin hbfill.bin >>$@
endif
copy /B $(subst $(SPACE),+,$(^)) $@
rom1.bin: pgzero.bin bootrom.bin syscfg.bin loader.bin hbios.bin
ifndef "windir"
copy /B $(subst $(SPACE),+,$(^)) "$@"
else
cat pgzero.bin bootrom.bin syscfg.bin loader.bin hbios.bin >>$@
endif
copy /B $(subst $(SPACE),+,$(^)) $@
$(OUTDIR)/$(ROMNAME).rom: rom0.bin rom1.bin $(ROMDISKFILES) $(OUTDIR)/$(ROMNAME).sys
ifndef "windir"
$(OUTDIR)\$(ROMNAME).rom: rom0.bin rom1.bin $(ROMDISKFILES) $(OUTDIR)\$(ROMNAME).sys
copy blank$(ROMSIZE)KB.dat RomDisk.tmp
$(CPMCP) -f rom$(ROMSIZE)KB RomDisk.tmp $(ROMDSKFILES) 0:
$(CPMCP) -f rom$(ROMSIZE)KB RomDisk.tmp ../Output/$(ROMNAME).sys 0:$(SYS).sys
copy /B rom0.bin+rom1.bin+RomDisk.tmp "$@"
else
cp blank$(ROMSIZE)KB.dat RomDisk.tmp
$(CPMCP) -f rom$(ROMSIZE)KB RomDisk.tmp $(ROMDSKFILES) 0:
$(CPMCP) -f rom$(ROMSIZE)KB RomDisk.tmp ../Output/$(ROMNAME).sys 0:$(SYS).sys
cat rom0.bin rom1.bin RomDisk.tmp >>$@
endif
copy /B rom0.bin+rom1.bin+RomDisk.tmp $@
$(OUTDIR)/$(ROMNAME).com: bootapp.bin syscfg.bin loader.bin hbios.bin dbgmon.bin os.bin
ifndef "windir"
copy /B $(subst $(SPACE),+,$(^)) "$@"
else
cat bootapp.bin syscfg.bin loader.bin hbios.bin dbgmon.bin os.bin >>$@
endif
$(OUTDIR)\$(ROMNAME).com: bootapp.bin syscfg.bin loader.bin hbios.bin dbgmon.bin os.bin
copy /B $(subst $(SPACE),+,$(^)) $@
$(OUTDIR)/$(ROMNAME).sys: prefix.bin os.bin
ifndef "windir"
copy /B $(subst $(SPACE),+,$(^)) "$@"
else
cat prefix.bin os.bin >>$@
endif
$(OUTDIR)\$(ROMNAME).sys: prefix.bin os.bin
copy /B $(subst $(SPACE),+,$(^)) $@
clean:
ifndef "windir"
if exist *.bin del *.bin
if exist *.com del *.com
if exist *.img del *.img
@@ -281,9 +221,4 @@ ifndef "windir"
if exist *.exp del *.exp
if exist *.tmp del *.tmp
if exist build.inc del build.inc
if exist "$(OUTDIR)/*.*" erase /Q "$(OUTDIR)/*.*"
else
rm -f *.bin *.com *.img *.rom *.lst *.exp *.tmp
rm -f build.inc
rm -f $(OUTDIR)/*.*
endif
if exist $(OUTDIR)\*.* erase /Q $(OUTDIR)\*.*

206
Source/makefile.linux Normal file
View File

@@ -0,0 +1,206 @@
#
# GCC based makefile
#
# 06/18/2012 2.0 dgg - updated for v2.0
#
# 02/22/2012 1.5 dgg - modified for assembly under Linux
#
# 01/11/2011 1.4 wbw - added support for ZSDOS/ZDDOS/ZCPR
#
# 12/22/2011 1.3 wbw - removed all built-in config stuff, operation is now entirely
# dependent on variables CONFIG, ROMSIZE, and CPU
#
# 12/02/2011 1.3 wbw - replaced makever functionality with built-in makefile stuff
#
# 11/29/2011 1.3 dwg - uses makever to generate stdincl.inc from the version.hpp file
#
# 11/19/2011 1.3 dwg - added n8vem_vdu to "usage" and "all" rules
# enhanced clean to get files in $(OUTDIR)
# added custom to "all" rule
#
# The operation of this makefile is entirely dependent on the setting
# of three variables: CONFIG, ROMSIZE, and CPU:
#
# CONFIG determines which configuration to build which means that
# it will determine the config_xxx.asm config settings file to
# include as well as the output file names. So, for example,
# if CONFIG is "n8vem", the config_n8vem.asm file will be used
# for BIOS configuration settings and the output files will be
# n8vem.rom, n8vem.sys, and n8vem.com.
#
# ROMSIZE specifies the size of the ROM image to be produced and
# currently must be either "1024" for a 1MB ROM or "512" for a
# 512KB ROM.
#
# CPU specifies the instruction set to be used in assembly and
# must be either "80" for Z80 or "180" for Z180. Currently,
# you should use 180 for N8 ROMs and 80 for everything else.
#
# SYS specifies the system variant to build in. CPM will
# build traditional CP/M. ZSYS will build ZSystem which
# currently means ZSDOS 1.2 & ZCPR 1.0
#
# ROMNAME names the output file. It defaults to
# CONFIG. The output of the build will be:
# <ROMNAME>.rom, <ROMNAME>.sys, and <ROMNAME>.com.
#
# These variables can be passed into the makefile by the command
# line, hardcoded in this file, or set as environment variables
# in the OS. To use a command line, use the following format:
#
# make CONFIG=<config> ROMSIZE=<romsize> CPU=<cpu> SYS=<sys> ROMNAME=<romname>
#
# An example of this is:
#
# make CONFIG=n8vem ROMSIZE=512 CPU=80 SYS=CPM ROMNAME=n8vem
#
# Alternatively, you can specify the variables by hardcoding them
# in this file. To do so, uncomment the five lines after these
# comments and change the values as desired.
# If the variables are specified this way, you would then invoke
# the make by simply using "make"
#
# If you want to set them as environment variables, you can
# do this with commands like the following at an OS command
# prompt or in a batch file:
#
# SET CONFIG=n8vem
# SET ROMSIZE=512
# SET CPU=80
# SET SYS=CPM
# SET ROMNAME=n8vem
#
# Note: use "make clean" to delete temporary and output files
#
# A good idea is to do a clean with every build and this can be
# accomplished on one command line doing something like this:
#
# make clean all CONFIG=n8vem ROMSIZE=512 CPU=80 SYS=CPM ROMNAME=n8vem
#
# or, if you are using hard coded variables above:
#
# make clean all
#
# Uncomment and update values below to hardcode settings:
#
#CONFIG := n8vem
#ROMSIZE := 512
#CPU := 80
#SYS := CPM
#ROMNAME := n8vem
ifndef ROMNAME
ROMNAME := $(CONFIG)
endif
CPMCP := /usr/bin/cpmcp
ROMDSKFILES := ../RomDsk/$(SYS)_$(ROMSIZE)KB/*.* ../RomDsk/cfg_$(CONFIG)/*.* ../Apps/core/*.*
ifeq "$(SYS)" "CPM"
DOSBIN := bdosb01.bin
CPBIN := ccpb03.bin
else
DOSBIN := zsdos.bin
CPBIN := zcprw.bin
endif
OUTDIR := ../Output
TASM := /usr/local/bin/tasm
TASMTABS := /usr/local/lib
export TASMTABS
ASMOPT80 := -t$(CPU) -g3
ASMOPT85 := -t85 -g3
ASM80 := $(TASM) $(ASMOPT80)
ASM85 := $(TASM) $(ASMOPT85)
ASMIMG := $(TASM) $(ASMOPT80) -b -fE5
NULL :=
SPACE := ${NULL} ${NULL}
%.bin: %.asm
$(ASM80) $< $@
%.com: %.asm
$(ASM80) $< $@
%.img: %.asm
$(ASMIMG) $< $@
%.exe: %.cpp
$(CC) $< -o $@
ifneq ($(MAKECMDGOALS),clean)
ifeq "$(and $(CONFIG), $(ROMSIZE), $(CPU), $(SYS), $(ROMNAME))" ""
$(error Usage: make CONFIG=<config> ROMSIZE=[512|1024] CPU=[80|180] SYS=[CPM|ZSYS] ROMNAME=<romname>)
endif
endif
all: $(OUTDIR)/$(ROMNAME).rom $(OUTDIR)/$(ROMNAME).sys $(OUTDIR)/$(ROMNAME).com
build.inc:
echo ';' >$@
echo -n '; RomWBW Configured for '$(CONFIG)' ' >>$@
date >> $@
echo ; >>$@
echo -n '#DEFINE TIMESTAMP "' >>$@
date '+%Y %m %d %H%M"' >>$@
echo ; >>$@
echo '#DEFINE VARIANT "WBW-$(USERNAME)"' >>$@
echo ; >>$@
echo ROMSIZE .EQU $(ROMSIZE) >>$@
echo ; >>$@
echo '#INCLUDE "config_'$(CONFIG)'.asm"' >>$@
echo ; >>$@
bootrom.bin : bootrom.asm std.asm build.inc ver.inc
$(TASM) $(ASMOPT80) $< $@
bootapp.bin : bootapp.asm std.asm build.inc ver.inc
$(TASM) $(ASMOPT80) $< $@
pgzero.bin : pgzero.asm std.asm build.inc ver.inc
$(TASM) $(ASMOPT80) $< $@
zcprw.bin : zcprw.asm zcpr.asm
$(TASM) $(ASMOPT85) $< $@
zsdos.bin : zsdos.asm zsdos.lib zsdos-gp.z80
$(TASM) $(ASMOPT80) $< $@
cbios.bin: cbios.asm fd_dph.asm ide_dph.asm ppide_dph.asm sd_dph.asm prp_dph.asm ppp_dph.asm uart.asm vdu.asm std.asm ver.inc build.inc
$(TASM) $(ASMOPT80) -dBLD_SYS=SYS_$(SYS) $< $@
dbgmon.bin: dbgmon.asm std.asm ver.inc build.inc
syscfg.bin: syscfg.asm std.asm build.inc ver.inc
os.bin: $(CPBIN) $(DOSBIN) cbios.bin
cat $(CPBIN) $(DOSBIN) cbios.bin >>$@
rom0.bin: pgzero.bin bootrom.bin syscfg.bin loader.bin romfill.bin dbgmon.bin os.bin hbfill.bin
cat pgzero.bin bootrom.bin syscfg.bin loader.bin romfill.bin dbgmon.bin os.bin hbfill.bin >>$@
rom1.bin: pgzero.bin bootrom.bin syscfg.bin loader.bin bnk1.bin
cat pgzero.bin bootrom.bin syscfg.bin loader.bin bnk1.bin >>$@
$(OUTDIR)/$(ROMNAME).rom: rom0.bin rom1.bin $(ROMDISKFILES) $(OUTDIR)/$(ROMNAME).sys
cp blank$(ROMSIZE)KB.dat RomDisk.tmp
$(CPMCP) -f rom$(ROMSIZE)KB RomDisk.tmp $(ROMDSKFILES) 0:
$(CPMCP) -f rom$(ROMSIZE)KB RomDisk.tmp ../Output/$(ROMNAME).sys 0:$(SYS).sys
cat rom0.bin rom1.bin RomDisk.tmp >>$@
$(OUTDIR)/$(ROMNAME).com: bootapp.bin syscfg.bin loader.bin bnk1.bin dbgmon.bin os.bin
cat bootapp.bin syscfg.bin loader.bin bnk1.bin dbgmon.bin os.bin >>$@
$(OUTDIR)/$(ROMNAME).sys: prefix.bin os.bin
cat prefix.bin os.bin >>$@
clean:
rm -f *.bin *.com *.img *.rom *.lst *.exp *.tmp
rm -f build.inc
rm -f $(OUTDIR)/*.*

View File

@@ -21,12 +21,12 @@
IDELSB .EQU PPIDEIOB + 0 ; LSB
IDEMSB .EQU PPIDEIOB + 1 ; MSB
IDECTL .EQU PPIDEIOB + 2 ; CONTROL SIGNALS
PPICTL .EQU PPIDEIOB + 3 ; PPI (8255) CONTROL PORT
PPI1CONT .EQU PPIDEIOB + 3 ; CONTROL BYTE PPI 82C55
;
; PPI control bytes for read and write to IDE drive
;
RD_IDE_8255 .EQU %10010010 ; IDE_8255_CTL OUT, IDE_8255_LSB/MSB INPUT
WR_IDE_8255 .EQU %10000000 ; ALL THREE PORTS OUTPUT
RD_IDE_8255 .EQU 10010010B ; IDE_8255_CTL OUT, IDE_8255_LSB/MSB INPUT
WR_IDE_8255 .EQU 10000000B ; ALL THREE PORTS OUTPUT
;
; IDE CONTROL LINES FOR USE WITH IDE_8255_CTL. CHANGE THESE 8
; CONSTANTS TO REFLECT WHERE EACH SIGNAL OF THE 8255 EACH OF THE
@@ -34,14 +34,14 @@ WR_IDE_8255 .EQU %10000000 ; ALL THREE PORTS OUTPUT
; BE ON THE SAME PORT, BUT THESE 8 LINES LET YOU CONNECT THEM TO
; WHICHEVER PINS ON THAT PORT.
;
PPIDE_A0_LINE .EQU $01 ; DIRECT FROM 8255 TO IDE INTERFACE
PPIDE_A1_LINE .EQU $02 ; DIRECT FROM 8255 TO IDE INTERFACE
PPIDE_A2_LINE .EQU $04 ; DIRECT FROM 8255 TO IDE INTERFACE
PPIDE_CS0_LINE .EQU $08 ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_CS1_LINE .EQU $10 ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_WR_LINE .EQU $20 ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_RD_LINE .EQU $40 ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_RST_LINE .EQU $80 ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_A0_LINE .EQU 01H ; DIRECT FROM 8255 TO IDE INTERFACE
PPIDE_A1_LINE .EQU 02H ; DIRECT FROM 8255 TO IDE INTERFACE
PPIDE_A2_LINE .EQU 04H ; DIRECT FROM 8255 TO IDE INTERFACE
PPIDE_CS0_LINE .EQU 08H ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_CS1_LINE .EQU 10H ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_WR_LINE .EQU 20H ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_RD_LINE .EQU 40H ; INVERTER BETWEEN 8255 AND IDE INTERFACE
PPIDE_RST_LINE .EQU 80H ; INVERTER BETWEEN 8255 AND IDE INTERFACE
;
;------------------------------------------------------------------
; MORE SYMBOLIC CONSTANTS... THESE SHOULD NOT BE CHANGED, UNLESS OF
@@ -66,24 +66,24 @@ PPIDE_ASTTS .EQU PPIDE_CS1_LINE + PPIDE_A2_LINE + PPIDE_A1_LINE + PPIDE_A0_LI
;
; IDE COMMAND CONSTANTS. THESE SHOULD NEVER CHANGE.
;
PPIDE_CMDRECAL .EQU $10
PPIDE_CMDREAD .EQU $20
PPIDE_CMDWRITE .EQU $30
PPIDE_CMDINIT .EQU $91
PPIDE_CMDID .EQU $EC
PPIDE_CMDSPINDOWN .EQU $E0
PPIDE_CMDSPINUP .EQU $E1
PPIDE_CMDSETFEAT .EQU $EF
PPIDECMD_RECAL .EQU 010H
PPIDECMD_READ .EQU 020H
PPIDECMD_WRITE .EQU 030H
PPIDECMD_INIT .EQU 091H
PPIDECMD_ID .EQU 0ECH
PPIDECMD_SPINDOWN .EQU 0E0H
PPIDECMD_SPINUP .EQU 0E1H
PPIDECMD_SETFEAT .EQU 0EFH
;
PPIDE_RCOK .EQU 0
PPIDE_RCCMDERR .EQU 1
PPIDE_RCRDYTO .EQU 2
PPIDE_RCBUFTO .EQU 3
PPIDERC_OK .EQU 0
PPIDERC_CMDERR .EQU 1
PPIDERC_RDYTO .EQU 2
PPIDERC_BUFTO .EQU 3
;
; UNIT CONFIGURATION
;
PPIDE_UNIT0 .DB %11100000 ; LBA, MASTER DEVICE
PPIDE_UNIT1 .DB %11110000 ; LBA, SLAVE DEVICE
PPIDE0_DEVICE .DB 11100000B ; LBA, MASTER DEVICE
PPIDE1_DEVICE .DB 11110000B ; LBA, SLAVE DEVICE
;
;
;
@@ -100,21 +100,17 @@ PPIDE_DISPATCH:
CALL PANIC
;
PPIDE_RD:
LD A,PPIDE_CMDREAD
LD (PPIDEP_CMD),A
JP PPIDE_RW
;
JP PPIDE_XREAD
PPIDE_WR:
LD A,PPIDE_CMDWRITE
LD (PPIDEP_CMD),A
JP PPIDE_RW
;
JP PPIDE_XWRITE
PPIDE_ST:
LD A,(PPIDE_STAT) ; LOAD STATUS
OR A ; SET FLAGS
RET
;
JP PPIDE_STATUS
PPIDE_MED:
JP PPIDE_MEDIA
;
; PPIDE_MEDIA
;
PPIDE_MEDIA:
LD A,MID_HD
RET
;
@@ -125,9 +121,6 @@ PPIDE_INIT:
LD A,IDELSB
CALL PRTHEXBYTE
PRTS(" UNITS=2$")
#IF (PPIDE8BIT)
PRTS(" 8BIT$")
#ENDIF
#IF (PPIDESLOW)
PRTS(" SLOW$")
#ENDIF
@@ -139,22 +132,59 @@ PPIDE_INIT:
;
;
;
PPIDE_STATUS:
LD A,(PPIDE_STAT) ; LOAD STATUS
OR A ; SET FLAGS
RET
;
;
;
PPIDE_XREAD:
LD A,PPIDECMD_READ
LD (PPIDEP_CMD),A
JP PPIDE_RW
;
;
;
PPIDE_XWRITE:
LD A,PPIDECMD_WRITE
LD (PPIDEP_CMD),A
JP PPIDE_RW
;
;
;
PPIDE_RW:
; INIT REQUIRED?
LD A,(PPIDE_STAT)
OR A ; SET FLAGS
JR Z,PPIDE_RW0 ; IF STATUS OK, BYPASS RESET
CALL PPIDE_RESET ; DO THE RESET
; NEED TO CHECK STATUS HERE!!!
PPIDE_RW0:
; CLEAR RESULTS
XOR A ; A = 0
LD (PPIDE_RC),A ; CLEAR RETURN CODE
LD (PPIDEP_STTS),A ; CLEAR SAVED STTS
LD (PPIDEP_ERR),A ; CLEAR SAVED ERR
; INIT REQUIRED?
LD A,(PPIDE_STAT)
OR A ; SET FLAGS
JR Z,PPIDE_RW0 ; IF STATUS OK, BYPASS RESET
CALL PPIDE_RESET ; DO THE RESET
#IF (PPIDE8BIT)
CALL PPIDE_WAITRDY
LD C,PPIDE_FEATURE ; IDE FEATURE REGISTER
LD A,01H ; VALUE := 1
CALL PPIDE_WRITE ; DO IT
LD C,PPIDE_COMMAND ; IDE COMMAND REGISTER
LD A,PPIDECMD_SETFEAT ; SET FEATURE
CALL PPIDE_WRITE ; DO IT
CALL PPIDE_WAITRDY
JP NC,PPIDE_ERR
CALL PPIDE_CHKERR ; CHECK FOR ERRORS
JP NC,PPIDE_ERR
#IF (PPIDETRACE >= 2)
CALL PPIDE_PRT
#ENDIF
#ENDIF
PPIDE_RW0:
CALL PPIDE_WAITRDY ; WAIT FOR DRIVE READY
JP NC,PPIDE_ERR
CALL PPIDE_SETUP ; SETUP CYL, TRK, HEAD
@@ -169,7 +199,7 @@ PPIDE_RW0:
JP NC,PPIDE_ERR
LD A,(PPIDEP_CMD) ; DISPATCH TO READ OR WRITE SPECIFIC LOGIC
CP PPIDE_CMDWRITE
CP PPIDECMD_WRITE
JP Z,PPIDE_RW1
CALL PPIDE_BUFRD ; READ BUFFER
@@ -208,55 +238,17 @@ PPIDE_OK:
;
;
PPIDE_RESET:
#IF (PPIDETRACE >= 2)
CALL NEWLINE
PRTX(PPIDESTR_PREFIX)
PRTS(" RESET$")
#ENDIF
#IF (PPIDETRACE >= 2)
CALL PC_PERIOD
#ENDIF
LD C,PPIDE_CONTROL ; IDE CONTROL REGISTER
LD A,000001110B ; NO INTERRUPTS, ASSERT RESET BOTH DRIVES
CALL PPIDE_WRITE ; DO IT
LD DE,8 ; DELAY ABOUT 200ms
CALL VDELAY
#IF (PPIDETRACE >= 2)
CALL PC_PERIOD
#ENDIF
LD C,PPIDE_CONTROL ; IDE CONTROL REGISTER
LD A,000000010B ; NO INTERRUPTS, DEASSERT RESET
CALL PPIDE_WRITE ; DO IT
XOR A ; STATUS OK
LD (PPIDE_STAT),A ; SAVE IT
#IF (PPIDE8BIT)
#IF (PPIDETRACE >= 2)
CALL PC_PERIOD
#ENDIF
CALL PPIDE_WAITRDY
#IF (PPIDETRACE >= 2)
CALL PC_PERIOD
#ENDIF
LD C,PPIDE_FEATURE ; IDE FEATURE REGISTER
LD A,01H ; VALUE := 1
CALL PPIDE_WRITE ; DO IT
#IF (PPIDETRACE >= 2)
CALL PC_PERIOD
#ENDIF
LD C,PPIDE_COMMAND ; IDE COMMAND REGISTER
LD A,PPIDE_CMDSETFEAT ; SET FEATURE
CALL PPIDE_WRITE ; DO IT
#IF (PPIDETRACE >= 2)
CALL PC_PERIOD
#ENDIF
#ENDIF
RET
;
;
@@ -281,7 +273,7 @@ PPIDE_WBSY:
SCF ; CARRY 1 = OK
RET
PPIDE_TO:
LD A,PPIDE_RCRDYTO
LD A,PPIDERC_RDYTO
LD (PPIDE_RC),A
XOR A ; CARRY 0 = TIMEOUT
RET
@@ -300,7 +292,7 @@ PPIDE_CHKERR:
CALL PPIDE_READ ; READ IT
LD (PPIDEP_ERR),A ; SAVE IT
;
LD A,PPIDE_RCCMDERR ; COMMAND ERROR
LD A,PPIDERC_CMDERR ; COMMAND ERROR
LD (PPIDE_RC),A ; SAVE IT
;
OR A ; CLEAR CF TO SIGNAL ERROR
@@ -325,7 +317,7 @@ PPIDE_WDRQ:
SCF ; CARRY 1 = OK
RET
PPIDE_TO2:
LD A,PPIDE_RCBUFTO
LD A,PPIDERC_BUFTO
LD (PPIDE_RC),A
XOR A ; CARRY 0 = TIMED OUT
RET
@@ -335,7 +327,7 @@ PPIDE_TO2:
PPIDE_BUFRD:
; SETUP PPI TO READ
LD A,RD_IDE_8255 ; READ CONFIG
OUT (PPICTL),A ; DO IT
OUT (PPI1CONT),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
;
; SELECT READ/WRITE IDE REGISTER
@@ -349,7 +341,7 @@ PPIDE_BUFRD:
; LOOP SETUP
LD HL,(DIOBUF) ; LOCATION OF BUFFER
LD B,0 ; 256 ITERATIONS
LD C,IDELSB ; SETUP C WITH IO PORT (LSB)
LD C,IDEMSB ; SETUP C WITH IO PORT (MSB)
;
CALL PPIDE_BUFRD1 ; FIRST PASS (FIRST 256 BYTES)
CALL PPIDE_BUFRD1 ; SECOND PASS (LAST 256 BYTES)
@@ -361,6 +353,9 @@ PPIDE_BUFRD:
RET
;
PPIDE_BUFRD1: ; START OF READ LOOP
#IF (!PPIDE8BIT)
DEC C ; MSB -> LSB
#ENDIF
LD A,D ; ASSERT READ
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
@@ -370,14 +365,10 @@ PPIDE_BUFRD1: ; START OF READ LOOP
INC C ; LSB -> MSB
INI ; GET AND SAVE NEXT BYTE
RECOVERY ; OPTIONAL SMALL DELAY
PUSH AF
DEC C ; MSB -> LSB
POP AF
#ENDIF
LD A,E ; DEASSERT READ
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
;
JR NZ,PPIDE_BUFRD1 ; LOOP UNTIL DONE
RET
;
@@ -385,22 +376,22 @@ PPIDE_BUFRD1: ; START OF READ LOOP
;
PPIDE_BUFWR:
; SETUP PPI TO WRITE
LD A,WR_IDE_8255 ; WRITE CONFIG
OUT (PPICTL),A ; DO IT
LD A,WR_IDE_8255 ; READ CONFIG
OUT (PPI1CONT),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
;
; SELECT READ/WRITE IDE REGISTER
LD A,PPIDE_DATA ; DATA REGISTER
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
LD E,A ; E := WRITE UNASSERTED
LD E,A ; E := READ UNASSERTED
XOR PPIDE_WR_LINE ; SWAP THE WRITE LINE BIT
LD D,A ; D := WRITE ASSERTED
LD D,A ; D := READ ASSERTED
;
; LOOP SETUP
LD HL,(DIOBUF) ; LOCATION OF BUFFER
LD B,0 ; 256 ITERATIONS
LD C,IDELSB ; SETUP C WITH IO PORT (LSB)
LD C,IDEMSB ; SETUP C WITH IO PORT (MSB)
;
CALL PPIDE_BUFWR1 ; FIRST PASS (FIRST 256 BYTES)
CALL PPIDE_BUFWR1 ; SECOND PASS (LAST 256 BYTES)
@@ -411,26 +402,23 @@ PPIDE_BUFWR:
RECOVERY ; OPTIONAL SMALL DELAY
RET
;
PPIDE_BUFWR1: ; START OF WRITE LOOP
PPIDE_BUFWR1: ; START OF READ LOOP
#IF (!PPIDE8BIT)
DEC C ; MSB -> LSB
#ENDIF
OUTI ; SEND NEXT BYTE OF BUFFER
RECOVERY ; OPTIONAL SMALL DELAY
#IF (!PPIDE8BIT)
INC C ; LSB -> MSB
OUTI ; SEND NEXT BYTE OF BUFFER
PUSH AF
DEC C ; MSB -> LSB
POP AF
RECOVERY ; OPTIONAL SMALL DELAY
#ENDIF
;
; TOGGLE THE WRITE LINE
LD A,D ; WRITE ASSERTED VALUE
LD A,D ; ASSERT WRITE
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
LD A,E ; WRITE UNASSERTED VALUE
LD A,E ; DEASSERT WRITE
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
;
JR NZ,PPIDE_BUFWR1 ; LOOP UNTIL DONE
RET
;
@@ -449,10 +437,12 @@ PPIDE_SETUP:
JP Z,PPIDE_SETUP_UNIT1
CALL PANIC
PPIDE_SETUP_UNIT0:
LD A,(PPIDE_UNIT0)
LD A,(PPIDE0_DEVICE)
; LD DE,(PPIDE0_OFFSET)
JP PPIDE_SETUP1
PPIDE_SETUP_UNIT1:
LD A,(PPIDE_UNIT1)
LD A,(PPIDE1_DEVICE)
; LD DE,(PPIDE1_OFFSET)
JP PPIDE_SETUP1
PPIDE_SETUP1:
LD C,PPIDE_HEAD ; IDE HEAD REGISTER
@@ -487,13 +477,11 @@ PPIDE_READ:
;
; SET PPI MODE TO READ CONFIGURATION
LD A,RD_IDE_8255 ; PPI MODE TO READ
OUT (PPICTL),A ; DO IT
OUT (PPI1CONT),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
;
; SELECT REQUESTED IDE REGISTER, THEN ASSERT READ
; SELECT REQUESTED IDE REGISTER AND ASSERT READ
LD A,C ; REGISTER SELECTION -> A
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
OR PPIDE_RD_LINE ; ASSERT READ
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
@@ -502,16 +490,10 @@ PPIDE_READ:
IN A,(IDELSB) ; READ LSB
RECOVERY ; OPTIONAL SMALL DELAY
PUSH AF ; SAVE IT FOR NOW
;
; ; DUMMY READ OF MSB
; IN A,(IDEMSB) ; READ LSB
; RECOVERY ; OPTIONAL SMALL DELAY
;
; CLEAN UP AND RETURN
LD A,C ; DEASSERT READ
OUT (IDECTL),A ; DO IT
XOR A ; RELEASE ALL BUS SIGNALS
OUT (IDECTL),A ; DO IT
XOR A ; ZERO A
OUT (IDECTL),A ; RELEASE ALL BUS SIGNALS
RECOVERY ; OPTIONAL SMALL DELAY
;
POP AF ; RECOVER THE DATA BYTE
@@ -526,22 +508,15 @@ PPIDE_WRITE:
;
; SET PPI MODE TO WRITE CONFIGURATION
LD A,WR_IDE_8255 ; PPI MODE TO WRITE
OUT (PPICTL),A ; DO IT
OUT (PPI1CONT),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
;
; SELECT REQUESTED IDE REGISTER
LD A,C ; REGISTER SELECTION -> A
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
; SET THE VALUE TO WRITE
POP AF ; GET VALUE BACK
OUT (IDELSB),A ; SET IDE LSB
RECOVERY ; OPTIONAL SMALL DELAY
;
; ; MSB ALWAYS GETS ZERO
; XOR A ; ZERO A
; OUT (IDEMSB),A ; SET IDE MSB
; OUT (IDELSB),A ; SET IDE MSB
; RECOVERY ; OPTIONAL SMALL DELAY
;
; PULSE THE WRITE LINE
@@ -549,13 +524,10 @@ PPIDE_WRITE:
OR PPIDE_WR_LINE ; ASSERT WRITE
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
LD A,C
OUT (IDECTL),A ; DO IT
RECOVERY ; OPTIONAL SMALL DELAY
;
; CLEAN UP AND RETURN
XOR A ; RELEASE ALL BUS SIGNALS
OUT (IDECTL),A ; DO IT
XOR A ; ZERO A
OUT (IDECTL),A ; RELEASE ALL BUS SIGNALS
RECOVERY ; OPTIONAL SMALL DELAY
;
RET ; RETURN
@@ -598,10 +570,10 @@ PPIDE_PRT:
CALL PC_LBKT
LD A,(PPIDEP_CMD)
LD DE,PPIDESTR_READ
CP PPIDE_CMDREAD
CP PPIDECMD_READ
JP Z,PPIDE_PRTCMD
LD DE,PPIDESTR_WRITE
CP PPIDE_CMDWRITE
CP PPIDECMD_WRITE
JP Z,PPIDE_PRTCMD
LD DE,PPIDESTR_UNKCMD
PPIDE_PRTCMD:
@@ -642,16 +614,16 @@ PPIDE_PRTCMD:
CALL PC_LBKT
LD A,(PPIDE_RC)
LD DE,PPIDESTR_RCOK
CP PPIDE_RCOK
CP PPIDERC_OK
JP Z,PPIDE_PRTRC
LD DE,PPIDESTR_RCCMDERR
CP PPIDE_RCCMDERR
CP PPIDERC_CMDERR
JP Z,PPIDE_PRTRC
LD DE,PPIDESTR_RCRDYTO
CP PPIDE_RCRDYTO
CP PPIDERC_RDYTO
JP Z,PPIDE_PRTRC
LD DE,PPIDESTR_RCBUFTO
CP PPIDE_RCBUFTO
CP PPIDERC_BUFTO
JP Z,PPIDE_PRTRC
LD DE,PPIDESTR_RCUNK
PPIDE_PRTRC:
@@ -692,6 +664,12 @@ PPIDEP_SEC .DB 0
PPIDEP_STTS .DB 0
PPIDEP_ERR .DB 0
;
;
;
;
;
;
;
; Error Register (ERR bit being set in the Status Register)
;
; Bit 7: BBK (Bad Block Detected) Set when a Bad Block is detected.
@@ -712,4 +690,4 @@ PPIDEP_ERR .DB 0
; Bit 3: DRQ (Data Request) Set when device is ready to transfer a word or byte of data to or from the host and the device.
; Bit 2: CORR (Corrected Data) Always set to 0.
; Bit 1: IDX (Index) Always set to 0.
; Bit 0: ERR (Error) Set when an error occurred during the previous ATA command.
; Bit 0: ERR (Error) Set when an error occurred during the previous ATA command.

View File

@@ -1,127 +0,0 @@
;
;==================================================================================================
; RAM FLOPPY DISK DRIVER
;==================================================================================================
;
;
;
RF_U0IO .EQU $A0
RF_U1IO .EQU $A4
;
; IO PORT OFFSETS
;
RF_DAT .EQU 0
RF_AL .EQU 1
RF_AH .EQU 2
RF_ST .EQU 3
;
;
;
RF_DISPATCH:
LD A,B ; GET REQUESTED FUNCTION
AND $0F
JR Z,RF_READ
DEC A
JR Z,RF_WRITE
DEC A
JR Z,RF_STATUS
DEC A
JR Z,RF_MEDIA
CALL PANIC
;
; RF_MEDIA
;
RF_MEDIA:
LD A,C ; DEVICE/UNIT IS IN C
AND $0F ; ISOLATE UNIT NUM
CP 2 ; CHECK FOR MAX UNIT EXCEEDED
CALL NC,PANIC ; PANIC IF TOO HIGH
LD A,MID_RF ; SET CORRECT MEDIA VALUE
RET
;
;
;
RF_INIT:
PRTS("RF: UNITS=2$")
;
XOR A ; INIT SUCCEEDED
RET ; RETURN
;
;
;
RF_STATUS:
XOR A ; STATUS ALWAYS OK
RET
;
;
;
RF_READ:
CALL RF_SETIO
CALL RF_SETADR
LD HL,(DIOBUF)
LD B,0
LD A,(RF_IO)
OR RF_DAT
LD C,A
INIR
INIR
XOR A
RET
;
;
;
RF_WRITE:
CALL RF_SETIO
LD A,(RF_IO)
OR RF_ST
LD C,A
IN A,(C)
BIT 0,A ; CHECK WRITE PROTECT
LD A,1 ; PREPARE TO RETURN FALSE (ERROR)
RET NZ ; WRITE PROTECTED!
CALL RF_SETADR
LD HL,(DIOBUF)
LD B,0
LD A,(RF_IO)
OR RF_DAT
LD C,A
OTIR
OTIR
XOR A
RET
;
;
;
RF_SETIO:
LD A,(HSTDSK) ; GET DEVICE/UNIT
AND $0F ; ISOLATE UNIT NUM
JR NZ,RF_SETIO1
LD A,RF_U0IO
JR RF_SETIO3
RF_SETIO1:
DEC A
JR NZ,RF_SETIO2
LD A,RF_U1IO
JR RF_SETIO3
RF_SETIO2:
CALL PANIC ; INVALID UNIT
RF_SETIO3:
LD (RF_IO),A
RET
;
;
;
RF_SETADR:
LD A,(RF_IO)
OR RF_AL
LD C,A
LD A,(HSTSEC)
OUT (C),A
LD A,(HSTTRK)
INC C
OUT (C),A
RET
;
;
;
RF_IO .DB 0

View File

@@ -1,30 +0,0 @@
;
;==================================================================================================
; RF DISK DRIVER - DATA
;==================================================================================================
;
; RAM FLOPPY 00
;
.DB DIODEV_RF + 0
RFDPH0 .DW 0000,0000
.DW 0000,0000
.DW DIRBF,DPB_RF
.DW RFCSV0,RFALV0
;
; RAM FLOPPY 01
;
.DB DIODEV_RF + 1
RFDPH1 .DW 0000,0000
.DW 0000,0000
.DW DIRBF,DPB_RF
.DW RFCSV1,RFALV1
;
RFCKS .EQU 0 ; CKS: 0 FOR NON-REMOVABLE MEDIA
RFALS .EQU 256 ; ALS: BLKS / 8 = 2048 / 8 = 256 (ROUNDED UP)
;
; BUFFERS
;
RFCSV0: .FILL RFCKS ; NO DIRECTORY CHECKSUM, NON-REMOVABLE DRIVE
RFALV0: .FILL RFALS ; MAX OF 2048 DATA BLOCKS
RFCSV1: .FILL RFCKS ; NO DIRECTORY CHECKSUM, NON-REMOVABLE DRIVE
RFALV1: .FILL RFALS ; MAX OF 2048 DATA BLOCKS

View File

@@ -24,7 +24,6 @@ DIODEV_SD .EQU $50
DIODEV_PRPSD .EQU $60
DIODEV_PPPSD .EQU $70
DIODEV_HDSK .EQU $80
DIODEV_RF .EQU $90
;
; VDA DEVICES (VIDEO DISPLAY ADAPTER)
;

View File

@@ -57,7 +57,6 @@ DM_SD .EQU 6 ; SD DRIVE PRIORITY
DM_PRPSD .EQU 7 ; PROPIO SD DRIVE PRIORITY
DM_PPPSD .EQU 8 ; PROPIO SD DRIVE PRIORITY
DM_HDSK .EQU 9 ; SIMH HARD DISK DRIVE PRIORITY
DM_RF .EQU 10 ; RAM FLOPPY PRIORITY
;
; FLOPPY DISK MEDIA SELECTIONS (ID'S MUST BE INDEX OF ENTRY IN FCD_TBL)
;
@@ -78,7 +77,6 @@ MID_FD144 .EQU 5
MID_FD360 .EQU 6
MID_FD120 .EQU 7
MID_FD111 .EQU 8
MID_RF .EQU 9
;
; FD MODE SELECTIONS
;

View File

@@ -1,7 +1,7 @@
#DEFINE RMJ 2
#DEFINE RMN 5
#DEFINE RUP 2
#DEFINE RTP 18
#DEFINE BIOSVER "2.5.2"
#DEFINE BIOSBLD "Build 18"
#DEFINE REVISION 500
#DEFINE RUP 0
#DEFINE RTP 16
#DEFINE BIOSVER "2.5"
#DEFINE BIOSBLD "Build 16"
#DEFINE REVISION 412

View File

@@ -727,9 +727,8 @@ PRINT:
;
PRIN1:
MOV A,M ;GET NEXT BYTE
ANI ~80H ;WW - CLEAR HIGH BIT
;WW CALL CONOUT ;PRINT CHAR
CNZ CONOUT ;WW - DON'T OUTPUT CHAR IF ZERO
ANI 7FH ;WW - CLEAR MSB
CALL CONOUT ;PRINT CHAR
MOV A,M ;GET NEXT BYTE AGAIN FOR TEST
INX H ;PT TO NEXT BYTE
ORA A ;SET FLAGS