LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS DOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS DOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO LDOS LDOS L S LDOS LDOS LD S LDOS LDOS ################################################ OS LDOS LDOS L OS LDOS LDOS ## ## DOS LDOS LDOS DOS LDOS LDO ## #### ####### #### ##### ## LDOS LDOS LDOS LDOS LDOS LD ## ## ## ## ## ## ## ## ## LDOS LDOS LDO LDOS LDOS L ## ## ## ## ## ## ## ## S LDOS LDOS LD S LDOS LDOS ## ## ## ## ## ## ##### ## OS LDOS LDOS L OS LDOS LDOS ## ## ## ## ## ## ## ## DOS LDOS LDOS DOS LDOS LDO ## ## # ## ## ## ## ## ## ## LDOS LDOS LDOS LDOS LDOS LD ## ######## ####### #### ##### ## LDOS LDOS LDO LDOS LDOS L ## ## S LDOS LDOS LD S LDOS LDOS ################################################ OS LDOS LDOS L OS LDOS LDOS DOS LDOS LDOS DOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS DOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO DOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO DOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO DOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO DOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS OS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS S LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS L LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LD LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDOS LDO T A B L E O F C O N T E N T S ===================================================================== ACKNOWLEDGEMENTS I - GETTING STARTED USING THIS MANUAL GENERAL INFORMATION SYSTEM DEVICES II - THE LDOS LIBRARY LIBRARY COMMANDS: (* indicates extended library command) APPEND * ATTRIB * AUTO * BOOT * BUILD * CLOCK COPY * CREATE * DATE * DEBUG DEVICE DIR DO * DUMP FILTER * FREE KILL LIB LINK LIST LOAD MEMORY * PURGE RENAME RESET ROUTE RUN SET SPOOL * SYSTEM * TIME * TRACE * VERIFY III - EXTENDED UTILITIES: BACKUP - CMDFILE - CONV - FORMAT - HITAPE LCOMM - LOG - PATCH - REPAIR DEVICE DRIVERS: JL - KI - RS232T FILTERS: KSM - MINIDOS - PR IV - JCL: THE LDOS JOB CONTROL LANGUAGE LBASIC V - TECHNICAL INFORMATION VI - GLOSSARY IN CASE OF DIFFICULTY CUSTOMER SERVICE WARRANTY ADDENDUMS (IF ANY): QED ===================================================================== Second Edition LDOS 5.1.x Model III Copyright 1981 by LOGICAL SYSTEMS INCORPORATED and GALACTIC SOFTWARE All rights reserved LDOS is a Trademark of LOGICAL SYSTEMS INCORPORATED A C K N O W L E D G E M E N T S ================================ The LDOS product is the property of LOGICAL SYSTEMS INCORPORATED and is copyrighted in its entirety. No portion of the system code or documentation may be reproduced in any manner, for any purpose. Copies of the serialized Master LDOS disk may be made by the registered owner of that disk for archival purposes only. Logical Systems, Incorporated, does not authorize any LDOS owner or any other person to duplicate or distribute LDOS or any portion of LDOS for purposes other than the creation of reserve (archival) copies for the original purchaser's personal use. The following persons were members of the team that made LDOS possible: Bill Schroeder Roy Soltoff PROJECT LEADER SYSTEMS ANALYST Chuck Jensen Dick Konop Tim Mann Lance Micklus The LDOS development team would like to thank the many people that provided suggestions and support during the creation of the LDOS products. ACKNOWLEDGEMENT G E T T I N G S T A R T E D ============================= Please observe the following steps exactly: 1) PLEASE FILL OUR AND RETURN THE WARRANTY CARD found in the rear of this manual. Especially important is the Name and Address information, which will assure you of receiving the quarterly newsletter, and any update information. If the WARRANTY card is not returned to LDOS Support Services within 30 days of purchase, your WARRANTY may be void. 2) Your LDOS master disk is WRITE PROTECTED with a small adhesive tab. DO NOT REMOVE THE WRITE PROTECT TAB. 3) Power up your TRS-80 system and all peripheral hardware. Place the LDOS Master diskette in drive :0 and press the RESET button to boot the LDOS diskette into the system. The LDOS logo will now appear on the screen. Enter in the correct date (mm/dd/yy), and the message LDOS READY will appear. 4) The first thing you should do is to make a BACKUP of your LDOS Master diskette. Follow the step by step procedures listed below. All diskettes in the LDOS system will have a PACK ID assigned to them when they are FORMATted. This PACK ID consists of the disk Name and Master Password. During a Mirror Image BACKUP, the PACK ID's will be compared. If they are not the same, you will be asked whether or not to continue the BACKUP. Your LDOS Master Disk comes with the disk Name LDOS-5.1, and the disk Master Password of PASSWORD. The source disk PACK ID will be duplicated on the destination disk during a Mirror Image BACKUP. FOR SINGLE DRIVE OWNERS: ------------------------ Type in the command: FORMAT :0 (STEP=3) The screen will clear and the LDOS disk FORMAT utility will be loaded. Two questions will appear on the screen. The correct response is shown for each question. Question: Your response: ------------------------------------------------------------ DISKETTE NAME ? LDOS-5.1 MASTER PASSWORD ? PASSWORD Answer the questions as shown. You will then see the message: LOAD DESTINATION DISK AND HIT At this point, insert a new, blank diskette in drive 0 and press . After the FORMAT is complete, this message will appear: LOAD SYSTEM DISK AND HIT Put the LDOS Master disk back in drive 0 and press . Now type in the command: GETTING STARTED -1- BACKUP :0 :0 The message INSERT SOURCE DISK (ENTER) will appear on the screen. Since your LDOS disk is the SOURCE disk, simply press . The message INSERT DESTINATION DISK (ENTER) will now appear on the screen. Put the disk you have just formatted into drive 0 and press . You will be prompted several times to swap the Source and Destination disks until the BACKUP is completed. At that point, the message INSERT SYSTEM DISK (ENTER) will appear. Place the BACKUP you have just made in drive 0 and press . The BACKUP is now complete. FOR MULTIPLE DRIVE OWNERS: -------------------------- Place a new, blank diskette in drive 1 and type in the command: FORMAT :1 (STEP=3) The screen will clear and the LDOS disk FORMAT utility will be loaded. Two questions will appear on the screen. The correct response is shown for each question. Question: Your response: ------------------------------------------------------------ DISKETTE NAME ? LDOS-5.1 MASTER PASSWORD ? PASSWORD Answer the questions as shown. LDOS will now FORMAT the disk in drive 1. When it is finished, the prompt LDOS READY will appear. To make the BACKUP, type in the command: BACKUP :0 :1 LDOS will now make a BACKUP copy of itself on drive 1. 5) After the BACKUP of your LDOS disk is complete, remove the LDOS Master diskette from drive 0 and put it in a safe place. Be sure to leave it in its original jacket to protect it from dust and other contamination. 6) Label the BACKUP copy of the diskette as an original BACKUP of the LDOS Master diskette. You should use this diskette to make any other BACKUPs you require. Do not use the Master diskette except to create a BACKUP as just described. 7) It is extremely important that you now read the section entitled USING THIS MANUAL. That section contains information on the LDOS operating system as well as explanations of the User's manual layout and conventions. 8) If any questions or problems arise that cannot be solved by the User's manual, you will find a Toll Free user support number listed in the CUSTOMER SERVICE section and on the Warranty page, both in the rear of this manual. GETTING STARTED -2- LDOS FILE DESCRIPTIONS ---------------------- This section will describe the various files found on your LDOS master diskette, and explain their functions. It will also describe how to construct a minimum system disk for running applications packages. FILE GROUP - SYSTEM FILES (/SYS) -------------------------------- The descriptions of the /SYS files can be found in SYSTEM OVERLAYS near the end of the technical section. FILE GROUP - UTILITIES ---------------------- BACKUP - Used to duplicate data from one disk to another. CMDFILE - A disk/tape, tape/disk utility for machine language programs. CONV - Used to copy files from Model III TRSDOS to LDOS 5.1.x. FORMAT - Used to put track, sector, and directory information on a disk. LCOMM - A communications package for use with the RS-232 hardware. LOG - Used to log in a double sided diskette in drive 0. Also updates the drive code table information the same as the DEVICE library command. PATCH - Used to make changes to existing disk files. REPAIR - Used to correct certain information on non-LDOS formatted diskettes. FILE GROUP - DEVICE DRIVERS --------------------------- JL - The LDOS JobLog driver program. KI - The LDOS Keyboard driver, providing Type Ahead, Screen Print, and special key functions. RS232T - Used to configure and access the RS-232 hardware. FILE GROUP - FILTER PROGRAMS ---------------------------- KSM - Establishes the KeyStroke Multiply feature, which allows assigning user determined phrases to alphabetic keys. GETTING STARTED -3- MINIDOS - Establishes certain immediate functions to shifted alphabetic keys. PR - Allows the user to format printed output. FILE GROUP - BASIC AND BASIC OVERLAYS ------------------------------------- LBASIC - Enhanced Disk Basic program. LBASIC/OV1 - Renumber overlay used with LBASIC's CMD"N" feature. LBASIC/OV2 - Cross reference overlay used with LBASIC's CMD"X" feature. LBASIC/OV3 - Error and Sort routines for LBASIC. CREATING A MINIMUM CONFIGURATION DISK ------------------------------------- All files except certain /SYS files may be removed from your run time drive 0 disk. Additionally, if the needed /SYS files are placed in high memory with the SYSTEM (SYSRES) command, it will be possible to run with a data diskette in drive 0 after BOOTing the system. For operation, SYS files 1, 2, 3, 4, 8, and 10 should remain on drive 0 or be resident in memory. SYS 11 must be present only if any JCL files will be used. Both Libraries (SYS 6 and SYS 7) may be removed if no Library command will be used. SYS 5 and SYS 9 may be removed if the system DEBUGger is not needed. SYS 0 may be removed from any disk not used for BOOTing. When using LBASIC, the 0V3 overlay must also be present. OV1 and 0V2 may be removed if no renumbering or cross referencing will be done. The presence of any Utility, Driver, or Filter program is totally dependent upon the user's individual needs. Most of the LDOS features can be saved in a configuration file with the SYSTEM (SYSGEN) command, so the Driver and Filter programs won't be needed in run time applications. The passwords for LDOS files are as follows: System files (/SYS) Update password = WOLVES Filter files (/FLT) Update password = GSLTD Driver files (/DVR) Update password = GSLTD Utility files (/CMD) Update password = RRW3 LBASIC Update password = BASIC LBASIC overlays (/OV$) Update password = BASIC CONFIG/SYS Update password = CCC MASTER PASSWORD = RS0LT0FF (allows access to any file) (Spelled with zeros, if your printer doesn't show the difference) GETTING STARTED -4- U S I N G T H I S M A N U A L =================================== The LDOS User's manual is set up to be easily used and updated; It can be grouped into SIX distinct sections, each containing information on a specific group of operating instruction types. These sections can be identified by Section Identifier title blocks printed directly above the page numbers. SECTION...1> is made up of general information about the LDOS system. It contains the TABLE OF CONTENTS, GENERAL INFORMATION, USING THIS MANUAL, and SYSTEM DEVICES. These four sections will give you an overall description of the abilities and standard operating conventions of the LDOS system. SECTION...2> contains the LDOS LIBRARY COMMANDS. These commands are the heart of the operating system, and provide the link between the user and the computer. They are listed in alphabetical order, and each Library Command will have its own series of page numbers. New commands or changes to commands can easily be added to the manual in this manner. The LDOS manual will never become outdated. SECTION...3> contains information on UTILITY, FILTER, and DEVICE DRIVER routines, provided for maintenance of your diskettes and programs, and to allow you to interface with other peripheral devices. They also add many of the enhancements that make LDOS the most versatile TRS-80 operating system. SECTION...4> contains detailed operating instructions and information on the LDOS Job Control Language (JCL) and the enhanced LBASIC. SECTION...5> contains detailed TECHNICAL information about the LDOS operating system, including important addresses and system routines. It will give programmers the information they need to build those "custom" routines that make applications programs function more rapidly and efficiently. SECTION...6> contains the GLOSSARY, CUSTOMER SERVICE and WARRANTY information. When you purchased the LDOS operating system, you also obtained the best customer service arrangement in the micro industry. The LDOS Support Services group is committed to providing complete information and total assistance to all Registered LDOS owners. The Toll Free assistance number will be found in this section. To locate the section of the manual you wish to access, refer to the Section Identifiers printed directly above the page numbers. All commands or programs in each section will be in alphabetical order. Each new command or logical division within a section will begin on the top of a right hand page. Any time you encounter an unfamiliar word or definition, refer to either the GLOSSARY or GENERAL INFORMATION section of the manual to determine the exact meaning. USING THIS MANUAL -1- P A G E N U M B E R I N G ---------------------------- To provide a way of keeping your LDOS manual updated, the pages have NOT been numbered consecutively from the beginning of the manual. Instead, each section or command will start with page number 1. For example, the LIBRARY COMMAND section page numbering will show something like this: APPEND - LIBRARY COMMAND -1- This would let you know that the page you are on deals with a LIBRARY COMMAND called APPEND. It is the first page for this command. Until you are familiar with the manual, you may wish to place marker sheets of some sort between the different sections. Tabs have been provided for major section divisions. The user's manual will be updated each time there is a significant change in a particular operating procedure. If a change, correction or enhancement becomes available, it will be an easy matter to replace the appropriate pages without the need for complete reconstruction of the manual. It also makes it easier for the LDOS Support group to send out an immediate update or enhancement notice, without worrying about the cost of reprinting whole sections of the manual. This will assure you of receiving ALL relevant information as soon as possible. C O M M A N D S Y N T A X A N D S T R U C T U R E ---------------------------------------------------------- As you look through this manual, you should notice a very distinct structure regarding the command syntax of the LDOS system. Each Library Command, Utility, or Program section will begin with a very brief description of the function involved. Immediately following will be a "SYNTAX Block". This block will be laid out to show the command syntax, allowable parameters, and abbreviations, if any. A typical block might show the following: ============================================================= | THE COMMAND any files or devices (parameters) | | " " " " " " " | | | | FILES/DEVICES DESCRIPTIONS | | | | PARAMETER DESCRIPTIONS | | | | ABBREVIATIONS | ============================================================= The first line(s) in the block will show the allowable COMMAND structure. Throughout this manual several words will be used as prepositions separating commands and/or parameters. They are: TO ON OVER USING USING THIS MANUAL -2- The use of these prepositions is ALWAYS optional; the LDOS command will function the same whether they are used or not. They are merely a convenience to allow the user to enter a command in more familiar syntax. If a preposition is NOT used, a space must be used in its place. NOTE: DO NOT use any of these prepositions as a filename - very unpredictable things will result! The FILE/DEVICES description will describe the allowable full or partial File Specifications (filespec/partspec, and exclusion -filespec/-partspec), as well as denote if a Device Specification (devspec) may be used. It will also show the condition that the Specification must have for the particular command (active device, existing file, etc). The PARAMETERS section will give a very short description of the allowable parameters dealing with the specific function. This description will generally be very brief, as a complete explanation will be given in detail in the text of that section. Please note that many command parameters may have a default value if they are not specified. This may not be readily apparent, as many operating systems do not allow any parameters for these commands. One example is the PURGE command, with the parameter Q (Query). If the Q parameter is not specified, it will automatically default to Q=Y (Query each file before it is PURGEd). The ABBREVIATIONS line will list all acceptable parameter abbreviations for the function. Note that (ON,YES and Y) and (OFF, NO and N) are completely interchangeable in most commands in the LDOS system. U P P E R / L O W E R C A S E I N L D O S ---------------------------------------------------- The LDOS command interpreter has been endowed with an UPPER/LOWER case conversion feature. It is totally acceptable to enter any filespec, command or parameter in either Upper OR Lower case. If a specific command requires UPPER case only, it will be detailed in the description of that command. This manual shows all Command lines and error messages in upper case. This is strictly an arbitrary convention. The actual LDOS messages will be displayed in UPPER and lower case. USING THIS MANUAL -3- G E N E R A L I N F O R M A T I O N ====================================== Your LDOS Disk Operating System is a user-oriented, device independent, totally supported package. LDOS provides compatibility between the TRS-80 Models I and III, so your data files and BASIC program files will be truly transportable. It also contains many features that have never before been found in a micro-computer operating system. It will be very easy for any owner of TRSDOS to step right up to the LDOS system, as most of the command structure and syntax is similar. However, to get the greatest value out of the system, it will be necessary to read and study the user's manual. This section will deal with generalized conventions that exist throughout the operating environment. It will also give an overall view of the total LDOS system. Let's start by listing some of the hardware related features that you will find when using LDOS. HARDWARE RELATED FEATURES ------------------------- 1) THE KEYBOARD will originally use the ROM keyboard driver. This will provide key debounce and key repeat. The debounce will prevent multiple characters from dirty or loose keyboard contacts. If a key is held down for about 1 second, the repeat feature will automatically repeat that key at the rate of 8 per second. Note that the two keys on the Model III can act separately. Therefore, certain functions will require the use of a specific key. These functions will be indicated as needed in the manual by the use of along with the . The keyboard also has a built-in shift case reversal. Your keyboard characters will normally be entered in upper case. By pressing the and <0> keys together, any key pressed with the held down will appear in lower case. Control characters may be entered by using the and keys as the control key. Simply hold down the shifted-down arrow and press the desired key. The keyboard and KI/DVR ----------------------- LDOS comes with a keyboard driver program called KI/DVR. The use of this driver is mandatory if functions such as Type Ahead, Screen Print, KSM, MiniDOS, LCOMM, and the SVC table are to be used. It is strongly recommended that the KI/DVR program with the TYPE option be active in your runtime system. It requires very little space and will make using LDOS even more pleasant. GENERAL INFORMATION -1- Use of this keyboard driver will speed up the key repeat rate. It will also change the shift case reversal as follows. If typing in upper case, a shifted character will appear as lower case. If typing in lower case, a shifted character will appear as upper case. The <0> keys will switch between the upper and lower case modes. When using the KI/DVR program, the KSM and MiniDOS functions may also be used. Keys may be assigned special commands, functions, or characters with the KeyStroke Multiply (KSM) feature. These associated functions are then available when the and desired unshifted key are pressed together. Due to this, it is necessary to press the to clear the screen. The MiniDOS filter program will give you immediate access to certain LDOS functions, such as a disk directory or free space display, a line printer top of form command, and a disk file kill command. The key will re-select a 5'' disk drive that has "timed out" and hung up the system. This may happen if a drive door was open, or if there was no diskette in the drive, etc. It should prevent having to reset the entire system. Do not use the keys if the system is currently active! 2) THE DISK DRIVES can be 5'', 8'', or hard disk. LDOS will support double/single sides and density, and up to 80 tracks on floppy disks. Of course, you must have the appropriate hardware and drivers for this. NOTE: We recognize that substantial savings can be made by purchasing non-Tandy disk systems for the Model III. We neither encourage or discourage this practice and will make every attempt to support your system regardless of the vendor that provides your drives. However, the floppy disk controller (FDC) must be completely Radio Shack compatible. 3) THE CASSETTE on the Model III can be used in either the 500 or 1500 baud mode. Use of the high speed (1500 baud) mode requires the use of the HITAPE/CMD driver program. Both the LBASIC and CMDFILE utilities allow high speed tape operation. 4) ALL SYSTEM HARDWARE DEVICES are totally independent of the normal routing structure found in most operating systems. Your system devices such as the video display and printer can be routed or linked almost anyway you could desire - to each other, to a disk file, to another device, etc. You can even create your own logical devices! Once you have powered up your system, you can control the boot sequence to some extent. Note that if the key is held down during power up or reset, the computer will immediately enter ROM BASIC. After answering the date prompt, there are several keys that will modify the remaining boot sequence if held down. They are: This key will prevent any configuration file stored on the disk from being loaded. The configuration would have been created and stored with the SYSTEM (SYSGEN) Library command. GENERAL INFORMATION -2- This key will prevent the LDOS video driver from being loaded. The system will use the ROM video driver instead. This may be necessary for certain machine language programs. CAUTION: Using the ROM video driver will cause problems with Type Ahead, LCOMM, the Spooler, and any other LDOS function that uses interrupt processing, and should NOT normally be done!! This key will cause the DEBUGger (non-extended) to be loaded and executed. No configuration file will be loaded, and all memory above X'5200' will be untouched. This key will prevent the execution of any breakable AUTO commands from taking place. Once the system has displayed the message "LDOS READY", it is ready to accept a command from the user. LDOS SYSTEM CONFIGURATION ------------------------- Certain LDOS features can be configured by the user and stored in a disk file. They will automatically be loaded each time the system is powered up or rebooted. The Library command SYSTEM gives a description of the configuration procedure in its (SYSGEN) parameter section. Using the DEVICE library command will show the current system configuration, including active disk drives, device I/O paths, and some user selected options currently active. Once saved on disk, any configuration may easily be changed, deleted, or bypassed if the user desires. FILES, DEVICES, AND LDOS ------------------------ Throughout the manual, you will see references to "filespec" and "devspec". These are abbreviations for "file specification" and "device specification". (Refer to the Glossary for allowable filespecs and devspecs.) Due to the device independence of LDOS, it is possible to interchange these two terms in most Library commands. For example, you can copy your keyboard to your line printer, or to a disk file. You can even append information from a device onto the end of a disk file! Each Library command will give detailed instructions and examples of the interchanging of filespecs and devspecs (if applicable). Certain LDOS Library commands and Utilities allow the use of partspecs (partial filespecs). This will allow you to use the filename and extension fields to create groups of files with common filespecs, and then access these files as a group. LDOS creates "default" extensions in the filespec during some operations. Other operations will use these default extensions when searching for a file. Following is a list of LDOS default extensions along with suggestions for others that may help you "standardize" your file access. GENERAL INFORMATION -3- ASM - The extension used by some Editor/Assembler programs for source files. BAS - Possible extension for BASIC programs. Used by some BASIC compilers. CIM - LDOS default for DUMP command. It stands for Core IMage. CMD - LDOS default for LOAD and RUN commands, and PATCH and CMDFILE utilities. Used to indicate load module format files. COM - Used by some systems to indicate COMpiled object code. DAT - Possible extension for data files. DCT - LDOS default for the SYSTEM (DRIVER) command (Drive Code Table). DVR - LDOS default for the SET command. Usually indicates a "driver" program. FIX - LDOS default for files to be used by the PATCH utility. FLT - LDOS default for files used with the FILTER command. JBL - LDOS default for Joblog files. JCL - LDOS default for the DO command. Stands for Job Control Language. KSM - LDOS default for KSM Utility. Stands for KeyStroke Multiply. OVx - LBASIC extension for Overlay files (Overlay "x"). PCL - Used as a default by Electric Pencil for its text files. REL - Used by some systems to indicate relocatable object code. SCR - LDOS default for Scripsit text files. SEQ - Possible extension for sequential files. SPL - LDOS default for the SPOOL command. SYS - LDOS SYStem files only. Do not use for your own files! TXT - LDOS default for the LIST and DUMP (with the ASCII parameter) command. Stands for TeXT file. LDOS COMMAND INTERPRETATION --------------------------- The LDOS command interpreter will use the following conventions: Drivespecs must always be preceded by a colon, whether used as part of a filespec or as a stand alone parameter. The closing parentheses may be omitted from any of the LDOS commands. GENERAL INFORMATION -4- All commands, filespecs, and devspecs entered in lower case will be converted to upper case before being acted upon. This results in all file names in directory entries being in upper case. LDOS JOB CONTROL LANGUAGE ------------------------- Through the use of the DO Library command and the LDOS JCL (Job Control Language), it is possible to create a sequence of commands and functions, store them in a disk file, and recall and execute them at any time. The JCL will allow for inputs, variables, and conditionals, and even has a screen flash and audio tone alert mode! A JCL file is merely an ASCII file that contains a series of commands or JCL statements. The JCL is an extremely versatile (and somewhat complex) feature of the LDOS system. It will be well worth your time to study the special JCL section and to experiment with the language until you become familiar with it. You will find your day to day operating becomes much easier with a few well thought out JCL files. USE OF LOWER CASE ----------------- LDOS will permit the use of lower case for all command syntax and parameters, except where specifically noted in the manual. The screen messages and prompts will all appear in upper and lower case, even though they are shown as upper case only in the user's manual. COMPATIBILITY WITH EXISTING OPERATING SYSTEMS --------------------------------------------- LDOS has tried to remain upward compatible with TRSDOS like operating systems. Most documented system calls have remained unchanged, and nearly all Basic programs should run unmodified. Total compatibility is not possible, as LDOS cannot control the design of operating systems released by other vendors. LDOS has made every effort to remain upward compatible with TRSDOS-like operating systems, and have provided many utilities and commands to transfer data and files between operating systems. Assembly language programmers now have a Supervisory Call table available, which should guarantee future compatibility between LDOS-like operating systems. To use files created on other operating systems, it is necessary to move them onto diskettes that have been FORMATted by LDOS. The LDOS Utilities BACKUP, REPAIR, and CONV, along with the COPY, COPY (X), LOAD (X) and DUMP Library commands will usually provide the means to transfer your program and data files onto LDOS formatted diskettes. Refer to the individual Utility sections for compatible TRSDOS version numbers. GENERAL INFORMATION -5- **** IMPORTANT **** Under NO circumstances should you use files on other than LDOS FORMATted diskettes in your actual day to day operation. LDOS Support Services cannot support data manipulations on non-LDOS FORMATted diskettes! Disks created under non-TRSDOS operating systems are not guaranteed to be compatible with LDOS. NOTE: LDOS uses a pointer named HIGH$ to show the highest unused memory location. LDOS will never destroy information or utility routines you load into high memory as long as you set HIGH$ with the MEMORY Library command or protect memory when going into LBASIC. Programs that do not honor HIGH$ should not be used unless nothing of importance is to be kept in high memory. The commands DEBUG (E), FILTER, LINK, ROUTE, SET, and SYSTEM, and drivers such as HITAPE do use high memory for certain functions. To see the current HIGH$ value, use the MEMORY Library command. If LDOS has not loaded any routines into high memory, HIGH$ will show X'7FFF', X'BFFF', or X'FFFF' for 16K, 32k, or 48K machines. LDOS always protects its own routines by decreasing the value in HIGH$. USING BASIC WITH LDOS --------------------- Your LDOS diskette comes with an enhanced Disk Basic called LBASIC/CMD. This program contains most of the features of TRSDOS Disk Basic, plus many new features and enhancements. Two utility programs, LBASIC/OV1 and LBASIC/OV2, are included to provide renumbering and cross reference capabilities. Instructions for using all special LBASIC features will be found in the LBASIC section of the manual. For standard Disk Basic operating commands, please refer to a TRSDOS Disk Basic manual. GENERAL INFORMATION -6- L D O S S Y S T E M D E V I C E S ======================================= The LDOS operating system is a truly "Device Independent" system. Each device the system uses has its own DCB (Device Control Block), and is totally independent of the hardware. Each device has its own driver routine, whether located in the BASIC ROM or in RAM memory. An LDOS device is used or created by specifying an asterisk followed by two alphabetic characters. Your original LDOS Master diskette is configured with six devices in the device control table. To view these devices, use the DEVICE Library command. You will see the devices as listed: *KI This is the Keyboard Input (your keyboard). *DO This is the Display Output (your video screen). *PR This is the PRinter output (your parallel printer). *JL This is the Job Log (an output log of commands with a time stamp). *SI This is the Standard Input (presently unused by LDOS). *50 This is the Standard Output (presently unused by LDOS). Note that these are just the LDOS system supplied devices; it is possible for the user to create HIS OWN DEVICES! There is another LDOS device that is referenced in this manual, even though not shown in a "normal" device table. This device is the Comm Line (*CL), and will also be explained in this section. The LDOS Device Independence makes it possible to ROUTE devices from one to another, or even to a disk file. It allows SETting the device to a totally different driver routine. It makes possible single or multiple LINKs of devices to other devices or to disk files. In other words, you may re-direct the I/O between the system, its devices, and the disk drives in almost any manner. **** N O T E **** Once a normal LDOS device has been pointed away from its original driver routine, it may be returned to its normal power up state with the RESET Library command. A user created device may be either disabled or completely removed via the RESET and KILL commands. Refer to these two commands for the exact and allowable parameters. Besides just sounding impressive, this Device Independence feature has many PRACTICAL aspects. For example, the line printer is normally controlled by a very simple driver routine. However, the printer output may be FILTERed with the PR/FLT program supplied with LDOS. LDOS SYSTEM DEVICES -1- This FILTER program allows you to set parameters such as the number of characters per line, the indent on line wrap around, the lines per page, and the page length. If you don't have a printer, simply ROUTE the printer to a disk file and all printing will be saved, enabling you to print it later, on a system with a printer. You could also ROUTE the printer to the display, and see the characters appear on the video instead of going to the printer. Throughout this manual, you will see reference to the terms "device" (or "devspec") and "logical device". These terms represent the six system devices PLUS any devices the user has created. To create a device, please refer to the Library commands LINK, ROUTE, and SET. It is possible to use certain Library commands involving data I/O such as APPEND, COPY, and KILL with device specifications (devspecs) as well as file specifications (filespecs). It is not possible to imagine or describe all situations involving the possible uses and creation of devices. What this section will do is to explain the six LDOS system devices. Any other device interaction or creation will be determined by the individual needs, sophistication, and imagination of the user. *KI - The Keyboard The *KI device is the keyboard. The normal *KI driver provides the keyboard debounce routine, as well as the key repeat and shift case reversal functions. You are advised NOT to ROUTE or LINK the *KI device unless you are EXTREMELY careful. You may inadvertently remove all input to the system or introduce totally unwanted characters. To send the *KI characters to a specific device or file, see the Library commands APPEND and COPY. Several LDOS features do make use of the *KI device. They are the KI/DVR, KSM/FLT, and MiniDOS. These programs allow for such features as Type Ahead, Screen Print option, a KeyStroke Multiply option, and key recognition for KSM and other functions. The address of the *KI driver routine will be changed to a location in high memory if any of these functions are used, or if *KI is ROUTEd, SET, or LINKed. *DO - The Video Display. The *DO device is the video display. The normal *DO driver address will be located in RAM, and can be displayed with the DEVICE Library command. If the DOWN ARROW key is held down during booting, it will prevent the LDOS video driver from being loaded and the system will use the ROM video driver instead. This may be necessary for certain machine language programs. CAUTION: Using the ROM video driver disables interrupts and will cause problems with Type Ahead, LCOMM, the Spooler, and any other LDOS function that uses interrupt processing, and should NOT normally be done!! Note that the *DO driver routine address will also change if *DO is involved in a ROUTE, SET, or LINK. LDOS SYSTEM DEVICES -2- If you wish to send a screen display to a disk file, there are some simple ways to accomplish this. You can ROUTE the printer (*PR) to a disk file, and then LINK *DO to *PR. This will send ALL screen displays (including errors - backspace characters, etc.) to the printer, which is ROUTEd to a file so the output will really go to the disk. You could also enable the screen print function and ROUTE the printer to a disk file. By pressing the and the <*> keys, the current screen display will be sent to the printer, and actually be written to a disk file. The *DO may also be LINKed to a disk file using a "phantom" user device (see the LINK Library command). *PR - The Line Printer. The *PR device is the line printer. This device may be SET to other drivers or ROUTEd to disk files very easily in the LDOS system. A printer FILTER program is supplied on your LDOS Master diskette, and is called PR/FLT. This program will allow you to set page size, line length, line indent on wrap around, and many other parameters. The operation of this driver routine is detailed in the FILTER section of the manual. You may also use the SPOOL Library command to create disk and/or memory buffers to store information being sent to *PR and SPOOL it out as *PR becomes available (i.e. not in a BUSY state, such as printing a line). *** N O T E *** If *PR is ROUTEd to a disk file or the display, it is not necessary to have a line printer physically hooked to the system. All I/O to the printer will be sent to the appropriate device or file, and no lock up will occur. *JL - The Job Log. The *JL device is the system's Job Log. This unique feature will keep a log of all commands entered or received, along with the time they occurred. The time is determined by the setting of the Real Time Clock, and may be set or changed with the TIME Library command. To enable *JL, use the SET command to SET *JL to its driver program called JL/DVR (see the section on DEVICE DRIVERS). Every command or request processed through the LDOS command line interpreter will then be logged in the *JL file, along with the time of the request. You may also enter comments or data directly into the Job Log by using an LDOS comment line (any line beginning with a period), or by opening a Job Log file from BASIC and writing to it. The Job Log may be turned off by RESETting *JL, which will also close the associated disk file. CAUTION: If the Job Log is routed to a disk file, it should NOT be SYSGENed. LDOS SYSTEM DEVICES -3- *SI - The Standard Input. *S0 - The Standard Output. The *SI and *SO devices are system generated devices provided by LDOS, although they are not presently used by the system. Both devices will initially be shown pointed (NIL). These devices are available to the user. *CL - The Comm Line. **** N O T E **** This device has been designated *CL strictly for the purpose of standardizing examples throughout this manual, although any other available devspec could have been used (such as *RK, *CJ, *RS, *TM, etc). The *CL device is the system's Communication Line. This device will allow characters to be sent and received using the RS-232 interface. The *CL will not normally be shown in the device table, but is always available to the user. To enable *CL, simply SET it to an appropriate driver program. There is an RS232T/DVR program supplied on your LDOS disk. Please note that the LCOMM/CMD program examples also uses *CL as its RS-232 link (see the LCOMM utility program). Whenever I/O is needed via the RS-232 interface, the *CL will provide it. The RS-232 driver program allows *CL to interface between the LDOS system and external devices such as a serial line printer, an acoustic coupler (commonly called a MODEM), a hard wired telephone data set, a paper tape reader, etc. Please refer to the RS-232 Device Driver section for a complete description of the allowable configurations of the *CL lines. LDOS SYSTEM DEVICES -4- T H E L D O S L I B R A R Y Your LDOS operating system contains a set of commands which direct the overall operating environment. These commands are called LIBRARY COMMANDS. They interface between the extremely complex code of the operating system and the simple one line command entered by the user. These LIBRARY COMMANDS are listed in the Table of Contents, and also in the Library Command LIB. They are divided into two groups, the PRIMARY and the SECONDARY (or Extended) Library Commands. Each of these Library sections resides in a different module of the operating system. In this manner, you may delete the module containing the particular Library Commands (if they are not needed), thereby freeing extra space on your diskette. The Primary Library Commands are contained in the module SYS6/SYS. It may be deleted if none of the commands will be used during operation. The Secondary (or Extended) Library commands are contained in the module SYS7/SYS. If the commands contained in the Extended Library are not needed, you may delete this module. The next section of the manual gives detailed descriptions of all Library commands. The name of the command can be found directly above the page number on the bottom of each page. Those commands preceded by an asterisk are Extended Library commands. THE LDOS LIBRARY A P P E N D =========== This command lets you APPEND (add) one file onto the end of another. Its primary use is with data files or ASCII-type text files. Files that are in load module format such as "CMD" or "CIM" type files, cannot be APPENDed using APPEND. (To APPEND these types of files refer to the "CMDFILE utility" in the UTILITY section.) The syntax is: ============================================================ | APPEND filespec1 TO filespec2 (STRIP) | | APPEND devspec TO filespec (ECHO,STRIP) | | | | ECHO is an optional parameter that will echo the | | characters to the screen when APPENDing a | | device to a file. | | | | STRIP is an optional parameter that will backspace | | the destination file 1 byte before the APPEND | | begins. | | | | filespec1 and filespec2 are valid LDOS file | | specifications. | | | | devspec is any valid, active device capable | | of generating characters. | | | | abbr: ECHO=E | | | ============================================================ APPEND copies the contents of file1 onto the end of file2. File1 is unaffected, while file2 is extended to include the contents of file1. The files must each have the same Logical Record Length or the APPEND will be aborted with the error message "FILES HAVE DIFFERENT LRLS" and neither file will be touched. For example, suppose you have two customer lists stored in data files WESTCST/DAT and EASTCST/DAT. You can add the WESTCST/DAT file onto the end of EASTCST/DAT file with the command: APPEND WESTCST/DAT TO EASTCST/DAT EASTCST/DAT will now be extended to include WESTCST/DAT, while WESTCST/DAT will remain unchanged. You can also APPEND a device (capable of sending characters) to a file. For example: APPEND - LIBRARY COMMAND -1- APPEND *KI TO WESTCST/DAT This command will cause characters that are input on the keyboard to be APPENDed to the file WESTCST/DAT. Depressing the key at any time will terminate this type of APPEND. Note that the keystrokes will not be shown on the display during this APPEND, as ECHO was not specified. APPEND *KI TO WESTCST/DAT (ECHO) This example will perform identically to the last one, except that any key typed will also be echoed to *DO (the video screen). APPEND PAGE2/SCR TO PAGE1/SCR (STRIP) This example would APPEND PAGE2/SCR to the end of PAGE1/SCR in the following manner. PAGE1 would be backspaced 1 byte, in effect allowing the first byte of PAGE2 to overwrite the last byte of PAGE1. This would be necessary when APPENDing files such as SCRIPSIT files that have an internal End of File marker in the file. If the STRIP parameter was not used, SCRIPSIT would load the APPENDed file only up to the first End of File marker, and ignore the APPENDed PAGE2 file. APPEND - LIBRARY COMMAND -2- * A T T R I B ============= This command allows you to alter or remove the protection status of a file by changing passwords and/or the degree of access granted by a password. ATTRIB also allows the defining of whether a filename will be visible or invisible when a normal directory of the disk is displayed. ATTRIB will also allow you to alter the diskette name, Master password, and Lock or Unlock all Visible, non-SYStem files. The syntax is: ============================================================= | ATTRIB filespec.password:d (ACC=a,UPD=b,PROT=c,VIS/INV) | | ATTRIB : d (LOCK,UNLOCK,MPW="aa",NAME="bb",PW="cc") | | | | For filespec ATTRIBs, use the following parameters: | | | | password = UPDate password, used only if a password | | already exists. | | | | ACC= ACCess password | | | | UPD= UPDate password | | | | PROT= the PROTection level | | | | VIS VISible file in directory | | | | INV INVisible file in directory | | | | abbr: ACC=A, UPD=U, PROT=P, VIS=V, INV=I | | | | For disk ATTRIBs, use the following parameters: | | | | :d is an optional drivespec, defaults to 0. | | | | LOCK LOCKs all VISible non-SYStem files by changing | | the ACCess and UPDate passwords to the Master | | Password of the disk. | | | | UNLOCK This parameter removes the ACCess and UPDate | | passwords from VISible, non-SYStem files. | | | | MPW= Allows passing the disk's current Master | | Password in the command line. | | | | NAME Allows changing the disk name. | | | | PW= Allows changing the disk Master Password. | | | | abbr: NONE | | | ============================================================= * ATTRIB - LIBRARY COMMAND -1- This section will deal with ATTRIBing a filespec. ------------------------------------------------- The levels of PROTection associated with the passwords are as follows: LEVEL PRIVILEGE ============================================== EXEC EXECute only READ READ, execute WRIT WRITe, read, execute NAME reNAME, write, read, execute KILL All access except re-ATTRIB ALL Allows total access FULL Same as ALL ============================================== The PROTection levels form a hierarchy, with the highest PROTection level (EXEC) allowing the least amount of ACCess. When you create a file, the password you specify becomes both the access and update password. (If you don't specify a password, a string of 8 blanks is assigned as a default password for both access and update.) The parameters UPD, ACC, PROT, VIS and INV may be abbreviated to their first character U, A, P, V, and I respectively. The levels of PROTection (abbreviated P) may be abbreviated to their first TWO characters; KI used instead of KILL, EX used instead of EXEC, etc. The word which follows the "ACC=" is the ACCess password, and will grant ACCess up to and including the level of PROTection that is specified. The password that follows the "UPD=" is the UPDate password and always allows FULL access to the file. If the VIS or INV parameters are not specified in an ATTRIB command, they will remain unchanged. If the file is currently VISible, it will remain so, and vice versa. ATTRIB sets or changes the protection of a file which already exists on a disk. There are several ways to use this feature. Here are some examples of the use of ATTRIB: ATTRIB CUSTFILE/DAT:0 (ACC= ,UPD=BOSSMAN,PROT=READ,VIS) ATTRIB CUSTFILE/DAT:0 (A=,U=BOSSMAN,P=RE,V) This will protect the file CUSTFILE/DAT on drive 0 so that it can only be READ by a file read routine. No password will be required to open and READ the file because the ACCess password has been set to "null" by placing no password after "ACC=". It can't be changed or written to in any way unless the UPDate password (BOSSMAN) is used when specifying the file, in which case full ACCess would be given. Notice that the file will be VISible in the directory. * ATTRIB - LIBRARY COMMAND -2- ATTRIB ISAM/BAS:0 (ACC=,UPD=SECRET,PROT=EXEC,INV) ATTRIB ISAM/BAS:0 (A=,U=SECRET,P=EX,I) After execution of this command no one will be able to LIST this program when it is brought into BASIC, because the PROTection level for the ACCess password has been set to EXECute only. The only way this file can be read into the computer is with "RUN" in BASIC (RUN "ISAM/BAS"). Notice no password is needed to RUN the program as none was set with the "ACC=" parameter of the ATTRIB command. This file cannot be LOADed, LISTed or PRINTed without using the UPDate password SECRET. FULL ACCess will be granted if the file is specified as ISAM/BAS.SECRET because the UPDate password has been given. The UPDate password will allow complete access regardless of the PROTection level that has been set. Notice that this file will be INVisible in the directory because the INV parameter has been specified. EXAMPLE: RUN"ISAM/BAS" Any attempt to look at this file after it is loaded and RUN will cause the program to be deleted from memory. LISTing or LLISTing the program cannot be done in the normal manner unless the program is loaded using the password SECRET. ATTRIB ISAM/BAS.SECRET:0 (ACC=NOWAY,UPD=SECRET,PROT=EXEC,INV) ATTRIB ISAM/BAS.SECRET:0 (A=NOWAY,U=SECRET,P=EX,I) This command will do the same thing to this BASIC file except that now the only way to get the program into memory, even to RUN it, is to know the ACCess PASSWORD of NOWAY. EXAMPLE: RUN"ISAM/BAS.NOWAY" It will now be brought into memory and executed but it cannot be LISTed. Any attempt to interrupt the execution of the program will cause the program to be erased from memory. ATTRIB ISAM/BAS SECRET:0 (ACC=,UPD=,VIS) ATTRIB ISAM/BAS.SECRET:0 (A=,U=,V) This command will get rid of all passwords and make the file ISAM/BAS visible in the directory. Notice that the UPDate password of SECRET was required to re-ATTRIB the file. ATTRIB HOST/CMD:0 (INV) ATTRIB HOST/CMD:0 (I) This command will make the file invisible to the normal directory command DIR, without assigning any passwords to the file. To see an invisible file type DIR :d (I). * ATTRIB - LIBRARY COMMAND -3- The following section deals with ATTRIBing a disk. -------------------------------------------------- The ATTRIB command will allow you to change the disk name, the disk Master Password, and the PROTection attributes of all VISible and non-SYStem files. Any time the ATTRIB command is used, the disk's current Master Password must be supplied. You will be prompted to enter the current Master Password, if it is other than "PASSWORD" and not passed with the MPW parameter. ATTRIB :0 (UNLOCK, NAME="MYDISK") This command will remove all ACCess and UPDate passwords from the user's VISible non-SYStem files on drive 0. It will also change the disk's name to MYDISK. Since the current Master Password was not specified with the MPW= parameter, you will be prompted for it before this command is actually executed, if it is other than PASSWORD. ATTRIB :1 (NAME="DATA",PW="SECRET",MPW="BOSSMAN") This command will change the name of the disk in drive 1 to DATA. It will also change the Master Password to SECRET. Note that the current Master Password was specified as BOSSMAN with the MPW= parameter. ATTRIB (LOCK) This command will first prompt you for the disk's Master Password, if other than PASSWORD. It will then change the ACCess and UPDate passwords of all the user's VISible, non-SYStem files to the disk's current Master Password. This command will be carried Out on drive 0, as no drivespec was used. ATTRIB :1 (NAME) This command will first prompt you for the drive 1 disk's Master Password, unless it is PASSWORD. It will then prompt you for the new name to be given to the disk. * ATTRIB - LIBRARY COMMAND -4- * A U T O ========= The AUTO command lets you modify the power up sequence, by specifying a command to be executed immediately after power-up, reset or BOOT. The syntax is: ============================================================= | AUTO *dos-command | | | | * is optional and if used will disable the ability | | of to break the execution of the AUTO | | dos-command and also disable the key. | | | | dos-command can be any executable LDOS command | | with or without parameters up to 32 characters | | in length. | | | | abbr: NONE | | | ============================================================= If the AUTO *dos-command has disabled the key, it is possible to re-enable the after the AUTO command has finished execution. See the SYSTEM (BREAK=ON) LIBrary command for complete instructions. Here are some examples of the use of the AUTO command. AUTO LBASIC Will write the command LBASIC as an "AUTOmatic key-in" on the drive 0 diskette, replacing any previous AUTOmatic key-ins. From that point on, every time you power up using that LDOS diskette or press the reset button, LBASIC will AUTOmatically be loaded into memory and executed. An AUTOmatic key-in takes the place of a keyboard input, just as though the command had been typed in and had been pressed. AUTO *DO INIT/JCL:0 After this has been written to the drive 0 disk, power-up or pressing the reset button will cause the DO file INIT/JCL:0 to be executed, which will allow several commands to be executed AUTOmatically (see DO command and JCL). Note the asterisk immediately preceding the command. This is optional; when used it will disable the ability of the key to break or halt the AUTOed command. The key will also be disabled from this point. * AUTO - LIBRARY COMMAND -1- To restore the power up sequence to the normal LDOS READY, type: AUTO This will eliminate any stored automatic key-in by removing it from its storage place on the disk. *** N O T E *** You can override any breakable AUTO function during power up or reset by holding down during initialization. This may be your only way of regaining control of the system, if the dos-command is not a working program. If the AUTO function disables the key and the AUTOed program is non-functional, it may seem impossible to regain control of that disk. Should this occur, simply BOOT another (non-AUTOed) disk in drive 0. When the LDOS READY appears, place the non-functional disk in drive 0, type AUTO, and press . The runaway AUTO function will then be removed from that disk. * AUTO - LIBRARY COMMAND -2- * B 0 0 T ========= This command causes the disk in drive 0 to be BOOTed into the system. It has the same effect as the reset pushbutton switch or a power up condition. The syntax is: ============================================================= | BOOT | | | | Holding down the indicated key during the BOOT will | | result in the following actions: | | | | No SYSGENed configuration will take place. | | | | The video driver used will be the ROM | | driver, rather than the LDOS driver. | | | | No breakable AUTO commands will be done. | | | | The system DEBUGger will automatically | | be entered. Note that no SYSGENed | | configuration will be loaded. | | | | abbr: NONE | | | ============================================================= NOTE: Only double density diskettes may be used to BOOT the Model III LDOS operating system. Holding down the key during BOOTing will prevent the LDOS front end to the video driver from being loaded. The system will use the ROM video driver instead. This may be necessary for certain machine language programs. CAUTION: Using the ROM video driver will cause problems with Type Ahead, Lcomm, the Spooler, and any other LDOS function that uses interrupt processing, and should NOT normally be done!! By typing this command, the LDOS system disk in drive 0 is BOOTed back into the system. All devices will be returned to their normal power up configuration as if the system had been turned off and then turned on again. Any required FILTERing, LINKing, ROUTING, SETting or setting of SYSTEM parameters must be done again at this point, unless a SYSTEM config file has been generated on drive 0 by the use of "SYSTEM (SYSGEN)" (See SYSTEM command). If the DATE has not been set, it will be asked for at this time. If the system has been SYSGENed, the user configuration will be loaded and executed at this time, and any AUTOed commands will be done. * BOOT - LIBRARY COMMAND -1- * B U I L D =========== This command allows the user to BUILD a file of desired character strings and save this file under any valid filespec. BUILD is in the system mainly to BUILD ASCII files for use with the DO, KSM and PATCH features of LDOS, although you may BUILD files containing any characters X'00 to X'FF' with the HEX option. The syntax is: ============================================================= | BUILD filespec (HEX,APPEND) | | | | filespec is any valid LDOS filespec | | | | HEX optional parameter allowing a "packed" | | HEXadecimal format only. | | | | APPEND optional parameter that allows APPENDing | | the BUILD data to the end of existing files. | | | | abbr: NONE | | | ============================================================= The BUILD command is used to create a file (or APPEND to an existing file), a series of commands, comments, or character strings entered from the keyboard. If the filespec does NOT contain a /ext (extension), the system will automatically assign a "default" extension of /JCL, for Job-Control-Language (see DO and JCL). If a file with the identical name exists, the BUILD command will abort with the error message "File already exists", unless the APPEND parameter has been specified. If the APPEND parameter is used, the existing file must have been created with the BUILD command, or be in ASCII format. Should the user wish to create a KSM type file (see KSM utility), the file extension should be /KSM. This will tell BUILD to prompt you with each key identifier as you enter what you wish that key to represent. This type of BUILD is detailed in the section on the KSM utility. After the file has been opened, all characters that are typed will be placed in the file just as they appear on the video. Lines are limited to a length of 255 characters. Each line that is entered should be terminated by pressing the key. The BUILD will end and the file will be written to the disk when the key is pressed as the first character of any new line. NOTE: No line in a JCL file should exceed 63 characters in length. The HEX parameter will allow you to enter characters other than those directly available from the keyboard. Any one byte character value may be entered in the HEX format "nn". The line length during a HEX BUILD will be 254 characters, allowing 127 HEX notation characters to be entered. The HEX parameter uses a "packed" format, with NO spaces or delimiters between bytes. * BUILD - LIBRARY COMMAND -1- For example, you could create a character string containing graphics characters in the following manner: 818A90A10D This HEX format line contains the HEX bytes 81, 8A, 90, and A1. Note that the byte values are entered "packed" together, with no spaces or other delimiters between them. One of the possible uses for this format may be to build graphics strings to be used with the KSM function. If a file is to be used with the KSM function, do NOT embed the bytes 0D or 3B in the string, as these represent the Carriage Return and Semi-colon characters, unless you actually intend for these characters to be present. They will be acted upon by the KSM file as end of line (0D) and embedded character (3B). Note that each logical line must be terminated with a 0D. Therefore several "logical lines" may appear on each "physical line". Each logical line is terminated with a 0D in the entered string, and each physical line terminated by pressing . The does not terminate the logical line. EXAMPLE: F50DF10DFA0D This would represent three logical lines in a KSM type file. Notice the three 0D's in the string. IMPORTANT: The HEX parameter will not cause the file to be stored in load module format; it will remain a normal ASCII image type file, even though some of the characters may be well out of the pure ASCII range. When BUILDing files other than KSM or HEX, the line input length should be limited to 63 characters (for clarity). The BUILD will be terminated when the key is entered as the first character in a line. Following are some examples of the BUILD command. BUILD THISFILE:2 This will check drive 2 for a file named THISFILE/JCL. If it exists, a "File already exists" error will occur. Otherwise, the file will be opened on drive 2. Note that the default extension /JCL was used, as no extension was specified. All JCL files require less than 64 characters per line to be entered. BUILD MYKEYS/KSM This command will search all available drives for a file named MYKEYS/KSM. If the file exists, a "File already exists" error will occur. Otherwise, this file will be created on the first available drive. Since the extension was specified as KSM, the prompts A>, B>, C>, D>, etc. will appear one at a time so each of the alphabetic characters may be assigned the character string(s) they are to represent (see KSM). This BUILD will terminate after the letter Z, or when a is used as the first character of a line. * BUILD - LIBRARY COMMAND -2- BUILD SPECIAL/:0 This will BUILD a file using the name SPECIAL with no extension. Using the "/" with no following characters is the only way to BUILD a file without an extension (defeating the default /JCL extension). Note that the file SPECIAL cannot already exist, or an error will be generated. BUILD MYJOBS/JCL (APPEND) This command would search all available drives for a file named MYJOBS/JCL. If not found, it would be created on the first available drive. If the file already existed, any input from the BUILD would be APPENDed onto the end of the file. This is the way, for example, to extend an incomplete JCL file. BUILD DISPLAY/BLD (HEX) This command would BUILD a file allowing the use of the "packed" HEX format. The file must not already exist, or an error will be generated. Information may be entered into this file as HEX bytes, and will be stored as a normal BUILD format file. This format will allow 127 HEX byte representations per physical line. Logical lines may continue on more than one physical line as long as a 0D does not appear, which would terminate the logical line. The is used to terminate a physical line. If a non-hex digit is entered, the error message "BAD HEX DIGIT ENCOUNTERED" will be displayed, and the build will abort. BUILD MYPROGA/FIX:0 This would BUILD a file with the desired extension of /FIX for use with the PATCH utility (see PATCH). * BUILD - LIBRARY COMMAND -3- * C L 0 C K =========== This command turns on or off the screen display of the real time clock. The syntax is: ============================================================= | CLOCK (switch) | | | | switch The switch ON or OFF | | | | abbr: ON=Y, OFF=N | | | ============================================================= When you enter in this command it will activate a background task and display the "real time" clock in the upper right corner of the screen, at print locations 54 to 61. This clock is under software control and is fairly accurate. The clock will only run in the 24 hour mode, but will not automatically update the date every 24 hours. It can be established at LDOS READY using the TIME and DATE commands) or the TIME and DATE values may be POKEd in from LBASIC. (See TIME and DATE) The "real time" clock will be turned off while the LDOS system is doing some of its disk I/O functions, like BACKUP and FORMAT. You will be notified of this by the message: NOTE: REAL TIME CLOCK NO LONGER ACCURATE This message notifies the user that the real time clock has lost several seconds or more, because the system had to turn off the hardware clock during certain critical functions and is no longer exact. The CLOCK display may also be turned on and off with the keys if the MiniDOS filter is active. *** N O T E *** It should be noted that the CLOCK in the upper right hand corner of the screen will take precedence over whatever BASIC may attempt to print at the screen locations occupied by the display. * CLOCK - LIBRARY COMMAND -1- C O P Y ======= Copies data from one file or device to another file or device. The syntax is: ============================================================= | COPY filespec1 TO filespec2 (LRL=nnn,CLONE) | | COPY filespec1 TO partspec (LRL=nnn,CLONE) | | COPY filespec1 TO :d (LRL=nnn,CLONE) | | COPY filespec:d (X) | | COPY devspec TO filespec (LRL=nnn,ECHO) | | COPY devspec TO devspec (ECHO) | | COPY filespec TO devspec | | | | LRL is an optional parameter, where nnn= the | | logical record length at which filespec2 | | is to be set (1 to 256). | | | | CLONE indicates the desire for an exact duplicate | | of the directory entry of filespec1. All | | ATTRIButes will be COPYed with the file. | | | | ECHO will cause any characters copied from a | | devspec to be echoed to the screen. | | | | X is an optional parameter that will allow | | a single drive copy from a non-system | | diskette. | | | | abbr: LRL=L, CLONE=C, ECHO=E | | | ============================================================= The COPY command in LDOS is greatly enhanced and expanded over similar commands in other systems. The user of LDOS should become familiar with this important command as it is used in the LDOS system so the full power of this feature can be utilized. Special attention should be given to the ECHO, LRL and CLONE parameters, which are totally NEW to the COPY concept. LRL is a parameter that allows the establishment of a new Logical Record Length for a file during the COPY process. If not specified LRL will default to the LRL of the file being copied. This can be very useful when restructuring data files and for changing ASCII type files to be compatible from one application to another. It may also be needed when converting a SOURCE file from one language to another to allow the file to be read by another application language. CLONE provides a feature that has never before been available to the TRS-80 user. When the CLONE parameter is used, COPY will not only duplicate the contents of the file but will also duplicate the DIRectory entry. The ACCess and UPDate passwords will be COPYed as well as the assigned PROTection level, the VISibility, the CREATE flag, and the MODified status of the file. COPY - LIBRARY COMMAND -1- If CLONE is NOT used, and an existing destination file was being copied over, the attributes of the destination file (except for the date) will be unchanged. If the COPY command creates a new file, any password included will become both the ACCess and UPDate password of the destination file, and the file will be VISible, even if the file it was copied from was INVisible. See ATTRIB for more on file ATTRIButes. ECHO can only be specified when the source for the copy is a device. If specified, all characters will be echoed to the screen as they are sent to the destination file or device. The X parameter provides a means of COPYing between two non-system diskettes. During this copy, the user will be prompted to switch disks as necessary. See the example of an X parameter copy at the end of this section. How COPYs are DATEd in the DIRectory is also very important. Files that are COPYed with the CLONE parameter will not have their DATE touched. The same last-written-to date that appeared in the original will be moved to the CLONE-COPYed file. If the CLONE parameter is not specified, the DATE that was set as the SYSTEM DATE at BOOT will be written to the DIRectory as the last-written-to date for the COPYed file. In all of the following examples, the use of the word TO between filespecs or devspecs is optional. Sped and spec2 need only be separated by a single space. EXAMPLES OF COPYing: filespec1 TO filespec2 ------------------------------------------- Note that when COPYing files, if filespec2 already exists on the destination drive, it will be overwritten by the COPY. When COPYing files, the filename, extension, and password of filespec2 will automatically default to those of filespec1 if they are not specified. See the following examples. COPY TEST/DAT:0 TO TEST/DAT:1 COPY TEST/DAT:0 TO /DAT:1 COPY TEST/DAT:0 TO TEST:1 COPY TEST/DAT:0 :1 These four commands will execute identical copies. All parts of filespec2 will default to those of filespec1 if not specified. The use of the word TO is optional in any COPY command. COPY TEST/DAT TO :1 This command will search the disk drives until it finds a file named TEST/DAT and then COPY it onto drive 1, using the filespec TEST/DAT. COPY - LIBRARY COMMAND -2- COPY TEST/DAT.PASSWORD:0 TO :1 This command would COPY the password protected file TEST/DAT.PASSWORD from drive 0 to drive 1. The file on drive 1 will be named TEST/DAT.PASSWORD. Remember that ALL parts of filespec2 will default to those of filespec1 if they are not specified. COPY TEST/DAT:0 TO TEST/DAT.CLOSED:1 COPY TEST/DAT:0 TO .CLOSED:1 These commands will COPY the file TEST/DAT from drive 0 to drive 1. The file on drive 1 will be named TEST/DAT, and have the update and access passwords set to CLOSED. Notice that the second command dynamically assigned the name and extension of filespec1 to filespec2 and then added the password CLOSED. If a password exists on the file being COPYed it cannot be changed during a COPY. To change a password see ATTRIB. COPY MYPROG/BAS.MYNAME:0 :1 (CLONE) This will COPY the file MYPROG/BAS.MYNAME from drive 0 to drive 1. The CLONE parameter has been specified so both ACCess and UPDate passwords plus the MOD flag, the VISibility status and the PROTection level will be transferred with the file from drive 0 to drive 1. The last-written-to date in the original file on drive 0 will also be transferred. COPY TEST/DAT:0 TO MYFILE:1 This command would COPY the file TEST/DAT from drive 0 to drive 1, with the file on drive 1 named MYFILE/DAT. Notice that the extension of filespec2 was not specified and defaulted to /DAT. COPY TEST/DAT:0 TO MYFILE/:1 This command will COPY the file TEST/DAT from drive 0 to drive 1, with the file on drive 1 named MYFILE. There will be no extension on MYFILE because the "/" with no other characters was specified in filespec2. COPY DATA/NEW:0 TO /OLD:0 This command will COPY the file DATA/NEW from drive 0 to a file named DATA/OLD on drive 0. The filename was not specified for filespec2 and defaulted to that of filespec1 (DATA). COPY - LIBRARY COMMAND -3- COPY DATA/V56:0 TO DATA/V28:1 (LRL=128) This command will COPY the file DATA/V56 on drive 0 to a file called DATA/V28 on drive 1. These two files will contain the same data but the logical record lengths will not be the same. We will assume that the original file had a record length of 256. This would be a normal Model III TRS-80 "random" type data file. The file DATA/V28 will be created by the COPY and will have a record length of 128 bytes. This ability to reset the LRL of a file is very useful when converting data to be used by a "BASIC" that can deal with BLOCKED files (record lengths less than 256), such as the BASIC you run with LDOS. This function is also necessary when you wish to APPEND two files but cannot because they have different logical record lengths. By COPYing one of these files and setting the LRL parameter to the desired length, the record length can be adjusted and the APPEND will then function. COPY MANUAL/TXT.JWY:0 TO :1 (L=128,C) This command will copy the file MANUAL/TXT with the password JWY from drive 0 to drive 1. In the process of doing the COPY the Logical Record Length (LRL) will be changed from whatever it was to 128. Note that the LRL parameter was abbreviated to L in the above example. The CLONE parameter was also specified using the abbreviation C, so all of the file's ATTRIButes and the file's DATE will be carried over in the CLONE mode, as described above. COPY CONTROL:0 /ASC:1 (LRL=1) This will COPY the file CONTROL to CONTROL/ASC on drive 1. The Logical Record Length of the file will be changed from whatever it was in CONTROL to 1 byte in length. This is an excellent way to convert a data file to a file that could be handled by a word processor (providing the data file was ASCII to start with). EXAMPLES OF COPYing: devspec to devspec --------------------------------------- When COPYing from devspec to devspec, it is very important that all devices specified be assigned and active in the system. Any ROUTEing or SETting that has been done to the devices may affect the COPY. Some caution is necessary when COPYing between devices, as non-ending loops can be generated and lock up the system. In other words, PLEASE do not involve devspecs in your copies unless you thoroughly understand the procedures and constraints involved. Destruction of files and/or locking up the system could easily result from lack of user understanding when using this complex structure of the COPY command. Following are a few examples of possible devspec to devspec copies. The results produced by these copies may possibly be duplicated through the use of other LDOS commands (such as ROUTE and/or LINK). COPY - LIBRARY COMMAND -4- COPY *KI TO *PR This command will COPY the keyboard to the printer. As keys are pressed, they will be sent to the line printer. Depending on the printer, the characters may be printed immediately or may require that a linefeed/carriage return be sent before printing. The keystrokes will not be visible on the video because the ECHO parameter was not specified. COPY *CL TO *PR (E) This command will COPY *CL (the RS-232 Comm Line) to *PR (the line PRinter). Each character that is received by the RS-232 will be processed by the RS-232 driver and then presented to the line printer. Since the ECHO parameter (E) was specified, each character will also be echoed to the screen. Prior to executing this command, *CL must have been SET to an appropriate DRIVER. EXAMPLES OF COPYing: filespec/devspec TO devspec/filespec --------------------------------------------------------- As with COPYing devspec to devspec the following examples are intended more for showing the vast abilities of the system rather than being considered as the only method of accomplishing a result. COPY *KI TO KEYIN/NOW:0 This would allow the sending of all keyboard entries to the disk where they would be stored in a file named KEYIN/NOW. There is a catch here; because the characters that are typed are going directly to the file, they will NOT appear on the screen. To view the characters, specify the ECHO parameter. To terminate this COPY you should depress the key. The file will then be closed and LDOS Ready will appear. COPY ASCII/TXT:0 TO *PR This command will COPY the contents of the file ASCII/TXT to the line printer. Although this command is functional, it would give the same output as would LIST with the (P) parameter. The COPY in this example will terminate automatically when the end of the file is reached. EXAMPLES OF COPYing with the X parameter: ----------------------------------------- The command COPY filespec:d (X) is similar to a regular COPY, except that the X parameter will allow transferring a file from one diskette to another without requiring an LDOS system present on either diskette. COPY - LIBRARY COMMAND -5- The colon and drive number are optional so that you can choose to COPY a file on some drive other than drive 0. This command requires swapping diskettes several times in order to utilize the LDOS operating system modules to perform the transfer. You will be prompted for the correct diskette and when to insert it into the drive doing the COPYing. The prompts are as follows: INSERT SOURCE DISK (ENTER) = The disk that contains the file to be COPYed. INSERT SYSTEM DISK (ENTER) = This is any LDOS SYSTEM diskette. If the diskette which is currently in drive ~ contains the complete system, just press . INSERT DESTINATION DISK (ENTER) = This is the diskette to receive the file. You must have enough space left on that diskette to contain the entire file to be COPYed. Under certain conditions, this prompt may appear twice in a row. You cannot COPY (X) logical devices, only disk files. The disk files can be any type file made with any LDOS compatible operating system. Note that the source and destination disks MUST have different pack IDs (disk name and/or master password). After the COPY (X), the destination disk file will have its ATTRIButes set as follows: The file will be VISible, whether the source file initially was or not. If a password is entered on the command line, the destination file will automatically have this password set as its UPDate and ACCess passwords. If no password is specified for the source or destination file, then the destination will have no password protection set. The correct ATTRIButes for the destination file may be re-applied with the ATTRIB command. COPY - LIBRARY COMMAND -6- * C R E A T E ============= This command allows the creation of a file of the type and size that is requested by the parameters. The syntax is: ============================================================= | CREATE filespec (LRL=aaa,REC=bbbb,SIZE=cccc) | | | | LRL= This is the Logical Record Length to be used. | | It must be an integer in the range 1 to 256 | | (default LRL=256). | | | | REC= This is the number of RECords of length LRL | | to be allocated to the file. | | | | SIZE= This is the amount of space in K (1024 byte) | | blocks that the file is to be able to hold. | | SIZE should not be specified if LRL or REC are. | | | | abbr: LRL=L, REC=R, SIZE=S | | | ============================================================= The CREATE command is used to pre-CREATE a file of a specified type and size. This allows the file to be as contiguous as possible on the disk and limits the number of disk accesses that must be performed when dealing with the file. This pre-CREATE of a file also assures that the expected amount of space on the disk will be available for use by this file. This file will be dynamically expanded if the CREATEd size is exceeded, but it will never decrease in size below its current size. A file cannot be CREATEd that would require more space than is available on a disk. Remember, if a drivespec is not used, the system will attempt to create the file on the first available drive. NOTE: if a file has been CREATEd, doing a DIRectory command with the (A) switch set will show: For a CREATEd file - S: nnK For a normal file - S= nnK The normal equal sign (=) will be replaced by a colon (:) to indicate that the file length is the result of a CREATE rather than the actual size of the data in the file (see DIR command for a complete display example). CREATE NEWFILE/DAT:0 (LRL=128,REC=100) This command will CREATE a file named NEWFILE/DAT on drive 0. It will have enough space allocated to accommodate 100 records of 128 bytes each. * CREATE - LIBRARY COMMAND -1- CREATE ASCII/DAT:2 (LRL=1,REC=5120) This command will CREATE a file named ASCII/DAT in which records will have a length of 1 byte, and there will be space taken on the disk for 5120 (5K) of these one byte records. CREATE MAIL/DAT:3 This command will CREATE the file MAIL/DAT on drive 3. There will be no space assigned to the file at this time. The file name is merely placed in the directory. This is very useful as it allows the placement of a yet-to-be-used file on a designated drive. Since not specified, the LRL of this file will be 256. CREATE GOOD/DAT (REC=50) This will CREATE a file named GOOD/DAT on the first available drive. There will be space taken for 50 RECords of 256 bytes each, since the default LRL is 256. CREATE SMALL/FIL:1 (SIZE=1) This command will CREATE a file SMALL/FIL on drive 1 and take 1,024 bytes of space for the file (in actuality 1 gran will be taken as this is the smallest unit of allocation the system can deal with). IF THE FILE ALREADY EXISTS...................... CREATE INVENT/DAT (SIZE=20) It is acceptable to CREATE a file that already exists. This is the manner in which you would permanently assign additional space to a file. If the SIZE, or the LRL times REC would cause this file to become smaller than it presently is, the CREATE will abort and the error message "File exists larger" will appear. The file will not be harmed. * CREATE - LIBRARY COMMAND -2- * D A T E ========= The DATE command is used to set the month, day, and year for use with your BASIC programs and by LDOS as it creates and handles your disks and your files. The syntax is: ============================================================= | DATE mm/dd/yy | | DATE ? | | DATE | | | | mm - 2 digit month, 01 to 12 | | / - mandatory slash | | dd - 2 digit day, 01 to 31 | | / -mandatory slash | | yy - 2 digit year, 00 to 99 | | | | DATE ? Date prompt at system power up. | | | | DATE with no parameters specified will return | | the current DATE. | | | | abbr: NONE | | | ============================================================= It is more important to set the DATE with LDOS than other systems, because LDOS uses the DATE when creating and accessing files, and when making BACKUPs and FORMATting disks. If the DATE is not set, LDOS will make no date entries in the directory, when it would be useful to see the actual DATE. When looking at the directory you are able to see the DATE when a file was created or last written to. If the DATE was not set, this "last-written-to DATE" will NOT be updated, and the file would not show the true "last-written-to DATE". When creating new files, doing BACKUPs or FORMATting, LDOS will use 00/00/00 if the DATE has not been set. Because the DATE is so important in the LDOS system you will be prompted for it on power-up. In the lower center of the screen at power-up the system will prompt for the DATE to be entered. You should answer this prompt with a valid DATE string. (Should you desire not to set the DATE just press enter at this prompt and the DATE will default to 00/00/00.) The prompt and the DATE you entered will then be erased and replaced by a display showing the day of the week in the standard three character abbreviation, the name of the month (also abbreviated), the day of the month, and the year expanded as 19xx. It should be noted that LDOS will store two other numbers calculated from the current DATE. These are Day of the Year, and Day of the Week. These values will be placed in RAM memory, and will remain constant unless the DATE is reset. The Technical section details the exact locations and patterns of these values. * DATE - LIBRARY COMMAND -1- It should be noted that the DATE will stay "set" as long as the computer has power applied to it, providing the DATE storage area is not overwritten by user applications. Therefore when "RESETing" or executing the BOOT command after the DATE has been set, the system will automatically recover the DATE that was last set and will not bother with prompting for the DATE. The DATE that had been set will be displayed and the system will continue. Should you wish to examine the DATE that is set in the system simply type DATE and press enter. If the DATE has been properly set, the system will return the currently set DATE in day-of-week, month, day-of-month, year format. The current DATE will also be sent to the Job Log, if active. Should you wish to set the DATE to one other than the system is currently using, simply enter: DATE mm/dd/yy The new DATE will be set by the system. EXAMPLE: DATE 01/04/80 Sets the DATE for the first month (January), the 4th day and the 80th (1980) year. At power-up the DATE is set to 00/00/00 and the system will prompt you for a DATE to be entered. Should the key be depressed as the response to this prompt the DATE will remain as at power-up, 00/00/00. Because the "Real Time Clock" is turned off during certain I/O functions, the TIME and DATE may need to be corrected each day. Do not depend on the system clock for exact timing functions. * DATE - LIBRARY COMMAND -2- * D E B U G =========== The DEBUG command turns the LDOS system's DEBUGing utility on or off. The syntax is: ============================================================= | DEBUG (switch,EXT) | | | | switch is the switch ON or OFF. If not specified, | | ON is assumed. | | | | EXT turns on the EXTended DEBUGger | | | | abbr: EXT=E, ON=Y, OFF=N | | | ============================================================= Unlike the other LIBrary commands, the DEBUG command does not immediately produce a visible result. It loads the system DEBUGger into memory and then waits to be activated. The EXTended DEBUGger also loads a separate block into high memory, and protects this area by decrementing HIGH$. Once the DEBUGger has been turned on, it will be entered when one of the following occurs: 1) The key is pressed. 2) After a program has been loaded, before the first instruction in the program is executed. This includes LDOS DEVICE DRIVER programs and UTILITY programs. The DEBUGger may also be automatically activated by holding down the key during the bootstrap operation. The DEBUGger will be disabled during the execution of any programs with an EXECute only PROTection status. Refer to the following examples to turn the DEBUGger on or off. DEBUG (ON) Turns on the standard DEBUGger. DEBUG (E) Turns on the extended DEBUGger DEBUG Turns on the standard DEBUGger DEBUG (OFF) Turns off the DEBUGger, standard and EXTended. Once the DEBUGger is turned ON, it will remain active until it is turned OFF or until the system is BOOTed. Detailed examples of interaction between the DEBUGger and program modules will be given later in this section. * DEBUG - LIBRARY COMMAND -1- Following is a sample display of the DEBUGger screen. AF = 0D 2C --1-1P-- BC = 0D 61 => 79 9E 77 23 05 20 F9 C9 71 E5 D6 08 38 0E E1 E5 DE = 01 04 => 1A 4D 45 4D 20 53 49 5A 45 00 52 2F 53 20 4C 32 HL = 00 54 => 01 01 5B 1B 0A 00 08 18 09 19 20 20 0B 78 B1 20 AF'= 00 54 -Z-H-P-- BC'= 51 B0 => 29 29 29 29 B5 6F CD 8A 51 20 EF 1F CE 81 C9 D6 DE'= 06 01 => 09 28 42 FE 19 28 39 FE 0A C0 D1 77 78 B7 28 CF HL'= 51 00 => 02 C7 C6 02 FF CB 02 F7 10 32 E7 20 32 01 C7 43 IX = 40 15 => 01 9C 43 00 9A 00 4B 49 07 C2 FE 31 3E 20 44 4F IY = 00 00 => F3 AF C3 74 06 C3 00 40 C3 00 40 E1 E9 C3 9F 06 SP = 41 CA => 52 04 C3 4B DD 03 15 40 5D 45 18 43 3F 3F 4C 00 PC = 00 62 => B1 20 FB C9 31 00 06 3A EC 37 3C FE 02 D2 00 00 3E04 => 20 34 30 20 31 35 20 3D 3E 20 20 30 31 20 39 03 3E14 => 20 34 33 20 30 30 20 39 01 20 30 30 20 34 02 20 3E24 => 34 39 20 20 30 37 20 $3 32 20 06 05 20 33 31 20 3E34 => 33 05 20 32 30 20 34 34 20 34 06 20 09 19 20 3D The DEBUG display contains information about the Z-80 microprocessor registers. The display is set up in the following manner: The register pairs are shown along the left side of the display, from top to bottom. The current contents of each register pair are shown immediately to the right of the register labels. The AF and AF' pairs are followed by the current status of the flag registers to the right of the register contents. The other register pairs will be followed by the contents of the 16 bytes of memory they are pointing to. The PC register will show the memory address of the next instruction to be executed. The display to the right of that address shows the contents of that address to that address + X'0F'. The bottom four lines of the screen show the contents of the memory locations indicated by the address at the left of each line. Refer to the list of DEBUG commands for information on use of the DEBUGger. Note that in ALL examples, any parameter dealing with an address or a quantity must be entered as a HEXadecimal number. The DEBUGger will not accept the backspace key. If an incorrect command has been entered it may be cancelled with the X key. Also, DEBUG only looks at the last four numbers entered in response to any address question. In the following examples, the first line following a command will give the syntax of the command. There are 3 ways the DEBUG commands can be entered. The first requires the key be pressed. The second requires the bar be pressed. The third type is immediate and will execute whenever the command key is pressed as the first character in the command. The following commands are allowed in both the regular and the EXTended DEBUGger. * DEBUG - LIBRARY COMMAND -2- COMMAND: A The command syntax is: A This command will set the display to the alphanumeric mode. COMMAND: C The command syntax is: C This command will single step through the instructions pointed to by PC (the Program Counter). If any CALL instruction is encountered, the routine called will execute in full. The destination of any jump instruction encountered must be in RAM memory, or the C command will be ignored. COMMAND: D The command syntax is: Daaaa This command starts the memory display from the address aaaa. COMMAND: G The command syntax is: Gaaaa Gaaaa,bkp1,bkp2 This command goes to a specified address and begins execution. The parameters are: aaaa specified address. If omitted, the PC contents are used. bkp1,2...optional breakpoint addresses. They will cause execution to stop at the specified breakpoint. One or both may be specified. The breakpoints must be in RAM memory. All breakpoints are automatically removed whenever you return to DEBUG. COMMAND: H The command syntax is: H This command sets the display to show hexadecimal format. COMMAND: I The command syntax is: I * DEBUG - LIBRARY COMMAND -3- This command causes the DEBUGger to execute the command at PC and single-step to the next instruction. This command is identical to the C command except that any CALLS encountered will not automatically be executed in full; they must be stepped through instruction by instruction. Any jump or call instruction encountered must have its destination in RAM, or the I command will be ignored. COMMAND: M The command syntax is: Maaaa This command will allow modification of a specified memory address aaaa. If the display is set to include the specified address, you will see vertical bars around that byte of memory. The address and current byte will appear in the lower left of the screen. To modify the byte, enter in the desired characters. Pressing the (SPACE> bar will modify the byte and move to the next address. Pressing the key will modify the byte and exit from the M command. Pressing the key will exit from the M command without modifying the current byte. If aaaa is omitted, the current memory modification address (shown by the vertical bars) will be used. COMMAND: R The command syntax is: Rrp dddd This command will modify the contents of a specified register pair. rp......represents the register pair to be modified. dddd....represents the new register contents. The contents of the registers can be seen while in the register display mode. COMMAND: S The command syntax is: S This command changes the display format from the register display mode to the Full Screen mode. In the full screen mode, the display will contain 256 bytes of memory, with the current display address being contained in the display (see the D command). The register pairs will not be shown. COMMAND: U The command syntax is: U * DEBUG - LIBRARY COMMAND -4- This command will dynamically update the display, showing any active background tasks. It may be cancelled by holding down any key. COMMAND: X The command syntax is: X This command will return the display to the normal register display mode. COMMAND: ; The command syntax is: ; This command advances the memory display 64 bytes in the register mode and 256 bytes in the full screen mode. COMMAND: - The command syntax is: - This command decrements the memory display by 64 bytes in the register mode or by 256 bytes in the full screen mode. THE FOLLOWING COMMANDS ARE FOUND ONLY IN THE EXTENDED DEBUGGER. --------------------------------------------------------------- EXTENDED COMMAND: B The command syntax is: Baaaa,bbbb,n This command will move a block of memory from one location to another. aaaa...is the starting address of the memory block to move bbbb...is the destination address of the memory block. n......is the number of bytes to move. EXTENDED COMMAND: E The command syntax is: Eaaaa This command allows you to enter data directly into memory, starting at address aaaa. The contents of memory address aaaa will be displayed and you may then type in 2 HEX characters to replace the current contents. This operation will automatically advance to the next memory location, and allow you to continue entering characters until the key is pressed. If aaaa is omitted, the current memory modification address will be used. * DEBUG - LIBRARY COMMAND -5- EXTENDED COMMAND: F The command syntax is: Faaaa,bbbb,cc This command will fill a block of memory with a specified byte. The parameters are: aaaa...The first address to be filled. bbbb...The last address to be filled. cc.....The specified byte to fill the locations with. EXTENDED COMMAND: J The command syntax is: J This command will Jump over the next byte, in effect incrementing PC by 1. EXTENDED COMMAND: L The command syntax is Laaaa,dd This command will locate the first occurrence of the byte dd, starting the search at address aaaa. If aaaa is not specified, the current memory modification address will be used. If dd is not specified, the last byte given in a previous L command will be used. EXTENDED COMMAND: N The command syntax is: Naaaa This command will position the vertical cursor bars to the next load block. This instruction is used to move logically through a block of memory that has been loaded directly from disk using DEBUG. To use this instruction you must position the location bars over the file type byte at the beginning of any block. Press N and DEBUG will advance to the next load block header. This instruction may also be used by setting PC to the first byte of any forward JR instruction. Upon pressing N, PC will be incremented by the branching offset requested by the JR instruction, and the DEBUGger will remain in the command mode. * DEBUG - LIBRARY COMMAND -6- EXTENDED COMMAND: 0 The command syntax is: O This command is the normal way to return to LDOS READY. EXTENDED COMMAND: P The command syntax is: Paaaa,bbbb This command will Print a block of memory from address aaaa to bbbb inclusively. The output will contain both HEX and ASCII formats in the following manner: aaaa bb bb ... bb ccccccccccccccccc aaaa....represents the current line address. bb bb...represents a line of 16 locations in HEX notation. cccc....represents the ASCII equivalents of the locations. EXTENDED COMMAND: Q The command syntax is: Qii This command will display the byte at the input port ii. EXTENDED COMMAND: Q The command syntax is: Qoo,dd This command will send the data byte dd to output port oo. EXTENDED COMMAND: T The command syntax is: Taaaa This command will allow you to type ASCII characters directly into memory, starting at address aaaa. The current contents of the address will be shown, and the command will wait for the next keyboard character. After the character is entered, you will advance to the next memory location. To exit this command, use the key. The character cannot be entered with this command. Pressing the will advance one memory location without changing the contents of the current location. If aaaa is omitted, the current memory modification address will be used. * DEBUG - LIBRARY COMMAND -7- EXTENDED COMMAND: V The command syntax is: Vaaaa,bbbb,nn This command will compare the block of memory starting at aaaa to the block of memory at bbbb. The compare will be for nn bytes. If the display is in the register mode, the first byte of memory displayed will be set to the first location in the block starting at aaaa which does not match the block at bbbb. The current memory modification address used by the M, E, and T commands will be reset to the corresponding byte in the second block. EXTENDED COMMAND: W The command syntax is: Waaaa,dddd This command will search memory for the WORD specified with dddd. The search will start at memory location aaaa. If aaaa is not specified, the current memory modification address will be used. If dddd is not specified, the last word given in a previous W command will be used. The memory display will automatically be set to show the address where dddd was located. EXTENDED COMMAND: DISK READ/WRITE UTILITY The command syntax is: a,b,c,d,eeee,f a is the desired disk drive number. b is the desired cylinder. c is the first sector to read or write. d is the operation, R for Read, W for Write, * for a Directory Write. e is the starting address in memory where the information read from the disk will be placed, or where information written to the disk will be taken from. f is the number of sectors to read or write. If the cylinder is not specified, the DIRectory track will be used. If the number of sectors is not specified, a single sector will be read. If the starting sector is not specified, a full cylinder will be read. If an error is encountered during a disk function, the error number will appear on the screen, surrounded by asterisks. The error indication will repeat each time another error occurs. To abort the disk function, hold down the key. * DEBUG - LIBRARY COMMAND -8- D E V I C E (and Drive LOG-ON) ================================ This command will display all logical devices which are in use and the devices and files to which they are currently pointing and/or attached to. It will also "log on" the diskettes currently in the available disk drives by updating the Drive Code Table to show the number of sides, the density, and the location of the DIRectory track. The syntax is: ============================================================= | DEVICE | | | | No parameters are required or allowed. | | | | abbr: NONE | | | ============================================================= A typical device display might look like this: :0 5" Floppy #1, Cyls= 40, Dden, Sides=1, Step=12 ms, Dly= 1 s :1WP 5" Floppy #2, Cyls= 35, Sden, Sides=1, Step= 6 ms, Dly= 1 s :2 8" Floppy #1, Cyls= 77, Dden, Sides=2, Step= 6 ms :3 5" Rigid #0, Cyls=153 *KI <= X'FC11' *DO <=> x'4DC2' *PR <=> X'41E5' *SI = Nil *SO = Nil *UD <=> TEXTFILE/TXT:1 Options: Type, JKL, KI/DVR, MiniDOS System modules resident: 1, 2, 3, 8, 10 The information on the type and configuration of each drive in the system is found at the top of the DEVICE display. There are several fields in each line which explain what the system sees for disk storage. Here is a typical line of information pertaining to one drive and the explanation of the fields it contains. :1WP 5" FLOPPY #1, CYLS= 40, DDEN, SIDES=1, STEP=6 MS, DLY= 1 S ---- - ------ -- -------- ---- ------- ---------- -------- aabb c dddddd ee ffffffff gggg hhhhhhh iiiiiiiiii jjjjjjjj aa This is the LOGICAL drive number the line deals with. bb This is the diskette write protect status, with WP = Write Protected. See the SYSTEM (DRIVE=,WP) command. cc This is the size of the disk, 5" or 8" will appear. DEVICE - LIBRARY COMMAND -1- dd This is the type of drive FLOPPY or FIXED (hard) shown. ee This is the PHYSICAL BINARY location of the drive on its cable. 1, 2, 4 or 8 will appear here. These numbers are the physical locations that refer to logical drive 0, 1, 2 and 3 respectively (see SYSTEM (DRIVER) command). ff This is the number of CYLinders (tracks) on the disk that was in the drive when it was last accessed. gg This shows the DENSITY of the last disk accessed in the drive and will show either DDEN or SDEN (Double/Single DENsity). hh This shows the number of sides on the last disk accessed by the drive and will be a 1 or a 2. ii This shows the step rate in "MS" that the drive is set at. jj This shows the DEL