Browse Source

Reintegrate wbw -> trunk

pull/3/head
wayne 13 years ago
parent
commit
b030913abd
  1. 10
      Apps/Source/applvers.h
  2. 10
      Apps/Source/applvers.lib
  3. 2
      Apps/Source/cpmname.c
  4. 8
      Doc/ChangeLog.txt
  5. BIN
      Doc/RomWBW Architecture.pdf
  6. BIN
      Doc/Source/RomWBW Architecture.docx
  7. 4
      FixPowerShell.cmd
  8. 4
      ReadMe.txt
  9. BIN
      RomDsk/cfg_n8vem_rf/1200.COM
  10. BIN
      RomDsk/cfg_n8vem_rf/38400.COM
  11. BIN
      RomDsk/cfg_n8vem_rf/9600.COM
  12. BIN
      RomDsk/cfg_n8vem_rf/FLASHZ.COM
  13. BIN
      RomDsk/cfg_n8vem_rf/LDTIM.COM
  14. BIN
      RomDsk/cfg_n8vem_rf/RTC.COM
  15. BIN
      RomDsk/cfg_n8vem_rf/T5.COM
  16. BIN
      RomDsk/cfg_n8vem_rf/VT3.COM
  17. BIN
      RomDsk/cfg_n8vem_rf/XM.COM
  18. BIN
      RomDsk/cfg_n8vem_rf/XM5.COM
  19. BIN
      RomDsk/cfg_zeta_ppisd/1200.COM
  20. BIN
      RomDsk/cfg_zeta_ppisd/38400.COM
  21. BIN
      RomDsk/cfg_zeta_ppisd/9600.COM
  22. BIN
      RomDsk/cfg_zeta_ppisd/FDTST.COM
  23. BIN
      RomDsk/cfg_zeta_ppisd/FLASHZ.COM
  24. BIN
      RomDsk/cfg_zeta_ppisd/LDTIM.COM
  25. BIN
      RomDsk/cfg_zeta_ppisd/RTC.COM
  26. BIN
      RomDsk/cfg_zeta_ppisd/SURVEY.COM
  27. BIN
      RomDsk/cfg_zeta_ppisd/XM.COM
  28. BIN
      RomDsk/cfg_zeta_ppisd/XM5.COM
  29. 14
      RomList.txt
  30. 77
      Source/cbios.asm
  31. 2
      Source/config_n8_2312.asm
  32. 2
      Source/config_n8_2511.asm
  33. 2
      Source/config_n8vem_ci.asm
  34. 2
      Source/config_n8vem_cvdu.asm
  35. 2
      Source/config_n8vem_dide.asm
  36. 2
      Source/config_n8vem_diskio.asm
  37. 2
      Source/config_n8vem_diskio3+cvdu.asm
  38. 2
      Source/config_n8vem_diskio3.asm
  39. 2
      Source/config_n8vem_dsd.asm
  40. 2
      Source/config_n8vem_mfp.asm
  41. 2
      Source/config_n8vem_ppide.asm
  42. 2
      Source/config_n8vem_ppisd.asm
  43. 2
      Source/config_n8vem_propio.asm
  44. 103
      Source/config_n8vem_rf.asm
  45. 2
      Source/config_n8vem_simh.asm
  46. 2
      Source/config_n8vem_std.asm
  47. 2
      Source/config_n8vem_vdu.asm
  48. 103
      Source/config_zeta_ppisd.asm
  49. 2
      Source/config_zeta_ppp.asm
  50. 2
      Source/config_zeta_std.asm
  51. 16
      Source/hbios.asm
  52. 7
      Source/loader.asm
  53. 127
      Source/rf.asm
  54. 30
      Source/rf_dph.asm
  55. 1
      Source/std-n8vem.inc
  56. 2
      Source/std.asm
  57. 5
      Source/zcpr.asm

10
Apps/Source/applvers.h

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

10
Apps/Source/applvers.lib

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

2
Apps/Source/cpmname.c

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

8
Doc/ChangeLog.txt

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

BIN
Doc/RomWBW Architecture.pdf

Binary file not shown.

BIN
Doc/Source/RomWBW Architecture.docx

Binary file not shown.

4
FixPowerShell.cmd

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

4
ReadMe.txt

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

BIN
RomDsk/cfg_n8vem_rf/1200.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/38400.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/9600.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/FLASHZ.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/LDTIM.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/RTC.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/T5.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/VT3.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/XM.COM

Binary file not shown.

BIN
RomDsk/cfg_n8vem_rf/XM5.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/1200.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/38400.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/9600.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/FDTST.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/FLASHZ.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/LDTIM.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/RTC.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/SURVEY.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/XM.COM

Binary file not shown.

BIN
RomDsk/cfg_zeta_ppisd/XM5.COM

Binary file not shown.

14
RomList.txt

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

77
Source/cbios.asm

@ -46,7 +46,7 @@ WBOOTE JP WBOOT ; #1 - WARM START
; easily located by external programs. They transfger control to routines ; easily located by external programs. They transfger control to routines
; that are located somewhere within the main section of the CBIOS. ; that are located somewhere within the main section of the CBIOS.
; ;
JP BNKSEL ; #17 - SEL. RAM BANK FOR LOW32K (obsolete, use HBIOS)
JP PANIC ; #17 - SEL. RAM BANK FOR LOW32K (deprecated, use HBIOS)
JP GETDSK ; #18 - Get Disk Info (device/unit/lu) JP GETDSK ; #18 - Get Disk Info (device/unit/lu)
JP SETDSK ; #19 - Set Disk Into (device/unit/lu) JP SETDSK ; #19 - Set Disk Into (device/unit/lu)
JP GETINFO ; #20 - Get BIOS Info Base Ptr JP GETINFO ; #20 - Get BIOS Info Base Ptr
@ -101,15 +101,13 @@ WBOOT:
IM 1 IM 1
; ;
LD SP,ISTACK ; STACK FOR INITIALIZATION LD SP,ISTACK ; STACK FOR INITIALIZATION
;
; 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
;
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
; ;
; FALL THRU TO INVOKE CP/M ; FALL THRU TO INVOKE CP/M
; ;
@ -378,12 +376,6 @@ READWRITE:
JR BLKRW JR BLKRW
; ;
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
BNKSEL:
;
LD A,C
JP RAMPG
;
;__________________________________________________________________________________________________
GETDSK: GETDSK:
; ;
; INPUT: C=DRIVE # (0=A, 1=B, ... P=16) ; INPUT: C=DRIVE # (0=A, 1=B, ... P=16)
@ -1433,6 +1425,14 @@ SIZ_HDSK_DPH .EQU $ - ORG_HDSK_DPH
.ECHO SIZ_HDSK_DPH .ECHO SIZ_HDSK_DPH
.ECHO " bytes.\n" .ECHO " bytes.\n"
#ENDIF #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 ; DISK PARAMETER BLOCKS
; ;
@ -1496,6 +1496,24 @@ DPB_RAM:
.DW 0 ; OFF: RESERVED TRACKS = 0 TRK .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 ; 8MB HARD DISK DRIVE, 65 TRKS, 1024 SECS/TRK, 128 BYTES/SEC
; BLOCKSIZE (BLS) = 4K, DIRECTORY ENTRIES = 128 ; BLOCKSIZE (BLS) = 4K, DIRECTORY ENTRIES = 128
; SEC/TRK ENGINEERED SO THAT AFTER DEBLOCKING, SECTOR NUMBER OCCUPIES 1 BYTE (0-255) ; SEC/TRK ENGINEERED SO THAT AFTER DEBLOCKING, SECTOR NUMBER OCCUPIES 1 BYTE (0-255)
@ -1632,6 +1650,7 @@ DPB_MAP:
.DW DPB_FD360 ; MID_FD360 .DW DPB_FD360 ; MID_FD360
.DW DPB_FD120 ; MID_FD120 .DW DPB_FD120 ; MID_FD120
.DW DPB_FD111 ; MID_FD111 .DW DPB_FD111 ; MID_FD111
.DW DPB_RF ; MID_RF
; ;
DPB_CNT .EQU ($ - DPB_MAP) / 2 DPB_CNT .EQU ($ - DPB_MAP) / 2
; ;
@ -1707,6 +1726,10 @@ DPH_MAP:
.DW HDSKDPH2 .DW HDSKDPH2
.DW HDSKDPH3 .DW HDSKDPH3
#ENDIF #ENDIF
#IF (DSKMAP == DM_RF)
.DW RFDPH0
.DW RFDPH1
#ENDIF
#IF (DSKMAP != DM_ROM) #IF (DSKMAP != DM_ROM)
.DW MDDPH0 .DW MDDPH0
#ENDIF #ENDIF
@ -1753,6 +1776,10 @@ DPH_MAP:
.DW HDSKDPH2 .DW HDSKDPH2
.DW HDSKDPH3 .DW HDSKDPH3
#ENDIF #ENDIF
#IF ((DSKMAP != DM_RF) & RFENABLE)
.DW RFDPH0
.DW RFDPH1
#ENDIF
#ENDIF ; CUSTOM_DPHMAP #ENDIF ; CUSTOM_DPHMAP
; ;
DPH_CNT .EQU ($ - DPH_MAP) / 2 DPH_CNT .EQU ($ - DPH_MAP) / 2
@ -1855,9 +1882,6 @@ INIT:
; SETUP A TEMP STACK IN UPPER 32K ; SETUP A TEMP STACK IN UPPER 32K
LD SP,ISTACK ; STACK FOR INITIALIZATION LD SP,ISTACK ; STACK FOR INITIALIZATION
; ENSURE RAM PAGE ZERO ACTIVE
CALL RAMPGZ
; THIS INIT CODE WILL BE OVERLAID, SO WE ARE GOING ; THIS INIT CODE WILL BE OVERLAID, SO WE ARE GOING
; TO MODIFY THE BOOT ENTRY POINT TO CAUSE A PANIC ; TO MODIFY THE BOOT ENTRY POINT TO CAUSE A PANIC
; TO EASILY IDENTIFY IF SOMETHING TRIES TO INVOKE ; TO EASILY IDENTIFY IF SOMETHING TRIES TO INVOKE
@ -1892,14 +1916,13 @@ INIT1:
CALL WRITESTR CALL WRITESTR
CALL NEWLINE CALL NEWLINE
; 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
; 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
; SYSTEM INITIALIZATION ; SYSTEM INITIALIZATION
CALL BLKRES ; RESET DISK (DE)BLOCKING ALGORITHM CALL BLKRES ; RESET DISK (DE)BLOCKING ALGORITHM

2
Source/config_n8_2312.asm

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

2
Source/config_n8_2511.asm

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

2
Source/config_n8vem_ci.asm

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

2
Source/config_n8vem_cvdu.asm

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

2
Source/config_n8vem_dide.asm

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

2
Source/config_n8vem_diskio.asm

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

2
Source/config_n8vem_diskio3+cvdu.asm

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

2
Source/config_n8vem_diskio3.asm

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

2
Source/config_n8vem_dsd.asm

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

2
Source/config_n8vem_mfp.asm

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

2
Source/config_n8vem_ppide.asm

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

2
Source/config_n8vem_ppisd.asm

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

2
Source/config_n8vem_propio.asm

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

103
Source/config_n8vem_rf.asm

@ -0,0 +1,103 @@
;
;==================================================================================================
; 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

2
Source/config_n8vem_simh.asm

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

2
Source/config_n8vem_std.asm

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

2
Source/config_n8vem_vdu.asm

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

103
Source/config_zeta_ppisd.asm

@ -0,0 +1,103 @@
;
;==================================================================================================
; 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

2
Source/config_zeta_ppp.asm

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

2
Source/config_zeta_std.asm

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

16
Source/hbios.asm

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

7
Source/loader.asm

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

127
Source/rf.asm

@ -0,0 +1,127 @@
;
;==================================================================================================
; 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

30
Source/rf_dph.asm

@ -0,0 +1,30 @@
;
;==================================================================================================
; 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

1
Source/std-n8vem.inc

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

2
Source/std.asm

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

5
Source/zcpr.asm

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

Loading…
Cancel
Save