{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PCTBEGIN863)}}
====== PCTBEGIN863 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:CHAIN|CHAIN]], [[george:macro:COOR1|COOR1]], [[george:macro:DO|DO]], [[george:macro:DX|DX]], [[george:macro:EMPTY|EMPTY]], [[george:macro:ENRINGD|ENRINGD]], [[george:macro:FI|FI]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHACTPR|FSHACTPR]], [[george:macro:FSHCODE|FSHCODE]], [[george:macro:GETACT|GETACT]], [[george:macro:HUNT2|HUNT2]], [[george:macro:IF|IF]], [[george:macro:LINKSET|LINKSET]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PAIR|PAIR]], [[george:macro:PHOTO|PHOTO]], [[george:macro:REPEAT|REPEAT]], [[george:macro:RINGTWO|RINGTWO]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:TESTPAIR|TESTPAIR]], [[george:macro:THEN|THEN]], [[george:macro:WHILE|WHILE]]
22FL #LIS K0PCTBEGIN>K0PCT>K0ALLGEO>K0COMMAND
22^= #SEG PCTBEGIN8 [G CONSTANTINIDES
23DW 8HPCTBEGIN
23YG # ENTRY POINTS
24D6 SEGENTRY K1PCTBEGIN,Z1PCTBEGIN
24XQ MENDAREA APCTGAP,K99PCTBEGIN
25CB [
25X2 [THIS SEGMENT IS THE INITIALISATION SEGMENT FOR THE 7020 SEGMENTS USING
26BL [A MULTIPLEXOR/UNIPLEXOR.THE CURRENT ACTIVITY IS'AMOP,APCT'.THE SEGMENT
26W= [IS ENTERED FROM THE SEGMENT'SCAN'WHICH AT'EMS'OR'MOP ON'TIME SETS UP AN
27*W [AMOP,APCT AND FPUT'S WITH A LINK TO .PCTBEGIN.
27TG [THE'AMOP,APCT'HAS AN'IDF,B7020'BLOCK CHAINED AFTER IT CONTAINING AN
28*6 [ENTRY FOR EACH HARDWARE COMMAND DEFINING A 7020 ON A PARTICULAR LINE
28SQ [THIS SEGMENT SETS UP AN'A7020,ALCB'BLOCK AND RINGS IT TO THE
29#B ['AMXOR,ALINES'BLOCK OF THE'AMOP'ACTIVITY(WHICH NOTICES FLAGS).
29S2 [ALSO AN'A7020,INFORM'BLOCK IS SET UP AND INFORMATION ABOUT THE
2=?L [INTERFACES PASSED ACROSS.
2=R= [IF A CONCEPTUAL IS CANCELLED FOR A 7020 THEN AN AMOP,APCT ENTERS
2?=W [PCTBEGIN BY AN ACROSS FROM 'SCAN'
2?QG [IN THIS SEGMENT
2#=6 [ ON ENTRY DURING ON EXIT
2#PQ [
2*9B [AWORK1
2*P2 [AWORK2 'B7020',ADD.
2B8L [AWORK3 'INFORM' ADD.
2BN= [X7 LINE #
2C7W [
2CCN ...ZMSK1 #00770000
2CMG XGEN #76240000
2D76 #76250000
2DLQ +0
2DWJ ...XLINK PAIR PCTSTART,1
2F6B [
2FL2 #OPT ASLICETIME=1000/K9*60
2G5L [
2GK= TSLICE +ASLICETIME
2H4W PAIR PAIR MORNING,5
2HJG [
2J46 [THIS S/R CALLED'XENTRY'SETS UP 2 WORD INTERFACE ENTRIES IN THE INFORM
2JHQ [BLOCK.X0 IS THE CALLING ACCUMULATOR
2K3B [ X1 =1 FOR SOURCE INTERFACE I.E. TR,CR,TW(CONSOLE INPUT)
2KH2 [ X1 =2 FOR ACCEPTOR INTERFACE I.E. LP,TP,TW(CONSOLE OUTPUT)
2L2L [ X2 POINTS TO IDF B7020
2LG= [ X3 POINTS TO INFORM BLOCK
2L^W [ X4 CONTAINS INTERFACE TYPE I.E.LP=1 FOR 7021
2MFG [ CR=2 FOR 7022
2M^6 [ TW=3 FOR 7023
2NDQ [ TR=4 FOR 7024
2NYB [ TP=5 FOR 7025
2PD2 [ X6 CONTAINS RELATIVE POINTER TO LAST ENTRY INSERTED IN TABLE
2PXL [ X7 HAS B0 UNSET ON ENTRY
2QC= [THE S/R IS ALSO CALLED'XCONS' IN THE CASE OF CONSOLE OUTPUT ENTRIES.
2QWW [IN THIS CASE 'V' IS SET.
2RBG [
2RW6 XENT2 BNG 4 XENT3 [J. IF SOURCE INTERFACE, OTHERWISE SE
2S*Q ORS 5 APCTX(3) [BIT POSN. IN "LISTFILE DEVICES" MASK
2STB ...XENT3
2W*7 ...#SKI JSKI17
2WB4 ...(
2WB^ ... ANDX 5 BITS22LS
2WCW ... SMO 1
2WDR ... ERX 6 APCTNO+1(2)
2WFN ... BPZ 6 NSPL
2WGK ... ORS 5 APCTSTAT(3)
2WHG ... SLC 6 1
2WJC ... BPZ 6 NUNA
2WK# ... SRL 5 6
2WL9 ... ORS 5 APCTSTAT(3)
2WM6 ... SLC 5 6
2WN3 ...NUNA SRC 6 1
2WNY ...NSPL SMO 1
2WPT ... ERX 6 APCTNO+1(2)
2WQ4 ... BVC NCSPL
2WQ? ... ORX 5 GSIGN
2WQG ...NCSPL
2WQQ ...)
2WQ^ ... ORX 5 APCTHADD(3)
2WR8 ... ORX 5 1
2WRC ... SMO 6
2WRL ... STO 5 APCTDEV(3) [INTERFACE BIT POSN./HARDWARE ADDRESS
2WRW SBN 6 2 [STEP THE INSERTION POINTER DOWN ONE.
2X?G XENT4 SBN 1 5 [EXIT IF X1 > 4 BEFORE UPDATE.
2XR6 BPZ 1 (0)
2Y=Q ADN 1 7 [ADD 2 TO ENTRY MODIFIER.
2YQB XENTRY [ON ENTRY X1 IS ODD (=1) FOR SOURCE
2^=2 SMO 1 [AND EVEN (=2) FOR ACCEPTOR INTERFACE
2^PL LDX 5 APCTNO+1(2) [J. IF THIS ENTRY NOT CORRECT TYPE.
2^^D ... ANDX 5 BITS22LS
329= SBXC 5 4
32NW BNZ 5 XENT4
338G SMO 6 [INSERT TYPE (B0 SET INDICATES SOURCE
33N6 STO 4 APCTDEV+1(3) [INTERFACE).
347Q LDN 5 #4000 [GET INTERFACE BIT POSN. TO B6-B11.
34MB SBN 1 5 [N. B. FLAGS ARE SET IN
3572 BNG 1 XENT1 [INTERFACE ORDER : 4,3,2,1,6,5.
35LL LDN 5 #40
366= XENT1 ADN 1 5
36KW SLL 5 2(1)
375G SMO 6 [INSERT UNIT NO. OF THIS INTERFACE.
37K6 DCH 1 APCTDEV+1(3)
384Q BVC XENT2 [J. IF NOT CONSOLE OUTPUT.
38JB SRL 5 6 [UNSET THE "NO ACTIVITY" BIT FOR
3942 ERS 5 APCTD(3) [THIS INTERFACE.
39HL SLL 5 6
3=3= ORX 7 GSIGN [SET SWITCH TO SHOW CONSOLE EXISTS.
3=GW ORX 5 GSIGN [SET B0 TO INDICATE CONSOLE OUTPUT.
3?2G BRN XENT3 [J. BACK IN.
3?G6 [
3?^Q XCONS BVCI XENTRY [SET V FOR CONSOLE OUTPUT ENTRIES.
3#FB [
3#^2 [
3*DL Z1PCTBEGIN
3*GT ... FSHCODE B,SNOPRA1
3*K4 ...(
3*M? ... TESTPAIR SNOPRA1 [MAY BE PAIRED ALREADY IF ACROSS FROM
3*PG ... FSHACTPR ['SCAN' - ELSE GET US A PAIR
3*RP ...SNOPRA1
3*TY ...)
3*Y= SETNCORE GENQ3+4-A1,3,A7020,ALCB,1,1,2
3BCW STO 6 IDENTM(3)
3BXG STOZ GWAIT(3)
3CC6 STO 7 GUNITNO(3) [LINE NO.
3CWQ LDN 0 XGEN(1)
3DBB LDN 1 GENQ1(3)
3DW2 MOVE 0 3
3F*L HUNT2 2,AMXOR,ALINES,6
3FT= LDX 5 7
3G#W SLL 5 2
3GSG ADX 2 5
3H#6 RINGTWO A1(2),A1(3) [RING THE LCB INTO THE ROUTING BLOCK.
3HRQ LDX 0 GSIGN [UNSET THE "IGNORE FLAGS" MARKER.
3J?B ERS 0 A1+FOURTHWD(2)
3JR2 MHUNTW 2,IDF,B7020
3K=L LDN 3 APCTRLEN
3KQ= LDN 4 APCTSTAT+1-A1 [1WD. EXTRA FOR ZERO AT END OF GLOCK.
3L9W MPA 3 APCTNO(2)
3LPG SETUPCORE 4,3,A7020,INFORM,,1,2
3M96 EMPTY FPTPCT(3)
3MNQ STO 3 AWORK3(2) [REMEMBER ITS ADDRESS.
3N8B LDX 0 GSIGN
3NN2 STO 0 APCTID(3)
3P7L LDX 4 JTIME
3PM= STO 4 APCTCLNCT(3)
3Q6W STOZ APCTINOP(3)
3QLG STOZ ALINESTAT(3)
3R66 STOZ APCTACT(3)
3RKQ STOZ APCTP(3)
3S5B MHUNTW 2,IDF,B7020
3SK2 LDX 7 APCTNO(2) [NO. OF PCTS ON THIS LINE.
3T4L LDX 0 7
3TJ= SBN 0 1 [J. IF ONE ONLY.
3W3W SMO FX2
3WHG STO 2 AWORK2
3X36 BZE 0 ONLY1
3XGQ LDX 0 TSLICE(1) [SET SLICE TIME FOR EACH PCT.
3Y2B NULL [FREE FOR MENDING INTO IF NOT OK.
3YG2 ONLY1 STO 0 ATSLICE(3) [ZERO IF ONLY ONE TERMINAL ON LINE.
3Y^L STO 7 APCTNUM(3)
3^F= STO 7 APCTACT(3)
3^YW LDX 4 A1(2)
42DG SRL 4 12 [LINE NO IN B12-23
42Y6 SMO FX2 [REMEMBER FOR POSTERITY.
43CQ STO 4 AWORK4
43XB BCHX 3 £ [SET CHARACTER POINTER FOR LATER USE.
44C2 XOOP
44WL LDX 5 APCTNO+1(2)
45B= LDN 6 0
45TW DSA 5 6 [HARDWARE ADDRESS OF TERMINAL.
46*G ANDX 5 HALFTOP [TWO CHARACTER TERMINAL IDENTIFIER.
46T6 SMO FX2
47#Q ORX 5 AWORK4 [IDENTIFIER WORD FOR THIS TERMINAL.
47SB STO 5 IDUNIQUE(3)
48#2 STO 6 APCTHADD(3)
48RL ANDN 6 1 [B23=1 IF 1901A
49?= ERS 6 APCTHADD(3) [UNSET IT IF SET IN HW ADDRESS
49QW STO 6 APCTSTAT(3) [0 IF NOT 1901A
4==G NGN 4 #100 [#77777700.
4=Q6 STO 4 APCTD(3)
4?9Q STOZ APCTX(3)
4?PB LDN 6 10 [POINTER TO LAST ENTRY IN INFORM TABL
4#92 LDN 4 3 [TW TYPE.
4#NL LDN 1 1 [FIRST SOURCE ENTRY IN B7020 BLOCK.
4*8= ORX 4 GSIGN [SET "SOURCE INTERFACE" MARKER.
4*MW CALL 0 XENTRY [SET UP ANY CONSOLE INPUT ENTRIES.
4B7G LDN 1 2 [FIRST ACCEPTOR ENTRY IN B7020 BLOCK.
4BM6 LDN 4 3 [TW TYPE
4C6Q CALL 0 XCONS [SET UP ANY CONSOLE OUTPUT ENTRIES.
4CLB BVSR £ [CLEAR CONSOLE OUTPUT SWITCH.
4D62 LDN 1 2
4DKL LDN 4 1 [LP TYPE.
4F5= CALL 0 XENTRY [SET UP PRINTER ENTRIES.
4FJW LDN 1 2
4G4G LDN 4 5 [TP TYPE.
4GJ6 CALL 0 XENTRY [SET UP PUNCH ENTRIES.
4H3Q LDN 4 2 [CR TYPE.
4HHB LDN 1 1
4J32 ORX 4 GSIGN ["SOURCE INTERFACE" MARKER.
4JGL CALL 0 XENTRY [SET UP ANY CARD READER ENTRIES.
4K2= ADN 4 2 [TR TYPE.
4KFW LDN 1 1
4K^G CALL 0 XENTRY [SET UP ANY TAPE READER ENTRIES.
4LF6 BNG 6 XALL [J. IF ALL INTERFACES DEFINED.
4LYQ LDX 5 APCTHADD(3)
4MDB XNXT1 SMO 6 [CLEAR UNUSED INTERFACE WORDS.
4MY2 STO 5 APCTDEV(3)
4NCL SMO 6
4NX= STOZ APCTDEV+1(3)
4PBW SBN 6 2
4PWG BPZ 6 XNXT1
4QB6 LDN 6 10
4QTQ XNXT2 SMO 6 [SET UP MASK FOR ALL DEFINED INTERFAC
4R*B ORX 4 APCTDEV(3)
4RT2 SBN 6 2
4S#L BPZ 6 XNXT2
4SS= ORN 4 -1 [AND IT INTO THE "RIGHT" MASK
4T?W SLL 4 6 [I. E. MARK ALL UNDEFINED
4TRG ANDS 4 APCTD(3) [INTERFACE AS "WRONGED".
4W?6 XALL LDX 5 2
4WQQ LDX 6 3
4X=B LDX 0 APCTX(3) [UNSET LF INTERFACE BITS IN OPERABILI
4XQ2 LDX 2 FX2
4Y9L SBX 5 AWORK2(2) [SAVE PLACE IN BLOCKS.
4YP= SBX 6 AWORK3(2)
4^8W ERS 0 APCTD(3) [(THIS GIVES FORM-FEED AFTER START UP
4^NG LDXC 7 7 [J. IF NO CONSOLE OUTPUT ON THIS PCT.
5286 BCC NOCON
52MQ LDX 2 3 [FIND THE (FIRST) CONSOLE OUTPUT ENTR
537B XNXT3 ADN 2 2
53M2 LDXC 0 APCTDEV(2)
546L BCC XNXT3
54L= ANDX 0 HALFTOP [REMEMBER ITS INTERFACE BIT POSN.
555W SLL 0 6
55KG PHOTO 4
5656 ORS 0 APCTX(3)
56JQ GETACT CONSA,APCTMESS [ACTIVITY TO OUTPUT "GEORGE READY".
574B SETNCORE APCTID+1-A1,1,A7020,CONSIN,,1,2 [DUMMY INPUT BUFFER BLOCK
57J2 LDX 3 AWORK3(2)
583L TESTMOVE 4,NMV1
58H= MHUNTW 3,IDF,B7020 [RESET POINTERS IN CASE
592W STO 3 AWORK2(2) [OF CORE MOVEMENT.
59GG MHUNTW 3,A7020,INFORM
5=26 STO 3 AWORK3(2)
5=FQ NMV1 ENRINGD FPTPCT(1),FPTPCT(3) [RING IN TO THE BUFFER BLOCK RING.
5=^B SMO 6 [GET THE TWO LETTER IDENTIFIER FOR
5?F2 LDX 0 IDUNIQUE(3) [THIS TERMINAL.
5?YL LDX 1 FPTR(2)
5#D= STO 6 APCTID(1) [SET THE POINTER (B1 SET DON'T MATTER
5#XW SRL 0 12
5*CG LDX 3 BPTR(2)
5*X6 STO 0 AWORK1(3) [STORE THE IDENTIFIER.
5BBQ CHAIN 1,3 [CHAIN BUFFER TO OUTPUT ACTIVITY.
5BWB LDX 2 3
5CB2 LINKSET 3,PAIR(1) [LINK TO K5MORNING
5CTL FPUT
5D*= NOCON LDX 3 AWORK3(2) [INFORM BLOCK POINTER.
5DSW LDX 1 AWORK2(2) [IDF BLOCK POINTER.
5F#G SBN 7 1 [J. IF NO MORE TO DO.
5FS6 BZE 7 NMV2
5G?Q LDX 2 1
5GRB ADX 3 6 [STEP POINTERS DOWN TO NEXT ENTRIES.
5H?2 ADX 2 5
5HQL ADN 3 APCTRLEN
5J== ADN 2 7
5JPW BRN XOOP [ROUND WE GO AGAIN.
5K9G #
5KP6 WAIT LDX 0 GSIGN [MARK AS "ASLEEP".
5L8Q ORS 0 AWORK1(2)
5LNB PHOTO 4
5M82 COOR1
5MML LDX 3 AWORK3(2) [RESET POINTERS AFTER COORDINATION.
5N7= LDX 1 AWORK2(2)
5NLW TESTMOVE 4,NMV2
5P6G MHUNTW 3,A7020,INFORM
5PL6 MHUNTW 1,IDF,B7020
5Q5Q STO 3 AWORK3(2)
5QKB STO 1 AWORK2(2)
5R52 NMV2 LDX 0 BPTPCT(3) [J. IF BUFFER BLOCK RING EMPTY AGAIN.
5RJL SBN 0 FPTPCT(3)
5S4= BNZ 0 WAIT
5SHW ADX 3 6
5T3G NGN 0 1 [SET MARKER TO INDICATE END OF BLOCK.
5TH6 STO 0 APCTSTAT+APCTRLEN(3)
5W2Q FREECORE 1 [FREE THE IDF BLOCK.
5WGB MHUNTW 3,A7020,ALCB
5X22 LDCT 0 #20
5XFL SMO A1+FPTR(3) [UNSET THE "SETTING UP" MARKER.
5XG6 ... ERS 0 FOURTHWD
5XGL ... LDX 7 6
5XH6 ... MHUNTW 2,A7020,INFORM
5XHB ... ANDX 6 BITS22LS
5XHL ...[
5XJ6 ... DO
5XJL ...[
5XK6 ... ADX 2 7
5XKL ... LDX 3 IDUNIQUE(2)
5XL6 ... LDCT 4 #770
5XLL ... ANDX 4 APCTD(2) [RIGHTED INTERFACES
5XM6 ... SRL 4 12
5XML ... ANDX 4 APCTD(2) [WITH NO ACTIVITY
5XN6 ... SLL 4 6
5XNL ... ANDX 4 APCTX(2) [WHICH ARE LP OR TP
5XP6 ...[ INT BITS IN CHAR 1
5XPL ... LDX 0 4
5XQ6 ... SRL 0 6
5XQL ... ERS 0 APCTD(2) [UNSET NO ACTY BITS
5XR6 ...[
5XRL ... WHILE 4,NZ
5XS6 ... DO
5XSL ...[
5XT6 ... LDX 0 APCTDEV(2)
5XTD ... SMO FX1
5XTQ ... ANDX 0 ZMSK1
5XW6 ... ORX 6 0
5XWL ... ANDX 0 4 [DO WE WANT THIS IDENT
5XX6 ...[
5XXL ... IF 0,NZ [IF SO
5XY6 ... THEN
5XYL ... ERX 4 0 [SHOW INT FOUND
5X^6 ... LDX 5 APCTDEV+1(2)
5X^L ... GETACT ACTLF,GREMOTE [AND GET ACTY
5Y26 ... LDX 1 BPTR(2)
5Y2L ... ENRINGD JOBRING(1),JOBRING(2)
5Y36 ... LDX 2 BPTR(2)
5Y3L ... STO 3 JSOURCE1(2) [STORE IDUNIQUE
5Y46 ... STO 5 ACC4(2) [2ND DEVICE WORD
5Y4L ... STO 6 ACC5(2) [INT BIT + PCT DISP
5Y56 ... LINKSET 2,XLINK(1)
5Y5L ... FPUT
5Y66 ... MHUNTW 2,A7020,INFORM
5Y6L ... ADX 2 7
5Y76 ...[
5Y7L ... FI
5Y86 ...[
5Y8L ... ANDN 6 #7777
5Y96 ...[ REMOVE INTERFACE BITS
5Y9L ... ADN 2 2
5Y=6 ...[
5Y=L ... REPEAT DX 7
5Y?6 ...[
5Y?L ... SBN 6 APCTRLEN [POINT AT NEXT PCT RECORD
5Y#6 ... SBX 2 7
5Y#L ...[ POINT AT START OF INFORM BLOCK
5Y*6 ... LDX 7 6
5Y*L ...[
5YB6 ... REPEAT UNTIL,6,NG
5YBL ...[
5YDW ACROSS PCTCON,1
5YYG #
5^D6 #END
^^^^ ...30300337000400000000