ZCALC

Date: 198x
Type: Cassette
Platform(s): TS 1000

Gallery

ZCALC

Source Code

  10 PAUSE 200
  12 PRINT AT 0,0;"                                "
  14 RETURN 
  16 LET X=(H*7)-6
  18 LET U=X+6
  20 RETURN 
  22 PRINT AT 2,6;"NAME"
  24 PRINT AT 3,0;"  NAME%F%U%N%C="
  26 RETURN 
  28 GOSUB 12
  30 PRINT AT 0,0;"SCROLL:U=7,D=6,R=8,L=5,NONE=0"
  32 INPUT Q
  34 GOSUB 12
  36 IF Q=0 THEN RETURN 
  38 IF Q=5 THEN LET H=-(H1=H)+H+1
  40 IF Q=8 THEN LET H=H-1+(H=1)
  42 IF Q=7 THEN LET V=V+1-(V>V1)
  44 IF Q=6 THEN LET V=V-1+(V<4)
  46 LET H2=H
  47 FOR K=11 TO 25 STEP 7
  48 IF H>H1 THEN GOTO 76
  50 GOSUB 16
  52 PRINT AT 1,K+3;CHR$ (H+37)
  54 PRINT AT 2,K;A$(1,X TO U)
  56 PRINT AT 3,K;A$(2,X TO U)
  57 LET V2=V
  58 FOR J=4 TO 18
  60 IF V>V1 THEN GOTO 73
  61 PRINT AT J,0;CHR$ (V+35);".";A$(V,141 TO 149)
  62 PRINT AT J,K;A$(V,X TO U)
  64 LET V=V+1
  66 NEXT J
  68 LET H=H+1
  69 LET V=V2
  70 NEXT K
  71 LET H=H2
  72 GOTO 30
  73 PRINT AT J,0;"                              "
  74 GOTO 68
  76 FOR J=1 TO 18
  78 PRINT AT J,K;"       "
  80 NEXT J
  82 GOTO 71
 500 PRINT AT 10,0;" %C%A%U%T%I%O%N: REFER TO INSTRUCTIONS     FOR RULES AND PROCEDURES"
 510 PAUSE 200
 520 CLS 
 565 PRINT AT 0,0;"1=IN,2=C,3=F,4=W,5=TC,6=TR,7=ANS" 
 580 INPUT Q
 590 IF Q<1 OR Q>7 THEN GOTO 570
 600 GOSUB 12
 610 GOTO 700+((Q-1)*1000)
 700 LET Q1=0
 701 CLS 
 702 DIM A$(22,149)
 705 LET H=1
 710 GOSUB 22
 715 FOR K=11 TO 25 STEP 7
 716 DIM X$(6)
 717 PRINT AT 0,0;"INPUT COLUMN NAME;*=END"
 720 PRINT AT 1,K+3;CHR$ (H+37)
 725 PRINT AT 2,K;"%       "
 727 PRINT AT 3,K;"       "
 730 INPUT X$
 732 GOSUB 12
 735 IF X$(1)="*" THEN GOTO 805
 740 GOSUB 16
 745 LET A$(1,X TO U)=X$(1 TO 6)
 750 PRINT AT 2,K;A$(1,X TO U)
 765 PRINT AT 0,0;"INPUT COLUMN FUNCTION"
 767 PRINT AT 3,K;"%     "
 770 INPUT A$(2,X TO U)
 775 GOSUB 12
 785 LET H=H+1
 790 PRINT AT 3,K;A$(2,X TO U)
 792 LET V=1
 795 NEXT K
 800 GOTO 715
 805 LET H1=H-1
 810 LET H=1
 820 LET V=3
 825 LET L=18
 830 FOR K=4 TO L
 835 PRINT AT 0,0;"INPUT ROW NAME;*=END"
 837 PRINT AT K,0;CHR$ (V+35);"."
 840 PRINT AT K,2;"%    "
 845 INPUT X$
 850 GOSUB 12
 855 IF X$(1)="*" THEN GOTO 920
 860 LET A$(V,141 TO 144)=X$(1 TO 4)
 865 PRINT AT K,2;A$(V,141 TO 144)
 870 PRINT AT 0,0;"INPUT ROW FUNCTION"
 875 PRINT AT K,6;"%     "
 880 INPUT A$(V,145 TO 149)
 885 GOSUB 12
 890 PRINT AT K,6;A$(V,145 TO 149)
 895 LET V=V+1
 900 NEXT K
 905 IF L=8 THEN GOTO 820
 910 LET L=8
 915 GOTO 830
 920 LET V1=V-1
 925 LET H=1
 930 LET V=3
 935 PRINT AT 0,0;"INPUT VALUES"
 940 FOR K=11 TO 25 STEP 7
 945 IF H>H1 THEN GOTO 1065
 950 GOSUB 16
 952 PRINT AT 1,K+3;CHR$ (H+37)
 955 PRINT AT 2,K;A$(1,X TO U)
 957 PRINT AT 3,K;A$(2,X TO U)
 960 FOR J=4 TO 18
 965 PRINT AT J,K;"       "
 970 NEXT J
 980 LET L=18
 985 FOR J=4 TO L
 986 IF V>V1 THEN GOTO 1045
 995 PRINT AT J,0;CHR$ (V+35);".";A$(V,141 TO 149)
 997 LET I=(H*7)-6
 998 IF A$(V,145)="=" OR A$(2,X)="=" THEN GOTO 1130
1000 PRINT AT J,K;"%       "
1010 INPUT A$(V,I TO I+6)
1015 PRINT AT J,K;A$(V,I TO I+6)
1020 LET V=V+1
1025 NEXT J
1030 IF V1<16 OR L=8 THEN GOTO 1045
1035 LET L=8
1040 GOTO 985
1045 LET H=H+1
1050 LET V=3
1055 NEXT K
1060 GOTO 940
1065 GOSUB 12
1067 PRINT AT 0,0;"INPUT CONSTANTS"
1070 LET Z=1
1075 DIM W$(120)
1080 FOR K=0 TO 24 STEP 8
1085 FOR J=19 TO 21
1090 PRINT AT J,K;"W";CHR$ (37+Z);"=";
1095 LET W1=(5*Z)-4
1100 INPUT X$
1105 IF X$(1)="*" THEN GOTO 565
1107 LET W$(W1 TO W1+4)=X$(1 TO 4)
1110 LET Z=Z+1
1112 PRINT W$(W1 TO W1+4)
1115 NEXT J
1120 NEXT K
1125 GOTO 565
1130 LET A$(V,I)="0"
1135 GOTO 1015
1700 LET H=1
1710 LET V=3
1720 PRINT AT 0,0;"MOVE CELL TO 1ST COL £ ROW"
1725 GOSUB 10
1730 GOSUB 46
1740 GOSUB 12
1750 PRINT AT 0,0;"INPUT NEW VALUE"
1760 GOSUB 16
1770 INPUT A$(V,X TO U)
1780 PRINT AT 4,11;A$(V,X TO U)
1790 PRINT AT 0,0;"ANOTHER CHANGE Y OR N"
1800 INPUT X$
1810 IF X$(1)="Y" THEN GOTO 1730
1820 GOTO 565
2700 CLS 
2705 FOR H=1 TO H1
2710 GOSUB 16
2720 PRINT AT H,0;CHR$ (H+37);".";A$(1,X TO U);" ";A$(2,X TO U)
2730 NEXT H
2740 PRINT AT 0,0;"INPUT COLUMN LETTER,*=FINISHED"
2750 INPUT X$
2760 IF X$(1)="*" THEN GOTO 2860
2770 LET H=(CODE X$)-37
2780 PRINT AT H,10;"%     "
2800 GOSUB 12
2810 PRINT AT 0,0;"INPUT VALUE"
2820 GOSUB 16
2830 INPUT A$(2,X TO U)
2835 GOSUB 12
2840 PRINT AT H,10;A$(2,X TO U)
2850 GOTO 2740
2860 CLS 
2870 FOR V=3 TO V1
2880 PRINT AT V-2,0;CHR$ (V+35);".";A$(V,141 TO 149)
2900 NEXT V
2910 PRINT AT 0,0;"INPUT ROW LETTER,*=FINISHED"
2920 INPUT X$
2930 IF X$(1)<>"*" THEN GOTO 2955
2940 CLS 
2950 GOTO 565
2955 LET V=CODE X$(1)-37
2960 PRINT AT V,6;"%     "
2970 GOSUB 12
2980 PRINT AT 0,0;"INPUT VALUE"
2990 INPUT A$(V+2,145 TO 149)
3000 PRINT AT V,6;A$(V+2,145 TO 149)
3010 GOTO 2910
3700 CLS 
3710 FOR K=1 TO 12
3720 PRINT AT K,0;"W";CHR$ (37+K);"=";W$((K*5)-4 TO K*5)
3730 PRINT AT K,15;"W";CHR$ (49+K);"=";W$(((K+12)*5)-4 TO (K+12)*5)
3740 NEXT K
3750 PRINT AT 0,0;"INPUT CONSTANT"
3770 INPUT X$
3775 GOSUB 12
3780 LET Z=CODE X$(2)-37
3790 PRINT AT Z-(12*(Z>12)),3+(15*(Z>12));"%        "
3800 PRINT AT 0,0;"INPUT VALUE"
3810 INPUT X$
3820 IF X$(1)="*" THEN GOTO 565
3830 GOSUB 12
3840 LET W1=(Z*5)-4
3850 LET W$(W1 TO W1+4)=X$
3860 PRINT AT Z-(12*(Z>12)),3+(15*(Z>12));W$(W1 TO W1+4)
3870 GOTO 3750
4700 CLS 
4710 PRINT AT 0,0;"INPUT COLUMN LETTER=";
4720 INPUT X$
4730 PRINT X$
4740 LET H=CODE X$(1)-37
4750 GOSUB 16
4760 PRINT AT 2,0;"COLUMN NAME=";A$(1,X TO U)
4765 LET Z=0
4770 FOR V=3 TO V1
4775 IF A$(V,X)=" " THEN GOTO 4790
4780 LET Z=Z+VAL A$(V,X TO U)
4790 NEXT V
4800 PRINT AT 4,0;"COLUMN TOTAL=";Z
4820 PRINT AT 6,0;"COLUMN AVERAGE=";(INT ((Z*100)/(V1-2)))/100
4830 PRINT AT 8,0;"ANOTHER COLUMN TOTAL Y OR N"
4840 INPUT X$
4850 IF X$(1)="N" THEN GOTO 520
4860 CLS 
4870 GOTO 4700
5700 CLS 
5710 PRINT AT 0,0;"INPUT ROW LETTER=";
5720 INPUT X$
5730 PRINT X$
5740 LET V=CODE X$(1)-35
5760 PRINT AT 2,0;"ROW NAME=";A$(V,141 TO 144)
5765 LET Z=0
5770 FOR H=1 TO H1
5775 GOSUB 16
5777 IF A$(V,X)=" " THEN GOTO 5790
5780 LET Z=Z+VAL A$(V,X TO U)
5790 NEXT H
5800 PRINT AT 4,0;"ROW TOTAL=";Z
5820 PRINT AT 6,0;"ROW AVERAGE=";(INT ((Z*100)/H1))/100
5830 PRINT AT 8,0;"ANOTHER ROW TOTAL Y OR N"
5840 INPUT X$
5850 IF X$(1)="N" THEN GOTO 520
5860 CLS 
5870 GOTO 5700
6700 FOR K=1 TO (H1*7)-6 STEP 7
6710 IF A$(2,K)="£" THEN GOTO 6950
6720 FOR V=3 TO V1
6722 LET K1=K
6730 IF A$(2,K1+1)="W" THEN GOTO 6770
6740 LET H=CODE (A$(2,K1+1))-37
6745 GOSUB 16
6750 LET X=VAL A$(V,X TO U)
6760 GOTO 6800
6770 LET Z=CODE (A$(2,K1+2))-37
6780 LET Z=(Z*5)-4
6790 LET X=VAL W$(Z TO Z+4)
6800 IF A$(2,K1)="+" THEN LET A$(V,K TO K+6)=STR$ ((INT (((VAL A$(V,K TO K+6))+X)*10))/10)
6810 IF A$(2,K1)="-" THEN LET A$(V,K TO K+6)=STR$ ((INT (((VAL A$(V,K TO K+6))-X)*10))/10)
6820 IF A$(2,K1)="*" THEN LET A$(V,K TO K+6)=STR$ ((INT (((VAL A$(V,K TO K+6))*X)*10))/10)
6830 IF A$(2,K1)="/" AND X=0 THEN LET X=.01
6850 IF A$(2,K1)="/" THEN LET A$(V,K TO K+6)=STR$ ((INT (((VAL A$(V,K TO K+6))*X)/10))/10)
6870 IF A$(2,K1)<>"=" THEN GOTO 6940
6890 LET A$(V,K TO K+6)=STR$ X
6910 IF A$(2,K1+1)="W" OR A$(2,K1+2)=" " THEN GOTO 6940
6920 LET K1=K+2
6930 GOTO 6730
6940 NEXT V
6950 NEXT K
6960 FOR V=3 TO V1
6980 IF A$(V,145)="£" THEN GOTO 7210
6990 FOR H=1 TO (H1*7)-6 STEP 7
6995 LET K1=145
7010 IF A$(V,K1+1)="W" THEN GOTO 7050
7020 LET Z=CODE A$(V,K1+1)-35
7030 LET X=VAL (A$(Z,H TO H+6))
7040 GOTO 7080
7050 LET Z=CODE A$(V,K1+2)-37
7060 LET Z=(Z*5)-4
7070 LET X=VAL W$(Z TO Z+4)
7080 IF A$(V,K1)="+" THEN LET A$(V,H TO H+6)=STR$ ((INT (((VAL A$(V,H TO H+6))+X)*10))/10)
7090 IF A$(V,K1)="-" THEN LET A$(V,H TO H+6)=STR$ ((INT (((VAL A$(V,H TO H+6))-X)*10))/10)
7100 IF A$(V,K1)="*" THEN LET A$(V,H TO H+6)=STR$ ((INT (((VAL A$(V,H TO H+6))*X)*10))/10)
7110 IF A$(V,K1)="/" AND X=0 THEN LET X=.01
7120 IF A$(V,K1)="/" THEN LET A$(V,H TO H+6)=STR$ ((INT (((VAL A$(V,H TO H+6))/X)*10))/10)
7130 IF A$(V,K1)<>"=" THEN GOTO 7200
7150 LET A$(V,H TO H+6)=STR$ X
7160 IF A$(V,K1+1)="W" OR A$(V,K1+2)=" " THEN GOTO 7200
7180 LET K1=147
7190 GOTO 7010
7200 NEXT H
7210 NEXT V
7710 LET H=1
7720 LET V=3
7730 GOSUB 46
7740 GOTO 565
9550 SAVE "CA%L"
9555 LET X$="CAL"
9560 FAST 
9565 LET N=0
9570 FOR L=5 TO 19 STEP 7
9575 LET N=N+1
9580 LET C=CODE X$(N)
9585 FOR H=0 TO 7
9590 LET P=PEEK (7680+C*8+H)
9595 LET V=128
9600 FOR G=0 TO 7
9605 IF P<V THEN GOTO 9625
9610 PRINT AT H+3,G+L;"% "
9615 LET P=P-V
9620 GOTO 9630
9625 PRINT AT H+3,G+L;"\@@"
9630 LET V=V/2
9635 NEXT G
9640 NEXT H
9645 NEXT L
9650 PRINT "      Z CALC COPYRIGHT UAS"
9655 PRINT "BOX 612 HADDONFIELD,N.J. 08033"
9660 PAUSE 200
9670 CLS 
9680 GOTO 500

People

No people associated with this content.

Scroll to Top