REM REM ************************************************* REM * Dragon file header: * REM * Start: $2401 Length: $3d62 Exec: $8b8d * REM *(Start: 09217 Length: 15714 Exec: 35725) * REM ************************************************* REM 0 CLEAR 1000:IDEN$="BEGIN": DIM DI$(255),X(100): ERROR GO TO 2910 1 FREAD "DIRECTOR";DI$(X) 2 IF EOF ("DIRECTOR")=1 THEN 10 3 X=X+1 4 GO TO 1 10 CLOSE : VERIFY ON 20 :'this is the total information computer system 40 POKE 65495,0 50 DIM ID$(30) 60 DIM P$(100),C(100) 70 DIM C$(100),P(30) 75 DN=1 80 CLS 90 Q=1 100 E$="" 110 IDEN$="START" 120 A$="THIS IS THE TOTAL INFORMATION" 130 GO SUB 640 140 Q=36 150 A$="COMPUTER SYSTEM (TICS)." 160 GO SUB 640 170 Q=96 180 A$="GIVE ME YOUR IDENTIFICATION" 190 GO SUB 640 200 Q=128: GO SUB 240 210 PRINT @128, STRING$ (32," "): GO TO 360 220 :'innmatingsprosedyre 230 IF QQ=3 THEN P=0: FOR P=1 TO 22: GO TO 250 240 FOR P=1 TO 31 250 PRINT @Q+P-1, CHR$ (128) 260 ID$(P)= INKEY$ : IF ID$(P)="" THEN 260 270 BEEP 280 IF ID$(P)= CHR$ (21) THEN PRINT @Q-1+P,"": GO TO 240 290 IF ID$(P)= CHR$ (8) THEN P=P-1: IF P=<0 THEN P=0 : ELSE PRINT @Q+P-1," ": GO TO 250 300 IF ID$(P)= CHR$ (13) THEN PRINT @Q+P-1,"": RETURN 310 IF QQ=3 AND P=22 AND ID$(P)<> CHR$ (13) THEN 260 320 IF P=31 AND ID$(P)<> CHR$ (13) THEN 260 330 PRINT @Q-1+P,ID$(P) 340 NEXT P 350 RETURN 360 :'menyvelger 370 Q=96 380 E$="" 390 A$="WHAT CAN I DO FOR YOU" 400 GO SUB 640 410 PRINT @128,"":Q=128: GO SUB 240 420 FOR A=0 TO P 430 E$=E$+ID$(A) 440 IF ID$(1)= CHR$ (13) THEN 410 450 NEXT A 460 FOR B=1 TO P+1 470 IF MID$ (E$,B,4)="BACK" THEN 80 480 IF MID$ (E$,B,4)="RETU" THEN 80 490 IF MID$ (E$,B,4)="STAR" THEN 80 500 IF MID$ (E$,B,4)="REST" THEN 80 510 IF MID$ (E$,B,4)="PERS" THEN 720 520 IF MID$ (E$,B,4)="HELP" THEN 3620 521 IF MID$ (E$,B,4)="DISK" THEN 4000 522 IF MID$ (E$,B,4)="DISC" THEN 4000 523 IF MID$ (E$,B,4)="FLOP" THEN 4000 524 IF MID$ (E$,B,4)="DRIV" THEN 4000 525 IF MID$ (E$,B,4)="STAS" THEN 4000 530 NEXT 540 FOR M=1 TO 5 550 PRINT @96,"COMMAND NOT AVAILABLE" 560 BEEP 570 WAIT 250 580 PRINT @96,"command not available" 590 BEEP 600 WAIT 250 610 NEXT M 620 GO TO 360 630 :'utskriftsprosedyre 640 FOR B=1 TO LEN (A$) 650 PRINT @Q, MID$ (A$,B,1); 660 Q=Q+1 670 PRINT @Q, CHR$ (128) 680 BEEP 690 NEXT B 700 PRINT @Q, CHR$ (32) 710 RETURN 720 :'person register 730 IDEN$="PERS" 740 CLS 760 Q=12 770 A$="T.I.C.S." 780 GO SUB 640 790 Q=64 800 A$="NAME" 810 GO SUB 640 820 Q=96 830 A$="ID NO." 840 GO SUB 640 850 Q=128 860 A$="ADRESS" 870 GO SUB 640 880 Q=160 890 A$="PO.NO." 900 GO SUB 640 910 Q=192 920 A$="PO.BOX" 930 GO SUB 640 940 Q=224 950 A$="PO.ADR." 960 GO SUB 640 970 Q=256 980 A$="PHONE" 990 GO SUB 640 1000 Q=288 1010 A$="TITLE" 1020 GO SUB 640 1030 Q=71 1040 FOR B=1 TO 8 1050 PRINT @Q,":"; 1060 PRINT @Q+1, CHR$ (128); 1070 BEEP 1080 PRINT @Q+1, CHR$ (32); 1090 Q=Q+32 1100 NEXT B 1110 Q=384: PRINT @0, FRE$ ; 1120 E$="" 1130 A$="ENTER COMMAND" 1140 GO SUB 640 1150 Q=416 1160 GO SUB 240 1170 FOR A=0 TO P 1180 E$=E$+ID$(A) 1190 IF MID$ (E$,1,1)= CHR$ (13) THEN 1110 1200 IF MID$ (E$,1,1)= CHR$ (36) THEN 3560 1210 NEXT A 1220 IF E$="$" THEN GO TO 3560 1230 FOR B=1 TO P+1 1240 IF MID$ (E$,B,4)="TILB" THEN GO TO 80 1250 IF MID$ (E$,B,4)="MAIN" THEN GO TO 80 1260 IF MID$ (E$,B,4)="MENU" THEN GO TO 80 1270 IF MID$ (E$,B,4)="MENY" THEN GO TO 80 1280 IF MID$ (E$,B,4)="RETU" THEN GO TO 80 1290 IF MID$ (E$,B,4)="BACK" THEN GO TO 80 1300 IF MID$ (E$,B,4)="LIST" THEN 1740 1310 IF MID$ (E$,B,4)="LESE" THEN 1740 1320 IF MID$ (E$,B,4)="READ" THEN 1840 1330 IF MID$ (E$,B,4)="LOAD" THEN 1840 1340 IF MID$ (E$,B,4)="SAVE" THEN 2520 1350 IF MID$ (E$,B,4)="CREA" THEN 2790 1360 IF MID$ (E$,B,4)="LAG " THEN 2790 1370 IF MID$ (E$,B,4)="STOR" THEN 2520 1380 IF MID$ (E$,B,4)="DUMP" THEN 2520 1390 IF MID$ (E$,B,4)="MAKE" THEN 2790 1400 IF MID$ (E$,B,4)="FORA" THEN 1940 1410 IF MID$ (E$,B,4)="REPA" THEN 1940 1420 IF MID$ (E$,B,4)="CHAN" THEN 1940 1430 IF MID$ (E$,B,4)="EDIT" THEN 1940 1440 IF MID$ (E$,B,4)="SKIF" THEN 1940 1450 IF MID$ (E$,B,4)="REPR" THEN 1940 1460 IF MID$ (E$,B,4)="BYTT" THEN 2260 1470 IF MID$ (E$,B,4)="REPL" THEN 2260 1480 IF MID$ (E$,B,4)="SWAP" THEN 2260 1490 IF MID$ (E$,B,4)="REMO" THEN 2260 1500 IF MID$ (E$,B,4)="OMPL" THEN 2260 1510 IF MID$ (E$,B,4)="OMOR" THEN 2260 1520 IF MID$ (E$,B,4)="FLYT" THEN 2260 1530 IF MID$ (E$,B,4)="LAGR" THEN 2520 1540 IF MID$ (E$,B,4)="SLET" THEN 2630 1550 IF MID$ (E$,B,4)="KILL" THEN 2630 1560 IF MID$ (E$,B,4)="ERAS" THEN 2630 1570 IF MID$ (E$,B,4)="DELE" THEN 2630 1580 IF MID$ (E$,B,4)="DEL " THEN 2630 1590 IF MID$ (E$,B,4)="CLEA" THEN 2630 1600 IF MID$ (E$,B,4)="VISK" THEN 2630 1610 IF MID$ (E$,B,4)="RENS" THEN 2630 1620 IF MID$ (E$,B,4)="REST" THEN 2630 1630 NEXT 1640 FOR T=1 TO 5 1650 BEEP 1660 E$="" 1670 PRINT @384,"COMMAND NOT AVAILABLE!" 1680 WAIT 250 1690 BEEP 1700 PRINT @384,"command"; CHR$ (128);"not"; CHR$ (128);"available": POKE 1429,33 1710 WAIT 250 1720 NEXT T 1730 GO TO 1110 1740 :'lese data 1750 GO SUB 3450 1760 LL=3 1770 Q=73 1780 FOR A=1 TO 8 1790 PRINT @Q,DAT$(A) 1800 Q=Q+32 1810 NEXT A 1820 IF BB=3 THEN BB=0: GO TO 1030 1830 GO TO 1110 1839 :'load data 1840 Q=384:S$="":E$="" 1841 A$="WHICH FILE" 1842 GO SUB 630 1844 GO SUB 30000 1850 SS=3 1855 S$=E$+".DAT" 1860 FOR A=1 TO 8 1870 FREAD S$;DAT$(A) 1880 GO SUB 1910 1890 NEXT A 1900 GO TO 1920 1910 IF EOF (S$)=0 THEN RETURN 1920 CLOSE 1930 GO TO 1740 1940 :'forandre data 1950 QQ=3 1960 Q=0 1970 FOR A=1 TO 8 1980 PRINT @70+Q,A; 1990 BEEP 2000 Q=Q+32 2010 NEXT A 2020 PRINT @416,"" 2030 Q=384 2040 A$="ENTER NUMBER TO CHANGE <1-8>" 2050 GO SUB 630 2060 Q=416 2070 PRINT @Q, CHR$ (128) 2080 A$= INKEY$ : IF A$="" THEN 2080 2090 A= VAL (A$) 2100 IF A<1 OR A>8 THEN 2080 2110 DAT$(A)="" 2120 PRINT @Q, CHR$ (32); 2130 IF A=1 THEN Q=73: PRINT @Q,"": BEEP : GO SUB 240 2140 IF A=2 THEN Q=105: PRINT @Q,"": BEEP : GO SUB 240 2150 IF A=3 THEN Q=137: PRINT @Q,"": BEEP : GO SUB 240 2160 IF A=4 THEN Q=169: PRINT @Q,"": BEEP : GO SUB 240 2170 IF A=5 THEN Q=201: PRINT @Q,"": BEEP : GO SUB 240 2180 IF A=6 THEN Q=233: PRINT @Q,"": BEEP : GO SUB 240 2190 IF A=7 THEN Q=265: PRINT @Q,"": BEEP : GO SUB 240 2200 IF A=8 THEN Q=297: PRINT @Q,"": BEEP : GO SUB 240 2210 FOR W=1 TO P 2220 IF ID$(W)= CHR$ (13) THEN 2250 2230 DAT$(A)=DAT$(A)+ID$(W) 2240 NEXT W 2250 GO TO 1030 2260 :'bytte data 2270 BB=3 2280 GO SUB 3450 2290 Q=70 2300 FOR A=1 TO 8 2310 PRINT @Q,A; 2320 BEEP 2330 Q=Q+32 2340 NEXT A 2350 Q=384 2360 A$="SWAP" 2370 GO SUB 630 2380 A$= INKEY$ : IF A$="" THEN 2380 2390 A= VAL (A$) 2400 IF A<1 OR A>8 THEN 2380 2410 PRINT @389,A 2420 Q=392 2430 A$="WITH" 2440 GO SUB 630 2450 A$= INKEY$ : IF A$="" THEN 2450 2460 B= VAL (A$) 2470 IF B<1 OR B>8 THEN 2450 2480 PRINT @396,B 2490 BEEP 2500 SWAP DAT$(A),DAT$(B) 2510 GO TO 1740 2520 Q=384:E$=""::'lagre data 2521 A$="WHICH FILE" 2522 GO SUB 630 2523 Q=416: GO SUB 30000 2530 GO SUB 3450 2531 S$=E$ 2532 E$="" 2540 WW=3 2560 FOR A=1 TO 8 2570 FWRITE S$;DAT$(A) 2580 NEXT A 2590 CLOSE 2610 X=X+1:DI$(X)=S$ 2611 FWRITE "DIRECTOR";DI$(X) 2612 CLOSE 2620 GO TO 1110 2630 :'slette data 2640 GO SUB 3450 2650 W=1 2660 Q=73 2670 FOR S=Q+ LEN (DAT$(W)) TO Q STEP -1 2680 PRINT @S," "; CHR$ (128); CHR$ (32) 2690 BEEP 2700 NEXT S 2710 PRINT @S, CHR$ (32) 2720 Q=Q+32 2730 W=W+1: IF W=9 THEN 2750 2740 GO TO 2670 2750 FOR Q=1 TO 8 2760 DAT$(Q)="" 2770 NEXT Q 2780 GO TO 1110 2790 :'lage data 2800 QQ=3 2810 L=1 2820 Q=73 2830 GO SUB 230 2840 FOR W=1 TO P 2850 IF ID$(W)= CHR$ (13) THEN 2880 2860 DAT$(L)=DAT$(L)+ID$(W) 2870 NEXT W 2880 L=L+1: IF L=9 THEN 1110 2890 Q=Q+32: GO TO 2830 2900 WAIT 5000 2910 :'error list 2940 Q=384 2941 IF IDEN$="DIRECTOR" AND ERR =160 THEN GO TO 40130 2950 IF ERR =0 THEN A$="error: NEXT WITHOUT FOR": GO SUB 630 2960 IF ERR =2 THEN A$="error: SYNTAX ERROR": GO SUB 630 2970 IF ERR =4 THEN A$="error: RETURN WITHOUT GOSUB": GO SUB 630 2980 IF ERR =6 THEN A$="error: OUT OF DATA IN READ": GO SUB 630 2990 IF ERR =8 THEN A$="error: ILLEGAL FUNCTION ERROR": GO SUB 630 3000 IF ERR =10 THEN A$="error: OVERFLOW": GO SUB 630 3010 IF ERR =12 THEN A$="error: OUT OF MEMORY": GO SUB 630 3020 IF ERR =14 THEN A$="error: UNDENFINED LINE": GO SUB 630 3030 IF ERR =16 THEN A$="error: BAD SUBSCRIPT": GO SUB 630 3040 IF ERR =18 THEN A$="error: REDIMENSION ARRAY": GO SUB 630 3050 IF ERR =20 THEN A$="error: DIVISION BY ZERO": GO SUB 630 3060 IF ERR =22 THEN A$="error: ILLEGAL DIRECT STATEMENT": GO SUB 630 3070 IF ERR =24 THEN A$="error: TYPE MISMATCH": GO SUB 630 3080 IF ERR =26 THEN A$="error: OUT OF STRING SPACE": GO SUB 630 3090 IF ERR =28 THEN A$="error: STRING TOO LONG": GO SUB 630 3100 IF ERR =30 THEN A$="error: STRING TOO COMPLEX": GO SUB 630 3110 IF ERR =32 THEN A$="error: CAN'T CONTINUE": GO SUB 630 3120 IF ERR =34 THEN A$="error: UNDEFINED FILE": GO SUB 630 3130 IF ERR =36 THEN A$="error: FAULTY DATA": GO SUB 630 3140 IF ERR =38 THEN A$="error: FILE ALREADY OPEN": GO SUB 630 3150 IF ERR =40 THEN A$="error: DRIVE NUMBER": GO SUB 630 3160 IF ERR =42 THEN A$="error: INPUT/OUTPUT ERROR": GO SUB 630 3170 IF ERR =44 THEN A$="error: WRONG FILE MODE": GO SUB 630 3180 IF ERR =46 THEN A$="error: FILE NOT OPEN": GO SUB 630 3190 IF ERR =48 THEN A$="error: INPUT PAST EOF": GO SUB 630 3200 IF ERR =50 THEN A$="error: DIRECT STATEMENT": GO SUB 630 3210 IF ERR =128 THEN A$="error: NOT READY": GO SUB 630 3220 IF ERR =130 THEN A$="error: SEEK": GO SUB 630 3230 IF ERR =132 THEN A$="error: WRITE PROTECT": GO SUB 630 3240 IF ERR =134 THEN A$="error: RECORD TYPE": GO SUB 630 3250 IF ERR =138 THEN A$="error: CYCLIC REDUNDANCY": GO SUB 630 3260 IF ERR =140 THEN A$="error: LOST DATA": GO SUB 630 3270 IF ERR =142 THEN A$="error: BOOT": GO SUB 630 3280 IF ERR =144 THEN A$="error: INVALID DIRECTORY": GO SUB 630 3290 IF ERR =146 THEN A$="error: DIRECTORY FULL": GO SUB 630 3300 IF ERR =148 THEN A$="error: DISK FULL": GO SUB 630 3310 IF ERR =150 THEN A$="error: FILE SPEC.": GO SUB 630 3320 IF ERR =152 THEN A$="error: PROTECTION": GO SUB 630 3330 IF ERR =136 THEN A$="error: RECORD NOT FOUND": GO SUB 630 3340 IF ERR =154 THEN A$="error: READ PAST EOF": GO SUB 630 3350 IF ERR =156 THEN A$="error: FILE NOT FOUND": GO SUB 630 3360 IF ERR =158 THEN A$="error: FILE EXISTS": GO SUB 630 3370 IF ERR =160 THEN A$="error: NON-EXISTENS": GO SUB 630 3380 IF ERR =162 THEN A$="error: TOO MANY OPEN": GO SUB 630 3390 IF ERR =164 THEN A$="error: PARAMETER": GO SUB 630 3400 IF ERR =166 THEN A$(A)="error: ??": GO SUB 630 3410 INK$= INKEY$ : IF INK$="" THEN 3410 3420 CLOSE 3430 IF IDEN$="PERS" THEN 1110 3431 IF IDEN$="BEGIN" THEN 10 3440 IF IDEN$="START" THEN 80 3441 IF IDEN$="DISK" THEN 4060 3450 IF DAT$(1)="" AND DAT$(2)="" AND DAT$(3)="" AND DAT$(4)="" AND DAT$(5)="" AND DAT$(6)="" AND DAT$(7)="" AND DAT$(8)="" THEN GO TO 3470 3460 RETURN 3470 FOR L=1 TO 5 3480 PRINT @384,"PLEASE MAKE DATA" 3490 BEEP 3500 WAIT 250 3510 PRINT @384,"please"; CHR$ (128);"make"; CHR$ (128);"data" 3520 BEEP 3530 WAIT 250 3540 NEXT L 3550 GO TO 1110 3560 CLS : DIR ::'directory 3570 Q=448 3580 A$="ENTER A KEY" 3590 GO SUB 630 3600 A$= INKEY$ : IF A$="" THEN 3600 3610 GO TO 720 3620 Q=96::'help 3630 A$="HELP NOT AVAILABLE" 3640 GO SUB 630 3650 A$= INKEY$ : IF A$="" THEN 3650 3660 GO TO 360 4000 :'disk commands 4010 IDEN$="DISK" 4020 CLS 4030 Q=12 4040 A$="T.I.C.S." 4050 GO SUB 630 4060 Q=384 4070 A$="ENTER COMMAND" 4080 GO SUB 630 4090 Q=416 4100 PRINT @Q, CHR$ (128) 4110 GO SUB 220 4115 E$="" 4120 FOR A=1 TO P 4130 E$=E$+ID$(A) 4140 IF ID$(1)= CHR$ (13) THEN 4090 4150 NEXT A 4160 FOR B=1 TO P+1 4170 IF MID$ (E$,B,4)="BACK" THEN 80 4180 IF MID$ (E$,B,4)="RETU" THEN 80 4190 IF MID$ (E$,B,4)="REST" THEN 80 4200 IF MID$ (E$,B,4)="MENY" THEN 80 4210 IF MID$ (E$,B,4)="MENU" THEN 80 4220 IF MID$ (E$,B,4)="MAIN" THEN 80 4230 IF MID$ (E$,B,4)="LIST" THEN 5000 4240 IF MID$ (E$,B,4)="LESE" THEN 5000 4250 IF MID$ (E$,B,4)="COMM" THEN 5000 4260 IF MID$ (E$,B,4)="KOMM" THEN 5000 4270 IF MID$ (E$,B,4)="PRIN" THEN 5000 4280 IF MID$ (E$,B,4)="HELP" THEN 5000 4310 IF MID$ (E$,B,($fe)($FFFF)($FFEF)($FFFF)($FFFF)($fe)($FFFF)($FFEF)($FFFF)($FFFF)($fe)($FFFF)($FFEF)($FFFF)($FFFF) 65535 ($FFEF)($FFFF)($FFFF) REM REM ************************************************* REM * Dragon file header: * REM * Start: $2401 Length: $00e3 Exec: $8b8d * REM *(Start: 09217 Length: 00227 Exec: 35725) * REM ************************************************* REM 10 A=1 20 A$(1)="B0E" 30 A$(2)="WIX0E" 40 A$(3)="ASKEVOLD" 50 A$(4)="DYSKELAN" 60 A$(5)="PETERSEN" 70 A$(6)="MTAKSRUD" 80 A$(7)="FTAKSRUD" 90 A$(8)="LTAKSRUD" 100 FWRITE "DIRECTOR";A$(A) 110 A=A+1 120 IF A=9 THEN END 130 GO TO 100