{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PMENDITS867)}}
====== PMENDITS867 ======
(George Source)
**Macros used:** [[george:macro:NAME|NAME]], [[george:macro:OFF|OFF]], [[george:macro:PMBSADD|PMBSADD]], [[george:macro:PMESSAGE|PMESSAGE]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TABEND|TABEND]]
22FL #OPT K0PMENDITS=0
22^= #LIS K0PMENDITS>K0POST>K0ALLGEO
23DW #SEG PMENDITS85 [M.C.D. MANN
23NN ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23YG #
24D6 # THIS SEGMENT GIVES A LIST OF MENDITED SEGMENTS
24XQ # DURING THE CURRENT RUN OF GEORGE
25CB #
25X2 8HPMENDITS
26BL #
26W= # ENTRY POINT TABLE
27*W #
27TG SEGENTRY K1PMENDITS,XK1PMENDITS
28*6 #
28SQ XHEAD 40HMENDITS INCLUDED IN THIS RUN OF GEORGE
29#B XCOLHEAD 44H NAME GEN CHECKSUM
29S2 ... 10H BS/128
2=?L MPATCH 7HPATCHED
2=R= MFAIL 13HCHECKSUM FAIL
2?=W MNOKEYS 9HNOT KEYED
2?QG ...MNOTSUM 16HCHECKSUMMING OFF
2#=6 MZEROS 9HZERO KEYS
2#PQ MNONE 4HNONE
2*9B #
2*P2 XDMODS +DMODSA [TABLE OF BACKING STORE
2B8L +LMODSA
2BN= +DMODSB [ADDRESSES AND LENGTHS
2C7W +LMODSB
2CMG ... +DMODSC [OF THE SEVEN "MODS" SEGMENTS
2D76 +LMODSC
2DLQ +DMODSD
2F6B +LMODSD
2FL2 +DMODSE
2G5L +LMODSE
2GK= +DMODSF
2H4W +LMODSF
2H=4 ... +DMODSG
2HC= ... +LMODSG
2HJG TABEND #40000000 [END OF TABLE
2J46 #
2JHQ XEND +ZEND [END OF SEGMENT
2K3B MITNUM 0 [NO. OF MENDIT ENTRIES PER SEGMENT
2KH2 SEGPTR +XDMODS-2 [POINTER TO THE "MODS" TABLE
2L2L XLEN 6 [LENGTH OF A "MODS" MENDIT RECORD
2LG= PRINTED -1 [SET ZERO WHEN A MENDIT IS FOUND
2L^W #
2MFG # ROUTINE TO CONVERT THE BINARY NUMBER IN
2M^6 # BITS 0 TO 15 OF X5 TO OCTAL CHARACTERS
2NDQ #
2NYB # ENTRY X7 : LINK
2PD2 # X5 : BITS 0-15 CONTAIN THE BINARY NUMBER
2PXL # JPMOD : PRINT LINE CHARACTER MODIFIER
2QC= #
2QWW # EXIT X3 AND JPMOD UPDATED
2RBG # X0, X5 AND X6 ARE UNDEFINED
2RW6 #
2S*Q XOCT
2STB LDX 3 JPMOD [LOAD OUTPUT MODIFIER
2T*2 SRL 5 2 [LOAD NUMBER IN BITS 0-17
2TSL LDN 0 7 [CHARACTER COUNT
2W#= LDN 6 #23 [LOAD A "#" CHARACTER
2WRW XOCT1 DCH 6 0(3) [DEPOSIT CHARACTER IN BUFFER
2X?G BCHX 3 £
2XR6 LDN 6 0 [STOZ X6
2Y=Q SLC 56 3 [GET NEXT OCTAL CHARACTER
2YQB BCT 0 XOCT1 [J UNTIL ALL CHARACTERS DEPOSITED
2^=2 STO 3 JPMOD [UPDATE OUTPUT MODIFIER
2^PL EXIT 7 0
329= #
32NW # THIS IS THE ONE AND ONLY ENTRY POINT
338G #
33N6 XK1PMENDITS
347Q LDX 1 FXPM1
34MB ADS 1 XEND(1) [DATUMISE VARIOUS PRESET POINTERS
3572 ADS 1 SEGPTR(1)
35LL PMESSAGE XHEAD(1),10 [PRINT THE "MENDITS INCLUDED" HEADING
366= LDN 2 XCOLHEAD(1)
36KW LDX 3 JLPMOD
375G MOVE 2 14
37K6 CALL 7 (JPRINT2) [PRINT THE COLUMN HEADING
384Q CALL 7 (JPRINT1) [AND A BLANK LINE
38JB NEXTSEG
3942 LDX 3 SEGPTR(1) [LOAD THE SEGMENT TABLE POINTER
39HL ADN 3 2 [AND INCREASE IT BY 2
3=3= LDX 6 1(3)
3=GW DVS 5 XLEN(1)
3?2G STO 6 MITNUM(1) [STO MAX MENDITS FOR THIS SEG
3?G6 LDX 6 1(3) [LOAD LENGTH OF THE "MODS" SEGMENT
3?^Q LDXC 5 0(3) [LOAD B/S ADDRESS OF NEXT SEGMENT
3#FB BCS THATSALL [J IF NO MORE SEGMENTS
3#^2 BZE 5 NEXTSEG [J IF SEGMENT DOESN'T EXIST
3*DL STO 3 SEGPTR(1) [REMEMBER WHERE WE'VE REACHED
3*Y= PMBSADD GEO,0,6,XEND(1),5 [READ THE NEXT "MODS" SEGMENT
3BCW LDX 1 FXPM1
3BXG LDX 4 MITNUM(1) [SET COUNT OF MAXIMUM MENDITS
3CC6 LDX 2 XEND(1) [LOAD CORE ADDRESS OF THE SEGMENT
3CWQ NEXTRECORD
3DBB LDX 3 0(2) [PICK UP FIRST WORD OF RECORD
3DW2 BZE 3 TISEMPTY [J IF IT'S EMPTY
3F*L STOZ PRINTED(1) [REMEMBER AT LEAST ONE MENDIT FOUND
3FT= LDX 3 JLPMOD
3G#W ADN 3 1
3GSG MOVE 2 3 [STORE SUBFILE NAME & VERSION NUMBER
3H#6 CALL 7 (JUP) [UPDATE BUFFER ADDRESS
3HRQ 18
3J?B LDX 5 3(2) [LOAD THE GENERATION NUMBER
3JR2 ANDN 5 #7777 [FROM BITS 12 - 23 OF WORD 3
3K=L CALL 7 (JDECN) [CONVERT TO DECIMAL AND STORE
3KQ= CALL 7 (JUP)
3L9W 7
3LPG LDX 5 5(2) [LOAD THE BINARY CHECKSUM
3M96 CALL 7 (JOCT) [CONVERT AND STORE AS OCTAL
3MNQ CALL 7 (JUP)
3N8B 7
3NN2 LDX 5 4(2) [LOAD B/S ADDR (DIVIDED BY 128)
3P7L CALL 7 XOCT [CONVERT INTO OCTAL & STORE
3PM= CALL 7 (JUP)
3Q6W 7
3QLG LDX 5 3(2) [LOAD FLAG BITS WORD
3R66 BPZ 5 NOTPATCHED [J IF NOT PATCHED
3RKQ LDX 7 JPMOD
3S5B LDN 6 MPATCH(1) ["PATCHED"
3SK2 MVCH 6 7
3T4L CALL 7 (JUP)
3TJ= 11
3W3W NOTPATCHED
3WHG SLL 5 1 [LOOK AT BIT 1
3X36 BPZ 5 NOFAIL [J IF NO CHECKSUM FAIL
3XGQ LDX 7 JPMOD
3Y2B LDN 6 MFAIL(1) ["CHECKSUM FAIL"
3YG2 MVCH 6 13
3Y^L CALL 7 (JUP)
3^F= 18
3^YW SLL 5 2 [MUST BE KEYED AND CHECKSUMMED
42DG BRN NOTCHOFF [SO CHECK ONLY FOR ZERO KEYS
42Y6 NOFAIL
43CQ SLL 5 1 [LOOK AT BIT 2
43XB BPZ 5 NOTKEYOFF [J IF KEYING SWITCHED ON
44C2 LDX 7 JPMOD
44WL LDN 6 MNOKEYS(1) ["NOT KEYED"
45B= MVCH 6 9
45TW BRN PRINTLINE [IT CAN'T BE CHECKSUMMED
46*G NOTKEYOFF
46T6 SLL 5 1 [LOOK AT BIT 3
47#Q BPZ 5 NOTCHOFF [J IF CHECKSUMMING SWITCHED ON
47SB LDX 7 JPMOD
48#2 ... LDN 6 MNOTSUM(1) ["CHECKSUMMING OFF"
48RL ... MVCH 6 16
49?= CALL 7 (JUP)
49QW 18
4==G NOTCHOFF
4=Q6 SLL 5 1 [LOOK AT BIT 4
4?9Q BPZ 5 PRINTLINE [J IF NO ZERO KEYS
4?PB LDX 7 JPMOD
4#92 LDN 6 MZEROS(1) ["ZERO KEYS"
4#NL MVCH 6 9
4*8= PRINTLINE
4*MW CALL 7 (JPRINT1) [PRINT THE LINE
4B7G TISEMPTY
4BM6 ADX 2 XLEN(1) [UPDATE "MODS" RECORD ADDRESS
4C6Q BCT 4 NEXTRECORD [REDUCE COUNT BY 1 AND PRINT
4CLB BRN NEXTSEG [READ THE NEXT "MODS" SEGMENT
4D62 THATSALL
4DKL LDX 7 PRINTED(1) [HAVE ANY MENDITS BEEN PRINTED?
4F5= BZE 7 SOME [J IF SO
4FJW PMESSAGE MNONE(1),1 [PRINT "NONE"
4G4G SOME
4GJ6 CALL 7 (JPRINT1) [PRINT A FINAL BLANK LINE
4H3Q BRN (JPMSEG) [AND RETURN TO PMDR
4HHB #
4J32 ZEND [CORE BUFFER FOR EACH "MODS" SEGMENT
4JGL #END
^^^^ ...044067310001