Listing of file='BMT02' on disk='vmedia/731-0071G.wvd.zip'
# Sector 1302, program filename = 'BMT02' 0418 COM Q9$(5)3,Q8$(20)3,Q$10,Q0$1,Q1(2),H$50 0419 DIM I9(5),I9$75,R9$1,I9$(10)8,I8$3,Q8$1,Q3$4,Q$(4)64,Q1$2,Q0(7),Q5$,Q9(8) ,Q1$(4)64,Q2$(4)64,Q3$(4)64,Q4$4,Q6$80,E$2,L$4,Q6(3,2) : DIM Q5(2,2),Q7$(2)60,Q5$(1)1,Q7(1,1),Q9$85 : ON ERRORE$,L$GOTO 1900 0422 LOAD T"PSUB.DAT"5500,5999BEG 500 : ERRORGOSUB '100(ERR,422) : GOTO 422 0500 SELECT PRINT 005 0505 GOSUB '205(1,"204") : IF R9$<>HEX(00)THEN STOP "S.S"# : LOAD T<R9>R9$()5550,5999BEG 510 : ERRORGOSUB '100(ERR,505) : GOTO 505 0510 A$=Q2$ : $PSTAT="MONON " : Q=5 : GOSUB '204 : IF Q2$="0"THEN 515 : GOTO 1058 0515 Q2$=A$ : $IF OFF /005,545 0517 GOSUB '205(1,"162") : IF R9$<>HEX(00)THEN STOP "S.S"# : LOAD T<R9>R9$()5550,5999BEG 518 : ERRORGOSUB '100(ERR,517) : GOTO 517 0518 A$=Q2$ : Q6(1,1)=3 : Q6(1,2)=2 : Q6(2,1)=2 : Q6(2,2)=17 : Q6(3,1)=56 : RESTORE LINE2100 : Q=0 : Q1$="01" : GOSUB '162 : PRINT AT(4,39);#PART : Q2$=A$ : GOSUB 1705 : IF Q2$<>"A"OR I=0THEN 530 : Q6$=ALL(23) : Q7$()=ALL(00) 0520 FOR Q9=1TO 2 : READ Q9$ : PRINTUSING TO Q7$(Q9),Q6$,Q9$ : Q5(Q9,1)=9+Q9 : Q5(Q9,2)=10 : NEXT Q9 : Q1=1 : Q1$="02" : A=LEN(Q8$())/3 : MAT REDIM Q8$(1)1 : A$=Q8$(1) : Q8$(1)=HEX(F0) : Q=2 0521 GOSUB '162 : IF Q2$=HEX(F0)THEN 1058 : Q2$="A" : IF Q1=1THEN PRINT HEX(03);AT(2,0,80);"Press LOAD RUN to execute" : IF Q1=1THEN $RELEASETERMINALTO I : ELSE PRINT AT(10,0,80);AT(11,0,80);AT(17,51);" '0 - Release to Background ";AT(18,42,29);" CANCEL/EDIT - Exit" : Q8$(1)=A$ : MAT REDIM Q8$(20)3 : $IF OFF /005,545 0530 GOSUB 2030 : PRINT AT(7,0);Q6$ : GOSUB 2035 : PRINT AT(7,60);Q6$ : GOSUB 2040 : PRINT AT(7,10);Q6$ 0545 IF Q2$<>"A"THEN 1005 : GOSUB '205(1,"201") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()3800,3999BEG 550 : ERRORGOSUB '100(ERR,545) : GOTO 545 0550 Q$="MONR" : Q1$="02" : MAT REDIM Q4$(5)50 : Q4$(1)=Q9$() : STR(Q4$(),51)=Q8$() : GOSUB '201 : IF Q2$="0"THEN 560 : GOSUB '100(VAL(Q2$),550) : $BREAK75 : GOTO 550 0560 Q0$(1)=Q$ : Q0$=HEX(00) : GOTO 1059 1005 H$=Q4$(2) : Q0$=HEX(00) : GOSUB '205(1,"200") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1006 1006 A$=Q2$ : Q1$="03" : Q$=Q0$(1) : GOSUB '200 : Q8$()=STR(Q4$(),51) : Q9$()=Q4$(1) : Q1$="03" : Q$=Q0$(3) : GOSUB '200 : Q2$=A$ : ON POS("EeCcfd"=Q2$)GOTO 1025,1024,1040,1039,1009,1009 : GOTO 1010 1009 Q0$=Q0$OR HEX(80) 1010 IF STR(Q4$(2),18,1)="S"THEN 1020 1015 Q$=Q0$(3) : GOSUB '205(1,"202") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1017 : ERRORGOSUB '100(ERR,1015) : GOTO 1015 1017 Q1$="02" : GOSUB '202 : ON POS("03"=STR(Q2$,1,1))GOTO 1050 : GOSUB '100(VAL(Q2$),1017) : $BREAK75 : GOTO 1017 1020 STR(Q0$(3),4,1)="F" : Q$=Q0$(3) : GOSUB '205(1,"203") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1022 : ERRORGOSUB '100(ERR,1020) : GOTO 1020 1022 Q1$="03" : GOSUB '203 : ON POS("03"=Q2$)GOTO 1050,1050 : GOSUB '100(VAL(Q2$),1022) : $BREAK75 : GOTO 1022 1024 Q0$=Q0$OR HEX(80) 1025 $IF OFF /005,1030 : IF Q7$=" "THEN GOSUB 2050 : ELSE Q6$=Q7$ : PRINT AT(23,0,80);HEX(020402000E);Q6$;HEX(0F070C) 1030 STR(Q0$(3),4,1)="E" : Q$=Q0$(3) : GOSUB '205(1,"203") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1035 : ERRORGOSUB '100(ERR,1030) : GOTO 1030 1035 Q4$(2)=H$ : Q1$="02" : GOSUB '203 : ON POS("03"=Q2$)GOTO 1050,1050 : GOSUB '100(VAL(Q2$),1035) : $BREAK75 : GOTO 1035 1039 Q0$=Q0$OR HEX(80) 1040 Q$=Q0$(3) : GOSUB '205(3,"201202200") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1044 : ERRORGOSUB '100(ERR,1040) : GOTO 1040 1044 GOSUB '202 : Q$=Q0$(3) : IF Q2$="0"THEN 1045 : GOSUB '100(VAL(Q2$),1044) : $BREAK75 : GOTO 1044 1045 Q1$()=Q4$() : STR(Q$,4,1)="P" : Q1$="02" : Q9(1)=Q1(1) : Q9(2)=Q1(2) : DATA LOAD DC OPEN T#Q9(2),"Pqueue" : ERRORGOSUB '100(ERR,1045) : GOTO 1045 1046 GOSUB '196 : IF Q2$="0"THEN GOTO 1050 : GOSUB '100(VAL(Q2$),1046) : GOTO 1046 1050 Q8$=Q0$AND HEX(01) : IF Q8$<>HEX(00)THEN 1600 : Q8$=Q0$AND HEX(10) : IF Q8$<>HEX(00)THEN 1055 : $CLOSE : Q0$=Q0$AND HEX(80) 1055 $IF OFF /001,1056 : KEYIN Q8$ : IF Q8$=HEX(F0)THEN Q0$=Q0$OR HEX(80) : IF Q8$=HEX(00)THEN $RELEASETERMINAL 1056 Q8$=Q0$AND HEX(80) : IF Q8$=HEX(00)THEN 1059 : Q$=Q0$(1) : GOSUB '205(1,"202") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1057 : ERRORGOSUB '100(ERR,1056) : GOTO 1056 1057 Q1$="02" : GOSUB '202 : ON POS("03"=Q2$)GOTO 1058,1058 : GOSUB '100(VAL(Q2$),1057) : $BREAK75 : GOTO 1057 1058 Q$=STR(R3$(),,9) : R3$()=STR(R3$(),10) : MAT REDIM Q4$(5)50 : COM CLEAR Q9$() : $PSTAT=" " : LOAD TQ$ : ERRORGOSUB '100(ERR,1058) : GOTO 1058 1059 $IF OFF /005,1060 : GOSUB 2055 : PRINT AT(10,0,80);Q6$ 1060 Q=25 : Q1=1 : MAT REDIM Q4$(25)10 : GOSUB '205(1,"200") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1062 : ERRORGOSUB '100(ERR,1060) : GOTO 1060 1062 Q1$="05" : GOSUB '200 : IF Q2$="0"THEN 1063 : GOSUB '100(VAL(Q2$),1062) : $BREAK75 : GOTO 1062 1063 I3=Q : FOR I2=0TO INT(I3/25) : IF I2<INT(I3/25)THEN Q=25 : ELSE Q=MOD(I3,25) : Q1=((I2)*25)+1 1064 Q1$="01" : GOSUB '200 : IF Q2$="0"THEN 1065 : GOSUB '100(VAL(Q2$),1064) : $BREAK100 : GOTO 1064 1065 FOR Q9=1TO Q : IF STR(Q4$(Q9),4,1)<>"Z"THEN 1068 : IF STR(Q4$(Q9),5,3)<>STR(Q0$(1),5,3)THEN 1068 : GOSUB '205(1,"202") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1066 : ERRORGOSUB '100(ERR,1065) : GOTO 1065 1066 Q$=Q4$(Q9) : Q1$="02" : GOSUB '202 : ON POS("03"=Q2$)GOTO 1067,1067 : GOSUB '100(VAL(Q2$),1066) : $BREAK75 : GOTO 1066 1067 Q$=Q0$(1) : GOTO 1057 1068 NEXT Q9 : NEXT I2 1070 Q1$="05" : GOSUB '200 : IF Q2$="0"THEN 1072 : GOSUB '100(VAL(Q2$),1070) : $BREAK75 : GOTO 1070 1072 I3=Q : FOR I2=0TO INT(I3/25) : IF I2<INT(I3/25)THEN Q=25 : ELSE Q=MOD(I3,25) : Q1=((I2)*25)+1 1074 Q1$="01" : GOSUB '200 : IF Q2$="0"THEN 1076 : GOSUB '100(VAL(Q2$),1074) : $BREAK75 : GOTO 1074 1076 FOR Q9=1TO Q : IF STR(Q4$(Q9),4,1)="A"THEN 1080 1078 NEXT Q9 : NEXT I2 : GOTO 1082 1080 GOSUB 1500 : IF Q2$="0"THEN 1671 : GOTO 1078 1082 Q1$="05" : GOSUB '200 : IF Q2$="0"THEN 1084 : GOSUB '100(VAL(Q2$),1082) : $BREAK75 : GOTO 1082 1084 I3=Q : FOR I2=0TO INT(I3/25) : IF I2<INT(I3/25)THEN Q=25 : ELSE Q=MOD(I3,25) : Q1=((I2)*25)+1 1086 Q1$="01" : GOSUB '200 : IF Q2$="0"THEN 1088 : GOSUB '100(VAL(Q2$),1086) : $BREAK100 : GOTO 1086 1088 FOR Q9=1TO Q : IF STR(Q4$(Q9),4,1)="P"THEN 1101 1090 NEXT Q9 : NEXT I2 1092 $IF OFF /005,1095 : GOSUB 2060 : PRINT AT(10,0,80);Q6$ 1095 $PSTAT="MONOFF " : SELECT ON ALERTGOSUB 1950 1097 $IF OFF /001,1100 : KEYIN Q8$ : IF Q8$=HEX(F0)THEN GOTO 1058 1100 $BREAK255 : GOTO 1097 1101 GOSUB 1500 : IF Q2$<>"0"THEN 1090 1102 DATA LOAD DC OPEN T#Q1(2),"Pqueue" : ERRORGOSUB '100(ERR,1102) : GOTO 1102 1103 Q9(2)=Q1(2) : Q1$="0" : GOSUB '199 : IF Q2$<>"0"THEN 1107 : Q1$="14" : GOSUB '200 : IF Q2$="0"THEN 1108 1104 DATA LOAD DC OPEN T#Q1(2),"Pqueue" : ERRORGOSUB '100(ERR,1104) : GOTO 1104 1105 Q9(2)=Q1(2) : Q1$="2" : GOSUB '199 : IF Q2$<>"0"THEN 1106 : NEXT Q9 : NEXT I2 : GOTO 1092 1106 GOSUB '100(VAL(Q2$),1105) : GOTO 1105 1107 GOSUB '100(VAL(Q2$),1102) : GOTO 1102 1108 I2=INT(I3/25) : NEXT I2 1110 MAT REDIM Q4$(5)50 : Q1$="03" : GOSUB '200 : ON POS("03"=Q2$)GOTO 1115,1050 : GOSUB '100(VAL(Q2$),1110) : $BREAK75 : GOTO 1110 1115 STR(Q$,4,1)="R" : GOSUB '205(1,"203") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1120 : ERRORGOSUB '100(ERR,1115) : GOTO 1115 1120 Q1$="03" : GOSUB '203 : ON POS("03"=Q2$)GOTO 1125,1125 : GOSUB '100(VAL(Q2$),1120) : $BREAK75 : GOTO 1120 1125 Q0$(3)=Q$ : $IF OFF /005,1130 : GOSUB 2065 : PRINT AT(10,0,80);Q6$ 1130 Q8$=Q0$AND HEX(10) : IF STR(Q4$(2),12,3)<>" "THEN SELECT #6<STR(Q4$(2),12,3)> : ERRORQ2$="E" : SELECT PRINT 005 : GOTO 1005 1140 I=LEN(STR(R3$()))-9 : MAT COPY -R3$()<1,I>TO -R3$()<10,I> : STR(R3$(),,9)="BMT02" : Q7$=" " : COM CLEAR Q9$() : $PSTAT=" " : IF STR(Q4$(2),12,3)<>" "THEN LOAD T#6,STR(Q4$(2),4,8) : ELSE LOAD TSTR(Q4$(2),4,8) : ERRORQ2$="E" : R3$()=STR(R3$(),10) : SELECT PRINT 005 : GOTO 1005 1500 Q2$="2" : FOR Q8=1TO LEN(Q9$())/3 : IF STR(Q4$(Q9),1,3)=Q9$(Q8)THEN 1510 : NEXT Q8 : Q2$="1" 1505 FOR Q8=1TO LEN(Q8$())/3 : IF STR(Q4$(Q9),1,3)=Q8$(Q8)THEN 1520 : NEXT Q8 : RETURN 1510 SELECT #6<STR(Q4$(Q9),1,3)> : ERRORGOTO 1515 1512 $OPEN 1515,#6 : Q0$=Q0$OR HEX(10) : GOTO 1520 1515 NEXT Q8 : IF Q2$="2"THEN 1505 : RETURN 1520 Q$=Q4$(Q9) : Q2$="0" : RETURN 1600 $IF OFF /005,1605 : GOSUB 2070 : PRINT AT(10,0,80);Q6$ 1605 Q$=Q0$(2) : STR(Q$,4,1)="L" : GOSUB '205(1,"200") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1610 : ERRORGOSUB '100(ERR,1605) : GOTO 1605 1610 Q1$="04" : GOSUB '200 : ON POS("03"=Q2$)GOTO 1110,1625 : GOSUB '100(VAL(Q2$),1610) : $BREAK25 : GOTO 1610 1625 Q$=Q0$(2) : STR(Q$,4,1)="B" : Q1$="04" : GOSUB '200 : ON POS("03"=Q2$)GOTO 1640,1630 : GOSUB '100(VAL(Q2$),1625) : $BREAK25 : GOTO 1625 1630 $IF OFF /005,1635 : GOSUB 2060 : PRINT AT(10,0,80);Q6$ 1635 $BREAK255 : GOTO 1600 1640 Q$=Q0$(2) : STR(Q$,4,1)="B" : GOSUB '205(1,"202") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1645 : ERRORGOSUB '100(ERR,1640) : GOTO 1640 1645 Q1$="01" : GOSUB '202 : ON POS("03"=Q2$)GOTO 1650,1650 : GOSUB '100(VAL(Q2$),1645) : $BREAK75 : GOTO 1645 1650 STR(Q0$(1),4,1)="R" : Q$=Q0$(1) : GOSUB '205(1,"203") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1655 : ERRORGOSUB '100(ERR,1650) : GOTO 1650 1655 Q1$="03" : GOSUB '203 : ON POS("03"=Q2$)GOTO 1660,1660 : GOSUB '100(VAL(Q2$),1655) : $BREAK75 : GOTO 1655 1660 Q8$=Q0$AND HEX(10) : IF Q8$<>HEX(00)THEN $CLOSE : Q0$=Q0$AND HEX(80) : $IF OFF /005,1665 : PRINT AT(10,0,80) 1665 GOTO 1050 1671 DATA LOAD DC OPEN T#Q1(2),"Pqueue" : ERRORGOSUB '100(ERR,1671) : GOTO 1671 1672 Q9(2)=Q1(2) : Q1$="0" : GOSUB '199 : IF Q2$<>"0"THEN 1677 : Q1$="14" : GOSUB '200 : IF Q2$="0"THEN 1679 1673 DATA LOAD DC OPEN T#Q1(2),"Pqueue" : ERRORGOSUB '100(ERR,1673) : GOTO 1673 1674 Q9(2)=Q1(2) : Q1$="2" : GOSUB '199 : NEXT Q9 : NEXT I2 : GOTO 1082 1677 GOSUB '100(VAL(Q2$),1672) : GOTO 1672 1679 I2=INT(I3/25) : NEXT I2 : Q0$=Q0$OR HEX(01) : $IF OFF /005,1680 : GOSUB 2070 : PRINT AT(10,0,80);Q6$ 1680 Q0$(2)=Q$ : GOSUB '205(1,"202") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1685 : ERRORGOSUB '100(ERR,1680) : GOTO 1680 1685 Q1$="01" : GOSUB '202 : ON POS("03"=Q2$)GOTO 1690,1690 : GOSUB '100(VAL(Q2$),1685) : $BREAK25 : GOTO 1685 1690 Q$=Q0$(1) : STR(Q$,4,1)="Q" : GOSUB '205(1,"203") : IF R9$<>HEX(00)THEN STOP "S.S."# : LOAD T<R9>R9$()5550,5999BEG 1695 : ERRORGOSUB '100(ERR,1690) : GOTO 1690 1695 Q1$="03" : GOSUB '203 : ON POS("03"=Q2$)GOTO 1600,1600 : GOSUB '100(VAL(Q2$),1655) : $BREAK25 : GOTO 1695 1705 I=0 : PACK(##)A$FROM#TERM : STR(A$,2,1)="W" : FOR Q9=1TO 16 : Q9$=$PSTAT(Q9) : ERRORGOTO 1722 1715 IF STR(Q9$,15,2)=A$THEN 1720 : NEXT Q9 : GOTO 1725 1720 I=Q9 : RETURN 1722 Q9=16 : NEXT Q9 1725 FOR Q9=2TO 16 : Q9$=$PSTAT(Q9) : ERRORRETURN 1730 IF STR(Q9$,15,2)=HEX(0057)AND STR(Q9$,17,8)=" "THEN 1720 : NEXT Q9 : RETURN 1805 DEFFN'100(E,L) : $PSTAT="MONON " : $BREAK25 : IF E<81OR E>89THEN 1820 : PRINT HEX(03);"ERROR TYPE = ";E;"!";" PROGRAM BMT02 STOPPED ON LINE ";L;" !" : STOP 1820 $BREAK25 : RETURN 1900 ON POS(" A"=STR(Q2$,1,1))GOTO 419,422 : GOTO 1005 1950 SELECT OFF ALERT : $PSTAT="MONON " : RETURN CLEAR : GOTO 1055 2030 Q6$=HEX(020400040E)&"Status" : RETURN 2035 Q6$="Processing Program" : RETURN 2040 Q6$="File Name or Document ID"&HEX(020400000E) : RETURN 2050 Q6$=HEX(020402000E)&"Fatal Error Ocurred While Running "&STR(Q4$(),54,8)& HEX(020400000E) : RETURN 2055 Q6$="Normal Interrogation" : RETURN 2060 Q6$="Waiting" : RETURN 2065 Q6$="Running "&STR(Q4$(),1,50)&" "&STR(Q4$(),54,8) : RETURN 2070 Q6$="Exclusive Mode Interrogation" : RETURN 2100 DATA "TASK SCHEDULER MODE SELECTION"," " : DATA "*05Scheduler Activated by Partition:" : DATA "RUN - Execute" : DATA "CANCEL/EDIT - Exit" : DATA "Background Mode (Release Terminal to Available Partition)" : DATA "Foreground Mode (Monitor Scheduler Processing)"