CURRENT EVENTS: =============== NovaDOS Release I: Fixed a bug in the file counting algorithm. Fixed 11/17/89 the BDOS lookahead character bypass in function 6. Added notes to documentation re. TurboROM. Added conditional to eleminate path support at assembly time. NovaDOS Release H: Fixed numerous minor bugs and added fast disk 03/12/89 relogging, improved changed disk handling, selec- table R/O status for public files, ZRDOS error code returns, improved floppy format detection options, improved warm boot trap, assembly stats in ID common and more. New ZRL file in library eleminates system dependant hooks which hampered release G version. Added support utilities PFILE and FBOOT to library. NovaDOS Release G: Fixed bug which destroyed sector skewtable. Added 01/07/89 Function 39 to return permanent media bit map. Limited file R/O error escape to one key (rather than ANY key except ^C). Fixed typos in DOC and in source comments. NovaDOS Release F: Fixed bug which prevented the flagging of an error 11/10/88 when renaming a R/O file. Tightened the code to provide space for this fix. Added discussion of error recovery to documentation. NovaDOS Release E: SuprBDOS had code to set the submit flag on a disk 10/28/88 reset only if the $$$.SUB file existed on the current directory area. This code has been removed and the subflag will be set by the presence of a $$*.* file in ANY directory area. NovaDOS Release D: Fixed a bug in Function 2 which caused tabbed 10/24/88 output to be displayed erratically under some circumstances. NovaDOS HISTORY: ================ This a collection of introductory comments from the source code to SuprBDOS. They are somewhat fragmentary and disordered, however they do give a general idea of the history of this program. In a reversal of the order in which such information is usually presented, I have appended a list of my own contributions to the end of this file. Lindsay Haisley Sept. 19, 1988 ;****************************************************************************** ;* * ;* P 2 D O S --Z80 REPLACEMENT DISK OPERATING SYSTEM VERSION 1.2 * ;* No more control-C to change disks! * ;* COPYRIGHT (C) 1985 BY: H.A.J. TEN BRUGGE * ;* ALL RIGHTS RESERVED MOLENSTRAAT 33 * ;* NL-7491 BD DELDEN * ;* THE NETHERLANDS * ;* TEL:..31-5407-1980 * ;* P2DOS WAS WRITTEN BY HERMAN TEN BRUGGE, WHO ASSUMES NO RESPONSIBILITY * ;* OR LIABILITY FOR ITS USE. P2DOS IS RELEASED TO THE PUBLIC DOMAIN FOR * ;* NON-COMMERCIAL USE ONLY. * ;* * ;* THE PULBLIC IS ENCOURAGED TO FREELY COPY AND USE THIS PROGRAM FOR * ;* NON-COMMERCIAL PURPOSES. ANY COMMERCIAL USE OF P2DOS IS PROHIBITED * ;* UNLESS APPROVED BY THE AUTHOR, H.A.J. TEN BRUGGE, IN WRITING. * ;* * ;* THIS IS MOD 0.2 TO THE RELEASE VERSION OF P2DOS * ;* * ;****************************************************************************** ;* MOD 0.2 Revisions ;* Renamed to SUPRBDOS ;* By Benjamin Ho ;* 626 Emerson St. ;* Evanston, IL 60201 ;* Background: ;* ;* P2DOS MOD 0.1 was not a major improvement on the standard CP/M BDOS. ;* While it added Public files, slightly more informative error messages, and ;* time stamping support, it did not fix the major annoyances of the CP/M BDOS, ;* namely the necessity of logging in new disks with Control-C, mystifying ;* error messages, and a delete key that looked like it didn't delete. ;* ;* P2DOS MOD 0.2 is a major enhancement which liberates the CP/M user from all ;* these annoyances. It is compatible with all CP/M software except those ;* that modify the BDOS. Fortunately, that type of program is extremely rare. ;* ;* P2DOS MOD 0.2 may be used with ZCPR3 to provide an extremely powerful ;* 100% CP/M 2.2 compatible operating system. The resulting system is not ;* subject to Digital Research's licensing agreement. The only restriction ;* is that it may be used for non-commerical use only, as stated by the ;* authors of ZCPR3 and P2DOS. ;* ;* Enjoy! ;* 9/2/86- ;* Added automatic login of changed disks--no more Control-C ;* when changing disks! ;* Removed P2DOS tie to ZCPR2. Can now be used with ZCPR3 or ;* (ugh!) normal CP/M. ;* Improved error messages: ;* Disk Error on X: Read Error ;* Write Error ;* Non-existent drive ;* File is Read-Only ;* Fixed delete key--now works like backspace. No echoing characters ;* Allowed functions 13 and 37 to recognize changes between single and ;* double sided disks on machines which normally require a warm ;* boot when "sidedness" is changed. Bios modification is needed ;* to support this feature ;* Fixed directory read bug. Function 37 bug which plagued ;* library utility program NULU 1.5 is fixed. ;* Choice of assembly by M80 and compatibles or public domain ZASM ;* System files are read/write, as in CP/M. Changed from P2DOS ;* mod 0.1 in which system files were R/O ;* Deleted P2DOS search path so the more flexible ;* ZCR3 search path could be used ;* File split into 3 sections for easy of editing. ;****************************************************************************** ; ; ; P 2 D O S --Z80 REPLACEMENT DISK OPERATING SYSTEM VERSION 1.1 ; ; ; NEW FEATURES OF P2DOS ARE: ; - TEST CONSOLE STATUS AFTER 256 CHARACTERS OUTPUT. THIS MAKES IT POSSIBLE TO ; EXIT A PROGRAM, AFTER YOU HIT ACCIDENTALY A KEY, BY TYPING ^S FOLLOWED BY ^C. ; - ERROR ROUTINES GIVE MORE INFORMATION. ; P2DOS ERROR ON D: BAD SECTOR ; SELECT ; FILE R/O ; R/O ; FUNCTION =XXX (FILE =FILENAME.TYP) ; AS YOU CAN SEE THE ERROR IS DISPLAYED WITH THE P2DOS FUNCTION CALL. ; THE OPTION 'FILE =FILENAME.TYP' IS ONLY DISPLAYED IF THE P2DOS FUNCTION ; USES A FILENAME. AFTER ALL ERRORS A WARM BOOT IS DONE. ; ; - PUBLIC FILES ARE SUPPORTED. YOU CAN ACCESS A PUBLIC FILE FROM ANY ; USER NUMBER. THIS MAKES IT POSSIBLE TO PUT FOR EXAMPLE ALL '.COM' IN ; A SPECIAL USER NUMBER AND MAKE ALL THOSE FILES PUBLIC. YOU CAN ACCESS ALL ; THE FILES FROM ANY USER NUMBER ON THE SAME DISK. ; A PUBLIC FILE IS A FILE WITH BIT F2 (BIT 7 FROM FILENAME LETTER 2) SET TO ; ONE. PUBLIC FILES CAN ONLY BE REFERENCED BY THERE EXACT NAME AND NOT BY WILD ; CARD CHARACTERS. ; ; - SEARCH PATH IS IMPLEMENTED JUST AS IN ZCPR2 TO FIND FILES ON OTHER DRIVES ; AND IN OTHER USER AREAS. THE FILES MUST BE SYSTEM FILES AND MUST BE ; REFERENCED BY THEIR EXACT NAME AS IN PUBLIC FILE NAMES ABOVE. ; ; - AUTOMATIC DATE AND TIME STAMP IS IMPLEMENTED. THE CREATION DATE AND TIME ; IS SET WHEN THE FUNCTION MAKE IS EXECUTED. THE UPDATE DATE AND TIME IS ; SET AS THE FILE IS CLOSED. TO LET THIS FEATURE WORK YOU NEED TO HAVE A ; REAL TIME CLOCK AND THE CORRECT P2BIOS DRIVER ROUTINE. YOU ALSO HAVE TO ; INITIALISE YOUR DIRECTORY FOR TIME STAMPS. ; - FILE R/O ERROR MESSAGE OCCURS IF ONE OF THE FOLLOWING FILE TYPES IS ACTIVE: ; PUBLIC FILE (F2) ; FILE R/O (T1) ; SYSTEM FILE (T2) ; THIS MEANS THAT A SYSTEM FILE OR PUBLIC FILE CANNOT BE ERASED ACCIDENTALY. ; ; - NEW FUNCTION GET TIME (200) IS IMPLEMENTED TO GET THE CORRECT DATE AND TIME. ; ENTRY DE IS ADDRESS TO PUT TIME. THE DATE AND TIME RECORD HAS THE FOLLOWING ; LAYOUT: ; DATE: DEFS 2 DATE = 1 (SU 01-JAN-1978) ; DATE = 65535 (SU 05-JUN-2157) ; HOUR: DEFS 1 HOUR IN BCD ; MINUTE: DEFS 1 MINUTE IN BCD ; SECOND: DEFS 1 SECOND IN BCD ; FUNCTION WORKS ONLY IF CORRECT P2BIOS FUNCTION CALL IS INSTALLED. ; ; - NEW FUNCTION SET TIME (201) IS IMPLEMENTED TO SET THE CORRECT DATE AND TIME. ; ENTRY DE IS ADDRESS NEW TIME. THE DATE AND TIME LAYOUT IS AS ABOVE. ; FUNCTION WORKS ONLY IF CORRECT P2BIOS FUNCTION CALL IS INSTALLED. ; ; - DISK SIZE CAN BE AS LARGE AS 65536*16K=1 048 576 K BYTE=1 G BYTE. ; - FILE SIZE CAN BE AS LARGE AS 32*64*16K=32 768K BYTE=32 M BYTE. ; ; YOU CAN ENABLE/DISABLE THE FUNCTIONS MENTIONED ABOVE WITH THE FOLLOWING DATA ; AND ADDRESSES. ; ; - ENABLE PATH NAME BY PUTTING ADDRESS OF PATH IN P2DOS+15H. IF THIS VALUE IS ; 0000H NO PATH IS USED. THIS ADDRESS IS NORMALLY SET TO 0040H. ; ; - ENABLE P2DOS TIME AND DATE STAMPING BY PUTTING THE CORRECT P2BIOS ADDRESS ; AT P2DOS+17H. THIS ADDRESS IS NORMALY SET TO THE P2BIOS CONSOLE STATUS ; FUNCTION. ; ; - YOU CAN ENABLE THE 256 CHARACTER DELAY FUNCTION BY SETTING BIT 0 OF ; ADDRESS P2DOS+19H. THIS BIT IS NORMALLY SET TO 1. ; ; - YOU CAN ENABLE PUBLIC FILES BY SETTING BIT 1 OF ADDRESS P2DOS+19H TO 1. ; THIS BIT IS NORMALLY SET TO 1. ; ; P 2 D O S --z80 replacement disk operating system version 1.1 ; ; ; New features of P2dos are: ; - Test console status after 256 characters output. This makes it possible to ; exit a program, after you hit accidentaly a key, by typing ^s followed by ^c. ; - Error routines give more information. ; P2dos error on d: bad sector ; select ; file r/o ; r/o ; function =xxx (file =filename.typ) ; As you can see the error is displayed with the P2dos function call. ; the option 'file =filename.typ' is only displayed if the P2dos function ; uses a filename. After all errors a warm boot is done. ; ; - Public files are supported. You can access a public file from any ; user number. This makes it possible to put for example all '.com' in ; a special user number and make all those files public. You can access all ; the files from any user number on the same disk. ; a public file is a file with bit f2 (bit 7 from filename letter 2) set to ; one. Public files can only be referenced by there exact name and not by wild ; card characters. ; ; - Search path is implemented just as in zcpr2 to find files on other drives ; and in other user areas. The files must be system files and must be ; referenced by their exact name as in public file names above. ; ; - Automatic date and time stamp is implemented. The creation date and time ; is set when the function make is executed. The update date and time is ; set as the file is closed. To let this feature work you need to have a ; real time clock and the correct P2bios driver routine. You also have to ; initialise your directory for time stamps. ; - File r/o error message occurs if one of the following file types is active: ; public file (f2) ; file r/o (t1) ; system file (t2) ; this means that a system file or public file cannot be erased accidentaly. ; ; - New function get time (200) is implemented to get the correct date and time. ; entry de is address to put time. The date and time record has the following ; LAYOUT: ; date: defs 2 date = 1 (su 01-jan-1978) ; date = 65535 (su 05-jun-2157) ; hour: defs 1 hour in bcd ; minute: defs 1 minute in bcd ; second: defs 1 second in bcd ; Function works only if correct P2bios function call is installed. ; ; - New function set time (201) is implemented to set the correct date and time. ; entry de is address new time. The date and time layout is as above. ; Function works only if correct P2bios function call is installed. ; ; - Disk size can be as large as 65536*16k=1 048 576 k byte=1 g byte. ; - File size can be as large as 32*64*16k=32 768k byte=32 m byte. ; ; You can enable/disable the functions mentioned above with the following data ; and addresses. ; ; - Enable path name by putting address of path in P2dos+15h. If this value is ; 0000h no path is used. This address is normally set to 0040h. ; ; - Enable P2dos time and date stamping by putting the correct P2bios address ; at P2dos+17h. This address is normaly set to the P2bios console status ; function. ; ; - You can enable the 256 character delay function by setting bit 0 of ; address P2dos+19h. This bit is normally set to 1. ; ; - You can enable public files by setting bit 1 of address P2dos+19h to 1. ; this bit is normally set to 1. A number of modifications were made by Lindsay Haisley, 14206 Spreading Oaks Drive, Leander, TX 78641. Release date for this version was on or about 10/20/88. Modifications include: * Renamed SuprBDOS to NovaDOS (Nothing "basic" about this one!) * Access to the value of the current DMA location via a NovaDOS call. * Runtime selection of several NovaDOS options via DOS function 53. * Support for the archive bit. * Path search to include public as well as system files. * Bug fix in function 40 (write random with zero fill). * Removal of ^R (rewrite line) option from Function 10. * Separation of assembly option equates to HDR file. * Addition of ZRDOS functions * Addition of high bit character contol routines * Addition of calls to set flags byte and path address * Read only vector now not automatically reset by by Functions 13 and 37 END OF FILE: ------------