Classic Computer Magazine Archive COMPUTE! ISSUE 19 / DECEMBER 1981 / PAGE 130

THE PET® GAZETTE

A Look At Superpet

The SuperPET looks about the same as an 8032 PET which is not surprising—it is an 8032 with two additional boards inside, 64K more RAM (necessary to hold the new, disk-based languages), and a new I/O system. Externally, it resembles an 8032 except for three things: 1. the logo reads "SuperPET" and, below, "SP9000"; 2. there is a set of stick-on key overlays for APL special characters; and 3. there are two, three-position switches attached to the side of the black base, below the numeric keypad.

SuperPET comes with four high-level languages, "Waterloo micro-" versions of: BASIC (40.5K), PASCAL (40.5K), FORTRAN (52.5K), and APL (64.75K). COBOL is expected soon. In addition, there is an extensive development system (nearly a high-level language) for work in 6809 machine language (an Assembler, Monitor, Linker, and Editor).

Availability

According to Commodore, a SuperPET ($1995) ordered today would arrive in about 45 days. Owners of 8032's could install a single-board upgrade for approximately $500. This upgrade is expected to be available early in 1982.

All the languages are on a single 8050 disk. This does not mean, though, that the SuperPET cannot be used with a 2040 disk system. Program 1 will redefine an 8050 as device #9. It should be linked to a power-off 2040. Turning on the 2040 leaves it as device #8. Program 2 will move the languages from an 8050 to a 2040. The value of F$ must be added to the program when transferring the final two programs (a library of utilities) on the disk, "&00,)".%80"and "7!4,)".%80". The internal quotes cannot, of course, be part of a filename—what's more, the characters are not what they seem and must be defined using CHR$ as shown in Program 3.

Program 1.

10 OPEN 15, 8, 15
20 PRINT #15, "M–W" CHR$(12)CHR$(00)CHR$(2)CHR$(9+32)CHR$(9+64)
30 REM THE LAST TWO 9'S DEFINE DEVICE #9.
40 REM FOR THE 2031 (SINGLE DRIVE), USE 119 INSTEAD OF 12.

Program 2.

5 PRINT"{CLEAR}":CATALOGD0ONU9 : INPUT"{DOWN}FILE NAME";F$
7 SCRATCH(F$):POKE59464, 0
10 OPENl, 9, 8, "0:"+F$+", P, R":K=1:SO =59464
20 OPEN 2, 8, 8,"0:" + F$ + ",P, W":B=255: Z=0
30 GET#l,A$:S=ST:B=B+K:IFB>254.THEN B=Z :NB=NB+K : PRINT" {UP} {ERA ERASE END}BLOCK: ";NB
35 IFA$=""THENA$=CHR$(Z)
40 PRINT#2, A$;:IFS=ZTHEN 30
60 CLOSE1:CLOSE2:POKE 59467,0
70 PRINT"{CLEAR}TRANSFER COMPLETE{DOWN}":CATALOGD0

Program 3.

1 REM CREATES FILENAME FOR NON-STANDARD CHARACTERS IN SYSTEM LIBRARY FILENAME
3 F$=CHR$(102)+CHR$(112)+CHR$(112)+CHR$(108)
4 F$ = F$ + CHR$ (105)+CHR$ (98)+CHR$(46) + CHR$(101)+CHR$(120)+CHR $(112)
5 REM ELIMINATE LINE FIVE

Program 3a.

1 REM FILENAME 7!4,)".%80
3 F$=CHR$(ll9)+CHR$(97)+CHR$(116)+CHR$(108)
4 F$=F$+CHR$(105)+CHR$(98)+CHR$ (46 + CHR$(101)+CHR$(120)+CHR $(112)

Manuals

The computer comes with six manuals, one for each language plus the System Overview: Commodore SuperPET. They are large (the BASIC manual is 221 pages) and contain numerous example programs (a second disk includes some of them). The manuals may be purchased separately from Howard W. Sams & Co., Inc., 4300 West 62nd St., P.O. Box 7092, Indianapolis, IN 46206. A minor annoyance in this otherwise carefully planned documentation is the fact that the number 1 and the lowercase l are identical in the Assembler handbook. In general, however, great care has obviously been taken to thoroughly explain each language. The BASIC book, for example, could easily serve as a textbook for learning this version of the language.

The Software Philosophy

Perhaps one of the first questions which comes to the mind of a microcomputerist is: what is a 40K BASIC? Personal computers contain versions of BASIC which are usually 4 to 12K large. An advanced BASIC might reach 18K. What is added when BASIC is 40.5K?

The authors of System Overview: "These language interpreters have been designed specifically for educational use in the teaching of computer programming. The design of the interpreters features good error diagnosis and debugging capabilities which are useful in educational and other program-development environments." There are explicit, lengthy error messages, search and replace (from the Editor), a trace facility, and structured programming.

Briefly, structured programming is a kind of tightening up of the rules of a language. It eliminates programming shortcuts in an effort to make programs more readable and to make languages more easily learned. Loops, for example, are supposed to be indented so they can be seen:

10 LOOP
20    X = X + 1
30    Y$ = VALUE$(X)
40    IF X = 5000 THEN QUIT
50 ENDLOOP

Multiple statements per line are discouraged, spaces are required between the IF and X in IF X THEN..., the keyword VALUE must be spelled out (it replaces STR$ and VAL), LOAD "FILENAME" must have the second quote, NEXT must have a variable, dir "disk/1" replaces cAdl, and so on. This elimination of shortcuts makes programs more easily debugged, more easily read, but it also makes them larger, slows typing them in, and slows execution times. Comparing the run time of the above with the non-structured equivalent: (FOR I = 1 TO 5000: Y$ = STR$(I): NEXT) takes 54 seconds, the structured version takes 119 seconds.

Some abbreviations are permitted: 1 for LIST, ? for PRINT. Also, the language contains a DEL function for deleting lines, RENUM for renumbering, and A for automatic line numbering.

The BASIC

As might be expected, there are significant additions and some changes to the Microsoft BASIC which is standard on other PET/CBM computers. NEW becomes CLEAR. TI becomes TIME.! can mean REM. Structured control statements (IF, ELSE, etc.) must not be followed with anything else on a line.

A number of new functions are implemented: CURSOR (i%) sets the cursor to the position on the screen defined by the argument. DATE$ holds the current date. EPS gives the smallest number that the computer can represent. INF gives the largest. FP(x) returns the fractional part of x. IP(x) gives the integer part of x. HEX(x$) will give the hexadecimal equivalent of the decimal argument (up to a value of 32737) and HEX$(x) goes the other way. IDX(a$,b$) returns the position at which b$ first occurs within a$. IO STATUS replaces ST. MOD(x,y) provides the modulus of x for the range y. ORD(s$) returns the position of the one-character s$ in the system's set of characters. PI is pi. RPT$(s$,n) gives a string which is s$ concatenated n times. STR$(a$,s,1) is MID$.

Changes or additions to BASIC statements include: CHAIN provides program overlaying with parameter passing (USE, like DATA, contains the list to be passed). FNEND permits multiple-line function definitions. GUESS...ADMIT...ENDGUESS establish a structure similar to: 10 INPUT A$ <> "YES and A$ <> "NO" THEN PRINT "ANSWER YES OR NO": GOTO 10. (The ADMIT statement replaces an IF THEN.)

ELSEIF, ENDIF, LOOP, ENDLOOP, UNTIL, ELSE, WHILE, UNTIL, and QUIT are all statements which replace various IF THEN and FOR NEXT loop types. They are aspects of "structured programming." An ON-RESUME/IGNORE-ENDON structure permits control over some error conditions from within a program. Zero division, EOF, pressing the STOP key, under- and overflow are among the conditions which can be trapped.

This brief summary merely hints at the wealth of software and hardware to be explored in the SuperPET. When asked what impresses them most about this machine, each industry expert answers differently. Some say that the introduction of a serious version of APL is the most significant aspect of the computer. Some say it is the built-in RS-232 interface. Some mention the multiple languages or the inherent ability to speak directly to mainframe computers or the massive bank-switched RAM. All seem to agree, however, that the new PET is super.