Browse Source

VDC Test Programs

- Add kbdtest, cvdtest, and cvdonly test programs.  They apply to MBC platform only.
- Display more boot info in CVDU and KBD drivers.
- Separate floppy and hard disk content definition files.
patch
Wayne Warthen 4 years ago
parent
commit
6ac68029e4
  1. 2
      Source/Apps/Test/Build.cmd
  2. 2
      Source/Apps/Test/Clean.cmd
  3. 2
      Source/Apps/Test/Makefile
  4. 11
      Source/Apps/Test/kbdtest/Build.cmd
  5. 6
      Source/Apps/Test/kbdtest/Clean.cmd
  6. 7
      Source/Apps/Test/kbdtest/Makefile
  7. 353
      Source/Apps/Test/kbdtest/kbdtest.asm
  8. 12
      Source/Apps/Test/vdctest/Build.cmd
  9. 6
      Source/Apps/Test/vdctest/Clean.cmd
  10. 7
      Source/Apps/Test/vdctest/Makefile
  11. 1055
      Source/Apps/Test/vdctest/vdconly.asm
  12. 1072
      Source/Apps/Test/vdctest/vdctest.asm
  13. 2
      Source/CPM3/Build.cmd
  14. 19
      Source/HBIOS/cvdu.asm
  15. 7
      Source/HBIOS/kbd.asm
  16. 42
      Source/Images/Build.cmd
  17. 12
      Source/Images/BuildDisk.ps1
  18. 18
      Source/Images/Makefile
  19. 5
      Source/Images/ReadMe.txt
  20. 51
      Source/Images/fd_bp.txt
  21. 45
      Source/Images/fd_cpm22.txt
  22. 52
      Source/Images/fd_cpm3.txt
  23. 31
      Source/Images/fd_nzcom.txt
  24. 49
      Source/Images/fd_zpm3.txt
  25. 61
      Source/Images/fd_zsdos.txt
  26. 8
      Source/Images/hd_bp.txt
  27. 7
      Source/Images/hd_cpm22.txt
  28. 7
      Source/Images/hd_cpm3.txt
  29. 7
      Source/Images/hd_nzcom.txt
  30. 7
      Source/Images/hd_zpm3.txt
  31. 7
      Source/Images/hd_zsdos.txt
  32. 2
      Source/ver.inc
  33. 2
      Source/ver.lib

2
Source/Apps/Test/Build.cmd

@ -19,6 +19,8 @@ pushd ppidetst && call Build || exit /b & popd
pushd ramtest && call Build || exit /b & popd
pushd I2C && call Build || exit /b & popd
pushd rzsz && call Build || exit /b & popd
pushd vdctest && call Build || exit /b & popd
pushd kbdtest && call Build || exit /b & popd
goto :eof

2
Source/Apps/Test/Clean.cmd

@ -14,3 +14,5 @@ pushd ppidetst && call Clean || exit /b 1 & popd
pushd ramtest && call Clean || exit /b 1 & popd
pushd I2C && call Clean || exit /b 1 & popd
pushd rzsz && call Clean || exit /b 1 & popd
pushd vdctest && call Clean || exit /b 1 & popd
pushd kbdtest && call Clean || exit /b 1 & popd

2
Source/Apps/Test/Makefile

@ -1,5 +1,5 @@
OBJECTS =
SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz
SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz kbdtest vdctest
DEST = ../../../Binary/Apps/Test
TOOLS =../../../Tools

11
Source/Apps/Test/kbdtest/Build.cmd

@ -0,0 +1,11 @@
@echo off
setlocal
set TOOLS=../../../../Tools
set PATH=%TOOLS%\tasm32;%PATH%
set TASMTABS=%TOOLS%\tasm32
tasm -t180 -g3 -fFF kbdtest.asm kbdtest.com kbdtest.lst || exit /b
copy /Y kbdtest.com ..\..\..\..\Binary\Apps\Test\ || exit /b

6
Source/Apps/Test/kbdtest/Clean.cmd

@ -0,0 +1,6 @@
@echo off
setlocal
if exist *.com del *.com
if exist *.lst del *.lst
if exist *.bin del *.bin

7
Source/Apps/Test/kbdtest/Makefile

@ -0,0 +1,7 @@
OBJECTS = kbdtest.com
DEST = ../../../../Binary/Apps/Test
TOOLS =../../../../Tools
USETASM=1
include $(TOOLS)/Makefile.inc

353
Source/Apps/Test/kbdtest/kbdtest.asm

@ -0,0 +1,353 @@
;
; Test program for Z80 KBDMSE on Retrobrewcomputer.org (Load with CPM).
;
; V0.1 ;Original version 2/23/2014 by John Monahan
; V0.2 ;Update for Z80 KBDMSE with VT82C42 PS/2 Keyboard Controller by Andrew Lynch
;
; Based on works by John Monahan S100Computers.com
; for S100 MSDOS Support Board with HT6542B Keyboard Controller
; Thanks to John for generously posting this program for others to use and adapt
;
; This is a simple test program to work with the Z80 KBDMSE board. It is written so
; the only other hardware use is the CP/M Console Port -- typically serial port interface.
; Note the data is displayed in crude (bulk) form. A proper scancode to ASCII translation
; routine must be written for practical use. See the IBM PC BIOS or SKEY.Z80 docs
; PORT ASSIGNMENTS
KEY_DATA .EQU 0E2H ;Port used to access keyboard & Mouse (also sometimes Controller itself)
KEY_CTRL .EQU 0E3H ;Port for VT82C42 PS/2 Keyboard & Mouse Controller
ESC .EQU 1BH
CR .EQU 0DH
LF .EQU 0AH
TAB .EQU 09H
BELL .EQU 07H
.ORG 0100H
START:
LD SP,STACK
LD HL,SIGNON ; Signon
CALL PRINT_STRING
LD C,0AAH ;Test PS/2 Controller
CALL KEY_OUT
CHK1:
CALL KEY_IN_STATUS ;wait for feedback
JR Z,CHK1
IN A,(KEY_DATA)
CP 055H ;If not 55H then error
JR Z,DONE_INIT
LD HL,INIT_ERR ;Say error
CALL PRINT_STRING
HALT ;Just Halt!
DONE_INIT:
LD HL,INIT_OK ;Say all OK
CALL PRINT_STRING
LD C,0AEH ;Enable 1st PS/2 port
CALL KEY_OUT ;Send it
LOOP:
CALL KEY_IN_STATUS ;See if keyboard key available
JR Z,LOOP
IN A,(KEY_DATA)
LD C,A ;Store in [C]
LD HL,SCAN_MSG
CALL PRINT_STRING ;No registers changed
CALL A_HEXOUT ;Display Hex value of typed character + two spaces
CP 0F0H ;Is it an UP key
JR NZ,DOWNKY ;Must be a down key stroke
LD HL,UPKEY_MSG ;Say Up Key
CALL PRINT_STRING
CALL ZCRLF
JR LOOP
DOWNKY:
CP 58H ;Is it CAPS Lock key
; CP 3AH ;Is it CAPS Lock key
JR NZ,NOT_CAPSKEY
LD HL,CAPS_MSG ;Say Caps lock key
CALL PRINT_STRING
CALL ZCRLF
JR LOOP
NOT_CAPSKEY:
CP 12H ;Is it a SHIFT key
; CP 2AH ;Is it a SHIFT key
JR Z,SHIFTKEY
CP 59H ;Is it the other SHIFT key
; CP 36H ;Is it the other SHIFT key
JR NZ,NOT_SHIFTKEY
SHIFTKEY:
LD HL,SHIFT_MSG ;Say Shift key
CALL PRINT_STRING
CALL ZCRLF
JR LOOP
NOT_SHIFTKEY:
CP 14H ;Is it the CTRL key
; CP 1DH ;Is it the CTRL key
JR NZ,NOT_CTRLKEY
LD HL,CTRL_MSG ;Say CTRL key
CALL PRINT_STRING
CALL ZCRLF
JR LOOP
NOT_CTRLKEY:
CP 77H ;Is it the NUM LOCK key
; CP 45H ;Is it the NUM LOCK key
JR NZ,NOT_NUMKEY
LD HL,NUM_MSG ;Say Number key
CALL PRINT_STRING
CALL ZCRLF
JR LOOP
NOT_NUMKEY:
PUSH BC ;Save Character
LD HL,IBM1_MSG ;Say Table 1 lookup
CALL PRINT_STRING
LD HL,IBM1TBL ;Point to lookup table for upper case
CALL SHOW_CHAR
POP BC ;Get back character
LD HL,IBM2_MSG ;Say Table 2 lookup
CALL PRINT_STRING
LD HL,IBM2TBL ;Point to lookup table for upper case
CALL SHOW_CHAR
CALL ZCRLF
JR LOOP
SHOW_CHAR:
LD D,0
LD E,C
ADD HL,DE ;Add in offset
LD C,(HL)
LD A,C
CP ESC
RET Z ;ESC messes up the screen display
CP CR
RET Z ;CR messes up the screen display
CP LF
RET Z ;LF messes up the screen display
CP TAB
RET Z ;TAB messes up the screen display
CALL ZCO ;Display on Screen
RET
KEY_IN_STATUS: ;Ret NZ if character is available
IN A,(KEY_CTRL)
AND 1
RET ;Ret NZ if character available
KEY_OUT: ;Send a byte (in [C]) to Control port
IN A,(KEY_CTRL)
AND 2
JR NZ,KEY_OUT ;Chip is not ready yet to receive character
LD A,C
OUT (KEY_CTRL),A
RET
; A_HEXOUT ;output the 2 hex digits in [A]
A_HEXOUT: ;No registers altered
push AF
push BC
push AF
srl a
srl a
srl a
srl a
call hexdigout
pop AF
call hexdigout ;get upper nibble
LD C,' '
call ZCO ;Space for easy reading
call ZCO
pop BC
pop AF
ret
hexdigout:
and 0fh ;convert nibble to ascii
add a,90h
daa
adc a,40h
daa
LD c,a
call ZCO
ret
; Main console I/O routines
;
ZCO:
PUSH HL
LD E,C
LD C,02H ;BDOS Function 2 Write Console Byte
CALL 0005H ;Call BDOS
POP HL
RET
ZCI:
LD C,0BH ;BDOS Function 11 Read Console Status
CALL 0005H ;Call BDOS
JP Z,ZCI
LD C,01H ;BDOS Function 1 Read Console Byte
CALL 0005H ;Call BDOS
RET
;
; Send CR/LF to Console
;
ZCRLF:
PUSH AF
PUSH BC
LD C,CR
CALL ZCO
LD C,LF
CALL ZCO
POP BC
POP AF
RET
PRINT_STRING:
PUSH AF
push BC
print1:
LD a,(HL) ;Point to start of string
inc HL ;By using the CS over-ride we will always have
CP '$' ;a valid pointer to messages at the end of this monitor
JP z,print2
CP 0 ;Also terminate with 0's
JP Z,print2
LD C,A
call ZCO
jp print1
print2:
pop BC
POP AF
ret
;---------------------------------------------------------------------------------------------------
SIGNON:
.DB CR,LF,LF
.DB "Test VT82C42 PC Keyboard & Mouse controller chip on Z80 KBDMSE Board."
.DB CR,LF,"$"
INIT_ERR:
.DB CR,LF,BELL
.DB "Error: The 0xAA Test of Controller did nor return 0x55. Program Halted."
.DB CR,LF,"$"
INIT_OK:
.DB CR,LF
.DB "The 0xAA Test of Controller returned 0x55. Now enter keyboard keys."
.DB CR,LF,LF,"$"
SCAN_MSG:
.DB "Scancode = $"
UPKEY_MSG:
.DB "(Up Keystroke)$"
CAPS_MSG:
.DB "(Caps Lock)$"
SHIFT_MSG:
.DB "(Shift Key)$"
CTRL_MSG:
.DB "(CTRL Key)$"
NUM_MSG:
.DB "(NUM Key)$"
IBM1_MSG:
.DB "Table 1 lookup -> $"
IBM2_MSG:
.DB " Table 2 lookup -> $"
IBM1TBL: ;The "Normal" table
;00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0a, 0b, 0c, 0d, 0e, 0f
.DB 0,"*", 0,"*","*","*","*","*", 0,"*","*","*","*",09H,"`",00H
; .DB 000,027,"1","2","3","4","5","6","7","8","9","0","-","=",008,009 ;00-0F
;10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1a, 1b, 1c, 1d, 1e, 1f
.DB 0, 0, 0, 0, 0,"q","1", 0, 0, 0,"z","s","a","w","2",0
; .DB "q","w","e","r","t","y","u","i","o","p","[","]",013,000,"a","s" ;10-1F
;20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2a, 2b, 2c, 2d, 2e, 2f
.DB 0,"c","x","d","e","4","3", 0, 0," ","v","f","t","r","5",0
; .DB "d","f","g","h","j","k","l",";",27H,60H,000,092,"z","x","c","v" ;20-2F
;30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 3a, 3b, 3c, 3d, 3e, 3f
.DB 0,"n","b","h","g","y","6", 0, 0, 0,"m","j","u","7","8",0
; .DB "b","n","m",",",".","/",000,000,000," ",000,000,000,000,000,000 ;30-3F
;40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4a, 4b, 4c, 4d, 4e, 4f
.DB 0,",","k","i","o","0","9", 0, 0,".","/","l",";","p","-",0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;40-4F
;50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5a, 5b, 5c, 5d, 5e, 5f
.DB 0, 0,27H, 0,"[","=", 0, 0, 0, 0,0DH,"]", 0,5CH, 0,0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;50-5F
;60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6a, 6b, 6c, 6d, 6e, 6f
.DB 0, 0, 0, 0, 0, 0,08H, 0, 0,11H, 0,13H,10H, 0, 0, 0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;60-6F
;70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7a, 7b, 7c, 7d, 7e, 7f
.DB 0BH,7FH,03H,15H,04H,05H,1BH,00H,"*",02H,18H,16H,0CH,17H,"*",0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;70-7F
;80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8a, 8b, 8c, 8d, 8e, 8f
.DB 0, 0, 0,"*", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;80-8F
IBM2TBL: ;If the SHIFT key or CAPS lock key is on
;00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0a, 0b, 0c, 0d, 0e, 0f
.DB 0, "*", 0,"*","*","*","*","*", 0,"*","*","*","*",09H,"~",00H
; .DB 000,027,"!","@","#","$","%","^","&","*","(",")","_","+",008,009 ;00-0F
;10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1a, 1b, 1c, 1d, 1e, 1f
.DB 0, 0, 0, 0, 0,"Q","!", 0, 0, 0,"Z","S","A","W","@",0
; .DB "Q","W","E","R","T","Y","U","I","O","P","{","}",013,000,"A","S" ;10-1F
;20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2a, 2b, 2c, 2d, 2e, 2f
.DB 0,"C","X","D","E","$","#", 0, 0," ","V","F","T","R","%",0
; .DB "D","F","G","H","J","K","L",":",034,"~",000,"|","Z","X","C","V" ;20-2F
;30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 3a, 3b, 3c, 3d, 3e, 3f
.DB 0,"N","B","H","G","Y","^", 0, 0, 0,"M","J","U","&","*",0
; .DB "B","N","M","<",">","?",000,000,000," ",000,000,000,000,000,000 ;30-3F
;40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4a, 4b, 4c, 4d, 4e, 4f
.DB 0,"<","K","I","O",29H,"(", 0, 0,">","?","L",":","P", "_",0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;40-4F
;50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5a, 5b, 5c, 5d, 5e, 5f
.DB 0, 0,22H, 0,"{","+", 0, 0, 0, 0,0DH,"}", 0,"|", 0,0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;50-5F
;60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6a, 6b, 6c, 6d, 6e, 6f
.DB 0, 0, 0, 0, 0, 0,08H, 0, 0,11H, 0,13H,10H, 0, 0, 0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;60-6F
;70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 7a, 7b, 7c, 7d, 7e, 7f
.DB 0BH,7FH,03H,15H,04H,05H,1BH,00H,"*",02H,18H,16H,0CH,17H,"*",0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;70-7F
;80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8a, 8b, 8c, 8d, 8e, 8f
.DB 0, 0, 0,"*", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
; .DB 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ;80-8F
.FILL 040H,000H
STACK: .DB 0H
.FILL 19,000H
.END

12
Source/Apps/Test/vdctest/Build.cmd

@ -0,0 +1,12 @@
@echo off
setlocal
set TOOLS=../../../../Tools
set PATH=%TOOLS%\tasm32;%PATH%
set TASMTABS=%TOOLS%\tasm32
tasm -t180 -g3 -fFF vdctest.asm vdctest.com vdctest.lst || exit /b
tasm -t180 -g3 -fFF vdconly.asm vdconly.com vdconly.lst || exit /b
copy /Y vdctest.com ..\..\..\..\Binary\Apps\Test\ || exit /b
copy /Y vdconly.com ..\..\..\..\Binary\Apps\Test\ || exit /b

6
Source/Apps/Test/vdctest/Clean.cmd

@ -0,0 +1,6 @@
@echo off
setlocal
if exist *.com del *.com
if exist *.lst del *.lst
if exist *.bin del *.bin

7
Source/Apps/Test/vdctest/Makefile

@ -0,0 +1,7 @@
OBJECTS = vdctest.com vdconly.com
DEST = ../../../../Binary/Apps/Test
TOOLS =../../../../Tools
USETASM=1
include $(TOOLS)/Makefile.inc

1055
Source/Apps/Test/vdctest/vdconly.asm

File diff suppressed because it is too large

1072
Source/Apps/Test/vdctest/vdctest.asm

File diff suppressed because it is too large

2
Source/CPM3/Build.cmd

@ -21,11 +21,13 @@ zx Z80ASM -UTIL/MF || exit /b
copy optdsk.lib ldropts.lib || exit /b
zx Z80ASM -BIOSLDR/MF || exit /b
move /Y biosldr.rel biosldrd.rel || exit /b
move /Y biosldr.lst biosldrd.lst || exit /b
zx LINK -CPMLDRD[L100]=CPMLDR,BIOSLDRD,UTIL || exit /b
move /Y cpmldrd.com cpmldr.bin || exit /b
copy optcmd.lib ldropts.lib || exit /b
zx Z80ASM -BIOSLDR/MF || exit /b
move /Y biosldr.rel biosldrc.rel || exit /b
move /Y biosldr.lst biosldrd.lst || exit /b
zx LINK -CPMLDRC[L100]=CPMLDR,BIOSLDRC,UTIL || exit /b
move /Y cpmldrc.com cpmldr.com || exit /b
rem pause

19
Source/HBIOS/cvdu.asm

@ -56,8 +56,23 @@ TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
CVDU_INIT:
LD IY,CVDU_IDAT ; POINTER TO INSTANCE DATA
CALL NEWLINE ; FORMATTING
PRTS("CVDU: IO=0x$")
CALL NEWLINE
PRTS("CVDU: MODE=$")
#IF (CVDUMODE == CVDUMODE_ECB)
PRTS("ECB$")
#ENDIF
#IF (CVDUMODE == CVDUMODE_MBC)
PRTS("MBC$")
#ENDIF
;
#IF (CVDUMON == CVDUMON_CGA)
PRTS(" CGA$")
#ENDIF
#IF (CVDUMON == CVDUMON_EGA)
PRTS(" EGA$")
#ENDIF
;
PRTS(" IO=0x$")
LD A,CVDU_STAT
CALL PRTHEXBYTE
CALL CVDU_PROBE ; CHECK FOR HW PRESENCE

7
Source/HBIOS/kbd.asm

@ -73,6 +73,13 @@ KBD_INIT:
LD A,$AA ; CONTROLLER SELF TEST
CALL KBD_PUTCMD ; SEND IT
CALL KBD_GETDATA ; CONTROLLER SHOULD RESPOND WITH $55 (ACK)
CP $55 ; IS IT THERE?
JR Z,KBD_INIT1 ; IF SO, CONTINUE
PRTS(" NOT PRESENT$") ; DIAGNOSE PROBLEM
RET ; BAIL OUT
KBD_INIT1:
LD A,$60 ; SET COMMAND REGISTER
CALL KBD_PUTCMD ; SEND IT
; LD A,$60 ; XLAT ENABLED, MOUSE DISABLED, NO INTS

42
Source/Images/Build.cmd

@ -1,30 +1,30 @@
@echo off
setlocal
::call BuildDisk.cmd bp wbw_hd512 || exit /b
::call BuildDisk.cmd bp hd wbw_hd512 || exit /b
::goto :eof
echo.
echo Building Floppy Disk Images...
echo.
call BuildDisk.cmd cpm22 wbw_fd144 ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos wbw_fd144 ..\zsdos\zsys_wbw.sys || exit /b
::call BuildDisk.cmd nzcom wbw_fd144 ..\zsdos\zsys_wbw.sys || exit /b
::call BuildDisk.cmd cpm3 wbw_fd144 ..\cpm3\cpmldr.sys || exit /b
::call BuildDisk.cmd zpm3 wbw_fd144 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd ws4 wbw_fd144 || exit /b
call BuildDisk.cmd cpm22 fd wbw_fd144 ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos fd wbw_fd144 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd nzcom fd wbw_fd144 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 fd wbw_fd144 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 fd wbw_fd144 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd ws4 fd wbw_fd144 || exit /b
echo.
echo Building Hard Disk Images (512 directory entry format)...
echo.
call BuildDisk.cmd cpm22 wbw_hd512 ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd nzcom wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 wbw_hd512 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 wbw_hd512 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd ws4 wbw_hd512 || exit /b
call BuildDisk.cmd cpm22 hd wbw_hd512 ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos hd wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd nzcom hd wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 hd wbw_hd512 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 hd wbw_hd512 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd ws4 hd wbw_hd512 || exit /b
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp wbw_hd512 || exit /b
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp hd wbw_hd512 || exit /b
echo.
echo Building Combo Disk (512 directory entry format) Image...
@ -33,14 +33,14 @@ copy /b ..\..\Binary\hd512_cpm22.img + ..\..\Binary\hd512_zsdos.img + ..\..\Bina
echo.
echo Building Hard Disk Images (1024 directory entry format)...
echo.
call BuildDisk.cmd cpm22 wbw_hd1024 ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos wbw_hd1024 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd nzcom wbw_hd1024 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 wbw_hd1024 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 wbw_hd1024 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd ws4 wbw_hd1024 || exit /b
call BuildDisk.cmd cpm22 hd wbw_hd1024 ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos hd wbw_hd1024 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd nzcom hd wbw_hd1024 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 hd wbw_hd1024 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 hd wbw_hd1024 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd ws4 hd wbw_hd1024 || exit /b
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp wbw_hd1024 || exit /b
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp hd wbw_hd1024 || exit /b
copy hd1024_prefix.dat ..\..\Binary\ || exit /b

12
Source/Images/BuildDisk.ps1

@ -1,4 +1,4 @@
Param($Disk, $Format="", $SysFile="")
Param($Disk, $Type="", $Format="", $SysFile="")
$ErrorAction = 'Stop'
@ -6,6 +6,12 @@ $CpmToolsPath = '../../Tools/cpmtools'
$env:PATH = $CpmToolsPath + ';' + $env:PATH
if ($Type.Length -eq 0)
{
Write-Error "No disk type specified!" -ErrorAction Stop
return
}
if ($Format.Length -eq 0)
{
Write-Error "No disk format specified!" -ErrorAction Stop
@ -75,9 +81,9 @@ for ($Usr=0; $Usr -lt 16; $Usr++)
}
}
if (Test-Path("d_${Disk}.txt"))
if (Test-Path("${Type}_${Disk}.txt"))
{
foreach($Line in Get-Content "d_${Disk}.txt")
foreach($Line in Get-Content "${Type}_${Disk}.txt")
{
$Spec = $Line.Trim()
if (($Spec.Length -gt 0) -and ($Spec.Substring(0,1) -ne "#"))

18
Source/Images/Makefile

@ -3,7 +3,8 @@
#
SYSTEMS = ../CPM22/cpm_wbw.sys ../ZSDOS/zsys_wbw.sys ../CPM3/cpmldr.sys ../ZPM3/zpmldr.sys
FDIMGS = fd144_cpm22.img fd144_zsdos.img fd144_ws4.img
FDIMGS = fd144_cpm22.img fd144_zsdos.img fd144_nzcom.img \
fd144_cpm3.img fd144_zpm3.img fd144_ws4.img
HD512IMGS = hd512_cpm22.img hd512_zsdos.img hd512_nzcom.img \
hd512_cpm3.img hd512_zpm3.img hd512_ws4.img
# HDIMGS += hd512_bp.img
@ -42,7 +43,7 @@ hd1024_combo.img: $(HD1024PREFIX) $(HD1024IMGS)
# at build time, a few variables are set (sys, fmt, type, size, d) based on the
# target to build. first, we build an empty image using the a tr, dd pipeline.
# we then scan the d_{d}/u* directories, copying in files to user numbers
# then process the d_{d}.txt file, copying in those files, and finally maybe put
# then process the ?d_{d}.txt file, copying in those files, and finally maybe put
# an OS at the start of each image
#
@ -75,13 +76,13 @@ blankhd1024:
(*zpm3*) sys=../ZPM3/zpmldr.sys;; \
esac ; \
if echo $@ | grep -q ^fd144_ ; then \
fmt=wbw_fd144 ; type=fd144_ ; proto=blank144 ; \
fmt=wbw_fd144 ; dtype=fd ; type=fd144_ ; proto=blank144 ; \
fi ; \
if echo $@ | grep -q ^hd512_ ; then \
fmt=wbw_hd512 ; type=hd512_ ; proto=blankhd512 ; \
fmt=wbw_hd512 ; dtype=hd ; type=hd512_ ; proto=blankhd512 ; \
fi ; \
if echo $@ | grep -q ^hd1024_ ; then \
fmt=wbw_hd1024 ; type=hd1024_ ; proto=blankhd1024 ; \
fmt=wbw_hd1024 ; dtype=hd ; type=hd1024_ ; proto=blankhd1024 ; \
fi ; \
d=$$(echo $(basename $@) | sed s/$$type//) ; \
echo Generating $@ ; \
@ -101,9 +102,10 @@ blankhd1024:
done ; \
fi ; \
done ; \
if [ -f d_$$d.txt ] ; then \
echo " " copying files from d_$$d.txt ; \
grep -v ^# d_$$d.txt | tr -d '\r' | while read file user ; do \
echo $${dtype}_$$d.txt ; \
if [ -f $${dtype}_$$d.txt ] ; then \
echo " " copying files from $${dtype}_$$d.txt ; \
grep -v ^# $${dtype}_$$d.txt | tr -d '\r' | while read file user ; do \
rf=$$($(CASEFN) $$file | sort -V) ; \
echo " " $$rf ; \
if [ -z "$$rf" ] ; then \

5
Source/Images/ReadMe.txt

@ -98,11 +98,12 @@ command prompt and navigate to the Images directory. Use the command
"Build" to build both the floppy and hard disk images in one run.
You can build a single disk image by running BuildDisk.cmd:
BuildDisk <disk> <format> [<system>]
BuildDisk <disk> <type> <format> [<system>]
where:
<disk> specifies the disk contents (e.g., "cpm22")
<type> specifies disk type ("fd" for floppy, or "hd" for hard disk)
<format> specifies the disk format which must be one of:
- "fd144": 1.44M floppy disk
- "hd512": hard disk with 512 directory entries
@ -112,7 +113,7 @@ where:
For example:
| BuildDisk.cmd cpm22 wbw_hd512 ..\cpm22\cpm_wbw.sys
| BuildDisk.cmd cpm22 hd wbw_hd512 ..\cpm22\cpm_wbw.sys
will create a hard disk image (512 directory entry format) with the
CP/M 2.2 files from the d_cpm22 directory tree and will place the

51
Source/Images/fd_bp.txt

@ -0,0 +1,51 @@
#
# Add ZSystem images
#
../BPBIOS/*.img 0:
../BPBIOS/*.rel 0:
../BPBIOS/*.zrl 0:
../BPBIOS/*.zex 0:
../BPBIOS/bpbuild.com 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 15:
../../Binary/Apps/assign.com 15:
../../Binary/Apps/fat.com 15:
../../Binary/Apps/fdu.com 15:
../../Binary/Apps/fdu.doc 15:
../../Binary/Apps/format.com 15:
../../Binary/Apps/mode.com 15:
../../Binary/Apps/rtc.com 15:
../../Binary/Apps/survey.com 15:
../../Binary/Apps/syscopy.com 15:
../../Binary/Apps/sysgen.com 15:
../../Binary/Apps/talk.com 15:
../../Binary/Apps/tbasic.com 15:
../../Binary/Apps/timer.com 15:
../../Binary/Apps/tune.com 15:
../../Binary/Apps/xm.com 15:
../../Binary/Apps/zmp.com 15:
../../Binary/Apps/zmp.hlp 15:
../../Binary/Apps/zmp.doc 15:
../../Binary/Apps/zmxfer.ovr 15:
../../Binary/Apps/zmterm.ovr 15:
../../Binary/Apps/zminit.ovr 15:
../../Binary/Apps/zmconfig.ovr 15:
../../Binary/Apps/zmd.com 15:
#
# Add Tune sample files
#
../../Binary/Apps/Tunes/*.pt? 3:
../../Binary/Apps/Tunes/*.mym 3:
#
# Add Common Applications
#
Common/All/*.* 15:
Common/CPM22/*.* 15:
#Common/Z/u10/*.* 10:
Common/Z/u14/*.* 14:
Common/Z/u15/*.* 15:
Common/Z3/u10/*.* 10:
Common/Z3/u14/*.* 14:
Common/Z3/u15/*.* 15:

45
Source/Images/fd_cpm22.txt

@ -0,0 +1,45 @@
#
# Add the ReadMe document
#
d_cpm22/ReadMe.txt 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:
../../Binary/Apps/survey.com 0:
../../Binary/Apps/syscopy.com 0:
../../Binary/Apps/sysgen.com 0:
../../Binary/Apps/talk.com 0:
../../Binary/Apps/tbasic.com 0:
../../Binary/Apps/timer.com 0:
../../Binary/Apps/tune.com 0:
../../Binary/Apps/xm.com 0:
../../Binary/Apps/zmp.com 0:
../../Binary/Apps/zmp.hlp 0:
../../Binary/Apps/zmp.doc 0:
../../Binary/Apps/zmxfer.ovr 0:
../../Binary/Apps/zmterm.ovr 0:
../../Binary/Apps/zminit.ovr 0:
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
#
# Add Tune sample files
#
../../Binary/Apps/Tunes/*.pt? 3:
../../Binary/Apps/Tunes/*.mym 3:
#
# Add OS image
#
../CPM22/cpm_wbw.sys 0:cpm.sys
#
# Add Common Applications
#
Common/All/*.* 0:
Common/CPM22/*.* 0:

52
Source/Images/fd_cpm3.txt

@ -0,0 +1,52 @@
#
# Add files from CPM3 build
#
../CPM3/cpmldr.com 0:
../CPM3/cpmldr.sys 0:
../CPM3/ccp.com 0:
../CPM3/gencpm.com 0:
../CPM3/genres.dat 0:
../CPM3/genbnk.dat 0:
../CPM3/bios3.spr 0:
../CPM3/bnkbios3.spr 0:
../CPM3/bdos3.spr 0:
../CPM3/bnkbdos3.spr 0:
../CPM3/resbdos3.spr 0:
../CPM3/cpm3res.sys 0:
../CPM3/cpm3bnk.sys 0:
../CPM3/gencpm.dat 0:
../CPM3/cpm3.sys 0:
../CPM3/readme.1st 0:
../CPM3/cpm3fix.pat 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:
../../Binary/Apps/survey.com 0:
../../Binary/Apps/syscopy.com 0:
#../../Binary/Apps/sysgen.com 0:
#../../Binary/Apps/talk.com 0:
../../Binary/Apps/tbasic.com 0:
../../Binary/Apps/timer.com 0:
../../Binary/Apps/tune.com 0:
../../Binary/Apps/xm.com 0:
../../Binary/Apps/zmp.com 0:
../../Binary/Apps/zmp.hlp 0:
../../Binary/Apps/zmp.doc 0:
../../Binary/Apps/zmxfer.ovr 0:
../../Binary/Apps/zmterm.ovr 0:
../../Binary/Apps/zminit.ovr 0:
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
#
# Add Common Applications
#
Common/All/*.* 0:
Common/CPM3/*.* 0:

31
Source/Images/fd_nzcom.txt

@ -0,0 +1,31 @@
#
# Add the ReadMe document
#
d_nzcom/ReadMe.txt 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/rtc.com 0:
../../Binary/Apps/syscopy.com 0:
../../Binary/Apps/talk.com 0:
../../Binary/Apps/timer.com 0:
../../Binary/Apps/xm.com 0:
#
# Add OS images
#
../ZSDOS/zsys_wbw.sys 0:zsys.sys
#
# Add Common Applications
#
Common/All/*.* 0:
Common/CPM22/*.* 0:
#Common/Z/u10/*.* 0:
Common/Z/u14/*.* 0:
Common/Z/u15/*.* 0:
Common/Z3/u10/*.* 0:
Common/Z3/u14/*.* 0:
Common/Z3/u15/*.* 0:

49
Source/Images/fd_zpm3.txt

@ -0,0 +1,49 @@
#
# Add files from ZPM3 build
#
../ZPM3/zpmldr.com 0:
../ZPM3/zpmldr.sys 0:
../CPM3/cpmldr.com 0:
../CPM3/cpmldr.sys 0:
../ZPM3/autotog.com 15:
../ZPM3/clrhist.com 15:
../ZPM3/setz3.com 15:
../ZPM3/cpm3.sys 0:
../ZPM3/zccp.com 0:
../ZPM3/zinstal.zpm 0:
../ZPM3/startzpm.com 0:
../ZPM3/makedos.com 0:
../ZPM3/gencpm.dat 0:
../ZPM3/bnkbios3.spr 0:
../ZPM3/bnkbdos3.spr 0:
../ZPM3/resbdos3.spr 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 15:
../../Binary/Apps/assign.com 15:
../../Binary/Apps/fat.com 15:
../../Binary/Apps/fdu.com 15:
../../Binary/Apps/fdu.doc 15:
../../Binary/Apps/format.com 15:
../../Binary/Apps/mode.com 15:
../../Binary/Apps/rtc.com 15:
../../Binary/Apps/survey.com 15:
../../Binary/Apps/syscopy.com 15:
../../Binary/Apps/sysgen.com 15:
../../Binary/Apps/talk.com 15:
../../Binary/Apps/tbasic.com 15:
../../Binary/Apps/timer.com 15:
../../Binary/Apps/tune.com 15:
../../Binary/Apps/xm.com 15:
#
# Add Common Applications
#
Common/All/*.* 15:
Common/CPM3/*.* 15:
#Common/Z/u10/*.* 10:
Common/Z/u14/*.* 14:
Common/Z/u15/*.* 15:
Common/Z3/u10/*.* 10:
Common/Z3/u14/*.* 14:
Common/Z3/u15/*.* 15:

61
Source/Images/fd_zsdos.txt

@ -0,0 +1,61 @@
#
# Add the ReadMe document
#
d_zsdos/ReadMe.txt 0:
#
# Include selected CP/M 2.2 files
#
d_cpm22/u0/ASM.COM 0:
d_cpm22/u0/LIB.COM 0:
d_cpm22/u0/LINK.COM 0:
d_cpm22/u0/LOAD.COM 0:
d_cpm22/u0/MAC.COM 0:
#d_cpm22/u0/PIP.COM 0: ???
d_cpm22/u0/RMAC.COM 0:
d_cpm22/u0/STAT.COM 0:
d_cpm22/u0/SUBMIT.COM 0:
d_cpm22/u0/XSUB.COM 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:
../../Binary/Apps/survey.com 0:
../../Binary/Apps/syscopy.com 0:
../../Binary/Apps/sysgen.com 0:
../../Binary/Apps/talk.com 0:
../../Binary/Apps/tbasic.com 0:
../../Binary/Apps/timer.com 0:
../../Binary/Apps/tune.com 0:
../../Binary/Apps/xm.com 0:
../../Binary/Apps/zmp.com 0:
../../Binary/Apps/zmp.hlp 0:
../../Binary/Apps/zmp.doc 0:
../../Binary/Apps/zmxfer.ovr 0:
../../Binary/Apps/zmterm.ovr 0:
../../Binary/Apps/zminit.ovr 0:
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
#
# Add Tune sample files
#
../../Binary/Apps/Tunes/*.pt? 3:
../../Binary/Apps/Tunes/*.mym 3:
#
# Add OS image
#
../ZSDOS/zsys_wbw.sys 0:zsys.sys
#
# Add Common Applications
#
Common/All/*.* 0:
Common/CPM22/*.* 0:
#Common/Z/u10/*.* 0:
Common/Z/u14/*.* 0:
Common/Z/u15/*.* 0:

8
Source/Images/d_bp.txt → Source/Images/hd_bp.txt

@ -33,15 +33,7 @@
../../Binary/Apps/zminit.ovr 15:
../../Binary/Apps/zmconfig.ovr 15:
../../Binary/Apps/zmd.com 15:
#
#../../Binary/Apps/i2clcd.com 2:
#../../Binary/Apps/i2cscan.com 2:
#../../Binary/Apps/rtcds7.com 2:
#../../Binary/Apps/rtchb.com 2:
#../../Binary/Apps/ppidetst.com 2:
#../../Binary/Apps/ramtest.com 2:
#../../Binary/Apps/tstdskng.com 2:
../../Binary/Apps/Test/*.com 2:
Test/*.* 2:
#

7
Source/Images/d_cpm22.txt → Source/Images/hd_cpm22.txt

@ -30,13 +30,6 @@ d_cpm22/ReadMe.txt 0:
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
#
#../../Binary/Apps/i2clcd.com 2:
#../../Binary/Apps/i2cscan.com 2:
#../../Binary/Apps/rtcds7.com 2:
#../../Binary/Apps/rtchb.com 2:
#../../Binary/Apps/ppidetst.com 2:
#../../Binary/Apps/ramtest.com 2:
#../../Binary/Apps/tstdskng.com 2:
../../Binary/Apps/Test/*.com 2:
Test/*.* 2:
#

7
Source/Images/d_cpm3.txt → Source/Images/hd_cpm3.txt

@ -46,13 +46,6 @@
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
#
#../../Binary/Apps/i2clcd.com 2:
#../../Binary/Apps/i2cscan.com 2:
#../../Binary/Apps/rtcds7.com 2:
#../../Binary/Apps/rtchb.com 2:
#../../Binary/Apps/ppidetst.com 2:
#../../Binary/Apps/ramtest.com 2:
#../../Binary/Apps/tstdskng.com 2:
../../Binary/Apps/Test/*.com 2:
Test/*.* 2:
#

7
Source/Images/d_nzcom.txt → Source/Images/hd_nzcom.txt

@ -47,13 +47,6 @@ d_zsdos/u0/*.* 0:
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
#
#../../Binary/Apps/i2clcd.com 2:
#../../Binary/Apps/i2cscan.com 2:
#../../Binary/Apps/rtcds7.com 2:
#../../Binary/Apps/rtchb.com 2:
#../../Binary/Apps/ppidetst.com 2:
#../../Binary/Apps/ramtest.com 2:
#../../Binary/Apps/tstdskng.com 2:
../../Binary/Apps/Test/*.com 2:
Test/*.* 2:
#

7
Source/Images/d_zpm3.txt → Source/Images/hd_zpm3.txt

@ -45,13 +45,6 @@
../../Binary/Apps/zmconfig.ovr 15:
../../Binary/Apps/zmd.com 15:
#
#../../Binary/Apps/i2clcd.com 2:
#../../Binary/Apps/i2cscan.com 2:
#../../Binary/Apps/rtcds7.com 2:
#../../Binary/Apps/rtchb.com 2:
#../../Binary/Apps/ppidetst.com 2:
#../../Binary/Apps/ramtest.com 2:
#../../Binary/Apps/tstdskng.com 2:
../../Binary/Apps/Test/*.com 2:
Test/*.* 2:
#

7
Source/Images/d_zsdos.txt → Source/Images/hd_zsdos.txt

@ -43,13 +43,6 @@ d_cpm22/u0/XSUB.COM 0:
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
#
#../../Binary/Apps/i2clcd.com 2:
#../../Binary/Apps/i2cscan.com 2:
#../../Binary/Apps/rtcds7.com 2:
#../../Binary/Apps/rtchb.com 2:
#../../Binary/Apps/ppidetst.com 2:
#../../Binary/Apps/ramtest.com 2:
#../../Binary/Apps/tstdskng.com 2:
../../Binary/Apps/Test/*.com 2:
Test/*.* 2:
#

2
Source/ver.inc

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

2
Source/ver.lib

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

Loading…
Cancel
Save