1250 VTAB 17: HTAB 9: FOR I1 = 1 TO 23: PRINT " ";: NEXT I1: NORMAL : PRINT : VTAB 21: PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **": HTAB 8: PRINT "PRESS ANY KEY TO BEGIN";
1260 GET A$: PRINT : NORMAL : HOME : RETURN
1270 REM DATA INPUT FROM DISK
1280 ONERR GOTO 1680
1290 HOME : INVERSE : PRINT "NAME OF FILE:";: NORMAL : INPUT " ";F$: IF F$ = "" OR VAL(F$) >0 THEN 1290
1300 VTAB 3: PRINT "PRESS ANY KEY WHEN YOU ARE READY...";: GET A$: PRINT : VTAB 6: HTAB 15: FLASH : PRINT "<<WORKING>>": NORMAL
1310 PRINT D$;"OPEN";F$
1320 PRINT D$;"READ";F$
1330 INPUT NVAR: INPUT N1
1340 FOR I = 1 TO NVAR: INPUT NAME$(I): NEXT
1350 FOR I = 1 TO N1: FOR J = 1 TO NVAR
1360 INPUT X(I,J)
1370 NEXT J
1380 NEXT I
1390 PRINT D$;"CLOSE";F$
1400 ONERR GOTO 1850
1410 N = N1
1420 REM ADDITIONAL DATA (AFTER DISK ENTRIES)?
1430 HOME : PRINT "ENTER ADDITIONAL DATA FROM KEYBOARD?": PRINT "(PRESS Y OR N): ";: GET A$: PRINT : IF A$ < >"Y" AND A$ < >"N" THEN 1430
1440 IF A$ = "N" THEN N1 = 0: GOTO 1490
1450 VTAB 5: HTAB 1: CALL -958: INVERSE : PRINT "NUMBER OF ADDITIONAL CASES:";: NORMAL : INPUT " ";N2
1460 N = N1 +N2
1470 IF N >250 THEN PRINT CHR$(7); CHR$(7);"*** MAXIMUM OF 250 CASES EXCEEDED ***": FOR I1 = 1 TO 1500: NEXT : GOTO 1450
1480 GOTO 280
1490 VTAB 5: HTAB 1: CALL -958: INVERSE : PRINT "ENTER TITLE FOR OUTPUT:": NORMAL : PRINT : INPUT "";TI$: IF LEN(TI$) >40 THEN PRINT "*** MAX. LENGTH = 40 CHARS. ***": FOR I1 = 1 TO 1500: NEXT I1: GOTO 1490
1500 GOTO 340
1510 REM SAVE DATA SET
1520 ONERR GOTO 1760
1530 VTAB 3: PRINT "PRESS ANY KEY WHEN YOU ARE READY...";: GET A$: PRINT : VTAB 6: HTAB 15: FLASH : PRINT "<<WORKING>>": NORMAL
1540 PRINT D$;"OPEN";F$
1550 PRINT D$;"CLOSE";F$
1560 PRINT D$;"DELETE";F$
1570 PRINT D$;"OPEN";F$
1580 PRINT D$;"WRITE";F$
1590 PRINT NVAR: PRINT N
1600 FOR I = 1 TO NVAR: PRINT NAME$(I): NEXT
1610 FOR I = 1 TO N
1620 FOR J = 1 TO NVAR: PRINT X(I,J)
1630 NEXT J
1640 NEXT I
1650 PRINT D$;"CLOSE";F$
1660 ONERR GOTO 1850
1670 GOTO 770
1680 REM ERROR ROUTINE--READ OF NON-EXISTENT FILE
1690 ERR = PEEK(222)
1700 PRINT D$;"CLOSE"
1710 IF ERR = 5 OR ERR = 6 THEN PRINT D$;"DELETE"F$: HOME : FLASH : PRINT CHR$(7); CHR$(7);"FILE DOES NOT EXIST. SELECT AGAIN...": NORMAL : PRINT D$;"CATALOG": PRINT "PRESS ANY KEY TO CONTINUE ";: GET A$: PRINT : GOTO 1290
1720 IF ERR = 13 THEN HOME : FLASH : PRINT "WRONG FILE TYPE. SELECT AGAIN...": NORMAL : PRINT D$;"CATALOG": PRINT "PRESS ANY KEY TO CONTINUE ";: GET A$: PRINT : GOTO 1290
1730 IF ERR = 254 THEN HOME : FLASH : PRINT "NOT A PPMC DATA FILE. SELECT AGAIN...": NORMAL : PRINT D$;"CATALOG": PRINT "PRESS ANY KEY TO CONTINUE ";: GET A$: PRINT : GOTO 1290
1740 IF ERR = 8 THEN HOME : FLASH : PRINT "CLOSE DRIVE DOOR AND TRY AGAIN...": NORMAL : FOR I1 = 1 TO 1000: NEXT I1: GOTO 1290
1750 GOTO 1850
1760 REM DISK WRITE ERROR
1770 ERR = PEEK(222): HOME
1780 PRINT D$;"CLOSE"
1790 IF ERR = 4 THEN FLASH : PRINT CHR$(7); CHR$(7);"DISK IS WRITE-PROTECTED. INSERT ANOTHER": NORMAL : GOTO 1510
1800 IF ERR = 9 THEN PRINT D$;"DELETE"F$: FLASH : PRINT CHR$(7); CHR$(7);"DISK FULL. INSERT ANOTHER AND TRY AGAIN": NORMAL : GOTO 1510
1810 IF ERR = 8 THEN HOME : FLASH : PRINT "CLOSE DRIVE DOOR AND TRY AGAIN...": NORMAL : GOTO 1510
1820 IF ERR = 10 THEN FLASH : PRINT CHR$(7); CHR$(7);"FILE ALREADY EXISTS AND IS LOCKED...": NORMAL : INPUT "WRITE OVER IT (Y/N)? ";A$: GOTO 1940
1830 IF ERR = 11 THEN FLASH : PRINT CHR$(7); CHR$(7);"ILLEGAL FILENAME. SELECT AGAIN...": NORMAL : PRINT D$;"CATALOG": INPUT "NEW FILE NAME: ";F$: HOME : GOTO 1510
1840 IF ERR = 13 THEN FLASH : PRINT CHR$(7); CHR$(7);"WRONG FILE TYPE. SELECT AGAIN...": NORMAL : PRINT D$;"CATALOG": INPUT "NEW FILE NAME: ";F$: HOME : GOTO 1510
1850 REM ALL OTHER ERRORS
1860 PRINT : PRINT D$;"PR#0": REM TURN OFF PRINTER, IF ON
1870 ERR = PEEK(222)
1880 IF ERR = 254 THEN POKE 34,23: VTAB 23: FLASH : PRINT "ILLEGAL INPUT. PLEASE RE-ENTER ANSWER.": NORMAL : FOR I1 = 1 TO 1500: NEXT I1: VTAB 23: HTAB 1: CALL -958: POKE 34,0: RESUME
1890 IF ERR = 69 OR ERR = 133 THEN HOME : PRINT "CALCULATION ERROR (OVERFLOW OR DIVISION BY ZERO).": PRINT "DO YOU WANT TO EDIT YOUR DATA? (Y/N)";: GET A$: PRINT : ON (A$ = "Y") GOTO 790: ON (A$ = "N") GOTO 1930: HOME : GOTO 1890