Recently, I wrote a letter to TDM about Millenia-K users, and received many replies from RAMEX and SPDOS users alike. Many replies and many questions. I tried to answer all the questions on an individual basis, but experience tells me that the replies were just the “tip of the iceburg”.
Some of the common problems were:
1. Converting files to run from disk. 2. Not knowing what “Sequential File” means. 3. Inability to find out more about the system.
Along with these direct questions, I detected a distinct under-utilization of the AUTO facility that is available with SPDOS and other disk systems for the TS2068. I hope to have the opportunity to present some of the other subjects at a later date. This time I want to cover some of the ways AUTO can be used to your advantage.
The manual states that a BASIC program saved with the name “AUTO”, will be automatically loaded upon initialization of the system. If this BASIC program is saved with a LINE on which to start, you will have a disk which automatically loads your chosen program. This is a great way to create dedicated disks that can enable others in your household, less computer literate than you, to make use of the computer. I have a disk set up with OMNICALC II as an AUTO file that my wife uses to keep the household budget straight.
An even better use might be to make an AUTO file from a MC program. The manual states that a MC file will be automatically loaded and execution will proceed from the first byte of that file. Now you can make your printer interface software automatically load! “My interface MC doesn’t start execution at the first byte of the code.” Neither did mine!
I use a Tasman Parallel Interface (modified to a “C” revision as detailed in the user manual). From a look in the Tasman information sheet, “tasintcode” runs from 64716 for a total of 652 bytes. To initialize I call 64719. To make it work right with the disk AUTO function, I counted back three bytes from the start. This gave me 64713. Next I looked up the code for an absolute jump (JP) in MC which is 195 decimal (page 244 of the TS2068 users manual), I calculated the high byte of the address 64719 as 252 (INT (64719/256)), and I calculated the low byte as 207 (64719-256*252). With this information and the code loaded into protected memory, I POKEd 64713,195; 64714,207; 64715,252 (instruction; low byte; high byte). Now all I had to do was PRINT #4; SAVE “AUTO” CODE 64713,655 (652 plus the three bytes I added). Executing a NEW resulted in an “ok” report. I use this AUTO printer routine on my development disks. That way the printer is automatically ready for LISTing and PRINTing anything I want.
In addition to using this file as an AUTO file, it can be renamed with a single character name (maybe “p” for printer). When this file is pulled up with the optional syntax, PRINT #4’p, the MC will AUTO execute. The short program in this article demonstrates this, but more on that in another article.
One other way to make the system more automatic is to use a program to drive the system. This concept is called making a shell for the DOS. A basic program, like the one that follows, is a simple shell if the programs that are loaded by it either reload the shell program or execute a NEW on termination (PRINT #4: LOAD “AUTO” will reload this shell). This program is simple and much more elaborate schemes could be made. Leave the ON ERR statements out if you prefer, but they make the program unstoppable by normal means. (You have to use a symbol shifted “B”.)
“` 1 ON ERR RESET: ON ERR GO TO 2000 2 PRINT #4’p 3 GO SUB 9000 10 PRINT “CATALOGUE:”” 20 FOR I=1 TO TITLES 30 PRINT I;”) “;T$(I) 40 NEXT I 50 PRINT #1;”PRESS # OF CHOICE” 60 PAUSE 0 70 LET R$=INKEY$ 80 CLS 90 IF R$=”*” THEN ON ERR RESET: STOP 100 IF R$>”0″ AND R$<= STR$ TITLES THEN ON ERR RESET: PRINT #4: LOAD T$(VAL R$) 110 GO TO 10 1000 ON ERR RESET 1010 ON ERR GO TO 1000 1020 CLS 1030 PRINT AT 10,4;”DON’T STOP THE PROGRAM!” 1040 FOR I=1 TO 10: BEEP .1,.01: BEEP .05,10: NEXT I 1050 CLS 1060 GO TO 10 2000 ON ERR CONTINUE 9000 LET TITLES = 8 9010 DIM T$(TITLES,10) 9020 FOR I=1 TO TITLES: READ T$(I): NEXT I 9030 CLS 9040 ON ERR GOTO 1000: RETURN 9900 DATA “PHONEBOOK” 9901 DATA “PANTRY” 9902 DATA “BIO-RHYTHM” 9903 DATA “FAMILY BIO” 9904 DATA “LOANER” 9905 DATA “TASWORD” 9906 DATA “MAIL LIST” 9907 DATA “BANNERS!” “`
Line 2 is the line that demonstrates how to use a printer driver that has been modified to AUTO LOAD. The name is changed to “p” from “AUTO” and can be called as done here. The titles in lines 9900 on should be changed to your own titles. I use this for our “family” disk at home. This can be safely RUN because there is a provision for STOPping it and DOS cannot load my filenames from your disk unless you have files with the same titles. Don’t forget to change line 9000 to set TITLES to the number of files you have named in DATA lines.
As I have stated, this is a simple shell. A more elaborate one might include things like MOVEing from disk to disk, renaming, ERASEing, etc. Let’s see what kind of ideas you can generate! As always, I am available for comments, questions, and problems at: [address omitted], Sanford, FL.