{{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