{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: OLMTB867)}}
====== OLMTB867 ======
(George Source)
**Macros used:** [[george:macro:BXGE|BXGE]], [[george:macro:BXU|BXU]], [[george:macro:CAPCA|CAPCA]], [[george:macro:CHANGEACT|CHANGEACT]], [[george:macro:COOR1|COOR1]], [[george:macro:DCA|DCA]], [[george:macro:DFCLEAR|DFCLEAR]], [[george:macro:DFJUMPN|DFJUMPN]], [[george:macro:DFJUMPS|DFJUMPS]], [[george:macro:DFSET|DFSET]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FPERENT|FPERENT]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:GETWORD|GETWORD]], [[george:macro:GPERI|GPERI]], [[george:macro:ILLEGAL|ILLEGAL]], [[george:macro:INMOVE|INMOVE]], [[george:macro:JBS|JBS]], [[george:macro:JENVNOT|JENVNOT]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LOBJPERIS|LOBJPERIS]], [[george:macro:LOCK|LOCK]], [[george:macro:LOCKC|LOCKC]], [[george:macro:LONGON|LONGON]], [[george:macro:LPROP|LPROP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MURDER|MURDER]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:PAIR|PAIR]], [[george:macro:RELPERENT|RELPERENT]], [[george:macro:ROLPA|ROLPA]], [[george:macro:RUNPROG|RUNPROG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:WORDFIN|WORDFIN]]
22FL #LIS K0OLMTB>K0LIBRARY>K0ALLGEO
22^= #SEG OLMTB65 [N.R.BOULT
23DW 8HOLMTB
23JR ...[
23NN ...[ COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23SK ...[
23YG SEGENTRY K3OLMTB,QK3OLMTB
24D6 SEGENTRY K5OLMTB,QK5OLMTB
24XQ SEGENTRY K7OLMTB,QK7OLMTB
25CB SEGENTRY K9OLMTB,QK9OLMTB
25X2 SEGENTRY K99OLMTB,QK99OLMTB
26BL SEGENTRY K11OLMTB,QK11OLMTB
26W= # THIS SEGMENT DEALS WITH THE FOLLOWING TYPES OF ONLINE MT PERIS:-
27*W # SKIP FORWARD MODE 4 ENTRY POINT K7OLMTB
27TG # SKIP BACKWARD MODE 6 ENTRY POINT K5OLMTB
28*6 # REWIND MODE 7 ENTRY POINT K3OLMTB
28SQ # CLOSE MODE #1000 ENTRY POINT K9OLMTB
29#B # UNLOAD MODE #1007 ENTRY POINT K11OLMTB
29FJ ...#
29LQ ...OWNMON #30000 [MASK FOR OWN-MONITORING
29S2 TL1 PAIR OLMTE,1
2=?L TL2 PAIR OLMTB,99
2=R= TACT
2?=W #HAL CPAT,0
2?QG TPRB
2#=6 #HAL APERI+APERIRES,0
2#PQ REWCON 7
2*9B SKIPFCON 4
2*P2 SKIPBCON 6
2*W8 ...READFCON 0 [READ WHEN DUMP BIT SET IN APIA
2B3B ...READBCON 2 [READ REV WHEN DUMP BIT SET IN APIA
2B8L #
2BN= #
2C7W [THIS SUBROUTINES SEARCHES ALONG THE ACTIVITY RING FROM THE ACTIVITY
2CMG [POINTED TO BY X2 FOR THE CPA OF THE SAME JOB NUMBER
2D76 [ON ENTRY : X1=FX1
2DLQ [ON EXIT : X3=ADDRESS OF CPAT
2F6B [ X4 OVERWRITTEN
2FL2 [LINK X0
2G5L [IF THE REQUIRED ACTIVITY BLOCK IS NOT FOUND,GEORGE WILL LOOP.
2GK= SCA SMO FX2
2H4W STO 0 ACOMMUNE1
2HJG LDX 3 2
2J46 SCA1 LDX 3 ACTRING(3)
2JHQ SBN 3 ACTRING
2K3B LDX 0 ATYPE(3)
2KH2 BXU 0 TACT(1),SCA1 [BRANCH IF NOT CPAT
2L2L LDX 0 JOBNO(3)
2LG= BXU 0 JOBNO(2),SCA1 [BRANCH IF NOT CPAT FOR THIS JOB
2L^W SMO FX2
2MFG LDX 0 ACOMMUNE1
2M^6 EXIT 0 0
2NDQ #
2NYB #
2PD2 [THIS SUBROUTINE SEARCHES THE ACTIVITY CHAIN UNTIL A PRB (APERI/APERIRES
2PXL [BLOCK IS FOUND. IF A NON ACTIVITY TYPE BLOCK IS FOUND A GEOERR XBLK
2QC= [IS GIVEN.
2QWW SPRB
2RBG SMO FX2
2RW6 STO 0 ACOMMUNE1
2S*Q SPRB1
2STB LDX 3 FPTR(3)
2T*2 LDX 0 ATYPE(3)
2TSL BXGE 0 CACT,OERR
2W#= BXU 0 TPRB(1),SPRB1 [BRANCH UNLESS PRB
2WRW SMO FX2
2X?G LDX 0 ACOMMUNE1
2XR6 EXIT 0 0
2Y=Q #
2YQB # K3OLMTB
2^=2 #
2^PL [ENTRY POINT FOR REWIND
329= QK3OLMTB
32NW LDX 2 EVENT2(2)
338G ADN 2 1
33N6 LDN 7 0 [REPLY
347Q LDN 6 7
34MB LDN 1 1
3572 INMOVE FX2,2,6,1
35LL CAPCA
366= FPCACA 3,FX2 [FIND PCA
36KW CALL 0 SPRB [SEARCH ACTIVITY CHAIN UNTIL PRB FOUND
375G ADN 3 A1
37K6 FPERENT 4,3,2,6 [FIND PRB ENTRY
384Q BNG 2 OERR2 [ENTRY NOT IN PRB
38JB LDX 7 1(2) [DEVICE LIST POINTER
3942 LOBJPERIS 7,7
39HL LDX 0 GSIGN
3=3= STO 0 1(2) [SET OFF-LINE
3=GW ADN 6 1 [FOR ROLPA
3?2G GETACT AOLPT,,1
3?G6 LDX 3 BPTR(2) [ADDRESS OF AOLPT
3?^Q STO 4 ACC4(3)
3#FB STO 5 ACC5(3)
3#^2 STO 5 AWORK4(3) [AREWIND WILL OWN THE TAPE BUT MODE
3*DL [COMMAND WILL WANT THE DEVICE LIST
3*Y= [POINTER FOR *MTN EVEN IF OFFLINE
3BCW LINKSET 3,TL1(1)
3BXG LDN 0 2 [ONLINE MT INDICATOR
3CC6 STO 0 ATMARK(3)
3CWQ LDX 0 GSIGN
3DBB ORS 0 ALTMARK(3) [TAPE 'GIVEN'
3DW2 STO 0 FRECHADD(3) [CHAIN ACTIVITY IF EVENT
3F*L LDX 0 JOBNO(2)
3FT= STO 0 JOBNO(3) [JOB NR
3G#W STO 7 ACOUNT(3) [COUNT OF OBJECT PROGRAM PERIS
3GSG ROLPA [CHAIN AOLPT
3H#6 DFSET 5,REW [REWIND IN PROGRESS
3HRQ LDN 7 0 [SET SWITCH TO SIGNIFY REWIND
3J?B #
3JR2 [THIS IS COMMON TO REWIND,BACKWARD SKIP AND FORWARD SKIP PERIS.
3K=L [ 1) SETS UP A AREWIND ACTIVITY BLOCK ,WITH ALINK2 SET TO POINT TO
3KQ= [ K99OLMTB
3L9W [ 2) THE APPROPRIATE PERI IS INITIATED [I.E 7,6,4]
3LPG [ 3) CO-ORDINATE -UNTIL PERI HAS BEEN FINISHED,RE-ENTRY AT K99OLMTB
3M96 QQ
3MNQ GETACT AREWIND,,1
3N8B LDX 6 JOBNO(2)
3NN2 LDX 2 BPTR(2)
3P7L STO 6 JOBNO(2)
3PM= LINKSET 2,TL2(1)
3T4L LOCKC 2,SERCHR
3TJ= LDX 2 BPTR(2)
3TK? ... STO 5 CPPTR(2)
3TL# ... STO 7 ACC7(2)
3TM* ... STO 4 ACC4(2)
3TNB ... SMO 7
3TPC ... LDX 6 REWCON(1)
3TQD ...Q2 DCA 5,DLA,6,MODE
3TRF ... LDX 0 7
3TSG ... SBN 0 3
3TTH ... BNG 0 QND4 [J IF NOT READ OR READ REVERSE
3TWJ ... LDN 0 1
3TXK ... DCA 5,DLA,0,COUNT [SET COUNT OF 1
3TYL ... LDN 0 AWORK1(2)
3T^M ... DCA 5,STO,0,CTSA [TRANSFER IS INTO AWORK1 OF AREWIND
3W2N ...QND4
3W3W GPERI ,2
3WHG BNZ 7 QSK [BRANCH IF NOT REWIND
3X36 RUNPROG
3XGQ QSK COOR1
3Y2B #
3YG2 # K5OLMTB & K7OLMTB
3Y^L #
3^F= [ENTRY POINT FOR BACKWARD SKIPS
3^YW QK5OLMTB
42DG LPROP 5,0
42Y6 ANDN 0 #10 [SKIP BACKWARDS BIT
43CQ BZE 0 NOSKB [BRANCH IF SKIP BACKWKRDS NOT AV
43F2 ... DFJUMPN 5,DUMP,QND1 [J IF DUMPER NOT ON THIS CLUSTER
43G= ... LPROP 5,0
43HG ... ANDN 0 #20
43JQ ... BZE 0 QND1 [J IF DECK HASNT GOT RREV
43L2 ... LDN 7 4 [READ REVERSE MARKER
43P6 ... BRN Q
43S= ...QND1
43XB LDN 7 2 [SKIP BACKWARDS MARKER
44C2 BRN Q
44WL #
45B= #
45TW [ENTRY POINT FOR FORWARD SKIPS
46*G QK7OLMTB
46T6 LDX 0 EVENT6(2)
47#Q SBN 0 7
47SB BPZ 0 MODF [BRANCH IF ILLEGAL
47SQ ...#SKIP JAUTSKIP
47T6 ...(
47TG ... JENVNOT QND1A,DME
47TW ... LDX 3 5 [DEVICE LIST POINTER
47W= ... JBS QND2,3,AUTSKIPTM
47WL ...QND1A
47X2 ...)
47XG ... DFJUMPN 5,DUMP,QND2 [J IF DUMP BIT NOT SET IN APIA
482L ... LDN 7 3 [READ FORWARD MARKER
485Q ... BRN Q
488W ...QND2
48#2 LDN 7 1 [SKIP FORWARDS MARKER
48RL Q
49?= LDX 4 EVENT2(2)
49QW ADN 4 1
4=2N ... LDX 6 EVENT3(2) [X6 => PROGRAM CHANNEL NUMBER
4=6K ... LDX 3 EVENT4(2) [X3 => FIRST WORD OF PERI CONTROL ARE
4==G CAPCA
4=G# ... STO 6 AWORK1(2) [STORE UNIT NUMBER
4=L9 ... STO 3 AWORK2(2) [STORE PERI TYPE,MODE.
4=Q6 BRN QQ
4?9Q #
4?PB # K99OLMTB
4#92 #
4#NL [ENTRY POINT USED WHEN OLMTB IS RE-ENTERED AFTER CO-ODINATING, AFTER
4*8= [INITIATING A REWIND,SKIP BACK OR SKIP FORWARD PERI.
4*MW [ 1) FINDS THE CPA
4B7G QK99OLMTB
4BM6 BZE 7 QRW [BRANCH IF REWIND
4BM^ ... LDX 0 7
4BNS ... SBN 0 3
4BPM ... BNG 0 QND3 [J IF NOT READ OR READ REVERSE
4BP^ ... LDCT 0 #040
4BQ? ... ANDX 0 CPRW1(2)
4BQK ... BNZ 0 TRYMODE4 [J IF TAPE FAIL ON MULTIPLE READS
4BQX ... LDCT 0 #020
4BR* ... ANDX 0 CPRW1(2)
4BRX ... BNZ 0 QND3 [J IFTAPE MARK HIT
4BSG ... DFJUMPS ,DUMP,NDUMPFIN [J IF DUMP STILL HAPPENING
4BSJ ...TRYMODE4
4BSM ... SBN 7 2 [CONVERT READ INTO CORRECT SKIP
4BSS ...NDUMPFIN
4BT3 ... SMO 7
4BTW ... LDX 6 REWCON(1) [PICK READ OR READ REVERSE MODE
4BWP ... DCA ,DLA,6,MODE
4BXJ ... LDN 0 1
4BYC ... DCA ,DLA,0,COUNT [SET COUNT OF 1
4B^= ... LDN 0 AWORK1(2)
4C25 ... DCA ,STO,0,CTSA [TRANSFER INTO AWORK1 OF AREWINR
4C2Y ... GPERI ,2
4C3R ... COOR1
4C4L ... BRN QK99OLMTB
4C5F ...QND3
4C6Q CALL 0 SCA [FIND CPAT
4CLB LDX 6 CPRW1(2)
4D62 LDX 5 2
4DKL CHANGEACT 3
4F5= LOCK 5
4FJW MURDER 5 [THROW AWAY REWIND ACTIVITY
4G4G GETWORD 4,2,WRITE
4GJ6 TESTREPN OK,OERR
4H3Q STO 6 0(2)
4HHB WORDFIN
4HHN ... LDX 4 AWORK2(2) [X4 => PERI TYPE,MODE
4HJ2 ... LDX 0 OWNMON(1) [X0 => OWN-MONITORING MASK
4HJ# ... ANDX 4 0 [X4 NON ZERO IF OWN-MONITORING.
4HJL ... BNZ 4 RUNPROG [DON'T REPORT FAILS WITH OWN-MONITORI
4HJY ... LDCT 0 #040 [BIT3 FOR FAIL
4HLG ... ANDX 0 6
4HN4 ... BZE 0 RUNPROG [J IF PERI OK
4HPL ...QPAR LDCT 4 #005 [TYPE IN B0 - 8
4HR8 ... ADX 4 AWORK1(2) [CHANNEL IN B9 - 23
4HSQ ... OUTPACK 4,1,PERINAME,QPAR [ASSEMBLE PARAM FOR ILLEGAL
4HXW ... BRN TFAIL [J TO ILLEGAL
4H^D ...RUNPROG
4J32 RUNPROG
4JGL QRW
4K2= DFCLEAR ,REW
4KFW LGEOG ,5
4K^G LONGON AREWT,5
4LF6 SUICIDE [SUICIDE
4LYQ #
4MDB #
4MY2 #
4NCL # K9OLMTB & K11OLMTB
4NX= #
4PBW [ENTRY FROM PERIXCOD FOR CLOSING TAPES MODE #1000
4PWG QK9OLMTB
4QB6 LDN 7 1
4QTQ BRN PA
4R*B #
4RT2 #
4S#L [ENTRY FROM PERIXCOD FOR UNLOADING TAPES MODE #1007.
4SS= QK11OLMTB
4T?W LDN 7 0
4TRG [THIS IS COMMON TO BOTH CLOSE AND UNLOAD PERIS.
4W?6 [ 2) THE MAG TAPE ENTRY IS ERASED FROM THE PRB.
4WQQ [ 3) RE-ENTRY FROM THE RELPERENT MACRO IS TO K13OLMTB, WHERE THE
4X=B [ OFF-LINE ACTIVITY BLOCK IS MURDERED.
4XQ2 [ 4) CONTROL IS PASSED 'DOWN' TO UNLOAD.
4Y9L [ 5) CONTROL IS PASSED BACK 'UP' TO THE INSTRUCTION AFTER THE
4YP= [ RELPERENT MACRO
4^8W PA
4^NG CAPCA [GET BACK TO COMMAND ACTIVITY
5286 RELPERENT 4,7
52MQ RUNPROG
537B MODF ILLEGAL MODESEQ
53M2 NOSKB ILLEGAL MODE
53WS ...TFAIL ILLEGAL PERFAIL
546L #
54L= # GEOERRS
555W #
55KG OERR GEOERR 1,XBLK
5656 OERR2 GEOERR 1,XPRB
56JQ #
574B SERCHR
57J2 SMO FX2
583L LDX 2 BPTR
58H= EXIT 1 0
592W MENDAREA 50,K88OLMTB
59GG #END
^^^^ ...56563505000100000000