Electronic spreadsheet. 1008 cells, each can hold an 8 letter label and a number.
Related Products
Electronic spreadsheet. 1008 cells, each can hold an 8 letter label and a number. The 180 functions, up to 80 characters in length, permit all arithmetic, trigonometric and any other operations in the TS; loops; conditional statements; one step summing and averaging; replace functions at will; FIND and JUMP commands provide quick movement. Menu driven.
Source Code
1 LET z=0 2 CLEAR 5 LET S$="SAV NAME" 8 LET I=-1 10 LET I1=2 11 LET Z=0 12 LET A=1 13 LET FC1=0: LET FF=0 14 LET H=10 15 LET K=11 16 LET T=20 17 LET U=21 20 LET J1=A 21 INK 4 22 PAPER 0 23 CLS 24 BORDER 0 25 GO SUB 9300 30 LET M=A 40 DIM Y$(8) 50 LET Z$=" " 70 LET M$="████████████████████████████████" 270 PRINT AT 0,0;Z$ 290 IF I<Z THEN GO TO 350 300 PRINT AT U,Z;"NEW OR OLD" 302 POKE 23658,8 305 PRINT AT H,H;"SCREEN-CALC" 306 PRINT AT K,Z;" © COPYRIGHT 1983 BANTASOFTWARE" 307 PRINT TAB 7;"ALL RIGHTS RESERVED" 310 PAUSE 0 315 LET K$=INKEY$ 320 IF K$="N" THEN GO TO 2 330 IF K$="O" THEN GO TO 1000 340 GO TO 310 350 CLS 360 LET FC=Z 370 PRINT ,,"SIZE(MAX ";CELM;"):" 380 LET A$="" 390 PRINT AT A,17;A$;">" 410 LET B$=" " 430 LET K$=INKEY$ 440 IF K$=CHR$ 13 THEN GO TO 500 450 PAUSE 6 460 IF K$="" THEN GO TO 390 465 PRINT AT U,Z;Z$ 470 LET A$=A$+K$ 480 GO TO 390 500 LET C=Z 508 PRINT AT A,17;" " 510 IF LEN A$<3 THEN GO TO 540 520 IF A$(2)="X" THEN LET C=2 530 IF A$(3)="X" THEN LET C=3 540 IF C=Z THEN PRINT AT 21,Z;"BAD INPUT" 550 IF C=Z THEN GO TO 380 560 LET X1=VAL A$(A TO C-A) 570 LET Y1=VAL A$(C+A TO LEN A$) 580 IF X1*Y1<=CELM AND X1*Y1>Z THEN GO TO 600 585 PRINT AT U,Z;"BAD SIZE, TRY AGAIN" 590 GO TO 380 600 PRINT AT A,16;A$,"OK?" 620 PAUSE 0 660 IF INKEY$="N" THEN GO TO 350 665 IF INKEY$<>"Y" THEN GO TO 620 666 GO SUB 8800 670 LET MA=X1 680 IF MA*Y1>CELM-Y1 THEN GO TO 720 690 LET MA=MA+A 700 GO TO 680 720 DIM A$(MA,Y1,8) 725 DIM A(MA,Y1) 730 DIM F$(FUNM,FUNL+2) 740 DIM P$(MA,Y1) 750 FOR I=A TO MA 760 FOR J=A TO Y1 770 LET P$(I,J)=CHR$ Z 780 NEXT J 790 NEXT I 800 LET INS=Z 810 LET CLER=Z 820 DIM X$(A) 1040 LET X=A 1050 LET Y=A 1060 LET BOX=Z 1070 CLS 1200 IF x$="A" THEN GO TO 1212 1202 PRINT X1;"X";Y1;TAB 11;S$;TAB 21;"FC=";FC 1203 PRINT AT A,Z;M$;"██ ";TAB 9;"▌ ▌";TAB T;"▌ ▌";TAB 30;"██" 1204 FOR I=-A TO A 1205 GO SUB 8700 1206 REM 1207 REM 1208 REM 1209 REM 1210 INVERSE 1: PRINT AT A,K*I+14;E$: INVERSE 0 1211 NEXT I 1212 FOR I=-I1 TO I1+A 1214 LET Y3=I+Y 1215 IF Y3>Y1 OR Y3<=Z THEN GO TO 1260 1216 DIM E$(2) 1217 LET E1=INT (Y3/H) 1218 LET E2=Y3-E1*H 1219 LET E$(A)=CHR$ (E1+48) 1220 LET E$(2)=CHR$ (E2+48) 1221 PRINT AT I*3+8,Z; 1222 INVERSE 1 1223 IF I=-I1 THEN PRINT E$;AT 2,30;E$ 1224 INVERSE 0 1225 IF I=-I1 THEN PRINT AT 2,Z 1226 IF INS=A THEN PRINT AT 8,Z 1227 LET INS=Z 1229 IF X=A THEN GO TO 1250 1230 IF I>-I1 THEN GO SUB 1480 1235 PRINT A$(X-A,Y3);" ";A$(X,Y3);" "; 1237 IF X<X1 THEN PRINT A$(X+A,Y3) 1240 FOR J=-J1 TO J1 1241 LET X3=J+X 1243 IF X3<=X1 THEN IF P$(X3,Y3)<>CHR$ Z THEN GO SUB 5000 1245 NEXT J 1247 PRINT TAB Z;A(X-A,Y3);TAB K;A(X,Y3);TAB 22; 1248 IF X<X1 THEN PRINT A(X+A,Y3) 1249 GO TO 1260 1250 IF I>-I1 THEN GO SUB 1480 1254 PRINT TAB K;A$(X,Y3);" ";A$(X+A,Y3) 1255 FOR J=Z TO J1 1256 LET X3=J+X 1257 IF CODE P$(X3,Y3)<>Z THEN GO SUB 5000 1258 NEXT J 1259 PRINT TAB K;A(X,Y3);TAB 22;A(X+A,Y3) 1260 NEXT I 1265 IF BOX/2=INT (BOX/2) THEN PRINT AT 8,H;"▌▄▄▄▄▄▄▄▄▄▄▌";AT 9,H;"▌";AT 9,U;"▌";AT H,H;"▌";AT H,U;"▌";AT K,H;"▌▄▄▄▄▄▄▄▄▄▄▌" 1269 PRINT AT T,Z;Z$;Z$ 1270 PRINT AT T,Z;"A=ALL B=BOX C=COL F=FIND J=JUMP" 1280 PRINT "E=END I=INSERT P=PRINT R=REPLACE" 1285 BEEP .5,16 1290 PAUSE 0 1300 LET K$=INKEY$ 1301 LET I1=2 1302 LET J1=A 1303 DIM X$(A) 1304 IF K$="I" THEN LET X$="A" 1305 IF K$="P" THEN GO SUB 8200 1306 IF K$="B" THEN LET BOX=BOX+A 1310 IF K$="5" AND X>A THEN LET X=X-A 1320 IF K$="6" AND Y<Y1 THEN LET Y=Y+A 1330 IF K$="7" AND Y>A THEN LET Y=Y-A 1340 IF K$="8" AND X<X1 THEN LET X=X+A 1350 IF K$=CHR$ 11 AND Y>6 THEN LET Y=Y-6 1360 IF K$=CHR$ 10 AND Y<Y1-5 THEN LET Y=Y+6 1370 IF K$=CHR$ 8 AND X>3 THEN LET X=X-3 1380 IF K$=CHR$ 9 AND X<X1-2 THEN LET X=X+3 1390 IF K$="R" THEN GO SUB 2000 1400 IF K$="E" THEN GO TO 6000 1410 IF K$="I" THEN GO SUB 3000 1415 IF K$="C" THEN GO SUB 7000 1417 IF K$="F" THEN GO SUB 8000 1420 IF K$="J" THEN GO SUB 4000 1425 IF K$="A" THEN GO SUB 4700 1427 IF SCREEN$ (Z,Z)<"0" OR SCREEN$ (Z,Z)>"9" THEN DIM X$(A) 1430 IF X$<>"A" THEN GO TO 1070 1440 LET I1=Z 1450 LET J1=Z 1460 PRINT AT 9,K;" " 1470 PRINT AT H,K;" " 1475 GO TO 1200 1480 INVERSE 1 1481 PRINT E$; 1482 INVERSE 0 1484 PRINT "-------- ---------- --------";: INVERSE 1 1486 PRINT E$ 1489 INVERSE 0 1490 RETURN 2000 IF CODE P$(X,Y)=Z THEN RETURN 2002 GO SUB 2900 2005 LET FC1=FC 2010 LET FC=CODE P$(X,Y)-A 2020 GO TO 3500 2900 IF CODE P$(X,Y)<>Z THEN PRINT AT 17,Z;F$(CODE P$(X,Y)) 2910 RETURN 3000 PRINT AT T,Z;M$;M$ 3002 LET XSAV=X: LET YSAV=Y 3005 LET INS=A 3006 REM 3010 PRINT AT T,Z;"A=ABORT N=NUMBER L=LOOP D=DATA";TAB Z;"F=FUNCTION T=TEXT C=CLEAR" 3030 PAUSE 0 3040 LET K$=INKEY$ 3050 IF K$="A" THEN GO TO 3960 3055 IF K$="N" THEN LET FF=A: GO TO 3100 3060 GO SUB 2900 3062 LET C=9: LET K1=11 3065 IF K$="T" THEN GO TO 3100 3070 IF K$="F" THEN GO TO 3500 3075 IF K$="D" THEN GO TO 6200 3080 IF K$="L" THEN GO TO 4300 3085 IF K$="C" THEN GO TO 4290 3090 GO TO 3030 3100 DIM C$(H) 3102 LET C=9: LET K1=11 3103 IF K$="N" THEN LET C=H 3105 LET CT=Z 3110 PRINT AT C,K1;C$(A TO CT);: FLASH 1: PRINT ">" 3112 FLASH 0 3115 PAUSE 0 3120 LET K$=INKEY$ 3130 IF K$="" THEN GO TO 3120 3140 IF CODE K$=13 THEN GO TO 3400 3145 IF CODE K$>7 AND CODE K$<12 AND C<>9 THEN GO TO 3200 3150 IF CODE K$=12 THEN GO TO 3300 3160 IF CODE K$=32 THEN LET K$=" " 3161 IF C<>9 AND K$="M" THEN LET K$="." 3162 IF C<>9 AND (K$<"0" OR K$>"9") AND K$<>"M" AND K$<>"." AND K$<>"-" THEN GO TO 3110 3165 LET CT=CT+A 3170 LET C$(CT)=K$ 3180 GO TO 3110 3200 LET K2=CODE K$ 3202 IF CT>Z THEN LET A(X,Y)=VAL C$ 3204 PRINT AT C,(K1+CT);" ": LET K$="" 3205 IF CT=0 THEN PRINT AT C,K1;A(X,Y) 3210 IF K2=8 AND X>1 AND K1>=K THEN LET X=X-1: LET K1=K1-K 3220 IF K2=9 AND X<X1 AND K1<22 THEN LET X=X+1: LET K1=K1+K 3240 IF K2=10 AND Y<Y1 AND C<18 THEN LET Y=Y+1: LET C=C+3: LET K1=K1 3250 IF K2=11 AND Y>1 AND C>4 THEN LET Y=Y-1: LET C=C-3: LET K1=K1 3290 GO TO 3105 3300 LET CT=CT-A 3310 GO TO 3110 3400 IF C=9 THEN LET A$(X,Y)=C$: GO TO 3410 3405 IF CT>0 THEN LET A(X,Y)=VAL C$ 3410 PRINT AT C,(K1+CT);" " 3412 LET X=XSAV: LET Y=YSAV 3420 GO TO 3980 3500 PRINT AT T,Z;M$;M$ 3504 IF FC>=FUNM THEN LET K$="": RETURN 3505 REM 3510 PRINT AT U,Z;"FUNCTION? FC=";FC+A 3520 INPUT B$ 3540 FOR I=A TO LEN B$ 3541 LET CH=Z 3550 IF CODE B$(I)=32 OR (CODE B$(I)>39 AND CODE B$(I)<95) OR (CODE B$(I)>177 AND CODE B$(I)<190) OR B$(I)="PI" OR CODE B$(I)=165 THEN LET CH=A 3570 IF CH=Z THEN GO TO 3800 3580 NEXT I 3600 IF LEN B$<FUNL+1 THEN GO TO 3900 3610 PRINT AT T,12;"TOO LONG" 3800 PRINT AT T,Z;"BAD FUNCTION" 3810 GO TO 3510 3900 LET FC=FC+A 3910 LET P$(X,Y)=CHR$ FC 3920 LET F$(FC)=B$ 3930 IF FC1>Z THEN LET FC=FC1 3940 LET FC1=Z 3980 LET K$="" 3985 IF P$(X,Y)>CHR$ Z AND FF=Z THEN PRINT AT 17,Z;F$(FC) 3987 IF FF=1 AND (C<>H OR K1<>K) THEN PRINT AT Z,Z;" ": LET INS=Z 3990 LET FF=Z: RETURN 4000 PRINT AT T,Z;M$;M$ 4010 PRINT AT U,Z;"POSITION?" 4020 INPUT B$ 4030 LET C=Z 4040 IF LEN B$<3 THEN GO TO 4070 4050 IF B$(2)="," THEN LET C=2 4060 IF B$(3)="," THEN LET C=3 4070 IF C=Z THEN GO TO 4000 4080 LET X2=VAL B$(A TO C-A) 4090 LET Y2=VAL B$(C+A TO LEN B$) 4100 IF X2>Z AND X2<=X1 THEN LET X=X2 4110 IF Y2>Z AND Y2<=Y1 THEN LET Y=Y2 4120 IF X<>X2 OR Y<>Y2 THEN GO TO 4000 4130 RETURN 4290 LET CLER=A 4300 PRINT AT T,Z;M$;M$ 4310 LET B$=" " 4320 LET C$="" 4330 PRINT AT U,Z;"FOR COLUMN" 4340 INPUT C$ 4350 LET B$(A TO 5)=C$ 4360 LET XX1=VAL B$(A TO 2) 4370 IF B$(3)=" " THEN LET XX2=XX1 4380 IF B$(3)=" " THEN GO TO 4400 4390 LET XX2=VAL B$(4 TO 5) 4400 PRINT AT U,4;"ROW " 4420 INPUT C$ 4430 LET B$(A TO 5)=C$ 4440 LET YY1=VAL B$(A TO 2) 4450 IF B$(3)=" " THEN LET YY2=YY1 4460 IF B$(3)=" " THEN GO TO 4480 4470 LET YY2=VAL B$(4 TO 5) 4480 IF CLER=Z THEN GO SUB 3500 4490 FOR I=XX1 TO XX2 4500 FOR J=YY1 TO YY2 4510 IF CLER=Z THEN LET P$(I,J)=CHR$ FC 4512 IF CLER=A THEN LET A(I,J)=Z 4514 IF CLER=A THEN LET A$(I,J,A TO 8)=" " 4520 NEXT J 4530 NEXT I 4540 LET K$="" 4545 LET CLER=Z 4550 RETURN 4700 GO SUB 8800 4710 LET XX3=X3 4720 LET YY3=Y3 4730 FOR J=A TO Y1 4740 FOR I=A TO X1 4750 LET X3=I 4760 LET Y3=J 4770 IF CODE P$(X3,Y3)<>Z THEN GO SUB 5000 4780 NEXT I 4790 NEXT J 4800 LET X3=XX3 4810 LET Y3=YY3 4820 RETURN 4900 LET X3=X 4910 LET Y3=Y 5000 LET B$="" 5001 LET C$="" 5002 LET YY=Y3 5003 LET RT=A 5004 LET XX=X3 5005 LET C5=A 5006 LET C=A 5010 LET D=CODE P$(X3,Y3) 5012 IF F$(D,C)="I" THEN GO SUB 5500 5013 LET C=C5 5015 IF F$(D,C)="R" THEN GO SUB 5100 5020 IF F$(D,C)="C" THEN GO SUB 5200 5030 IF F$(D,C+2)="," THEN LET B$=B$+"A("+F$(D,C TO C+4)+")" 5040 IF F$(D,C+2)="," THEN LET C=C+5 5050 LET B$=B$+F$(D,C) 5060 IF F$(D,C+A)=" " OR F$(D,C+A)="E" THEN GO TO 5400 5070 LET C=C+A 5080 GO TO 5015 5100 LET TR=Z 5105 FOR L=A TO X3-A 5110 LET TR=TR+A(L,Y3) 5120 NEXT L 5130 IF F$(D,C-A)="A" THEN LET AR=TR/(X3-A) 5140 RETURN 5200 LET TC=Z 5205 FOR L=A TO Y3-A 5210 LET TC=TC+A(X3,L) 5220 NEXT L 5230 IF F$(D,C-A)="A" THEN LET AC=TC/(Y3-A) 5260 RETURN 5400 LET A(X3,Y3)=VAL B$ 5410 RETURN 5500 LET RT=Z 5501 LET C$="" 5505 IF F$(D,C+4)="," THEN LET B$="A("+F$(D,C+2 TO C+6)+")" 5510 IF F$(D,C+4)="," THEN GO TO 5545 5530 LET C=C+A 5540 GO TO 5505 5545 LET C=C+7 5550 IF CODE F$(D,C)>59 AND CODE F$(D,C)<63 OR CODE F$(D,C)>198 AND CODE F$(D,C)<202 THEN GO TO 5580 5560 LET C=C+A 5570 GO TO 5550 5580 LET CK=CODE F$(D,C) 5585 LET C4=C+A 5590 LET C2=C+3 5600 IF F$(D,C+2)="," THEN LET C$="A("+F$(D,C TO C+4)+")" 5610 IF F$(D,C+2)="," THEN GO TO 5700 5620 LET C=C+A 5630 IF C<C2 THEN GO TO 5600 5640 LET C=C4 5645 LET D$=" " 5650 IF F$(D,C)>="." AND F$(D,C)<="9" THEN LET C$=D$+F$(D,C) 5655 IF F$(D,C)="T" THEN GO TO 5700 5660 LET C=C+A 5665 LET D$=C$ 5670 GO TO 5650 5700 LET C=C+4 5703 IF F$(D,C-2)="," THEN LET C=C+6 5705 LET BST=VAL B$ 5710 LET CST=VAL C$ 5720 IF CK=62 AND BST>CST THEN LET RT=A 5730 IF CK=60 AND BST<CST THEN LET RT=A 5740 IF CK=61 AND BST=CST THEN LET RT=A 5750 IF CK=199 AND BST<=CST THEN LET RT=A 5760 IF CK=200 AND BST>=CST THEN LET RT=A 5770 IF CK=201 AND BST<>CST THEN LET RT=A 5780 LET C5=C+A 5790 LET B$="" 5800 IF RT=A THEN RETURN 5810 IF F$(D,C)="E" THEN GO TO 5850 5820 LET C=C+A 5830 GO TO 5810 5850 LET C5=C+5 5860 LET B$="" 5870 RETURN 6000 CLS 6010 PRINT "ALL OR DATA?" 6020 INPUT B$ 6030 PRINT "SAVE NAME?" 6040 INPUT S$ 6045 PRINT AT H,A;"START TAPE PLAYER, MAKE SURE TAPE IS PAST THE LEADER, PRESS ANY KEY" 6050 IF B$="D" THEN GO TO 6100 6060 IF B$<>"A" THEN GO TO 6010 6070 SAVE S$ LINE H 6080 GO TO H 6100 SAVE S$ DATA A() 6105 PRINT AT H,Z;"NUMERIC DATA SAVED PRESS ANY KEYTO SAVE LABELS";Z$ 6110 SAVE S$ DATA A$() 6115 PRINT AT H,Z;"ALL DATA SAVED";Z$;Z$ 6117 PAUSE 300 6120 GO TO H 6200 PRINT AT T,Z;M$;M$ 6210 PRINT AT U,Z;"LOAD NAME?" 6220 INPUT L$ 6230 LOAD L$ DATA A() 6240 LOAD L$ DATA A$() 6250 RETURN 7000 PRINT AT T,Z;M$;M$ 7010 PRINT AT U,Z;"COLUMN?" 7020 INPUT C 7022 IF C=Z THEN RETURN 7025 PRINT AT T,Z;M$;M$ 7030 IF C>MA THEN PRINT AT T,Z;"NO COLUMN" 7040 IF C>MA THEN GO TO 7010 7050 PRINT AT U,Z;"D=DELETE A=ADD" 7060 PAUSE 0 7062 LET K$=INKEY$ 7065 GO SUB 8800 7070 IF K$="A" THEN GO TO 7200 7080 IF K$<>"D" THEN GO TO 7050 7090 FOR I=C+A TO X1 7100 FOR J=A TO Y1 7110 LET A(I-A,J)=A(I,J) 7120 LET A$(I-A,J)=A$(I,J) 7125 LET P$(I-A,J)=P$(I,J) 7130 NEXT J 7140 NEXT I 7150 LET X1=X1-A 7160 RETURN 7200 IF X1=MA THEN GO TO 7500 7210 FOR I=X1 TO C STEP -A 7220 FOR J=A TO Y1 7230 LET A(I+A,J)=A(I,J) 7240 LET A$(I+A,J)=A$(I,J) 7245 LET P$(I+A,J)=P$(I,J) 7250 NEXT J 7260 NEXT I 7270 LET X1=X1+A 7280 FOR I=A TO Y1 7290 LET A(C,I)=Z 7295 LET A$(C,I)="" 7300 NEXT I 7310 RETURN 7500 PRINT AT U,Z;"NO ROOM" 7510 PAUSE 0 7520 RETURN 8000 PRINT AT T,Z;M$;M$ 8005 PRINT AT U,Z;"KEY?" 8010 INPUT Y$ 8020 GO SUB 8800 8030 FOR I=A TO X1 8040 FOR J=A TO Y1 8050 IF A$(I,J)=Y$ THEN GO TO 8100 8060 NEXT J 8070 NEXT I 8080 PRINT AT U,Z;"NO MATCH" 8090 PAUSE 300 8095 RETURN 8100 LET X=I 8110 LET Y=J 8120 RETURN 8200 INPUT "FIRST COLUMN- 0=THIS SCREEN ";X5 8210 IF X5=0 THEN GO TO 8600 8215 IF X5<0 THEN GO SUB 8900: GO TO 8200 8220 INPUT "LAST COLUMN ";X6 8225 IF X6>X1 OR x6<x5 THEN GO SUB 8900: GO TO 8220 8230 INPUT "FIRST ROW ";Y5 8235 IF Y5<1 THEN GO SUB 8900: GO TO 8230 8240 INPUT "LAST ROW ";Y6 8245 IF Y6>Y1 OR Y6<Y5 THEN GO SUB 8900: GO TO 8240 8246 LET XSAV=X 8247 LET O$=" ": LET X=0 8248 FOR I=X5 TO X6-1 8249 GO SUB 8700 8250 LET O$=O$+E$(1 TO 2)+Z$(1 TO 9) 8252 NEXT I 8254 LET I=X6: GO SUB 8700 8255 LET O$=O$+E$(1 TO 2)+Z$(A TO 4) 8257 LET X=XSAV 8258 GO SUB 9100: GO SUB 9000: GO SUB 9200: LET O$="" 8260 FOR J=Y5 TO Y6 8262 IF J<10 THEN LET O$="0"+STR$ J: GO TO 8265 8263 LET O$=STR$ J 8265 GO SUB 9100: GO SUB 9000: GO SUB 9200 8268 LET O$="" 8270 FOR I=X5 TO X6-1 8280 LET O$=O$+A$(I,J)+Z$(A TO 3) 8290 NEXT I 8295 LET O$=O$+A$(I,J) 8300 GO SUB 9000 8305 LET O$="" 8310 FOR I=X5 TO X6 8320 LET N$=STR$ A(I,J) 8330 LET O$=O$+N$+Z$(A TO 10-LEN N$) 8380 LET O$=O$+" " 8390 NEXT I 8395 GO SUB 9000 8400 NEXT J 8410 RETURN 8600 IF X-1<1 THEN LET X5=1: GO TO 8615 8610 LET X5=X-1 8615 IF X+1>X1 THEN LET X6=X1: GO TO 8630 8620 LET X6=X+1 8630 IF Y-2<1 THEN LET Y5=1: GO TO 8650 8640 LET Y5=Y-1 8650 IF Y+3>Y1 THEN LET Y6=Y1: GO TO 8670 8660 LET Y6=Y+3 8670 GO TO 8246 8700 DIM E$(2) 8710 LET E1=INT ((X+I)/H) 8720 LET E2=X+I-E1*H 8730 LET E$(A)=CHR$ (E1+48) 8740 LET E$(2)=CHR$ (E2+48) 8750 RETURN 8800 FLASH 1: PRINT AT H,H;">CALCULATING" 8810 FLASH 0: RETURN 8900 PRINT AT U,Z;"INVALID ENTRY": BEEP .5,6: RETURN 9000 LPRINT O$: RETURN 9100 INVERSE 1: RETURN 9200 INVERSE 0: RETURN 9300 LET CELM=1008: LET FUNL=80: LET FUNM=150: RETURN 9997 SAVE "SCREEN" LINE 9998 9998 LET I=0 9999 GO TO 10 1 LET z=0 2 CLEAR 5 LET S$="SAV NAME" 8 LET I=-1 10 LET I1=2 11 LET Z=0 12 LET A=1 13 LET FC1=0: LET FF=0 14 LET H=10 15 LET K=11 16 LET T=20 17 LET U=21 20 LET J1=A 21 INK 4 22 PAPER 0 23 CLS 24 BORDER 0 25 GO SUB 9300 30 LET M=A 40 DIM Y$(8) 50 LET Z$=" " 70 LET M$="████████████████████████████████" 270 PRINT AT 0,0;Z$ 290 IF I<Z THEN GO TO 350 300 PRINT AT U,Z;"NEW OR OLD" 302 POKE 23658,8 305 PRINT AT H,H;"SCREEN-CALC" 306 PRINT AT K,Z;" © COPYRIGHT 1983 BANTASOFTWARE" 307 PRINT TAB 7;"ALL RIGHTS RESERVED" 310 PAUSE 0 315 LET K$=INKEY$ 320 IF K$="N" THEN GO TO 2 330 IF K$="O" THEN GO TO 1000 340 GO TO 310 350 CLS 360 LET FC=Z 370 PRINT ,,"SIZE(MAX ";CELM;"):" 380 LET A$="" 390 PRINT AT A,17;A$;">" 410 LET B$=" " 430 LET K$=INKEY$ 440 IF K$=CHR$ 13 THEN GO TO 500 450 PAUSE 6 460 IF K$="" THEN GO TO 390 465 PRINT AT U,Z;Z$ 470 LET A$=A$+K$ 480 GO TO 390 500 LET C=Z 508 PRINT AT A,17;" " 510 IF LEN A$<3 THEN GO TO 540 520 IF A$(2)="X" THEN LET C=2 530 IF A$(3)="X" THEN LET C=3 540 IF C=Z THEN PRINT AT 21,Z;"BAD INPUT" 550 IF C=Z THEN GO TO 380 560 LET X1=VAL A$(A TO C-A) 570 LET Y1=VAL A$(C+A TO LEN A$) 580 IF X1*Y1<=CELM AND X1*Y1>Z THEN GO TO 600 585 PRINT AT U,Z;"BAD SIZE, TRY AGAIN" 590 GO TO 380 600 PRINT AT A,16;A$,"OK?" 620 PAUSE 0 660 IF INKEY$="N" THEN GO TO 350 665 IF INKEY$<>"Y" THEN GO TO 620 666 GO SUB 8800 670 LET MA=X1 680 IF MA*Y1>CELM-Y1 THEN GO TO 720 690 LET MA=MA+A 700 GO TO 680 720 DIM A$(MA,Y1,8) 725 DIM A(MA,Y1) 730 DIM F$(FUNM,FUNL+2) 740 DIM P$(MA,Y1) 750 FOR I=A TO MA 760 FOR J=A TO Y1 770 LET P$(I,J)=CHR$ Z 780 NEXT J 790 NEXT I 800 LET INS=Z 810 LET CLER=Z 820 DIM X$(A) 1040 LET X=A 1050 LET Y=A 1060 LET BOX=Z 1070 CLS 1200 IF x$="A" THEN GO TO 1212 1202 PRINT X1;"X";Y1;TAB 11;S$;TAB 21;"FC=";FC 1203 PRINT AT A,Z;M$;"██ ";TAB 9;"▌ ▌";TAB T;"▌ ▌";TAB 30;"██" 1204 FOR I=-A TO A 1205 GO SUB 8700 1206 REM 1207 REM 1208 REM 1209 REM 1210 INVERSE 1: PRINT AT A,K*I+14;E$: INVERSE 0 1211 NEXT I 1212 FOR I=-I1 TO I1+A 1214 LET Y3=I+Y 1215 IF Y3>Y1 OR Y3<=Z THEN GO TO 1260 1216 DIM E$(2) 1217 LET E1=INT (Y3/H) 1218 LET E2=Y3-E1*H 1219 LET E$(A)=CHR$ (E1+48) 1220 LET E$(2)=CHR$ (E2+48) 1221 PRINT AT I*3+8,Z; 1222 INVERSE 1 1223 IF I=-I1 THEN PRINT E$;AT 2,30;E$ 1224 INVERSE 0 1225 IF I=-I1 THEN PRINT AT 2,Z 1226 IF INS=A THEN PRINT AT 8,Z