Jump to content
  • entries
    23
  • comments
    26
  • views
    46,546

Unpublished Page 6/New Atari User article on SpartaDOS X


flashjazzcat

748 views

Hooked up the XF this morning to see if there's anything of interest on the floppy disks from back in the Nineties. Here's something very much of its time: an article on SpartaDOS X I must have intended to submit to New Atari User (just as it was folding). It's rather slight (I cringe at times reading stuff I wrote way back), but there are one or two insights and the part about AMAC is something I'd forgotten entirely. For all I know, the bug still exists:

 

 

THE SPARTADOS X-FILES

 

by Jonathan Halliday

 

 

 

ROCKFORD, ILLINOIS, 1988

 

In 1988 the American company ICD released a cartridge-based version of their popular SpartaDOS disk operating system. The product was reviewed extremely favourably in Page 6 but Frontier Software's initial asking price was probably beyond the reach of many Atari hobbyists. However, I saved up and bought one and can honestly say that it's the best thing I ever did for my Atari Classic and XF551 drive. Trouble is, ICD hardly supported SpartaDOS X (herein referred to as SDX), and the only programs I've seen in this country which are programmed to recognize it are TEXTPRO, DAISY-DOT 3, and ICD's own SPARTADOS TOOLKIT. So, what lies beneath the surface of SDX?

 

DEBUNKING THE MANUAL

 

Due to the brevity of the technical information in the otherwise excellent SDX manual, I have discovered some of the secrets of this DOS largely by accident.

 

UNDISCLOSED FACTS

 

Firstly, let's tackle the little extras that the manual doesn't mention.

- The 'MENU' command takes an argument. If you type a drive/path after this command, you can specify which directory on which drive you want displayed. For example:

 

MENU DOS

 

will change the current directory to 'DOS', providing 'DOS' exists in the current directory, and then build the directory tree from there downwards. Handy if you have a full disk and don't want to sit around waiting for MENU to read the whole tree.

 

- The CONFIG.SYS file may contain commands like 'DEVICE TD.COM ON' and can load non-SDX drivers by including a different path. For example, 'DEVICE A:\DOS\DRIVER.SYS' in CONFIG.SYS will load a device driver from the 'DOS' subdirectory on drive 1. In this way, lots of the commands the manual tells you to put in AUTOEXEC.BAT can in fact go in CONFIG.SYS, making the boot process faster and the screen less cluttered:

 

DEVICE KEY.COM ON

DEVICE TD.COM ON

 

in your CONFIG.SYS are equivalent to 'KEY ON' and 'TD ON' in AUTOEXEC.BAT. If you have a TIME/DATE cartridge and don't need an AUTOEXEC.BAT at all and don't want the system wasting time looking for it at boot-up, just include

 

SET BATCH

 

in CONFIG.SYS.

 

- You can load drivers at any time. Say you didn't have 'DEVICE ATARIDOS' in your CONFIG.SYS file and you wanted to read a DOS 2.5 disk. Simply type 'ATARIDOS.SYS' at the command prompt and the ATARIDOS driver will load.

 

- After you've switched off the cartridge with 'COLD /N' at the prompt, you can reactivate SDX from your other DOS or wherever by writing to the $D500-$D5FF RAM region. MAPPING THE ATARI says this enables the cartridge control line, and I've found that even peeking some of these locations while SDX is running will crash the system.

 

SMALL GREEN BUGS

 

Yes, there is the odd small bug, quirk, or 'undocumented feature', in SDX. Firstly, an application which reset-proofs itself by hooking into the DOSINI vector at $0C will, in my experience, jump back to DOS and lock up the system when Reset is pressed, UNLESS the program was loaded with the 'X' command, i.e. with BASIC DISABLED, in which case everything works fine. Fortunately, most reset protected software needs BASIC disabled, although, of course, you needn't press Reset at all.

Secondly, DOS 2.5 and MYDOS return status code 3 in the 6502 Y register when the last byte of a file has been read, before any subsequent reads return Error 136 - End Of File. NO version of SpartaDOS does this: they all return 1 through CIO right up until the end of the file. This is a compatability oversight, and means that the odd pedantically written application - the Atari Macro Assembler being the only one I've come across - won't run under SpartaDOS.

 

DELVING INTO THE ARCHIVES

 

SDX directory entries have two new file status bits: 'Archived' and 'Hidden'. 'Hidden' makes files invisible and is largely cosmetic, but 'Archived' can be very useful. I remember once seeing a SpartaDOS utility which copied files onto the RAMdisk and then later copied back to disk only those files which had been altered. You can do the same thing with SDX from a humble batch file. First, here's the batch file:

 

COPY %2 H:

ATR +A H:%2

%1

COPY -A H:%2

 

Type this into a file called COPYMOD.BAT, short for COPY MODified files. To use it, type:

 

-COPYMOD <application> <filespec>

 

where <application> is the name of the program which is going to use the files, and <filespec> refers to the files you want on the RAMdisk. Switch into the directory where the files reside first because you can't type a drive or a path in <filespec> here. The files will be copied onto drive 8, then your applcation will load. After you return to DOS, any of the files on drive 8 which have been altered will be copied back to where they came from, while any unaltered files will be ignored. You might type:

 

-COPYMOD TPX *.TXT

 

Although you'd have to put the 'X' command at the start of the line in the batch file which reads '%1' because Textpro needs the cartridge memory.

How does it work? Well, when a file is opened for write its archive bit is cleared. So, COPYMOD simply sets the archive bits on all the files on the RAMdisk, calls the application, then copies back only the files with clear archive bits.

 

USER GUIDE CONSPIRACY THEORY

 

If you're a programmer, you might, like me, want to write utilities for use with SDX, the supplied commands of which access library routines built into the cartridge. However, if you want to use these routines in your own programs, you can't, because the manual doesn't say how. But it does tell you how to call a few 'Kernel' and 'Misc' routines. The problem is that most of the examples of accessing the 'Misc' vector commands in the manual are incorrect. I once managed, through trial and error, to find out how to call a couple of the routines, but that's another article in itself.

 

THE TRUTH IS OUT THERE

 

It is at this point that we reach SDX's most powerful feature: vectors under the Operating System ROM, and one vector in particular. If you disable the OS ROM and JSR to the VXCOMLI vector at $FFD2, you can execute SDX commands from within your own programs. Thankfully, this works exactly as described in the manual.

Why is this useful? Well, if you've ever seen old PC programs for MS-DOS, you might have noticed many of them offer the capability to temporarily exit to DOS, execute a few commands, and then return to the program. You can do much the same thing with SDX. This is how a utility I once wrote called DOSKEY works: by loading a very simple enhanced command line processor, which merely accepts keystrokes and does some initial pre-processing, and then letting the original command processor perform the typed commands. Beware, however, because commands like 'COPY' will use all available memory and wipe out the calling program. For this reason, 'DOSKEY' hides in an extended 130XE RAM bank while commands are passed to DOS.

Since the VXCOMLI vector enables programs to, amongst other things, load applications, a menu front end and program launcher for SpartaDOS X would be a feasible project. Perhaps a few have been written employing precisely this technique. If there are any more SpartaDOS-X applications out there, how about sending them in?

 

CONCLUSIONS

 

I don't know how well SDX sold in this country, or even whether it is still available, but it has to be the finest DOS for the Atari Classic and even superior in many respects to the PC's MS-DOS, on which it was modelled. But sadly, as with the Diamond GOS cartridge, SDX arrived too late in the life of the Atari Classic for third party manufacturers to really take advantage of it. Fortunately, however, it remains a shrewd investment on its own. If you're using an XF551 or US Doubler 1050 with MYDOS or even SpartaDOS 3.2, moving up to SpartaDOS X, if you can find a copy, is an upgrade I can guarantee you will never regret.

 

 

 

Jonathan Halliday, 1998

 

 

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...