{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PMFSB84)}} ====== PMFSB84 ====== (George Source) **Macros used:** [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:CHAIN|CHAIN]], [[george:macro:EMPTY|EMPTY]], [[george:macro:FAILURE|FAILURE]], [[george:macro:FIXTRA|FIXTRA]], [[george:macro:FSHTEST|FSHTEST]], [[george:macro:JBUSY|JBUSY]], [[george:macro:JENVNOT|JENVNOT]], [[george:macro:ON|ON]], [[george:macro:PMCORES|PMCORES]], [[george:macro:PMESSAGE|PMESSAGE]], [[george:macro:PMOVE|PMOVE]], [[george:macro:SEGENTRY|SEGENTRY]] 22^= #OPT K0PMFSB=0 23DW #LIS K0PMFSB>K0POST>K0ALLGEO 23YG ...#SEG PMFSB84 [KAREL KOSKUBA - DIAG 24XQ # 25CB # THIS SEGMENT CONTAINS SUBROUTINES FOR FILE STORE POSTM. 25X2 # 26BL 8HPMFSB 26W= # 27*W # ENTRY POINT TABLE 27TG # 28*6 ... SEGENTRY K1PMFSB,XK1PMFSB 28F3 ... SEGENTRY K2PMFSB,XK2PMFSB 28JY ...# 28NT ...#SKI G3 28SQ ...( 28YM ... FIXTRA JJRECBLK 294J ... BRN XJRECBLK1 298F ...) 29#B # 29S2 ... FIXTRA FFPRLIN 2=?L BRN XFPRLIN 2=R= # 2?=W ... FIXTRA FFPRRCD 2?QG BRN XFPRRCD 2#=6 # 2#PQ ... FIXTRA JJGETFCB1 2*9B BRN XGETFCB1 2*P2 # 2B8L ... FIXTRA JJGETFCB 2BN= BRN XGETFCB 2C7W # 2DLQ # 2F6B XSTART [START ADDR. OF PSEUDO ACTIVITY BLOCK 2FL2 # THERE FOLLOW WORDS TO FILL PSEUDO ACTIVITY BLOCK 2G5L FIXTRA FREMAIN 2GK= REMAIN +0 [REMAINDER OF WORDS IN BLOCK 2H4W FIXTRA FMODBLK 2HJG MODBLK +0 [BLOCKLET MODIFIER FOR PRINTING 2J46 XOCT +8 2JHQ X128 +128 [128 WORDS PER BLOCK 2K3B XLINK +0 2KH2 WLBONE +120 2L2L X512 +512 2LG= X 2L^W #REP CHAINADD-X+XSTART 2MFG +0 2M^6 XCHAD +0 2NDQ # MORE FILLERS NOW!!! 2NYB XBACK +0 [BACKWARD CHAINING IND. 2P5J ...XBFILE +BFILE [BASE OF FILE CHAIN : IN SHFS 2P=Q ... [TESTING VERSION IF B MACHINE WAS 2PCY ... [RUNNING AT TIME OF BREAK THIS WILL 2PK6 ... [BE CHANGED TO BIPL WHEN PRINTING 2PQ# ... [RECALL FILE 2PXL XLINK3 +0 2QC= TEXT10 36HBLOCK NO. GIVES B/S RES. VIOLATION 2QWW TEXT11 40HPERIPHERAL TRANSFER FAILURE ON B/S DEV. 2RBG PRH1 32H RECORD HEADER OVERWRITTEN 2RL# ...XPMFSBEND +PMFSBEND 2RW6 # 2S*Q Y 2STB #REP CPPTR-Y+XSTART 2T*2 +0 2TSL FIXTRA JBSPTR 2W#= XBSPTR +0 [THE PTR,SET UP AT BLOQSTART + CPPTR 2WRW XBSRW1 +0 [& REPLY WORD-FOR COMMUNICATION TO 2X?G [& FROM EXEC. 2X#3 ...# 2X#J ...#SKI G3 2X*5 ...( 2X*L ...MASK1 #177777 2XB7 ...XACT #60 2XBN ...XCONS +CONSA+CNTRAL 2XC9 ...XACEND +BACT+ACTRING 2XCQ ...XCONB +CONBUFF+ACTIVE 2XD? ...SAVE2 +0 2XDS ...XFRWB +FILE+FRWB 2XF* ...XCNTRL +CONBUFF+CNTRL 2XFW ...XSYST 12HSYSTEM 2XGC ...XRECALL 12HRECALL FILE 2XGY ...SLINK +0 2XHF ...NL #76327474 2XJ2 ...XDOLLER #74 2XJH ...TEXT1 27HPRINT OF RECALL FILE ENSUES 2XK4 ...TEXT2 37H CURRENT PAGE PRINTED FROM CORE 2XKK ...TEXT3 36H STORED PAGE PRINTED FROM CORE 2XL6 ...TEXT4 18HCURRENT PAGE EMPTY 2XLM ...TEXT6 52HBREAK IN ACTIVITY CHAIN : PRINT OF STORED PAGES ABAN 2XM8 ... 5HDONED 2XMP ...TEXT7 36HFILE/FRWB CORRUPT SEE ACTIVITY CHAIN 2XN= ...TEXT8 41HCONBUFF/ACTIVE CORRUPT SEE ACTIVITY CHAIN 2XNR ...TEXT9 52HBREAK IN ACTIVITY RING : PRINT OF RECALL FILE ABANDO 2XP# ... 3HNED 2XPT ...TEXT12 27HEND OF PRINT OF RECALL FILE 2XQB ...) 2XR6 [ NOW TO FILL PSEUDO BLOCK 2Y=Q # 2YQB XK1PMFSB 2^28 ... LDX 1 FXPM1 2^=2 ... ADS 1 XPMFSBEND(1) 2^FS ... PMOVE PMFS,XPMFSBEND(1),1,2 2^FW ...# 2^FY ...# ENTRY POINT TO PRINT RECALL FILE 2^G2 ...# 2^G4 ...XK2PMFSB 2^G6 ...#SKI G4 2^G8 ... BRN (JPMSEG) 2^G= ...#SKI G3 2^G# ...( 2^GB ... JENVNOT XC5,DME [IF NOT DME NOTHING TO DO 2^GD ... LDX 1 FXPM1 [READ DOWN PMFS AFTER PMFSB 2^GG ... ADS 1 XPMFSBEND(1) 2^GJ ... PMOVE PMFS,XPMFSBEND(1),,2 2^GL ... LDX 1 FXPM2 [DATUMISE AFRESBS 2^GN ... ADS 1 AFRESBS(1) 2^GQ ...# 2^GS ...# SEARCH ACTIVITY RING STARTING AT BASE IN BLANKET FOR THE CONSA 2^GW ...# CNTRL BLOCK. SEARCH IS FORWARD UNLESS A BREAK IS FOUND 2^GY ...# 2^H2 ... LDX 1 FXPM1 2^H4 ... LDN 2 BACT+ACTRING [LOAD BASE OF ACTIVITY RING 2^H6 ...XC1 LDX 2 FPTR(2) 2^H8 ... TXU 2 XACEND(1) [END OF ACTIVITY RING? 2^H= ... BCC XC5 [YES 2^H# ... PMCORES 2,XC2 [VALID FPTR? 2^HB ... SBN 2 ACTRING 2^HD ... LDX 4 ATYPE(2) 2^HG ... SRL 4 12 2^HJ ... TXU 4 XCONS(1) [IS IT CONSA CNTRL 2^HL ... BCC XC6 [YES 2^HN ... ADN 2 ACTRING 2^HQ ... BRN XC1 2^HS ...# 2^HW ...# SEARCH BACKWARDS 2^HY ...XC2 LDN 2 BACT+ACTRING 2^J2 ...XC3 LDX 2 BPTR(2) 2^J4 ... TXU 2 XACEND(1) [END OF ACTIVITY RING 2^J6 ... BCC XC5 [YES 2^J8 ... PMCORES 2,XC4 [VALID BPTR 2^J= ... SBN 2 ACTRING 2^J# ... LDX 4 ATYPE(2) 2^JB ... SRL 4 12 2^JD ... TXU 4 XCONS(1) [IS IT CONSA CNTRL 2^JG ... BCC XC6 [YES 2^JJ ... ADN 2 ACTRING 2^JL ... BRN XC3 2^JN ...# 2^JQ ...# BREAK IN ACTIVITY CHAIN 2^JS ...XC4 PMESSAGE TEXT9(1),14 2^JW ...XC5 BRN (JPMSEG) 2^JY ...# 2^K2 ...# LOCATE AND PRINT CURRENT PAGE 2^K4 ...# 2^K6 ...XC6 LDX 2 FPTR(2) 2^K8 ... PMCORES 2,XC9 [VALID POINTER 2^K= ... LDCH 4 ATYPE(2) [IS IT ACTIVITY 2^K# ... TXL 4 XACT(1) 2^KB ... BCC XC5 [YES END OF SEARCH 2^KD ... LDX 4 ATYPE(2) 2^KG ... SRL 4 12 2^KJ ... TXU 4 XCONB(1) [CONBUFF ACTIVE 2^KL ... BCS XC6 [NO 2^KN ... CALL 7 (JPRINT) [NEW PAGE 2^KQ ... PMESSAGE TEXT1(1),7 [HEADING 2^KS ... PMESSAGE TEXT2(1),10 2^KW ... SMO FXPM2 2^KY ... LDX 5 AFRESBS [MOVE BLOCK TO END OF PMFS 2^L2 ... LDN 4 A1(2) 2^L4 ... MOVE 4 256 2^L6 ... STO 2 SAVE2(1) [PRESERVE X2 2^L8 ... CALL 0 XJRECBLK2 [PRINT BLK 2^L= ... BRN XC7 [OK 2^L# ... PMESSAGE TEXT8(1),11 [ERROR 2^LB ...# 2^LD ...# SEARCH FOR FILE/FRWB BLOCKS AND PRINT ONLY THERE IF BREAK IN 2^LG ...# EMS 2^LJ ...# 2^LL ...XC7 LDX 2 SAVE2(1) [RESTORE X2 2^LN ...XC8 LDX 2 FPTR(2) 2^LQ ... PMCORES 2,XC9 [VALID POINTER 2^LS ... LDCH 4 ATYPE(2) 2^LW ... TXL 4 XACT(1) [IS IT ACTIVITY 2^LY ... BCC XC10 [YES END OF SEARCH 2^M2 ... LDX 4 ATYPE(2) 2^M4 ... SRL 4 12 2^M6 ... TXU 4 XFRWB(1) [IS IT FILE/FRWB 2^M8 ... BCS XC8 [NO 2^M= ... SMO FXPM2 [MOVE BLOCK TO END OF PMFS 2^M# ... LDX 5 AFRESBS 2^MB ... LDN 4 A1(2) 2^MD ... MOVE 4 256 2^MG ... PMESSAGE TEXT3(1),9 [PRINT HEADING 2^MJ ... STO 2 SAVE2(1) [PRESERVE X2 2^ML ... CALL 0 XJRECBLK1 [PRINT BLOCK 2^MN ... BRN XC7 [OK 2^MQ ... PMESSAGE TEXT7(1),9 [ERROR 2^MS ... BRN XC7 2^MW ...XC9 PMESSAGE TEXT6(1),15 [ABANDON PRINT OF STORED PAGES 2^MY ... BRN XC10 2^N2 ...# 2^N4 ...# CHECK IF RECALL FILE SET UP 2^N6 ...# 2^N8 ...XC10 LDX 2 CONSCNTRL [POINTER TO CONBUFF/CNTRL 2^N= ... BZE 2 XC5 [NO CONBUFF/CNTRL 2^N# ... LDX 4 ATYPE(2) 2^NB ... SRL 4 12 2^ND ... TXU 4 XCNTRL(1) 2^NG ... BCS XC5 [NO CONBUFF/CNTRL 2^NJ ... LDX 4 COVID(2) 2^NL ... ANDN 4 #4000 [IS BIT 12 SET 2^NN ... BZE 4 XC5 [RECALL FILE NOT SET UP 2^NQ ...# 2^NS ...# SEARCH FILE CHAIN FOR FCB OF RECALL FILE 2^NW ...# 2^NY ...#UNS FSHTEST 2^P2 ...( 2^P4 ...# 2^P6 ...# IN THE SHFS TESTING VERSION IF WHEN PM TAKEN 2^P8 ...# MACHINE B WAS RUNNING RECALL FILE WILL BE 2^P= ...# IN OTHER FILE CHAIN BASE BIPL 2^P# ...# 2^PB ... LDX 4 INCWORD 2^PD ... ANDN 4 #2000 2^PG ... BZE 4 XNOTB [NOT IN B MACHINE 2^PJ ... LDN 2 BIPL [CHANGE FILE CHAIN BASE FOR 2^PL ... STO 2 XBFILE(1) [SUBROUTINE XGETFCB 2^PN ...XNOTB 2^PQ ...) 2^PS ... LDX 1 FXPM2 2^PW ... CALL 0 XGETFCB1 2^PY ... BRN XF1 2^Q2 ... BRN XC5 [BREAK OR END CHAIN NOTHING TO DO 2^Q4 ...XF1 LDX 2 JXFCB(1) [ADDR FILE/FCB 2^Q6 ... LDX 1 FXPM1 2^Q8 ... LDX 4 FUSER1(2) [IS USER NAME SYSTEM 2^Q= ... LDX 5 FUSER2(2) 2^Q# ... LDX 6 FUSER3(2) 2^QB ... TXU 4 XSYST(1) 2^QD ... TXU 5 XSYST+1(1) 2^QG ... TXU 6 XSYST+2(1) 2^QJ ... BCS XF2 [NO 2^QL ... LDX 4 FLOC1(2) [IS FILE NAME RECALL FILE 2^QN ... LDX 5 FLOC2(2) 2^QQ ... LDX 6 FLOC3(2) 2^QS ... TXU 4 XRECALL(1) 2^QW ... TXU 5 XRECALL+1(1) 2^QY ... TXU 6 XRECALL+2(1) 2^R2 ... BCC XF3 [YES 2^R4 ...XF2 LDX 1 FXPM2 2^R6 ... CALL 0 XGETFCB 2^R8 ... BRN XF1 2^R= ... BRN XC5 [RECALL FILE NOT FOUND 2^R# ...# 2^RB ...# PRINT BLOCKS FROM FILE 2^RD ...# 2^RG ...XF3 LDX 1 FXPM2 2^RJ ... LDX 4 JMASK1(1) 2^RL ... STO 4 JXBITAB(1) 2^RN ... LDN 4 JXBITAB(1) 2^RQ ... LDN 5 JXBITAB+1(1) 2^RS ... MOVE 4 20 2^RW ... LDX 2 FXPM2 2^RY ... ADX 2 JZDECANT 2^S2 ... CALL 0 (2) 2^S4 ... BRN £ 2^S6 ... LDX 1 FXPM1 2^S8 ... PMESSAGE TEXT12(1),7 2^S= ... SMO FXPM1 [RESTORE DEVICE LIST IF NECESSARY 2^S# ... LDX 5 XBSPTR 2^SB ... BZE 5 XC5 2^SD ... LDN 4 JBSREC 2^SG ... ADX 4 FXPM2 2^SJ ...XF4 JBUSY 5,XF4 2^SL ... MOVE 4 K53 2^SN ... BRN XC5 2^SQ ...# 2^SS ...# ROUTINE TO PRINT A PAGE FROM THE RECALL FILE 2^SW ...# 2^SY ...# ENTRY XJRECBLK1 TO PRINT COMPLETED PAGES 2^T2 ...# ENTRY XJRECBLK2 TO PRINT CURRENT PAGE 2^T4 ...# ENTRY X0=LINK 2^T6 ...# MODBLK=BLOCKLET MODIFIER 2^T8 ...# EXIT 0 AFTER PRINTING PAGE 2^T= ...# ALL ACCUMS UNDEFINED 2^T# ...# EXIT 1 ERROR IN BLOCK 2^TB ...# 2^TD ...XJRECBLK1 2^TG ... STO 0 SLINK(1) 2^TJ ... SMO FXPM2 2^TL ... LDX 2 AFRESBS 2^TN ... ADX 2 MODBLK(1) [BLOCKLET MODIFIER 2^TQ ... LDX 4 0(2) [CHARACTER COUNT 2^TS ... SBN 4 1 2^TW ... BNG 4 XJREC8 [CHARACTER COUNT < OR = 0 ERROR 2^TY ... SBN 4 1024 2^W2 ... BPZ 4 XJREC8 [> 1024 ERROR 2^W4 ... LDX 4 0(2) 2^W6 ... SRL 4 2 [ADJUST COUNT TO ONLY INCLUDE 2^W8 ... LDX 3 1(2) [WORDS IN 2^W= ... SBN 3 11 [PAGE 2^W# ... SBX 4 3 2^WB ... LDN 0 0 [SET SWITCH TO INDICATE COMPLETE BLK 2^WD ...XJREC1 2^WG ... LDX 3 1(2) [CHECK IF START OF PAGE VALID 2^WJ ... SBN 3 20 2^WL ... BNZ 3 XJREC8 [NO-ERROR 2^WN ... LDX 3 1(2) 2^WQ ... SBN 3 9 2^WS ... ADX 2 3 [START OF MESSAGES 2^WW ... CALL 7 (JPRINT1) [BLANK LINE TO SEPERATE BLOCKLETS 2^WY ...XJREC2 2^X2 ... LDX 3 JLPMOD [LP BUFFER ADDR 2^X4 ... LDN 6 0 [CLEAR WORD COUNT 2^X6 ...XJREC3 2^X8 ... LDX 5 0(2) 2^X= ... ADN 6 1 [COUNT WORDS IN MSG 2^X# ... TXU 5 NL(1) [IS IT N/L WORD 2^XB ... BCC XJREC4 [YES END MSG 2^XD ... STO 5 0(3) 2^XG ... ADN 2 1 2^XJ ... ADN 3 1 2^XL ... LDX 5 6 [HAVE WE EXCEEDED WORDS IN LINE 2^XN ... SBN 5 21 2^XQ ... BPZ 5 XJREC8 [YES-ERROR 2^XS ... BRN XJREC3 2^XW ...XJREC4 2^XY ... STO 6 XLINK(1) [SAVE X6 2^Y2 ... LDN 6 3 [REMOVE $ PADDING OF LAST WORD 2^Y4 ... SBN 3 1 2^Y6 ... BCHX 3 £ 2^Y8 ... LDN 7 #20 2^Y= ...XJREC9 2^Y# ... LDCH 5 0(3) 2^YB ... TXU 5 XDOLLER(1) 2^YD ... BCS XJREC10 2^YG ... DCH 7 0(3) 2^YJ ...XJREC10 2^YL ... BCHX 3 £ 2^YN ... BCT 6 XJREC9 2^YQ ...# 2^YS ... CALL 7 (JPRINT1) [PRINT MESSAGE 2^YW ... LDX 6 XLINK(1) [RESTORE X6 2^YY ... BZE 0 XJREC5 [NOT CURRENT PAGE 2^^2 ... LDN 6 1 [COUNTING MSGS 2^^4 ...XJREC5 2^^6 ... SBX 4 6 2^^8 ... BZE 4 XJREC7 [FINISHED 2^^= ... ADN 2 1 2^^# ... BRN XJREC2 2^^B ...XJREC6 2^^D ... PMESSAGE TEXT4(1),5 [CURRENT PAGE EMPTY 2^^G ...XJREC7 2^^J ... LDX 0 SLINK(1) 2^^L ... EXIT 0 0 [OK EXIT 2^^N ...XJREC8 2^^Q ... LDX 0 SLINK(1) [ERROR EXIT 2^^S ... EXIT 0 1 2^^W ...# 2^^Y ...XJRECBLK2 3222 ... STO 0 SLINK(1) 3224 ... SMO FXPM2 3226 ... LDX 2 AFRESBS 3228 ... LDN 4 HEIGHTPAGE 322= ... SBX 4 2(2) [NO OF MSGS 322# ... BNG 4 XJREC8 [ERROR 322B ... BZE 4 XJREC6 322D ... LDN 0 1 [SWITCH TO INDICATE CURRENT PAGE 322G ... BRN XJREC1 322J ...) 322L ...# 329= # 32NW # ROUTINE FOR SETTING UP AND PRINTING A LINE 338G # 33N6 # ENTRY X3=LINK 347Q # X4=ADDR. OF WORD TO BE OUTPUT RELATIVE TO START OF 34MB # BLOCK(WILL TAKE VALUE 0-19) 3572 # MODBLK=BLOCKLET MODIFIER 35LL # 366= # EXIT X4,MODBLK UNCHANGED 36KW # ALL OTHER ACCS. UNDEFINED 375G # 37K6 XFPRLIN 384Q LDX 1 4 [WORD MODIFIER 38#J ... SMO FXPM1 38JB STO 3 XLINK [STORE LINK 3942 ... CALL 7 (JUP) 39HL +1 39RD ...NXTW SMO FXPM2 3=3= ... ADX 1 AFRESBS 3=?4 ... SMO FXPM1 3=GW ADX 1 MODBLK 3?2G LDX 5 0(1) 3?G6 ... CALL 7 (JOCT) [CONVERT TO OCTAL 3?^Q LDX 2 JPMOD 3#FB BCHX 2 £ 3#^2 LDN 7 4 [COUNT OF 4 CHARACTERS 3*DL STCHS LDCH 0 0(1) [PICK UP CHARACTER 3*Y= DCH 0 0(2) [AND STORE 3BCW BCHX 1 £ 3BXG BCHX 2 £ 3CC6 BCT 7 STCHS [REPEAT FOR ALL CHARACTERS 3CWQ SBN 1 1 [RESTORE WORD MODIFIER 3DBB BCHX 2 £ 3DW2 BCHX 2 £ [SPACE OUT GAP 3F*L BCHX 2 £ 3FT= STO 2 JPMOD 3G#W ADN 1 20 [INCREASE WORD MODIFIER 3GJN ... SMO FXPM2 3GSG SBX 1 AFRESBS 3H4# ... SMO FXPM1 3H#6 SBX 1 MODBLK 3HHY ... SMO FXPM1 3HRQ ... TXL 1 X128 [J IF MORE WORDS FOR PRINTING 3J3J ... BCS NXTW 3J?B # 3JR2 # REMEMBER,ONLY 128 WORDS PER BLOCK,SO FIRST 8 ROWS 7 COLS. TO 3K=L # PRINT,NEXT 12 ROWS ONLY 6 COLS TO PRINT 3KQ= # 3L3L ... CALL 7 (JPRINT1) [PRINT LINE 3L*2 ... SMO FXPM1 3LLB ... LDX 3 XLINK 3LXQ ... EXIT 3 0 3M96 # 3MNQ # ROUTINE FOR PRINTING A LINE IF LANG. B1B0,B5B1 ETC. 3N8B # 3NN2 # ENTRY X3=LINK 3P7L # X1=WORD MODIFIER 3PM= # EXIT 0 - AFTER PRINTING RECORD 3Q6W # X1=UPDATED WORD MODIFIER 3QLG # ALL OTHER ACCS. UNDEFINED 3R66 # 1 - IF WHOLE OF BLOCK HAS BEEN PRINTED 3RKQ # 2 - TO PRINT IN BLOCK FORMAT 3S5B # 3SK2 XFPRRCD 3SSS ... SMO FXPM1 3T4L STO 3 XLINK [STORE LINK 3T#D ... SMO FXPM1 3TJ= LDX 3 REMAIN [N/W TO BE PRINTED 3W3W BNZ 3 PR1 3WB? ...PR2 SMO FXPM1 3WNN ... LDX 3 XLINK 3X36 EXIT 3 1 [EXIT AS WHOLE BLOCK PRINTED 3X*H ...PR1 SMO FXPM2 3XMY ... LDX 2 AFRESBS 3Y2* ... ADX 2 1 3Y#Q ... LDX 2 0(2) [N/W IN RECORD 3YM7 ... BZE 2 PR2 [J IF NO MORE RECORDS 3Y^L BNG 2 RHOVW [J IF REC.HEADER OVERWRITTEN 3^F= SBX 3 2 [5/2-N/W 3^YW BPZ 3 TRPRI [J TO PRINT RECORD 42DG RHOVW 42QX ... LDX 3 FXPM1 435# ... PMESSAGE PRH1(3),8 ['RECORD HEADER OVERWRITTEN' 43CQ LDN 4 512 43MJ ... SMO FXPM2 43XB STO 4 FNUMBER [N/W TO BE PRINTED 44C2 LDN 4 0 [STOZ PRINT LINE MODIFIER 44LS ... SMO FXPM1 44WL LDX 3 XLINK 45B= EXIT 3 2 [EXIT TO PRINT IN BLOCK FORMAT 45NM ...TRPRI SMO FXPM1 4634 ... STO 3 REMAIN [REMAINDER OF WORDS IN BLOCK 46*G LDN 5 29 46T6 BXGE 2 5,RECLO [J IF RECORD>29 WORDS 47#Q LDN 5 2 47SB BXE 2 5,SPLIN [J IF RCD HEADER ONLY 488W ... SMO FXPM2 48KB ... LDX 3 AFRESBS 48^W ... LDN 5 2(3) 49BB ... ADX 5 1 49QW LDX 6 JLPMOD 4==G ADN 6 4 4=Q6 SBN 2 2 4?9Q MOVE 5 0(2) [MOVE RECORD INTO BUFFER 4?PB ADN 2 2 4#2Q ...SPLIN SMO FXPM2 4##6 ... LDX 3 AFRESBS 4#KG ... ADX 3 1 4#WW ... LDX 5 1(3) [N/W IN RECORD 4*8= LDX 6 ACES 4*MW SRC 56 6 4B7G LDX 3 JLPMOD 4BM6 STO 5 2(3) 4C6Q STO 6 3(3) 4CD6 ... SMO FXPM2 4CPG ... LDX 3 AFRESBS 4D2W ... ADX 3 1 4D#= ... LDX 5 0(3) 4DKL LDX 3 JLPMOD 4F5= STO 3 JPMOD 4FJW ... CALL 7 (JDECN) [CONVERT TO DECIMAL 4G4G LDX 5 1 4GJ6 LDX 3 JLPMOD 4H3Q SBN 3 1 4HHB STO 3 JPMOD 4J32 ... CALL 7 (JDECN) [CONVERT TO DECIMAL 4JGL ADX 1 2 4JS2 ... CALL 7 (JPRINT1) [PRINT LINE 4K5B ... SMO FXPM1 4KBQ ... LDX 3 XLINK 4KN6 ... EXIT 3 0 4K^G RECLO SBN 2 28 [SUBTRACT 28 WORDS 4LB2 ... SMO FXPM2 4LQG ... LDX 3 AFRESBS 4M72 ... LDN 5 2(3) 4MHG ... ADX 5 1 4MY2 LDX 6 JLPMOD 4NCL ADN 6 4 4NX= MOVE 5 26 [MOVE 26 WORDS INTO BUFFER 4PBW ... ADX 3 1 4PWG ... LDX 5 1(3) 4QB6 LDX 6 ACES 4QTQ SRC 56 6 4R*B LDX 3 JLPMOD 4RT2 STO 5 2(3) 4S#L STO 6 3(3) 4SL2 ... SMO FXPM2 4SXB ... LDX 3 AFRESBS 4T8Q ... ADX 3 1 4TG6 ... LDX 5 0(3) [N/W IN RECORD 4TRG LDX 3 JLPMOD 4W?6 STO 3 JPMOD 4WQQ ... CALL 7 (JDECN) [CONVERT TO DECIMAL 4X=B LDX 5 1 4XQ2 LDX 3 JLPMOD 4Y9L SBN 3 1 4YP= STO 3 JPMOD 4^8W ... CALL 7 (JDECN) [CONVERT TO DECIMAL 4^NG ADN 1 28 [INCREASE WORD MODIFIER 5286 ... CALL 7 (JPRINT1) [PRINT LINE 52MQ MOLIN LDN 0 27 537B BXL 2 0,PRLL [J TO PRINT REMAINDER OF RECORD 53M2 SBN 2 26 546L LDX 5 1 [INCREASE WORD MODIFIER 54L= LDX 3 JLPMOD 555W SBN 3 1 55KG STO 3 JPMOD 55XX ... CALL 7 (JDECN) [CONVERT TO DECIMAL 56=# ... SMO FXPM2 56JQ LDX 5 AFRESBS 574B ADX 5 1 57J2 LDX 6 JLPMOD 583L ADN 6 4 58H= MOVE 5 26 [MOVE 26 WORDS INTO BUFFER 592W ... CALL 7 (JPRINT1) [PRINT LINE 59GG ADN 1 26 [INCREASE WORD MODIFIER 5=26 BRN MOLIN [J TO PRINT NEXT LINE 5=FQ PRLL LDX 5 1 [CONVERT WORD MODIFIER 5=^B LDX 3 JLPMOD 5?F2 SBN 3 1 5?YL STO 3 JPMOD 5#?3 ... CALL 7 (JDECN) [CONVERT TO DECIMAL 5#KD ... SMO FXPM2 5#XW LDX 5 AFRESBS 5*CG ADX 5 1 5*X6 LDX 6 JLPMOD 5BBQ ADN 6 4 5BWB MOVE 5 0(2) [MOVE REMAINDER OF REC.INTO BUFFER 5CB2 ... CALL 7 (JPRINT1) [PRINT ONE LINE 5CTL ADX 1 2 [INCREASE WORD MODIFIER 5D*= ... SMO FXPM1 5DSW ... LDX 3 XLINK 5F#G ... EXIT 3 0 6=P2 # THIS ROUTINE GETS THE NEXT FILE/FCB BLOCK ON THE FILE CHAIN 6?8L # DEPENDENT UPON DIRECTION OF CHAINING AND TESTING FOR END OF CHAIN. 6?N= # THE POINTERS OF THIS BLOCK ARE THEN VALIDATED 6#7W # 6#MG # ENTRY X0=LINK 6*76 # XFCB=ADDR. OF PRESENT FILE/FCB BLOCK 6*BY ...# X1 = FXPM2 6*LQ # 6B6B # EXIT 0 - OK,XFCB = ADDR. OF NEXT FILE/FCB BLOCK 6BL2 # 1 - DOUBLE BREAK OR END OF CHAIN 6C5L # 6CK= # XGETFCB1 - USED FOR FIRST CALL ONLY. 6D4W # XGETFCB - USED FOR SUBSEQUENT CALLS. 6DJG # 6F46 XGETFCB1 6F?Y ... SMO FXPM1 6FHQ ... LDX 2 XBFILE 6FRJ ... SMO FXPM1 6G3B STOZ XBACK [CLEAR BACKWARD CHAINING IND. 6GH2 LDX 3 FPTR(2) 6H2L ...XG1 STO 2 JXFCB(1) [STORE BLOCK ADDR. 6HG= PMCORES 3,XG3 [J IF FORWARD PTR INVALID 6H^W XGETFCB 6J#? ... LDX 2 JXFCB(1) [LOAD CURRENT BLOCK ADDR. 6JLN ... SMO FXPM1 6J^6 LDX 4 XBACK 6KDQ BNZ 4 XG4 [J IF BACKWARD CHAINING 6KYB LDX 2 FPTR(2) [LOAD ADDR. OF NEXT BLOCK 6L88 ... SMO FXPM1 6LHX ... TXU 2 XBFILE 6LXL BCC XG5 [J IF BASE OF FILE CHAIN 6M7D ... PMCORES 2,XG3 [J IF FORWARD POINTER INVALID 6MC= LDX 3 BPTR(2) 6MWW LDX 4 FPTR(2) 6NBG ...XG2 TXU 3 JXFCB(1) [J IF BACKWARD PTR OF BLOCK 6NW6 BCS XG3 [UNEQUAL TO ADDR. OF PREVIOUS BLOCK 6P*Q PMCORES 4,XG3 [J IF FORWARD PTR INVALID 6PTB ... STO 2 JXFCB(1) [STORE BLOCK ADDR. 6Q*2 LDX 4 ATYPE(2) 6QSL SRL 4 12 6R#= ... TXU 4 JTFCB(1) 6RRW BCS XGETFCB [J IF NOT FILE/FCB BLOCK 6S?G EXIT 0 0 6SKX ...XG3 SMO FXPM1 6SY# ... LDX 4 XBACK 6T=Q BNZ 4 XG5 [J IF ALREAY BACKWARD CHAINING 6TQB LDN 4 1 6W28 ... SMO FXPM1 6W=2 STO 4 XBACK [SET BACKWARD CHAINING IND. 6WJC ... SMO FXPM1 6WWS ... LDX 2 XBFILE 6X9= LDX 3 BPTR(2) [LOAD FORWARD PTR 6XNW BRN XG1 6Y8G # BACKWARD CHAINING CODE 6YN6 XG4 LDX 2 BPTR(2) [LOAD ADDR. OF NEXT BLOCK 6YXY ... SMO FXPM1 6^?M ... TXU 2 XBFILE 6^MB BCC XG5 [J IF BASE OF FILE CHAIN 7272 LDX 3 FPTR(2) [LOAD BACKWORD PTR 72LL LDX 4 BPTR(2) [LOAD FORWARD PTR 736= BRN XG2 73KW XG5 EXIT 0 1 [CHAIN BASE OR DOUBLE CHAIN BREAK 745G # 74K6 ...PMFSBEND 75JB #END ^^^^ ...631706740012