14 22FL #LIS K0FINDOC>K0COMMAND>K0ALLGEO>K0GREATGEO 15 22_= #SEG FINDOC8 [A C PUTMAN 16 2394 ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983. 7 23DW 8HFINDOC 11 23YG SEGENTRY K1FINDOC,XFINDOC1 4 24D6 # 21 24XQ # THIS SEGMENT IS CALLED BY A ROUTINE WHICH IT IS TRYING TO LOCATE 21 25CB # THE DOCUMENT REQUIRED. IT SEARCHES THROUGH THE SYSTEM FILE DOCUMEN 21 25X2 # TO SEE IF THERE IS A RECORD FOR THIS PARTICULAR DOCUMENT NAME. A 20 26BL # BLOCK IS PASSED BACK TO THE CALLING ROUTINE CONTAINING THE 21 26W= # INFORMATION AS FOLLOWS. IF DOCUMENT HAS BEEN LOADED A COPY OF THE 21 27*W # RECORD IS PASSED BACK. IF NO DOCUMENT HAS BEEN LOADED THE BLOCK 13 27TG # WITH A ZERO RECORD IS PASSED BACK. 4 28*6 # 9 28SQ WHDR 4HHDDR 8 29#B WD4 +4 8 29S2 WDOC +16 9 2=?L 12HMASTER 9 2=R= 12HSYSTEM 8 2?=W +1 8 2?QG +1 8 2#=6 +0 10 2#PQ 12HDOCUMENT 8 2*9B +1 8 2*P2 +1 8 2B8L +0 6 2BN= #SKI GENIE 9 2C7W MASK #77700000 19 2CMG # THIS SUBROUTINE OPENS THE DOCUMENT FILE IN THE GENERAL MODE 8 2D76 XOPN SBX 7 FX1 17 2DLQ GETCOREN 16,1 [CORE FOR NAME BLOCK 7 2F6B FINDCORE 3 10 2FL2 NAME 3,FILE,FABSNB 8 2G5L ADN 3 A1 9 2GK= LDN 2 WDOC(1) 17 2H4W MOVE 2 16 [INSERT NAME IN BLOCK 8 2HJG LDX 2 FX2 10 2J46 OPEN OK1,GENERAL 9 2JHQ TESTREP OPEN,OK 18 2K3B GEOERR 1,FNOPN [ERROR IF FILE NOT OPENED 8 2KH2 OK ADX 7 FX1 7 2L2L EXIT 7 0 5 2LG= OK1 UP 16 2L_W # THIS SUBROUTINE CHECKS TO SEE IF 2 NAMES ARE EQUAL 5 2MFG TEQUAL 8 2M_6 SBX 7 FX1 9 2NDQ NWD TXL 4 WD4(1) 18 2NYB BCS NCH [J IF ODD CHS. ONLY LEFT 17 2PD2 LDX 5 A1+3(2) [OTHERWISE CHECK WORD 9 2PXL TXU 5 APARA(3) 17 2QC= BCS NXT [J IF NAMES DIFFERENT 7 2QWW ADN 3 1 7 2RBG ADN 2 1 7 2RW6 SBN 4 3 17 2S*Q BCT 4 NWD [J IF MORE CHS. LEFT 18 2STB BRN XDONE [OTHERWISE NAMES EQUAL 9 2T*2 NCH LDCH 5 A1+3(2) 9 2TSL LDCH 0 APARA(3) 7 2W#= TXU 0 5 18 2WRW BCS NXT [J IF NAMES NOT THE SAME 7 2X?G BCHX 3 / 7 2XR6 BCHX 2 / 8 2Y=Q BCT 4 NCH 8 2YQB XDONE ADX 7 FX1 17 2_=2 EXIT 7 1 [EXIT +1 IF THE SAME 8 2_PL NXT ADX 7 FX1 18 329= EXIT 7 0 [EXIT 0 IF NAMES DIFFER 5 32NW XFINDOC1 20 338G # THIS ENTRY POINT LOCATES AN ENTRY IN THE DOCUMENT FILE WITH GIVEN 20 33N6 # DOC. NAME, AND PASSES IT BACK IN A BLOCK TYPE/SUBTYPE ADATA/ADOC 16 347Q CALL 7 XOPN [OPEN DOC. FILE 19 34MB MHUNT 3,CPB,CUNI [LOCATE BLOCK WITH REQD. NAME 15 3572 LDCH 4 APARA(3) [GET 1ST CH. 14 35LL SBN 4 #12 [COLON 21 366= BNZ 4 SINGLE [J IF NO COLON: SINGLE FORM OF NAME 7 36KW NXTRD PHOTO 5 6 375G READ 16 37K6 MHUNT 2,FILE,FRB [LOCATE RECORD 8 384Q LDX 4 A1(2) 19 38JB BZE 4 NOREC [J IF ZERO REC: END OF FILE 8 3942 TESTMOVE 5,OK2 10 39HL MHUNT 3,CPB,CUNI 9 3=3= OK2 LDX 4 A1+1(2) 9 3=GW TXU 4 WHDR(1) 8 3?2G BCC NXTR1 8 3?G6 SMO FX2 19 3?_Q STO 2 AWORK3 [PRESERVE S.A. RECORD BLOCK 20 3#FB SMO FX2 [PRESERVE ADDRESS OF PARAM. BL. 9 3#_2 STO 3 AWORK2 9 3*DL LDCH 4 A1+3(2) 8 3*Y= SBN 4 #12 21 3BCW BNZ 4 NXTR [J IF NAME IN REC. NOT IN FULL FORM 9 3BXG LDX 4 ANUM(3) 8 3CC6 ANDN 4 #7777 9 3CWQ TXU 4 A1+2(2) 21 3DBB BCS NXTR [J IF NAMES HAVE DIFFERENT NO. OF CHS 9 3DW2 CALL 7 TEQUAL 8 3F*L BRN NXTR 8 3FT= SMO FX2 17 3G#W LDX 2 AWORK3 [X2=PTR. TO DOC.BLK. 8 3GSG SMO FX2 18 3H#6 LDX 7 AWORK1 [LOAD ONLINE TYPE PERI 9 3HRQ ANDX 7 MASK(1) 8 3J?B LDX 1 A1(2) 7 3JR2 SMO 2 17 3K=L LDX 6 A1-2(1) [LOAD DOC. TYPE PERI 8 3KQ= SMO FX1 8 3L9W ANDX 6 MASK 7 3LPG TXU 7 6 19 3M96 BCS NXTR [BRANCH IF THE PERI'S UNEQUAL 8 3MNQ NDB SMO FX2 18 3N8B LDX 2 AWORK3 [ADDRESS OF REC. BLOCK 10 3NN2 NAME 2,ADATA,ADOC 8 3P7L NDA LDX 2 FX2 19 3PM= DELETE [DELETE REC. FD. FROM FILE 6 3Q6W ND CLOSE 10 3QLG MHUNT 3,FILE,FABSNB 7 3R66 FREECORE 3 7 3RKQ UPPLUS 1 18 3S5B NOREC NAME 2,ADATA,ADOC [PASS BACK ZERO RECORD 9 3SK2 LONGSET #60,XERR 8 3T4L LDX 2 FX2 8 3TJ= BRN ND 8 3W3W NXTR SMO FX2 9 3WHG LDX 2 AWORK3 8 3X36 SMO FX2 19 3XGQ LDX 3 AWORK2 [GET ADDRESS OF PARAM. BL. 7 3Y2B NXTR1 FREECORE 2 16 3YG2 BRN NXTRD [GET NEXT REC. 9 3Y_L XERR GEOERR 1,LONGDOC 5 3_F= SINGLE 7 3_YW PHOTO 5 6 42DG READ 10 42Y6 MHUNT 2,FILE,FRB 8 43CQ TESTMOVE 5,OK3 10 43XB MHUNT 3,CPB,CUNI 8 44C2 OK3 SMO FX2 20 44WL STO 3 AWORK2 [PRESERVE ADDRESS OF PARAM. BL. 8 45B= LDX 4 A1(2) 20 45TW BZE 4 NOREC [J IF ZERO RECORD: END OF FILE 8 46*G SMO FX2 9 46T6 STO 2 AWORK3 9 47#Q LDCH 4 A1+3(2) 8 47SB SBN 4 #12 17 48#2 BNZ 4 S1 [J IF RECORD SINGLE 8 48RL LDN 5 12 7 49?= NCH1 BCHX 2 / 9 49QW LDCH 0 A1+3(2) 17 4==G SBN 0 #36 [SCAN FOR STOP CH. 8 4=Q6 BZE 0 XFD 8 4?9Q BCT 5 NCH1 19 4?PB GEOERR 1,DNERROR [ERROR IN NAME IF NOT FOUND 9 4#92 XFD LDX 4 ANUM(3) 8 4#NL ANDN 4 #7777 7 4*8= NCHA BCHX 2 / 9 4*MW LDCH 5 A1+3(2) 9 4B7G LDCH 0 APARA(3) 7 4BM6 TXU 0 5 17 4C6Q BCS NXTS [J IF NAMES NOT EQUAL 7 4CLB BCHX 3 / 18 4D62 BCT 4 NCHA [J TO COMPARE NEXT CH. 7 4DKL BCHX 2 / 8 4F5= SMO FX2 17 4FJW LDX 3 AWORK3 [S.A. OF REC. BLOCK. 21 4G4G SBX 2 3 [X2 CONTAINS NO. OF WDS. TO POSN.IN B 16 4GJ6 SLC 2 2 [CONVERT TO CHS. 9 4H3Q TXU 2 A1+2(3) 21 4HHB BCS NXTS [J IF NOT EQUAL TO TOTAL NO. OF CHS. 8 4J32 NCHB SMO FX2 18 4JGL LDX 7 AWORK1 [LOAD ONLINE TYPE PERI 9 4K2= ANDX 7 MASK(1) 8 4KFW LDX 1 A1(3) 7 4K_G SMO 3 17 4LF6 LDX 6 A1-2(1) [LOAD DOC. TYPE PERI 8 4LYQ SMO FX1 8 4MDB ANDX 6 MASK 7 4MY2 TXU 7 6 19 4NCL BCS NXTS [BRANCH IF THE INCORRECT TYPE 10 4NX= NAME 3,ADATA,ADOC 8 4PBW BRN NDA 8 4PWG NXTS SMO FX2 9 4QB6 LDX 2 AWORK3 16 4QTQ FREECORE 2 [FREE REC. BLOCK 8 4R*B SMO FX2 18 4RT2 LDX 3 AWORK2 [GET ADD. OF PARAM. BL. 16 4S#L BRN SINGLE [GET NEXT RECORD 9 4SS= S1 LDX 4 ANUM(3) 8 4T?W ANDN 4 #7777 9 4TRG TXU 4 A1+2(2) 20 4W?6 BCS NXTS [J IF NOT THE SAME NO. OF CHS. 16 4WQQ CALL 7 TEQUAL [COMPARE NAMES 19 4X=B BRN NXTS [J IF UNEQUAL: GET NEXT REC. 18 4XQ2 SMO FX2 [OTHERWISE RECORD FOUND 9 4Y9L LDX 3 AWORK3 20 4YP= BRN NCHB [GO BACK AND CHECK PERI'S CORRECT 10 4_8W MENDAREA 20,K99FINDOC 4 4_NG #END 8 ____ ...35404557000100000000