{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PMBRKCHS84)}} ====== PMBRKCHS84 ====== (George Source) **Macros used:** [[george:macro:CHAIN|CHAIN]], [[george:macro:FIXTRA|FIXTRA]], [[george:macro:JBUSY|JBUSY]], [[george:macro:PMESSAGE|PMESSAGE]], [[george:macro:PMOVE|PMOVE]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SWAP|SWAP]], [[george:macro:UP|UP]] 24D6 #OPT K0PMBRKCHS=0 24XQ #LIS K0PMBRKCHS>K0POST>K0ALLGEO 25CB # 25X2 ...#SEG PMBRKCHS84 [ KAREL KOSKUBA - DIAG 26BL 8HPMBRKCHS 26W= # 27*W # 27TG # ENTRY POINT TABLE 28*6 # 28SQ # 29#B ... SEGENTRY K1PMBRKCHS,XK1PMBRKCHS 29S2 ... SEGENTRY K2PMBRKCHS,XK2PMBRKCHS 2=?L ...# 2=R= ...# 2F6B FIXTRA FDTABLESTRE 2FL2 #REP 6 2G5L +0 2GK= ... FIXTRA CCTABLESTRE 2H4W #REP 6 2HJG +0 2KH2 FIXTRA JSWAPFDTRUE [ STORE FOR SWAP FD 2L2L +FDTABLESTRE-A1 2S*Q FIXTRA CRABMIN 2STB -1 [ LOWER EXTENT OF CRUPTION 2T*2 FIXTRA CRABMAX 2TSL -1 [ UPPER EXTENT OF CRUPTION 2TYW ... FIXTRA BINDEXCONT 2W56 ... +0 [ HOLDS ORIGINAL CONTENTS OF BINDEX 2W6H ... FIXTRA AFDTPDUMP 2W7Y ... +0 [ HOLDS ORIGINAL CONTENTS OF AFDTP 2W8? ... FIXTRA JSWAPDRST [ STORAGE FOR SWAP FILE DEVICE REC. 2W8L ...#REP K53-K50 2W8^ ... +0 2W9B ...XHEADLINE 32HCORE PRINT AROUND CHAIN BREAKS 2W*L ...MESS 43HPMBRKCHS:- POINTERS TO SWAP FILE NOT SET UP 2WFW ... 16HCRABS ABANDONED 2WL6 ...XLINK7 +0 2WQB ...XDIFF +0 [ USED IN PRINTER 2WWL ...XCOUNT +0 [ USED IN PRINTER 2X2W ...POINTER +0 [ USED IN PRINTER 2X76 ...XPASS +0 [ USED IN PRINTER 2X?G X250 +250 2XR6 X1024 +1024 2Y=Q TWO +2 2YF2 ...PMBRKEND +ZEND 2^=2 # 2^PL # 329= # SUBROUTINE PRINTER 32NW # 338G # 33N6 # TO PRINT A DEFINED AREA OF VARIABLE CORE 347Q # ENTRY X5 EXTENT OF PRINT EACH SIDE OF X6 34MB # X6 CENTER OF PRINT AREA 3572 # 35LL # EXIT ALL ACCS UNDEFINRD 366= # 36KW # 375G PRINTER 37K6 ... STO 5 XDIFF(1) 384Q ... STO 5 XCOUNT(1) 38JB ... STO 6 POINTER(1) 3942 ... STO 7 XLINK7(1) 39HL ADX 6 5 [ CALCULATE END OF PRINT AT5A 3=3= TXL 6 CORES [ IS IT IN CORE 3=GW BCS XINCORE [ J IF IN CORE 3?2G LDX 4 CORES [ RESET CENTRE OF PRINT AREA 3?G6 SBX 4 5 [ SUCH THAT END OF PRINT IS WITHIN C 3?^Q ... STO 4 POINTER(1) 3#FB XINCORE 3#^2 ... CALL 7 (JUP) 3*DL +65 3*Y= BRN SECOND 3BCW XFIRST 3BXG ... LDX 5 POINTER(1) [ LOAD POINTER TO MIDDLE OF AREA 3CC6 ... SBX 5 XDIFF(1) [ CALCULATE AREA FOR FIRST COLUMMN 3CWQ ... CALL 7 (JUP) 3DBB +4 3DW2 ...START CALL 7 (JDECN) [ CONVERT ADDRESS TO DECIMAL 3F*L ... CALL 7 (JUP) 3FT= +2 3G#W SMO 5 3GSG LDX 5 0 [ PICK UP CONTENRS OF CURRENR ADDRESS 3H#6 ... CALL 7 (JDECP) [ CONVERT TO DECIMAL (N.N) 3HRQ ... CALL 7 (JUP) 3J?B +2 3JR2 ... CALL 7 (JCHA) [ CONVERT TO CHARS 3K=L ... CALL 7 (JUP) 3KQ= +2 3L9W ... CALL 7 (JOCT) [ CONVERT TO OCTAL 3LPG ... CALL 7 (JUP) 3M96 +2 3MNQ LDX 4 JPMOD 3N8B ... LDX 1 FXINPRIN 3NN2 LDN 6 K1INPRIN 3P7L SMO 1 3PM= CALL 0 (6) [ CONVERT TO INSTRUCTION FORMAT 3P^M ... LDX 1 FXPM1 3Q#4 ... CALL 7 (JUP) [ SPACE TO END OF COLUMMNMNM 3QLG +16 3R66 ... LDX 7 XPASS(1) [ WHICH PASS 3RKQ ... BNZ 7 XFINISH 3S5B ... CALL 7 (JUP) [ SPACE FOR SECOND PASS 3SK2 +8 3T4L SECOND 3TJ= ... STO 6 XPASS(1) [ SET SECOND PASS SWITCH 3W3W ... LDX 5 POINTER(1) [ LOAD POINTER TO ADDRESS 3WHG BRN START [ J TO START OF PRINR ROUTINE 3X36 XFINISH 3XGQ ... CALL 7 (JPRINT1) [ PRINT LINE SET UP 3Y2B ... STOZ XPASS(1) 3YG2 ... LDN 7 1 [ LOAD 1 3Y^L ... SBS 7 XCOUNT(1) [ UPDATE COUNT 3^F= ... ADS 7 POINTER(1) [ AND POINTER 3^YW ... LDX 7 XCOUNT(1) [ IS COUNT EXHAUSTED 42DG ... BNZ 7 XFIRST [ J IF NOT TO LOOK AT NEXT ADDRESS 42Y6 ... LDX 7 XLINK7(1) 43CQ ... EXIT 7 0 5*X6 # 5BBQ # 5BWB # ENTRY POINT FROM PMDR 5CB2 # 5D*= # 5DSW # 5F#G XK1PMBRKCHS 5FS6 # 5G?Q # 5H?2 # 5HQL # 5HRC ... LDX 1 FXPM1 5HS8 ... ADS 1 PMBRKEND(1) [ DATUMISE 5HS^ ... ADS 1 JSWAPFDTRUE(1) [ DATUMISE 5HTQ ...# 5HW6 ...# CHECK THAT FINDFS HAS SET UP THE SWAP FILE DEVICE LIST 5HWG ...# POINTER IN JSWAPDR AND THAT PMDR HAS SET UP THE FILE 5HWW ...# DESCRIPTION BLOCK POINTER IN JAFDTP 5HX# ...# 5HY5 ... LDX 6 JSWAPDR 5HYC ... BZE 6 NOSWAP [J IF NOT YET SET UP 5HYK ... SMO FXPMDR 5HYR ... LDX 7 JAFDTP 5H^3 ... BNZ 7 SWAPOK [J IF BOTH POINTERS SET UP OK 5H^* ...NOSWAP 5H^M ... PMESSAGE MESS(1),15 [EXPLANATION 5J2D ... BRN (JPMSEG) [ QUIT THIS SEGMENT 5J39 ...# 5J3# ...# WAIT FOR SWAPFILE TO BECOME AVAILABLE 5J3C ...# 5J3G ...WAITSWAP 5J3K ...SWAPOK 5J3N ... JBUSY JSWAPDR,WAITSWAP 5J3R ...# 5J42 ...# SAVE SWAPFILE DEVICE RECORD 5J4R ...# 5J5J ... 5J6* ... LDN 7 JSWAPDRST(1) 5J76 ... MOVE 6 K53-K50 5J7X ...# 5J8N ...# SAVE THOSE PARTS OF VARIABLE CORE NEEDED FOR B/S TRANSFERS 5J9F ...# 5J9R ... SMO FXPMDR 5J=5 ... LDX 6 JAFDTP 5J=C ... SMO FXPM1 [AND SAVE ORIGINAL CONTENTS 5J=W ... STO 6 AFDTPDUMP [OF AFDTP 5J?* ... ADX 6 JSWAPFD 5J?S ... LDN 7 FDTABLESTRE(1) [ SAVE SWAP FILE DESCRIPTION 5J#K ... MOVE 6 6 5J#T ... SBX 7 JSWAPFD 5J*2 ... SMO FXPMDR 5J*7 ... STO 7 JAFDTP 5J*B ... LDX 6 BINDEX 5JB7 ... STO 6 BINDEXCONT(1) [ SAVE CONTENTS OF BINDEX 5JBY ... ADN 6 A1 [ DATUMISE GEORGE FD POINTER 5JCP ... LDN 7 CCTABLESTRE(1) [ SAVE GEORGE FILE DESCRIPTION 5JDG ... MOVE 6 6 5JF? ... SBN 7 A1 [ DATUMISE 5JG4 ... STO 7 BINDEX [ RESET BINDEX TO POINT AT SAVED FD 5JGT ...# 5JMH ...# READ DOWN PMCRABS AND ENTER THE SEGMENT 5JN# ...# 5JP5 ... PMOVE PMCRABS,PMBRKEND(1),1,2 5JPW # 5K9G # 5KP6 # SEGMENT PMCRABS RETURNS TO THIS POINT 5L8Q # WHEN IT HAS EXECUTED IT'S CODE 5LNB # 5M82 XK2PMBRKCHS 5MML ... LDX 1 FXPM1 5N7= ... LDX 2 CRABMIN(1) 5NLW ... BNG 2 (JPMSEG) [ J IF NO BROKEN CHAINS 5P6G ... PMOVE PMINPRIN,PMBRKEND(1) [ GET PMINPRIN INTO CORE 5PL6 ... LDX 1 FXPM1 5Q5Q ... PMESSAGE XHEADLINE(1),8 [ PRINT HEADING 5QKB ... CALL 7 (JPRINT1) 5R52 ... LDX 3 CRABMAX(1) 5RJL ... NGN 6 1 [ IF ANY CHAIN BREAKS THEN 5S4= ... SMO FXPMDR 5T3G STO 6 APMBRKCHS [ SET SWITCH FOR PMFS SEGMENT 5W2Q BPZ 3 PR1 [ TWO ADDRESSES TO SET UP 5WGB ... LDX 2 CRABMIN(1) 5X22 ... STO 2 CRABMAX(1) [ MAX = MIN ONE ADDRESS TO SET UP 5XFL PR1 5X^= ... CALL 7 (JPRINT1) [ THROW ALINE 5YDW ... LDX 5 CRABMAX(1) [ CALCULATE THE VALUE MAX - MIN 5YYG ... SBX 5 CRABMIN(1) 5^D6 ADN 5 200 [ MAX - MIN = 100+MAX-(MIN-100) 5^XQ ... TXL 5 X1024(1) [ IS IT < 1024 62CB BCC PR5 [ J IF NOT 62X2 ... DVS 4 TWO(1) [ CALCULATE XDIFF 63BL BZE 4 PR6 [ ROUND 63W= ADN 5 1 [ UP RESULT 64*W ...PR6 LDX 6 CRABMIN(1) [ X5 = NO OF LINES TO PRINT EACH SIDE 64TG ADX 6 5 [ X6 = CENTRE OF PRINTING 65*6 SBN 6 100 [ ADJUST BY OVERLAP 65SQ CALL 7 PRINTER [ PRINT 66#B ... BRN (JPMSEG) [ FINISH 66S2 ...PR5 LDX 5 X250(1) [ PRINT AREA AROUND MIN 67?L ... LDX 6 CRABMIN(1) 67R= CALL 7 PRINTER [ + 250 WORDS 68=W ... CALL 7 (JPRINT2) 68QG ... LDX 5 X250(1) [ PRINT AREA AROUND MAX +- 250 WORDS 69=6 ... LDX 6 CRABMAX(1) 69PQ CALL 7 PRINTER 6=9B ... BRN (JPMSEG) 6=P2 ...ZEND 6?8L #END ^^^^ ...455540160008