DISK-O-PROTM, Skyles Electric Works, Mountain View, CA. Price: $75.00
Review by Jim Butterfield, Toronto
Disk-O-Pro is a ROM chip which plugs into your PET/CBM. It is intended to be used with upgrade ROM to produce a system which recognizes a whole battery of new commands.
Many of these new commands are the same as on the 80-column CBM machines or on 40-column PETs fitted with new 4.0 ROM systems. Other Disk-O-Pro commands are extra, and don't have counterparts in any standard Commodore system.
Disk-O-Pro is designed to fit into a PET without disturbing certain other "enhancement" systems. For example, it will peacefully coexist with such products as the Toolkit (tm). That's a neat trick, since both packages zero in on the same "wedge" area of Basic, and it needs some work to avoid conflict.
A good part of the attractiveness of this package is the lure of being able to use the new Commodore commands without having to abandon existing program tools that the user has purchased. Compatibility is not 100%, however; and it may be worth a brief discussion on the nature of Basic-extenders and the role that Disk-O-Pro and like packages may play.
Editors vs. Interpreters
Many of the existing software aids help a program in its development stage, but are not needed after the program is complete. Your Toolkit may be great for writing and debugging a program; but when the program is finished, it will run on anybody's PET even those not equipped with a Toolkit. In a similar way, the DOS support program (the "wedge") helps you load and save programs, but isn't needed when the program runs.
Such packages effectively disconnect during a program run. As a result, Basic programs run at virtually full speed.
Disk-O-Pro, on the other hand, participates in the actual running of a program. This means two things: your program will run somewhat slower; and you may not be able to run the same program in a system which does not have Disk-O-Pro installed.
Compatibility with the new Basic 4.0 is quite good. Disk-O-Pro follows many of the internal 4.0 procedures - the tokens are written identically, for example - so that there's a good chance of a program using these features being portable. But the user should be aware that there are minor differences; and sometimes a minor item can hang up your program.
The Compatible Features
All the new disk-oriented commands are there: CATALOG, COPY, SCRATCH, and so on. They may be abbreviated in the usual way; C, shift-A may be used as a short form of CATALOG, for example. Some features such as APPEND won't be needed unless you have the new disk system which supports this function, but they are supplied just in case.
The special variables DS and DS$ are provided, which make error checking from disk a snap. There's a slight difference in the way these variables are handled between the two systems. Basic 4.0 checks the disk status only when the variables are referenced. Disk-O-Pro checks with every normal disk activity, and stores DS and DS$ as ordinary variables. Such variables will disappear after a program change, a CLR, or a LOAD.
An extra disk command, INITIALIZE, is provided for users of the first 2040 disk system (DOS 1,0); they will find it very handy.
There are a few things that have been implemented in Basic 4.0 that Disk-O-Pro can't handle. The changes to Basic are too fundamental for an add-on package to be able to cope with them.
Garbage collection delay is still there with Disk-O-Pro. The old methods of reducing this delay still work (changing and restoring Top-of-Basic at exactly the right times); but the definitive 4.0 solution just can't be patched in.
Basic 4.0 has a nice touch which is a big help when writing disk files; in normal operation, the Linefeed character is completely eliminated from output. On Disk-O-Pro, you'll still have to use the traditional " ,, ;CHR$(13); ,," phrase at the end of each PRINT # line.
There are other minor discrepancies which are likely to be seen on rare occasions. There's a problem with unwanted "flashing" of the EOI line on the IEEE-488 bus whenever the screen scrolls. Basic 4.0 has eliminated this; Disk-O-Pro hasn't. Not important unless you're using two computers to run one disk. On the other hand, if you happen to have two disks on one computer, you may run into another small discrepancy: 4.0 always defaults to device B, whereas Disk-O-Pro goes to the last device referenced. None of this is likely to impact the average user, but it's well to be aware that the differences are there.
Disk-O-Pro is more than just a Basic 4.0 imitation, however: it has a added features of its own. Remember that if you use these features in a program, you'll have trouble running on a system which is not fitted with Disk-O-Pro.
PRINT USING is very useful; it's the answer to printing financial and other numbers neatly in columns. It's nicely done in Disk-O-Pro, and allows numeric values, strings, and literal characters.
Numerics can have commas inserted and values which are too large to fit are flagged in the printout, usually with an asterisk character. One minor problem on PRINT USING: if you don't leave room for the sign character it will be dropped, and a negative value will print as if it were positive.
SCROLL invokes several very useful editing features. After the command is given, the cursor movement keys will repeat automatically after an initial pause. Even better: if you have a program listing on the screen and run the cursor down to the bottom, the screen will scroll and new lines of the program will appear. Scroll to the top, and earlier lines of the program come into view. This can save you the trouble of typing LIST over and over again.
SCROLL also invokes a new set of keyboard operations. Most noticeable is the "softkey" feature: this allows you to redefine any key by using the SET command. How do you redefine a key? Type SET "GOSUB 800" ON "@" and whenever you strike the @ key you'll get GOSUB 800 on the screen. Once you get used to it, you'll find this very useful.
There are several other commands available, including BEEP to beep over the CB2 line, MERGE to stitch two programs together, and KILL to disconnect Disk-O-Pro.
The Disk-O-Pro remains active during a Basic program run. It has to, since it must detect special commands. DOPEN, SCRATCH, or BEEP, for example, call for appropriate action during a run, and just searching for them takes some time. As a result, programs won't run as fast when Disk-O-Pro is in place - even when these special commands are not used in the program. If your program used none of them, you could disconnect with KILL before running.
Time penalty varies depending on the type of work done. It can be as low as 10% for simple FOR/NEXT loops with arithmetic inside, to as high as several hundred percent (!) when using GET# statements and concatenation to drag material from disk (all those DS updates...). The typical run time penalty is around 15%; but this must be seen in perspective. Many programs spend a lot of time inputting or outputting; actual computation speed won't make much difference to these. Most of the time will be spent in waiting for the user to type a response at the keyboard, or waiting for the printer to output a line: any delays due to Disk-O-Pro won't be noticeable.
For short computation jobs, an increase in run time from 20 seconds to 23 seconds won't be serious. For longer jobs, Disk-O-Pro may need to be KILLed .. but there will be plenty of other things that the time-sensitive programmer will need to go after, too.
Disk-O-Pro is an interesting new concept that will certainly be useful to many PET users. It's nicely put together and convenient to use.
Many users will have to choose between upgrading to the new Basic 4.0 system and fitting Disk-O-Pro. They will need to weigh the alternatives carefully.
In some cases, elimination of garbage collection delays, potentially faster run time, and compatibility with future products will rule in favor of Basic 4.0. In other cases, the lower cost of adding Disk-O-Pro, compatibility with an existing Toolkit, and extra features such as PRINT USING and scroll/edit features will tip the balance toward Disk-O-Pro.