(George Source)
Macros used: BXE, BXGE, BXL, CHEKLFN2, CHNUMCOD, CLOSE, COMBRKIN, COMERR, COMERRX, DOWN, ENDCOM, FNORM, FREECORE, FSCON, FSHCODE, GEOERR, GSCAN, IDFOPEN, IDFWRITE, MASK, MENDAREA, MFREE, MFREECELL, MFREEW, MGETCELL, MHUNT, MNAME, MONOUT, MXB, NAMETOP, NEWMXB, OPEN, OUTBLOCN, OUTPARAM, PARALYSE, PARAPASS, READLEX, SEG, SEGENTRY, SETNCORE, SPARABEG, SPARANOT, TESTNAME, TESTREP, TESTREP2, TESTREPNOT, TRACE, USEROPEN
22FL #OPT K0CONCEPT=0 22^= #OPT K6CONCEPT=0 23DW #LIS K0CONCEPT>K0ALLGEO>K0GREATGEO>K0COMMAND 23YG SEG CONCEPT,,PHIL TURNER 24D6 # 24XQ SEGENTRY K1CONCEPT,X1CONCEPT 25CB SEGENTRY K2CONCEPT,X2CONCEPT 25X2 # 26BL # THIS SEGMENT DEALS WITH WITH THE CONCEPTUAL COMMAND 26W= # 27*W MASK #37777000 27TG #77770000 28*6 #37777777 28SQ XINCR #1000 29#B XPBLK +0 29S2 X65 +64 2=?L XSAVE +0 2=R= XREPL 4HREPL 2?=W MASK1 #00010000 2?QG ZJPARAM +JPARMIS 2#=6 ZJPARNAM +JPARNAM 2#PQ ZJPARGEO +JPARGEO 2*9B ZJSETP1 +APFERR 2*P2 ZJDELON +JDELON 2B8L ZJOURA +JOURA 2BN= ZHALRDEF +HALRDEF 2C7W # 2CMG PFOTNALE +FOTNALE 2D76 PJNLFNF +JNLFNF 2DLQ XDICT +10 2F6B 8HMASTER 2FL2 SPACE 4H 2G5L 12HLEXICON 2GK= +1 2H4W +1 2HJG 4HB1 2J46 NMODES +4 2JHQ XERNOUSER +ERNOUSER ['USER NAME NOT FOUND' 2JNY ... FSHCODE AORB 2JW6 ...SLANG 4HBBBB 2K3B # 2KH2 # 2L2L PARAM 2LG= SBX 5 FX1 2L^W SPARAPASS 2MFG MHUNT 3,CPB,CUNI 2M^6 ADX 5 FX1 2NDQ LDX 2 ANUM(3) 2NYB BNG 2 PAR1 [NO PARAMETER 2PD2 BZE 2 PAR1 [NULL PARAMETER 2PXL EXIT 5 1 2QC= PAR1 2QWW LDX 2 FX2 2RBG EXIT 5 0 [ERROR EXIT 2RW6 # LOCATE UNIT OR LINE 2S*Q PASS SBX 7 FX1 2STB MHUNT 3,CPB,CUNI 2T*2 CHNUMCOD ,3 2TSL TESTREP CHNUMERR,XEND1 2W#= ADX 7 FX1 2WRW MHUNT 3,CPB,CUNI 2X?G EXIT 7 0 2XR6 # 2Y=Q XGETCELL 2YQB SBX 7 FX1 2^=2 MGETCELL 2,3 2^PL ADX 7 FX1 329= EXIT 7 0 32NW XCHECK 338G SBX 7 FX1 [ROUTINE TO CHECK NAME. 33N6 MNAME 2,3 347Q ADX 7 FX1 34MB EXIT 7 0 3572 SUBWRITE 35LL SBX 6 FX1 366= IDFWRITE 36KW CLOSE 375G ADX 6 FX1 37K6 EXIT 6 0 384Q # 38JB # MAIN PART OF ANALYSING COMMAND. 3942 # 39HL X1CONCEPT 3=3= XPARAM 3=GW CALL 5 PARAM [CONCEPTUAL NAME PARAMETER- 3?2G BRN XCOM1 [ERROR NO CONCEPTUAL NAME PARAMETER 3?G6 LDCH 4 APARA(3) 3?^Q SBN 4 #41 3#FB BNG 4 XCOM5 [ERROR NAME DOES NOT BEGIN WITH CHAR. 3#^2 SBN 4 #73-#41 3*DL BPZ 4 XCOM5 3*Y= SRL 2 2 [X2=NO. OF CHARS. IN COMMAND. 3BCW SBN 2 4 3BXG BPZ 2 XCOM5 [ERROR NAME > 3 WDS. 3CC6 CALL 5 PARAM [FIND LINE NO. PARAMETER 3CWQ BRN RX1 [NULL OR NO PARAMETER 3DBB SRL 2 12 3DW2 BZE 2 RX2 [J IF SINGLE PAR.-NO OF LINES OR 3F*L SBN 2 3 [IDENTIFIERS 3FT= BZE 2 RX3 [J IF QUAL.PAR. - LOWEST IDENTIFIER 3G#W BRN XCOM5 [OR LINE NO (NO OF L/I) 3GSG RX3 FREECORE 3 3H#6 LDN 6 2 3HRQ PARALYSE ,,6 [SPLIT N(M) INTO CMULTI 3HWW ...#UNS ANSTOOMANY 3J22 ... TESTREP2 TOOMANY,TOMP,UNPAIR,RSW 3J56 ...#UNS ANSTOOMANY 3J8= ...#SKI 3J?B TESTREP UNPAIR,RSW 3JR2 PARAPASS [N INTO CUNI 3K=L CALL 7 PASS [TRANSFORM DECIMAL INTO BINARY 3KQ= LDX 4 ACOMMUNE1(2) [STORE N 3L9W BZE 4 XCOM3 3LPG BNG 4 XCOM3 3M96 LDX 0 4 3MNQ SBN 0 #7777 3N8B BZE 0 RXX1 3NN2 BNG 0 RXX1 3P7L BRN XCOM3 3PM= RXX1 3Q6W FREECORE 3 3QLG PARAPASS 3R66 MHUNT 3,CPB,CMULTI 3RKQ FREECORE 3 3S5B BRN RX4 3SK2 # 3T4L SRSW SBX 7 FX1 3TJ= SPARANOT 2 3W3W ADX 7 FX1 3WHG EXIT 7 0 3X36 # 3XGQ RX2 LDN 4 1 3Y2B RX4 CALL 7 PASS 3YG2 LDX 0 ACOMMUNE1(2) [NO OF LINES/IDENTIFIERS 3Y^L BZE 0 XCOM3 3^F= BNG 0 XCOM3 3^YW ADX 0 4 42DG SBN 0 #7777 42Y6 BPZ 0 RX9 43CQ RX10 ADN 0 #7777 43XB SBX 0 4 44C2 BRN RX5 44WL RX9 BZE 0 RX10 45B= CALL 7 SRSW 45TW BRN XCOM3 46*G RX1 LDN 4 1 46T6 LDN 0 1 47#Q RX5 SLL 0 12 47SB ORX 4 0 [IN AWORK4 B0-B11 NO OF L/I 48#2 STO 4 AWORK4(2) [B12-B23 LOWEST L/I NO 48RL FREECORE 3 49?= #SKI K6CONCEPT>199-199 49QW TRACE 4,NOCONLIN 4==G # 4=Q6 # 4?9Q LDN 4 1 4?PB LDCT 5 #120 [4H: 4#92 STOZ 6 4#NL SPARABEG 1,4,5,6 [FIND USERNAME 4*8= CHEKLFN2 NUSEN,NLF [CHECK WHETHER THE USERNAME EXISTS 4*MW [AND HAS THE LOCAL FILE NAME FORMAT 4B7G #SKI K6CONCEPT>199-199 4BM6 TRACE 2,USER 4C6Q BRN USNEX 4CLB NUSEN 4D62 STOZ CPREFIX(2) [STOZ THE LOCATIONS WHERE SHOULD 4DKL STOZ CPREFIX+1(2) [BE THE USERNAME IN CPA 4F5= STOZ CPREFIX+2(2) 4FJW #SKI K6CONCEPT>199-199 4G4G TRACE CPREFIX(2),NOUSER 4GJ6 BRN RZ2 4H3Q # 4HHB # AT THIS POINT THERE MUST AFTER CPA EXIST CPB/CUNI BLOCK WITH 4J32 # THE CONCEPTUAL NAME AND CPB/CUNI BLOCK WITH USERNAME OR ZEROIZED 4JGL # APARA WHEN USERNAME NULL OR MISSING 4K2= # AWORK4 CONTAINS THE CONVERTED NO. 4KFW # 4K^G # OPEN A DUMMY FILE NAMED AFTER CONCEPTUAL MPX UNDER 4LF6 # THE USER DIRECTORY.USER NAME STORE IN CPA 4LYQ USNEX 4MDB SETNCORE 3,3,FILE,ADICT [SET UP A BLOCK FOR THE USERNAME 4MY2 [EXISTENCE CHECK 4NCL LDX 4 ACES 4NX= STO 4 CPREFIX(2) [SPACEFILE FILE USERNAME AREA IN 4PBW STO 4 CPREFIX+1(2) [CPA 4PWG STO 4 CPREFIX+2(2) 4QB6 STO 4 A1(3) [SPACEFILE ADICT BLOCK 4QTQ STO 4 A1+1(3) 4R*B STO 4 A1+2(3) 4RT2 LDN 4 A1(3) 4S#L MHUNT 3,CPB,CUNI 4SS= LDX 5 ANUM(3) 4T?W ANDN 5 #7777 4TRG ADN 5 3 4W?6 SRL 5 2 [USERNAME INTO ADDICT BLOCK 4WQQ LDN 3 APARA(3) 4X=B SMO 5 4XQ2 MOVE 3 0 4Y9L LDN 4 CPREFIX(2) [USERNAME INTO CPA 4YP= SMO 5 4^8W MOVE 3 0 4^NG SETNCORE 10,3,FILE,FABSNB [SET UP THE FILE ABSOLUTE NAME BLOCK 5286 LDN 4 A1(3) 52MQ LDN 3 XDICT(1) 537B MOVE 3 10 [INSERT NAME OF DICTIONARY-LEXICON 53M2 OPEN XBREAK,READR 546L TESTREP OPEN,RDICT [OPEN THE LEXICON 54L= BRN XBREAK 555W RDICT MFREEW FILE,FABSNB [FREE THE BLOCK WITH LEXICON NAME 55KG READLEX 5656 TESTREP NOUSER,NOUSER [J IF THE USER NOT FOUND IN LEXICON 56JQ MFREEW FILE,ASELFLEX [FREE THE LEXICON ABSOLUTE NAME BLOCK 574B CLOSE 57J2 #SKI K6CONCEPT>199-199 583L GSCAN CPREFIX(2),USERNAME,3 58H= RZ2 MFREE CPB,CUNI [FREE USERNAME CUNI BLOCK 592W # USERNAME IS NOW IN CPA -CPEFIX,CPREFIX+1,CPREFIX+2 59GG # 5=26 # 5=5= ...#UNS IDFMARK8 5=8B ... IDFOPEN ZBRKINI 5=?G ...#UNS IDFMARK8 5=BL ...#SKI 5=FQ Z2 IDFOPEN 5=^B LDN 3 0 5?F2 XNA SMO FX2 5?YL STOZ ACOMMUNE1 5#D= CALL 7 XCHECK 5#XW SMO FX2 5*CG LDX 0 ACOMMUNE1 [TEST IF NAME EXISTS 5*X6 BNZ 0 XDEL [NAME ALREADY EXISTS 5BBQ BRN XGET 5BWB X2CONCEPT 5CB2 # SUBROUTINE TO MOVE NAME AND NO. OF NULL LINES INTO BASE 5CTL # BASE CELL. TO GET ENOUGH ZEROISED CELL TO ACCMODATE THE 5D*= # NULL LINES. 5DSW # 5F#G XGET 5FS6 #SKI K6CONCEPT>99-99 5G?Q ( 5GRB TRACE 3,CELLPOG 5H?2 TRACE 2,RECPOG 5HQL ) 5J== CALL 7 XGETCELL 5JPW LDX 4 BRECNO(2) [LOAD REC.NO FROM BASE CELL 5K9G SLL 4 9 5KP6 ADX 4 3 [AWORK2 WILL CONTAIN IN B0-B14 RECORD 5L8Q SMO FX2 [NO OF RECORD CONTAINIG A FREE CELL, 5LNB STO 4 AWORK2 [B15-B23 RELATIVE ADDR OF THE FREE 5M82 [CELL IN THE RECORD 5MML ADX 3 2 [ADD TO THE POINTER TO THE RECORD 5N7= LDX 4 ACES [CONTAINING A FREE CELL THE RELATIVE 5NLW STO 4 1(3) [ADDR.OF A FREE CELL IN THE RECORD 5P6G LDN 4 1(3) [SPACEFILE WORDS 1-3 OF THE 5PL6 LDN 5 2(3) [CONCEPTUAL CELL 5Q5Q MOVE 4 2 5QKB MHUNT 1,CPB,CUNI [BLOCK WITH CONCEPTUAL NAME 5R52 LDN 5 1(3) 5RJL LDN 4 APARA(1) 5S4= LDX 0 ANUM(1) 5SHW ADN 0 3 [MOVE THE CONCEPTUAL NAME FROM 5T3G SRL 0 2 [CPB/CUNI INTO WORDS 1-3 OF THE 5TH6 SMO 0 [CONCEPTUAL CELL 5W2Q MOVE 4 0 5WGB SMO FX2 [STORE THE SIZE OF THE 5X22 LDX 4 AWORK4 [CONCEPTUAL IN WORD 4 5XFL LDX 0 4 5X^= ANDN 0 #7777 5YDW SBN 0 1 [IF LOWEST IDE/LINE NO EQ 1,THAN 5YYG BNZ 0 XZ1 [NEUTRAL CONCEPTUAL 5^D6 LDN 0 1 [OTHERWISE MARKED DEFAULT IPB 5^XQ BRN XZ2 62CB XZ1 LDX 0 4 62X2 ANDN 0 #7777 63BL ORX 0 GSIGN 63W= XZ2 STO 0 6(3) [LOWEST IDE/LINE NO 64*W SRL 4 12 64TG STO 4 4(3) 65*6 # 65SQ # 66#B SBX 3 2 [SPLIT AGAIN THE POINTER TO THE 66S2 [CURRENT RECORD FROM THE POINTER TO 67?L ADN 3 CELLEN-1 [THE CELL.DEFINE IN CURRENT CELL 67R= CALL 7 XGETCELL [WHERE THE POINTER TO THE NEXT CELL 68=W ADX 3 2 [SHOULD BE PUT - CREATE SUBSIDIARY 68QG SMO FX2 [CELL. HUNT FOR USERNAME 69=6 LDX 0 CPREFIX 69PQ BZE 0 XNOUN [BRANCH IF NOT USERNAME 6=9B LDN 5 0(3) 6=P2 SMO FX2 [MOVE THE USERNAME FROM CPA 6?8L LDN 4 CPREFIX [INTO SUBSIDIARY CELL 6?N= MOVE 4 3 6#7W XNOUN SMO FX2 6#MG LDX 4 AWORK4 [LOAD NO.OF CONCEPT LINES 6*76 SRL 4 12 6*LQ # 6B6B # 6BL2 # 6C5L XPXA SBX 3 2 [CREATE ANOTHER SUBSIDIARY 6CK= ADN 3 CELLEN-1 6D4W CALL 7 XGETCELL 6DJG ADX 3 2 6F46 SBN 4 CELLEN-1 6FHQ BNG 4 XIT1 6G3B BNZ 4 XPXA 6GH2 XIT1 6H2L # 6HG= # 6H^W SMO FX2 6JFG LDX 0 CPREFIX [IS THEIE A USERNAME? 6J^6 BZE 0 XEND 6KDQ MHUNT 2,CPB,CUNI 6KYB NAMETOP 2,FILE,FNAME [CREATE A RANDOM ACCESS FILE UNDER 6KYJ ... FSHCODE AORB 6KYQ ...( 6KYY ... FNORM [ CONVERT TO /FABSNB SO THAT LANG. 6K^6 ... MHUNT 3,FILE,FNAME 6K^# ... NAMETOP 3,CPB,CUNI 6K^G ... MHUNT 3,FILE,FABSNB [ CODE MAY BE SET FOR EACH M/C .... 6K^N ... FSHCODE A,XFSHA1 6K^W ...( 6L24 ... LDX 0 ACES 6L2= ... STO 0 A1+9(3) [ SET LANGUAGE CODE SPACES FOR M/C A 6L2D ...XFSHA1 6L2L ...) 6L2S ... FSHCODE B,XFSHB1 6L32 ...( 6L38 ... LDX 0 SLANG(1) [ SET LANGUAGE CODE 'BBBB' FOR M/C B 6L3B ... STO 0 A1+9(3) 6L3J ...XFSHB1 6L3Q ...) 6L3Y ...) 6L4? ...#UNS FTS1 6L88 ... USEROPEN XBRK,WRITE,CREATE,FROZEN 6L#5 ...#SKI FTS1<1$1 6LD2 USEROPEN XBRK,WRITE,CREATE [CREATE A RANDOM ACCESS FILE UNDER 6LXL TESTREPNOT OK,RERR [USER'S DIRECTORY NAMED AFTER 6MC= LDN 4 100 [THE CONCEPTUAL AND CONTRACT IT TO 6MWW FSCON 4,RSSS [NULL SIZE 6NBG RSSS CLOSE 6NW6 BRN XEND 6P*Q # 6PTB # 6Q*2 XCOM1 6QSL LDX 5 ZJPARAM(1) [PARAMETER MISSING 6R#= LDX 7 ZJPARNAM(1) [SUBMESSAGE - NAME. 6RRW BRN XCOMERR1 6S?G XCOM3 6SR6 LDX 5 ZJOURA(1) [COUNT OUT OF RANGE. 6T=Q BRN XCOMMERR1 6TQB XCOM4 6W=2 LDX 5 ZJDELON(1) [CONCEPT/UNIT IS ONLINED. 6WPL BRN XCOMMERR 6X9= RSW CALL 7 SRSW 6XNW XCOM5 LDX 5 ZJSETP1(1) [EXPRESSION INVALID 6Y8G BRN XCOMMERR1 6YN6 XCOM6 6^7Q LDX 5 ZHALRDEF(1) [EXIST BUT CANNOT BE DETACHED 6^MB BRN XCOMMERR 7272 XCOMERR 72LL CALL 6 SUBWRITE 736= XCOMERR1 73KW COMERRX 5,7 [ERROR WITH SUBMESSAGE 745G XCOMMERR 74K6 CALL 6 SUBWRITE 754Q XCOMMERR1 75JB COMERRX 5 [ERROR WITH MESSAGE FROM CPB/CUNI 7642 # 76HL # 773= RERR LDX 5 PFOTNALE(1) [FILE UNDER THIS NAME ALREADY 77GW CLOSE 782G BRN XCOMMERR1 78G6 NLF LDX 7 PJNLFNF(1) [NOT LOCAL NAME 78^Q NGN NGN 6 1 79FB XERR COMERRX 7,6 79^2 XBREAK 7=DL GEOERR 1,NOBRKIN [NO BREAKIN POSSIBLE WHILE OPENING 7=Y= NOUSER [THE DICTIONARY 7?CW CLOSE [CLOSE THE LEXICON 7?XG LDX 4 XERNOUSER(1) ['USER NOT FOUND MESSAGE' 7#C6 XCOMR COMERRX 4 7#WQ XBRK COMBRKIN 7*6J ...TOMP COMERR JTOOMANY 7*BB # 7*W2 # 7B*L # 7BT= # THIS PART DEALS WITH THE CASE WHEN THERE IS A CONCEPTUAL AREADY 7C#W # WITH THE NAME OF THE CONCEPTUAL WE ARE TRYING TO SET UP. IF ANY OF 7CSG # THE LINES HAVE BEEN USE WE GO OFF AND UNSET THEM. IF NOT WE USE 7D#6 # THE CELLS ALREADY SETUP FOR OUR NEW CONCEPTUAL. 7DRQ # 7F?B MASKA #67777777 7FR2 XROUND 7G=L LDN 5 CELLEN-1 [ROUND UP NO OF L/I TO THE NEAREST 7GQ= BZE 4 XCX [MULTIPLE OF 7 7H9W ADN 4 CELLEN-2 7HPG DVS 3 5 7J96 LDX 3 4 7JNQ MPY 3 5 7K8B XCX LDX 3 4 7KN2 EXIT 7 0 7L7L # 7LM= XMXB 7M6W SBX 7 FX1 7MLG LDX 2 FX2 7N66 MXB 2 7NKQ ADX 7 FX1 7P5B EXIT 7 0 7PK2 XDEL [X3=PTR. TO CONCEPTUALS 7Q4L LDX 4 BRECNO(2) [LD. REC. NO OF CURRENT REC. 7QJ= SLL 4 9 7R3W ADX 4 3 7RHG ADX 3 2 [X3=PTR.(ABSOLUTE) TO CONCEPTUAL. 7S36 SMO FX2 7SGQ STO 4 AWORK2 [ST.PTR. TO NEW CONCEPT IN AWORK2 7T2B LDX 4 4(3) [SIZE OF CONCEPTUAL - OLD ONE 7TG2 BNG 4 XCOM4 [ERROR IF CONCEPTUAL ONLINE 7T^L SMO FX2 7WF= STO 4 AWORK1 7WYW SMO FX2 7XDG LDX 0 AWORK4 7XY6 LDX 4 0 7YCQ ANDN 4 #7777 [LOWEST IDE/LINE NO 7YXB SRL 0 12 [NO OF LINES/IDE 7^C2 SMO FX2 7^WL STO 0 AWORK4 82B= LDX 0 4 82TW SBN 0 1 83*G BZE 0 XZ5 83T6 ORX 4 GSIGN 84#Q XZ5 STO 4 6(3) 84SB LDX 5 5(3) 85#2 SMO FX2 85RL STO 5 AWORK3 [COUNT OF ATTACHED LINES 86?= LDX 5 7(3) [LOAD THE POINTER TO THE 1ST 86QW LDX 6 5 87=G BPZ 5 XKOZ [CELL IS IN THE SAME RECORD J ELSE 87Q6 [HUNT FOR ANOTHER RECORD 889Q # 88PB SMO FX1 8992 ANDX 5 MASK 89NL SRL 5 9 8=8= SMO FX2 8=MW STO 5 ACOMMUNE3 [THE ROUTINE FINDS THE NEW RECORD 8?7G CALL 7 XMXB [X2 POINTS TO THE BEGINNING 8?M6 # 8#6Q XKOZ LDEX 1 6 8#LB ANDN 1 #777 8*62 ADX 1 2 [X1-POINTER TO THE 1ST SUB.CELL 8*KL LDX 5 2 [STORE THE POINTER TO THE RECORD 8B5= LDX 2 FX2 [WHICH CONTAINS THE 1ST SUBSIDIARY 8BJW TESTNAME 3,0(1),CPREFIX(2) [COMPARE THE USERNAMES 8C4G BNZ 7 XKUN [IF THE SAME J 8CJ6 LDX 0 0(1) [IF THE USERNAME IN IDF EQUALS ZERO 8D3Q BZE 0 XKRAV 8DHB OUTBLOCN 8 [AS THE WARNING TO THE OPERATOR 8F32 MHUNT 2,CPB,CUNI [OUTPUT MESSAGE:CONCEPTUAL %A IS 8FGL LDX 4 ANUM(2) [ALREADY OWNED BY THE USER %B,CANCEL 8G2= ANDN 4 #7777 [THIS CONCEPTUAL AND REDEFINE IT FROM 8GFW OUTPARAM 4,APARA,CPB,CUNI [SCRATCH 8G^G MONOUT CONCRED 8HF6 ... BRN TCLND1 8HYQ XKRAV LDN 6 CPREFIX(2) 8JDB LDN 7 0(1) [MOVE USERNAME INTO IDF 8JY2 MOVE 6 3 8KCL MHUNT 2,CPB,CUNI 8KX= NAMETOP 2,FILE,FNAME [CREATE A RANDOM ACCESS FILE UNDER 8KXD ... FSHCODE AORB 8KXL ...( 8KXS ... FNORM [ CONVERT TO /FABSNB SO THAT LANG. 8KY2 ... MHUNT 3,FILE,FNAME 8KY8 ... NAMETOP 3,CPB,CUNI 8KYB ... MHUNT 3,FILE,FABSNB [ CODE MAY BE SET FOR EACH M/C..... 8KYJ ... FSHCODE A,XFSHA2 8KYQ ...( 8KYY ... LDX 0 ACES 8K^6 ... STO 0 A1+9(3) [ .. SPACES FOR M/C A 8K^# ...XFSHA2 8K^G ...) 8K^N ... FSHCODE B,XFSHB2 8K^W ...( 8L24 ... LDX 0 SLANG(1) 8L2= ... STO 0 A1+9(3) [ ... 'BBBB' FOR M/C B 8L2D ...XFSHB2 8L2L ...) 8L2S ...) 8L37 ...#UNS FTS1 8L74 ... USEROPEN XBRK,WRITE,CREATE,FROZEN 8L=^ ...#SKI FTS1<1$1 8LBW USEROPEN XBRK,WRITE,CREATE [CREATE A RANDOM ACCESS FILE UNDER 8LWG TESTREPNOT OK,RERR [USER'S DIRECTORY NAMED AFTER 8MB6 LDN 4 100 [THE CONCEPTUAL AND CONTRACT IT TO 8MTQ FSCON 4,RWWW [NULL SIZE 8N*B RWWW CLOSE 8NT2 XKUN SMO FX2 8P#L LDX 5 AWORK3 [IS ANY LINE ATTACHED? 8PS= BZE 5 XHUN 8Q?W DOWN DELCON,2 8QRG XHUN 8R?6 LDX 2 FX2 8RQQ LDX 4 AWORK1(2) [NO OF OLD LINES 8S=B BXE 4 AWORK4(2),XC [J. IF CTS.= 8SQ2 BXGE 4 AWORK4(2),XB [J. OLD > NEW 8T9L CALL 7 XROUND [CALL SUBROUTINE TO ROUND TO NEAREST 8TP= BXGE 3 AWORK4(2),XC [IS ENOUGH ROOM? X3=CELL-ROUND-UP 8W8W LDX 6 3 8WNG STO 6 AWORK1(2) [ST. CT. NO. LINES IN NEW. 8X86 ADN 6 7 8XMQ LDX 4 AWORK4(2) [LD. CT. OF NO. LINES IN NEW 8Y7B LDX 5 AWORK2(2) [LD. PTR. TO CONCEPTUAL NAME 8YM2 LDX 3 AWORK2(2) 8^6L ANDN 3 #777 [MASK OUT CELL PTR. 8^L= XBA SMO FX1 925W ANDX 5 MASK 92KG SRL 5 9 9356 SMO FX2 93JQ STO 5 ACOMMUNE3 [ST. REC.NO. 944B CALL 7 XMXB [HUNT REC.MAY BE THERE BUT NEAR END N 94J2 XBAA ADX 3 2 [X3 PTRS. TO CONCEPTUAL CELLS. 953L BZE 6 XBAB [J. IF THIS IS LAST CELL 95H= SBN 6 7 [DECREASE CT. BY 7 962W LDX 3 7(3) [LD. PTR. TO NEXT CELL IN LIST 96GG BPZ 3 XBBA [IN THIS REC. 9726 LDX 5 3 97FQ ANDN 3 #777 97^B BRN XBA [BRANCH BACK TO READ DOWN ANOTHER CEL 98F2 XBBA ANDN 3 #777 98YL BRN XBAA [BRANCH BACK IN THIS CELL. 99D= XBAB SMO FX2 99XW LDX 6 AWORK1 [LD. CT. OF NO. OF LINES USED 9=CG SBX 3 2 9=X6 ADN 3 7 [LD. PTR. 9?BQ XBABX CALL 7 XGETCELL [GET ANOTHER 9?WB ADN 6 7 9#B2 BXGE 6 4,XC [J. IF ENOUGH CELLS FOR ALL LINES 9#TL ADN 3 7 9**= BRN XBABX [J. BACK TO GET ANOTHER CELL 9*SW # 9B#G # THIS PART DEALS WITH THE CASE WHEN THE OLD CONCEPTUAL HAS MORE 9BS6 # LINES THAN THE NEW CONCEPTUAL. 9C?Q # 9CRB XB STO 4 AWORK1(2) [ST. NO.LINES IN OLD. 9D?2 LDX 4 AWORK4(2) [LD. NO.LINES IN NEW CONCEPTUAL. 9DQL CALL 7 XROUND [CALL ROUTINE TO ROUND-UP NEW 9F== BXE 3 AWORK1(2),XC [J IF ROUNDED NEW EQUALS OLD 9FPW LDX 7 AWORK1(2) [LD. NO. OF LINES IN OLD 9G9G BXL 7 3,XC [J IF OLD LESS THAN NEW ROUNDED UP 9GP6 ADN 3 5 9H8Q LDN 7 7 9HNB DVS 2 7 [DIVIDE NO OF NEW LINES AND X3 WILL 9J82 SMO FX2 [CONTAIN THE NO OF SUB.CELLS WHICH 9JML [ARE NECESSARY FOR THE NEW CONCEPTUAL 9K7= LDX 6 AWORK2 [LD.POINTER TO NEW CONCEPTUAL 9KLW ADN 3 1 [FOR MK 6 IS THE NO OF SUBSIDIARY 9L6G ADN 6 7 [POINTER TO THE END OF CONCEPTUAL CEL 9LL6 [AND REC.NO 9M5Q SMO FX2 9MKB STO 6 AWORK1 9N52 SBN 6 7 9NJL LDX 5 3 9P4= XDA 9PHW LDX 3 6 9Q3G LDX 1 FX1 9QH6 ANDX 6 MASK(1) 9R2Q SRL 6 9 9RGB SMO FX2 9S22 STO 6 ACOMMUNE3 9SFL CALL 7 XMXB 9S^= ANDN 3 #777 [MASK CELL PTR. 9TDW ADX 3 2 [X3= ABSOLUTE PTR. 9TYG LDXC 6 7(3) 9WD6 XDBA BZE 5 XD 9WXQ ADN 6 7 9XCB SMO FX2 9XX2 STO 6 AWORK1 [ST. NEXT PTR. 9YBL SBN 6 7 9YW= SBN 5 1 [DECREASE CT. OF NO. OF CELLS NEEDED. 9^*W BRN XDA 9^TG XREC SBX 0 FX1 [SUBROUTINE TO HUNT FOR REC./CELL PTR =2*6 SMO FX2 =2SQ STO 0 ACOMMUNE6 =3#B LDX 3 7 =3S2 SMO FX1 =4?L ANDX 7 MASK =4R= SRL 7 9 =5=W SMO FX2 =5QG STO 7 ACOMMUNE3 =6=6 CALL 7 XMXB =6PQ ANDN 3 #777 =79B SMO FX2 =7P2 LDX 0 ACOMMUNE6 =88L ADX 0 FX1 =8N= EXIT 0 0 =97W XD LDX 7 6 =9MG XDAA CALL 0 XREC ==76 SMO 2 ==LQ LDX 7 7(3) =?6B SMO 2 =?L2 STO 7 0(3) =#5L SMO FX2 =#K= LDX 7 AWORK1 [CALCULTE PTR. TO CELL BEFORE ONE TO =*4W CALL 0 XREC =*JG MFREECELL 2,3 [FREE CELL =B46 SMO 2 =BHQ LDX 7 0(3) =C3B BNZ 7 XDAA =CH2 XC SMO FX2 =D2L LDX 3 AWORK2 [LD. PTR. TO OLD CONCEPTUAL. =DG= LDX 5 3 =D^W SRL 5 9 =FFG SMO FX2 =F^6 STO 5 ACOMMUNE3 [ST. REC.NO. FOR MACRO. =GDQ NEWMXB 2 [HUNT FOR REC. =GYB ANDN 3 #777 =HD2 ADX 3 2 [X3=PTR. (ABSOLUTE) TO NEW/OLD CONCEP =HXL SMO FX2 =JC= LDX 5 AWORK4 [LD. CT. OF NO. OF LINES.TO BE IN NEW =JWW STO 5 4(3) [ST. CT. IN CONCEPT =KBG XEND CALL 6 SUBWRITE =KW6 MFREE CPB,CUNI =L*Q XEND1 ENDCOM =LCF ...[ =LF8 ...TCLND1 =LGX ... CLOSE =LJL ... BRN XEND1 =LL* ...[ =LN4 ...ZBRKINI =LPR ... COMBRKIN =LRG ...[ =LTB # =M*2 MENDAREA 30,K99CONCEPT =MSL # =N#= #END ^^^^ ...10633533000500000000