. & ! 4010 FOR PROJ% = 1% TO 255% 4020 DCN.GFD%(PROJ%) = FNWORD%(256% + PROJ%) 4030 NEXT PROJ% 4040 FOR PROJ% = 1% TO 255% 4050 IF DCN.GFD%(PROJ%) = 0% & THEN GOTO 7010 5000 ! & !open up the GFD with correct cluster size & !get the link for this account & ! 5010 CLOSE #1% 5020 OPEN DISK$ AS FILE #1%, RECORDSIZE 16% * 512% 5030 FIELD #1%, 16% * 512% AS BUFF$ 5040 GET #1%, BLOCK DCN.GFD%(PROJ%) \ & CURRENT.CLUSTER% = 0% 6000 ! & !go through this GFD & ! 6010 FOR PROG% = 0% TO 255% 6020 LINK.NB% = FNWORD%(512% + PROG%) 6030 IF LINK.NB% <> 0% & THEN GOSUB 10000 6040 NEXT PROG% 7000 ! & !end of PROJ% loop & ! 7010 NEXT PROJ% 9000 ! & !normal exit & ! 9010 CLOSE #1% 9990 GOTO 32767 10000 ! & ! & ! SUBROUTINE: print accounts & ! & ! & ! & !check for adjacency & ! 10010 IF PROJ% = 1% & AND PROG% = 0% & THEN WORKING.PROJ% = 0% \ & FIRST.PROG% = 1% \ & LAST.PROG% = 1% 10020 IF PROJ% = WORKING.PROJ% & AND PROG% = LAST.PROG% + 1% & THEN LAST.PROG% = PROG% \ & RETURN & !if it fits in the current range, don't print it yet 10100 ! & !this account is not in current range & !if there was only one or two, print it/them & ! 10110 IF (LAST.PROG% = FIRST.PROG%) & THEN PRINT #2%, USING "[###", WORKING.PROJ%; \ & PRINT #2%, ","; \ & PRINT #2%, USING "###]", FIRST.PROG% \ & LINES% = LINES% + 1% \ & GOTO 10300 10120 IF (LAST.PROG% - FIRST.PROG%) = 1% & THEN PRINT #2%, USING "[###", WORKING.PROJ%; \ & PRINT #2%, ","; \ & PRINT #2%, USING "###]", FIRST.PROG% \ & PRINT #2%, USING "[###", WORKING.PROJ%; \ & PRINT #2%, ","; \ & PRINT #2%, USING "###]", LAST.PROG% \ & LINES% = LINES% + 2% \ & GOTO 10300 10200 ! & !if several, print them on one line & ! 10210 PRINT #2%, USING "[###", WORKING.PROJ%; \ & PRINT #2%, ","; \ & PRINT #2%, USING "###]", FIRST.PROG%; \ & PRINT #2%, " - "; \ & PRINT #2%, USING "[###", WORKING.PROJ%; \ & PRINT #2%, ","; \ & PRINT #2%, USING "###]", LAST.PROG% \ & LINES% = LINES% + 1% 10300 ! & !count lines & ! 10310 IF LINES% >= 55% & THEN PRINT #2%, CHR$(12%) \ & PRINT #2%, FOR L% = 1% TO 4% \ & LINES% = 4% 10400 ! & !begin again & ! 10410 WORKING.PROJ% = PROJ% 10420 FIRST.PROG% = PROG% \ & LAST.PROG% = PROG% 10900 ! & !done & ! 10990 RETURN 18000 ! & ! & ! FUNCTIONS & ! & ! 18100 ! & !pull a word from the buffer & !for convenience, the words are numbered as words even though & !the buffer is character (and hence byte) oriented. Words are & !normally numbered starting at zero, but the characters in the & !buffer must be numbered starting at one, so another adjustment & !is needed. & ! 18110 DEF* FNWORD%(W%) 18120 FIRSTBYTE% = W% * 2% + 1% 18180 FNWORD% = ASCII( MID(BUFF$,FIRSTBYTE% ,1%) ) & + SWAP%( ASCII( MID(BUFF$,FIRSTBYTE%+1%,1%) ) ) 18190 FNEND 18200 ! & !pull a byte from the buffer & !Since the bytes are generally numbered starting at zero but & !the characters are numbered begining at one, an adjustment is & !needed. & ! 18210 DEF* FNBYTE%(B%) 18280 FNBYTE% = ASCII(MID(BUFF$,B%+1%,1%)) 18290 FNEND 32767 END ACCLSTBAS[.050020]ACCLST.BAS[.050020]   X14|H [4;Ik(&'( k ߫H&P` \RrPP2PPzPP{PPPPP2P~\$\\TD 0D \~ hi) +\ ^( n ^( np\^txY\^ˀ\!kVk<\F˰<˴ˬ\VVkˤ1`@lP ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789<@<SЬTЬ UQS>?\\\\\\\\\`:#@'="\abcdefghi\\\\\\\jklmnopqr\\\\\\\~stuvwxyz\\\\\\\\\\\\\\\\\\\\\\{ABCDEFGHI\\\\\\}JKLMNOPQR\\\\\\\\STUVWXYZ\\\\\\0123456789\\\\\  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~@ggh<i|o<m<4p<p<k|Zn<l fr rwx<x<x<x޺<w@]@@fjnr]Ze@@|> | |v<H|  |  |xz|  |zt f r   < &^ @&@'*/V,"?Lh:hmBmz|z{x`y~|fN|@@|@͂|@ ݃ƃ<ns