diff --git a/.gitignore b/.gitignore index f17a0be4..32ac5ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -81,9 +81,8 @@ Tools/unix/zx/zx !Source/BPBIOS/Z34RCP11/cledinst.com !Source/BPBIOS/Z34RCP11/cledsave.com !Source/Fonts -!Source/Images/**/*.[Cc][Oo][Mm] -!Source/Images/hdnew_prefix.bin -!Source/RomDsk/**/*.[Cc][Oo][Mm] +!Source/Images/** +!Source/RomDsk/** !Source/UBIOS/FSFAT.BIN !Source/UBIOS/UNA-BIOS.BIN !Source/ZCCP/*.[Cc][Oo][Mm] diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 0acd8b0e..8cfb3af6 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -50,6 +50,7 @@ Version 3.1.1 - WBW: Refactored make process - WBW: Added ROM verification to boot process - WBW: Added Z80 instruction test apps to user area 5 in CP/M & ZSDOS +- WBW: Add support for LINC sound card Version 3.1 ----------- diff --git a/Doc/ZCPR-DJ.doc b/Doc/ZCPR-DJ.doc new file mode 100644 index 00000000..decc5830 --- /dev/null +++ b/Doc/ZCPR-DJ.doc @@ -0,0 +1,765 @@ +A Personal Note +=============== + +Somehow, I've managed to get by for the last 14 years using just ZCPR. +But like some of you, I have fiddled with the standard ZCPR and +modified it to suit my tastes. As I added new commands or enriched old +ones, I've always remained compatible with existing programs, all the +BDOS replacements, and, most important of all, stayed within the 800H +space allocation of the original Digital Research CCP. Here are the +fruits of my labors, I hope you enjoy this CCP replacement as much as I +do. + + Don Kirkpatrick + 17595 S.W. Pheasant Lane + Beaverton, Oregon 97006 + + + +Introduction +============ + +This console replacement is designed to run under CP/M 2.2 or any of +the 2.2 BDOS replacements. It requires a Z80 or better. If you are +running DRI's CCP or older versions of ZCPR1, this program is a +significant improvement. If you are running ZCPR3, CP/M 3.0, CP/M +Plus, or MP/M, this will probably be a disappointment. + +If you are familiar with ZCPR3, you will recognize many of the +enhancements here: comments on a command line, search path for the .com +file, drive/user change with simple du:, CLEVEL3 command processing, +proper SUBMIT file facility, and so on. Nothing has been removed from +DRI's CCP, only new features added. AND IT ALL STILL FITS IN THE +ORIGINAL 800H, THE SAME SPACE AS THE DIGITAL RESEARCH FIVE COMMAND +CCP. + +Many of the standard commands have been enhanced. For example, TYPE +and LIST now have options to turn on or off page breaks. Moreover, the +console check for abort has been improved. + +Two commands have been added for use in submit files - SAK and BELL. +These commands allow you to pause or ring the bell during submit file +execution. + +Before you install this version of ZCPR onto your boot disks, try it by +running it as a .com file. Just edit the few customizing options and +assemble the source. After you decide it really is better, load it +onto your boot track and make it your standard. Complete instructions +are located at the end of this document. + +The complete built-in command list is: + + DIR - directory command enhanced to list optionally all user areas + REN - standard rename command + USER- move to new user number area on same drive + SAVE- save specified number of TPA pages or records in a file + TYPE- display a file on the console with optional page break pauses + LIST- print command plus optional form feed insertion + PAGE- send form feed to list device + ERA - standard file erase command + ERAQ- file erase with confirmation query at each file + DFU - set default user number for .com search path + BELL- send a bell character to the console + SAK - pause until a key is struck on the console (Strike Any Key) + SCL - toggle multiple commands per line (Single Command on a Line) + GET - load a file into the TPA at any specified location + JUMP- process command tail and execute program at specified address + GO - process command tail and execute program loaded at 100H + PEEK- display hexadecimal byte string starting with specified address + POKE- load hexadecimal byte string starting with specified address + BOOT- execute BIOS cold boot routine + + +Filename Processing +=================== + +The standard ZCPR3 du: drive/user file specification has been +implemented. Any filename can be in the du:fn.ft form. For example: + + A>era c4:junk*.* + +erases files on the C drive, user area 4 without leaving drive A user +0. When a user number is found in a filename, that user number is +placed in S1 of the default FCB. Bit 7 of S1 is set to inform the +program using the FCB a user number was found. + +The * in an ambiguous file name has been improved. Now a trailing * +causes the remainder of the ambiguous name to be filled with '?', not +just the fn field. For example: + + A>era c4:junk* + +is the same as the example above. Previously, junk* was defined as +'junk????. '. If you need the ft field blank, type 'junk*.'. The +question mark still works as a single character wild card. + + +Command Line Processing +======================= + +The current user number is included as part of the command prompt for +all non-zero user numbers. The prompt is of the form du>, for example +A2> or B10>. If the SUPRES equate is true, the user number is +suppressed for user 0 only. + +Multiple commands are typed on a single line separated by a command +separator character. Occasionally, you need to type the separator +character in a command tail. The SCL command toggles the multiple +command enable. The CMDCHR equate determines the command separator +character. A ';' has been chosen as the separator character in this +distribution version. + +Comments are allowed on a command line. When the comment separator +character is encountered as the first character of a command, the +remainder of the line is ignored. The COMCHR equate determines the +comment separator character. A ';' has been chosen as the separator +character in this distribution version. Here is an example containing +comments and multiple commands on a single line: + + A>get 100 junk;peek 100;;this is a comment. + A>;this is also a comment. + +There exists a built-in search path for transient commands. First, the +current drive/user is searched. Next, the current drive/default user +is searched. Last, drive A/default user is searched. The DEFUSR +equate determines the default user number, currently set to user 0 in +this distribution version. The default user is temporarily changed +with the DFU command. If a drive is specified in the transient +command, the current and default user areas on the specified drive are +searched. If a user number is specified, that user area on the current +and default drive are searched. If both the drive and user number are +specified, no search is performed. The same drive/user area is never +searched twice. + +Transient commands are always "called." If a program terminates via a +return rather than a warm boot, subsequent multiple commands on the +command line are executed. Any program exiting by a warm boot reloads +ZCPR and the subsequent commands lost. + +A default command can be placed in the command buffer and control +passed to ZCPR for processing. The only thing required, besides +placing the command in the buffer and jumping to CPRLOC, is to +initialize the command character counter at the start of the buffer. +The procedure is compatible with the original DRI CCP default command +processing. If ZCPR is entered at CPRLOC+3 jump, default command +processing is suppressed. Either way, register C must contain a valid +drive/user, just like the original CCP. + + +Submit File Processing +====================== + +A basic design choice had to be made in the design of ZCPR concerning +the execution of submit files. The original CCP had a problem. It +ALWAYS looked for the $$$.SUB file on drive A and the submit program +would place it on the current default drive. When the you were logged +onto drive B and you issued a submit command, the $$$.SUB was placed on +drive B and not executed. + +After much debate it was decided to have ZCPR perform the same type of +function as CCP (look for the $$$.SUB file on drive A), but the problem +with SUBMIT.COM still exists. Hence, RGF designed SuperSUB and RLC +took his SuperSUB and designed SUB from it; both programs are set up to +allow the selection at assembly time of creating the $$$.SUB on the +default drive or on drive A. If you don't have one of these newer +submit programs, a procedure for patching the standard SUBMIT.COM has +been included at the end. + +The fixed drive choice permits a submit file to contain a series of +commands exactly as they would be entered from a CP/M console. This +permits things like: + + A>dir + A>b: + B>dir + +to be executed, even though the currently default drive is changed +during execution. If the $$$.SUB file were present on the default +drive, the above series of commands would not work. ZCPR would be +looking for $$$.SUB on the default drive, and switching default drives +without moving the $$$.SUB file would cause processing to abort. Note +that the same problem occurs if the user number of the $$$.SUB file is +not predefined. ZCPR assumes that the $$$.SUB file is located on user 0 +of drive A. + +The trick of using the $ flag returned by the BDOS disk reset is used +to speed the search for a $*.* file on drive A. This trick will not +work if the $$$.SUB file were located on another drive. + +The '>' prompt character is replaced by a special character while a +submit file is in execution. The SPRMPT equate defines this special +character, currently set to '$' in this distribution version. + + +Command Syntax +============== + +Multiple commands can be placed on one line. If the comment character +is encountered where a command should start, the rest of the line is +ignored. Any command can be renamed by editing the command table. +Command names can be up to eight characters long and are terminated by +bit 7 high. If there is a conflict between an internal ZCPR command +and a transient program of the same name, the internal command is +executed. Type the command with the du: included if the external +transient command is the one desired. Here is a complete alphabetized +list of all the resident commands with their syntax: + +============================================================================= + +Command: BELL + +Function: To ring terminal bell. + +Forms: BELL + +Options: None. + +Uses: This command is designed to be placed in a submit file to + ring the bell to indicate significant checkpoints. + +============================================================================= + +Command: BOOT + +Function: To execute BIOS cold boot routine. + +Forms: BOOT + +Options: REBOOT equate controls the inclusion/exclusion of this command. + +Uses: Reboots the system without pushing the reset button. The + cold boot entry point in the BIOS must be supported for this + command to work. + +============================================================================= + +Command: DFU + +Function: To set the Default User Number for transient commands. + +Forms: DFU + +Options: DEFUSR equate defines the default user choice until this + command is entered. + + NUMBASE equate defines the character that specifies a + hexadecimal number. The distribution version is set to 'H'. + +Uses: The default user area is searched after a transient command + cannot be found in the current user area. If the transient + command still has not been found, the default user on the + default drive is searched last. The new default user number + is in decimal, but hexadecimal numbers are entered by + appending an 'H'. The next warm boot will restore the + original default user number. + +============================================================================= + +Command: DIR + +Function: To display a directory listing of the files on a drive. + +Forms: DIR Display the DIR files + DIR S Display the SYS files + DIR B Display both DIR and SYS files + DIR A Display both DIR and SYS files for all user areas + +Options: TWOCOL equate controls the number of columns in the display. + Forty-column terminals are limited to two-column displays. + + WIDE equate controls the spacing between the columns and + change the horizontal width of a directory display. + + FENCE equate specifies the character separator between the + directory columns. + + USRDLM equate specifies the character between the user number + and the filename. + + USRFLG, SYSFLG, and SOFLG equates specify the command line + tail character that control the display of system and + non-system files. + +Uses: Displays a directory listing of files in specific drive/user + area. + +============================================================================= + +Command: ERA + +Function: To erase files. + +Forms: ERA + +Options: None. + +Uses: Deletes files. Names of erased files are displayed. + +============================================================================= + +Command: ERAQ + +Function: To erase files with individual query. + +Forms: ERAQ + ? y File erased + ? File not erased + +Options: None. + +Uses: Deletes a subset of a set of ambiguously specified files. + Any answer other than 'Y' (either case) will cause the file + to be skipped and not erased. + +============================================================================= + +Command: GET + +Function: To load the specified file from disk to the specified address. + +Forms: GET + +Options: None. + +Uses: Loads a file into the TPA for patching purposes. This command + searches for the specified file along the same search path as + the transient command loader. + + +============================================================================= + +Command: GO + +Function: To call the program in the TPA without loading from disk. + +Forms: GO + +Options: None. + +Uses: Most useful to rerun a program already loaded into the TPA. + Saves time and wear on disk drives. The command tail is + entered exactly as it would appear if GO were replaced by the + program name. Same as JUMP 100H, but more convenient, + especially when used with parameters for programs like STAT. + +============================================================================= + +Command: JUMP + +Function: To call the program at a specified address. + +Forms: JUMP + +Options: None. + +Uses: Executes code not located at 100H. For example, JUMP 0 + warm boots. The code must already reside at the specified + address. + +============================================================================= + +Command: LIST + +Function: To print specified file on list device. +- +Forms: LIST Print file + LIST P Print file without default paging + +Options: NLINEP equate determines the number of lines per page. + + FFKILL equate controls the suppression of form feeds before + printable text. + + PGDFLG equate determines the command line tail character that + toggles the default form feed insertion every NLINEP lines. + + NOSTAT equate controls the use of the BIOS list status call. + +Uses: Prints files with/without pagination on LST: device. A + listing is aborted by a console ^C. Any submit file in + process is terminated and control is returned gracefully to + the console prompt. + +============================================================================= + +Command: PAGE + +Function: To eject a page on list device via a form feed. + +Forms: PAGE + +Options: NOSTAT equate controls the use of the BIOS list status call. + +Uses: Sends a form feed to the LST: device. The page eject can + be aborted by a console ^C if the system hangs because the + printer is not ready. If aborted, any submit file in process + is terminated and control is returned gracefully to the + console prompt. + +============================================================================= + +Command: PEEK + +Function: To display hex values beginning at a specified address. + +Forms: PEEK [] + +Options: None. + +Uses: Displays hexadecimal values anywhere in the entire address + space. The maximum value for is 0FFH, but the + default is 256. + +============================================================================= + +Command: POKE + +Function: To poke a string of hex values into a set of consecutive + addresses. + +Forms: POKE [...] + +Options: None. + +Uses: Modifies values anywhere in the entire address space. Each + represents one byte and is separated from the next + by a space. The number of are limited only by the + size of the command line buffer. The address is incremented + for each . Excellent for hand patching code. + +============================================================================= + +Command: REN + +Function: To change the name of an existing file. + +Forms: REN = + REN = Existing + Delete? y File deleted + +Options: None. + +Uses: Changes the names of files. Any du: on is ignored; + the optional du: is on . If there already exists a + , the console is queried for conformation. Any + response except 'Y' (either case) aborts the command, kills + any submit file in process, and returns gracefully to the + command prompt. + +============================================================================= + +Command: SAK + +Function: To pause until a key is struck. + +Forms: SAK + ? + +Options: None. + +Uses: Pauses a submit file until a keystroke is entered. Any + character other than a ^C will resume execution. A ^C kills + the submit file, any commands remaining on the command the + line are ignored, and control returns gracefully to the + prompt. + +============================================================================= + +Command: SAVE + +Function: To save the contents of TPA onto disk as a file. + +Forms: SAVE + SAVE R + +Options: RECFLG equate determines the command tail character that + specifies records rather than pages. + + NUMBASE equate defines the character that specifies a + hexadecimal number. The distribution version is set to 'H'. + +Uses: Saves the TPA to a file. Records are 128 bytes long, pages + are 256 bytes long. Number of pages or records is in + decimal, but a hexadecimal number is entered by appending an + 'H'. Saved area begins at 100H. + +============================================================================= + +Command: SCL + +Function: To force ZCPR to parse only a single command per line. + +Forms: SCL + +Options: MULTPL equate determines the inclusion/exclusion of this + command and whether or not multiple commands are allowed. + + CMDCHR equate determines the character separating multiple + commands. + +Uses: Some transient commands require the command separator in the + command tail. This command turns off multiple command + parsing so the entire command tail is sent to the transient + program. Multiple command format is reset at the next warm + boot. SCL toggles. + +============================================================================= + +Command: TYPE + +Function: To display specified file on console. + +Forms: TYPE Display file + TYPE P Display file without default paging + +Options: NLINES equate determines the number of lines per screen. + + FFKILL equate controls the suppression of form feeds before + printable text. + + PGDFLG equate determines the command line tail character that + toggles the default form feed insertion every NLINEP lines. + +Uses: Displays files with/without pagination on CON: device. A + display is aborted by a console ^C. If aborted, any submit + file in process terminates and control returns gracefully to + the console prompt. When page breaks are enabled, any + console character except ^C will display the next page of + text. + +============================================================================= + +Command: USER + +Function: To change current user number. + +Forms: USER + +Options: SUPRES equate controls the display of the user number in the + prompt when the user number is zero. + + MAXUSR equate controls the maximum allowable user number. + + NUMBASE equate defines the character that specifies a + hexadecimal number. The distribution version is set to 'H'. + +Uses: This command changes the current user number. The new user + number is in decimal, but a hexadecimal number is entered by + appending an 'H'. This command has been retained for + compatibility purposes only. It is far easier to change + disk/user by typing du:. + +============================================================================= + + +Error Messages +============== + +If any error is encountered as a command line is being parsed, a +message will be printed and, for serious errors, the remainder of the +line is ignored. Below is a complete list of all ZCPR error messages. +Any error message encountered that is not on this list came from some +program other than ZCPR. + +"?" + + An error was detected in the command. The an item on the command + line was not what was expected. The command line is echoed up to + the position where the error was detected, as close as can be + determined, and the "?" printed. Any commands remaining on the + command the line are ignored and any $$$.SUB file erased. + +"Full" + + If ZCPR was attempting to load a transient program, one of two + things has gone wrong: either the program is so large that it won't + fit into the TPA or a read error was returned from the BDOS. If + ZCPR was attempting to save a file, the BDOS write call returned + failure. Either the disk or the directory is full. Any commands + remaining on the command line are ignored and any $$$.SUB file + erased. + +"No File" + + No file could be found matching the filename specified in the + command. This message is also be printed if the BDOS read command + returns failure. If ZCPR was looking for a transient command, any + commands remaining on the command line are ignored and any $$$.SUB + file erased. + +"Name Error" + + The specified filename has a user number larger than the allowable + maximum or an ambiguous filename was entered where only an + unambiguous filename is permitted. Any commands remaining on the + command line are ignored and any $$$.SUB file erased. + +"Delete?" + + Not really an error, but there already exists a file with the same + name as the requested new name in the REN command. Any response + except 'Y' (either case) aborts the command, any commands remaining + on the command line are ignored, and any $$$.SUB file erased. + +"All?" + + Not really an error, but a check to verify that all files on the + drive/user area are to be erased. Any response except 'Y' (either + case) aborts the command and any commands remaining on the command + line are ignored. + + +Installation Instructions +========================= + +1) The first task is to determine the location of your BDOS because you + MUST set the P2DOS equate to this value. If you do not know the + location of your BDOS, use ZCPRDEMO to find it. If you do not + already have ZCPRDEMO.COM, assemble ZCPR with the TEST equate true + to make it. A bootstrap loader will be included and you can run the + .com file. This program assembles without errors using Microsoft's + M80/L80: + + A>m80 =zcpr + A>l80 zcpr,zcprdemo/n/e + + Other assemblers can be used, but ZCPR.MAC will probably require + editing to convert it to a form compatible. The major decision in + converting is to determine how the .PHASE pseudo is to be handled. + Probably the best solution to the .PHASE is to generate a .hex + file and load it with an offset using DDT/SID/ZSID. Consult the + "r" command in the DDT/SID/ZSID manaul. + + Run ZCPRDEMO and peek at low memory: + + A>zcprdemo + A' to a '<'. This + tells you the special debug version of ZCPR is running. See the + debug section at the end for details. Address 0 contains a jump 3 + beyond the start of the BIOS and address 5 contains a jump 6 beyond + the start of the BDOS. + + Be careful if you attempt to execute a transient program from + ZCPRDEMO. Some transient programs, like NSWP, return rather than + warm boot when done. These programs don't know that ZCPRDEMO is at + address 8000H rather than just under the BDOS. If they overwrite + ZCPRDEMO, then the return is to random code. Of course, this is not + a problem when ZCPR is installed just under the BDOS. + +2) You MUST edit the code to place your BDOS/P2DOS/Z80DOS/ZRDOS start + address in the P2DOS equate. Set COMLD true (and TEST false if you + set it true in step 1 above) and make ZCPR.COM. A bootstrap loader + will be included. + + Assuming you successfully assemble it, just type "zcpr" to run it. + However, every time there is a warm boot, it will be replaced by + the boot track CCP. If you like what you see, place a copy on the + boot track to make it available all the time. + +3) Reassemble, this time with COMLD false to make ZCPRNBLD.COM (ZCPR + No Boot LoaDer). + +4) Run SYSGEN to load a copy of the boot track into memory. + + B>; Sample terminal session for integrating ZCPR + B>sysgen + SYSGEN VER 2.2 + SOURCE DRIVE NAME (OR RETURN TO SKIP)a + SOURCE ON A, THEN TYPE RETURN + FUNCTION COMPLETE + DESTINATION DRIVE NAME (OR RETURN TO REBOOT) + + +5) Run SAVE to save a track image to a file (eg: SAVE 32 BOOTFILE). + The number on the save command depends on the size of your boot + track loader; it can be as small as 31 and as large as 44. If you + have extra disk space or are not sure, play it safe and use 44. + + B>save 44 cpm56.com <-- We now have a SYSGEN image of CP/M + +6) Find the location of the stock CCP by peeking at the boot file. It + is normally located at address 980H in the file. Using ZCPR: + + B>zcpr <-- Reload zcpr.com version + B>get 100 cpm56.com + + and search for the start of the console processor: + + B>peek 980 + 0980 C3 xx xx C3 xx xx 7F 00 43 4F 50 59 52 49 47 48 + 0990 54 20 ... + + If you don't find the start of the CCP at 980H, don't be + discouraged. It is there, but at a higher address. Keep looking. + +7) When you find the location of the CCP, patch it with the new ZCPR + image. + + B>get 980 zcprnbld.com + +8) Place the new file onto the boot track of a test disk, not your + original, using SYSGEN, and try it out. + + B>sysgen + SYSGEN VER 2.2 + SOURCE DRIVE NAME (OR RETURN TO SKIP) <-- Use memory image + DESTINATION DRIVE NAME (OR RETURN TO REBOOT)b <-- Load onto drive B + DESTINATION ON B, THEN TYPE RETURN + FUNCTION COMPLETE + DESTINATION DRIVE NAME (OR RETURN TO REBOOT) + + You should now have a ZCPR system boot disk. Notice you did all + your work on drive B so you wouldn't destroy the original. + + + +This may seem like a great number of steps, but each is only a single +CP/M command line, total time is only 5 minutes or so after you get +ZCPR to run as a .com file. + + +Debugging ZCPR +============== + +Special provisions have been make to ease the debugging of ZCPR. +Setting the TEST equate true causes the assembler to build a version of +ZCPR that executes in the TPA. This allows the use of a debugger like +DDT, ZSID, or Z8E to load and monitor execution. To identify the debug +version, the prompt character is changed from '>' to '<' when it runs. + +CPRLOC for the test version is 8000H. A bootstrap loader is included +at the beginning to move the image to this address. Do not try to set +a breakpoint until after the loader has moved ZCPR. The easiest way to +accomplish this is to single-step through the loader and then set your +breakpoints. Change the execution address to something lower if 8000H +does not leave enough space for the debugger. + +A small amount of code is also added at the end of the debug version to +compute the BIOS list status and cold boot entry points at run time. +This permits the demo version to execute properly without setting the +BDOS location equate. + +Patching SUBMIT.COM +=================== + +SUBMIT.COM is patched to run with ZCPR by the following procedure. +This is recommended if the user does not have one of the newer public +domain versions of submit. This patch simply makes SUBMIT.COM always +place the $$$.SUB file on drive A. Illustrative terminal session +follows: + + A>get 100 submit.com;peek 5bb 2 + 05BB 00 24 <-- Patch is at 5BB Hex + A>poke 5bb 1 <-- Change 0 (default drive) to 1 (drive A) + A>peek 5b0 20 <-- Let's check just to make sure + 05B0 00 00 00 00 00 00 30 30 31 20 24 01 24 24 24 20 + 05C0 20 20 20 20 53 55 42 00 00 00 1A 1A 1A 1A 1A 1A + A>save 5 newsubmt.com <-- Save new SUBMIT.COM file + +Pretty simple, huh? +ny error message encountered that is not on this list came from some +prog \ No newline at end of file diff --git a/Readme.unix b/Readme.unix index 321b2e8d..62d6aca2 100644 --- a/Readme.unix +++ b/Readme.unix @@ -30,11 +30,13 @@ By default, this will generate all of the standard configurations of RomWBW for all platforms. If you just want to build the ROM for a specific platform and configuration you can use - make ROM_PLATFORM= ROM_CONFIG= + make ROM_PLATFORM= ROM_CONFIG= [ROMSIZE=] where is one of the supported platforms such as SBC, RCZ80, -etc. and is a configuration of that platform. For example, -to build the "126" configuration of the "SCZ180" platform: +etc. and is a configuration of that platform. A ROM size may +optionally be specified and must be one of 128, 256, 512, or 1024. It +defaults to 512. For example, to build the "126" configuration of +the "SCZ180" platform: make ROM_PLATFORM=SCZ180 ROM_CONFIG=126 diff --git a/Source/Apps/Tune/tune.asm b/Source/Apps/Tune/tune.asm index 9934fe7e..a34ea2e1 100644 --- a/Source/Apps/Tune/tune.asm +++ b/Source/Apps/Tune/tune.asm @@ -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 .[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 diff --git a/Source/HBIOS/Build.sh b/Source/HBIOS/Build.sh index 3ced548c..cc4d5304 100755 --- a/Source/HBIOS/Build.sh +++ b/Source/HBIOS/Build.sh @@ -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 diff --git a/Source/HBIOS/Config/EZZ80_std.asm b/Source/HBIOS/Config/EZZ80_std.asm index b144bed2..bb7afeda 100644 --- a/Source/HBIOS/Config/EZZ80_std.asm +++ b/Source/HBIOS/Config/EZZ80_std.asm @@ -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) diff --git a/Source/HBIOS/Config/EZZ80_tz80.asm b/Source/HBIOS/Config/EZZ80_tz80.asm index 3d45393c..0b66ee09 100644 --- a/Source/HBIOS/Config/EZZ80_tz80.asm +++ b/Source/HBIOS/Config/EZZ80_tz80.asm @@ -1,45 +1,43 @@ -; -;================================================================================================== -; EASY Z80 STANDARD CONFIGURATION -;================================================================================================== -; -; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE -; CFG_.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 _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_.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 _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 diff --git a/Source/HBIOS/Config/N8_std.asm b/Source/HBIOS/Config/N8_std.asm index 25637a4e..919167ea 100644 --- a/Source/HBIOS/Config/N8_std.asm +++ b/Source/HBIOS/Config/N8_std.asm @@ -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) diff --git a/Source/HBIOS/Config/RCZ180_ext.asm b/Source/HBIOS/Config/RCZ180_ext.asm index cf4af5c2..1fbdbba2 100644 --- a/Source/HBIOS/Config/RCZ180_ext.asm +++ b/Source/HBIOS/Config/RCZ180_ext.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] ; diff --git a/Source/HBIOS/Config/RCZ180_nat.asm b/Source/HBIOS/Config/RCZ180_nat.asm index d900f25b..eb367405 100644 --- a/Source/HBIOS/Config/RCZ180_nat.asm +++ b/Source/HBIOS/Config/RCZ180_nat.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] ; diff --git a/Source/HBIOS/Config/RCZ80_std.asm b/Source/HBIOS/Config/RCZ80_std.asm index 669bdd3e..bca27ade 100644 --- a/Source/HBIOS/Config/RCZ80_std.asm +++ b/Source/HBIOS/Config/RCZ80_std.asm @@ -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] ; diff --git a/Source/HBIOS/Config/RCZ80_zrc.asm b/Source/HBIOS/Config/RCZ80_zrc.asm index 90b27aa2..e03cebba 100644 --- a/Source/HBIOS/Config/RCZ80_zrc.asm +++ b/Source/HBIOS/Config/RCZ80_zrc.asm @@ -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] ; diff --git a/Source/HBIOS/Config/SCZ180_126.asm b/Source/HBIOS/Config/SCZ180_126.asm index 5d49834f..5ed97080 100644 --- a/Source/HBIOS/Config/SCZ180_126.asm +++ b/Source/HBIOS/Config/SCZ180_126.asm @@ -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] ; diff --git a/Source/HBIOS/Config/SCZ180_130.asm b/Source/HBIOS/Config/SCZ180_130.asm index ec324c62..dc33498f 100644 --- a/Source/HBIOS/Config/SCZ180_130.asm +++ b/Source/HBIOS/Config/SCZ180_130.asm @@ -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] ; diff --git a/Source/HBIOS/Config/SCZ180_131.asm b/Source/HBIOS/Config/SCZ180_131.asm index 77aa8baa..1a107976 100644 --- a/Source/HBIOS/Config/SCZ180_131.asm +++ b/Source/HBIOS/Config/SCZ180_131.asm @@ -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] ; diff --git a/Source/HBIOS/Config/SCZ180_140.asm b/Source/HBIOS/Config/SCZ180_140.asm index 27e38cf7..7f50ded9 100644 --- a/Source/HBIOS/Config/SCZ180_140.asm +++ b/Source/HBIOS/Config/SCZ180_140.asm @@ -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] ; diff --git a/Source/HBIOS/ay38910.asm b/Source/HBIOS/ay38910.asm index 0eac02b2..596dc46c 100644 --- a/Source/HBIOS/ay38910.asm +++ b/Source/HBIOS/ay38910.asm @@ -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 ; diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index d848cf7b..76854aa0 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/Source/HBIOS/cfg_dyno.asm @@ -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) ; diff --git a/Source/HBIOS/cfg_ezz80.asm b/Source/HBIOS/cfg_ezz80.asm index 96d55c21..d5c05616 100644 --- a/Source/HBIOS/cfg_ezz80.asm +++ b/Source/HBIOS/cfg_ezz80.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) ; diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index 18497330..9aa9f50d 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/Source/HBIOS/cfg_master.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) ; diff --git a/Source/HBIOS/cfg_mbc.asm b/Source/HBIOS/cfg_mbc.asm index d74e37d7..c5d10367 100644 --- a/Source/HBIOS/cfg_mbc.asm +++ b/Source/HBIOS/cfg_mbc.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) ; diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index c36bfd21..2561adfb 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.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) ; diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 032f7ccc..596e65a1 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/Source/HBIOS/cfg_n8.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) ; diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index 5c2ce5b3..8ba39dbb 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/Source/HBIOS/cfg_rcz180.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) ; diff --git a/Source/HBIOS/cfg_rcz280.asm b/Source/HBIOS/cfg_rcz280.asm index 77d054fb..0f212d6b 100644 --- a/Source/HBIOS/cfg_rcz280.asm +++ b/Source/HBIOS/cfg_rcz280.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) ; diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index 7374f0c8..0498e4f2 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/Source/HBIOS/cfg_rcz80.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) ; diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 3f0ab5c0..5e21ac26 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.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) ; diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index 50ce8893..72c20acc 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/Source/HBIOS/cfg_scz180.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) ; diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 007d1196..c1580ac9 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2066,6 +2066,8 @@ HB_Z280BUS1: CALL PRTHEXWORDHL #ENDIF ; +#IFDEF ROMBOOT +; ; ROM CHECKSUM VERIFICATION ; EACH OF THE FIRST 4 ROM BANKS HAS A CHECKSUM INJECTED SUCH THAT ; A COMPUTED CHECKSUM ACROSS THE ENTIRE BANK SHOLD ALWAYS BE ZERO @@ -2076,7 +2078,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 +2087,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 +2131,8 @@ HB_CKBNKSIZ .EQU $-HB_CKBNK ; SIZE OF ROUTINE ; HB_ROMCKZ: ; +#ENDIF +; ; LOW BATTERY DIAGNOSTIC MESSAGE ; #IF (BATCOND) diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 21f66057..5c2ab4f7 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -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 ; diff --git a/Source/Images/Common/CLRDIR.COM b/Source/Images/Common/All/CLRDIR.COM similarity index 100% rename from Source/Images/Common/CLRDIR.COM rename to Source/Images/Common/All/CLRDIR.COM diff --git a/Source/Images/Common/COMPARE.COM b/Source/Images/Common/All/COMPARE.COM similarity index 69% rename from Source/Images/Common/COMPARE.COM rename to Source/Images/Common/All/COMPARE.COM index 29fa41e6..24f46e33 100644 Binary files a/Source/Images/Common/COMPARE.COM and b/Source/Images/Common/All/COMPARE.COM differ diff --git a/Source/Images/Common/CR.COM b/Source/Images/Common/All/CRUNCH.COM similarity index 100% rename from Source/Images/Common/CR.COM rename to Source/Images/Common/All/CRUNCH.COM diff --git a/Source/Images/Common/All/CRUNCH28.CFG b/Source/Images/Common/All/CRUNCH28.CFG new file mode 100644 index 00000000..f81c7acf Binary files /dev/null and b/Source/Images/Common/All/CRUNCH28.CFG differ diff --git a/Source/Images/Common/DDTZ.COM b/Source/Images/Common/All/DDTZ.COM similarity index 100% rename from Source/Images/Common/DDTZ.COM rename to Source/Images/Common/All/DDTZ.COM diff --git a/Source/Images/Common/DDTZ.DOC b/Source/Images/Common/All/DDTZ.DOC similarity index 100% rename from Source/Images/Common/DDTZ.DOC rename to Source/Images/Common/All/DDTZ.DOC diff --git a/Source/Images/Common/EX.COM b/Source/Images/Common/All/EX.COM similarity index 100% rename from Source/Images/Common/EX.COM rename to Source/Images/Common/All/EX.COM diff --git a/Source/Images/Common/FDISK80.COM b/Source/Images/Common/All/FDISK80.COM similarity index 100% rename from Source/Images/Common/FDISK80.COM rename to Source/Images/Common/All/FDISK80.COM diff --git a/Source/Images/Common/FIND.COM b/Source/Images/Common/All/FIND.COM similarity index 100% rename from Source/Images/Common/FIND.COM rename to Source/Images/Common/All/FIND.COM diff --git a/Source/Images/Common/FLASH.COM b/Source/Images/Common/All/FLASH.COM similarity index 100% rename from Source/Images/Common/FLASH.COM rename to Source/Images/Common/All/FLASH.COM diff --git a/Doc/Contrib/Flash4.txt b/Source/Images/Common/All/FLASH.DOC similarity index 100% rename from Doc/Contrib/Flash4.txt rename to Source/Images/Common/All/FLASH.DOC diff --git a/Source/Images/Common/MBASIC.COM b/Source/Images/Common/All/MBASIC.COM similarity index 100% rename from Source/Images/Common/MBASIC.COM rename to Source/Images/Common/All/MBASIC.COM diff --git a/Source/Images/Common/NULU.COM b/Source/Images/Common/All/NULU.COM similarity index 100% rename from Source/Images/Common/NULU.COM rename to Source/Images/Common/All/NULU.COM diff --git a/Source/Images/Common/PMARC.COM b/Source/Images/Common/All/PMARC.COM similarity index 100% rename from Source/Images/Common/PMARC.COM rename to Source/Images/Common/All/PMARC.COM diff --git a/Source/Images/Common/PMEXT.COM b/Source/Images/Common/All/PMEXT.COM similarity index 100% rename from Source/Images/Common/PMEXT.COM rename to Source/Images/Common/All/PMEXT.COM diff --git a/Source/Images/Common/RMXSUB1.COM b/Source/Images/Common/All/RMXSUB1.COM similarity index 100% rename from Source/Images/Common/RMXSUB1.COM rename to Source/Images/Common/All/RMXSUB1.COM diff --git a/Source/Images/Common/All/SUPERSUB.COM b/Source/Images/Common/All/SUPERSUB.COM new file mode 100644 index 00000000..80336b52 Binary files /dev/null and b/Source/Images/Common/All/SUPERSUB.COM differ diff --git a/Source/Images/Common/All/SUPERSUB.DOC b/Source/Images/Common/All/SUPERSUB.DOC new file mode 100644 index 00000000..7f554bb3 --- /dev/null +++ b/Source/Images/Common/All/SUPERSUB.DOC @@ -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 /" +(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: +* +A>CRCK *.* F + +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. + \ No newline at end of file diff --git a/Source/Images/Common/TDLBASIC.COM b/Source/Images/Common/All/TDLBASIC.COM similarity index 100% rename from Source/Images/Common/TDLBASIC.COM rename to Source/Images/Common/All/TDLBASIC.COM diff --git a/Source/Images/Common/UNARC.COM b/Source/Images/Common/All/UNARC.COM similarity index 100% rename from Source/Images/Common/UNARC.COM rename to Source/Images/Common/All/UNARC.COM diff --git a/Source/Images/Common/All/UNARC.DOC b/Source/Images/Common/All/UNARC.DOC new file mode 100644 index 00000000..6c1263e7 --- /dev/null +++ b/Source/Images/Common/All/UNARC.DOC @@ -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 + +------------------------------------------------------------------------------ + \ No newline at end of file diff --git a/Source/Images/Common/UNCR.COM b/Source/Images/Common/All/UNCR.COM similarity index 100% rename from Source/Images/Common/UNCR.COM rename to Source/Images/Common/All/UNCR.COM diff --git a/Source/Images/Common/UNZIPZ4.COM b/Source/Images/Common/All/UNZIP.COM similarity index 100% rename from Source/Images/Common/UNZIPZ4.COM rename to Source/Images/Common/All/UNZIP.COM diff --git a/Source/Images/Common/All/UNZIP.DOC b/Source/Images/Common/All/UNZIP.DOC new file mode 100644 index 00000000..734d8dab --- /dev/null +++ b/Source/Images/Common/All/UNZIP.DOC @@ -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. + \ No newline at end of file diff --git a/Source/Images/Common/XSUB1.COM b/Source/Images/Common/All/XSUB1.COM similarity index 100% rename from Source/Images/Common/XSUB1.COM rename to Source/Images/Common/All/XSUB1.COM diff --git a/Source/Images/Common/ZAP.COM b/Source/Images/Common/All/ZAP.COM similarity index 100% rename from Source/Images/Common/ZAP.COM rename to Source/Images/Common/All/ZAP.COM diff --git a/Source/Images/Common/ZDE.COM b/Source/Images/Common/All/ZDE.COM similarity index 100% rename from Source/Images/Common/ZDE.COM rename to Source/Images/Common/All/ZDE.COM diff --git a/Source/Images/Common/ZDENST.COM b/Source/Images/Common/All/ZDENST.COM similarity index 100% rename from Source/Images/Common/ZDENST.COM rename to Source/Images/Common/All/ZDENST.COM diff --git a/Source/Images/supp/cpm22/KERCPM22.COM b/Source/Images/Common/CPM22/KERCPM22.COM similarity index 100% rename from Source/Images/supp/cpm22/KERCPM22.COM rename to Source/Images/Common/CPM22/KERCPM22.COM diff --git a/Source/Images/supp/cpm3/KERCPM3.COM b/Source/Images/Common/CPM3/KERCPM3.COM similarity index 100% rename from Source/Images/supp/cpm3/KERCPM3.COM rename to Source/Images/Common/CPM3/KERCPM3.COM diff --git a/Source/Images/Common/DIRX.COM b/Source/Images/Common/DIRX.COM deleted file mode 100644 index 413bceca..00000000 Binary files a/Source/Images/Common/DIRX.COM and /dev/null differ diff --git a/Source/Images/Common/SUPERSUB.COM b/Source/Images/Common/SUPERSUB.COM deleted file mode 100644 index a25d60a6..00000000 Binary files a/Source/Images/Common/SUPERSUB.COM and /dev/null differ diff --git a/Source/Images/Common/UNZIP.COM b/Source/Images/Common/UNZIP.COM deleted file mode 100644 index afde7204..00000000 Binary files a/Source/Images/Common/UNZIP.COM and /dev/null differ diff --git a/Source/Images/Common/Z/u14/LBREXT36.CFG b/Source/Images/Common/Z/u14/LBREXT36.CFG new file mode 100644 index 00000000..0f6c430d Binary files /dev/null and b/Source/Images/Common/Z/u14/LBREXT36.CFG differ diff --git a/Source/Images/d_zsdos/u0/ZXD.CFG b/Source/Images/Common/Z/u14/ZXD.CFG similarity index 100% rename from Source/Images/d_zsdos/u0/ZXD.CFG rename to Source/Images/Common/Z/u14/ZXD.CFG diff --git a/Source/Images/Common/LBREXT.COM b/Source/Images/Common/Z/u15/LBREXT.COM similarity index 100% rename from Source/Images/Common/LBREXT.COM rename to Source/Images/Common/Z/u15/LBREXT.COM diff --git a/Source/Images/d_zpm3/u15/zxd.com b/Source/Images/Common/Z/u15/ZXD.COM similarity index 100% rename from Source/Images/d_zpm3/u15/zxd.com rename to Source/Images/Common/Z/u15/ZXD.COM diff --git a/Source/Images/supp/z3/u10/SCOPY.HLP b/Source/Images/Common/Z3/u10/SCOPY.HLP similarity index 100% rename from Source/Images/supp/z3/u10/SCOPY.HLP rename to Source/Images/Common/Z3/u10/SCOPY.HLP diff --git a/Source/Images/supp/z3/u10/SCOPY10F.HLP b/Source/Images/Common/Z3/u10/SCOPY10F.HLP similarity index 100% rename from Source/Images/supp/z3/u10/SCOPY10F.HLP rename to Source/Images/Common/Z3/u10/SCOPY10F.HLP diff --git a/Source/Images/supp/z3/u14/SCOPY10F.CFG b/Source/Images/Common/Z3/u14/SCOPY10F.CFG similarity index 100% rename from Source/Images/supp/z3/u14/SCOPY10F.CFG rename to Source/Images/Common/Z3/u14/SCOPY10F.CFG diff --git a/Source/Images/supp/z3/u15/SCOPY.COM b/Source/Images/Common/Z3/u15/SCOPY.COM similarity index 100% rename from Source/Images/supp/z3/u15/SCOPY.COM rename to Source/Images/Common/Z3/u15/SCOPY.COM diff --git a/Source/Images/supp/z3/u15/TCAP.Z3T b/Source/Images/Common/Z3/u15/TCAP.Z3T similarity index 100% rename from Source/Images/supp/z3/u15/TCAP.Z3T rename to Source/Images/Common/Z3/u15/TCAP.Z3T diff --git a/Source/Images/supp/z3/u15/TCSELECT.COM b/Source/Images/Common/Z3/u15/TCSELECT.COM similarity index 100% rename from Source/Images/supp/z3/u15/TCSELECT.COM rename to Source/Images/Common/Z3/u15/TCSELECT.COM diff --git a/Source/Images/supp/z3/u15/TCVIEW.COM b/Source/Images/Common/Z3/u15/TCVIEW.COM similarity index 100% rename from Source/Images/supp/z3/u15/TCVIEW.COM rename to Source/Images/Common/Z3/u15/TCVIEW.COM diff --git a/Source/Images/supp/z3/u15/Z3LOC.COM b/Source/Images/Common/Z3/u15/Z3LOC.COM similarity index 100% rename from Source/Images/supp/z3/u15/Z3LOC.COM rename to Source/Images/Common/Z3/u15/Z3LOC.COM diff --git a/Source/Images/supp/z3/u15/Z3TCAP.LBR b/Source/Images/Common/Z3/u15/Z3TCAP.LBR similarity index 100% rename from Source/Images/supp/z3/u15/Z3TCAP.LBR rename to Source/Images/Common/Z3/u15/Z3TCAP.LBR diff --git a/Source/Images/d_bp.txt b/Source/Images/d_bp.txt index 7fb3ef71..1e5addd1 100644 --- a/Source/Images/d_bp.txt +++ b/Source/Images/d_bp.txt @@ -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: diff --git a/Source/Images/d_cpm22.txt b/Source/Images/d_cpm22.txt index 9a8e101b..b775469b 100644 --- a/Source/Images/d_cpm22.txt +++ b/Source/Images/d_cpm22.txt @@ -40,5 +40,5 @@ cpnet12/*.* 4: # # Add Common Applications # -Common/*.* 0: -supp/cpm22/*.* 0: +Common/All/*.* 0: +Common/CPM22/*.* 0: diff --git a/Source/Images/d_cpm3.txt b/Source/Images/d_cpm3.txt index 3f279e06..8b5b4298 100644 --- a/Source/Images/d_cpm3.txt +++ b/Source/Images/d_cpm3.txt @@ -56,5 +56,5 @@ cpnet3/*.* 4: # # Add Common Applications # -Common/*.* 0: -supp/cpm3/*.* 0: +Common/All/*.* 0: +Common/CPM3/*.* 0: diff --git a/Source/Images/d_nzcom.txt b/Source/Images/d_nzcom.txt index 5d201247..4a245f37 100644 --- a/Source/Images/d_nzcom.txt +++ b/Source/Images/d_nzcom.txt @@ -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: diff --git a/Source/Images/d_nzcom/u0/CRUNCH.COM b/Source/Images/d_nzcom/u0/CRUNCH.COM deleted file mode 100644 index ac17854a..00000000 Binary files a/Source/Images/d_nzcom/u0/CRUNCH.COM and /dev/null differ diff --git a/Source/Images/d_nzcom/u0/UNCRUNCH.COM b/Source/Images/d_nzcom/u0/UNCRUNCH.COM deleted file mode 100644 index 5ffb68ef..00000000 Binary files a/Source/Images/d_nzcom/u0/UNCRUNCH.COM and /dev/null differ diff --git a/Source/Images/d_zpm3.txt b/Source/Images/d_zpm3.txt index b8ee128c..12b8d5d2 100644 --- a/Source/Images/d_zpm3.txt +++ b/Source/Images/d_zpm3.txt @@ -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: diff --git a/Source/Images/d_zpm3/u15/help.com b/Source/Images/d_zpm3/u15/help.com index 378cf03b..3a4d4394 100644 Binary files a/Source/Images/d_zpm3/u15/help.com and b/Source/Images/d_zpm3/u15/help.com differ diff --git a/Source/Images/d_zsdos.txt b/Source/Images/d_zsdos.txt index 85ebf5fd..805bd5c5 100644 --- a/Source/Images/d_zsdos.txt +++ b/Source/Images/d_zsdos.txt @@ -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: diff --git a/Source/Images/d_zsdos/u0/BGPATCH.HEX b/Source/Images/d_zsdos/u0/BGPATCH.HEX new file mode 100644 index 00000000..2966accc Binary files /dev/null and b/Source/Images/d_zsdos/u0/BGPATCH.HEX differ diff --git a/Source/Images/d_zsdos/u0/COPY.CFG b/Source/Images/d_zsdos/u0/COPY.CFG index 3d5310ac..e55fcebf 100644 Binary files a/Source/Images/d_zsdos/u0/COPY.CFG and b/Source/Images/d_zsdos/u0/COPY.CFG differ diff --git a/Source/Images/d_zsdos/u0/DATSWEEP.COM b/Source/Images/d_zsdos/u0/DATSWEEP.COM index 5d298c0b..3b56e0ce 100644 Binary files a/Source/Images/d_zsdos/u0/DATSWEEP.COM and b/Source/Images/d_zsdos/u0/DATSWEEP.COM differ diff --git a/Source/Images/d_zsdos/u0/DSCONFIG.COM b/Source/Images/d_zsdos/u0/DSCONFIG.COM index b77dd008..d95229c4 100644 Binary files a/Source/Images/d_zsdos/u0/DSCONFIG.COM and b/Source/Images/d_zsdos/u0/DSCONFIG.COM differ diff --git a/Source/Images/d_zsdos/u0/ROMWBW.TXT b/Source/Images/d_zsdos/u0/ROMWBW.TXT new file mode 100644 index 00000000..a8151798 --- /dev/null +++ b/Source/Images/d_zsdos/u0/ROMWBW.TXT @@ -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 \ No newline at end of file diff --git a/Source/Images/d_zsdos/u0/ZXD.COM b/Source/Images/d_zsdos/u0/ZXD.COM deleted file mode 100644 index 20395673..00000000 Binary files a/Source/Images/d_zsdos/u0/ZXD.COM and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/COPY.CFG b/Source/RomDsk/ROM_512KB/COPY.CFG deleted file mode 100644 index 3d5310ac..00000000 Binary files a/Source/RomDsk/ROM_512KB/COPY.CFG and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/FA16.CFG b/Source/RomDsk/ROM_512KB/FA16.CFG deleted file mode 100644 index b7974d36..00000000 Binary files a/Source/RomDsk/ROM_512KB/FA16.CFG and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/FILEDATE.CFG b/Source/RomDsk/ROM_512KB/FILEDATE.CFG deleted file mode 100644 index da1ca45f..00000000 Binary files a/Source/RomDsk/ROM_512KB/FILEDATE.CFG and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/INITDIR.CFG b/Source/RomDsk/ROM_512KB/INITDIR.CFG deleted file mode 100644 index 96baa986..00000000 Binary files a/Source/RomDsk/ROM_512KB/INITDIR.CFG and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/TD.CFG b/Source/RomDsk/ROM_512KB/TD.CFG deleted file mode 100644 index ab44bab9..00000000 Binary files a/Source/RomDsk/ROM_512KB/TD.CFG and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/ZCNFG.COM b/Source/RomDsk/ROM_512KB/ZCNFG.COM deleted file mode 100644 index ae423dc5..00000000 Binary files a/Source/RomDsk/ROM_512KB/ZCNFG.COM and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/ZCNFG24.CFG b/Source/RomDsk/ROM_512KB/ZCNFG24.CFG deleted file mode 100644 index 1bfe49bf..00000000 Binary files a/Source/RomDsk/ROM_512KB/ZCNFG24.CFG and /dev/null differ diff --git a/Source/RomDsk/ROM_512KB/ZXD.CFG b/Source/RomDsk/ROM_512KB/ZXD.CFG deleted file mode 100644 index f202ae59..00000000 Binary files a/Source/RomDsk/ROM_512KB/ZXD.CFG and /dev/null differ diff --git a/Source/ver.inc b/Source/ver.inc index b95a0ac2..b4a251a0 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -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" diff --git a/Source/ver.lib b/Source/ver.lib index f1bbc862..c64d8089 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -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