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