** 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. < 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 wether 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 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 viewable entries 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 the 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 there 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 assigned 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 which 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?? Whats 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.