TRS-80 DOS – DOSPLUS

Background of DOSPLUS 3.5

DOSPLUS 3.5 Model I

DOSPLUS 3.5 Boot Screen

DOSPLUS 3.5 is a Disk Operating System for the Model I and Model III TRS-80 made by Micro Systems Software Inc. of Boca Raton, Florida. It was released in 1983 for the Model I and Model III TRS-80 at a suggested retail price of $149.95.

Although not an exhaustive list by any means, the following were some of the features which set DOSPLUS 3.5 apart from TRSDOS, and in some cases, apart from other DOS’s:

Devices, Files, and Drives Are Treated The Same

One of DOSPLUS 3.5’s strength, particularly over TRSDOS, was that it allowed the user to treat devices as files. You could switch, kill, reassign, and reconfigure input/output devices at will. As far as DOSPLUS 3.5 was concerned, you could manipulate the Keyboard (KI), Display (DO), Printer (PR), RS-232 (RS), and two user-defined hardware devices (U1 and U2), as well as 8 disk drive types. The devices were operated by character (one byte at a time), while the drives were operated by files (one file at a time). However, character-oriented and file-oriented devices could be made to perform as each other, so you really could interchange files, drives, and devices (within reason, of course). These relationships were established by ASSIGN, JOIN, FORCE, and RESET.

Join connects the specified devices to receive the same byte simultaneously or to link two input devices so that one unit supplies data for the other. You can also use Join to join the device to a disk file. For example, you can use the command: JOIN (FROM) @DO (TO) @PR to provide a printout of all items displayed to the video. The command Join alone provides a listing of the current status of the character-oriented devices and their driver address.

Force diverts output from the previously assigned device and sends it to the new device. This allows the redirection of input and/or output paths for the system’s devices. For example, the command FORCE (FROM) @PR (TO) fdespec reroutes the output from the printer to the filespec disk file. Force without any I/O field provides a listing of the current status of the character-oriented devices and their driver address.

Reset restores a device or disk drive to the previously assigned driver. This disolves any Joins or Forces in effect for the specified device and restores the default or initial driver to service. Reset without any other fields performs a global reset of all devices.

Assign installs drivers for a device or drive. This command lets you install a nonstandard driver for any device or drive in the system. The driver is a program that controls the input/output from a specific device or drive, such as hard disk drives. Once you install the driver program on a device by using the Assign command, you can assign the same driver to other devices by using the Assign command without allocating more memory. Assign requires that the driver program be in a loader format machine executable tile. The Assign command loads this driver into memory and the program executes the routine.

Filters

DOSPLUS 3.5 also supported filters – customized tables which would convert an input file to an output file, using the translations in the filter.

By combining the device based driver model with filters, otherwise complex tasks were made fairly routine. Examples, keyboard debounce, keyboard repeat delays, macro keys, character filtering were some examples using the Keyboard. Similarly, special cursors and lowercase were simple work for the Display. Of course, both serial and printer benefited from spooling, automatic pagination, and indenting. Pretty cool stuff, but the most stunning is that you could route a device to a file, essentially making the file a container which acted as a disk drive (which would have been a precursor of directories on a hard drive).

Wildcard Support

In addition, DOSPLUS 3.5 also supported wildcards for filenames. For example, KILL :0 USING ! would kill all visible files on :0 (and is the same as KILL !:0)

CONFIG

Similar to LDOS’s CONFIG, and NewDos/80’s PDRIVE and SYSTEM, DOSPLUS 3.5 allowed you to configure the attributes of drives, including allowing the use of Hard Drives.

LOAD

The LOAD command could be used to load “core image files” which different from CMD files in that they have no header, and represent the format at which the file would appear in memory.

System Customizations

DOSPLUS 3.5 could be customized so that specific system drivers were loaded on each boot, including any filtering which was desired. The logo, date prompt, time prompt, caps lock, cursor character, cursor blink, etc. were also customizable. These were all done by using the SYSTEM command to make your selections and then using the CONFIGR command to write them to disk so that they would automatically load on reboot (if you wished to do so). DOSPLUS 3.5 could support the existence of different CONFIGR files on the same disk and could change between them on the fly.

Job Control Language

Unlike the DO command, DOSPLUS 3.5’s JCL executor was a real language and had to be loaded into high memory (using the SYSTEM command) before it could be operated. Once in memory, batch files could be created with substitutional parameters and conditional execution.

Included Utilities:

BACKUP
Back up a disk.
CONVERT
 
CRUNCH
 
DIRCHECK
check the target disk’s directory for errors and repair most errors in the file entry table, the HIT, and the GAT.
DISKDUMP
display and modify the contents of any disk file by sector.
DISKZAP
display and modify the contents of any disk cylinder/sector.
FORMAT
format a disk.
HELP
display the command syntax for a chosen keyword, with a description of its function.
LABEL
read a BASIC source file and change named references to line numbers.
MAP
lists the file disk space allocated to files by cylinder/sector.
PATCH
apply modifications to any load module, either from a disk file or from the keyboard.
RESTORE
undelete a file (accomplished because DOSPLUS 3.5 only zero’s out the first byte of the directory entry when KILLing a file).
SYSGEN
place the system files onto a destination disk (requires the disk be formatted first).
TAPE
a tape to disk converter which can display the load map of the file and relocate the file (similar to NEWDOS/80’s LMOFFSET or LDOS’s CMDFILE).
TRAP
 

Zaps

Forcing VERIFY in DOSPLUS v3.4 – R. Baker

Using AUTO to turn on Verify at every boot-up in DOSPLUS v3.4 not only slows the boot process, it also corrupts memory above 5200H. This gets you if you are trying to reenter the Electric Pencil, for example. Or if you are trying to DUMP code in that area. So to force Verify to be on all the time unless turned off use DISKDUMP to zap SYS0/SYS.H4, File Relative Sector 1, at byte CF from C3 2A 48 to C3 47 48

Zap – Disabling Passwords in DOSPLUS v3.4

Use DISKDUMP to zap SYS2/SYS.H4, File Sector 1, at byte C8 from E1 28 37 to E1 18 37

DOSPLUS 3.5 Conventions

  • Capital letters MUST be typed as shown on command lines.
  • Information to be entered by the user based upon a list of valid values and parameters for that command are given in lower case.
  • Brackets indicate that the information contained within the brackets is optional and may or may not be entered, depending on the situation and the user’s desire for clarity.
  • Parentheses indicate the parameter field. This field is composed of those parameters that will modify the action of the command to suit the user’s needs. Parentheses are not a requirement in DOSPLUS; the parameter field is now indicated as much by position as by delimiters.
  • Parameters may be abbreviated by using the capital letter(s) of the parameter name. Lowercase letters may or may not be typed, depending on the user’s need for clarity.
  • The letter H indicates that the value it follows is a hexadecimal value. It is used for entering data to the system in hexadecimal format.
  • The form of each command will be the command itself, followed by the I/O field, followed by the parameters field. The parameter field and certain portions of the I/O field are optional and included at the discretion of the operator.

DOSPLUS 3.5 Library Command Reference

APPEND
Append file/device data to another file
APPEND [FROM] device1/file1 [TO] device 2/file2 (Cmd=,Strip=)

device1/file1 – source device or file

device2/file2 – destination device or file

@DO – video display | @KI – keyboard | @PR – printer | @RS – serial port | @U1 – user defined | @U2 – user defined

Cmd=sw – appends to destination file in load file format (/CMD file)

Strip=sw – backspace destination file 1 byte

ASSIGN
Install driver program for any device or drive
ASSIGN [FROM] devspec/drivespec [TO] filespec
ASSIGN [FROM] devspec1/drivespec1 [TO] devspec2/drive-spec2

devspec ? name of device for which driver is to be installed

@DO – video display | @KI – keyboard | @PR – printer | @RS – serial port | @U1 – user defined | @U2 – user defined

filespec – name of driver program

devspec1 – source device | drivespec1 – source drive | devspec2 – destination device | drivespec2 – Destination drive

ATTRIB*
Set a file’s user definable attributes
ATTRIB filespec (PW=””,Acc=””,Upd=””,Prot=,Lrl=,Inv=,Keep=,Mod=)
ATTRIB [USING] wildmask (PW=””,Acc=””,Upd=””,Prot=,Lrl=,Inv=,Keep=,Mod=)

filespec – file with attributes to be altered

wildmask – file or group of files to be operated on (use ?,*,! to mask characters)

PW=”” – disk master password | Acc=”” – new access password | Upd=”” – new update password

Prot=value – protection: 0=no protection/total access, 1=Kill/Rename/Write/Read/Execute, 2=Rename/Write/Read/Execute, 3=Not used, 4=Write/Read/Execute, 5=Read/Execute, 6=Execute only, 7=No access

Lrl=sw – new logical record length | Inv=sw – new invisible status | Keep=sw – new non-shrinkable status | Mod=sw – new mod flag status

AUTO*
Execute command at boot-up
AUTO [drivespec] [doscmd;doscmd;….]
AUTO *[drivespec] [doscmd;doscmd;…]
AUTO ![drivespec] [doscmd;doscmd;…]

[drivespec] – optional drive specifier | [doscmd] – any executable DOSPLUS command

* – disables <ENTER> as break on boot & disables BREAK | ! – invisible command

BOOT
system reboot from software
BOOT – there are no parameters
BREAK
enable/disable BREAK key
BREAK [ON/OFF]

ON – enable BREAK key | OFF – disable BREAK key

BUILD
build an ASCII text file
BUILD devspec/filespec (Append=)

devspec – any valid device specification

@DO – video display | @KI – keyboard | @PR – printer | @RS – serial port | @U1 – user defined | @U2 – user defined

filespec – any valid file specification | Append=sw – build onto existing file

CAT
Display disk’s file catalog
CAT [FROM] drivespec [TO] file/device [USING] wildmask (System=,Invis=,Kill=,Alpha=)

drivespec – any valid drive number | file – optional output file | device – optional output device

@DO – video display | @KI – keyboard | @PR – printer | @RS – serial port | @U1 – user defined | @U2 – user defined

wildmask – file or group of files to be operated on (use ?,*,! to mask characters) | System=sw – display files as standard entries | Invis=sw – display visible and invisible files | Kill=sw – display names of deleted files | Alpha=sw – display names in alphabetical order

CLEAR
fill file or user memory with user-defined data
CLEAR [filespec] (Start=,End=,Data=)

filespec – optional file specification | Start=val – starting memory address | End=val – ending memory address | Data=val – optional fill data

CLOCK
toggle clock display on/off
CLOCK ON/OFF

ON – turns display on | OFF – turns display off

CLS
clears display and resets video mode
CLS – there are no parameters
CONFIG
configure DOSPLUS for non-standard disk drives
CONFIG – with no parameters, displays configuration
CONFIG
configure DOSPLUS for non-standard FLOPPY disk drives
CONFIG [drivespec] (Wp=,Md=,HL=,Step=,SKip=,SIZe=,SIDes=,Pd=)

drivespec – optional drive specification | Wp=sw – sets software write protect | Md=sw – configures for delay on motor on | HL=sw – configures for delay on head load | Step=sw – sets drive step rate | SKip=sw – sets double-step mode | SIZe=sw – indicates disk’s physical size | SIDes=sw – indicates number of read/write surfaces | Pd=sw – indicates physical drive

CONFIG
configure DOSPLUS for non-standard HARD disk drives
CONFIG [drivespec] (Wp=,Step=,SKip=,SIZe=,SIDes=,Pd=,Ho=,Co=,Ts=)

drivespec – optional drive specification | Wp=sw – sets software write protect | Step=sw – sets drive step rate | SIZe=sw – sets platter size | SIDes=sw – indicates number of read/write surfaces | Pd=sw – indicates physical drive | Ho=val – sets head offset | Co=val – sets cylinder offset | Ts=val – sets number of tracks per sector

COPY
copy data from file/device to file/device
COPY [FROM] device/file [TO] device/file (Dpw=””,Echo=,Invs=,Kill=,Mod=,Over=,Prompt=,Query=,Spw=””,Tiny=,New=,Old=)
COPY [FROM] filespec [TO] filespec/devspec (Dpw=””,Echo=,Invs=,Kill=,Mod=,Over=,Prompt=,Query=,Spw=””,Tiny=,New=,Old=)
COPY [FROM] drivespec [TO] drivespec [USING] wildmask (Dpw=””,Echo=,Invs=,Kill=,Mod=,Over=,Prompt=,Query=,Spw=,Tiny=,New=,Old=)

device – any valid device: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

file – any valid file | filespec – any valid file specification | drivespec – any valid file specification | devspec – any valid device specification | wildmask – file or group of files to be operated on (use ?,*,! to mask characters)

Dpw=”” – destination drives master password | Echo=sw – display filenames as copied | Invis=sw – copy invisible files also | Kill=sw – delete source file after copying | Mod=sw – copy based on MOD flag condition | Over=sw – prompt before overwriting | Prompt=sw – prompt for disks (single-drive copy) | Query=sw – prompt before copying | Spw=”” – source disk’s master password | Tiny=sw – copy one sector at a time | New=sw – copy only files not on destination | Old=sw – copy only file on destination

CREATE*
preallocate space in a file
CREATE filespec (Data=,Grans=,Keep=,Kilo=,Lrl=,Size=, Verify=)

filespec – any valid file specification | Data=val – fill data (one or two bytes) | Grans=val – number of grans | Keep=sw – sets keep flag (non-shrinkable attrib.) | Kilo=val – number of kilobytes | Lrl=val – logical record length | Size=val – number of records | Verify=sw – verify disk space after creation

DATE*
set or display date
DATE – with no parameter, returns current date
DATE mm/dd/yy – set date

mm – two-digit month (1-12) | dd – two-digit day (1-31) | yy – two-digit year (0-99)

DEBUG*
system debugging utility
DEBUG [ON/OFF]

A – set display to ASCII/Graphics | C – Instruction/Call step | Daaaa – set the display to aaaa | Gaaaa,bbbb,cccc – execute at aaaa with breakpoints set at bbbb and cccc | H – set display to hexadecimal | I – single step next instruction | Maaaa – <SPACE> – modify at aaaa. <ENTER> records change and end; <SPACE> records change and moves to next next address | O – exit to DOSPLUS with DEBUG still engaged | Rpr aaaa – alter register pair pr to aaaa | S – full screen display mode | U – set dynamic display update mode | X – set register examine mode | ; – advance display to next memory page | – – decrement display to previous memory page

DIR
display disk directory
DIR [FROM] drivespec [TO] device/file [USING] wildmask (System=,Invis=,Kill=,Alpha=)

drivespec – optional drive specification | device/file – optional output device or file

@DO – video display | @KI – keyboard | @PR – printer | @RS – serial port | @U1 – user defined | @U2 – user defined

wildmask – optional wildmask (?,*,!) to restrict DIR to certain class or group of files | System=sw – display system files | Invis=sw – display visible and invisible files | Kill=sw – display deleted files | Alpha=sw – display files in alphabetical order

DO
execute a command chaining file
DO filespec (Break=,High=)

filespec – any valid file specification | Break=sw – BREAK key enable/disable | High=val – set high memory before execution

DUMP
dump memory to a file
DUMP filespec (Data=,Start=,End=,Tra=)

filespec – any valid file specification | Data=sw – indicates that file is non-program file | Start=val – starting memory address | End=val – ending memory address | Tra=val – transfer address

ERROR
detailed error message
ERROR [val]

val – optional error message number

FILTER
set up filter on any character oriented device
FILTER [FROM] devspec [TO] filespec (YES/NO,MAP)

devspec – any valid, active device: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

filespec – the filter program | YES – engage filter after loading (assumed) or engage previously loaded filters | NO – load but do not engage filter or deactivate a previously loaded filter | MAP – display filter codes

FORCE
route I/O of one system device to another
FORCE – with no parameters, displays device setting
FORCE [FROM] devspec [TO] device/file

devspec – primary device to be routed: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

device/file – device or file to which primary device is to be routed

FORMS
define certain parameters concerning printer
FORMS – with no parameters, displays forms parameters
FORMS (Page=,Lines=,Width=,Top,Code=)

Page=val – number of physical line on page | Lines=val – number of lines per page to be used | Width=val – number of characters per line | Top – immediate top-of-form mode | Code=val – sends 1 or 2 byte value to printer

FREE*
display disk and directory free space
FREE no drivespec, free space displayed
FREE [FROM] drivespec [TO] device/file

drivespec – optional drive specification | device – optional output device: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

file – optional output file

I
instruct system to log in a disk
I [drivespec] (Mount=)

drivespec – any valid drive number | Mount=sw – logs in disk immediately

JOIN
link two devices within DOSPLUS system
JOIN [FROM] drivespec [TO] device/file

devicespec – primary device to be linked | device – device with which primary device is to be linked: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

file – file with which primary device is to be linked

KILL
delete a files or deactivate devices
KILL filespec (Inv=,Echo=,Sys=,Query=,Pw=)
KILL [FROM] drivespec [USING] wildmask (Inv=,Echo=,Sys=,Query=,Pw=)
KILL devspec
KILL drivespec

filespec – name of file to be deleted | wildmask – optional group of files to be deleted (use ?,*,! to mask characters) | devspec – name of device to be deactivated: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

drivespec – name of drive to be removed from system | Inv=sw – include or not invisible files in delete | Echo=sw – display filename as being deleted | Sys=sw – include or not system files in delete | Query=sw – prompt before deleting files | Pw=”” – declares DISK master password to system

LIB
displays a list of the library commands
LIB [TO] device/file

device – any valid output device in the system: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

file – any valid output file

LIST
list contents of a file
LIST [FROM] device1/file [TO] device2/file2 (Ctl=)

device1 – source device: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

file1 – source file | device2 – destination device | file2 – destination file | Ctl=sw – determines whether or not control codes (ASCII 00H-1FH) will be output unchanged or displayed as periods

LOAD
load a file into memory
LOAD [FROM] filespec (Prompt=,Run=,Tra=)

filespec – name of file to be loaded | Prompt=sw – prompt for disk mounts or not | Run=sw – execute file upon load or not | Tra=address – control address to be transferred to if file is to be executed

PAUSE
pause execution until a key is pressed
PAUSE [message]

message – optional message string

PROT
change diskette information
PROT [drivespec] (Pw=””,Mpw=””,Name=””,Date=””,Lock=, Acc=,Upd=,Clean=)

drivespec – drive specification | Pw=”” – supplies current disk master password | Mpw=”” – supplies new password to system | Name=”” – specifies new name for diskette | Date=”” – specifies new date for diskette | Lock=sw – whether disk master password is to be assigned to, or removed from, all files in the directory or not | Acc=sw – if LOCK=Y, disk master password is assigned as ACCESS password of all files if LOCK=N, ACCESS passwords are removed | Upd=sw – if LOCK=Y, disk master password is assigned as UPDATE password of all files if LOCK=N, UPDATE passwords are removed | Clean=sw – zero or not unused entries in directory

RENAME
change names of files, devices, drives
RENAME [FROM] device1/file1 [TO] device2/file2

device1 – device being renamed: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

file1 – file being renamed | device2 – new name for device | file2 – new name for file

RESET
store a device or disk to default driver
RESET – without parameters, performs global reset
RESET [FROM] devspec/drivespec

devspec – current logical name of device: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

drivespec – current logical name of disk drive

RS232
set serial communications device
RS232 – with no parameters, displays current settings
RS232 (Baud=,Word=,Stops=,Parity=,Even=,Odd=,Dtr=,Rts=,BReak=)

Baud=val – sets baud rate | Word=val – sets word length | Stops=val – sets number of stop bits | Parity=sw – engage/disengage parity error checking | Even=sw – configures for even parity | Odd=sw – configures for odd parity | Dtr=sw – sets/resets DTR line | Rts=sw – sets/resets RTS line | BReak=sw – sets RS232 break status

SCREEN
output video data to another device or file
SCREEN [TO] device/file

device – optional output device: @DO (video display), @KI (keyboard), @PR (printer), @RS (serial port), @U1 (user defined), @U2 (user defined)

file – optional output file

SYSTEM
Configure system
SYSTEM – with no parameters, displays memory usage
SYSTEM (Time=,Date=,Logo=, Blink=, Caps=, CUrsor=, High=,Step=,SAve=,Port=,Mode=)
SYSTEM [filespec]

filespec – name of configuration file | Time=sw – enable/disable time prompt | Date=sw – enable/disable date prompt | Logo=sw – enable/disable logo | Blink=sw – enable/disable blink cursor | Caps=sw – toggle caps mode (upper/lower case) | CUrsor=val – define cursor character | High=val – set top of memory pointer | Step=val – set system default drive step rate | SAve=sw – effect permanent changes | Port=val – address of port to be output on powerup | Mode=val – one byte value to be output to this port

TIME
set real-time clock in real-time clock
TIME – display time
TIME hh:mm:ss – set system time

hh – two-digit hour (00-23) | mm – two-digit minute (00-59) | ss – two-digit second (00-59)

VERIFY
read after each disk write
VERIFY [ON/OFF]

ON – engage verify | OFF – disengage verify

DOSPLUS 3.5 Utility Command Reference

BACKUP
mass COPY of files with mirror image only
BACKUP [FROM] :sd [TO] :dd (Date=””,Use=””)

:sd – drive being copied from | :dd – drive being copied to | Date=”” – date or range of dates | Use=”” – overwrite files without being prompted

Y – proceed with backup | N – abort backup | F – reformat diskette

CONVERT
converts files from Model III TRSDOS, reads TRSDOS 1.3 directory, render TRSDOS 2.3 readable
CONVERT [FROM] :sd [TO] :dd [USING] wildmask (CAT=,DIR=,Echo=,Invis=,System=,Over=,Query=,V12,V13,Mod1=)
CONVERT [FROM] :dr (CAT=,DIR=,Echo=,Invis=,System=,Over=,Query=,V12,V13,Mod1=)

:sd – source drive | :dd – destination drive | :dr – any valid drive | wildmask – valid DOSPLUS wildcard specification (use ?,*,! to mask characters) | CAT=sw – display directory of TRSDOS 1.3 | DIR=sw – same as CAT | Echo=sw – display filenames as files are copied | Invis=sw – operate on invisible and visible files | System=sw – operate on system and non-system files | Over=sw – overwrite or not a file | Query=sw – query or not before copying files | V12 – convert from TRSDOS 1.2 or earlier | V13 – convert from TRSDOS 1.3 | Mod1=sw – use double-density diskette (Mod I)

DIRCHECK
check/repair disk directory
DIRCHECK [FROM] :dr [TO] filespec/devspec (Cyl0,Files,Gat,Hit)

:dr – drive containing directory to be checked | filespec – optional output file | devspec – optional optional device specification

@DO – video display | @KI – keyboard | @PR – printer | @RS – serial port | @U1 – user defined | @U2 – user defined

Cyl0 – ignore possible error on Model I double- density diskette boostrap file | Files – repair faulty file directory entries | Gat – repair faulty Granule Allocation Table | Hit – repair faulty Hash Index Table

DISKDUMP
display/modify disk sectors
DISKDUMP filespec

filespec – name of file to be examined or modified

Commands:

; – advance one sector | – – go back one sector | + – advance to end of file | = – go to beginning of file | F – find hexadecimal value | G – go to specified sector | M – enter modify mode | P – locate address in load module file | @ xx – fill xx bytes with 00 byte, starting at current cursor location | @ xxyy – fill yy bytes with xx byte, starting at current cursor location

DISKZAP
disk sector editor
DISKZAP – no parameters; menu is displayed

Set – alter disk drive parameters | Fill – fill sectors with specified byte | Copy – copy sectors | Print – print hardcopy of selected sectors | Verify – read and check specified sectors | Format – format a selected track or tracks | Display – display or modify diskette sectors

Display commands: ; – increment display one sector | + – increment display one cylinder | – – decrement display one sector | = – decrement display one cylinder | BREAK – return to main menu | M – enter modify mode

Modify commands: right arrow – increment cursor position 1 byte | down arrow – increment cursor position 1 row | left arrow – decrement cursor position 1 byte | up arrow – decrement cursor position 1 byte | BREAK – abort modify mode without save | ENTER – end modify mode with save | CLEAR – toggle hexadecimal/ASCII display | @ xx – fill current sector with 00 bytes | @ xxyy – fill current sector with yy bytes with xx bytes

FORMAT
format a diskette to receive data
FORMAT :dr (Date=””,Pw=””,Name=””,Cyls=,Sides=,Den=””,Use=””)

:dr – drive containing diskette for formatting | Date=”” – set format date {01/01/80} | Pw=”” – specify disk master password {none} | Name=”” – specify disk name {none} | Cyls=val – specify number of cylinders {40} | Sides=val – specify single/double-headed format {1} | Den=”” – specify single (S) or double (D) density | Use=”” – override (Y) or not (N) prompt for previously formatted diskette {N}

HELP
quick reference to proper syntax and parameters
HELP – list of valid commands and programs
HELP [FROM] command [TO] filespec/@devspec

command – valid DOSPLUS command or program | filespec – output file name | @devspec – output device specification

@DO – video display | @KI – keyboard | @PR – printer | @RS – serial port | @U1 – user defined | @U2 – user defined

MAP
list, by cylinder and sector, of allocated areas
MAP [FROM] :dr [TO] filespec/@devspec [USING] wildmask (System,Invis,Hex)

:dr – disk drive specification | filespec – output file name | @devspec – output device specification

@DO – video display | @KI – keyboard | @PR – printer | @RS – serial port | @U1 – user defined | @U2 – user defined

wildmask – valid DOSPLUS wildcard specification (use ?,*,! to mask characters) | System – include system files | Invis – include invisible files | Hex – provide cylinder and sector numbers in hex

PATCH
make changes to load module format files
PATCH filespec1 filespec2
PATCH filespec1
PATCH filespec1 patname (Kill=)

filespec1 – any valid filespec | filespec2 – any patch format file | patname – name of patch to be removed | Kill=sw – remove patch from file

RESTORE
reclaim files which have been KILLed
RESTORE filespec

filespec – name of KILLed file

SYSGEN
place DOSPLUS operating system on an media
SYSGEN :dr filespec (Xder=)

:dr – drivespec for media | filespec – optional bootstrap program | Xder=val – specify control address on system reset

TAPE
tape-to-disk/disk-to-tape transfer
TAPE

B – adjust baud rate (Model III) | H – print help list | I – re-initialize program | L – load a disk file | M – map out program area | O – offset program | Q – exit to DOSPLUS | R – read a system tape | S – save a disk file | W – write a system tape

TRAP
intercepts disk I/O errors with intervention
TRAP – there are no parameters

DOSPLUS 3.5 Drivers and Filters Reference

KI/DVR
keyboard driver
ASSIGN [FROM] @KI [TO] KI/DVR [USING] filespec (Db=,RD=,RR=)

filespec – optional MACROKEY definition file | Db=val – debounce delay | RD=val – delay before key repeat begins | RR=val – key repeat rate

DO/DVR
video display driver
ASSIGN [FROM] @DO [TO] DO/DVR (Ucase=,Blink=)

Ucase=sw – enable/disable lower case (Model I) | Blink=val – set cursor blin rate (Model I)

PR/DVR
printer driver
ASSIGN [FROM] @PR [TO] PR/DVR (Lf=,Null=,SPool=,Max=,Indent=,Xlate=,Serial=,Delay=,Cts=,DSr=,Cd=,Ri=,INV=)

Lf=sw – linefeeds are sent to printer after CR | Null=sw – printer advance a line when null is printed | SPool=val- optional spool buffer size | Max=val – optional number of attempts to output character to printer in spooler interrupt | Indent=val – number of spaces to indent text | Xlate=sw – whether to translate formfeed characters | Serial=sw – whether parallel or serial driver is used | Delay=sw – optional number of char. after LF or CR | Cts=sw – optional handshaking parameter | DSr=sw – optional handshaking parameter | Cd=sw – optional handshaking parameter | Ri=sw – optional handshaking parameter | INVert=sw – whether handshaking is normal or inverted

RS/DVR
RS232 serial interface driver
ASSIGN [FROM] @RS [TO] RS/DVR

There are no parameters for this driver

FILE/DVR
allow file resident on disk tot act as disk drive itself
ASSIGN [FROM] :dr [TO] FILE/DVR [USING] filespec (Size=,Inst=)

:dr – disk drive specification | filespec – file containing disk file | Size=val – initialize library of specified size | Inst=sw – install itself into operating system

DVORAK/FLT
redefine keyboard to conform to layout of of Dvorak style keyboard
FILTER [FROM] @KI [TO] DVORAK/FLT
EPSON/FLT
translate EPSON MX-80 character codes
128-191 into 140-223 region for TRS-80 block graphics

DOSPLUS 3.5 Job Control Language Reference

Invoke JCL
JCL (PROC=xx,QUEUE=xx)

PROC – procedure buffer size (768 to 4096 bytes) {768} | QUEUE – keyboard queue (256 to 4096 bytes) {256}

Execute JCL
EX jclprog <exp1> <exp2> <exp3>

jclprog – JCL program file | <exp> – parameters

JCL Commands
 

/DOS <exp> – pass DOSPLUS command line to command interpreter | /EXIT – terminate JCL execution | /READ $var1 $var2 – accept input from keyboard or queue | /TYPE <exp> – display messages on video | /PRINT <exp>- display messages to lineprinter | /IF <exp1> <relation> <exp2>/JCL command – make logical comparisons of JCL variables and decisions based on those comparisons | /GOTO -label – alter normal program flow | /QUEUE <exp> – place data in keyboard queue | /QLOAD filespec – load keyboard queue with data stored in disk file | /PURGE – purge keyboard queue | /QUEUE /Jump -label – place special characters in queue | /RESUME – return to program interrupted by /JUMP | /CANCEL – allow JCL procedure entered through /JUMP to avoid returning to intercepted program | /RUN filespec <exp1> <exp2> <exp3> – execute another JCL program | /DEBUG – invoke DOSPLUS 3.5’s DEBUG monitor | /VOFF – suppress display of data read from queue | /OPTION <parm>/switch <parm>/switch <parm>/switch

Parameters
 

DSP – whether data is displayed on video | JCL – print trace of JCL activities during execution | QUEUE – turn keyboard queue on/off | QBYTE – enable/disable queue from responding to single-character input | DQ – copy all data output to video display into queue | CHR – determines how special characters read from queue are handled

DOSPLUS 3.5 Disk BASIC Extensions

BASIC
extended disk BASIC and DOS commands
TBASIC – memory efficient disk BASIC
BASIC filespec -F:nn -M:nnnn

filespec – optional file specification | -F:nn – number of files (0-15) to be open at one time | -M:nnnn – highest memory address BASIC will use

BASIC *
re-enter BASIC with program intact
CLOSE filnum, filnum, filnum…
Close open disk files

filnum – optional file number (1-15) to be closed; if omitted; all files are closed

CMD
return to DOSPLUS
CMD”D”
turns on and enters DEBUGger
CMD”E”
returns last DOSPLUS error message
CMD”M”
dynamic variable dump
CMD”M”,P
dynamic variable dump to printer

CMD”O”,exp,+ or -,AN(se),KA-KA,TA,TA

sort arrays

exp – expression to indicate number of elements | + or – – primary key in ascending or descending order | AN(se) – primary key array with starting element no. | +KA – next key array (ascending order) | -KA – next key array (descending order) | TA – first tag array | TA – next tag array

CMD”R”
enable the interrupts

CMD”REF”, option ,option,…

S= – single variable,line, or keyword | V – all variables | L – all line numbers | K – all keywords | P – printer

CMD”RENUM”, nln, inc, sln, eln

renumber BASIC text

nln – new line number {10} | inc – increment {10} | sln – starting line number {top of text} | eln – ending line number {end of text}

CMD”S”
normal return to DOSPLUS

CMD”SR”, sexp, rexp, sln-eln

global editing of BASIC text

sexp – search expression | rexp – replacement expression | sln-eln – optional starting and ending lines

CMD”T”
disable the interrupts

CMD”X devspec/filespec -V/-L,<title>”

cross reference

devspec/filespec – data destination (*do) | -V – crossref all variables | =var – crossref only specified variable | -L – cross ref all lines | =line – crossref only specified line | <title> – title for current crossref list

&Hdddd
directly use hexadecimal numbers

dddd – one to four digit hexadecimal value

CVD(var$)
restore string to number

var$ – inverses MKD$ with 8 byte string

CVI(var$)
restore string to number

var$ – inverses MKI$ with 2 byte string

CVS(var$)
restore string to number

var$ – inverses MKD$ with 4 byte string

DEF FN name(var)=exp

define function

name – variable used to name function | var – variable(s) to be passed to function | exp – function desired

DEFUSRn = address

Define entry address for machine-language subroutine

n – USR routine number (0-9) | address – machine language entry point

DI pln nln
delete and insert BASIC program lines

pln – present line number | nln – new line number

DU pln nln
duplicate BASIC program lines

pln – present line number | nln – new line number

EOF(filnum)
determine if end of file is reached

filnum – file buffer being interrogated

FIELD filnum,num AS var$,num AS var…

Partition the buffer used with a random file

filnum – file buffer number specified in OPEN | num – length of that field | var$ – variable name for the field

GET filnum, recnum

read record from random file

filnum – file buffer number | recnum – logical record number

INPUT@ <pos>,”prompt”,fl,it;var$

controlled input

<pos> – screen position | “prompt” – prompt message to be displayed | fl – integer expression of field length | it – item type flag ($ = alphanumeric, # = numeric, * = return on field full) | var$ – string variable for input field

INPUT# filnum,var,var,var…

sequential file input

filnum – file buffer number of file | var – variable containing information read in

INSTR (pos,targ$,sub$)

string search function

pos – optional position; 1 is assumed | targ$ – name of string to be searched | sub$ – sub-string to be searched for

KILL “filespec”
Delete program or data from disk

filespec – standard DOSPLUS file specification

LINE INPUT”prompt”;var$

keyboard line input

prompt – optional prompt to be displayed | var$ – name of string to return information

LINE INPUT# filnum,var$

input line from disk file

filnum – file buffer number of sequential file | var – variable name to store the string

LOAD “filespec”,option

load program from disk

filespec – standard DOSPLUS file specification | option – one or more special options to engage

R – runs program after loading; open file will not be closed | V – preserves current set variables and FIELD | line number – begins execution at line number specified when R option is used

LOC(filnum)
Determine last record accessed

filnum – file buffer number being interrogated

LOF(filnum)
Determine number of record in a file

filnum – file buffer number being interrogated

LSET (or RSET) var$=exp$

Fill output buffer

var$ – variable defined via FIELD statement | exp$ – string expression to be placed in buffer

MERGE “filespec”

Merge ASCII file with resident program

filespec – standard DOSPLUS file in ASCII format | option – optional switch R to not interrupt program execution after new file is loaded

MID$ (var$,pos,len=rep$)

Replace portion of a string

var$ – name of string to be edited | pos – starting position of replacement | len – specifies number of character to be replaced | rep$ – string to be replaced with var$

new$=MID$(old$,pos,len)

duplicate portion of string

new$ – string created in this operation | old$ – original string information to duplicate | pos – point of old$ to start duplicating from | len – number of characters to duplicate

MKD$(exp)
Convert numbers to strings

exp – returns 8 byte string; double pre

MKI$(exp)
Convert numbers to strings

exp – returns 2 byte string; integer precision

MKS$(exp)
Convert numbers to strings

exp – returns 4 byte string; single precision

NAME label
Assigns label to line on which NAME appears

OPEN “mode”,filenum,”filespec”,lrl

Open disk file

mode – I/O mode intended for file

R – random access mode | D – direct access; same as R | I – sequential input mode | E – sequential output extension mode | O – sequential output mode

PRINT# filnum,USING format$,var,del,var…

Output data to a sequential file

filnum – file buffer number of sequential file | USING format$ – optional format string to define data format for the print | var – variable containing data to be written | del – delimiter that must be placed between each variable to be written; may be semi-colon

PUT filnum,recnum
Write random access file

filnum – file buffer number | recnum – logical record number to be written

RESTORE nnnn
Set data pointer to line nnnn

RUN “filespec”,option

Load and run a program

filespec – standard DOSPLUS file specification | option – one of three special options

R – any open files will not be closed | V – preserves currently set variables and FIELD | line number – runs program beginning at line no.

SAVE “filespec”,A

Save program

filespec – standard DOSPLUS file specification | A – optional switch to save file in ASCII format

SET EOFn

Set EOF to last record accessed + 1

USRn (var) – call user external subroutine

n – USR routine number | var – variable to be passed to USR

DOSPLUS 3.5 Disk BASIC Shorthand

Shortcut
Command
 
;
List first line of program
 
<SH><UP AR>
List first line of program
 
/
List last line of program
 
<DOWN AR>
List next line of program
 
<UP AR>
List preceding line of program
 
L
List
 
D
Delete
 
E
Edit
 
G
Goto
 
A
Auto
 
N
Name
 
R or R”
Run
 
L”
Load
 
S”
Save
 
K”
Kill
 
.
List current line of program
 
,
Edit current line of program
 

DOSPLUS 3.5 Disk BASIC Error Messages

Decimal
Hex
Error Message
0
00
No error found
1
01
CRC error during header read
2
02
Seek error during read
3
03
Lost data during read
4
04
CRC error during read
5
05
Data record not found during read
6
06
Attempted to read locked/deleted record
7
07
Attempted to read system data record
8
08
Drive not available
9
09
CRC error during header write
10
0A
Seek error during write
11
0B
Lost data during write
12
0C
CRC error during write
13
0D
Data record not found during write
14
0E
Write fault on disk drive
15
0F
Write protected disk
16
10
Illegal logical file number
17
11
Directory read error
18
12
Directory write error
19
13
Improper file name
20
14
GAT read error
21
15
GAT write error
22
16
HIT read error
23
17
HIT write error
24
18
File not in directory
25
19
File access denied due to password protection
26
1A
Directory space full
27
1B
Disk space full
28
1C
Attempted to read past EOF
29
1D
Attempted to read outside of file limits
30
1E
Directory full; can’t extend file
31
1F
Program not found
32
20
Improper drive number
33
21
No memory space available
34
22
Attempted to use non-program file as program
35
23
Memory fault during program load
36
24
Attempted to load read only memory
37
25
Illegal access attempted to protected file
38
26
I/O attempted to unopen file
39
27
Device in use
40
28
Protected system device
41
29
Device not available
42
2A
No device space available
43
2B
Illegal devicespec
44
2C
Illegal filespec
45
2D
Invalid data provided
46
2E
Invalid parameter
47
2F
I/O field not found
48
30
Terminated
49
31
File already exists
50
32
Device already exists

DOSPLUS 3.5 Disk BASIC Error Codes

Error Code
Error Value
Error Message
1
0
NEXT without FOR
2
2
Syntax error
3
4
RETURN without GOSUB
4
6
Out of DATA
5
8
Illegal function call
6
10
Overflow
7
12
Out of memory
8
14
Undefined line number
9
16
Subscript out of range
10
18
Redimensioned array
11
20
Division by zero
12
22
Illegal direct
13
24
Type mismatch
14
26
Out of string space
15
28
String too long
16
30
String formula too complex
17
32
Can’t continue
18
34
No RESUME
19
36
RESUME without error
20
38
Unprintable error
21
40
Missing operand
22
42
Bad file data
23
44
Disk BASIC feature
24
46
Undefined user function
51
100
Field overflow
52
102
Internal error
53
104
Bad file number
54
106
File not found
55
108
Bad file mode
56
110
File already open
58
114
Disk I/O error
59
116
File already exists
62
122
Disk full
63
124
Input past end
64
126
Bad record number
65
128
Bad file name
66
130
Mode mismatch
67
132
Direct statement in file
68
134
Too many files
69
136
Disk write protected
70
138
File access denied

Leave a Reply

Your email address will not be published. Required fields are marked *