WEDGE
Review
This is a program that I updated the original source so that it can run on any disk based version of SpartaDos 3.2n, SpartaDos 3.3a,b,c,d, and All version of RealDos. A fellow sysop asked me to fix the Wedge so that he could use it with my updated version of SpartaDos and Later RealDos. In the original version it had hard calls that would only work with SpartaDos 3.2d. I added routines that calculate the fixed location so the utility can work with SpartaDos and RealDos. I added it to RealDos because I found that it has some really cool utilities and the Source is a very good way to learn how to program dos utilities. I upheld Ed Bachman's distribution requirements.
Stephen J. Carden Sr.
Download Wedge Documentation
Download RealDos and Wedge Atr File
** The X-Com Wedge v2.1 **
by Ed Bachman (c)1989.
========================================================================
A "resident" command processor extension utility. Designed
specifically for SpartaDOS x3.2d and XL's or XE's with system memory of
128k or greater ONLY!!
========================================================================
Note: SpartaDOS, SpartaDOS-X, Multi I/O, MIO, BASIC XE & MAC/65 are
trademarks of ICD, inc.
Atari 130xe & 800xl are trademarks of Atari inc.
========================================================================
Archive contents.
This is a listing of the files included in this archive.
WEDGE.COM -- The wedge program itself. (vers 2.1a)
WEDGE.DOC -- This text file.
QUICKREF.TXT -- A quick reference chart for the Wedge's commands.
ADDENDA.TXT -- Updates, revisions, and accolades.
BMENU.WDG -- A sample Wedge Disk Accessory.
BMENU.DOC -- The docs to BMENU.WDG.
PETERSON.TXT -- Users of the Peterson XE upgrades, please read this!
P_FORMAT.COM -- A demo file for Peterson upgrade users.
PROBLEMS.TXT -- Having trouble? read this.
WDA_TECH.ARC -- Info and utils for programming Wda files.
When distributing the Wedge, please do not distribute it in any other
manner than in its original archive, with all included support files
intact.
========================================================================
Requirements for using the Wedge.
You will need an XL or XE computer, having at least 128k of memory, and an
unmodified copy of SpartaDOS x3.2d. Please consult
"PROBLEMS.TXT" and "PETERSON.TXT"for a more detailed
account of your
system requirements.
========================================================================
A new version of the Wedge?
Yes, still ANOTHER wedge. With even more extended functions, in addition
to some enhancements over the original v2.0x release of the Wedge. Those
of you currently using version 2.0x will feel right at home. New users of
the Wedge will find it a powerful utility, adding more than 20 commands to
the SpartaDOS x3.2d command processor. (24 if you have an Mio). Plus 2
minor corrections to the standard Dos commands. Most of these functions
are NOT destructive to programs or data residing within the main bank of
memory. While adding less than
200 bytes to Memlo. This power doesn't come without a price however, you
WILL need an XL or XE with at LEAST 128k of memory! And, of course, you
will need SpartaDOS x3.2d.
Before running the Wedge..
Please take the time to read the documentation very carefully. Added
features mean added complexity. A good working knowledge of your DOS as
well as the Wedge will help you get maximum performance from this package.
These doc-files have been print formatted, so you may copy them to your
printer. As an alternative, you may simply wish to print out
"QUICKREF.TXT" included in this archive. Quickref is simply an
alphabetical listing of the Wedge's commands with a short description and
usage syntax. I recommend having a printed copy of the wedge docs (or
quickref) around till you get used to using the Wedge. If you've gotten
used to using sparta, the Wedge will be a snap!
The Wedge exists almost entirely within the extended or "banked"
portions of memory on your 128k+ XL/XE. With only a small driver residing
in low memory. The 4 banks in which the wedge resides in are the same
banks used by BasicXE. This means you CAN NOT use BasicXE in the extended
mode! (I don't recommend using the Wedge with BasicXE at ALL, due to BXE'S
ability to modify the extra ram banks).. However, if you have MORE than
128k of memory (e.g a 256k 800xl or a 320k 130xe, etc.) You CAN use a
ramdisk providing you use the /E parameter when you init the ramdisk using
RD.COM.(this will leave the high 64k of extended ram free).
========================================================================
Running the Wedge.
WEDGE [[dn:path>]batfile[.ext]]
When you run the Wedge (loadable from a batchfile or from the command
line). you can also add a parameter to the wedge that will call a
batchfile upon wedge init. A note on running the wedge from a batchfile:
if you call the wedge with a batchfile spec, this will terminate any
currently executing batchfile. You need not specify an extender if the
file is a ".BAT" file. When the Wedge loads and runs it will
test for the following conditions, if SpartaDOS 3.2 is present, if the
computer has at least 128k of ram, and finally if there is a Multi I/O
device on-line. If the first 2 conditions are not met the Wedge will abort
with an error message, if the wedge finds an MIO on-line then the user
will have 4 more extended functions available. These functions are
explained in the "MIO-specific commands" section of this text.
*** Command overview. ***
The following is a list of commands, their type, usage & syntax.
Please note, command "type:" specifies if the command is
destructive to memory in the main bank. This is important to note. Since
MOST commands will not affect any programs or data in the main memory
bank, However there are a few that will overwrite or alter the
memory. You will notice a "Warning" in the type field, see the
command description for details. If you are familiar with the earlier
versions of the Wedge you will find these commands familiar, but please
read thru the description, since there have been modifications to their
usage/syntax.
========================================================================
ABAT type: memory safe
syntax:ABAT [Dn:][path][filename.ext]]
e.g. : ABAT
ABAT AUTOBAT.BAT
ABAT D1:AUTOBAT.BAT
ABAT >DOTHIS.BAT
This function is an implementation of the Sparta "autobat"
function. This particular implementation does NOT, however, use page 6 to
store the autobatch re-run code and file spec. So you may use the auto
batch function with programs that use page 6, Basic programs, or the
Mac/65 cart for instance. Also you may disable the autobatch functions
without a coldstart by simply using the "ABAT" command with no
parameter. Please note that when specifying a file-spec for Abat, if you
do not spec a "Dn:" then the default Dn: will be assumed for the
filespec. Abat will check for the file you specify and if it can not find
it. You will be prompted with an error message and then asked if you still
wish to install the filename. See your SpartaDOS manual for more
information on the autobat function.
========================================================================
COLD type: n/a
syntax: COLD [/X]
e.g. : COLD
COLD /X
This is a simple coldstart (re-boot) of the computer. Use "COLD"
to perform the equivalent of a "RUN E477". Using Cold in the
second example will enable the SpartaDOS-X cartridge (if there is one)
upon reboot. I find this useful when moving between dos types. Note: If
you don't have SDX then the "cold /x" command will work the same
as the "cold" command.
========================================================================
COUNT type:memory safe
syntax: COUNT [Dn:][>path>][fnam.ext]
e.g. : COUNT
COUNT D2:*
COUNT *.M65
COUNT D1:DATA>FOO*.DAT
This command will return the number of files in the default or specified
directory. Usage syntax is the same as the Sparta DIR command.
========================================================================
DEC type:memory safe
syntax: DEC [decimal number]
e.g. : DEC 1234
DEC 65535
This command converts a decimal (base 10) number, (entered in atascii) to
hexadecimal (base 16). Note: this conversion is only accurate on decimal
numbers up to and including 65535. Any numbers larger than this will cause
a parameter error. This function returns a hex value in a
"$xxxx" format.
========================================================================
EDIT type: memory safe
syntax:EDIT [Dn:][path>]filename[.ext]
e.g. :EDIT STARTUP.BAT
:EDIT D3:>BAT>TERM.BAT
This is a rather simple feature. It is designed to replace the "copy
E: textfil.bat" type of operation. I strongly oppose the previously
mentioned operation, as there is simply no faster way to trash a disk,
simply because there can in NO WAY be enough error protection in a copy
from E: process. Hence the "Edit" function. You call Edit by
specifying the name of the file you wish to create as a parameter. You
will notice that Edit will not clear the screen. Other than that
difference, all your text editing must be done in the same fashion as a
copy from E:. Upon pressing return that particular line of text is placed
in the destination file. You may close the Edit function at any time by
either a control-3 or a break key press.
========================================================================
EXIT type: memory safe
syntax: EXIT
e.g. : n/a
This command is simply a method of exiting/disabling the wedge without
rebooting. you should note however that memlo is checked and if you have
loaded any handlers in AFTER you loaded in the Wedge, Exit will cause a
coldstart. Make the wedge the last lo-mem handler you install if you
desire to avoid reboot upon exit of the wedge.
========================================================================
FIND type: memory safe
syntax: FIND [Dn:][path]filname.ext
e.g. : FIND *.M65
FIND <*.TXT
FIND D3:MYFILE.TXT
FIND >DATA>NEW*.*
FIND D4:>ACTION>FOO.BAR
This function will search for a specified file and report any and all
matches of the filespec. Find will only search one drive at a time. You
may specify an alternate drive and/or directory in which to begin the file
search operation. Wildcards are accepted in both the pathname and
filespec. When specifying an alternate directory in which to begin the
file search, any dos-legal path will be accepted. *Please note* that a
path spec of "<<>" is illegal, just as it is in
the CWD command. One further note, this find command will scan using a
"tree" method as opposed to "passes", also be aware
that searching a large capacity drive may take a while..
========================================================================
FORMAT type: memory safe
syntax: FORMAT
e.g. : n/a
This function will perform a SpartaDOS compatible disk format in a similar
manner to the SpartaDOS X cartridge. Namely, via a nifty little pop-up
menu. This formatter may only be called from the command line as opposed
to an xio command in SDX. Further, this formatter will only create disks
in sparta format since 3.2 has an AINIT command capable of producing
Ataridos formatted disks. Subsequently, the "boot loader" code
is (c) ICD,inc and is used by this function solely for the purpose of
creating SpartaDOS compatible disk media. This formatter works on a
variety of 40 or 80 track, single or double sided floppy drives, and
supports single, double, and enhanced density. It also supports the
ultraspeed skew on the ICD doublered 1050's. Additionally the formatter
can also re-init a disk
(build a fresh directory) not only on floppies but on a mio ramdisk or
hard drive as well. The formatter does NOT recognize internal ramdisks
(this is intentional).
The formatter is accessed by simply typing FORMAT at the command prompt.
The menu is relatively self explanatory, however I'll cover its use in
detail here. Menu choices are highlighted in inverse video. To leave the
menu, simply press the escape key. You must first select a drive in order
to proceed, you'll notice the menu prompts
you for a drive number upon init. Simply enter a drive number from 1 to 8.
Press the "U" key to select a new drive. The formatter will test
the drive and will reprompt you if it cannot access the drive. If the
drive is on-line the formatter will attempt to identify the type of drive
it is. Ramdisks and hard drives cant be formatted, this will be displayed.
U/S doublered drives will cause the menu to come up in 40 tracks single
sided double density hi-speed skew. All other floppy drives will come up
in 40/SS single density. The formatter is intelligent, so it wont let you
spec double sided on a 1050 or ultraspeed on a drive that is not capable
of it.
Here is a list of the available commands and their respective keypresses.
Please note that not all of these commands will be valid all the time, due
to drive type, size, and selected menu options.
<keypress> <command> < description >
"U" Unit /select a drive to format.
"V" Volume /enter a volume label. (8 chars max)
"S" Skew /select sector skew.
"T" Tracks /select #of tracks,#of sides.
"D" Density /select disk density.
"F" Format /format floppy disk only.
"B" Build /build a directory (re-init).
"Esc" --- /quit the format menu.
*** Special note ***
**** Upgraded 130XE users take notice! ****
If this command appears to "bomb" on your computer please refer
to the included text files, "PROBLEMS.TXT" and
"PETERSON.TXT". As there seems to be a minor anomaly in the
peterson XE upgrades, it can be easily corrected.
========================================================================
HEX type:memory safe
syntax: HEX [hex number]
e.g. : HEX A
HEX E456
This command does the inverse of the DEC command. Converting a hex (base
16) number to a decimal (base 10) number. A hex value entered here will
have its decimal equivalent returned. Up to 3 byte hex numbers (e.g.
$XXXXXX) are supported. Any non-hex arguments will cause a parameter
error.
========================================================================
LIST type:memory safe
syntax: LIST [Dn:][>path>][fnam.ext] [/P]
e.g. : LIST
LIST D2:
LIST >TEXT> /P
LIST *.M65
LIST D1:DATA>FOO*.DAT
This command will supply you with a double column directory listing in
Ataridos format, (e.g. "*"=locked & sector count vs. bytes).
Upon completion of the directory LIST will return the number of valid
entries recorded. You may break the listing at any time (however an error
128 will be reported). If you use the list command with no parameters, a
filespec of "*.*" in the current directory will be assumed. As
for parameters (drivespec, pathname, & filespec) simply treat the LIST
command as you would the standard SpartaDOS "DIR" command.
Params: use the "/P" parameter to pause the directory listing.
Note: at the "more" prompt you may abort via an escape,break or
control-3 key press.
========================================================================
MOVE type: memory safe
syntax: MOVE [Dn][path]filenam.ext dest>dirpath> [/O]
e.g. : MOVE TEST.DAT SUBDIR1>
MOVE D2:*.* >
MOVE >*.COM >CURRENT>
MOVE NEW*.M65 >ML> /O
This function will move files from one directory to another on the same
drive. The Move function is unlike a file copy since the actual data
comprising the files is not moved, only the directory entries are moved,
and the old references deleted. This is useful when disk space is at a
premium, when trying to avoid fragmenting a hard drive, or, when moving
large files on the same drive (the move process takes the same amount of
time whether moving a 1 byte file or a multiple meg file). Move requires
at least 2 parameters to work, the first is the filename (or names, you
can use wild cards). The second is the destination directory into which
you wish to move the files. You may alternately spec a drive or dir-path
other than the default. If no dirpath is specified in the first parameter
Move will assume the default directory. If an alternate drive is spec'ed
move will assume the default dir (unless you spec a directory as well).
The
destination directory must be a legal path from.. 1- the current
directory, when using the default directory. ..or.. 2- the main directory,
when specifying a source dir OTHER than the current default directory.
** Please NOTE ** you MUST end the destination parameter with a
">" character! This is the same syntax the copy command uses,
and you will receive an error if you don't. There is no filename
restriction like my previous versions of Move & Xmove. Take a few
moments to check your directory paths, the move checks for valid
dir-paths, but it cant check for the desired one!
Params: using the "/O" parameter will force an overwrite of
matching filenames in the destination directory. Use this param with
caution since Move will erase these files! and new directory entries will
take their place.
More on MOVE...
Move will ONLY work on SpartaDOS formatted disks. Move will NOT move
locked files, and unless the "/O" parameter is used, Move will
not transfer any files that it finds to have name matches in the
destination directory. If during the Move operation, the destination
directory fills to capacity (127 file entries), the Move operation will be
terminated and an error 162 will be reported. Also note that during a long
move operation, the process will seem to slow, this is normal, due to the
length of the directories being scanned.
========================================================================
PCOPY type: memory safe
syntax:PCOPY D[n]:[path>][fnam[.ext]] [Dn:][path>][fnam[.ext]][/A]
e.g. :PCOPY *.* D3:
:PCOPY TEST.OBJ FINAL.COM/A
:PCOPY SRC> D7:*.?XX
PCOPY is shorthand for "protected copy". This is useful for
transferring files WITHOUT destroying anything in the main bank of memory.
This function is nearly identical to the standard dos Copy operation with
one exception, Your source device MUST be a Dx: device. This should
present little problem since the only other common device to copy from is
the E:ditor. However, I don't endorse this practice, and Pcopy does not
support it. If you MUST copy from the E: device then see the
"EDIT" command description.(Edit is also memory safe.). With the
previously mentioned exception, you may use PCOPY in the same manner as
the dos copy command. Please refer to your SpartaDOS manual for a more
detailed description of the COPY operation.
========================================================================
PEEK type:memory safe
syntax: PEEK [hex value]
e.g. : PEEK A
PEEK E456
The peek command is familiar to nearly everyone, I wont attempt to
explain. The result of this operation is returned in a byte and word
format with the location being peeked being the LSB of the word value. all
results are in hexidecimal. Please note that this command will only allow
you to peek the values in the main bank of computer memory, the Wedge
prevents you from accessing the extended banks via the peek or poke
command. Further: the wedge's implementation of peek (& poke) takes a
hexadecimal value as opposed to a decimal value. Note: both peek and poke
use 4 locations in page 0 $CB to $CE, so you will not be able to alter
these values since they are restored to their original values upon
completion of the command.
========================================================================
POKE type:*Warning*
syntax: POKE [location] [value]
e.g. : POKE 53 0
POKE 2C5 80CC
** Warning! this command makes no checks on location (other than
relegating all pokes to the main bank of memory), use with caution, as you
can quickly crash your computer thru a misplaced poke. Make no attempt to
poke $D301 with any value as this WILL crash your computer! **
This command (like peek) uses hexadecimal values from 1 to 4 digits as
input. no results are output. The Poke command will also poke a word (or 2
byte) value into memory with the location (the first param) being the LSB
of the word being poked. Also note that your poked value is entered in
MSB/LSB format.
========================================================================
PURGE type: memory safe
syntax: PURGE [Dn:][Dirpath>]
e.g. : PURGE
PURGE D3:
PURGE OLDFILES>
This function will allow you to delete files in the specified directory
which are not grouped logically. For example, if all the files you wish to
delete have the same extender, you could type "erase *.M65" and
your set! But what if the files are not so conveniently grouped? thats
where Purge comes in. Purge will scan the spec'ed directory (the default
if none is specified), and report each filename found. It will then ask if
you want to delete the file. You must respond with a "y" or
"n" (caps or lowercase), any other key will be ignored, EXCEPT
for escape,control-3, or break, which will abort the purge operation.
Purge will NOT delete locked files. it will simply display them and skip
to the next file.
========================================================================
READ type:memory safe
syntax: READ [Dn:path>]filename.ext [/A,F,T]
e.g. :READ NEWFIL.TXT
READ ASCII.TXT /A
READ D4:>DATA>FILEX.BIN /F
READ *.*
This command will allow you to view or "read" the contents of
the specified file in a paged format. When the screen fills READ will
prompt you with a "<---(more)--->" prompt, at which point
you may simply hit any key to continue reading the file, or, you may hit
Break, Escape or Control-3 to abort the file "read" operation.
Some notes about read: Although READ was primarily designed as a text file
reader, it will view the contents of any file, (binary, saved basic etc.).
With this in mind there a few things which read will do which aren't
immediately apparent. Firstly, Read will attempt to identify the file, if
it can not, it assumes it is a text file and enables all screen control
codes. Secondly read will enable word wrap for text files only. (these
would fall under the "text/other" files
under the WHAT command). If read identifies the file as something other
than a text file it will disable the screen control codes, and word wrap
and simply display the file in a paged format, (printing ALL characters in
the file including screen formatting char's).
Params: Read supports 3 parameters which may be used only 1 at a time.
they are as follows.. "/A" use this param to convert ASCII text
files to a readable format (e.g. atascii for this reader), this param also
forces the text mode of the read function. "/F" use this to
(F)orce an unformatted (or binary type) read of the file. "/T"
use this to force a file read in the text mode. (this is handy for some
pre-formatted text files which may "fool" the identify file
functions).
READING multiple files. (an AUTOfile function)
** See the "SET" command's "SET AUTO" description **
** for more info on using the autofile function. **
If the Wedge's AUTOfile function is set to on, (the default on wedge init)
You may optionally read more than one file by using wildcards in the
filespec. In this case read will print an additional prompt. Namely the
current file it has open for a read, plus a query. Hitting the Escape key
at any prompt in the multifile read will cause READ to skip to the next
file (if there is one), whereas a break or control-3 keypress will abort
the operation as before. Options selected (the /A,/T,/F ) are global in a
multi file read, all subsequently displayed files will be affected by the
chosen option.
========================================================================
RENDIR type: memory safe
syntax: RENDIR [Dn:][path>]oldname newname
e.g. : RENDIR TEST CURRENT
RENDIR ASM>ACTION OTHER
RENDIR <CURRENT TEMP.TXT
RENDIR D4:TERM>DL1 OLDBUFF
This function will allow to rename your sub directories, with one
restriction. You MUST type the entire source and destination directory
names. Wildcards are not accepted. There are no other restrictions. You
may even rename the current subdirectory from within the subdirectory via
the "<" path spec. Note: Rendir checks for and does its best
to convert input to dos-legal characters, if however rendir cannot convert
the dir-names specified it will abort with an error message. You may use
extenders if you wish.
========================================================================
SET type:memory safe
syntax: SET [command] [option]
e.g. : SET AUTO OFF
SET AUTO ON
SET PATH
SET PATH D3:>WED_UTLS>
This function is used to modify some of the Wedge defaults. Namely,
controlling the status of the AUTOfile function, and the default directory
of all calls for a Wedge Disk Accessory. SET currently supports 2 commands
"AUTO" for the AUTOfile function, and "PATH" for the
default path the Wedge will use to call its "Wda's". Thus I've
broken this description into two parts.
Using "SET AUTO"..(controlling the AUTOfile function)
The AUTOfile function is active only in the READ, WHAT, and VIEW commands.
What it does is this. It checks for any wildcards spec'd in the filename
parameter. If found the Wedge will enter a multi-file mode, where the
Wedge will allow you to operate on ALL files of a matching filespec. If
the Wedge finds a file with a matching filespec, it reports the file
currently open for an operation. You can, from there, hit any key to
continue, hit escape to skip to the next file (if there is one). Or, hit
break or control-3 to kill the operation. This feature is also valid at
any "more" prompt printed during this process as well.
Like any feature of this sort, there are times when its nicer NOT to have
multifile mode. The "AUTO" command allows you to toggle the
autofile feature on and off. Simply use the set command as in the first
two examples above.
Using "SET PATH".. setting a default WDA directory.
The set path command is used to control the default directory where the
Wedge will look to load in a wedge disk accessory. You can use the set
path command to either specify a new default directory path, or by using
it as in the third example above, to clear the currently set default
accessory pathname. Directories are tested for validity. The resident
status of a currently loaded disk accessory is invalidated by the use of
this command. This means you can no longer re-run the resident program by
using WDA, you must re-load it. See the last two examples above.
** See the section entitled "Wedge Disk Accessories". **
========================================================================
VIEW type:memory safe
syntax: VIEW [Dn:path>]filename.ext [/P]
e.g. :VIEW TEST.ALF
VIEW D3:>DATA>NEW.ARC /P
This will allow you to "see" the contents of an Arced or Alfed
file. The entries are displayed in the following manner.. filename,
compression type, compressed file size (in bytes) and uncompressed file
size (also in bytes). note that "stored" files don't have an
uncompressed filesize. In this case "n/a" will appear in that
column. Note: You may specify any valid Dn: and/or dirpath in your
filespec. Also, should you attempt to view a file other than an Arc/Alf
file
you will be informed of an error and the file type (if identifiable) will
be displayed. Also: this viewer will only work with arc-files of 16meg or
smaller, there is no maximum to the number of viewableentries in an
arc-file. Viewing files on an ataridos formatted disk as opposed to a
SpartaDOS formatted disk will result in a marked reduction in the speed of
the display.
Params: The "/P" parameter will pause the screen display after
view has displayed 22 rows of data, you will be prompted with a more
prompt. At this point you may abort the display via a Break, Escape or
control-3 key press. Any other key press will continue the display.
VIEWING multiple files. (an AUTOfile function)
** See the "SET" command's "SET AUTO" description **
** for more info on using the autofile function. **
Again, if the Wedge's AUTOfile function is set to on. You may optionally
view more than one file by using wildcards in the filespec. In this case
view will print an additional prompt. Namely he current file it has
open to view, plus a query. Hitting the Escape key at any prompt in the
multifile view will cause VIEW to skip to the next file (if there is one),
whereas a break or control-3 keypress will abort the operation as before.
Options selected (the /P) are global in a multi file view, all
subsequently displayed files will be affected by the chosen option.
========================================================================
WDA type:memory safe
syntax: WDA [Dn:path>][filename] [file-specific params]
e.g. : WDA
WDA CALC
WDA D3:>TEST>HELP
WDA BMENU D2:>BATFILE>
This command is the function that allows you to run specialized external
programs, from within the Wedge environment. This is similar to running
"external" commands in sparta, but with a few added benefits,
the foremost being, no memory in the main bank is disturbed. To accomplish
this, the files are in a special format and use a special extender of
".WDG" in their filename. These files are called Wedge Disk
Accessories, or Wda's for short.
This command can be used in two ways. In the first example, to call an
already resident accessory. Or, as in the second example, to call a new
Wda. Notice you specify the Wda to call by typing its name ONLY, no period
or extender. These files have an extender of ".WDG". Wda's may
be called from either the default directory, a supplied
directory, (as in the third example), or by a default drive/path name. You
can specify a default pathname by using the "SET PATH" command.
Further, note that if you spec a pathname before the WDA name, that any
previously set path will be overridden just for that call. The default
directory is used if there is no default path or supplied pathname. Usage
of the "SET PATH" command terminates the resident status of a
Wda. The last example shows how a disk accessory could possibly use the
command line to pass information as well. NOTE: this is an example only. A
disk accessory should document any use of the command line in its own
instructions.
** See the section entitled "Wedge Disk Accessories". **
** See the "SET" command's "SET PATH" description **
** for more info on defining a default Wda path. **
========================================================================
WHAT type:memory safe
syntax: WHAT [Dn:path>]filename.ext
e.g. : WHAT TESTFILE.ARC
WHAT D3:TEST.DSK
WHAT >SUB>THIS.*
This command will identify the filetype of the named file. WHAT currently
can identify 11 types of files. Arc, Alf, Binary, Discomm, Saved BASIC,
Extended BXE, Sparta SCOPY, Saved Mac/65, SpartaDOS X command, Wedge Disk
Accessory, and all other files are classified as text/other files. Note:
any dos-legal filename, and/or dirpath will be accepted.
Accessing multiple files. (an AUTOfile function)
** See the "SET" command's "SET AUTO" description **
** for more info on using the autofile function. **
If the AUTOfile function is set to on, You may optionally identify more
than one file by using wildcards in the filespec. In this case
"what" will display a prompt. Namely the current file it has
open for an I.D. plus a query. Hitting the Escape key at the prompt in the
multifile operation will cause WHAT to skip to the next file (if
here is one), whereas a break or control-3 keypress will abort the
operation.
========================================================================
*** MIO-Specific commands ***
The following four commands are only enabled if the wedge finds an MIO
on-line. Non Mio users will not have access to these functions. Any calls
made to unrecognized (or unusable) commands are treated as a standard
sparta com-file call. No action is taken and the command is passed to
Sparta.
========================================================================
DSWAP type: memory safe
syntax:DSWAP /xx[S] [[dn:path>] [filename][ext]]
e.g. :DSWAP /13
:DSWAP /23S
:DSWAP /74S BATFILE
:DSWAP /56 D1:>ASM>MLPREP.BAT
This command is functionally identical to version 5.0 Dswap. For those
unfamiliar with that version. Dswap will allow you to swap ssigned
drives on the MIO from the dos command line, (or from a batch file),
without going to the MIO menu and manually exchanging the assigned drives.
To swap the mio drive assigns simply type the two drive numbers preceded
by a slash, (e.g. "/13").
Optional parameters: The "S" parameter will restore the current
directories on the swapped drives. Type in the "S" parameter
immediately following the drive numbers. (e.g. "DSWAP /13S").
Note that there is no space separating the "S" parameter and the
drive numbers. **Please note:** when using the "S" parameter
BOTH drives MUST be on-line (and active), or Dswap will error and the
operation will abort.
The final parameter is to specify a batchfile to be run upon termination
of the dswap process. This is particularly handy when using dswap from an
executing batchfile on a "swapped" drive. Since once the drives
are switched, the batchfile can no longer be "seen" by
SpartaDOS. Hence the ability to "chain" a batchfile directly
from Dswap. Please note: Spec'ed Dx:'s in the chain bat filespec are
relative AFTER the swap operation. An extender is not necessary if
the file has a ".BAT" extender.
========================================================================
LFT type: memory safe
syntax: LFT [option]
e.g. : LFT
LFT ON
LFT OFF
This command will allow you to check or set the linefeed status of your
MIO. Lft with no parameter displays the current status of linefeeds. Use
lft ON or OFF to change the linefeed setting.
========================================================================
MIO type:*Warning*
syntax: MIO
e.g. : n/a
** Warning! due to the nature of this command and the manner in hich
the MIO menu functions, main memory (from $3000 to $5000 approx.) will be
overwritten. **
This command will allow Multi I/O users to access the mio menu directly.
The advantage to this being, this method of entry will not cause a reboot
if you have a cartridge installed, so any lomem handlers you may have
installed will remain intact.
========================================================================
MLOCK type: memory safe
syntax:MLOCK [-,+][#,@]
e.g. :MLOCK
:MLOCK +3
:MLOCK -3
:MLOCK +@ <--(shifted 8)
This command will allow you to optionally lock, unlock, or view the
current lock status of all the assigned drive spaces on the MIO. Firstly,
be aware that there only 2 types of "legal" devices that can be
locked via the MIO menu (or MLOCK), they are hard drives and Mio ramdisks,
you can NOT lock a re-assigned floppy drive with this command, Nor can you
lock an empty (or un-assigned) drive slot.
Usage: use the "+"(plus) char to specify a lock operation and a
"-" (minus) char to specify an unlock operation. Follow these
"control" characters immediately with the number (1 thru 8) of
the drive to operate on. Mlock will report the status of the operation
upon completion (e.g. drive type, Dn:, locked/unlocked). If the drive is
NOT a legal device, Mlock will abort and report an error. Should you
desire to lock ALL the legal Mio devices, rather than specifying
"mlock +1,mlock +2,mlock +3 etc." simply use a shifted 8
"@" in place of the drive number. Depending on the control
operator (+/-) this will lock/unlock ALL legal mio devices. You may
view the locked status of all 8 mio drives by simply typing
"MLOCK" with no parameters.
========================================================================
"Just a few more things"...
Although not a command, another function of the Wedge is to check all
"COPY" commands to see if there is a destination parameter.
If there is no destination found the Wedge will trap that command
and report an unspecified destination, not allowing the copy to take
place. Also the "?DIR" function has been replaced, I've found
that if you happen to use this command when you are past a certain level
of subdirectories (usually when you MOST need it!), that it will overwrite
the routines under the OS. So I've supplied my own "?DIR"
routine with a larger output buffer.
========================================================================
*** Wedge Disk Accessories ***
New for the Wedge (in this release), is the ability to call external
programs, and run them from banked memory, preserving main memory. These
programs could conceivably perform a variety of functions, from a simple
calculator to a text editor, to ... who knows? This feature will increase
the wedge's functionality, since it will allow a variety of user specific
functions to be performed without committing me to writing them, and
directly incorporating them into the wedge program. These files have their
own format so you cant just use a simple binary file as a Wda. Sorry for
this, but the load and run process is a bit complex, so there are certain
rules a file must conform to in order to be run from the wedge (unarc the
technical info file for Wda's "WDA_TECH.ARC"). I'm hoping to see
some interesting user-written Wda's in the future!
=======================================================================
System errors under the Wedge.
From time to time you may encounter an error situation while using the
extended commands of the Wedge. This is not a problem since, like the dos
the wedge has some very good error protection built in. You will be able
to recognize an error encountered by the wedge, as it is reported in a
number fashion. "Error -- #xxx" So should you encounter this
situation.. Remember, your dos STILL has it's verbal error messages, its
just that the Wedge does not.
Tips on using the Wedge..
All Wedge commands can be entered in upper and lowercase, including the
hex numbers used in the peek, poke, and hex commands. (Remember Sparta
STILL requires a capital letter for a device name!). The Wedge has been
extensively tested on both a stock 130xe and a 320k xe. It has been
designed to be both as powerful AND benign to current system usage as
possible. The Wedge has constantly been resident in my system during its
development, and has proven to be a very useful utility (albeit somewhat
habit forming). It also Works under text editors (like Textpro 3.2r),
providing they don't use extended memory. Another application where the
Wedge really shines is
under Bobterm v1.10 with the CLI installed. (imagine being able to find a
file, view an arc/alf file or read a text file all while on-line).
Should you have a .COM file of the same name as a command you can either
rename the file, or, you will have to type the ".COM" extender
of the file. If you do not the Wedge will steal that command. This applies
to DOS as well as the Wedge's commands. (note another solution would be to
prefix the filename with a dirpath as well.) There were other approaches
to this, however in order to maintain the COPY parse and to be able to
relocate the cursor over a previously typed line, having it execute. This
method of command parsing was chosen.
One further note. The output from the wedge's commands cannot (currently)
be re-directed via the "PRINT" command. The i/o redirection has
proven to be a difficult proposition to say the least, further I've found
the "print to diskfile" option of the print command to be at
best "buggy" even in unmodified Sparta dos.
Technical notes.
The wedge initially loads in at $3000 and uses much of the main bank for
its load process (up to $9B00), the final routine relocates to lo-memory,
initializes the code in extended ram, and resets dosini, memlo, and
vxcomli. The Wedge uses the E:ditor via the put vectors in iocb #0 and
channels 1 thru 3 to do its I/O. The bulk of the commands are not memory
destructive. Since preserving main bank memory was a major consideration.
Please note: that there are some programs that will simply NOT work under
the wedge. Mainly programs that occupy the extended (xe compatibility)
banks of memory, or programs that keep their screen aria below $8000.
More to come??
What's in the works for the Wedge? who knows.. Perhaps a few WDA's, or
something that flicks my switch. Along with the usual maintenance stuff.
If anyone is interested in coding a Wedge Disk Accessory, or has a nice
m/l program of 16k or less in size that they would like to see work with
the Wedge. Unarc the included file "WDA_TECH.ARC" for an outline
of the requirements for coding a WDA, as well as the necessary conversion
utility. See the end of this text for info on contacting me regarding any
difficulties you may have, or, for the latest updates to info and
conversion utilities.
** disclaimer **
This program is provided to the user on an "as-is" basis with NO
promise of suitability for a specific purpose, Further, the Author will
NOT be responsible for ANY damages caused either directly or indirectly
thru the use of this program.
Caveat and etc.
As usual (particularly in this version), I'm sure I've missed some facet
or detail of this program. Please bear in mind, it is difficult to cover
every base in an environment such as SpartaDos and the Wedge itself.
Should you encounter any bugs, have any suggestions or questions
concerning the Wedge, Feel free to contact me on GEnie, my user id. is
E.BACHMAN. Or on my support board. The Atari Computer Users Technical
Exchange. (A.C.U.T.E. BBS. for short) at 215-261-0620 (300-2400 baud, 24
hrs), leave feedback to the co-sys. Regarding bug reports, please include
a complete system description and report of the problem, thank you.
This and subsequent versions of the Wedge are shareware. Please feel free
to distribute the Wedge, (*** PLEASE do NOT distribute the Wedge in any
other form than in this arc file, or on a disk, with all the support files
and documentation intact! ***). If you find this utility useful to you,
tell your friends, tell your neighbors dog, tell me, and maybe even
consider sending a donation, and help to encourage further work on
programs and utilities for the Atari 8-bit.
Thank you!
Send your correspondence to..
Ed Bachman
417 Hanover St.
Bethlehem Pa. 18018
Please feel free to include any suggestions or ideas you may be interested
in seeing in future versions of the "Wedge".
Happy Computing!!
Ed Bachman.