Listing of file='QSUBS02' on disk='vmedia/701-2739G.wvd.zip'
# Sector 665, program filename = 'QSUBS02'
3801 DEFFN'162
3836 PRINT HEX(06)
: Q2$=" "
: Q9(1)=LEN(STR(Q8$()))/LEN(STR(Q8$(1)))
: ON POS("12345"=STR(Q1$,2))GOTO 3838,3838,3839,3876,3883
: PRINT AT(0,30);"BAD SCREEN CALL"
: Q2$=HEX(82)
: RETURN
3838 Q9(4)=Q1
: Q9(5)=0
3839 IF Q1$="02"THEN 3852
: PRINT HEX(0306)
: IF Q6(1,1)=0THEN 3846
: FOR Q9=1TO Q6(1,1)
: READ Q9$
: ERRORQ9=Q6(1,1)
: GOTO 3845
3843 IF STR(Q9$,1,1)<>"*"THEN 3844
: CONVERT STR(Q9$,2,2)TO Q9(4)
: PRINT AT(Q6(1,2),Q9(4));STR(Q9$,4,LEN(Q9$))
: Q6(1,2)=Q6(1,2)+1
: Q9(4)=1
: GOTO 3845
3844 PRINT AT(Q6(1,2),39-LEN(Q9$)/2);Q9$
: Q6(1,2)=Q6(1,2)+1
3845 NEXT Q9
3846 IF Q6(2,1)=0THEN 3851
: FOR Q9=1TO Q6(2,1)
: READ Q9$
: ERRORQ9=Q6(2,1)
: GOTO 3850
3848 IF POS(Q9$="*")<>0THEN 3849
: PRINT AT(Q6(2,2),Q6(3,1)-POS(Q9$="-"));Q9$;
: Q6(2,2)=Q6(2,2)+1
: GOTO 3850
3849 IF POS(Q9$="*")=1THEN PRINT AT(Q6(2,2),Q6(3,2)-POS(Q9$="-")+1);STR(Q9$,2,
LEN(Q9$)-1)
: ELSE PRINT AT(Q6(2,2),Q6(3,1)-POS(Q9$="-"));STR(Q9$,1,POS(Q9$="*")-1);AT(
Q6(2,2),Q6(3,2)-(POS(-Q9$="-")-POS(Q9$="*")));STR(Q9$,POS(Q9$="*")+1,(LEN
(Q9$)-POS(Q9$="*")))
: Q6(2,2)=Q6(2,2)+1
3850 NEXT Q9
3851 IF STR(Q1$,2,1)="3"THEN 3876
: IF Q=0THEN RETURN
3852 FOR Q9=1TO Q
: PRINT AT(Q5(Q9,1),Q5(Q9,2));HEX(2E20);STR(Q7$(Q9),3)
: NEXT Q9
: IF STR(Q1$,,1)="0"THEN 3855
: Q2$=HEX(82)
: RETURN
3855 PRINT HEX(020402000F)
: GOTO 3858
3856 Q9(4)=MOD(Q9(4)-2*POS(HEX(08)=Q2$),Q)+1
3857 PRINT AT(Q5(Q9(5),1),Q5(Q9(5),2));HEX(0F2E20);STR(Q7$(Q9(5)),3)
3858 PRINT AT(Q5(Q9(4),1),Q5(Q9(4),2));HEX(0E8B20);STR(Q7$(Q9(4)),3);HEX(0F);A
T(Q5(Q9(4),1),Q5(Q9(4),2));
: Q9(5)=Q9(4)
3860 KEYIN Q2$,,3868
: PRINT HEX(06);AT(22,0,80);AT(23,0,80)
: ON POS(HEX(0D2008827E)=STR(Q2$,,1))GOTO 3867,3856,3856,3867
: Q9=Q9(4)
3865 Q9(4)=MOD(Q9(4),Q)+1
: IF Q9=Q9(4)THEN GOTO 3860
: IF STR(Q7$(Q9(4)),3,1)=STR(Q2$,,1)AND Q9(5)<>Q9(4)THEN 3857
: Q6$=STR(Q2$,,1)AND HEX(DF)
: IF STR(Q7$(Q9(4)),3,1)=STR(Q6$,,1)AND Q9(5)<>Q9(4)THEN 3857
: Q6$=STR(Q2$,,1)OR HEX(20)
: IF STR(Q7$(Q9(4)),3,1)=STR(Q6$,,1)AND Q9(5)<>Q9(4)THEN 3857
: GOTO 3865
3867 Q1=Q9(4)
: RETURN
3868 PRINT HEX(06);AT(22,0,80);AT(23,0,80)
: IF STR(Q2$,,1)=HEX(42)THEN Q2$=HEX(02)
: IF STR(Q2$,,1)=HEX(43)THEN Q2$=HEX(03)
: FOR Q9=1TO Q9(1)
: IF Q8$(Q9)=STR(Q2$,,1)THEN 3867
: NEXT Q9
: IF STR(Q2$,,1)=HEX(7E)OR STR(Q2$,,1)=HEX(05)OR STR(Q2$,,1)=HEX(45)THEN 38
56
: IF STR(Q2$,,1)<>HEX(7F)AND STR(Q2$,,1)<>HEX(06)AND STR(Q2$,,1)<>HEX(46)TH
EN 3874
: STR(Q2$,,1)=HEX(08)
: GOTO 3856
3874 PRINT AT(23,5);HEX(07200400000E);"Invalid Key";HEX(0F0C)
: GOTO 3860
3876 Q1=1
: IF Q=0THEN 3883
: FOR Q9=1TO Q
: READ Q9$
: ERRORSTOP "NOT ENOUGH DATA STATEMENTS FOR PROMPTS"#
3879 Q=LEN(Q9$)+Q7(Q9,2)
: PRINT AT(Q7(Q9,1),Q7(Q9,2));Q9$;AT(Q7(Q9,1),Q,79-Q);
: NEXT Q9
: IF Q7(Q9,1)>=22THEN 3883
: SELECT PRINT 005(80)
: PRINT AT(Q7(Q9,1)+1,1,(Q7-Q7(Q9,1)-1)*80)
: SELECT PRINT 205(80)
3883 IF Q5=0THEN RETURN
: Q9$=HEX(8520)
: $TRAN(Q5$(),Q9$)R
: PRINT HEX(020402000E)
: FOR Q9=1TO Q5
: PRINT AT(Q5(Q9,1),Q5(Q9,2));
: IF Q5(Q9,3)>0THEN PRINT STR(Q5$(Q9),,Q5(Q9,3));
: ELSE GOSUB 3915
: NEXT Q9
: IF STR(Q1$,,1)="0"THEN 3888
: Q2$=HEX(82)
: GOTO 3911
3888 Q=0
3889 Q9=Q
3890 IF Q9>79THEN Q9=79
: IF Q9>(ABS(Q5(Q1,3))-1)THEN Q9=0
: PRINT AT(Q5(Q1,1),Q5(Q1,2)+Q9);HEX(02050F);
: KEYIN Q2$,,3916
: PRINT HEX(06);AT(22,0,80);AT(23,0,80)
: ON POS(HEX(200D0882)=STR(Q2$,1,1))GOTO 3896,3907,3908,3911
: IF STR(Q2$,1,1)<>HEX(FF)THEN 3897
: KEYIN Q2$
: KEYIN Q2$
: IF STR(Q2$,1,1)<HEX(A0)THEN 3890
: GOTO 3898
3896 Q2$=HEX(85)
: GOTO 3898
3897 IF STR(Q2$,1,1)>HEX(7F)THEN 3890
3898 IF Q9>(ABS(Q5(Q1,3))-1)THEN Q9=0
: PRINT AT(Q5(Q1,1),Q5(Q1,2)+Q9);
: IF Q5(Q1,3)>0THEN PRINT STR(Q2$,1,1);
: ELSE PRINT HEX(8B)
: STR(Q5$(Q1),Q9+1,1)=STR(Q2$,1,1)
3900 Q9=Q9+1
: IF Q9>ABS(Q5(Q1,3)-1)THEN 3901
: ELSE GOTO 3890
3901 Q1=Q1+1
: Q9=0
: IF Q1<=Q5THEN 3888
: Q1=1
: Q9=0
: GOTO 3888
3907 STR(Q2$,,1)=HEX(0D)
: GOTO 3901
3908 STR(Q2$,,1)=HEX(08)
: Q9=Q9-1
: IF Q9>=0THEN 3909
: Q1=Q1-1
: IF Q1<1THEN Q1=Q5
: Q=ABS(Q5(Q1,3))-1
: Q9=Q
3909 STR(Q5$(Q1),Q9+1,1)=HEX(85)
: PRINT AT(Q5(Q1,1),Q5(Q1,2)+Q9);
: IF Q5(Q1,3)>0THEN PRINT HEX(85);
: GOTO 3890
3910 STR(Q2$,,1)=HEX(08)
: Q9=Q9-1
: GOTO 3930
3911 PRINT HEX(020400000E)
: Q9$=HEX(2085)
: $TRAN(Q5$(),Q9$)R
: FOR Q9=1TO Q5
: PRINT AT(Q5(Q9,1),Q5(Q9,2));
: IF Q5(Q9,3)>0THEN PRINT STR(Q5$(Q9),1,Q5(Q9,3))
: ELSE GOSUB 3915
: NEXT Q9
: RETURN
3915 FOR Q8=1TO ABS(Q5(Q9,3))
: PRINT HEX(8B);
: NEXT Q8
: RETURN
3916 PRINT HEX(06);AT(22,0,80);AT(23,0,80)
: IF STR(Q2$,,1)=HEX(42)THEN Q2$=HEX(02)
: IF STR(Q2$,,1)=HEX(43)THEN Q2$=HEX(03)
: FOR Q=1TO Q9(1)
: IF Q8$(Q)=STR(Q2$,1,1)THEN 3911
: ELSE NEXT Q
: ON VAL(STR(Q2$,1,1))GOTO ,,,,3927,3930,,,,,,3900,3926
: IF STR(Q2$,1,1)=HEX(7E)THEN 3907
: IF STR(Q2$,1,1)=HEX(7F)THEN 3910
3922 IF STR(Q2$,1,1)=HEX(46)OR STR(Q2$,1,1)=HEX(56)THEN 3930
: ELSE IF STR(Q2$,1,1)=HEX(45)OR STR(Q2$,1,1)=HEX(55)THEN 3927
: ELSE IF STR(Q2$,1,1)=HEX(4D)OR STR(Q2$,1,1)=HEX(5D)THEN 3926
: ELSE IF STR(Q2$,1,1)=HEX(4C)OR STR(Q2$,1,1)=HEX(5C)THEN 3900
: PRINT AT(23,5);HEX(07200400000E);"Invalid Key";HEX(0F0C)
: GOTO 3890
3926 Q9=Q9-1
: IF Q9>=0THEN 3890
: Q1=Q1-1
: IF Q1<1THEN Q1=Q5
: Q=ABS(Q5(Q1,3))-1
: Q9=Q
: GOTO 3890
3927 Q=0
: Q1=Q1+1
: IF Q1>Q5THEN Q1=1
3928 IF Q>ABS(Q5(Q1,3))-1THEN Q=ABS(Q5(Q1,3))-1
: GOTO 3889
3930 Q9=0
: Q=Q9
: Q1=Q1-1
: IF Q1<1THEN Q1=Q5
: GOTO 3928