{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: JAMSWAP865)}}
====== JAMSWAP865 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:COBJUNUSE|COBJUNUSE]], [[george:macro:CONCISBY|CONCISBY]], [[george:macro:FCAJO|FCAJO]], [[george:macro:FINDTP|FINDTP]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FPCAJO|FPCAJO]], [[george:macro:FPUT|FPUT]], [[george:macro:JAUTFAIL|JAUTFAIL]], [[george:macro:JAUTOFF|JAUTOFF]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:JBUSY|JBUSY]], [[george:macro:JCAFSBSY|JCAFSBSY]], [[george:macro:JCANTENG|JCANTENG]], [[george:macro:JCBB|JCBB]], [[george:macro:JFAIL|JFAIL]], [[george:macro:JMBAC|JMBAC]], [[george:macro:JMBS|JMBS]], [[george:macro:JSBUSY|JSBUSY]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:MBC|MBC]], [[george:macro:MBI|MBI]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:PAIR|PAIR]], [[george:macro:PCATEST|PCATEST]], [[george:macro:PROGAXES|PROGAXES]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TEST|TEST]], [[george:macro:TRACE|TRACE]], [[george:macro:TRACEDP|TRACEDP]], [[george:macro:UNQUEUE|UNQUEUE]]
22FL #SEG JAMSWAP [RUTH PORTER
22^= #OPT K0JAMSWAP=0
23DW #LIS K0JAMSWAP>K0ALLGEO>K0LLS
23YG 8HJAMSWAP
24D6 #
24XQ # THIS IS THE PART OF THE CORE UNJAMMER THAT SELECTS PROGRAMS TO
25CB # BE SWAPPED OUT EITHER BECAUSE OBJECT QUOTA IS BEING EXCEEDED OR
25X2 # THERE IS A SECOND OR GREATER ORDER GEORGE COREJAM OR A GEORGE FOUR
26BL # SPECIAL SWAPOUT IS REQUIRED
26W= #
27*W #
27TG SEGENTRY K1JAMSWAP,XX1J
28*6 #
28SQ UNPL LINK UNPLUG,5
29#B #SKI G3
29S2 (
2=?L P13 PAIR SWAP,2 [SWAP OUT
2=R= P14 PAIR SWAP,4 [SWAP OUT FOR CORE UNJAMMER
2?=W )
2?QG #SKI G4
2#=6 (
2#PQ P13 PAIR SWAPOUT,1
2*9B P14 PAIR SWAPOUT,2
2*P2 )
2B8L T15 +CJTHRESH15
2BN= T2 +CJTHRESH2
2C7W T3 +CJTHRESH3
2CMG T4 +CJTHRESH4
2D76 #
2DLQ PROG PROGAXES 3,(GEOERR)
2F6B EXIT 4 0
2FL2 #
2G5L # S/R TO CHECK PORIPHERALS,LINKX4,X3 ->PRB
2GK= # EXITS 0 : IF FAILED, 1 IF OK, 2 IF BUSY
2H4W #
2HJG PERCHECK
2J46 LDXC 0 0(3)
2JHQ BCS PEND [J IF END OF PRB
2K3B LDXC 2 1(3)
2KH2 BCC ONLINE [J IF ONLINE
2L2L ANDX 2 BITS22LS
2LG= SBN 2 CHAINADD
2L^W JCBB 2,XIT2 [EXIT IF BUSY
2M74 ...#UNS CAFSINT
2M#= ... JCAFSBSY 2,XIT2 [EXIT IF BUSY CAFS CHANNEL
2MFG LDX 0 0(3)
2M^6 SLC 0 9
2NDQ ANDN 0 #177
2NYB SBN 0 #30
2PD2 BNZ 0 YSYA
2PXL CONCISBY 2,TOUR [J IF NOT BUSY
2QC= XIT2 EXIT 4 2
2QWW YSYA JAUTOFF 2,TOUR
2RBG JAUTFAIL 2,(4) [EXIT IF FAIL
2RW6 BRN XIT2
2S*Q ONLINE
2STB ANDX 2 BITS22LS
2T*2 JCANTENG 2,TOUR
2TSL CALL 6 UNBUSY
2W#= ... BRN XIT2 [BUSY
2WRW ... EXIT 4 0 [FAILED
2X?G TOUR BDX 3 PERCHECK [BACK FOR NEXT
2XR6 PEND EXIT 4 1 [OK
2Y=Q # ROUTINE TO JBUSY AN ONLINE PERIPHERAL.ENTERED WITH X2 -> DEVICE
2YQB ...# LIST.X6=LINK.DOES JBUSY AND EXITS 0 IF BUSY.IF FAILED,EXIT 1 IS
2^=2 # OBEYED.EXIT 2 IS OBEYED IF THE
2^PL # PERIPHERAL IS NOT BUSY AND HAS NOT FAILED.
329= #
32NW UNBUSY
338G ... JBUSY 2,(6) [EXIT 0 IF BUSY
33N6 ... JSBUSY 2,(6)
347Q ... ADN 6 1
34MB ... JFAIL 2,(6) [EXIT 1 IF FAIL
3572 EXIT 6 1 [2 IF OK
35LL [
366= [ ENTRY TO SELECT FOR SPECIAL SWAPOUT
36KW [
375G [
37K6 XX1J
384Q JBS R11A,,ASWOUTING [J IF SWAPOUT IN PROGRESS TO TERMINAT
38JB LDX 0 CJACCLINK+ALINK1-ACC3
3942 BNZ 0 R11A [SPEC SWAPOUT ALREADY GOING
395P ...#UNS ISTDP
397D ...(
3997 ...[ IF TOTAL FREE PROGRAM CORE/PAGES > CUNJAMTARG,EXIT SUCCESSFULLY
39=W ...[
39#K ... COBJUNUSE
39B# ... SBN 0 CUNJAMTARG
39D3 ... BPZ 0 R11AA
39FQ ...)
39HL STOZ GEN3
3=3= LDN 3 BJOBQ
3=GW TH5A LDX 3 FPTR(3) [GET ADDR OF NEXT IN JOB QUEUE
3?2G BXE 3 CXJO,QEND [J IF END REACHED
3?G6 JMBS TH5A,3,JBREEF,JBAXES,JBPLUGGING,JBSO,JBNSW [IGNORE THE
3?^Q JBC TH5A,3,JBSI [J IF NOT SWAPPABLE
3#FB JMBAC SUSP,3,JBPLUG,JBSTOP [J IF NORMALLY SWAPPABLE
3#^2 LDX 0 GEN3
3*DL BNZ 0 TH5A
3*Y= FCAJO 2,3
3BCW CALL 5 TEST
3BXG FPCACA 2 [X2 -> PCA
3CC6 CALL 5 TEST
3CWQ PCATEST 2,TH5C,TH5C
3DBB FINDTP 2,2 [X2 -> TP IF PUC
3DW2 TH5C CALL 5 TEST
3F*L LDX 2 ACTRING(2)
3FT= SBN 2 ACTRING
3G#W LDCH 0 ATYPE(2)
3GSG SBN 0 AOLPT/64
3H#6 BNZ 0 TH5A
3HRQ BRN TH5C
3J?B TEST LDX 0 CLONG1(2)
3JR2 #SKI G3
3K=L BPZ 0 (5) [EXIT IF NOT WAITING FOR CORE
3KQ= #SKI G4
3L9W (
3LPG BNG 0 TH5B [J IF WAITING FOR CORE
3M96 SLL 0 4 [EXIT IF NOT WAITING
3MNQ BPZ 0 (5) [ FOR PROGRAM CORE
3N8B )
3NN2 TH5B LDEX 0 ATYPE(2)
3P7L BZE 0 TH5A [ONLY IF ON QUEUE
3PM= JBC TH5FA,3,JBPLUG [J IF ALREADY UNPLUGGED
3Q6W SMO FX2
3QLG STO 3 ACOMMUNE1 [REMEMBER JOB BLOCK ADDRESS
3R66 SMO FX2
3RKQ STO 2 ACOMMUNE2 [REMEMBER ADDR OF ACTIVITY BLOCK WAIT
3S5B FPCAJO 2,3
3SK2 PCATEST 2,RCTP1,RCTP1
3T4L FINDTP 2,2 [X2 -> TP IF PUC
3TJ= RCTP1
3W3W LDX 3 APRB(2) [YES, GET ADDR OF PRB
3WHG CALL 4 PERCHECK
3X36 BRN TOUR [FAILED
3XGQ BRN TH5F [O.K.
3Y2B TH5AA SMO FX2
3YG2 LDX 3 ACOMMUNE1 [RESTORE JOB BLOCK ADDRESS
3Y^L BRN TH5A [LOOK AT NEXT JOB IN QUEUE
3^F= TH5F SMO FX2
3^YW LDX 3 ACOMMUNE1
42DG SMO FX2
42Y6 LDX 2 ACOMMUNE2
43CQ TH5FA STO 3 GEN3
43XB STO 2 CJACCLINK
44C2 BRN TH5A
44WL QEND LDX 3 GEN3
45B= BZE 3 RETURN [J IF NONE FOUND
45TW LDX 2 CJACCLINK
46*G UNQUEUE [REMOVE WAITING ACTIVITY FROM QUEUE
46T6 LDN 0 1 [ADJUST COUNT OF OUTSTANDING CORE REQ
47#Q #SKI G3
47SB SBS 0 CFAIL
48#2 #SKI G4
48RL (
49?= LDX 1 CLONG1(2)
49QW BPZ 1 XLAB1
4==G SBS 0 CFAIL
4=Q6 BRN XLAB2
4?9Q XLAB1 SBS 0 COBJFAIL
4?PB LDX 0 ACOMMUNE2(2)
4#92 SRL 0 12 [LOAD REQUEST(SEE GETPROGCORE MAC)
4#NL SBS 0 AOBJFAIL [ & REDUCE TOTAL OF FAILS
4*8= XLAB2
4*MW )
4B7G FPCAJO 2,3
4BM6 LDX 1 FX1
4BP* ...#UNS ADPLLSKIP
4BRJ ...(
4BTR ... LDN 0 1 [- DATAPASS COUNT OF
4BY2 ... SMO ADPSWPPTR [- SPECIAL SWAPOUTS
4C29 ... ADS 0 8
4C4D ...)
4C6Q CALL 4 PROG
4CLB LDN 4 ACC3(2)
4D62 LDN 5 CJACCLINK [DUMP ACCUMULATORS AND LINK OF PCA
4DKL MOVE 4 ALINK
4F5= LDN 4 ACOMMUNE1(2)
4FJW LDN 5 CJACCLINK+ALINK
4G4G MOVE 4 9 [AND ACOMMUNE WORDS
4GJ6 LDX 4 CLONG1(2)
4H3Q STO 4 CJACCLINK+ALINK+9 [SAVE CLONG1
4HHB STOZ CLONG1(2)
4J32 JBC STOPPED,3,JBPLUG [J IF NOT PLUGGED IN
4JGL MBI 3,JBPLUG,JBPISO [MARK SPECIAL
4K2= LDN 1 UNPL(1)
4KFW BRN MEET
4K^G STOPPED
4LF6 LDN 1 P14(1)
4LYQ MBI 3,JBSTOP,JBSTSO [MARK SPECIAL
4MDB MEET LINKSET 2,0(1)
4MY2 TRACE JOBNO(2),SPECOUT
4NCL FPUT [LET PCA DO UNPLUG & SWAP
4NX= MBI 3,JBBEING,JBSI [MARK BEING SWAPPED
4PBW BS ,ASWOUTING [MARK SWAPOUT IN PROGRESS
4PWG BRN R11A [TERMINATE
4QB6 [
4QTQ [ IF WE FIND NORMALLY SWAPPABLE,NOT PLUGGED IN ON WAY
4R*B [ ROUND QUEUE,WE COME HERE
4RT2 [
4S#L #
4SS= #
4T?W #
4TRG SUSP
4W?6 CALL 4 PROG
4WQQ FPCAJO 2,3
4X=B SMO FX1
4XQ2 LDN 1 P13
4XSK ...#UNS ADPLLSKIP
4XX8 ...(
4X^R ... LDN 0 1 [- DATAPASS COUNT
4Y4B ... STO 0 ADPSWPSW [- (COREJAM SWAPOUT)
4Y6^ ...)
4Y9L BRN MEET
4YP= #
4^8W # TERMINATE
4^NG #
4^WQ ...R11AA
5252 ...#UNS ISTDPSTATS
52?= ... TRACEDP AJAMFPC
52FG ...RETURN
52MQ
537B R11A MBC ,CJNOSO,ASWCORJAM
53#J ...#UNS ISTDPSTATS
53FQ ... TRACEDP AJAMSUC
53M2 [ NO NEED TO KICKASWINT AS END OF SWAPOUT
546L [ WILL AND IF NO SWAPOUT THEN JAM NOT CLEARED
54L= R11D ACROSS CHARGESC,1
555W MENDAREA 50,K100JAMSWAP
55KG #END
^^^^ ...241044430002