! 10110 OFFSET% = FNLINK%(LINK.JB%) \ & !the function GETs the right cluster and finds the offset \ & BYTE.OFFSET% = OFFSET% \ & WORD.OFFSET% = OFFSET%/2% 10200 ! & !data from job blockette & ! 10210 FOR I% = 1% TO 7% \ & JB%(I%) = FNWORD%(WORD.OFFSET% + I%) \ & IF JB%(I%) <> 0% & THEN PRINT "Job number for job"; I%; "is"; JB%(I%) 10220 NEXT I% 10230 NEXT.LINK% = FNWORD%(WORD.OFFSET%) 10240 IF NEXT.LINK% = 0% THEN GOTO 10400 10250 OFFSET% = FNLINK%(NEXT.LINK%) 10260 GOTO 10100 10300 ! & !get correct cluster, block and offset for job link & ! 10310 OFFSET% = FNLINK%(LINK.JB%) \ & !the function GETs the right cluster and finds the offset \ & BYTE.OFFSET% = OFFSET% \ & WORD.OFFSET% = OFFSET%/2% 10400 ! & !data from cluster blockette & ! & !word meaning & ! & ! 0 reserved & ! 1 -1 & ! 2 number of blocks in a cluster & ! 3 number of blockettes in a block & ! 4 number of words in a blockette & ! 5 number of bytes in a word & ! 6 number of bits in a byte & ! 7 RAD50 for "BFD" & ! 10410 IF FNWORD%(7%) <> 3444% & THEN PRINT BELL$; "?Corrupt BFD." \ & GOTO 32767 10420 PRINT "Number of blocks in a cluster:"; FNWORD%(2%) 10430 PRINT "Number of blockettes in a block:"; FNWORD%(3%) 10440 PRINT "Number of words in a blockette:"; FNWORD%(4%) 10450 PRINT "Number of bytes in a word:"; FNWORD%(5%) 10450 PRINT "Number of bits in a byte:"; FNWORD%(6%) 10700 ! & !print a couple of blank lines & ! 10710 PRINT \ PRINT 10900 ! & !return & ! 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 18300 ! & !convert a link & !If the link indicates another cluster, the correct cluster is & !GETed by the function. & ! & !In a link word the bits have the following meaning: & ! & ! 0 - 8 byte within the block & ! 9 - 11 cluster (16 blocks) number & ! 12 - 15 block within the cluster & ! 18310 DEF* FNLINK%(LINK%) 18320 CLUSTER.NUMBER% = ( LINK% AND 3584% ) / 512% \ & BLOCK.NUMBER% = SWAP%( LINK% AND -4096% ) / 16% \ & BYTE.NUMBER% = LINK% AND 511% 18330 IF CLUSTER.NUMBER% <> CURRENT.CLUSTER% & THEN GET #1%, BLOCK CLUSTER.MAP%(CLUSTER.NUMBER%) \ & CURRENT.CLUSTER% = CLUSTER.NUMBER% 18380 FNLINK% = BLOCK.NUMBER% * 512% + BYTE.NUMBER% 18390 FNEND 18400 ! & !convert a number to time & ! 18410 DEF* FNTIME$(T%) 18420 IF T% = 0% & THEN T$ = "none" \ & GOTO 18480 18430 HOURS% = T% / 60% \ & MINUTES% = T% - HOURS% * 60% 18440 T$ = NUM1$(MINUTES%) \ & IF LEN(T$) = 1% & THEN T$ = "0" + T$ 18450 IF HOURS% > 0% & THEN T$ = NUM1$(HOURS%) + ":" + T$ 18480 FNTIME$ = T$ 18490 FNEND 32767 END BFD BAS[.050020]BFD .BAS[.050020]   X1혀4¿|HÞï þÿÿ[ú«4ÿ;ßïöëÿÿÝûÿIßkûÿ(Ÿ«ûÿ&ûÿ'( «á«ôÑk ß«Hûÿ&ú«PïŠú«`ï‚ßï®ëÿÿŸ« ûÿüÐ\žËàïR™rP �P2PPzPP{�PPP÷PP2P~ûÿ®ñ�ÿÿÿÿ\ÐÿŸ«ûÿªŸ«$ûÿ ûÿ�Ð\Ã\T‘D«á �0D«áó \ìÎ~ûÿŠŸ« ûÿhûÿi) «ô«á+Ô\ ^( «án ^( ïëÿÿn°«pÀ\Ð^«tú«xÿYÀ\^úË€ÿÐ\ßïÎêÿÿÝûÿ!ßkûÿŸ«ûÿþûÿÿÐVÕk<Ý\ÝûÿñžFË×ï˰<�Ë´ßˬûÿÇûÿÌÖ\À�VÑVkÆ”úˤÿ—1`þ@ÐïlüÿÿP ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789<@<¼SЬTЬ UÔQÕS><„PÑP�ÿùÐ�å¹P×S'{�@PRP�B¯ …×S{(PRP�B¯’…×S�@¯‰…¾@@Œ˜ ("@$$Ø#0$è#$8$%˜$%(%è$! @"FORRTLLIBRTL7-./% <=2&?'@O{[lP}M]\Nk`Kaðñòóôõö÷øùz^L~no|ÁÂÃÄÅÆÇÈÉÑÒÓÔÕÖרÙâãäåæçèéJàZ_my�‚ƒ„…†‡ˆ‰‘’“”•–—˜™¢£¤¥¦§¨©ÀjС???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ÿ\ \\\\ \\\\\\\\\\ \\\\\\\\\\\\\\\\ \\\\\\\\\[.<(+!&\\\\\\\\\]$*);^-/\\\\\\\\|,%_>?\\\\\\\\\`:#@'="\abcdefghi\\\\\\\jklmnopqr\\\\\\\~stuvwxyz\\\\\\\\\\\\\\\\\\\\\\{ABCDEFGHI\\\\\\}JKLMNOPQR\\\\\\\\STUVWXYZ\\\\\\0123456789\\\\\ÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏðÑÒÓÔÕÖרÙÚÛÜÝþÿ@ïgïgï†h<ïi|ï¿o<ïËm<ï4p<ï’p<ïêk|ïZn<ïÁl ïfr ï†rï“wïšx<ï¯x<ïµx<ï¦xïÞº<ïæºï…w@ï]¿@ï¿@ï–¿ïfÉïjÉïnÉïrÉïŠÉüïúÎüï�Ñüï]æïéï¦êïZêïæìüïîïòîïöîïïïeð@ïñ@ïÚð|ï>ñ ï†ñ|ï òüïÆò|ïÒýïÑv<ïHÿïï¢|ï€ ï‚ |ï® ï´ |ïxïz|ï ï |ïzï€ït ïf ïr ï’ ïÎ <ïò ï&ïüï^ ü@ïâ&ü@ïŽ'üï*/üïV,ï"?ïLhï:hïÒmïBmüïz|ï¼zï±{üïäxüï`yüï²~|ïf�ïN‚|@ï@ƒ|@ïÍ‚|@ï ƒüïôƒüï݃üïÆƒ<ïn�ïs�