Listing of file='OPSUBS' on disk='vmedia/731-0067F-disk2.wvd.zip'
# Sector 1233, program filename = 'OPSUBS'
5552 DEFFN'200
: MAT REDIM Q4$(5)50,Q1$(250)1
: Q9(1)=Q1(1)
: Q9(2)=Q1(2)
: DATA LOAD DC OPEN T#Q9(2),"Pqueue"
: ERRORQ2$=BIN(ERR)
: GOTO 5555
5553 GOSUB '195
: IF Q2$<>"0"THEN 5555
: IF STR(Q1$,2,1)="2"OR STR(Q1$,2,1)="3"THEN Q4$()=Q1$()
5555 R1$(1)="P"
: IF Q2$="0"THEN R1$(2)=HEX(00)
: ELSE R1$(1)=Q2$
: RETURN
5558 DEFFN'201
: GOSUB 5570
: GOSUB '196
: GOTO 5555
5562 DEFFN'202
: Q9(2)=Q1(2)
: Q9(1)=Q1(1)
: DATA LOAD DC OPEN T#Q9(2),"Pqueue"
: ERRORQ2$=BIN(ERR)
: GOTO 5555
5563 MAT REDIM Q1$(25)10
: Q1$="02"
: GOSUB '197
: GOTO 5555
5566 DEFFN'203
: GOSUB 5570
: GOSUB '198
: GOTO 5555
5570 MAT REDIM Q1$(250)1
: Q1$()=Q4$()
: Q9(1)=Q1(1)
: Q9(2)=Q1(2)
: DATA LOAD DC OPEN T#Q9(2),"Pqueue"
: ERRORQ2$=BIN(ERR)
: RETURN CLEAR
: GOTO 5555
5571 STR(Q$,5,1)=BIN(#PART)
: STR(Q$,6,2)=BIN(#ID,2)
: STR(Q$,8,1)=BIN(#TERM)
: RETURN
5580 DEFFN'204
: DATA LOAD DC OPEN T"BUMPmain"
: ERRORQ2$=BIN(ERR)
: GOTO 5588
5584 MAT REDIM Q$(50)3
: DATA LOAD DC Q$()
: DATA SAVE DC CLOSE
: SELECT #Q<Q$(1)>
: Q1(2)=Q
: Q2$="0"
: LIMITS T#Q,"Pqueue",Q1(1),Q8,Q9
: ERRORQ2$=BIN(ERR)
5588 R1$(1)="P"
: IF Q2$="0"THEN R1$(2)=HEX(00)
: ELSE R1$(1)=Q2$
: RETURN
5590 DEFFN'196
: GOSUB '199
: IF Q2$<>"0"THEN RETURN
: Q8=0
: IF STR(Q$(1),9,2)<=STR(Q$(1),7,2)THEN 5596
: ELSE Q2$="1"
: GOTO 5624
5596 STR(Q$,9,2)=HEX(FFFF)
: IF STR(Q1$,2,1)="2"OR STR(Q1$,2,1)="4"THEN Q9(8)=10
: ELSE Q9(8)=8
: Q9(7)=1
: GOSUB 5750
: IF Q2$<>"2"THEN 5600
: Q9(1)=0
: GOSUB 5786
: IF Q3<>0THEN 5780
: GOTO 5624
5600 IF STR(Q1$,2,1)<"3"THEN 5610
: Q1=Q1+1
: STR(Q$,9,2)=STR(Q$(Q1),9,2)
: MAT REDIM Q4$(25)10
: IF Q1=1THEN 5606
: Q4$()=Q$()
5602 FOR Q9=Q1TO 2STEP -1
: Q4$(Q9)=Q4$(Q9-1)
: NEXT Q9
5604 IF Q8=0THEN 5608
: Q8,Q9(1)=Q8-1
: GOSUB 5786
: IF Q3<>0THEN 5780
: MAT REDIM Q$(25)10
: Q4$(1)=Q$(25)
: Q$()=Q4$()
: Q9(1)=Q8+1
: GOSUB 5794
: IF Q3<>0THEN 5780
: Q1=25
5606 Q9(1)=Q8
: GOSUB 5786
: IF Q3<>0THEN 5780
: MAT REDIM Q$(25)10
: Q4$()=Q$()
: IF Q1=1THEN 5604
: GOTO 5602
5608 Q4$(2)=Q$
: Q$()=Q4$()
: Q9(1)=0
: GOSUB 5794
: IF Q3<>0THEN 5780
: Q2$=HEX(0001)
: Q1=VAL(STR(Q$,9,2),2)
: GOTO 5612
5610 Q1=Q1+1
: STR(Q$(Q1),1,8)=Q$
: STR(Q$,9,2)=STR(Q$(Q1),9,2)
: Q1=VAL(STR(Q$(Q1),9,2),2)
: Q2$=HEX(0001)
: GOSUB 5796
: IF Q3<>0THEN 5780
5612 Q9(1)=Q9(4)+INT(Q1/Q9(5))
: GOSUB 5786
: IF Q3<>0THEN 5780
: Q3=Q9(3)*MOD(Q1,Q9(5))
: STR(Q$(),Q3+1,Q9(3))=Q1$()
: DBACKSPACE #Q9(2),1S
: GOSUB 5796
: IF Q3<>0THEN 5780
: Q9(1)=0
: GOSUB 5786
: IF Q3<>0THEN 5780
: MAT REDIM Q$(25)10
: STR(Q$(1),9,2)=STR(Q$(1),9,2)ADDCSTR(Q2$,1,2)
: Q2$="0"
5624 STR(Q$(1),1,1)=HEX(00)
: Q9(1)=0
: GOSUB 5794
: IF Q3<>0THEN 5780
5627 DATA SAVE DC CLOSE#Q9(2)
: ERRORQ3=ERR
: GOTO 5780
5628 Q9$=$PSTAT(#PART)
: IF STR(Q9$,1,3)="MON"THEN 5631
: Q9=1
5629 IF Q9>16THEN 5631
: Q9$=$PSTAT(Q9)
: ERRORGOTO 5631
5630 IF STR(Q9$,1,3)="MON"THEN $ALERTQ9
: Q9=Q9+1
: GOTO 5629
5631 RETURN
5632 DEFFN'199
: Q8$=BIN(#PART)
: Q2$=BIN(#ID,2)
: IF STR(Q1$,1,1)<>"2"THEN 5642
: GOSUB 5788
: IF Q3<>0THEN 5780
: DBACKSPACE #Q9(2),BEG
: IF HEX(00)=STR(Q$(1),1,1)THEN 5662
: IF STR(Q$(1),1,1)=Q8$AND STR(Q$(1),2,2)=Q2$THEN 5640
: Q2$="5"
: GOTO 5627
5640 STR(Q$(1),1,1)=HEX(00)
: GOSUB 5796
: IF Q3<>0THEN 5780
: DBACKSPACE #Q9(2),BEG
: GOTO 5662
5642 FOR Q9=1TO 25
: $OPEN 5650,#Q9(2)
: GOSUB 5788
: IF Q3<>0THEN 5780
: DBACKSPACE #Q9(2),BEG
: IF STR(Q$(),1,1)=Q8$AND STR(Q$(),2,2)=Q2$THEN 5661
: IF STR(Q$(1),1,1)=HEX(00)THEN 5652
5650 $CLOSE#Q9(2)
: $BREAK10
: NEXT Q9
: Q2$="5"
: GOTO 5627
5652 IF STR(Q1$,1,1)="1"THEN 5661
: STR(Q$(1),1,1)=Q8$
: STR(Q$(1),2,2)=Q2$
: GOSUB 5796
: IF Q3<>0THEN 5780
: DBACKSPACE #Q9(2),BEG
: GOSUB 5788
: IF Q3<>0THEN 5780
: DBACKSPACE #Q9(2),BEG
: IF Q8$=STR(Q$(1),1,1)AND Q2$=STR(Q$(1),2,2)THEN 5661
: GOTO 5650
5661 $CLOSE#Q9(2)
5662 Q9(5)=VAL(STR(Q$(1),5,1))
: Q9(3)=VAL(STR(Q$(1),4,1))
: Q9(4)=VAL(STR(Q$(1),6,1))
: Q2$="0"
: MAT REDIM Q$(25)10
: RETURN
5666 DEFFN'195
: STR(Q1$,1,1)="2"
: GOSUB '199
: IF Q2$<>"0"THEN RETURN
: ON POS("12345"=STR(Q1$,2,1))GOTO 5672,5688,5690,5702,5704
: Q2$="1"
: GOTO 5684
5672 Q9(1)=INT(Q1/25)
: GOSUB 5786
: IF Q3<>0THEN 5780
: MAT REDIM Q$(25)10,Q4$(Q)10
: IF MOD(Q1,25)=0THEN DBACKSPACE #Q9(2),1S
: Q8=0
: FOR Q9=Q1TO Q+Q1-1
: IF MOD(Q9,25)<>0THEN 5678
: GOSUB 5788
: IF Q3<>0THEN 5780
: MAT REDIM Q$(25)10
5678 IF STR(Q$(MOD(Q9,25)+1),,1)=HEX(FF)THEN 5680
: Q4$(Q9-Q1+1)=Q$(MOD(Q9,25)+1)
: Q8=Q8+1
: NEXT Q9
5680 Q=Q8
5682 Q2$="0"
5684 DATA SAVE DC CLOSE#Q9(2)
: ERRORQ3=ERR
: GOTO 5780
5686 RETURN
5688 Q9(7)=1
: IF LEN(Q$)<8THEN Q9(8)=LEN(Q$)
: ELSE Q9(8)=8
: GOTO 5692
5690 Q9(7)=9
: Q9(8)=2
5692 GOSUB 5750
: IF Q2$="2"THEN 5694
: Q2$="3"
: GOTO 5684
5694 Q9(6)=VAL(STR(Q$(Q9),9,2),2)
: Q9(1)=Q9(4)+INT(Q9(6)/Q9(5))
: GOSUB 5786
: IF Q3<>0THEN 5780
: MAT REDIM Q$(256)1
: MAT REDIM Q1$(Q9(3))1
: Q9(6)=Q9(3)*MOD(Q9(6),Q9(5))
: Q1$()=Q$()
: GOTO 5682
5702 Q9(7)=1
: IF LEN(Q$)<8THEN Q9(8)=LEN(Q$)
: ELSE Q9(8)=8
: GOSUB 5750
: IF Q2$="2"THEN 5682
: ELSE Q2$="3"
: GOTO 5684
5704 Q=VAL(STR(Q$(1),9,2),2)-1
: GOTO 5682
5706 DEFFN'197
: GOSUB '199
: IF Q2$<>"0"THEN RETURN
: ON POS("12"=STR(Q1$,2,1))GOTO 5710,5712
: Q2$="1"
: GOTO 5624
5710 Q9(7)=1
: IF LEN(Q$)<8THEN Q9(8)=LEN(Q$)
: ELSE Q9(8)=8
: GOTO 5714
5712 Q9(7)=9
: Q9(8)=2
5714 GOSUB 5750
: IF Q2$="2"THEN 5716
: Q2$="3"
: Q9(1)=0
: GOSUB 5786
: IF Q3<>0THEN 5780
: MAT REDIM Q$(25)10
: GOTO 5624
5716 STR(Q$(Q9),1,1)=HEX(FF)
: Q$=Q$(Q9)
: IF Q8>0THEN Q9(6)=(Q8*25)+Q9
: ELSE Q9(6)=Q9
: FOR Q9=Q9(6)TO Q1
: IF MOD(Q9,25)<>0THEN 5724
: DSKIP #Q9(2),1S
: MAT REDIM Q1$(3)84
: DATA LOAD DC #Q9(2),Q1$(1),Q1$(2),STR(Q1$(3),1,82)
: ERRORQ3=ERR
: GOTO 5780
5722 MAT REDIM Q1$(25)10
: Q$(25)=Q1$(1)
: DBACKSPACE #Q9(2),2S
: GOSUB 5796
: IF Q3<>0THEN 5780
: MAT REDIM Q$(25)10
: Q8=Q8+1
: Q$()=Q1$()
: NEXT Q9
: GOTO 5726
5724 Q$(MOD(Q9,25))=Q$(MOD(Q9,25)+1)
: NEXT Q9
5726 IF MOD(Q9,25)=0THEN Q$(25)=Q$
: ELSE Q$(MOD(Q9,25))=Q$
: GOSUB 5796
: IF Q3<>0THEN 5780
: Q9(1)=0
: GOSUB 5786
: IF Q3<>0THEN 5780
: STR(Q$(1),9,2)=STR(Q$(1),9,2)SUBCHEX(0001)
: Q2$="0"
: GOTO 5624
5734 DEFFN'198
: GOSUB '199
: IF Q2$<>"0"THEN RETURN
: ON POS("123"=STR(Q1$,2,1))GOTO 5736,5738,5738
: Q2$="1"
: GOTO 5624
5736 Q9(7)=1
: IF LEN(Q$)<8THEN Q9(8)=LEN(Q$)
: ELSE Q9(8)=8
: GOTO 5740
5738 Q9(7)=9
: Q9(8)=2
5740 GOSUB 5750
: IF Q2$="2"THEN 5742
: Q9(1)=0
: GOSUB 5786
: IF Q3<>0THEN 5780
: Q2$="3"
: GOTO 5624
5742 STR(Q2$,1,2)=HEX(0000)
: Q1=VAL(STR(Q$(Q9),9,2),2)
: IF STR(Q1$,2,1)="1"THEN 5612
: STR(Q$(Q9),1,8)=STR(Q$,1,8)
: GOSUB 5796
: IF Q3<>0THEN 5780
: IF STR(Q1$,2,1)="2"THEN 5612
: Q9(1)=0
: GOSUB 5786
: IF Q3<>0THEN 5780
: Q2$="0"
: GOTO 5624
5750 Q8=0
: Q1=VAL(STR(Q$(1),9,2),2)
: IF Q1>24THEN 5758
: FOR Q9=2TO Q1
5754 IF STR(Q$(Q9),Q9(7),Q9(8))<>STR(Q$,Q9(7),Q9(8))THEN 5756
: ELSE Q2$="2"
: DBACKSPACE #Q9(2),1S
: STR(Q$,9,2)=STR(Q$(Q9),9,2)
: RETURN
5756 NEXT Q9
: IF Q1<=24THEN 5774
: GOTO 5760
5758 FOR Q9=2TO 25
: GOTO 5754
5760 DSKIP #Q9(2),1S
: FOR Q8=1TO INT(Q1/25)
: GOSUB 5788
: IF Q3<>0THEN 5776
: MAT REDIM Q$(25)10
: FOR Q9=1TO 25
: IF STR(Q$(Q9),Q9(7),Q9(8))<>STR(Q$,Q9(7),Q9(8))THEN 5772
: ELSE Q2$="2"
: DBACKSPACE #Q9(2),1S
: STR(Q$,9,2)=STR(Q$(Q9),9,2)
: RETURN
5772 NEXT Q9
: NEXT Q8
: Q1=MOD(Q1,25)
5774 Q2$="0"
: DBACKSPACE #Q9(2),1S
: RETURN
5776 RETURN CLEAR
5780 $CLOSE#Q9(2)
: Q2$=BIN(Q3)
: DATA SAVE DC CLOSE#Q9(2)
: ERRORGOTO 5782
5782 RETURN
5786 DBACKSPACE #Q9(2),BEG
: DSKIP #Q9(2),Q9(1)S
: ERRORGOTO 5800
5788 Q3=0
: MAT REDIM Q$(3)84
: DATA LOAD DC #Q9(2),Q$(1),Q$(2),STR(Q$(3),1,82)
: ERRORGOTO 5800
5790 RETURN
5794 DBACKSPACE #Q9(2),BEG
: DSKIP #Q9(2),Q9(1)S
: ERRORGOTO 5800
5796 Q3=0
: MAT REDIM Q$(3)84
: DATA SAVE DC #Q9(2),Q$(1),Q$(2),STR(Q$(3),1,82)
: ERRORGOTO 5800
5798 RETURN
5800 Q3=ERR
: RETURN
5802 DEFFN'21(S$)
: SCRATCH TS$
: SAVE T()S$,3799
: PRINT S$;" RESAVED"
: RETURN
5808 DEFFN'23(S$)
: SCRATCH T/B30,S$
: MOVE TS$TO T/B30,()
: RETURN
5812 DEFFN'24(S$)
: SELECT LIST 215
: LIST S$,D,3799
: LIST S$,V
: LIST S$,'
: LIST S$,#,3799
: LIST HEX(0C0C0C)0,0
: SELECT LIST 005
: RETURN