Screen-Calc

Products: Screen-Calc
Developer(s): Andrew Banta
Date: 1983
Type: Cassette
Platform(s): TS 2068

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.

Gallery

Screen-Calc

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
Scroll to Top