mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:13:13 -06:00
Continuing Disk Image Cleanup
- Reorganized most of the "common" files into special directories. - Fixed bug affecting application boot related to ROM checksum test. - Added support for LiNC sound card at default port address.
This commit is contained in:
@@ -42,6 +42,7 @@
|
||||
; 2020-04-25 [DEN] Added support to use HBIOS Sound driver
|
||||
; 2020-05-02 [PMS] Add support for SBC-V2 slow-io hack
|
||||
; 2020-09-03 [E?B] Add support for Ed Brindley YM/AY Sound Card v6
|
||||
; 2021-08-13 [WBW] Add support for LiNC Z50 Sound Card
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
; ToDo:
|
||||
@@ -569,6 +570,9 @@ CFGTBL: ; PLT RSEL RDAT RIN Z180 ACR
|
||||
;
|
||||
.DB $07, $D1, $D0, $D0, $FF, $FF ; RCZ80 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
;
|
||||
.DB $07, $33, $32, $32, $FF, $FF ; RCZ80 W/ LINC SOUND MODULE
|
||||
.DW HWSTR_LINC
|
||||
;
|
||||
.DB $08, $68, $60, $68, $C0, $FF ; RCZ180 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
@@ -578,6 +582,9 @@ CFGTBL: ; PLT RSEL RDAT RIN Z180 ACR
|
||||
;
|
||||
.DB $08, $61, $60, $60, $C0, $FF ; RCZ180 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
;
|
||||
.DB $08, $33, $32, $32, $C0, $FF ; RCZ180 W/ LINC SOUND MODULE
|
||||
.DW HWSTR_LINC
|
||||
;
|
||||
.DB $09, $D8, $D0, $D8, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
@@ -587,6 +594,9 @@ CFGTBL: ; PLT RSEL RDAT RIN Z180 ACR
|
||||
;
|
||||
.DB $09, $D1, $D0, $D0, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
;
|
||||
.DB $09, $33, $32, $32, $FF, $FF ; EZZ80 W/ LINC SOUND MODULE
|
||||
.DW HWSTR_LINC
|
||||
;
|
||||
.DB $0A, $68, $60, $68, $C0, $FF ; SCZ180 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
@@ -596,6 +606,9 @@ CFGTBL: ; PLT RSEL RDAT RIN Z180 ACR
|
||||
;
|
||||
.DB $0A, $61, $60, $60, $C0, $FF ; SCZ180 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
;
|
||||
.DB $0A, $33, $32, $32, $C0, $FF ; SCZ180 W/ LINC SOUND MODULE
|
||||
.DW HWSTR_LINC
|
||||
;
|
||||
.DB $0B, $D8, $D0, $D8, $FF, $FF ; RCZ280 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
@@ -605,6 +618,9 @@ CFGTBL: ; PLT RSEL RDAT RIN Z180 ACR
|
||||
;
|
||||
.DB $0B, $D1, $D0, $D0, $FF, $FF ; RCZ280 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
;
|
||||
.DB $0B, $33, $32, $32, $FF, $FF ; RCZ280 W/ LINC SOUND MODULE
|
||||
.DW HWSTR_LINC
|
||||
;
|
||||
.DB $FF ; END OF TABLE MARKER
|
||||
;
|
||||
@@ -633,8 +649,8 @@ TMP .DB 0 ; work around use of undocumented Z80
|
||||
HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE
|
||||
OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN
|
||||
|
||||
MSGBAN .DB "Tune Player for RomWBW v3.2, 03-Sep-2020",0
|
||||
MSGUSE .DB "Copyright (C) 2020, Wayne Warthen, GNU GPL v3",13,10
|
||||
MSGBAN .DB "Tune Player for RomWBW v3.3, 14-Aug-2021",0
|
||||
MSGUSE .DB "Copyright (C) 2021, Wayne Warthen, GNU GPL v3",13,10
|
||||
.DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10
|
||||
.DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10
|
||||
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [--hbios] [+tn|-tn]",0
|
||||
@@ -656,6 +672,7 @@ HWSTR_N8 .DB "N8 Onboard Sound",0
|
||||
HWSTR_RCEB .DB "RC2014 Sound Module (EB)",0
|
||||
HWSTR_RCEB6 .DB "RC2014 Sound Module (EBv6)",0
|
||||
HWSTR_RCMF .DB "RC2014 Sound Module (MF)",0
|
||||
HWSTR_LINC .DB "Z50 LiNC Sound Module",0
|
||||
|
||||
MSGUNSUP .db "MYM files not supported yet!\r\n", 0
|
||||
|
||||
|
||||
@@ -67,6 +67,10 @@ done
|
||||
|
||||
CONFIGFILE=Config/${ROM_PLATFORM}_${ROM_CONFIG}.asm
|
||||
|
||||
if [ -z "${ROMSIZE}" ] ; then
|
||||
ROMSIZE="512"
|
||||
fi
|
||||
|
||||
while [ ! '(' "${ROMSIZE}" = 1024 -o "${ROMSIZE}" = 512 -o "${ROMSIZE}" = 256 -o "${ROMSIZE}" = 128 ')' ] ; do
|
||||
echo -n "Romsize :"
|
||||
read ROMSIZE
|
||||
|
||||
@@ -36,5 +36,3 @@ FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3
|
||||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
;
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
|
||||
@@ -1,45 +1,43 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; EASY Z80 STANDARD CONFIGURATION
|
||||
;==================================================================================================
|
||||
;
|
||||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
|
||||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
|
||||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
|
||||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
|
||||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
|
||||
; YOUR FILE IN THE BUILD PROCESS.
|
||||
;
|
||||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
|
||||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
|
||||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
|
||||
; SETTINGS.
|
||||
;
|
||||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
|
||||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
|
||||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
|
||||
;
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "TINYZ80"
|
||||
;
|
||||
#include "cfg_ezz80.asm"
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
CPUOSC .SET 16000000 ; CPU OSC FREQ IN MHZ
|
||||
;
|
||||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
;
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
EIPCENABLE .SET TRUE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
|
||||
;
|
||||
CTCBASE .SET $10 ; CTC BASE I/O ADDRESS
|
||||
LEDENABLE .SET TRUE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDPORT .SET $6E ; STATUS LED PORT ADDRESS
|
||||
SIO0BASE .SET $18 ; SIO 0: REGISTERS BASE ADR
|
||||
IDE0BASE .SET $90 ; IDE 0: IO BASE ADDRESS
|
||||
;
|
||||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
;
|
||||
;==================================================================================================
|
||||
; EASY Z80 STANDARD CONFIGURATION
|
||||
;==================================================================================================
|
||||
;
|
||||
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
|
||||
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
|
||||
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
|
||||
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
|
||||
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
|
||||
; YOUR FILE IN THE BUILD PROCESS.
|
||||
;
|
||||
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
|
||||
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
|
||||
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
|
||||
; SETTINGS.
|
||||
;
|
||||
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
|
||||
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
|
||||
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
|
||||
;
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "TINYZ80"
|
||||
;
|
||||
#include "cfg_ezz80.asm"
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
CPUOSC .SET 16000000 ; CPU OSC FREQ IN MHZ
|
||||
;
|
||||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
;
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
EIPCENABLE .SET TRUE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
|
||||
;
|
||||
CTCBASE .SET $10 ; CTC BASE I/O ADDRESS
|
||||
LEDENABLE .SET TRUE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDPORT .SET $6E ; STATUS LED PORT ADDRESS
|
||||
SIO0BASE .SET $18 ; SIO 0: REGISTERS BASE ADR
|
||||
IDE0BASE .SET $90 ; IDE 0: IO BASE ADDRESS
|
||||
|
||||
@@ -32,4 +32,6 @@ Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
|
||||
;
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
;
|
||||
SDMODE .SET SDMODE_CSIO ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
|
||||
@@ -43,6 +43,8 @@ SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
;
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
;
|
||||
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
|
||||
;
|
||||
|
||||
@@ -43,6 +43,8 @@ SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
;
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
;
|
||||
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
|
||||
;
|
||||
|
||||
@@ -38,6 +38,8 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_RCV9958 ; TMS: DRIVER MODE: TMSMODE_[RC/RCV9958]
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
;
|
||||
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
|
||||
;
|
||||
|
||||
@@ -39,6 +39,8 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
;
|
||||
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
|
||||
;
|
||||
|
||||
@@ -45,6 +45,8 @@ SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
;
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
;
|
||||
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
|
||||
;
|
||||
|
||||
@@ -52,6 +52,8 @@ SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
;
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
;
|
||||
FDENABLE .SET TRUE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|DIDE|N8|DIO3]
|
||||
;
|
||||
|
||||
@@ -50,6 +50,8 @@ ASCIENABLE .SET TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
|
||||
SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
;
|
||||
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
|
||||
;
|
||||
|
||||
@@ -46,6 +46,9 @@ ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
|
||||
;
|
||||
SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_LINC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|DIDE|N8|DIO3]
|
||||
;
|
||||
|
||||
@@ -42,6 +42,12 @@ AY_RDAT .EQU $A1
|
||||
AY_RIN .EQU $A2
|
||||
#ENDIF
|
||||
;
|
||||
#IF (AYMODE == AYMODE_LINC)
|
||||
AY_RSEL .EQU $33
|
||||
AY_RDAT .EQU $32
|
||||
AY_RIN .EQU $32
|
||||
#ENDIF
|
||||
;
|
||||
;======================================================================
|
||||
;
|
||||
; REGISTERS
|
||||
@@ -100,7 +106,33 @@ AY_RATIO .EQU (AY_CLK * 100) / (16 >> AY_SCALE)
|
||||
;
|
||||
AY38910_INIT:
|
||||
CALL NEWLINE ; ANNOUNCE
|
||||
PRTS("AY: IO=0x$")
|
||||
PRTS("AY:$")
|
||||
;
|
||||
#IF (AYMODE == AYMODE_SCG)
|
||||
PRTS(" MODE=SCG$")
|
||||
#ENDIF
|
||||
;
|
||||
#IF (AYMODE == AYMODE_N8)
|
||||
PRTS(" MODE=N8$")
|
||||
#ENDIF
|
||||
;
|
||||
#IF (AYMODE == AYMODE_RCZ80)
|
||||
PRTS(" MODE=RCZ80$")
|
||||
#ENDIF
|
||||
;
|
||||
#IF (AYMODE == AYMODE_RCZ180)
|
||||
PRTS(" MODE=RCZ180$")
|
||||
#ENDIF
|
||||
;
|
||||
#IF (AYMODE == AYMODE_MSX)
|
||||
PRTS(" MODE=MSX$")
|
||||
#ENDIF
|
||||
;
|
||||
#IF (AYMODE == AYMODE_LINC)
|
||||
PRTS(" MODE=LINC$")
|
||||
#ENDIF
|
||||
;
|
||||
PRTS(" IO=0x$")
|
||||
LD A,AY_RSEL
|
||||
CALL PRTHEXBYTE
|
||||
;
|
||||
|
||||
@@ -187,7 +187,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -222,7 +222,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -294,7 +294,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -226,7 +226,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU TRUE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -227,7 +227,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -225,7 +225,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -235,7 +235,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -251,7 +251,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -240,7 +240,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -226,7 +226,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -230,7 +230,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
;
|
||||
|
||||
@@ -2076,7 +2076,7 @@ HB_ROMCK:
|
||||
;
|
||||
; COPY CHECKSUM ROUTINE TO UPPER RAM
|
||||
LD HL,HB_CKBNK
|
||||
LD DE,$8000
|
||||
LD DE,$F000
|
||||
LD BC,HB_CKBNKSIZ
|
||||
LDIR
|
||||
;
|
||||
@@ -2085,7 +2085,7 @@ HB_ROMCK:
|
||||
LD C,0 ; STARTING AT BANK 0
|
||||
HB_ROMCK1:
|
||||
PUSH BC ; SAVE LOOP CONTROL
|
||||
CALL $8000 ; TEST THE BANK
|
||||
CALL $F000 ; TEST THE BANK
|
||||
CALL PC_SPACE ; FORMATTING
|
||||
CALL PRTHEXBYTE ; PRINT RESULT
|
||||
POP BC ; RESTORE LOOP CONTROL
|
||||
@@ -2129,6 +2129,8 @@ HB_CKBNKSIZ .EQU $-HB_CKBNK ; SIZE OF ROUTINE
|
||||
;
|
||||
HB_ROMCKZ:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
; LOW BATTERY DIAGNOSTIC MESSAGE
|
||||
;
|
||||
#IF (BATCOND)
|
||||
|
||||
@@ -208,6 +208,7 @@ AYMODE_SCG .EQU 2 ; SCG ECB BOARD
|
||||
AYMODE_RCZ80 .EQU 3 ; RC2014 SOUND MODULE BY ED BRINDLEY ON Z80
|
||||
AYMODE_RCZ180 .EQU 4 ; RC2014 SOUND MODULE BY ED BRINDLEY ON Z180
|
||||
AYMODE_MSX .EQU 5 ; RC2014 SOUND MODULE REV6 BY ED BRINDLEY ON Z80/Z180 AT MSX PORTS
|
||||
AYMODE_LINC .EQU 6 ; LINC Z50 AY SOUND CARD
|
||||
;
|
||||
; TMS VIDEO MODE SELECTIONS
|
||||
;
|
||||
|
||||
Binary file not shown.
BIN
Source/Images/Common/All/CRUNCH28.CFG
Normal file
BIN
Source/Images/Common/All/CRUNCH28.CFG
Normal file
Binary file not shown.
199
Source/Images/Common/All/FLASH.DOC
Normal file
199
Source/Images/Common/All/FLASH.DOC
Normal file
@@ -0,0 +1,199 @@
|
||||
|
||||
FLASH4 (c) 2014-2020 William R Sowerbutts <will@sowerbutts.com>
|
||||
http://sowerbutts.com/8bit/
|
||||
|
||||
= Supported machines =
|
||||
|
||||
FLASH4 has been tested and confirmed working on:
|
||||
* N8VEM SBCv2
|
||||
* N8VEM SBCv2 MegaFlash
|
||||
* N8VEM N8-2312
|
||||
* N8VEM Mark IV SBC
|
||||
* DX-Designs P112
|
||||
* ZETA SBC v1
|
||||
* ZETA SBC v2
|
||||
* RC2014 with 512KB ROM 512KB RAM module
|
||||
|
||||
It should work on many other machines that run RomWBW or UNA BIOS. If you test
|
||||
it on another machine please let me know the outcome.
|
||||
|
||||
|
||||
= Introduction =
|
||||
|
||||
FLASH4 is a CP/M program which can read, write and verify Flash ROM contents to
|
||||
or from an image file stored on a CP/M filesystem. It is intended for in-system
|
||||
programming of Flash ROM chips on Z80 and Z180 systems.
|
||||
|
||||
FLASH4 aims to support a range of Flash ROM chips and machines. Ideally I would
|
||||
like to support all Z80/Z180 machines. If FLASH4 does not support your machine
|
||||
please let me know and I will try to add support.
|
||||
|
||||
When writing to the Flash ROM, FLASH4 will only reprogram the sectors whose
|
||||
contents have changed. This helps to reduce wear on the flash memory, makes the
|
||||
reprogram operation faster, and reduces the risk of leaving the system
|
||||
unbootable if power fails during a reprogramming operation. FLASH4 always
|
||||
performs a full verify operation after writing to the chip to confirm that the
|
||||
correct data has been loaded.
|
||||
|
||||
FLASH4 is reasonably fast. Reprogramming and verifying every sector on a 512KB
|
||||
SST 39F040 chip takes 21 seconds on my Mark IV SBC, versus 45 seconds to
|
||||
perform the same task using a USB MiniPro TL866 EEPROM programmer under Linux
|
||||
on my PC. If only a subset of sectors require reprogramming FLASH4 will be
|
||||
even faster.
|
||||
|
||||
FLASH4 works with binary ROM image files, it does not support Intel Hex format
|
||||
files. Hex files can be easily converted to or from binaries using "hex2bin" or
|
||||
the "srec_cat" program from SRecord:
|
||||
|
||||
$ srec_cat image.hex -intel -fill 0xFF 0 0x80000 -output image.bin -binary
|
||||
$ srec_cat image.bin -binary -output image.hex -intel
|
||||
|
||||
FLASH4 version 1.3 introduces support for programming multiple flash chips.
|
||||
Some machines use multiple flash chips for larger ROM capacity, for example the
|
||||
"Megaflash" version of the Retrobrew Computers SBC-V2 contains two 512KB flash
|
||||
ROMs for a total of 1MB ROM. All flash chips in the system must be of the same
|
||||
type.
|
||||
|
||||
FLASH4 can use several different methods to access the Flash ROM chips. The
|
||||
best available method is determined automatically at run time. Alternatively
|
||||
you may provide a command-line option to force the use of a specific method.
|
||||
|
||||
FLASH4 will detect the presence of RomWBW, UNA BIOS or P112 B/P BIOS and use
|
||||
the bank switching methods they provide to map in the flash memory.
|
||||
|
||||
If no bank switching method can be auto-detected, and the system has a Z180
|
||||
CPU, FLASH4 will use the Z180 DMA engine to access the Flash ROM chip. This
|
||||
does not require any bank switching but it is slower and will not work on all
|
||||
platforms.
|
||||
|
||||
Z180 DMA access requires the flash ROM to be linearly mapped into the lower
|
||||
region of physical memory, as it is on the Mark IV SBC (for example). The
|
||||
N8-2312 has additional memory mapping hardware, consequently Z180 DMA access on
|
||||
the N8-2312 is NOT SUPPORTED and if forced will corrupt the contents of RAM;
|
||||
use one of the supported bank switching methods instead.
|
||||
|
||||
Z180 DMA access requires the Z180 CPU I/O base control register configured to
|
||||
locate the internal I/O addresses at 0x40 (ie ICR bits IOA7, IOA6 = 0, 1).
|
||||
|
||||
|
||||
= Usage =
|
||||
|
||||
The three basic operations are:
|
||||
|
||||
FLASH4 WRITE filename [options]
|
||||
|
||||
FLASH4 VERIFY filename [options]
|
||||
|
||||
FLASH4 READ filename [options]
|
||||
|
||||
The WRITE command will rewrite the flash ROM contents from the named file. The
|
||||
file size must exactly match the size of the ROM chip. After the WRITE
|
||||
operation, a VERIFY operation will be performed automatically.
|
||||
|
||||
The VERIFY command will read out the flash ROM contents and report if it
|
||||
matches the contents of the named file. The file size must exactly match the
|
||||
size of the ROM chip.
|
||||
|
||||
The READ command will read out the entire flash ROM contents and write it to
|
||||
the named file.
|
||||
|
||||
FLASH4 will auto-detect most parameters so additional options should not
|
||||
normally be required.
|
||||
|
||||
The "/V" (verbose) option makes FLASH4 print one line per sector, giving a
|
||||
detailed log of what it did.
|
||||
|
||||
The "/P" or "/PARTIAL" option can be used if your ROM chip is larger than the
|
||||
image you wish to write and you only want to reprogram part of it. To avoid
|
||||
accidentally flashing the wrong file, the image file must be an exact multiple
|
||||
of 32KB in length. The portion of the ROM not occupied by the image file is
|
||||
left either unmodified or erased.
|
||||
|
||||
The "/ROM" option can be used when you are using an ROM/EPROM/EEPROM chip which
|
||||
cannot be programmed in-system and FLASH4 cannot recognise it. Only the "READ"
|
||||
and "VERIFY" commands are supported with this option. This mode assumes a 512K
|
||||
ROM is fitted, smaller ROMs will be treated as a 512KB ROM with the data
|
||||
repeated multiple times.
|
||||
|
||||
One of the following optional command line arguments may be specified at the
|
||||
end of the command line to force FLASH4 to use a particular method to access
|
||||
the flash ROM chip:
|
||||
|
||||
BIOS interfaces:
|
||||
/ROMWBW For ROMWBW BIOS version 2.6 and later
|
||||
/ROMWBWOLD For ROMWBW BIOS version 2.5 and earlier
|
||||
/UNABIOS For UNA BIOS
|
||||
|
||||
Direct hardware interfaces:
|
||||
/Z180DMA For Z180 DMA
|
||||
/P112 For DX-Designs P112
|
||||
/N8VEMSBC For N8VEM SBC (v1, v2), Zeta (v1) SBC
|
||||
|
||||
If no option is specified FLASH4 attempts to determine the best available
|
||||
method automatically.
|
||||
|
||||
If RomWBW 2.6+ is in use, and correctly configured, then multiple flash chips
|
||||
can be detected automatically. Multiple chip operation can also be manually
|
||||
enabled using the command line options "/1", "/2", "/3" etc up to "/9" to
|
||||
specify the number of flash chips to program. All flash chips in the system
|
||||
must be of the same type.
|
||||
|
||||
|
||||
= Supported flash memory chips =
|
||||
|
||||
FLASH4 will interrogate your flash ROM chip to identify it automatically.
|
||||
|
||||
FLASH4 does not support setting or resetting the protection bits on individual
|
||||
sectors within Flash ROM devices. If your Flash ROM chip has protected sectors
|
||||
you will need to unprotect them by other means before FLASH4 can erase and
|
||||
reprogram them.
|
||||
|
||||
AT29C series chips employ an optional "software data protection" feature. This
|
||||
is supported by FLASH4 and is left activated after programming the chip to
|
||||
prevent accidental reprogramming of sectors.
|
||||
|
||||
The following chips are fully supported and will be programmed sector by
|
||||
sector:
|
||||
|
||||
AT29F010
|
||||
AT29F040
|
||||
M29F010
|
||||
M29F040
|
||||
MX29F040
|
||||
SST 39F010
|
||||
SST 39F020
|
||||
SST 39F040
|
||||
AT29C512
|
||||
AT29C040
|
||||
AT29C010
|
||||
AT29C020
|
||||
|
||||
The following chips are supported, but have unequal sector sizes, so FLASH4
|
||||
will only erase and reprogram the entire chip at once:
|
||||
|
||||
AT49F001N
|
||||
AT49F001NT
|
||||
AT49F002N
|
||||
AT49F002NT
|
||||
AT49F040
|
||||
|
||||
|
||||
= Compiling =
|
||||
|
||||
The software is written in a mix of C and assembler. It builds using the SDCC
|
||||
toolchain and the SRecord tools. SDCC 3.6 and 3.8 have been tested. A Makefile
|
||||
is provided to build the executable in Linux and I imagine it can be easily
|
||||
modified to build in Windows.
|
||||
|
||||
You may need to adjust the path to the SDCC libraries in the Makefile if your
|
||||
installation is not in /usr/local or /usr
|
||||
|
||||
|
||||
= License =
|
||||
|
||||
FLASH4 is licensed under the The GNU General Public License version 3 (see
|
||||
included "LICENSE.txt" file).
|
||||
|
||||
FLASH4 is provided with NO WARRANTY. In no event will the author be liable for
|
||||
any damages. Use of this program is at your own risk. May cause rifts in space
|
||||
and time.
|
||||
BIN
Source/Images/Common/All/SUPERSUB.COM
Normal file
BIN
Source/Images/Common/All/SUPERSUB.COM
Normal file
Binary file not shown.
141
Source/Images/Common/All/SUPERSUB.DOC
Normal file
141
Source/Images/Common/All/SUPERSUB.DOC
Normal file
@@ -0,0 +1,141 @@
|
||||
SUPERSUB DOCUMENTATION (revised 09/13/81)
|
||||
----------------------
|
||||
|
||||
09/05/81
|
||||
by Ron Fowler
|
||||
Westland, Mich
|
||||
|
||||
SUPERSUB is intended as a replacement program for SUBMIT.COM provided
|
||||
with CP/M by Digital Research Corporation. This document assumes you
|
||||
are familiar with that utility and its use.
|
||||
|
||||
------------------
|
||||
|
||||
Version 1.1 update:
|
||||
|
||||
Control-character translation has been added. This facility works
|
||||
similarly to CP/M's SUBMIT, where a desired control character is gen-
|
||||
erated in the text file by preceeding the character with a circumflex
|
||||
character. For example, control-V is generated from "^V". Thanks to
|
||||
Keith Petersen for pointing out this omission.
|
||||
|
||||
A bug in line number reporting when errors are encountered has been
|
||||
repaired. Line numbers reported should now correspond to the actual
|
||||
line number in the file.
|
||||
|
||||
------------------
|
||||
|
||||
SUPERSUB provides the following new capabilities:
|
||||
|
||||
1) Null input lines are properly interpreted; they cause
|
||||
the creation of a zero-length line in $$$.SUB.
|
||||
|
||||
2) SUBMIT jobs may be nested.
|
||||
|
||||
3) For small SUBMIT jobs, the command lines may be specified
|
||||
on the SUPERSUB command line, seperated by semicolons.
|
||||
|
||||
4) An interactive mode allows command lines to be entered
|
||||
directly into SUPERSUB without need of a text editor.
|
||||
|
||||
5) A built-in help function is provided.
|
||||
|
||||
6) The output drive and number of allowable parameters may
|
||||
by specified at assembly time.
|
||||
|
||||
NESTING
|
||||
-------
|
||||
|
||||
SUBMIT jobs may be nested under SUPERSUB. For example, suppose you
|
||||
have a submit file to compile a program:
|
||||
|
||||
BASCOM =$1
|
||||
L80 $1,$1/N/E
|
||||
PIP B:=$1.COM
|
||||
ERA $1.REL
|
||||
ERA $1.COM
|
||||
|
||||
named COMPILE.SUB. You may then submit a job to compile several
|
||||
programs using COMPILE.SUB. For example, you can create a file
|
||||
called COMPALL.SUB consisting of:
|
||||
|
||||
SUPERSUB COMPILE MYPROG
|
||||
SUPERSUB COMPILE RBBS.ASC
|
||||
SUPERSUB COMPILE PRIMES.BAS.
|
||||
|
||||
This is especially useful when using INTERACTIVE or SUMMARY modes.
|
||||
In combination with Ward Christensen's FMAP program (CPMUG), some
|
||||
very powerful command structures may be built.
|
||||
|
||||
SUMMARY MODE
|
||||
------------
|
||||
|
||||
Summary mode allows the entire SUBMIT job to be specified in the
|
||||
CP/M command line. This mode is enabled by using the slash ("/")
|
||||
character as the first character of the command line. The indiv-
|
||||
idual submit lines must be seperated with a semicolon. For example,
|
||||
|
||||
A>SUPERSUB / CRCK *.* F;CRCK B:*.* F;COMPARE CRCKFILE.CRC B: ^
|
||||
|
|
||||
----> (this space is optional)
|
||||
|
||||
will create a file of CRC's of all files on A:, then create a similar
|
||||
file on B:, then compare the two. (CRCK, by Keith Petersen, and
|
||||
COMPARE, by Ward Christensen, are available from the CP/M Users Group).
|
||||
|
||||
INTERACTIVE MODE
|
||||
----------------
|
||||
|
||||
You may enter the interactive entry mode by typing "SUPERSUB /<CR>"
|
||||
(ie, "SUPERSUB /" with no arguments). Supersub will prompt for input
|
||||
with an asterisk, and you may then enter SUBMIT lines from the keyboard.
|
||||
You may enter more than one logical line on a physical line using
|
||||
semicolon seperation. An empty line terminates the input. Example:
|
||||
|
||||
A>SUPERSUB /
|
||||
*CRCK *.* F
|
||||
*CRCK B:*.* F
|
||||
*COMPARE CRCKFILE.CRC B:
|
||||
* <empty line here>
|
||||
A>CRCK *.* F <submit file begins execution>
|
||||
|
||||
has the same effect as the above SUMMARY mode example.
|
||||
|
||||
HELP FUNCTION
|
||||
-------------
|
||||
|
||||
Typing SUPERSUB with no arguments will print the built-in help file.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NOTES
|
||||
-----
|
||||
|
||||
1) Nested SUBMIT runs are only usable up to a maximum of 128 nested
|
||||
commands at any one time. This is a limitation of the CP/M Console
|
||||
Command Processor.
|
||||
|
||||
2) If you change the drive specification for the output file, you
|
||||
may want to do the same thing with XSUB (Digital Research's function
|
||||
nine extender). Within XSUB, find the submit File Control Block
|
||||
(search for "$$$ SUB" within XSUB.COM) and change the first FCB
|
||||
byte (ie, the byte before the first "$") to:
|
||||
0 - use default drive
|
||||
1 - use drive A:
|
||||
2 - use drive B:
|
||||
etc.
|
||||
|
||||
3) In SUMMARY and INTERACTIVE modes, passed parameters have no meaning.
|
||||
When these modes are used, the parameter flag, "$", will be passed
|
||||
through literally to the output file.
|
||||
|
||||
4) Zero-length output lines may be created in SUMMARY and INTERACTIVE
|
||||
modes by using two consecutive semicolons. This is, in effect, a
|
||||
blank logical line.
|
||||
|
||||
5) Interactive mode may be aborted by typing control-C as the first
|
||||
character of a line. Also, all normal CP/M editing characters are
|
||||
available.
|
||||
|
||||
623
Source/Images/Common/All/UNARC.DOC
Normal file
623
Source/Images/Common/All/UNARC.DOC
Normal file
@@ -0,0 +1,623 @@
|
||||
File: UNARC.DOC
|
||||
Subject: User Documentation for UNARC Program
|
||||
Version: 1.6
|
||||
Date: March 27, 1987
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
UNARC
|
||||
|
||||
CP/M Archive File Extraction Utility
|
||||
|
||||
|
||||
Copyright (C) 1986, 1987 by Robert A. Freed
|
||||
All Rights Reserved
|
||||
|
||||
|
||||
|
||||
This file provides user-level documentation and operating instructions for
|
||||
UNARC version 1.6, released March 27, 1987. Refer to the notice at the end of
|
||||
this file regarding rights of use and distribution of this program.
|
||||
|
||||
The release message file, UNARC.MSG, provides a list of all additional files
|
||||
distributed with the current UNARC release and describes the program changes
|
||||
from the previous version 1.4 and 1.5 releases.
|
||||
|
||||
|
||||
|
||||
ABSTRACT
|
||||
--------
|
||||
|
||||
UNARC is a utility program for CP/M systems which allows the listing, typeout,
|
||||
printing, checking, and extraction of subfiles contained in "archive" library
|
||||
(*.ARC or *.ARK) files. These are commonly used for compressed file storage
|
||||
on remote access bulletin board systems. UNARC provides the CP/M user the
|
||||
ability to process such files after downloading them via modem from these
|
||||
remote systems.
|
||||
|
||||
|
||||
|
||||
REQUIREMENTS
|
||||
------------
|
||||
|
||||
UNARC requires CP/M version 2 or higher. The program is offered in two
|
||||
versions. The standard version, UNARC.COM, requires a Z80 processor (or
|
||||
compatible equivalent, e.g. HD64180 or NSC800). An alternate version,
|
||||
UNARCA.COM, is provided for systems with 8080 or 8085 processors (or 16-bit
|
||||
systems using the NEC V20 for CP/M emulation). Identical capabilities are
|
||||
provided by the two program versions.
|
||||
|
||||
NOTE
|
||||
|
||||
Although UNARCA.COM can execute on ANY system capable of
|
||||
supporting CP/M, it is larger and significantly slower than
|
||||
UNARC.COM and should be avoided by users of Z80-based systems.
|
||||
|
||||
UNARC is written in Z80 assembly language and requires only 5K bytes of disk
|
||||
storage (6K for UNARCA). As distributed, the program requires at least 30K
|
||||
bytes of available memory space (TPA) for full support of all archive file
|
||||
formats (31K TPA size for UNARCA). (Smaller systems may be able to use some
|
||||
of the program's capabilities.)
|
||||
|
||||
|
||||
|
||||
ABOUT ARC/ARK FILES
|
||||
-------------------
|
||||
|
||||
The files which UNARC processes utilize a format that was introduced by the
|
||||
ARC shareware utility program, which executes on 16-bit computers running the
|
||||
MS-DOS (or PC-DOS) operating system. This format has achieved widespread
|
||||
popularity since the ARC program first appeared in March 1985, and it has
|
||||
become the de facto standard for file storage on remote access systems
|
||||
catering to 16-bit computer users. More recently this file format has
|
||||
achieved increased popularity on RCP/M (Remote CP/M) systems.
|
||||
|
||||
NOTE
|
||||
|
||||
Most RCP/M system operators have adopted the convention of naming
|
||||
CP/M archive files with the filetype ARK. This differentiates
|
||||
these from MS-DOS archive files, which use the filetype ARC. This
|
||||
is a naming convention only: There is no difference in format,
|
||||
and UNARC will accept files of either type interchangeably.
|
||||
|
||||
An archive is a group of files collected together into a single file in such a
|
||||
way that the individual files may be recovered intact. In this respect,
|
||||
archives are similar in function to libraries (*.LBR files), which have been
|
||||
commonplace on CP/M systems since 1982, when the original LU library utility
|
||||
program was introduced by Gary P. Novosielski. (However, the two file formats
|
||||
are not compatible.)
|
||||
|
||||
The distinguishing characteristic of an ARC archive is that its component
|
||||
files are automatically compressed when they are added to the archive, so that
|
||||
the resulting file occupies a minimum amount of disk space. Of course, file
|
||||
compression techniques have also been commonplace in the CP/M world since
|
||||
1981, when the public domain SQ and USQ "squeeze and unsqueeze" programs were
|
||||
introduced by Richard Greenlaw.
|
||||
|
||||
The SQ/USQ programs and their numerous popular descendants utilize a well-
|
||||
known general-purpose form of data compression (Huffman coding). This
|
||||
technique, which is also utilized in ARC files, performs well for many text
|
||||
files but often produces poor compression of binary files (e.g. object program
|
||||
.COM files). The ARC program also provides an advanced data compression
|
||||
method, which it terms "crunching." This method (which is based on the
|
||||
Lempel-Ziv-Welch or "LZW" algorithm) performs better than squeezing in most
|
||||
cases, often achieving 50% or better compression of ASCII text files, 15-40%
|
||||
compression of binary object files, and as much as 95% compression of bit-
|
||||
mapped graphics image files.
|
||||
|
||||
Five different methods are actually employed for storing files in an archive.
|
||||
The method chosen for a particular file is the one which results in the best
|
||||
compression for that file:
|
||||
|
||||
(1) No compression ("unpacked"). The file is stored in its original form.
|
||||
|
||||
(2) Run-length encoding ("packed"). Repeated sequences of 3-255 identical
|
||||
bytes are compressed into a three-byte sequence.
|
||||
|
||||
(3) Huffman coding ("squeezed"). Each 8-bit byte (after run-length encoding)
|
||||
is encoded by a variable number of bits, with bit length (approximately)
|
||||
inversely proportional to the frequency of occurence of the corresponding
|
||||
byte.
|
||||
|
||||
(4) LZW compression ("crunched"). Variable-length strings of bytes (in
|
||||
theory, up to nearly 4000 bytes in length) are represented by a single
|
||||
(maximum) 12-bit code (after run-length encoding).
|
||||
|
||||
(5) LZW compression ("squashed"). This is a variation of crunching which
|
||||
uses (maximum) 13-bit codes (and no run-length encoding).
|
||||
|
||||
Note that since one of the five methods involves no compression at all, the
|
||||
resulting archive entry will never be larger than the original file.
|
||||
|
||||
NOTE
|
||||
|
||||
The most recent release of the MS-DOS ARC program (version 5.20)
|
||||
has eliminated squeezing as a compression technique. However,
|
||||
UNARC continues to process squeezed files for compatibility with
|
||||
archives created by earlier versions of ARC and by other MS-DOS
|
||||
archiving programs (notably PKARC).
|
||||
|
||||
The squashed compression method was recently introduced by the
|
||||
MS-DOS programs PKARC and PKXARC. UNARC can process files which
|
||||
use this method, although it is not universally accepted by other
|
||||
MS-DOS archive extraction programs (including ARC).
|
||||
|
||||
During its lifetime, the ARC program has undergone numerous revisions which
|
||||
have employed different variations on some of the above methods, particularly
|
||||
LZW compression. In order to retain compatibility with archives created by
|
||||
earlier program revisions, ARC stores a "version" indicator with each file in
|
||||
an archive. Based on this indicator, the latest release of the ARC program
|
||||
can always extract files created by older releases (although it will only use
|
||||
the latest data compression versions when adding new files to an archive).
|
||||
|
||||
NOTE
|
||||
|
||||
The current release of UNARC supports archive file versions
|
||||
generated by all releases of the following MS-DOS programs through
|
||||
(at least) the indicated program versions:
|
||||
|
||||
ARC 5.20 (24 Oct 86), by System Enhancement Associates, Inc.
|
||||
ARCA 1.22 (13 Sep 86), by Wayne Chin and Vernon Buerg
|
||||
ARCH 5.38 (26 Jun 86), by Les Satenstein
|
||||
PKARC 2.0 (15 Dec 86), by Phil Katz (PKWARE, Inc.)
|
||||
|
||||
(UNARC does not recognize, but is unaffected by, the non-standard
|
||||
archive and file commenting feature of PKARC.)
|
||||
|
||||
Although the above discussion has emphasized the origin of archive files for
|
||||
the MS-DOS operating system, their use has recently spread to many other
|
||||
systems. Programs compatible with MS-DOS ARC have appeared for UNIX, Atari
|
||||
68000, VAX/VMS, and TOPS-20 systems. A CP/M utility for building archive
|
||||
files will also be available in the near future.
|
||||
|
||||
For additional information about archive files and the MS-DOS ARC utility,
|
||||
refer to the documentation file, ARC.DOC, which is available from most remote
|
||||
access systems which utilize archive files. For additional information about
|
||||
the LZW algorithm (and data compression methods in general), refer to the
|
||||
article "A Technique for High-Performance Data Compression", by Terry A.
|
||||
Welch, in IEEE Computer magazine, Vol. 17, No. 6, June 1984.
|
||||
|
||||
|
||||
|
||||
USING UNARC
|
||||
-----------
|
||||
|
||||
The UNARC program provides an on-line help message, which is generated by
|
||||
running the program with an empty command line:
|
||||
|
||||
|
||||
A>UNARC
|
||||
|
||||
UNARC 1.6 27 Mar 87
|
||||
CP/M Archive File Extractor
|
||||
|
||||
Usage: UNARC [d:]arcfile[.typ] [d:][afn] [N|P|C]
|
||||
|
||||
Examples:
|
||||
B>UNARC A:SAVE.ARK *.* ; List all files in CP/M archive SAVE on drive A
|
||||
B>UNARC A:SAVE.ARC *.* ; List all files in MS-DOS archive SAVE on drive A
|
||||
A>UNARC SAVE ; Same as either of above
|
||||
A>UNARC SAVE *.* N ; Same as above (no screen pauses)
|
||||
A>UNARC SAVE *.DOC ; List just .DOC files
|
||||
A>UNARC SAVE READ.ME ; Typeout the file READ.ME
|
||||
A>UNARC SAVE READ.ME N ; Typeout the file READ.ME (no screen pauses)
|
||||
A>UNARC SAVE A: ; Extract all files to drive A
|
||||
A>UNARC SAVE B:*.DOC ; Extract .DOC files to drive B
|
||||
A>UNARC SAVE C:READ.ME ; Extract file READ.ME to drive C
|
||||
A>UNARC SAVE PRN.DAT P ; Print the file PRN.DAT (no formatting)
|
||||
A>UNARC SAVE *.* C ; Check validity of all files in archive
|
||||
|
||||
|
||||
As shown by this help display, the UNARC utility provides the following
|
||||
capabilities:
|
||||
|
||||
(1) Listing the directory of an archive
|
||||
(2) Extracting component files from an archive
|
||||
(3) Typing the contents of a component file at the console
|
||||
(4) Printing a component file directly on the CP/M list device
|
||||
(5) Checking the validity of an archive and its component files
|
||||
|
||||
The particular operation to be performed is determined by the form of the file
|
||||
parameter(s) in the command line, as described separately in the sections
|
||||
which follow. The following characteristics apply to all operations:
|
||||
|
||||
The first command line parameter must specify the name of an archive file. A
|
||||
drive name and filetype are optional. The filetype, if omitted, defaults to
|
||||
"ARK" or, if no such file exists, the alternate (MS-DOS) default "ARC" is
|
||||
assumed.
|
||||
|
||||
The standard CP/M terminal control characters, CTRL-S (to suspend console
|
||||
output) and CTRL-C (to abort the program), may be used at any time. CTRL-K
|
||||
may also be used as an alternate for CTRL-C. Printer output to the CP/M list
|
||||
device may be obtained by typing CTRL-P at CCP command level before executing
|
||||
UNARC.
|
||||
|
||||
In addition, by default UNARC will pause after every 23 lines of console
|
||||
output. At this time, the message "[more]" will appear at the bottom of the
|
||||
console screen. The listing may be resumed by typing any key (other than
|
||||
CTRL-S, CTRL-C, or CTRL-K, which will function as described above). If the
|
||||
space bar is used, one more line of console output will be displayed (over-
|
||||
writing the "[more]" message) and the program will again pause. If any other
|
||||
key is typed (e.g. RETURN), another 23 lines of output will be allowed to
|
||||
scroll onto the screen before the next pause. (LINE FEED may be used to
|
||||
prevent overprinting of the "[more]" line, e.g. for hard-copy terminals.)
|
||||
|
||||
If continuous display is desired, this automatic pause feature may be disabled
|
||||
by specifying "N" at the end of the command line. The "N" must be the last
|
||||
command line character, and it must be preceded by a space. Also, there must
|
||||
be two preceding file parameters on the command line. E.g., note the
|
||||
difference between the following commands:
|
||||
|
||||
A>UNARC SAVE N ; Typeout the file N. in archive SAVE
|
||||
A>UNARC SAVE *.* N ; List all files in archive SAVE with no pauses
|
||||
|
||||
The N option may not be used in conjunction with the P (Print) or C (Check)
|
||||
options.
|
||||
|
||||
|
||||
|
||||
LISTING AN ARCHIVE DIRECTORY
|
||||
----------------------------
|
||||
|
||||
By default, UNARC produces a detailed console listing of the component files
|
||||
in an archive. (In fact, there is no way to suppress this listing; it is
|
||||
generated during all UNARC operations.) If only the archive file name appears
|
||||
on the command line, UNARC will generate a complete directory of all component
|
||||
files in the specified archive file. Otherwise, the second command line
|
||||
parameter may be used to select a particular file to be listed (or group of
|
||||
files, if it contains the ambiguous file specification characters "*" or "?").
|
||||
If no disk drive name is provided for the second parameter, and this parameter
|
||||
specifies a group of files, the directory listing is the only output generated
|
||||
by the program.
|
||||
|
||||
A sample directory listing is illustrated here:
|
||||
|
||||
|
||||
A>UNARC CODES
|
||||
|
||||
Archive File = CODES.ARK
|
||||
|
||||
Name Length Disk Method Ver Stored Saved Date Time CRC
|
||||
============ ======= ==== ======== === ======= ===== ========= ====== ====
|
||||
ABLE .DOC 24320 24k Crunched 8 11777 52% 30 Apr 86 10:50a 42C0
|
||||
BRAVO .COM 17152 17k Squeezed 4 14750 14% 2 May 86 4:11p 8CBD
|
||||
CHARLIE .TXT 234 1k Packed 3 99 58% 2 May 86 4:11p 8927
|
||||
==== ======= ==== ======= === ====
|
||||
Total 3 41706 42k 26626 36% 58A4
|
||||
|
||||
|
||||
This listing is equivalent to the "verbose" listing of the MS-DOS ARC program
|
||||
(with the addition of the "Disk" and "Ver" fields, which are unique to UNARC).
|
||||
The listing requires a 78-column terminal width; there is currently no "short"
|
||||
listing format.
|
||||
|
||||
"Name" is the file name which will be generated if the file is extracted by
|
||||
UNARC on a CP/M system. (This is not necessarily the same as the name
|
||||
recorded in the archive file. Although CP/M and MS-DOS file naming
|
||||
conventions are identical, two conversions are made to guarantee file name
|
||||
validity under CP/M: Lower-case letters are converted to upper-case, and
|
||||
non-printing characters are converted to dollar signs, "$".) Archive entries
|
||||
are usually maintained (and hence listed) in alphabetic name order.
|
||||
|
||||
"Length" is the uncompressed file length, i.e. the number of bytes the file
|
||||
will occupy if extracted to disk, exclusive of any additional length imposed
|
||||
by the CP/M file system. Note that MS-DOS permits files of arbitrary lengths
|
||||
(unlike CP/M which restricts all files to a multiple of 128 bytes).
|
||||
|
||||
"Disk" is the actual amount of disk space required to extract the file to a
|
||||
CP/M disk, expressed as a multiple of 1K (1024) bytes. Note that this number
|
||||
is dependent on the disk data allocation block size. (CP/M permits various
|
||||
block sizes, ranging from 1K to 16K bytes. Typical sizes are 1K for single-
|
||||
density floppy disks, 2K for double-density floppies, and 4K for hard disks,
|
||||
although these values are quite system-dependent.) In the absence of an
|
||||
explicit output drive name, UNARC uses the block size of the default
|
||||
(currently "logged") disk drive (i.e. the drive which appears in the CCP
|
||||
prompt).
|
||||
|
||||
"Method" is the compression method used, specified as "Unpacked", "Packed",
|
||||
"Squeezed", "Crunched", "Squashed", or "Unknown!". If the method "Unknown!"
|
||||
appears, it most likely indicates (if not a faulty archive file) a newer
|
||||
release of the MS-DOS ARC program that supports a new compression method (or a
|
||||
new variation of an existing method). In this case, a corresponding new
|
||||
release of UNARC will be required to extract the file.
|
||||
|
||||
"Ver" further identifies the version of compression used. Currently, UNARC
|
||||
supports versions 1-9: unpacked files can have versions 1 or 2; packed files,
|
||||
version 3; squeezed files, version 4; crunched files, versions 5-8; and
|
||||
squashed files, version 9. The highest version number associated with each
|
||||
compression method is the one generated by the most recent release of the
|
||||
MS-DOS ARC program.
|
||||
|
||||
"Stored" is the compressed file length, i.e. the number of bytes occupied by
|
||||
the file in the archive. (This does not include the overhead associated with
|
||||
the directory information itself, which adds an additional 29 bytes to the
|
||||
size of each component file.)
|
||||
|
||||
"Saved" is the percentage of the original file length which was saved by
|
||||
compression; i.e., higher values indicate better compression. (The MS-DOS ARC
|
||||
documentation refers to this as the "stowage factor.") The value shown on the
|
||||
totals line applies to the archive as a whole, not including the directory
|
||||
overhead.
|
||||
|
||||
"Date" and "Time" refer to the last file modification, as of the time it was
|
||||
added to the archive. (Date and time stamping is, of course, one of the nice
|
||||
features of MS-DOS which is lacking in standard CP/M 2.2.)
|
||||
|
||||
"CRC" is an internal 16-bit cyclic redundancy check value which is computed
|
||||
when a file is added to an archive (expressed in hexadecimal). As a test of
|
||||
file validity, UNARC re-computes this value when it extracts a file (see
|
||||
below). Note that this value is calculated by a different method than that
|
||||
used by either of the two popular public domain programs, CRCK and CHEK. (It
|
||||
is however quite valid as a reliable error-detection mechanism.) This value
|
||||
is shown in the listing for completeness only. The value shown on the totals
|
||||
line is the 16-bit sum of all displayed CRC values. This is useful as a
|
||||
single "checksum" value for comparing entire archives. (Since the CRC values
|
||||
are computed before compression takes place, the total should be the same for
|
||||
all archives created from the same set of input files, independent of any
|
||||
particular variations in file order or compression methods.)
|
||||
|
||||
The "Total" line is displayed only if multiple files appear in the listing,
|
||||
and it includes a count of the number of files listed.
|
||||
|
||||
|
||||
|
||||
EXTRACTING FILES FROM AN ARCHIVE
|
||||
--------------------------------
|
||||
|
||||
If the second command line parameter contains a disk drive name, UNARC will
|
||||
extract the selected file(s) from the archive to CP/M file(s) on the indicated
|
||||
disk drive. If only a drive name appears, all component files of the archive
|
||||
will be extracted. The following illustrates a sample archive directory
|
||||
listing as generated during a file extraction operation:
|
||||
|
||||
|
||||
A>UNARC CODES B:
|
||||
|
||||
Archive File = CODES.ARK
|
||||
Output Drive = B:
|
||||
|
||||
Name Length Disk Method Ver Stored Saved Date Time CRC
|
||||
============ ======= ==== ======== === ======= ===== ========= ====== ====
|
||||
ABLE .DOC 24320 24k Crunched 8 11777 52% 30 Apr 86 10:50a 42C0
|
||||
Replace existing output file (y/n)? Y
|
||||
BRAVO .COM 17152 18k Squeezed 4 14740 14% 2 May 86 4:11p 8CBD
|
||||
Warning: Extracted file has incorrect CRC
|
||||
Warning: Extracted file has incorrect length
|
||||
Warning: Bad archive file header, bytes skipped = 10
|
||||
CHARLIE .TXT 234 2k Packed 3 99 58% 2 May 86 4:11p 8927
|
||||
==== ======= ==== ======= === ====
|
||||
Total 3 41706 44k 26616 36% 58A4
|
||||
|
||||
|
||||
The above listing also illustrates several warning messages which may occur
|
||||
when extracting files from an archive.
|
||||
|
||||
The message "Replace existing output file (y/n)?" appears if a file of the
|
||||
same name already exists on the output drive. The user must answer "Y" (or
|
||||
"y") to allow the extraction to proceed (in which case, the existing file is
|
||||
unceremoniously deleted). Any other response will cause UNARC to preserve the
|
||||
existing file, bypass the extraction operation for the current file, and
|
||||
(except for a CTRL-C response) skip to the next file to be extracted (if any).
|
||||
|
||||
The first two warning messages illustrated above are provided as a check on
|
||||
the validity of the extracted file. These indicate that either the cyclic
|
||||
redundancy check (CRC) value computed by UNARC, or the resulting extracted
|
||||
file length, does not match the corresponding value recorded in the archive
|
||||
when the original file was added to it. The final warning message occurs if
|
||||
UNARC fails to detect the proper format for the start of a new subfile, but
|
||||
can recover by skipping a certain number of bytes in the archive file. (If
|
||||
the recovery attempt fails, UNARC aborts with the message "Invalid archive
|
||||
file format.") The appearance of any of these messages most likely indicates
|
||||
that the file data has been corrupted in some way (e.g. during modem
|
||||
transmission from a remote system).
|
||||
|
||||
Note that if the original (i.e. MS-DOS) file length was not an exact multiple
|
||||
of 128 bytes (as required by CP/M), UNARC will pad the final record of the
|
||||
extracted file with hex "1A" (ASCII CTRL-Z) bytes. This provides the correct
|
||||
end-of-file termination for text files, according to CP/M conventions.
|
||||
|
||||
Also, the disk space shown in the archive directory listing will be correct
|
||||
for the specified disk drive. (In the above examples, drive A: has a 1K data
|
||||
allocation block size while drive B: has a 2K block size, which accounts for
|
||||
the differences in the two listings.) In order to determine the exact disk
|
||||
space requirements in advance of a file extraction operation, the user may
|
||||
first "log into" the desired output drive (i.e. select it as the default
|
||||
drive), and run UNARC to obtain a directory listing only. (This is a
|
||||
consideration only on systems with mixed disk drive types.)
|
||||
|
||||
A file extraction operation may be aborted at any time by entering CTRL-C from
|
||||
the console. In this case, any partial output file will remain on disk and
|
||||
should be deleted manually following the program abort. (Any existing file of
|
||||
the same name will have already been deleted, however.)
|
||||
|
||||
|
||||
|
||||
TYPING OUT A FILE IN AN ARCHIVE
|
||||
-------------------------------
|
||||
|
||||
A console typeout of the contents of a single component file in an archive may
|
||||
be requested by specifying a non-ambiguous file name (and no disk drive name)
|
||||
in the second command line parameter. For example:
|
||||
|
||||
|
||||
A>UNARC CODES ABLE.DOC
|
||||
|
||||
Archive File = CODES.ARK
|
||||
|
||||
Name Length Disk Method Ver Stored Saved Date Time CRC
|
||||
============ ======= ==== ======== === ======= ===== ========= ====== ====
|
||||
ABLE .DOC 24320 24k Crunched 8 11777 52% 30 Apr 86 10:50a 42C0
|
||||
-------------------------------------------------------------------------------
|
||||
This is file ABLE.DOC, contained within the archive CODES.ARK. Typeout will
|
||||
proceed until the end of this file or may be aborted by CTRL-C.....
|
||||
|
||||
|
||||
The specified file is assumed to contain valid ASCII text data. In
|
||||
particular, all bytes are masked to seven bits, and all ASCII control
|
||||
characters are ignored except for HT (horizontal tab, which is expanded to
|
||||
blanks with assumed tab stops at every eighth column), LF, VT or FF (line
|
||||
feed, vertical tab or form feed, which generate a new typeout line), and SUB
|
||||
(CTRL-Z, which by CP/M convention indicates end-of-file and terminates the
|
||||
typeout). Note that BS (backspace) and CR (carriage return) are ignored, so
|
||||
that text will not be obscured within files which utilize these for over-
|
||||
printing (i.e. when directed to a printer).
|
||||
|
||||
The following filetypes, which are usually associated with binary (non-text)
|
||||
data, are specifically excluded from typeout operations: COM, EXE, OBJ, OV?,
|
||||
REL, ?RL, INT, SYS, BAD, LBR, ARC, ARK, ?Q?, and ?Z?. If one of these types
|
||||
is specified, only the directory information for the requested file is listed.
|
||||
|
||||
Note that CRC and file length checking are not performed during a typeout
|
||||
operation, as they are during extraction to a disk file.
|
||||
|
||||
|
||||
|
||||
PRINTING A FILE IN AN ARCHIVE
|
||||
-----------------------------
|
||||
|
||||
A single component file in an archive may be output directly to the printer
|
||||
(CP/M list device) by specifying a trailing "P" on the command line. The "P"
|
||||
must be the last command line character, and it must be separated from the
|
||||
second file parameter by a space. (The file parameter must specify a non-
|
||||
ambiguous file name and no disk drive name.) For example:
|
||||
|
||||
A>UNARC CODES CHARLIE.TXT P
|
||||
|
||||
The specified file is assumed to contain data suitable for printer output and
|
||||
is passed directly to the printer without alteration or additional formatting.
|
||||
This operation is particularly well-suited for output of binary graphics
|
||||
images on dot-matrix printers, since these can be extemely large but tend to
|
||||
compress quite well (e.g. to less than 5% of their original size). Note that
|
||||
the binary data filetypes which are excluded from typeout operations are also
|
||||
excluded from printing operations. Printing may be paused or aborted by use
|
||||
of the console CTRL-S and CTRL-C characters.
|
||||
|
||||
|
||||
|
||||
CHECKING FILES IN AN ARCHIVE
|
||||
----------------------------
|
||||
|
||||
UNARC may be directed to extract one or more component files from an archive,
|
||||
without actually storing these as disk files, by specifying a trailing "C" on
|
||||
the command line. This operation performs file CRC and length checking, and
|
||||
it is useful for verifying correct modem data transmission of an archive. The
|
||||
"C" must be the last command line character, and it must be separated from the
|
||||
second file parameter by a space. (The file parameter must not specify a disk
|
||||
drive name, which indicates extraction to disk.) To check an entire archive,
|
||||
specify "*.*" for the second file parameter, for example:
|
||||
|
||||
A>UNARC CODES *.* C
|
||||
|
||||
|
||||
|
||||
PROGRAM OPTIONS
|
||||
---------------
|
||||
|
||||
UNARC provides several options which may be used to tailor the program for
|
||||
specific non-universal requirements. Many of these are intended for RCP/M
|
||||
(Remote CP/M) system operators, to allow generation of a secure version of
|
||||
UNARC which can be used by remote callers for purposes of archive directory
|
||||
listing and/or file typeout only (but not file extraction). Others are
|
||||
provided for specialized non-standard CP/M systems and need not concern the
|
||||
majority of users running CP/M 2.2, CP/M 3.0 (CP/M Plus), or ZCPR3/ZRDOS
|
||||
systems. Additional options provide user preference features (such as the
|
||||
number of screen lines between console output pauses, or the list of filetypes
|
||||
excluded from typeout operations).
|
||||
|
||||
All of these options are described in UNARCOVL.ASM, an assembly language
|
||||
source file that can be edited and assembled to generate a HEX-format overlay
|
||||
for easy patching of the UNARC.COM or UNARCA.COM program files. Complete
|
||||
details are provided for technically-oriented users in UNARCOVL.ASM. However,
|
||||
the default options in the distributed program files are suitable for the
|
||||
majority of users with standard CP/M operating systems.
|
||||
|
||||
|
||||
|
||||
PROGRAM DISTRIBUTION
|
||||
--------------------
|
||||
|
||||
The UNARC program, its documentation, and all related files are distributed in
|
||||
archive file format (of course!). The distribution file is named UNARCxx.ARK,
|
||||
where "xx" is derived from the current version number (e.g. UNARC16.ARK for
|
||||
version 1.6). (This does not include the program source code, which is
|
||||
distributed separately.) This archive has the special characteristic that it
|
||||
is "self-unpacking." I.e., a separate copy of the UNARC.COM program file is
|
||||
NOT required to extract the component files from this archive.
|
||||
|
||||
The procedure for extracting the distribution files is quite simple: First,
|
||||
copy or rename UNARCxx.ARK to a program file, UNARCxx.COM, on the current disk
|
||||
drive. (Note that the filename, UNARCxx, must NOT be changed.) Then, run
|
||||
this program with a single optional command line parameter specifying the disk
|
||||
drive to which all distribution files will be extracted (defaults to current
|
||||
drive).
|
||||
|
||||
For example, assuming UNARC16.ARK is on drive B: and the files are to be
|
||||
extracted to drive C:, the following CP/M commands may be used:
|
||||
|
||||
A>B: ; Set current drive for UNARC16.ARK
|
||||
B>REN UNARC16.COM=UNARC16.ARK ; Rename it to UNARC16.COM
|
||||
B>UNARC16 C: ; Run it to extract all files to drive C:
|
||||
|
||||
Note that this self-unpacking capability is provided only by the distributed
|
||||
archive file, and it will not work if that file is altered or reconstructed.
|
||||
|
||||
|
||||
|
||||
AUTHOR'S NOTE
|
||||
-------------
|
||||
|
||||
I undertook writing the UNARC program to satisfy my curiosity about software
|
||||
developments in the MS-DOS/PC-DOS world. At the time I began work on UNARC,
|
||||
the MS-DOS ARC program had been in existence for over a year and had achieved
|
||||
widespread popularity and acceptance in the 16-bit community. Unfortunately,
|
||||
the lack of a compatible equivalent for CP/M systems rendered a large amount
|
||||
of public domain software inaccessible to 8-bit users such as myself. (Note
|
||||
that 16-bit software can indeed be of interest to users of 8-bit systems, e.g.
|
||||
Pascal and C language programs.)
|
||||
|
||||
Also, an increasing number of RCP/M systems now cater to both 8-bit and 16-bit
|
||||
users. Since the release of UNARC 1.0 (May 3, 1986), I have been encouraged
|
||||
to see that the program has found a welcome home on many such systems.
|
||||
Special thanks are due to Irv Hoff and Norman Beeler for providing archive
|
||||
file support in the KMD20 and LUX52 series of programs, respectively. With
|
||||
the increasing popularity of .ARC files on many different computer systems, I
|
||||
believe that continued such support of this compression format is both
|
||||
desirable and inevitable for CP/M systems. At the time of this writing I am
|
||||
about to release NOAH, a companion program to UNARC which will allow CP/M
|
||||
users to generate ARC-compatible files.
|
||||
|
||||
Bob Freed
|
||||
March 27, 1987
|
||||
|
||||
|
||||
|
||||
NOTICE
|
||||
|
||||
The UNARC program and its associated documentation is the copy-
|
||||
righted property of its author -- it is NOT in the public domain.
|
||||
HOWEVER... Free use, distribution, and modification of these
|
||||
files is permitted (and encouraged), subject to the following
|
||||
conditions:
|
||||
|
||||
(1) Such use or distribution must be for non-profit purposes only.
|
||||
(2) The author's copyright notice may not be altered or removed.
|
||||
(3) Modifications to this program or its documentation files may
|
||||
not be distributed without notification of and approval by
|
||||
the author.
|
||||
(4) The source program code may not be used, in whole or in part,
|
||||
in any other publicly-distributed or derivative work without
|
||||
similar notification and approval.
|
||||
|
||||
No fee is requested or expected for the use and distribution of
|
||||
this program subject to the above conditions. The author reserves
|
||||
the right to modify these conditions for any future revisions of
|
||||
this program. Questions, comments, suggestions, commercial
|
||||
inquiries, and bug reports or fixes are welcomed by the author:
|
||||
|
||||
Robert A. Freed
|
||||
62 Miller Road
|
||||
Newton Centre, MA 02159
|
||||
Telephone (617) 332-3533
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
74
Source/Images/Common/All/UNZIP.DOC
Normal file
74
Source/Images/Common/All/UNZIP.DOC
Normal file
@@ -0,0 +1,74 @@
|
||||
UNZIPZ vers 0.3
|
||||
Z-System UNZIPPER
|
||||
|
||||
UNZIZ can extract all files from any zip file created by PKZIP on MSDOS.
|
||||
As such it should prove useful on CP/M systems for extracting CP/M relevant
|
||||
files from zip archives found on BBSs or the Web since UNZIPZ preserves date
|
||||
stamps on CP/M systems with Date Stamping.
|
||||
|
||||
To use UNZIPZ use the following Syntax:
|
||||
|
||||
UNZIP [dir:]ufn[.ZIP][dir:][afn ][/o]
|
||||
|
||||
On ZCPR3x systems {dir} can be either in named directory or DU (Drive
|
||||
Letter followed by User number) form otherwise, the DU form must be used.
|
||||
If {afn} is not given, *.* is assumed. If no option is specified, UNZIPZ
|
||||
checks the CRCs of the files matching {dir:afn}. The only option is E which
|
||||
causes the extraction of files matching {dir:afn} unless the file already
|
||||
exists. In that case, the user is informed that it exists and the file is not
|
||||
extracted. To extract such files, they must be erased and then extraction
|
||||
reattempted.
|
||||
|
||||
For each file processed, the following information is displayed: Name,
|
||||
Uncompressed Length, Stored Length, Compression Method, PKZIP Version,
|
||||
File Date and Time, 32 bit CRC and Status. Status consists of CRC OK, CRC
|
||||
ERR or EXISTS. Example ouput:
|
||||
|
||||
UNZIPZ Version 0.4-1 - SC
|
||||
|
||||
ZIP archive = H4:SOURCE.ZIP
|
||||
Output Drive = H4:
|
||||
Name Length Stored Method Ver File Date & Time CRC STATUS
|
||||
============ ======= ======= ======== === ========= ===== ======== =======
|
||||
UDATZI .Z80 3201 1320 Deflated 20 19 Oct 20 07:22 CC7E8454 CRC OK
|
||||
UNZIP .Z80 18464 5419 Deflated 20 19 Oct 20 21:16 45E711B1 CRC OK
|
||||
UNZIP12 .Z80 17649 5042 Deflated 20 08 Jun 20 07:46 4C05E1AB EXISTS
|
||||
|
||||
The current version is a significant revision of ver 0.2. Main improvement
|
||||
is the addition of the undeflate algorithm (thanks Martin). In addition the
|
||||
CRCs are only checked for extracted files which speeds things up
|
||||
considerably. Speedups to the undeflate algorithm by Russell Marks have
|
||||
also been incorporated. The ouput display has been improved substantialy
|
||||
and is similar to UNARCZ10.
|
||||
|
||||
Version 0.2 Notes by Simon Cran.
|
||||
|
||||
The files in this archive are my Z-modified version of UNZIP 1.2. They
|
||||
consist of three files in order to make sure that the unitialised data ends
|
||||
up at the end of all files linked. Also, because the unitialised data file
|
||||
(UDATZI.Z80) needed to share some equates with the main program, all
|
||||
equates have been put in a separate .LIB file.
|
||||
|
||||
The original program is fast and dirty. This Z-modified version gets rid of
|
||||
some of the dirty without sacrificing too much else. Note however, it is
|
||||
only in embryonic stages... It has not developed to the point of UNARCZ10
|
||||
for example.
|
||||
|
||||
That said though, it does work, and well enough to find a niche out there.
|
||||
Its main advantage is speed when you wish to extract all the files in the
|
||||
archive. You can now specify particular files to extract, but it isn't much
|
||||
quicker in that mode, as it still decodes each file in the archive and checks
|
||||
its CRC. That will change in a future version.
|
||||
|
||||
The display is now better, but it is very much in development mode! The
|
||||
idea is to have it approximately mimic UNARCZ10. It kind of does that now,
|
||||
but leaves out a lot of information... I'm working on it!
|
||||
|
||||
Source code is included, but without comments. If you'd like to know more,
|
||||
contact me.
|
||||
|
||||
Simeon!
|
||||
Z-Node 62
|
||||
Perth
|
||||
Western Australia.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Source/Images/Common/Z/u14/LBREXT36.CFG
Normal file
BIN
Source/Images/Common/Z/u14/LBREXT36.CFG
Normal file
Binary file not shown.
@@ -46,9 +46,12 @@ cpnet12/*.* 4:
|
||||
#
|
||||
# Add Common Applications
|
||||
#
|
||||
Common/*.* 15:
|
||||
supp/cpm22/*.* 0:
|
||||
supp/z3/u10/*.* 10:
|
||||
supp/z3/u14/*.* 14:
|
||||
supp/z3/u15/*.* 15:
|
||||
Common/All/*.* 15:
|
||||
Common/CPM22/*.* 0:
|
||||
#Common/Z/u10/*.* 10:
|
||||
Common/Z/u14/*.* 14:
|
||||
Common/Z/u15/*.* 15:
|
||||
Common/Z3/u10/*.* 10:
|
||||
Common/Z3/u14/*.* 14:
|
||||
Common/Z3/u15/*.* 15:
|
||||
|
||||
|
||||
@@ -40,5 +40,5 @@ cpnet12/*.* 4:
|
||||
#
|
||||
# Add Common Applications
|
||||
#
|
||||
Common/*.* 0:
|
||||
supp/cpm22/*.* 0:
|
||||
Common/All/*.* 0:
|
||||
Common/CPM22/*.* 0:
|
||||
|
||||
@@ -56,5 +56,5 @@ cpnet3/*.* 4:
|
||||
#
|
||||
# Add Common Applications
|
||||
#
|
||||
Common/*.* 0:
|
||||
supp/cpm3/*.* 0:
|
||||
Common/All/*.* 0:
|
||||
Common/CPM3/*.* 0:
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
../../Binary/Apps/ppidetst.com 2:
|
||||
../../Binary/Apps/ramtest.com 2:
|
||||
../../Binary/Apps/tstdskng.com 2:
|
||||
#
|
||||
# Add Tune sample files
|
||||
#
|
||||
../../Binary/Apps/Tunes/*.pt? 3:
|
||||
../../Binary/Apps/Tunes/*.mym 3:
|
||||
##
|
||||
## Add Tune sample files
|
||||
##
|
||||
#../../Binary/Apps/Tunes/*.pt? 3:
|
||||
#../../Binary/Apps/Tunes/*.mym 3:
|
||||
##
|
||||
## Add CPNET client files
|
||||
##
|
||||
@@ -40,8 +40,11 @@
|
||||
#
|
||||
# Add Common Applications
|
||||
#
|
||||
Common/*.* 0:
|
||||
supp/cpm22/*.* 0:
|
||||
supp/z3/u10/*.* 0:
|
||||
supp/z3/u14/*.* 0:
|
||||
supp/z3/u15/*.* 0:
|
||||
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:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -36,18 +36,18 @@
|
||||
../../Binary/Apps/tune.com 15:
|
||||
../../Binary/Apps/xm.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:
|
||||
#
|
||||
# Add Tune sample files
|
||||
#
|
||||
../../Binary/Apps/Tunes/*.pt? 3:
|
||||
../../Binary/Apps/Tunes/*.mym 3:
|
||||
#../../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:
|
||||
##
|
||||
## Add Tune sample files
|
||||
##
|
||||
#../../Binary/Apps/Tunes/*.pt? 3:
|
||||
#../../Binary/Apps/Tunes/*.mym 3:
|
||||
##
|
||||
## Add CPNET client files
|
||||
##
|
||||
@@ -55,8 +55,11 @@
|
||||
#
|
||||
# Add Common Applications
|
||||
#
|
||||
Common/*.* 15:
|
||||
supp/cpm3/*.* 0:
|
||||
supp/z3/u10/*.* 10:
|
||||
supp/z3/u14/*.* 14:
|
||||
supp/z3/u15/*.* 15:
|
||||
Common/All/*.* 15:
|
||||
Common/CPM3/*.* 0:
|
||||
#Common/Z/u10/*.* 10:
|
||||
Common/Z/u14/*.* 14:
|
||||
Common/Z/u15/*.* 15:
|
||||
Common/Z3/u10/*.* 10:
|
||||
Common/Z3/u14/*.* 14:
|
||||
Common/Z3/u15/*.* 15:
|
||||
|
||||
Binary file not shown.
@@ -52,5 +52,8 @@ cpnet12/*.* 4:
|
||||
#
|
||||
# Add Common Applications
|
||||
#
|
||||
Common/*.* 0:
|
||||
supp/cpm22/*.* 0:
|
||||
Common/All/*.* 0:
|
||||
Common/CPM22/*.* 0:
|
||||
#Common/Z/u10/*.* 0:
|
||||
Common/Z/u14/*.* 0:
|
||||
Common/Z/u15/*.* 0:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
242
Source/Images/d_zsdos/u0/ROMWBW.TXT
Normal file
242
Source/Images/d_zsdos/u0/ROMWBW.TXT
Normal file
@@ -0,0 +1,242 @@
|
||||
===== ZSDOS Disk for RomWBW =====
|
||||
|
||||
This disk is one of several ready-to-run disks provided with
|
||||
RomWBW. It contains a customized version of ZSDOS 1.1 for RomWBW.
|
||||
The disk is bootable as is (the operating system image is already
|
||||
embedded in the system tracks) and can be launched from the RomWBW
|
||||
Loader prompt.
|
||||
|
||||
The remainder of this document describes the contents and usage of
|
||||
this disk. It is highly recommended that you review the "RomWBW
|
||||
Getting Started.pdf" document found in the Doc directory of the
|
||||
RomWBW Distribution.
|
||||
|
||||
ZSDOS is a replacement for the BDOS portion of the CP/M 2.2 operating
|
||||
system. Since it does not include it's own command processor, the
|
||||
the ZCPR 1 D&J Command Processor has been included.
|
||||
|
||||
The primary documentation for ZSDOS and ZCPR 1 are contained in the Doc
|
||||
directory of the RomWBW distribution. The specific files are "ZSDOS
|
||||
Manual.pdf", "ZCPR Manual.pdf", and "ZCPR-DJ.doc". This document is a
|
||||
supplement to the primary documentation.
|
||||
|
||||
The starting point for the disk content was the final public release of
|
||||
ZSDOS which is generally available on the Internet. Overall, the
|
||||
following steps were performed:
|
||||
|
||||
1. System installation and integration with RomWBW.
|
||||
2. Update files to newer versions, as available.
|
||||
3. Configure applications for RomWBW (clock drivers, terminal emulation,
|
||||
etc.)
|
||||
4. Add selected CP/M 2 applications (listed below).
|
||||
5. Add selected RomWBW supplemental applications (listed below).
|
||||
6. Add some useful general purpose applications (listed below).
|
||||
|
||||
Note that ZSDOS can be built as either ZSDOS or ZDDOS. It is the same
|
||||
source file, but an equate determines which variation you want to
|
||||
build. Basically, ZSDOS has more features. ZDDOS has less features, but
|
||||
includes the date stamping code built-in. The ZSDOS Manual provides
|
||||
more information. I have chosen to use ZSDOS to pick up the maximum
|
||||
number of features. Date stamping is still available, but must be
|
||||
loaded as an RSX.
|
||||
|
||||
The source allows you to compile the OS code as either v1.1 or v1.2 via
|
||||
an equate. Version 1.2 was never distributed and contains only a few
|
||||
minor fixes. Unfortunately, the use of v1.2 would make it incompatible
|
||||
with many support modules and overlays due to their reliance on
|
||||
hard-coded address assumptions. This is probably why it was never
|
||||
distributed. I encountered this myself with the date stamping code –-
|
||||
it won't work with v1.2 because it does a version check. For now, I have
|
||||
chosen to use v1.1 to maximize compatibility (seems to be what everyone
|
||||
is doing). Ultimately, I may go back and try to rebuild everything in
|
||||
the distribution to bring it all up to v1.2. That is for the future
|
||||
though.
|
||||
|
||||
== Construction Notes ==
|
||||
|
||||
As I worked through the files in the distribution, it became clear that
|
||||
there were problems with the distribution. For example, the .CFG files
|
||||
for some apps (like FILEDATE.COM) are not acceptable to ZCNFG.
|
||||
Additionally, the STAMPS.DAT file contains code that simply does not
|
||||
work. In all of these cases, I found updated or fixed versions of the
|
||||
files. However, the point is that I concluded I would need to go
|
||||
through the distribution file-by-file and validate everything,
|
||||
replacing anything that was not working as it should. See the notes below
|
||||
for what I did.
|
||||
|
||||
The following list details the changes I made as I went along. In all
|
||||
cases, my goal was to keep the result as close to the original
|
||||
distribution as possible.
|
||||
|
||||
- CLOCKS.DAT has been updated to include the RomWBW clock driver,
|
||||
WBWCLK. I have also added the SIMHCLOK clock driver.
|
||||
- STAMPS.DAT has been replaced with an updated version. The update
|
||||
was called STAMPS11.DAT and was found on the Walnut Creek CP/M CDROM.
|
||||
The original version has a bug that causes RSX (resident system
|
||||
extension) mode to fail to load properly.
|
||||
- The original LDTIMD.COM and LDTIMP.COM have been replaced with
|
||||
LDDS.COM (DateStamper) and LDP2D.COM (P2DOS) respectively. They are
|
||||
equivalent but configured to use the RomWBW clock driver. They were
|
||||
built exactly the same as the originals: Relative Clock driver w/ RSX
|
||||
mode loading.
|
||||
- A driver for NZT format time stamping has been added. It is called
|
||||
LDNZT.COM.
|
||||
- Updated FILEDATE.COM and FILEDATE.CFG from original v1.7 to v2.1.
|
||||
The FILEDATE.CFG originally supplied was invalid.
|
||||
- Updated FILEATTR to v1.6A. Original FILEATTR.CFG was invalid.
|
||||
FILEATTR.CFG was replaced with FA16.CFG. Added associated files
|
||||
FA16.DOC, FA16A.FOR, FA16CFG.TXT.
|
||||
- Updated COPY.COM to v1.73. Also updated COPY.CFG to the one
|
||||
distributed with COPY.COM v1.73. The original COPY.CFG was invalid
|
||||
and appeared to be for a much older version of COPY.
|
||||
- Configured DATSWEEP.COM and DSCONFIG to use ANSI Standard terminal
|
||||
definition using SETTERM.
|
||||
|
||||
== Usage Notes ==
|
||||
|
||||
- All installation steps needed to run ZSDOS have already been
|
||||
performed. It is not necessary to perform any of the steps in
|
||||
the "Installing ZSDOS" section of the ZSDOS Manual unless you
|
||||
want to modify the installation.
|
||||
- ZSDOS has a concept of fast relog of drives. This means that after
|
||||
a warm start, it avoids the overhead of relogging all the disk
|
||||
drives. There are times when this causes issues. After using tools
|
||||
like CLRDIR or MAP, you may need to run "RELOG" to get the drive
|
||||
properly recognized by ZSDOS.
|
||||
- ZSVSTAMP from the original distribution is included, but requires a
|
||||
ZCPR 3.X command processor. The RomWBW ZSDOS disk image uses ZCPR 1.0
|
||||
(intentionally, to reduce space usage) and ZSVSTAMP will just abort
|
||||
in this case. It will work fine if you implement NZCOM. ZSVSTAMP is
|
||||
included solely to facilitate usage if/when you install NZCOM.
|
||||
- FILEDATE only works with DateStamper style date stamping. If you
|
||||
run it on a drive that is not initialized for DateStamper, it will
|
||||
complain "FILEDATE, !!!TIME&.DAT missing". This is normal and just
|
||||
means that you have not initialized that drive for DateStamper (using
|
||||
PUTDS).
|
||||
- ZXD will handle either DateStamper or P2DOS type date stamping.
|
||||
However, it MUST be configured appropriately. As distributed, it will
|
||||
look for DateStamper date stamps. Use ZCNFG to reconfigure it for
|
||||
P2DOS date stamps if that is what you are using.
|
||||
- Many of the tools can be configured (using either ZCNFG or
|
||||
DSCONFIG). The configuration process modifies the actual application
|
||||
file itself. This will fail if you try to modify one that is on the
|
||||
ROM disk because it will not be able to update the image.
|
||||
- DATSWEEP can be configured using DSCONFIG. However, DSCONFIG itself
|
||||
needs to be configured first for proper terminal emulation by using
|
||||
SETTERM. So, run SETTERM on DSCONFIG before using DSCONFIG to
|
||||
configure DATSWEEP!
|
||||
- After using PUTDS to initialize a directory for ZDS date stamping,
|
||||
I am finding that it is necessary to run RELOG before the stamping
|
||||
routines will actually start working.
|
||||
- Generic CP/M PIP and ZSDOS path searching do not mix well if you
|
||||
use PIP to copy to or from a directory in the ZSDOS search path. Best
|
||||
to use COPY from the ZSDOS distribution.
|
||||
- PUTBG.COM and BGPATCH.HEX are included, but note that they are for
|
||||
use with BackGrounder II software which is not included. Refer to
|
||||
the ZSDOS Manual for information on implementing BackGrounder II if
|
||||
desired.
|
||||
|
||||
== CP/M 2.2 Files ==
|
||||
|
||||
The following files have been included from CP/M 2.2. These files
|
||||
provide various functionality that is not really available from the
|
||||
ZSDOS applications themselves. For example, the CP/M 2.2 application
|
||||
called STAT is useful for modifying the IOBYTE. Most of these
|
||||
applications are documented in the "CPM Manual.pdf" document in the Doc
|
||||
directory of the RomWBW distribution.
|
||||
|
||||
ASM.COM - DRI 8080 assembler
|
||||
LIB.COM - DRI relocatable object file librarian
|
||||
LINK.COM - DRI relocatable object file linker
|
||||
LOAD.COM - DRI loader for Intel hex files
|
||||
MAC.COM - DRI 8080 macro assembler
|
||||
RMAC.COM - DRI 8080 macro assembler generating relocatable object files
|
||||
STAT.COM - DRI multi-purpose file/disk/IO info & config tool
|
||||
SUBMIT.COM - DRI batch file submission tool
|
||||
XSUB.COM - DRI batch file extensions
|
||||
|
||||
== RomWBW Supplemental Applications ==
|
||||
|
||||
The following files provide specific functionality enabled by
|
||||
RomWBW enhancements. These applications are documented in the
|
||||
"RomWBW Applications.pdf" document in the Doc directory of the
|
||||
RomWBW Distribution.
|
||||
|
||||
ASSIGN.COM - Assign,remove,swap drive letters of RomWBW disk slices
|
||||
FAT.COM - MS-DOS FAT filesystem tool (format, copy, delete, etc.)
|
||||
FDU.COM - Test floppy hardware and format floppy disks
|
||||
FORMAT.COM - Placeholder application with formatting instructions
|
||||
INTTEST.COM - Test RomWBW interrupt processing on your hardware
|
||||
MODE.COM - Change serial line characteristics (baud rate, etc.)
|
||||
RTC.COM - Test real time clock hardware on your system
|
||||
SURVEY.COM - Display system resources summary
|
||||
SYSCOPY.COM - Copy system tracks to disks (make bootable)
|
||||
SYSGEN.COM - Copy system tracks to disks (DRI version)
|
||||
TALK.COM - Route console I/O to & from specified serial port
|
||||
TIMER.COM - Test and display system timer ticks
|
||||
TUNE.COM - Play .PT2, .PT3, and .MYM audio files on supported hardware
|
||||
XM.COM - XModem file transfer application
|
||||
|
||||
== General Purposes Applications ==
|
||||
|
||||
The following files are commonly used CP/M applications that
|
||||
are generally useful in any CP/M-like system. In general, there is
|
||||
no documentation for these applications included with the RomWBW
|
||||
distribution. Some provide command line help themselves. Some
|
||||
are fairly obvious.
|
||||
|
||||
CLRDIR.COM - Initializes the directory area of a disk
|
||||
COMPARE.COM - Compare content of two files (binary)
|
||||
CRUNCH.COM - Compress file(s) using Crunch algorithm
|
||||
CRUNCH28.CFG - ZCNFG configuration file for CRUNCH & UNCR
|
||||
DDTZ.COM - Z80 debug tool (modified to use RST 6)
|
||||
DDTZ.DOC - Documentation for DDTZ
|
||||
EX.COM - Batch file processor (alternative to DRI SUBMIT)
|
||||
FDISK80.COM - Hard disk partitioning tool (from John Coffman)
|
||||
FIND.COM - Search all drives for a file (from Jay Cotton)
|
||||
FLASH.COM - Program FLASH chips in-situ (from Sergey Kiselev)
|
||||
FLASH.DOC - Documentation for FLASH
|
||||
MBASIC.COM - Microsoft BASIC language interpreter
|
||||
NULU.COM - Library (.LBR) management tool
|
||||
PMARC.COM - Create or add file(s) to .PMA archive
|
||||
PMEXT.COM - Extract file(s) from .PMA archive
|
||||
RMXSUB1.COM - Remove XSUB1 RSX from memory (from Lars Nelson)
|
||||
SUPERSUB.COM - Enhanced replacement for DRI SUBMIT
|
||||
SUPERSUB.DOC - Documentation for SUPERSUB
|
||||
TDLBASIC.COM - TDL Zapple 12K BASIC language interpreter
|
||||
UNARC.COM - Extract file(s) from .ARC or .ARK archive
|
||||
UNARC.DOC - Documentation for UNARC
|
||||
UNCR.COM - Decompress Crunched file(s)
|
||||
UNZIP.COM - UNZIPZ extracts from all MS-DOS ZIP files (from Lars Nelson)
|
||||
UNZIP.DOC - Documentation for UNZIPZ
|
||||
XSUB1.COM - Replacement for DRI SUB (from Lars Nelson)
|
||||
ZAP.COM - Interactive disk & file utility
|
||||
ZDE.COM - Compact WordStar-like editor
|
||||
ZDENST.COM - ZCNFG configuration tool for ZDE.COM
|
||||
KERCPM22.COM - Kermit file transfer application
|
||||
LBREXT.COM - Extract file from .LBR libraries
|
||||
LBREXT36.CFG - ZCNFG configuration file for LBREXT
|
||||
ZXD.COM - Enhanced directory lister w/ date/time stamping support
|
||||
ZXD.CFG - ZCNFG configuration file for ZXD
|
||||
|
||||
== Testing Applications ==
|
||||
|
||||
User area 2 contains a variety of hardware testing applications.
|
||||
These are generally user contributed and have no documentation.
|
||||
Additionally, they are frequently not compatible with all RomWBW
|
||||
hardware. They are included here as a convenience. If applicable,
|
||||
your hardware documentation should refer to them and provide usage
|
||||
instructions.
|
||||
|
||||
== Sample Tune Files ==
|
||||
|
||||
User area 3 contains sample audio files that can be played using
|
||||
the TUNE application.
|
||||
|
||||
== CP/NET 1.2 ==
|
||||
|
||||
User area 4 contains a full implementation of the CP/NET 1.2
|
||||
client provided by Doug Miller. Please read the README.TXT file
|
||||
in this user area for more information.
|
||||
|
||||
-- WBW 6:56 PM 8/9/2021
|
||||
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.
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 1
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 03
|
||||
#DEFINE BIOSVER "3.1.1-pre.102"
|
||||
#DEFINE BIOSVER "3.1.1-pre.105"
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 1
|
||||
rup equ 1
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.1.1-pre.103"
|
||||
db "3.1.1-pre.105"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user