EDITMFO867

(George Source)

Macros used: ACROSS, BXU, CLOSE, DOWN, EDERR, FILEMOVE, FNORM, FREECORE, MENDAREA, MHUNT, MHUNTW, NAMETOP, PARFNAME, PHOTO, REPALLER, SEG, SEGENTRY, SETUPCORE, TESTMOVE, TESTREP2, TESTRPN2, USEROPEN, VFREE

EDITMFO867.txt
22FL    #LIS  K0EDITMFO>K0ALLGEO>0  
22LS ...      SEG EDITMFO,867,COMM,,G571
22S2 ...[   
22^8 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
236B ...[     THIS EXCLUDES CODE UNDER #SKI G571
23?J ...[   
23DQ ...#OPT G571 = 0   
23KY ...#SKI G571&1 
23R6 ...# WITH UGUG EDIT M571 (IMPROVED EDIT AMORPHOUS FILE)
23YG    #   
24D6    #              ENTRY POINT TABLE
24XQ    #   
25CB     SEGENTRY K1EDITMFO,N1EDITMFO   
25X2     SEGENTRY K2EDITMFO,N2EDITMFO   
26BL    #   
26W=    TYPE  #65202020 
27*W          #55202020 
27TG    #   
28*6    #     THIS SEGMENT PERFORMS MISCELANEOUS FILE OPENING OPERATIONS FOR
28SQ    #     THE INTEGRAL EDITOR.  
29#B    #   
29S2    #     K1EDITMFO OPENS FILES FOR U INSRTUCTION,  
2=?L    #     K2EDITMFO OPENS FILES FOR M INSTRUCTION.  
2=R=    #   
2?=W    #     EXITS ARE -   
2?QG    #   
2#=6    #     K12EDITOR - ERROR IN DIRECTIVE (REPORTED) 
2#PQ    #     K8EDITOR  - BREAK-IN DURING USEROPEN (STACK PUSHED DOWN)  
2*9B    #     K3EDITOR  - OPEN WAS OK.  
2*P2    #   
2B8L    #   
2BN=    N1EDITMFO   
2C7W    #   
2CMG          LDX   6  IEON(2)  
2D76          LDX   7  IEFS(2)  
2DLQ          ADN   6  1
2F6B          STOZ  AWORK1(2)              [SET UP MARKERS  
2FL2          STO   6  AWORK4(2)
2G5L          STOZ  AWORK2(2)   
2GK=          SBN   7  #30  
2H4W          BNG   7  U1                  [J IF OK ELSE
2HJG          EDERR    EFSF                 ["TOO MANY EDITING FILES"   
2J46          ACROSS   EDITOR,14           [FINISH  
2JHQ    #   
2K3B    N2EDITMFO   
2KH2    #   
2L2L          LDX   7  IEON(2)  
2LG=          LDN   6  1
2L^W          STO   6  AWORK1(2)           [SET UP MARKERS  
2MFG          STO   6  AWORK4(2)
2M^6          STOZ  AWORK2(2)   
2NDQ          SBN   7  #13  
2NYB          BNG   7  U1                  [J IF OK 
2PD2          EDERR TMIF                   ['TOO MANY INPUT FILES'  
2PXL          ACROSS   EDITOR,14           [FINISH  
2QC=    U1    LDX   5  IEIM(2)             [GET PHOTO COUNT 
2QWW          TESTMOVE 5,U2                [J IF BLOCK STILL THERE  
2RBG          MHUNTW   3,FILE,FRB          [ELSE FIND BLOCK AGAIN   
2RW6          PHOTO    5                   [GET NEW PHOTO   
2S*Q          STO   3  IEIA(2)             [STORE ADDRESS   
2STB          STO   5  IEIM(2)             [STORE PHOTO 
2T*2    U2    LDX   3  IEIP(2)             [START ADDRESS OF STRING 
2TSL          NGN   5  1                   [SET CHARACTER COUNT 
2W#=          LDN   4  0                   [SET PARANTHESIS COUNT   
2WRW    U3    ADN   5  1                   [INCREMENT CHARACTER COUNT   
2X?G          STO   3  0
2XR6          SMO   IEIA(2)                [MODIFY BY BLOCK ADDRESS 
2Y=Q          LDCH  7  0(3)                [AND LOAD CHARACTER  
2YQB          BCHX  3  £                   [INCREMENT CHARACTER ADDRESS 
2^=2    #                                  [PERFORM ARITHMETIC TO DETERMINE 
2^PL          SLC   0  2                   [THE RELATIONSHIP BETWEEN
329=          SBX   0  IEIH(2)             [THIS CHARACTER AND THE END  
32NW          BPZ   0  U70                 [J IF PAST END   
338G          SBN   7  #30                 [TEST FOR *30
33N6          BNZ   7  U4                  [J IF NOT *30
347Q          ADN   4  1                   [INCREMENT COUNT 
34MB          BRN   U3                     [AND CARRY ON
3572    U4    SBN   7  1                   [TEST FOR *31
35LL          BNZ   7  U5                  [J IF NOT *31
366=          BZE   4  U7                  [J IF NOT *31 MATCHED
36KW          SBN   4  1                   [DECREMENT COUNT 
375G          BRN   U3                     [AND CARRY ON
37K6    U5    SBN   7  1                   [TEST FOR *32
384Q          BNZ   7  U6                  [J IF NOT *32
38JB          BZE   4  U7                  [J FOR *32 INSIDE PARENTHESES
3942          BRN   U3                     [ELSE CARRY ON   
39HL    U6    SBN   7  2                   [TEST FOR *34
3=3=          BNZ   7  U3                  [CARRY ON IF NOT *34 
3=GW          BNZ   4  U3                  [CARRY ON IF *34 INSIDE PARENTHESES  
3?2G    U7    BNZ   5  U10                 [J IF ARGUEMENT NOT NULL 
3?G6    #     SHOULDN'T EVER GET INTO THIS CODE 
3?^Q          LDX   5  AWORK1(1)           [J IF 'M' INSTRUCTION
3#FB          BNZ   5  U21  
3#^2          LDN   7  1                   [BUT NEVER MIND (NO ARGUEMENT)   
3*DL          LDX   5  IEFT(2)             [GET FILE TYPES  
3*Y=          ORS   7  5                   [SET B0 OF [IEFT] TO 
3BCW          SRC   5  1                   [INDICATE MOP OR J/S 
3BXG    U8    ADS   7  IEFS(2)             [PUSH DOWN STACK 
3CC6          STO   5  IEFT(2)             [STORE NEW VALUES
3CWQ    U9    STOZ  IEIP(2)                [ABANDON INSTRUCTION BLOCK   
3DBB          ACROSS   EDITOR,1            [FINISH  
3DW2    U70   BZE   5  U7                  [SOMETHING WRONG 
3F*L    U10   LDX   4  5                   [REMEMBER CHARACTER COUNT
3FT=          LDX   6  IEIP(2)             [GET STRING START ADDRESS
3G#W          SLC   3  2                   [BACKSPACE THE   
3GSG          SBN   3  1                   [POINTER 
3H#6          SRC   3  2
3HRQ          STO   3  IEIP(2)             [AND STORE IN IEIP   
3J?B          ADN   5  #13                 [ADJUST FOR HEADERS  
3JR2          PHOTO 7                      [SNAP
3K=L          SRL   5  2                   [CONVERT TO WORDS
3KQ=          SETUPCORE 5,1,FILE,FNAME     [GET BLOCK FOR USEROPEN  
3L9W          TESTMOVE 7,U11               [J NOT MOVED 
3LPG          MHUNTW   3,FILE,FRB   
3M96          PHOTO 7                      [NEW SNAP
3MNQ          STO   3  IEIA(2)             [STORE ADDRESS   
3N8B          STO   7  IEIM(2)             [AND PHOTO.  
3NN2    U11   STO   4  ANUM(1)             [STORE NUMBER OF CHARACTERS  
3P7L          LDN   7  APARA(1)            [START ADDRESS IN OUTPUT BLOCK   
3PM=          ADX   6  IEIA(2)             [ADD IN BLOCK MODIFIER   
3Q6W          LDX   3  4                   [NUMBER OF CHARACTERS
3QLG          MVCH  6  0(3)                [MOVE ACROSS 
3R66          LDN   7  1
3RKQ          STOZ  JPARNUM(1)  
3S5B          ADS   7  ATYPE(1)            [NUMBER ONR  
3SK2          STO   1  3                   [STORE BLOCK ADDRESS 
3T4L          PHOTO 6                      [PHOTO COUNT 
3T94
3T*G          PARFNAME  
3TFY          FNORM    64+3 
3TLB          TESTREP2 OK,U111,ADJUNCTS,U111
3TQS          BRN      U20  
3TX=    U111
3W3W          TESTMOVE 6,U17               [J IF NOT MOVED  
3WHG          MHUNT 3,FILE,FNAME           [ELSE FIND BLOCK 
3X36    U17   NAMETOP  3,CPB,CUNI          [RENAME IT IN CASE OF ERROR  
3XGQ          USEROPEN U12,READ,NOERREP,LEAVE [AND OPEN FILE
3Y2B          TESTRPN2 OK,U13               [J IF OPEN FAILED   
3YG2          MHUNTW   1,FILE,ENT           [FIND THE FILE/ENT  
3Y^L          LDX   7  ETM(1)              [BLOCK AND EXTRACT   
3^F=          STO   7  AWORK2(2)           [FILE TYPE AND SSTORE
3^YW          FREECORE 1                   [BECAUSE IT'S FINISHED WITH  
42DG          LDX   1  AWORK4(2)           [GET REQUIRED POSITION   
42Y6          FILEMOVE 0,0(1)              [SHUFFLE FILE/FPUSH BLOCK
43CQ          CALL  6  VFREE               [FREE ALL BLOCKS 
43XB          LDX   0  AWORK1(2)           [FIND OUT WHAT WE ARE DOING  
44C2          LDX   7  AWORK2(2)           [CHECK FILE TYPE 
44WL          BNZ   0  U14                 [J IF M INSTRUCTION  
45B=          BPZ   7  UTP                 [ERROR IF USED FILE AMORPHOUS
45TW          SLC   7  8                   [IS IT TP?   
46*G          BNG   7  UTP                 [ERROR IF SO.
46C9 ...#SKI G571&1$1   
46DY ...(   
46GN          SRC   7  8
46MW          BXU   7  IEOT(2),UTP         [ERROR IF TYPE DIFFERS FROM OLDFILE  
46QG ...)   
46T6          LDX   5  IEFT(2)             [FILE TYPE WORD  
47#Q          LDN   7  1                   [SHUFFLE THE EDITOR'S FILE   
47SB          SRL   5  1                   [STACK PUTTING A REAL FILE   
48#2          BRN   U8                     [ON THE TOP AND EXIT TO K1EDITOR 
48RL    U12   CALL  6  VFREE               [BREAK-IN; FREE BLOCKS   
49?=          STOZ  IEIP(2)                [ABANDON INPUT RECORD
49QW    U120  ACROSS   EDITOR,8            [FINISH  
4==G    VFREE SBX   6  1                   [RELATIVISE LINK 
4=Q6          VFREE    CPB,CUNI            [FREE WHAT WAS THE FILE/FNAME BLOCK  
4?9Q          VFREE    FILE,FABSNB         [FREE ANY FABSNB LIETING AROUND  
4?FJ          VFREE    FILE,ADJUNCTS
4?PB          LDX   1  FX1                 [RESET X1
4#92          ADS   1  6                   [DATUMISE LINK   
4#NL          EXIT  6  0                   [AND EXIT
4*8=    U13   LDX   1  AWORK1(2)           [ERROR SO GET
4*MW          SMO      FX1                 [TYPE OF INSTRUCTION 
4B7G ...      LDX   7  TYPE(1)             [WE ARE DOING
4BM6          MHUNTW   3,CLB                [FIND THE LINE BUFFER BLOCK 
4C6Q          STO   7  CLBFIR(3)           [AND OVERWRITE THE INSTRUCTION   
4CLB          MHUNT 3,CPB,CUNI             [WITH U/M. FIND THE CPB/CUNI 
4D62          LDN   7  1                   [AND SET THE PARAMETER   
4DKL          STO   7  JPARNUM(3)          [NUMBER TO ONE   
4F5=          REPALLER  
4FJW    U18   CALL  6  VFREE               [FREE BLOCKS 
4G4G          ACROSS   EDITOR,12           [FINISH  
4GJ6    U14   MHUNT    3,EDIT,FRB          [GET FRB FROM PREVIOUS FILE  
4H3Q          BNG   3  U140 
4HHB          FREECORE 3                   [AND FREE IT 
4J32    U140  LDX   6  IEOC(2)             [SAVE IEOC   
4JGL          LDCT  5  4
4K2=          ORS   5  IESW(2)             [CLEAR EOF   
4KFW          ERS   5  IESW(2)  
4K^G          STOZ     IEOA(2)             [FORCE VIRGIN READ   
4LF6          DOWN     EDITPT,10           [READ FIRST RECORD   
4LYQ          BRN      U15                 [J IF BREAK-IN   
4MDB          LDX   3  ACOM3(2) 
4MY2          BZE   3  U80                 [J IF READ OK
4NCL          EDERR    IPMT                ["INPUT FILE EMPTY"  
4NX=    U15   LDX   1  AWORK4(2)
4PBW          FILEMOVE  0(1),0             [GET ON TOP  
4PWG          CLOSE                        [AND CLOSE   
4QB6          LDX   3  IEOA(2)  
4QTQ          LDX   5  IEOM(2)  
4R*B          TESTMOVE 5,U141   
4RT2          MHUNTW   3,EDIT,FRB           [GET RID OF SPURIOUS
4S#L    U141  FREECORE 3                   [NULL BLOCK  
4SS=          STO   6  IEOC(2)             [RESET IEOC  
4T?W          DOWN     EDITPT,11           [RE-READ REQUIRED RECORD 
4TRG          LDCT  0  #2   
4W?6          ANDX  0  IESW(2)             [WAS THIS AFTER BREAK-IN?
4WQQ          BNZ   0  U142                [J IF SO 
4X=B          ACROSS   EDITOR,12
4XQ2    U142  ERS   0  IESW(2)             [CLEAR B7
4Y9L          BRN      U120 
4Y=P ...#SKI G571&1 
4Y?S ...(   
4Y#X ...U80   TXU   7  IEOT(2)             [ OK IF M MATCHES OLD
4YB2 ...      BCC      U81  
4YC5 ...      LDXC  0  IEOT(2)             [ OTHERWISE, FAIL
4YD8 ...      BCS      UMTD                [  UNLESS OLD WAS AMORPHOUS  
4YF? ...      BZE   7  U81                 [  AND MERGEFILE AMORPHOUS   
4YGB ...      ANDX  7  BITS22LS 
4YHF ...      TXU   0  7                   [  OR SAME AS NEWFILE
4YJJ ...      BCS      UMTD 
4YKM ...U81 
4YLQ ...)   
4YMT ...#SKI G571&1$1   
4YP=    U80   BXU   7  IEOT(2),UMTD        [J IF OLDFILE TYPE DIFFERS   
4^8W          LDCT  7  #60  
4^NG          STO   6  IEOC(2)             [SAVE IEOC   
5286          ANDX  7  IESW(2)             [DO W-CHECK  
52MQ          SLL   7  3
537B          BPZ   7  U82                 [W NOT BEING USED
53M2          SLL   7  1
546L          BNG   7  U82                 [W USED BUT ALREADY LISTED   
54L=          DOWN  EDWRITE,10             [SETS UP AND O/PS REC LISTING
555W    U82   LDN   7  1                   [M INSTRUCTION SO
55KG          ADS   7  IEON(2)             [INPUT FILE  
5656          LDX   5  IEON(2)             [TYPE STACK  
56JQ          SBN   5  1                   [DOWN THE POINTERS   
574B          STO   5  3                   [THIS ALLOWS US TO   
57J2          SLL   3  1                   [REMEMBER WHERE WE   
583L          ADN   3  IEOR-2(2)           [FILE. A MOVE INSTRUCTION
58H=    U16   LDX   6  0(3)                [CANNOT BE USED HERE 
592W          LDX   7  1(3)                [(WORK IT OUT)   
59GG          STO   6  2(3)                [ONCE THAT IS DONE   
5=26          STO   7  3(3)                [ALL THAT IS LEFT
5=FQ          SBN   3  2                   [IS TO CLEAR THE 
5=^B          BCT   5  U16                 [RECORD AND CHARACTER
5?F2          STOZ  IEOR(2)                [COUNTERS FOR THE FILE WE
5?YL          STOZ  IEOC(2)                [HAVE JUST OPENED.   
5#D=          STOZ  IEOY(2)                [CLEAR 'LAST TIME. POINTERS. 
5#XW          STOZ  IEOY+1(2)   
5*CG          STOZ     IEOZ(2)             [HAVE TO FIDDLE AROUND A 
5*X6          STOZ     IEOZ+1(2)           [BIT IN CASE USER TRIES  
5BBQ          STOZ     IENO(2)             [M SIMULATES O#  
5BWB          LDX   6  IENR(2)             [TO FORGET THE M INSTRUCTION 
5CB2          STO   6  IENY(2)  
5CTL          STO   6  IENZ(2)  
5D*=          LDX   6  IENC(2)  
5DSW          STO   6  IENY+1(2)
5F#G          STO   6  IENZ+1(2)
5FS6          ACROSS   EDITOR,3 
5G?Q    U20   TESTRPN2 NOFILE,U21   
5GRB          MHUNT    3,FILE,FNAME        [NON-EXISTANT WORKFILE   
5H?2          NAMETOP  3,CPB,CUNI   
5HQL          BRN      U13  
5J==    U21   DOWN     EDITER,3 
5JPW          VFREE    FILE,FNAME           [FREE   
5K9G          VFREE    FILE,FABSNB         [BLOCKS  
5KP6          ACROSS   EDITOR,14           [AND FINISH  
5L8Q    UTP   EDERR    TPEF                [TP-LIKE EDITING FILES FORBIDDEN 
5LNB    UTQ   LDX   3  AWORK4(2)           [SHUFFLE FILE STACK  
5M82          FILEMOVE 0(3),0              [TO AS YOU WERE  
5MML          CLOSE                        [THE OFFENDING FILE  
5N7=          ACROSS   EDITOR,12           ['EXECUTION ERROR' IF NOT MOP
5NLW    UMTD  EDERR    MODT                [MERGING AN O/F OF DIFFERENT TYPE
5P6G          BRN      U15  
5PL6     MENDAREA 100,K100EDITMFO   
5Q5Q    #END
^^^^ ...62226477000200000000