Listing of file='BMT02' on disk='vmedia/731-0067F-disk2.wvd.zip'
# Sector 1327, 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)"