{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PATINF)}}
====== PATINF ======
(George Source)
**Macros used:** [[george:macro:MHUNT|MHUNT]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:UP|UP]]
22FL #SEG PATINF [G.OGSTON
22^= #OPT K0PATINF=0
23DW #LIS K0PATINF
23YG 8HPATINF
24D6 #
24XQ # THIS CHAPTER EXTRACTS THE PFE HEADER AND DEVICE START ADDRESSES
25CB # FOR THE CHAPTERS BEING PATCHED (THESE CHAPTERS HAVED BEEN
25X2 # MENDITED ONTO THE PROGRAM FILE BUT THEIR CHAPTAB ENTRIES HAVE
26BL # NOT BEEN UPDATED BY NEWCHENT)
26W= # THE GAP AREA IS MENDED AT MENDIT TIME TO INCLUDE, FOR THE CHAPTER
27*W # BEING MENDITED, THE FOLLOWING:-
27TG # ADDRESS CONTENTS
28*6 # ------- --------
28SQ # POINT CHAPTER
29#B # POINT+1 NAME AND
29S2 # POINT+2 VERSION NUMBER
2=?L # POINT+3 LENGTH(B1-B10), CHAPTER NUMBER(B11-B23)
2=R= # POINT+4 DEVICE START ADDRESS
2?=W #
2?QG # THE UNIVERSAL POINT IS THE ADDRESS OF THE NEXT FREE WORD IN
2#=6 # THE GAP AREA AND IS UPDATED AT THE END OF THE MEND. NGNUM IS
2#PQ # THE NUMBER OF CHAPTERS STORED IN THE GAP AREA
2*9B #
2*P2 #
2B8L SEGENTRY K1PATINF,QK1PATINF
2BN= SEGENTRY K2PATINF,QK2PATINF
2C7W #
2CMG #
2D76 #
2DLQ #DEF SAPFE=AWORK2 [POINTER TO EWDAS/APFE
2F6B #DEF PARANUM=AWORK3 [NUMBER PARAMERTRS IN COMMAND
2FL2 #DEF ANGC=0 [NUMBER OF CHAPTER DESCRIPTIONS
2G5L [IN GAP AREA
2GK= #
2H4W #
2HJG SPACE #20202020 [4 SPACES
2J46 WD2 #01000004 [WORD 2 OF PFE HEADER
2JHQ QK1PATINF
2K3B LDX 0 PARANUM(2)
2KH2 SMO SAPFE(2)
2L2L STO 0 APFEB1+1 [NUMBER OF OVERLAYS BEING EDITED
2LG= LDX 0 WD2(1) [SET UP
2L^W SMO SAPFE(2) [WORD2 OF
2MFG STO 0 APFEB1+2 [PFE HEADER
2M^6 LDX 0 NGNUM(1)
2NDQ BZE 0 XERR17 [ERROR IF NO STORED DESCRIPTIONS
2NYB STOZ ACOMMUNE1(2) [ZERO ERROR FLAG
2PD2 SMO SAPFE(2)
2PXL STOZ APFEB2 [ZERO NO. OF WORDS IN ERROR BLOCK
2QC= STOZ 7 [ZERO NO. OF PARAMETERS PROCESSED
2QWW BRN PFP [SKIP PARAPAS FOR 1ST PARAMETER
2RBG NXPRM PARAPASS [GET NEXT PARAMETER
2RW6 PFP MHUNT 3,CPB,CUNI
2S*Q LDX 0 ANUM(3) [TEST PARAMETER TYPE
2STB BZE 0 XERR3 [...NULL
2T*2 BNG 0 XERR3 [...NON-EXISTENT
2TSL SRL 0 12
2W#= BNZ 0 XERR3 [...WRONG TYPE (I.E. NOT SIMPLE)
2WRW LDX 1 FX1
2X?G LDX 5 NGNUM(1) [NUMBER OF STORED DESCRIPTIONS
2XR6 LDX 6 ANUM(3)
2Y=Q ANDN 6 #7777 [NUMBER OF CHARACTERS IN PARAMETER
2YQB ADN 6 3
2^=2 SRL 6 2 [NUMBER OF WORDS IN PARAMETER
2^PL STO 6 ACOMMUNE2(2)
329= LDX 6 NGNUM(1)
32NW SLL 6 2
338G ADX 6 NGNUM(1)
33N6 SBN 6 5
347Q ADX 1 6
34MB NXDS LDX 6 ACOMMUNE2(2)
3572 STOZ 4 [ZERO MODIFIER
35LL NXWD SMO 4
366= LDX 0 XGAP(1) [NEXT WORD OF CHAPTER NAME
36KW SMO 4
375G TXU 0 APARA(3) [COMPARE WITH NEXT WORD IN PARAMETER
37K6 BCS NTFND
384Q ADN 4 1 [UPDATE MODIFIER
38JB BCT 6 NXWD
3942 BRN PFND
39HL NTFND SBN 1 5 [UPDATE ADDRESS WITHIN GAP AREA
3=3= BCT 5 NXDS
3=GW BRN XERR18 [PARAMETER NOT FOUND
3?2G PFND LDX 0 ACOMMUNE1(2)
3?G6 BNZ 0 RNC
3?^Q LDX 3 SAPFE(2)
3#FB LDX 0 XGAP+3(1) [STORE PFE HEADER ENTRY
3#^2 SMO 7 [IN
3*DL STO 0 APFEB1+4(3) [EWDAS/APFE
3*Y= LDX 0 XGAP+4(1) [STORE DEVICE START ADDRESS
3BCW SMO 7 [IN
3BXG STO 0 APFEB4(3) [EWDAS/APFE
3CC6 RNC ADN 7 1
3CWQ TXU 7 PARANUM(2) [TEST IF ALL PARAMETERS PROCESSED
3DBB BCS NXPRM
3DW2 BRN RUP
3F*L RETUP STO 0 ACOMMUNE1(2) [ERROR FLAG
3FT= RUP UP [RETURN TO PATCH
3G#W XERR3 LDN 0 3
3GSG BRN RETUP
3H#6 XERR17
3HRQ LDN 0 17
3J?B BRN RETUP
3JR2 XERR18
3K=L LDN 0 18
3KQ= STO 0 ACOMMUNE1(2)
3L9W SMO SAPFE(2)
3LPG LDX 6 APFEB2
3M96 ADX 6 SAPFE(2)
3MNQ ADN 6 APFEB2
3N8B ADN 6 1 [ADDR OF NEXT FREE LOC IN ERROR BLOCK
3NN2 SMO FX1 [FILL
3P7L LDX 5 SPACE [NEXT
3PM= LDX 1 6 [THREE
3Q6W STO 5 0(1) [WORDS
3QLG STO 5 1(1) [WITH
3R66 STO 5 2(1) [SPACES
3RKQ LDN 5 APARA(3)
3S5B SMO ACOMMUNE2(2) [MOVE BAD CHAPTER
3SK2 MOVE 5 0 [INTO ERROR BLOCK
3T4L LDN 0 3
3TJ= SMO SAPFE(2)
3W3W ADS 0 APFEB2 [UPDATE POINTER TO NEXT FREE LOC
3WHG BRN RNC
3X36
3XGQ #
3Y2B #
3YG2 # THIS ENTRY POINT IS REACHED FROM THE PATCH ERROR HANDLING
3Y^L # CODE. THE PURPOSE OF THE FOLLOWING CODE IS TO EXTRACT
3^F= # THE NAMES OF ALL PFE OR PATCH CR CHAPTERS THAT ARE LINKED
3^YW # TO ACTIVITIES DURING THE EXECUTION OF A PATCH COMMAND
42DG #
42Y6 #
43CQ #
43XB #
44C2 QK2PATINF
44WL SMO SAPFE(2)
45B= STOZ APFEB2 [ZERO NO OF WORDS IN ERROR BLOCK
45TW SMO SAPFE(2)
46*G LDX 7 APFEB3 [NUMBER OF BAD CHAPTERS
46T6 SMO SAPFE(2)
47#Q LDN 3 APFEB3
47SB NBCHP ADN 3 1 [ADDRESS OF NEXT BAD CHAPTER
48#2 LDX 0 0(3) [BAD CHAPTER NUMBER
48RL LDX 1 FX1
49?= LDX 5 NGNUM(1) [NO OF STORED CHAPTER DESCRIPTIONS
49QW SBN 1 2
4==G NPFE ADN 1 5 [UPDATE POINTER
4=Q6 LDX 6 XGAP(1) [NEXT PFE ENTRY
4?9Q ANDN 6 #7777 [CHAPTER NUMBER
4?PB TXU 6 0 [CHECK IF THIS IS A BAD CHAPTER
4#92 BCC PBCF
4#NL BCT 5 NPFE
4*8= PBCF LDN 5 XGAP-3(1) [POINT TO CHAPTER NAME, VERSION NO.
4*MW SMO SAPFE(2)
4B7G LDX 6 APFEB2
4BM6 ADX 6 SAPFE(2)
4C6Q ADN 6 APFEB2
4CLB ADN 6 1 [START OF CHAPNAME TRANSFER ADDRESS
4D62 MOVE 5 3 [MOVE IN CHAPNAME , VERSION NUMBER
4DKL LDN 0 3
4F5= SMO SAPFE(2)
4FJW ADS 0 APFEB2 [UPDATE NO OF STORED WORDS
4G4G BCT 7 NBCHP
4GJ6 UP [UP TO PATCH
4H3Q NGNUM +ANGC
4HHB XGAP
4J32 POINT
4JGL #ALT ANGNUM = NGNUM [SET UNIVERSAL FOR MENDING
4K2= #ALT AFPOINT =POINT
4KFW #GAP 1023-0?
4K^G #END
^^^^ ...57567736001400000000