Listing of file='PKMONAD' on disk='vmedia/701-2720C.wvd.zip'
# Sector 249, program filename = 'PKMONAD'
0010 REM % C O M M O N V A R I A B L E S
0020 COM G3$(G3)G6,L3$(L3)L6,L3,L5,L6,G3,G5,G6,H7$7,G4$(G3)5,L3$(L3)L6,F7,F1$(
F7)2
: COM M3,F5,C9,R9,C8,C6,D5,D6
: GOTO 3025
0050 DEFFNS(Q)=VAL(STR(F1$(Q),1,1))
0060 DEFFNL(Q)=VAL(STR(F1$(Q),2,1))
3000 REM DO NOT COMPRESS THIS CODE
3025 LOAD T"PKMAIN"3000,9999BEG 3025
6010 STR(G3$(G5+1),FNS(8),FNL(8))="Tot"
: PRINT AT(16,0,80);AT(16,10);HEX(0E);"Total What ?";HEX(0F);
: GOTO 6060
6020 STR(G3$(G5+1),FNS(8),FNL(8))="Max"
: PRINT AT(16,0,80);AT(16,10);HEX(0E);"Maximum of What ?";HEX(0F);
: GOTO 6060
6030 STR(G3$(G5+1),FNS(8),FNL(8))="Min"
: PRINT AT(16,0,80);AT(16,10);HEX(0E);"Minimum of What ?";HEX(0F);
: GOTO 6060
6040 STR(G3$(G5+1),FNS(8),FNL(8))="Avg"
: PRINT AT(16,0,80);AT(16,10);HEX(0E);"Average of What ?";HEX(0F);
: GOTO 6060
6050 STR(G3$(G5+1),FNS(8),FNL(8))="Cnt"
: PRINT AT(16,0,80);AT(16,10);HEX(0E);"Count of What ?";HEX(0F);
: GOSUB '98(3)
: STR(G3$(G5+1),FNS(5),FNL(5))=HEX(0101010101FF)
: FOR I1=1TO G5
: IF STR(G4$(I1),FNS(14),FNL(14))="Y"THEN 6110
: NEXT I1
: GOTO 3025
6060 GOSUB '98(2)
: FOR I1=1TO G5
: IF STR(G4$(I1),FNS(14),FNL(14))="Y"THEN 6102
: NEXT I1
: GOTO 3025
6102 STR(G3$(G5+1),FNS(5),FNL(5))=STR(G3$(I1),FNS(5),FNL(5))
6110 STR(G3$(G5+1),FNS(9),FNL(9))="F"
: STR(G3$(G5+1),FNS(10),FNL(10))=STR(G3$(I1),FNS(1),FNL(1))
: STR(G3$(G5+1),FNS(1),3)=STR(G3$(G5+1),FNS(8),FNL(8))
: STR(G3$(G5+1),FNS(1)+3,1)="-"
: STR(G3$(G5+1),FNS(1)+4,FNL(1)-4)=STR(G3$(I1),FNS(1),FNL(1)-4)
6145 PRINT AT(18,50,30);AT(19,50,30);AT(20,50,30);AT(21,50,30);AT(22,50,30);AT
(23,50,30);
6160 PRINT AT(16,0,80);AT(16,10);HEX(0E);"Please enter this new fields name: "
;
: GOSUB '123(STR(G3$(G5+1),FNS(1),FNL(1)),FNL(1),16,45,2424," ",HEX(0D82)
)
: STR(G3$(G5+1),FNS(1),FNL(1))=S$
: PRINT HEX(0F);
: IF STR(G3$(G5+1),FNS(1),FNL(1))<>" "THEN 6170
: PRINT HEX(07);
: GOTO 6160
6170 FOR I1=1TO G5
: IF STR(G3$(I1),FNS(1),FNL(1))<>STR(G3$(G5+1),FNS(1),FNL(1))THEN GOTO 6175
: IF STR(G3$(I1),FNS(8),FNL(8))="???"THEN 6180
: PRINT HEX(07);
: GOTO 6160
6175 NEXT I1
: STR(G3$(G5+1),FNS(3),FNL(3))=BIN(1,2)
: STR(G3$(G5+1),FNS(4),FNL(4))=BIN(12,2)
: STR(G3$(G5+1),FNS(5),FNL(5))=HEX(0101010101FF)
: GOTO 6190
6180 STR(G3$(I1),FNS(1),FNL(1))=" "
: STR(G3$(G5+1),FNS(3),FNL(3))=STR(G3$(I1),FNS(3),FNL(3))
: STR(G3$(G5+1),FNS(4),FNL(4))=STR(G3$(I1),FNS(4),FNL(4))
: STR(G3$(G5+1),FNS(5),FNL(5))=STR(G3$(I1),FNS(5),FNL(5))
6190 STR(G3$(G5+1),FNS(2),FNL(2))="S"
: STR(G3$(G5+1),FNS(13),FNL(13))="Y"
: G5=G5+1
: PRINT HEX(0F);
: PRINT AT(16,0,80);AT(16,10);HEX(0E);"Regenerating Diagram ...";HEX(0F);
: LOAD T"PKREGEN"3000,9999
8010 DEFFN'99(M1)
8020 Z1=1
: FOR A3=1TO G5
: C9=VAL(STR(G4$(A3),FNS(16),FNL(16)),2)
: R9=VAL(STR(G4$(A3),FNS(15),FNL(15)))
: T3$=STR(G3$(A3),FNS(2),FNL(2))
: T2$=STR(G3$(A3),FNS(8),FNL(8))
: T4$=STR(G3$(A3),FNS(13),FNL(13))
: T1=VAL(STR(G3$(A3),FNS(6),FNL(6)))
: C9=C9-W1(1,2)+W1(1,6)
: R9=R9-W1(1,1)+W1(1,5)
8040 IF C9<W1(1,6)OR C9>W1(1,6)+W1(1,4)-1OR R9<W1(1,5)OR R9>W1(1,5)+W1(1,3)-1T
HEN 8100
: IF T4$="N"THEN 8100
: IF T3$<>"S"AND T3$<>"U"AND M1=2THEN 8100
: IF STR(G3$(A3),FNS(8),FNL(8))="???"THEN 8100
: IF T4$="N"THEN 8100
: IF T1=0AND M1=1THEN 8100
: IF T2$<>"NO"AND M1=1THEN 8100
8046 IF STR(G4$(A3),FNS(14),FNL(14))="Y"THEN PRINT AT(R9+1,C9);HEX(0202020F960
202000E);
: ELSE PRINT AT(R9+1,C9);".";
: Z1=0
8100 NEXT A3
: IF Z1=0THEN RETURN
8120 PRINT HEX(06);
: KEYIN A$,,8140
8130 PRINT HEX(07);
: GOTO 8120
8140 IF A$<>HEX(02)THEN 8170
: IF C6-C8<=80-C8THEN 8130
: C6=C6-C8
: PRINT AT(R9+1,0,80);
: GOSUB '222(1,0,C8)
: GOSUB '94
: GOTO 8020
8170 IF A$<>HEX(03)THEN 8210
: IF C6+C8>F5THEN 8130
: C6=C6+C8
: PRINT AT(R9+1,0,80);
: GOSUB '222(1,0,-1*C8)
: GOSUB '94
: GOTO 8020
8210 IF A$<>HEX(F0)AND A$<>HEX(50)THEN 8130
: Z1=1
: R9=1
: C9=11
: RETURN
8240 DEFFN'98(M3)
: PRINT AT(18,50,30);AT(19,50,30);AT(20,50,30);AT(21,50,30);AT(22,50);"Retu
rn - Select ";AT(23,50);HEX(0E);"CANCEL/EDIT - Cancel
";HEX(0F);
: GOSUB '94
: FOR I1=1TO G5
: STR(G4$(I1),FNS(14),FNL(14))="N"
: NEXT I1
: A2=1
8290 GOSUB '85
: GOSUB '99(M3)
: IF Z1=1THEN 8570
8300 R9=VAL(STR(G4$(A2),FNS(15),FNL(15)))
: R9=R9-W1(1,1)+W1(1,5)
: C9=VAL(STR(G4$(A2),FNS(16),FNL(16)),2)
: C9=C9-W1(1,2)+W1(1,6)
: T3$=STR(G3$(A2),FNS(2),FNL(2))
: T4$=STR(G3$(A2),FNS(13),FNL(13))
: IF T4$="N"THEN 8315
: IF M3=2AND T3$<>"S"AND T3$<>"U"THEN 8315
: IF STR(G3$(A2),FNS(8),FNL(8))="???"THEN 8315
8310 IF C9>=W1(1,6)AND C9<=W1(1,6)+W1(1,4)-1AND R9>=W1(1,5)AND R9<=W1(1,5)+W1(
1,3)-1THEN 8320
8315 IF A2<G5THEN A2=A2+1
: ELSE A2=1
: GOTO 8300
8320 PRINT AT(R9+1,C9);HEX(02050F);
: KEYIN A$,,8480
: PRINT AT(R9+1,C9);".";
: IF A$<>" "THEN 8390
8370 A2=A2+1
: IF A2>G5THEN A2=1
: R9=VAL(STR(G4$(A2),FNS(15),FNL(15)))
: C9=VAL(STR(G4$(A2),FNS(16),FNL(16)),2)
: R9=R9-W1(1,1)+W1(1,5)
: C9=C9-W1(1,2)+W1(1,6)
: T3$=STR(G3$(A2),FNS(2),FNL(2))
: T4$=STR(G3$(A2),FNS(13),FNL(13))
: IF T4$="N"THEN 8370
8379 IF M3=2AND T3$<>"S"AND T3$<>"U"THEN 8370
: IF STR(G3$(A2),FNS(8),FNL(8))="???"THEN 8370
: IF C9>=W1(1,6)AND C9<=W1(1,6)+W1(1,4)-1AND R9>=W1(1,5)AND R9<=W1(1,5)+W1(
1,3)-1THEN 8320
: GOTO 8370
8390 IF A$<>HEX(08)THEN 8420
8400 A2=A2-1
: IF A2<1THEN A2=G5
: R9=VAL(STR(G4$(A2),FNS(15),FNL(15)))
: C9=VAL(STR(G4$(A2),FNS(16),FNL(16)),2)
: R9=R9-W1(1,1)+W1(1,5)
: C9=C9-W1(1,2)+W1(1,6)
: T3$=STR(G3$(A2),FNS(2),FNL(2))
: T4$=STR(G3$(A2),FNS(13),FNL(13))
: IF T4$="N"THEN 8400
8409 IF M3=2AND T3$<>"S"AND T3$<>"U"THEN 8400
: IF STR(G3$(A2),FNS(8),FNL(8))="???"THEN 8400
: IF C9>=W1(1,6)AND C9<=W1(1,6)+W1(1,4)-1AND R9>=W1(1,5)AND R9<=W1(1,5)+W1(
1,3)-1THEN 8320
: GOTO 8400
8420 IF A$<>HEX(0D)THEN 8460
: STR(G4$(A2),FNS(14),FNL(14))="Y"
: PRINT AT(R9+1,C9);HEX(0202020F960202000E0802050F);
: Z1=0
: RETURN
8460 PRINT HEX(07);
: GOTO 8320
8480 IF A$<>HEX(02)THEN 8510
: IF C6-C8<=80-C8THEN 8320
: C6=C6-C8
: PRINT AT(R9+1,0,80);
: GOSUB '222(1,0,C8)
: GOSUB '94
: GOTO 8290
8510 IF A$<>HEX(03)THEN 8550
: IF C6+C8>F5THEN 8320
: C6=C6+C8
: PRINT AT(R9+1,0,80);
: GOSUB '222(1,0,-1*C8)
: GOSUB '94
: GOTO 8290
8550 IF A$<>HEX(09)THEN 8560
: STR(G4$(A2),FNS(14),FNL(14))="N"
: PRINT AT(R9+1,C9);".";
: GOTO 8320
8560 IF A$<>HEX(F0)AND A$<>HEX(50)THEN 8460
8570 PRINT HEX(06);AT(R9+1,0,80);AT(23,50,30);
: R9=1
: C9=11
: FOR A2=1TO G5
: STR(G4$(A2),FNS(14),FNL(14))="N"
: NEXT A2
: G3$(G5+1)=ALL(" ")
: Z1=1
: RETURN
9001 DEFFN'123(S$,S1,S2,S3,S7,S5$,S6$)
9002 S5=S3
: $TRAN(S6$,HEX(FE0D))R
: S4=1
: S8$=BIN(INT(S7/1000))&BIN(MOD(INT(S7/100),10))
: PRINT AT(S2,S3);HEX(0202020F0204);STR(S8$,1,2);HEX(0E);STR(S$,1,S1);AT(S2
,S3);
9003 PRINT HEX(05);
: KEYIN S9$,,9005
: PRINT HEX(06);
: IF S9$=HEX(84)THEN 9003
: $TRAN(S9$,HEX(FE0D))R
: IF POS(HEX(82FEA1E5)=S9$)>0THEN 9006
: IF S9$=HEX(08)THEN 9021
: IF S4>S1THEN 9003
: IF POS(S5$="S")>0AND S9$=" "THEN S9$=HEX(80)
: PRINT AT(S2,S5);S9$;
: STR(S$,S4,1)=S9$
: IF POS(S5$="A")>0AND S4>=S1THEN 9004
: S5=S5+1
: S4=S4+1
: GOTO 9003
9004 S8$=BIN(MOD(INT(S7/10),10))&BIN(MOD(INT(S7),10))
: IF POS(S5$="L")>0THEN S7=LEN(S$)
: ELSE S7=S1
: PRINT AT(S2,S3);HEX(0202020F0204);STR(S8$,1,2);HEX(0E);STR(S$,1,S7);HEX(0
202000F020402000F);
: IF POS(S5$="L")>0AND LEN(S$)<S1THEN PRINT STR(S$,LEN(S$)+1,S1-LEN(S$));
: IF POS(S5$="A")>0AND S4>=S1AND POS(S6$=S9$)=0THEN S9$=HEX(FF)
: RETURN
9005 PRINT HEX(06);
: $TRAN(S9$,HEX(0A4A0A5A094909590C5C0C4C0D5D0D4DE548))R
: IF S9$=HEX(0D)THEN 9016
9006 PRINT HEX(06);
: IF POS(S6$=S9$)>0THEN 9004
: IF S9$=HEX(E5)THEN 9023
: ON VAL(S9$)-3GOTO 9007,9003,9003,9009,9010,9012,9013,9014,9015,9016,9017
: GOTO 9003
9007 IF LEN(S$)=S1THEN S4=S1
: ELSE IF S$<>" "THEN S4=LEN(S$)+1
: ELSE S4=1
: S5=S3+LEN(S$)
: IF S$=" "THEN S5=S3
: IF S5>S3+S1-1THEN S5=S3+S1-1
9008 PRINT AT(S2,S5);
: GOTO 9003
9009 S5=S3
: S4=1
: GOTO 9008
9010 STR(S$,S4)=" "
9011 PRINT AT(S2,S3);STR(S$,1,S1);AT(S2,S5);
: GOTO 9003
9012 STR(S$,S4)=STR(S$,S4+1)
: GOTO 9011
9013 FOR S6=S1TO S4+1STEP -1
: IF S6>1THEN STR(S$,S6,1)=STR(S$,S6-1,1)
: NEXT S6
: STR(S$,S4,1)=" "
: GOTO 9011
9014 S6=5
: GOTO 9018
9015 S6=1
: GOTO 9018
9016 S6=-1
: GOTO 9018
9017 S6=-5
9018 S5=S5+S6
: S4=S4+S6
: IF S4>0THEN 9019
: S4=1
: S5=S3
9019 S6=LEN(S$)
: IF S$=" "THEN S6=0
: IF S4<=S6THEN 9020
: S5=S3+S6
: S4=S6+1
9020 PRINT AT(S2,S5);
: GOTO 9003
9021 S4=S4-1
: S5=S5-1
: IF S4>0THEN 9022
: S4=1
: S5=S3
9022 IF POS(S5$="S")=0THEN STR(S$,S4,1)=" "
: ELSE STR(S$,S4,1)=HEX(80)
: GOTO 9011
9023 S$=" "
: GOTO 9002
9405 DEFFN'85
: RETURN
9410 KEYIN A$,9420,9420
: GOTO 9430
9420 PRINT HEX(07);
: GOTO 9410
9430 RETURN
9500 DEFFN'94
: IF C6-C8<=80-C8THEN PRINT AT(18,50,30);
: ELSE PRINT AT(18,50);"'2 - Look Right";
: IF C6+C8>F5THEN PRINT AT(19,50,30);
: ELSE PRINT AT(19,50);"'3 - Look Left";
: RETURN
9701 DEFFNS(Q)=VAL(STR(F1$(Q),1,1))
9702 DEFFNL(Q)=VAL(STR(F1$(Q),2,1))
9900 DEFFN'0"PRINT HEX(03);:LIST SD 9000, 9699";HEX(0D)
: ON SGOTO 6010,6020,6030,6040,6050
9999 % SCRATCH T "PKMONAD":SAVE T ()"PKMONAD"