_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

T.BITS 1

FILE INFORMATION

FILENAME(S): T.BITS 1

FILE TYPE(S): PRG

FILE SIZE: 6.7K

FIRST SEEN: 2025-11-30 18:12:23

APPEARS ON: 1 disk(s)

FILE HASH

de0526db9a44d74e273dd78c83d7a197e8966463a34f6a610b753aed17a45896

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
LOADSTAR 51 S 1 T.BITS 1 PRG Sailor, Ganheden 25 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 00 80 5E 55 3A 5A 45 52  4F 0D 0D 20 20 20 20 20  |..^U:ZERO..     |
00000010: 20 20 20 20 C2 C9 D4 D3  3A 20 C2 C9 CE C1 D2 D9  |    ....: ......|
00000020: 20 D3 C5 C1 D2 C3 C8 0D  0D 20 20 20 20 20 20 20  | ........       |
00000030: 20 20 20 42 59 20 CD 41  52 54 59 20 CD 41 54 54  |   BY .ARTY .ATT|
00000040: 48 45 57 53 0D 0D 0D 0D  2A 2A 2A 2A 2A 2A 2A 2A  |HEWS....********|
00000050: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000060: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 0D 2A  |**************.*|
00000070: 20 20 20 CE CF D4 C5 3A  20 20 D4 48 49 53 20 4D  |   ....:  .HIS M|
00000080: 4F 4E 54 48 27 53 20 C2  C9 D4 D3 20 55 53 45 53  |ONTH'S .... USES|
00000090: 20 41 20 20 2A 0D 2A 20  20 20 20 20 20 52 4F 55  | A  *.*      ROU|
000000A0: 54 49 4E 45 20 42 59 20  CD 41 52 54 59 20 54 48  |TINE BY .ARTY TH|
000000B0: 41 54 20 57 41 53 20 20  20 20 20 2A 0D 2A 20 20  |AT WAS     *.*  |
000000C0: 50 55 42 4C 49 53 48 45  44 20 49 4E 20 54 48 45  |PUBLISHED IN THE|
000000D0: 20 C2 C9 D4 D3 20 46 45  41 54 55 52 45 20 4F 46  | .... FEATURE OF|
000000E0: 20 20 2A 0D 2A 20 20 20  20 CC CF C1 C4 D3 D4 C1  |  *.*    .......|
000000F0: D2 20 23 34 35 2E 20 20  D4 48 45 20 52 4F 55 54  |. #45.  .HE ROUT|
00000100: 49 4E 45 20 49 53 20 20  20 2A 0D 2A 20 49 4E 43  |INE IS   *.* INC|
00000110: 4C 55 44 45 44 20 49 4E  20 54 48 45 20 4F 42 4A  |LUDED IN THE OBJ|
00000120: 45 43 54 20 46 49 4C 45  20 4F 46 20 54 48 45 20  |ECT FILE OF THE |
00000130: 2A 0D 2A 20 20 20 22 D2  D5 CE 20 C9 D4 22 20 50  |*.*   "... .." P|
00000140: 52 4F 47 52 41 4D 20 4F  4E 20 54 48 49 53 20 44  |ROGRAM ON THIS D|
00000150: 49 53 4B 2C 20 20 20 2A  0D 2A 20 41 4C 54 48 4F  |ISK,   *.* ALTHO|
00000160: 55 47 48 20 49 54 20 49  53 20 4E 4F 54 20 44 4F  |UGH IT IS NOT DO|
00000170: 43 55 4D 45 4E 54 45 44  20 48 45 52 45 2E 2A 0D  |CUMENTED HERE.*.|
00000180: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000190: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000001A0: 2A 2A 2A 2A 2A 2A 0D 0D  0D 0D 20 20 20 20 C1 20  |******....    . |
000001B0: 22 C2 49 4E 41 52 59 20  D3 45 41 52 43 48 22 20  |".INARY .EARCH" |
000001C0: 57 4F 52 4B 53 20 42 59  0D 44 49 56 49 44 49 4E  |WORKS BY.DIVIDIN|
000001D0: 47 20 41 20 4C 49 53 54  20 49 4E 20 48 41 4C 46  |G A LIST IN HALF|
000001E0: 2C 20 44 4F 49 4E 47 20  41 0D 43 4F 4D 50 41 52  |, DOING A.COMPAR|
000001F0: 45 20 41 54 20 54 48 45  20 4D 49 44 44 4C 45 2C  |E AT THE MIDDLE,|
00000200: 20 41 4E 44 20 49 47 4E  4F 52 49 4E 47 0D 54 48  | AND IGNORING.TH|
00000210: 45 20 48 41 4C 46 20 57  48 49 43 48 20 44 4F 45  |E HALF WHICH DOE|
00000220: 53 20 4E 4F 54 20 43 4F  4E 54 41 49 4E 20 54 48  |S NOT CONTAIN TH|
00000230: 45 0D 44 45 53 49 52 45  44 20 49 54 45 4D 2E 20  |E.DESIRED ITEM. |
00000240: 20 D4 48 45 20 52 45 4D  41 49 4E 49 4E 47 20 4C  | .HE REMAINING L|
00000250: 49 53 54 20 49 53 0D 44  49 56 49 44 45 44 20 49  |IST IS.DIVIDED I|
00000260: 4E 20 48 41 4C 46 20 41  4E 44 20 54 48 45 20 50  |N HALF AND THE P|
00000270: 52 4F 43 45 53 53 20 49  53 0D 43 4F 4E 54 49 4E  |ROCESS IS.CONTIN|
00000280: 55 45 44 20 55 4E 54 49  4C 20 54 48 45 20 52 45  |UED UNTIL THE RE|
00000290: 4D 41 49 4E 49 4E 47 20  48 41 4C 46 0D 45 51 55  |MAINING HALF.EQU|
000002A0: 41 4C 53 20 5A 45 52 4F  20 49 54 45 4D 53 2C 20  |ALS ZERO ITEMS, |
000002B0: 4F 52 20 54 48 45 20 44  45 53 49 52 45 44 20 49  |OR THE DESIRED I|
000002C0: 54 45 4D 0D 49 53 20 46  4F 55 4E 44 2E 0D 0D 20  |TEM.IS FOUND... |
000002D0: 20 20 20 D4 4F 20 4C 4F  4F 4B 20 41 54 20 32 35  |   .O LOOK AT 25|
000002E0: 35 20 49 54 45 4D 53 20  52 45 51 55 49 52 45 53  |5 ITEMS REQUIRES|
000002F0: 20 39 0D 43 4F 4D 50 41  52 45 53 20 4D 41 58 49  | 9.COMPARES MAXI|
00000300: 4D 55 4D 2E 20 20 D4 48  45 20 4E 55 4D 42 45 52  |MUM.  .HE NUMBER|
00000310: 20 4F 46 0D 43 4F 4D 50  41 52 45 53 20 4D 55 53  | OF.COMPARES MUS|
00000320: 54 20 42 45 20 41 54 20  4C 45 41 53 54 20 45 51  |T BE AT LEAST EQ|
00000330: 55 41 4C 20 54 4F 20 54  48 45 0D 4E 45 58 54 20  |UAL TO THE.NEXT |
00000340: 48 49 47 48 45 52 20 50  4F 57 45 52 20 4F 46 20  |HIGHER POWER OF |
00000350: 54 57 4F 20 50 4C 55 53  20 4F 4E 45 2E 0D 39 30  |TWO PLUS ONE..90|
00000360: 30 20 49 54 45 4D 53 20  57 4F 55 4C 44 20 52 45  |0 ITEMS WOULD RE|
00000370: 51 55 49 52 45 20 31 31  20 43 4F 4D 50 41 52 45  |QUIRE 11 COMPARE|
00000380: 53 2E 0D 31 30 32 34 20  3D 20 32 5E 31 30 2C 20  |S..1024 = 2^10, |
00000390: 41 4E 44 20 50 4C 55 53  20 31 20 3D 20 31 31 2E  |AND PLUS 1 = 11.|
000003A0: 20 20 D4 48 45 0D 4C 4F  4E 47 45 52 20 54 48 45  |  .HE.LONGER THE|
000003B0: 20 4C 49 53 54 2C 20 54  48 45 20 47 52 45 41 54  | LIST, THE GREAT|
000003C0: 45 52 20 54 48 45 0D 53  41 56 49 4E 47 53 2E 20  |ER THE.SAVINGS. |
000003D0: D3 48 4F 52 54 20 4C 49  53 54 53 2C 20 33 30 20  |.HORT LISTS, 30 |
000003E0: 54 4F 20 34 30 20 49 54  45 4D 53 2C 0D 4D 41 59  |TO 40 ITEMS,.MAY|
000003F0: 20 50 52 4F 44 55 43 45  20 4E 4F 20 53 41 56 49  | PRODUCE NO SAVI|
00000400: 4E 47 53 20 41 54 20 41  4C 4C 2E 0D 20 20 20 20  |NGS AT ALL..    |
00000410: D4 4F 20 49 4E 56 4F 4B  45 20 54 48 45 20 52 4F  |.O INVOKE THE RO|
00000420: 55 54 49 4E 45 20 52 45  51 55 49 52 45 53 0D 4F  |UTINE REQUIRES.O|
00000430: 4E 4C 59 20 41 20 CA D3  D2 20 54 4F 20 C2 C9 CE  |NLY A ... TO ...|
00000440: D3 C3 C8 2E 20 20 C8 4F  57 45 56 45 52 2C 20 54  |....  .OWEVER, T|
00000450: 48 45 0D 52 4F 55 54 49  4E 45 20 52 45 51 55 49  |HE.ROUTINE REQUI|
00000460: 52 45 53 20 43 45 52 54  41 49 4E 20 44 41 54 41  |RES CERTAIN DATA|
00000470: 20 49 4E 20 4F 52 44 45  52 0D 54 4F 20 46 55 4E  | IN ORDER.TO FUN|
00000480: 43 54 49 4F 4E 2E 20 20  D4 48 45 20 46 4F 4C 4C  |CTION.  .HE FOLL|
00000490: 4F 57 49 4E 47 20 49 53  20 41 20 4C 49 53 54 0D  |OWING IS A LIST.|
000004A0: 4F 46 20 54 48 45 20 52  45 51 55 49 52 45 4D 45  |OF THE REQUIREME|
000004B0: 4E 54 53 2E 0D 0D 20 20  CE CC C9 CD 20 20 2E C2  |NTS...  ....  ..|
000004C0: D9 D4 C5 20 30 30 30 20  20 3B CE 55 4D 42 45 52  |... 000  ;.UMBER|
000004D0: 20 4F 46 0D 20 20 20 20  20 20 20 20 20 20 20 20  | OF.            |
000004E0: 20 20 20 20 20 20 20 3B  20 43 4F 4D 50 41 52 45  |       ; COMPARE|
000004F0: 53 20 32 5E 4E 2B 31 0D  20 20 CC C5 CE 20 2E C2  |S 2^N+1.  ... ..|
00000500: D9 D4 C5 20 30 30 30 20  20 20 20 3B CC 45 4E 47  |... 000    ;.ENG|
00000510: 54 48 20 4F 46 20 45 41  43 48 0D 20 20 20 20 20  |TH OF EACH.     |
00000520: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 3B 20  |              ; |
00000530: 54 41 42 4C 45 20 49 54  45 4D 0D 20 20 D4 C1 C2  |TABLE ITEM.  ...|
00000540: CC C9 CD 20 2E C2 D9 D4  C5 20 30 30 30 20 3B CE  |... ..... 000 ;.|
00000550: 55 4D 42 45 52 20 4F 46  20 49 54 45 4D 53 0D 20  |UMBER OF ITEMS. |
00000560: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000570: 20 20 3B 20 49 4E 20 54  41 42 4C 45 20 4D 49 4E  |  ; IN TABLE MIN|
00000580: 55 53 20 31 0D 20 20 D4  C1 C2 C1 D3 C5 20 2E C2  |US 1.  ...... ..|
00000590: D9 D4 C5 20 30 30 30 20  30 30 30 3B 20 C1 44 44  |... 000 000; .DD|
000005A0: 52 45 53 53 20 4F 46 0D  20 20 20 20 20 20 20 20  |RESS OF.        |
000005B0: 20 20 20 20 20 20 20 20  20 20 20 3B 20 46 49 52  |           ; FIR|
000005C0: 53 54 20 54 41 42 4C 45  20 49 54 45 4D 0D 20 20  |ST TABLE ITEM.  |
000005D0: D4 C1 D2 C7 C5 D4 20 2E  C2 D9 D4 C5 20 22 20 2E  |...... ..... " .|
000005E0: 2E 2E 20 22 3B 20 C6 49  45 4C 44 20 4F 46 0D 20  |.. "; .IELD OF. |
000005F0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000600: 20 20 3B 20 4C 45 4E 47  54 48 20 20 CC C5 CE 0D  |  ; LENGTH  ....|
00000610: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000620: 20 20 20 3B 20 43 4F 4E  54 41 49 4E 49 4E 47 20  |   ; CONTAINING |
00000630: 54 48 45 0D 20 20 20 20  20 20 20 20 20 20 20 20  |THE.            |
00000640: 20 20 20 20 20 20 20 3B  20 44 45 53 49 52 45 44  |       ; DESIRED|
00000650: 20 49 54 45 4D 0D 0D 20  20 D4 C1 C2 D4 CF D0 20  | ITEM..  ...... |
00000660: 2E C2 D9 D4 C5 20 30 30  30 20 3B D4 48 45 20 49  |..... 000 ;.HE I|
00000670: 54 45 4D 20 4E 55 4D 42  45 52 0D 20 20 20 20 20  |TEM NUMBER.     |
00000680: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 3B 20  |              ; |
00000690: 41 54 20 54 48 45 20 54  4F 50 20 4F 46 0D 20 20  |AT THE TOP OF.  |
000006A0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000006B0: 20 3B 20 54 48 45 20 43  55 52 52 45 4E 54 0D 20  | ; THE CURRENT. |
000006C0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000006D0: 20 20 3B 20 4C 49 53 54  20 53 45 47 4D 45 4E 54  |  ; LIST SEGMENT|
000006E0: 0D 20 20 D4 C1 C2 C2 CF  D4 20 2E C2 D9 D4 C5 20  |.  ...... ..... |
000006F0: 30 30 30 20 3B D4 48 45  20 49 54 45 4D 20 4E 55  |000 ;.HE ITEM NU|
00000700: 4D 42 45 52 0D 20 20 20  20 20 20 20 20 20 20 20  |MBER.           |
00000710: 20 20 20 20 20 20 20 20  3B 20 41 54 20 54 48 45  |        ; AT THE|
00000720: 20 42 4F 54 54 4F 4D 0D  20 20 20 20 20 20 20 20  | BOTTOM.        |
00000730: 20 20 20 20 20 20 20 20  20 20 20 3B 20 4F 46 20  |           ; OF |
00000740: 54 48 45 20 43 55 52 52  45 4E 54 0D 20 20 20 20  |THE CURRENT.    |
00000750: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3B  |               ;|
00000760: 20 4C 49 53 54 20 53 45  47 4D 45 4E 54 0D 20 20  | LIST SEGMENT.  |
00000770: D4 C1 C2 CD C9 C4 20 2E  C2 D9 D4 C5 20 30 30 30  |...... ..... 000|
00000780: 20 3B D4 48 45 20 49 54  45 4D 20 4E 55 4D 42 45  | ;.HE ITEM NUMBE|
00000790: 52 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |R.              |
000007A0: 20 20 20 20 20 3B 20 41  54 20 54 48 45 20 4D 49  |     ; AT THE MI|
000007B0: 44 44 4C 45 0D 20 20 20  20 20 20 20 20 20 20 20  |DDLE.           |
000007C0: 20 20 20 20 20 20 20 20  3B 20 4F 46 20 54 48 45  |        ; OF THE|
000007D0: 20 43 55 52 52 45 4E 54  0D 20 20 20 20 20 20 20  | CURRENT.       |
000007E0: 20 20 20 20 20 20 20 20  20 20 20 20 3B 20 4C 49  |            ; LI|
000007F0: 53 54 20 53 45 47 4D 45  4E 54 0D 0D 20 20 20 20  |ST SEGMENT..    |
00000800: D0 CC C5 C1 D3 C5 20 CE  CF D4 C5 3A 20 20 D4 48  |...... ....:  .H|
00000810: 45 20 43 4F 4E 54 45 4E  54 53 20 4F 46 20 5B C1  |E CONTENTS OF [.|
00000820: 5D 2C 0D 5B D8 5D 2C 20  41 4E 44 20 5B D9 5D 20  |],.[.], AND [.] |
00000830: 41 52 45 20 4E 4F 54 20  50 52 45 53 45 52 56 45  |ARE NOT PRESERVE|
00000840: 44 2E 20 20 C1 4C 53 4F  2C 0D 54 48 45 20 54 41  |D.  .LSO,.THE TA|
00000850: 42 4C 45 20 4D 55 53 54  20 42 45 20 49 4E 20 41  |BLE MUST BE IN A|
00000860: 53 43 45 4E 44 49 4E 47  0D 53 45 51 55 45 4E 43  |SCENDING.SEQUENC|
00000870: 45 2E 0D 0D 0D 0D 0D 20  20 20 20 D4 48 45 20 52  |E......    .HE R|
00000880: 4F 55 54 49 4E 45 20 42  45 47 49 4E 53 20 42 59  |OUTINE BEGINS BY|
00000890: 20 53 45 54 54 49 4E 47  20 54 48 45 0D CE C3 CF  | SETTING THE....|
000008A0: D5 CE D4 20 41 4E 44 20  54 48 45 20 D4 41 42 4C  |... AND THE .ABL|
000008B0: 45 20 C2 4F 54 54 4F 4D  20 D0 4F 49 4E 54 45 52  |E .OTTOM .OINTER|
000008C0: 0D 28 D4 C1 C2 C2 CF D4  29 20 54 4F 20 5A 45 52  |.(......) TO ZER|
000008D0: 4F 2C 20 41 4E 44 20 54  48 45 20 D4 41 42 4C 45  |O, AND THE .ABLE|
000008E0: 20 D4 4F 50 0D D0 4F 49  4E 54 45 52 20 28 D4 C1  | .OP..OINTER (..|
000008F0: C2 D4 CF D0 29 20 54 4F  20 54 48 45 20 4E 55 4D  |....) TO THE NUM|
00000900: 42 45 52 20 4F 46 0D 49  54 45 4D 53 20 49 4E 20  |BER OF.ITEMS IN |
00000910: 54 48 45 20 54 41 42 4C  45 2E 0D 0D 20 C2 C9 CE  |THE TABLE... ...|
00000920: D3 C3 C8 20 CC C4 C1 20  23 30 20 20 20 20 20 3B  |... ... #0     ;|
00000930: CC 4F 41 44 20 5A 45 52  4F 0D 20 20 20 20 20 20  |.OAD ZERO.      |
00000940: 20 20 D3 D4 C1 20 CE C3  CF D5 CE D4 20 3B 20 53  |  ... ...... ; S|
00000950: 54 4F 52 45 20 49 4E 20  43 4F 55 4E 54 0D 20 20  |TORE IN COUNT.  |
00000960: 20 20 20 20 20 20 D3 D4  C1 20 D4 C1 C2 C2 CF D4  |      ... ......|
00000970: 20 3B 20 53 54 4F 52 45  20 49 4E 20 C2 CF D4 0D  | ; STORE IN ....|
00000980: 20 20 20 20 20 20 20 20  CC C4 C1 20 D4 C1 C2 CC  |        ... ....|
00000990: C9 CD 20 3B CC 4F 41 44  20 4C 49 4D 49 54 20 4E  |.. ;.OAD LIMIT N|
000009A0: 55 4D 0D 20 20 20 20 20  20 20 20 D3 D4 C1 20 D4  |UM.        ... .|
000009B0: C1 C2 D4 CF D0 20 3B 20  53 54 4F 52 45 20 49 4E  |..... ; STORE IN|
000009C0: 20 D4 CF D0 0D 0D 0D 0D  0D 0D 0D 0D 0D 20 20 20  | ............   |
000009D0: 20 D3 55 42 54 52 41 43  54 20 54 48 45 20 54 41  | .UBTRACT THE TA|
000009E0: 42 4C 45 20 42 4F 54 54  4F 4D 20 50 4F 49 4E 54  |BLE BOTTOM POINT|
000009F0: 45 52 0D 46 52 4F 4D 20  54 48 45 20 54 41 42 4C  |ER.FROM THE TABL|
00000A00: 45 20 54 4F 50 20 50 4F  49 4E 54 45 52 20 41 4E  |E TOP POINTER AN|
00000A10: 44 20 44 49 56 49 44 45  0D 54 48 45 20 44 49 46  |D DIVIDE.THE DIF|
00000A20: 46 45 52 45 4E 43 45 20  42 59 20 54 57 4F 2E 20  |FERENCE BY TWO. |
00000A30: 20 C1 44 44 20 54 48 45  20 54 41 42 4C 45 0D 42  | .DD THE TABLE.B|
00000A40: 4F 54 54 4F 4D 20 50 4F  49 4E 54 45 52 20 54 4F  |OTTOM POINTER TO|
00000A50: 20 54 48 45 20 44 49 46  46 45 52 45 4E 43 45 20  | THE DIFFERENCE |
00000A60: 41 4E 44 0D 53 54 4F 52  45 20 49 4E 20 54 48 45  |AND.STORE IN THE|
00000A70: 20 54 41 42 4C 45 20 4D  49 44 44 4C 45 20 50 4F  | TABLE MIDDLE PO|
00000A80: 49 4E 54 45 52 2E 0D 0D  20 C2 C9 CE D3 C8 C1 20  |INTER... ...... |
00000A90: CC C4 C1 20 D4 C1 C2 D4  CF D0 20 3B CC 4F 41 44  |... ...... ;.OAD|
00000AA0: 20 D4 CF D0 20 4E 55 4D  42 45 52 0D 20 20 20 20  | ... NUMBER.    |
00000AB0: 20 20 20 20 D3 C5 C3 20  20 20 20 20 20 20 20 3B  |    ...        ;|
00000AC0: D0 52 45 50 41 52 45 20  46 4F 52 20 53 55 42 54  |.REPARE FOR SUBT|
00000AD0: 0D 20 20 20 20 20 20 20  20 D3 C2 C3 20 D4 C1 C2  |.        ... ...|
00000AE0: C2 CF D4 20 3B D3 55 42  54 52 41 43 54 20 42 4F  |... ;.UBTRACT BO|
00000AF0: 54 54 4F 4D 0D 20 20 20  20 20 20 20 20 CC D3 D2  |TTOM.        ...|
00000B00: 20 20 20 20 20 20 20 20  3B C4 49 56 49 44 45 20  |        ;.IVIDE |
00000B10: 42 59 20 54 57 4F 0D 20  20 20 20 20 20 20 20 C3  |BY TWO.        .|
00000B20: CC C3 20 20 20 20 20 20  20 20 3B D0 52 45 50 41  |..        ;.REPA|
00000B30: 52 45 20 46 4F 52 20 41  44 44 0D 20 20 20 20 20  |RE FOR ADD.     |
00000B40: 20 20 20 C1 C4 C3 20 D4  C1 C2 C2 CF D4 20 3B C1  |   ... ...... ;.|
00000B50: 44 44 20 54 4F 20 42 4F  54 54 4F 4D 0D 20 20 20  |DD TO BOTTOM.   |
00000B60: 20 20 20 20 20 D3 D4 C1  20 D4 C1 C2 CD C9 C4 20  |     ... ...... |
00000B70: 3B D3 54 4F 52 45 20 49  4E 20 4D 49 44 44 4C 45  |;.TORE IN MIDDLE|
00000B80: 0D 0D 0D 0D 0D 0D 20 20  20 20 D4 45 53 54 20 46  |......    .EST F|
00000B90: 4F 52 20 45 4E 44 20 57  49 54 48 4F 55 54 20 46  |OR END WITHOUT F|
00000BA0: 49 4E 44 49 4E 47 20 54  48 45 0D 44 45 53 49 52  |INDING THE.DESIR|
00000BB0: 45 44 20 49 54 45 4D 2E  20 20 D4 48 49 53 20 49  |ED ITEM.  .HIS I|
00000BC0: 53 20 57 48 45 4E 20 54  48 45 20 4E 55 4D 42 45  |S WHEN THE NUMBE|
00000BD0: 52 0D 4F 46 20 43 4F 4D  50 41 52 45 53 20 48 41  |R.OF COMPARES HA|
00000BE0: 56 45 20 42 45 45 4E 20  45 58 48 41 55 53 54 45  |VE BEEN EXHAUSTE|
00000BF0: 44 0D 28 CE C3 CF D5 CE  D4 20 3D 20 4F 52 20 3E  |D.(...... = OR >|
00000C00: 20 CE CC C9 CD 29 20 41  4E 44 20 4E 4F 20 45 51  | ....) AND NO EQ|
00000C10: 55 41 4C 20 57 41 53 0D  46 4F 55 4E 44 2E 20 20  |UAL WAS.FOUND.  |
00000C20: C2 52 41 4E 43 48 20 54  4F 20 C2 C9 CE CE C5 20  |.RANCH TO ..... |
00000C30: 54 4F 20 45 58 49 54 20  54 48 45 0D 52 4F 55 54  |TO EXIT THE.ROUT|
00000C40: 49 4E 45 2E 20 20 C1 44  44 20 4F 4E 45 20 54 4F  |INE.  .DD ONE TO|
00000C50: 20 CE C3 CF D5 CE D4 20  49 46 20 54 48 45 0D 4C  | ...... IF THE.L|
00000C60: 49 4D 49 54 20 48 41 53  20 4E 4F 54 20 42 45 45  |IMIT HAS NOT BEE|
00000C70: 4E 20 45 58 43 45 45 44  45 44 2E 0D 0D 20 C2 C9  |N EXCEEDED... ..|
00000C80: CE D3 C8 C2 20 CC C4 C1  20 CE C3 CF D5 CE D4 20  |.... ... ...... |
00000C90: 3B CC 4F 41 44 20 43 4F  55 4E 54 0D 20 20 20 20  |;.OAD COUNT.    |
00000CA0: 20 20 20 20 C3 CD D0 20  CE CC C9 CD 20 20 20 3B  |    ... ....   ;|
00000CB0: C3 4F 4D 50 41 52 45 20  4C 49 4D 49 54 0D 20 20  |.OMPARE LIMIT.  |
00000CC0: 20 20 20 20 20 20 C2 C3  D3 20 C2 C9 CE CE C5 20  |      ... ..... |
00000CD0: 20 3B C2 52 41 4E 43 48  20 54 4F 20 C2 C9 CE CE  | ;.RANCH TO ....|
00000CE0: C5 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00000CF0: 20 20 20 20 20 3B 20 49  46 20 45 51 55 41 4C 2F  |     ; IF EQUAL/|
00000D00: 47 52 45 41 54 45 52 0D  20 20 20 20 20 20 20 20  |GREATER.        |
00000D10: C9 CE C3 20 CE C3 CF D5  CE D4 20 3B C9 4E 43 52  |... ...... ;.NCR|
00000D20: 45 41 53 45 20 43 4F 55  4E 54 0D 0D 0D 0D 0D 0D  |EASE COUNT......|
00000D30: 20 20 20 20 CD 55 4C 54  49 50 4C 59 20 54 48 45  |    .ULTIPLY THE|
00000D40: 20 49 54 45 4D 20 4C 45  4E 47 54 48 20 42 59 20  | ITEM LENGTH BY |
00000D50: 54 48 45 0D 44 45 53 49  52 45 44 20 49 54 45 4D  |THE.DESIRED ITEM|
00000D60: 20 4E 55 4D 42 45 52 2C  20 54 48 45 4E 20 41 44  | NUMBER, THEN AD|
00000D70: 44 20 54 48 49 53 20 54  4F 0D 54 48 45 20 54 41  |D THIS TO.THE TA|
00000D80: 42 4C 45 20 42 41 53 45  20 41 44 44 52 45 53 53  |BLE BASE ADDRESS|
00000D90: 2E 0D 0D 20 20 20 20 20  20 20 20 CC C4 D8 20 CC  |...        ... .|
00000DA0: C5 CE 20 20 20 20 3B CC  4F 41 44 20 4C 45 4E 47  |..    ;.OAD LENG|
00000DB0: 54 48 0D 20 20 20 20 20  20 20 20 CC C4 D9 20 D4  |TH.        ... .|
00000DC0: C1 C2 CD C9 C4 20 3B CC  4F 41 44 20 CD C9 C4 20  |..... ;.OAD ... |
00000DD0: 50 4F 49 4E 54 45 52 0D  20 20 20 20 20 20 20 20  |POINTER.        |
00000DE0: CA D3 D2 20 D3 C5 D4 D0  D4 D2 20 3B CC C5 CE 20  |... ...... ;... |
00000DF0: 2A 20 C9 54 4D 20 CE 55  4D 42 45 52 0D 20 20 20  |* .TM .UMBER.   |
00000E00: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000E10: 3B 28 CE CF D4 C5 3A 20  D3 45 45 20 CC D3 20 23  |;(....: .EE .. #|
00000E20: 34 35 0D 20 20 20 20 20  20 20 20 20 20 20 20 20  |45.             |
00000E30: 20 20 20 20 20 20 3B 20  46 4F 52 20 54 48 45 20  |      ; FOR THE |
00000E40: D3 C5 D4 D0 D4 D2 0D 20  20 20 20 20 20 20 20 20  |.......         |
00000E50: 20 20 20 20 20 20 20 20  20 20 3B 20 52 4F 55 54  |          ; ROUT|
00000E60: 49 4E 45 29 0D 20 20 20  20 20 20 20 20 D4 D8 C1  |INE).        ...|
00000E70: 20 20 20 20 20 20 20 20  3B D3 45 4E 44 20 CC D3  |        ;.END ..|
00000E80: C2 20 54 4F 20 5B C1 5D  0D 20 20 20 20 20 20 20  |. TO [.].       |
00000E90: 20 C3 CC C3 0D 20 20 20  20 20 20 20 20 C1 C4 C3  | ....        ...|
00000EA0: 20 23 3C D4 C1 C2 C1 D3  C5 20 3B C1 44 44 20 54  | #<...... ;.DD T|
00000EB0: 48 45 20 54 41 42 4C 45  0D 20 20 20 20 20 20 20  |HE TABLE.       |
00000EC0: 20 20 20 20 20 20 20 20  20 20 20 20 3B 20 42 41  |            ; BA|
00000ED0: 53 45 20 41 44 44 52 45  53 53 0D 20 20 20 20 20  |SE ADDRESS.     |
00000EE0: 20 20 20 D3 D4 C1 20 23  24 C6 C2 20 20 20 3B 20  |   ... #$..   ; |
00000EF0: 41 4E 44 20 53 54 4F 52  45 20 41 44 44 52 0D 20  |AND STORE ADDR. |
00000F00: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000F10: 20 20 3B 20 49 4E 20 DA  45 52 4F 20 D0 41 47 45  |  ; IN .ERO .AGE|
00000F20: 0D 20 20 20 20 20 20 20  20 D4 D9 C1 20 20 20 20  |.        ...    |
00000F30: 20 20 20 20 3B 20 24 C6  C2 2D C6 C3 0D 20 20 20  |    ; $..-...   |
00000F40: 20 20 20 20 20 C1 C4 C3  20 23 3E D4 C1 C2 C1 D3  |     ... #>.....|
00000F50: C5 20 3B 0D 20 20 20 20  20 20 20 20 D3 D4 C1 20  |. ;.        ... |
00000F60: 23 24 C6 C3 20 20 20 3B  0D 20 20 20 20 C3 4F 4D  |#$..   ;.    .OM|
00000F70: 50 41 52 45 20 54 48 45  20 D4 C1 D2 C7 C5 D4 20  |PARE THE ...... |
00000F80: 46 49 45 4C 44 20 54 4F  20 54 48 45 0D 54 41 42  |FIELD TO THE.TAB|
00000F90: 4C 45 20 49 54 45 4D 2E  20 20 D4 48 45 20 54 41  |LE ITEM.  .HE TA|
00000FA0: 42 4C 45 20 49 53 20 41  44 44 52 45 53 53 45 44  |BLE IS ADDRESSED|
00000FB0: 0D 57 49 54 48 20 54 48  45 20 49 4E 44 49 52 45  |.WITH THE INDIRE|
00000FC0: 43 54 20 5B D9 5D 20 49  4E 53 54 52 55 43 54 49  |CT [.] INSTRUCTI|
00000FD0: 4F 4E 2E 0D C5 41 43 48  20 43 48 41 52 41 43 54  |ON...ACH CHARACT|
00000FE0: 45 52 20 49 4E 20 54 48  45 20 D4 C1 D2 C7 C5 D4  |ER IN THE ......|
00000FF0: 20 46 49 45 4C 44 20 41  4E 44 0D 54 48 45 20 54  | FIELD AND.THE T|
00001000: 41 42 4C 45 20 49 53 20  49 4E 44 45 58 45 44 20  |ABLE IS INDEXED |
00001010: 42 59 20 D9 2E 20 20 C9  46 20 54 48 45 0D 54 41  |BY ..  .F THE.TA|
00001020: 42 4C 45 20 49 54 45 4D  20 49 53 20 4C 45 53 53  |BLE ITEM IS LESS|
00001030: 20 54 48 41 4E 20 54 48  45 20 D4 C1 D2 C7 C5 D4  | THAN THE ......|
00001040: 0D 49 54 45 4D 2C 20 41  20 54 52 41 4E 53 46 45  |.ITEM, A TRANSFE|
00001050: 52 20 4F 46 20 43 4F 4E  54 52 4F 4C 20 49 53 20  |R OF CONTROL IS |
00001060: 4D 41 44 45 20 54 4F 0D  C2 C9 CE D3 C8 C4 2E 20  |MADE TO........ |
00001070: 20 C9 46 20 45 51 55 41  4C 2C 20 43 4F 4E 54 52  | .F EQUAL, CONTR|
00001080: 4F 4C 20 49 53 0D 54 52  41 4E 53 46 45 52 52 45  |OL IS.TRANSFERRE|
00001090: 44 20 54 4F 20 C2 C9 CE  D3 C8 C3 2E 20 20 CF 4E  |D TO .......  .N|
000010A0: 20 54 41 42 4C 45 20 49  54 45 4D 0D 47 52 45 41  | TABLE ITEM.GREA|
000010B0: 54 45 52 20 54 48 41 4E  20 54 48 45 20 D4 C1 D2  |TER THAN THE ...|
000010C0: C7 C5 D4 20 49 54 45 4D  2C 20 4E 4F 0D 42 52 41  |... ITEM, NO.BRA|
000010D0: 4E 43 48 49 4E 47 20 4F  43 43 55 52 53 2E 0D 0D  |NCHING OCCURS...|
000010E0: 20 20 20 20 20 20 20 20  CC C4 D9 20 23 30 20 20  |        ... #0  |
000010F0: 20 20 20 20 3B C9 4E 49  54 49 41 4C 49 5A 45 20  |    ;.NITIALIZE |
00001100: 49 4E 44 45 58 0D 20 C2  C9 CE C3 CD D0 20 CC C4  |INDEX. ...... ..|
00001110: C1 20 D4 C1 D2 C7 C5 D4  2C D9 20 3B CC 4F 41 44  |. ......,. ;.OAD|
00001120: 20 D4 41 52 47 45 54 0D  20 20 20 20 20 20 20 20  | .ARGET.        |
00001130: C3 CD D0 20 28 24 C6 C2  29 2C D9 20 3B C3 4F 4D  |... ($..),. ;.OM|
00001140: 50 41 52 45 20 54 41 42  4C 45 0D 20 20 20 20 20  |PARE TABLE.     |
00001150: 20 20 20 C2 C3 C3 20 C2  C9 CE D3 C8 C4 20 20 3B  |   ... ......  ;|
00001160: D4 C1 D2 C7 C5 D4 20 3E  20 54 41 42 4C 45 0D 20  |...... > TABLE. |
00001170: 20 20 20 20 20 20 20 C2  C5 D1 20 C2 C9 CE D3 C8  |       ... .....|
00001180: C3 20 20 3B D4 41 52 47  45 54 20 3D 20 54 41 42  |.  ;.ARGET = TAB|
00001190: 4C 45 0D 0D 0D 20 20 20  20 C9 46 20 54 48 45 20  |LE...    .F THE |
000011A0: 54 41 42 4C 45 20 49 54  45 4D 20 49 53 20 47 52  |TABLE ITEM IS GR|
000011B0: 45 41 54 45 52 20 54 48  41 4E 0D 54 48 45 20 54  |EATER THAN.THE T|
000011C0: 41 52 47 45 54 20 46 49  45 4C 44 2C 20 54 48 45  |ARGET FIELD, THE|
000011D0: 4E 20 54 48 45 20 54 41  42 4C 45 0D 42 4F 54 54  |N THE TABLE.BOTT|
000011E0: 4F 4D 20 50 4F 49 4E 54  45 52 20 49 53 20 53 45  |OM POINTER IS SE|
000011F0: 54 20 45 51 55 41 4C 20  54 4F 20 54 48 45 0D 54  |T EQUAL TO THE.T|
00001200: 41 42 4C 45 20 4D 49 44  44 4C 45 20 50 4F 49 4E  |ABLE MIDDLE POIN|
00001210: 54 45 52 2E 20 28 D4 48  45 20 54 41 42 4C 45 20  |TER. (.HE TABLE |
00001220: 49 53 0D 43 55 54 20 49  4E 20 48 41 4C 46 2E 29  |IS.CUT IN HALF.)|
00001230: 20 20 D4 48 45 20 44 49  46 46 45 52 45 4E 43 45  |  .HE DIFFERENCE|
00001240: 20 42 45 54 57 45 45 4E  0D 54 48 45 20 4E 45 57  | BETWEEN.THE NEW|
00001250: 20 42 4F 54 54 4F 4D 20  41 4E 44 20 54 48 45 20  | BOTTOM AND THE |
00001260: 4F 4C 44 20 54 4F 50 20  49 53 0D 44 49 56 49 44  |OLD TOP IS.DIVID|
00001270: 45 44 20 42 59 20 54 57  4F 20 41 4E 44 20 53 55  |ED BY TWO AND SU|
00001280: 42 54 52 41 43 54 45 44  20 46 52 4F 4D 20 54 48  |BTRACTED FROM TH|
00001290: 45 0D 54 4F 50 20 54 4F  20 45 53 54 41 42 4C 49  |E.TOP TO ESTABLI|
000012A0: 53 48 20 41 20 4E 45 57  20 4D 49 44 44 4C 45 2E  |SH A NEW MIDDLE.|
000012B0: 20 20 C1 46 54 45 52 0D  54 48 49 53 2C 20 4A 55  |  .FTER.THIS, JU|
000012C0: 4D 50 20 54 4F 20 C2 C9  CE D3 C4 C2 20 46 4F 52  |MP TO ...... FOR|
000012D0: 20 54 48 45 20 4E 45 58  54 0D 49 54 45 52 41 54  | THE NEXT.ITERAT|
000012E0: 49 4F 4E 2E 0D 0D 20 20  20 20 20 20 20 20 CC C4  |ION...        ..|
000012F0: C1 20 D4 C1 C2 CD C9 C4  20 3B CC 4F 41 44 20 54  |. ...... ;.OAD T|
00001300: 41 42 4C 45 20 CD C9 C4  0D 20 20 20 20 20 20 20  |ABLE ....       |
00001310: 20 D3 D4 C1 20 D4 C1 C2  D4 CF D0 20 3B D3 54 4F  | ... ...... ;.TO|
00001320: 52 45 20 54 41 42 4C 45  20 D4 CF D0 0D 20 20 20  |RE TABLE ....   |
00001330: 20 20 20 20 20 D3 C5 C3  20 20 20 20 20 20 20 20  |     ...        |
00001340: 3B D3 55 42 54 52 41 43  54 20 54 48 45 0D 20 20  |;.UBTRACT THE.  |
00001350: 20 20 20 20 20 20 CC C4  C1 20 D4 C1 C2 D4 CF D0  |      ... ......|
00001360: 20 3B 20 20 C2 CF D4 20  46 52 4F 4D 0D 20 20 20  | ;  ... FROM.   |
00001370: 20 20 20 20 20 D3 C2 C3  20 D4 C1 C2 C2 CF D4 20  |     ... ...... |
00001380: 3B 20 20 54 48 45 20 D4  CF D0 0D 20 20 20 20 20  |;  THE ....     |
00001390: 20 20 20 CC D3 D2 20 20  20 20 20 20 20 20 3B C4  |   ...        ;.|
000013A0: 49 56 49 44 45 20 42 59  20 54 57 4F 0D 20 20 20  |IVIDE BY TWO.   |
000013B0: 20 20 20 20 20 D3 D4 C1  20 D4 C1 C2 CD C9 C4 20  |     ... ...... |
000013C0: 3B D3 C2 C3 20 54 48 45  20 44 49 46 46 0D 0D 0D  |;... THE DIFF...|
000013D0: 0D 20 20 20 20 20 20 20  20 CC C4 C1 20 D4 C1 C2  |.        ... ...|
000013E0: D4 CF D0 20 3B 20 46 52  4F 4D 20 54 48 45 20 D4  |... ; FROM THE .|
000013F0: CF D0 0D 20 20 20 20 20  20 20 20 D3 C5 C3 20 20  |...        ...  |
00001400: 20 20 20 20 20 20 3B 20  41 4E 44 20 D3 D4 C1 20  |      ; AND ... |
00001410: 54 48 45 0D 20 20 20 20  20 20 20 20 D3 C2 C3 20  |THE.        ... |
00001420: D4 C1 C2 CD C9 C4 20 3B  20 52 45 53 55 4C 54 20  |...... ; RESULT |
00001430: 49 4E 20 54 48 45 0D 20  20 20 20 20 20 20 20 D3  |IN THE.        .|
00001440: D4 C1 20 D4 C1 C2 CD C9  C4 20 3B 20 54 41 42 4C  |.. ...... ; TABL|
00001450: 45 20 CD C9 C4 0D 20 20  20 20 20 20 20 20 CA CD  |E ....        ..|
00001460: D0 20 C2 C9 CE D3 C8 C2  20 3B CE 45 58 54 20 49  |. ...... ;.EXT I|
00001470: 54 45 52 41 54 49 4F 4E  0D 0D 0D 0D 0D 0D 0D 0D  |TERATION........|
00001480: 0D 0D 0D 0D 0D 20 20 20  20 D7 48 45 4E 20 54 48  |.....    .HEN TH|
00001490: 45 20 D4 C1 D2 C7 C5 D4  20 49 54 45 4D 20 49 53  |E ...... ITEM IS|
000014A0: 20 45 51 55 41 4C 20 54  4F 0D 54 48 45 20 54 41  | EQUAL TO.THE TA|
000014B0: 42 4C 45 20 49 54 45 4D  2C 20 54 48 45 20 49 4E  |BLE ITEM, THE IN|
000014C0: 44 45 58 20 D9 20 49 53  0D 49 4E 43 52 45 41 53  |DEX . IS.INCREAS|
000014D0: 45 44 20 41 4E 44 20 54  45 53 54 45 44 20 41 47  |ED AND TESTED AG|
000014E0: 41 49 4E 53 54 20 54 48  45 0D 4C 45 4E 47 54 48  |AINST THE.LENGTH|
000014F0: 20 4F 46 20 41 4E 20 49  54 45 4D 2E 20 20 C9 46  | OF AN ITEM.  .F|
00001500: 20 5B D9 5D 20 49 53 20  4C 45 53 53 0D 54 48 41  | [.] IS LESS.THA|
00001510: 4E 20 54 48 45 20 4C 45  4E 47 54 48 20 54 48 45  |N THE LENGTH THE|
00001520: 20 52 4F 55 54 49 4E 45  20 52 45 54 55 52 4E 53  | ROUTINE RETURNS|
00001530: 0D 54 4F 20 54 48 45 20  43 4F 4D 50 41 52 45 20  |.TO THE COMPARE |
00001540: 46 4F 52 20 54 48 45 20  4E 45 58 54 0D 43 48 41  |FOR THE NEXT.CHA|
00001550: 52 41 43 54 45 52 2E 20  20 C9 46 20 5B D9 5D 20  |RACTER.  .F [.] |
00001560: 45 58 43 45 45 44 53 20  54 48 45 20 4C 45 4E 47  |EXCEEDS THE LENG|
00001570: 54 48 0D 54 48 45 4E 20  54 48 45 20 D4 C1 D2 C7  |TH.THEN THE ....|
00001580: C5 D4 20 49 54 45 4D 20  49 53 20 45 51 55 41 4C  |.. ITEM IS EQUAL|
00001590: 20 54 4F 20 54 48 45 0D  54 41 42 4C 45 20 49 54  | TO THE.TABLE IT|
000015A0: 45 4D 20 41 4E 44 20 54  48 45 20 C3 C1 D2 D2 D9  |EM AND THE .....|
000015B0: 20 49 53 20 53 45 54 2E  0D C5 58 49 54 49 4E 47  | IS SET...XITING|
000015C0: 20 49 53 20 42 59 20 41  4E 20 D2 D4 D3 2E 0D 0D  | IS BY AN ......|
000015D0: 20 C2 C9 CE D3 C8 C3 20  C9 CE D9 20 20 20 20 20  | ...... ...     |
000015E0: 20 20 20 3B C9 4E 43 52  20 5B D9 5D 0D 20 20 20  |   ;.NCR [.].   |
000015F0: 20 20 20 20 20 C3 D0 D9  20 CC C5 CE 20 20 20 20  |     ... ...    |
00001600: 3B 5B D9 5D 20 54 4F 20  4C 45 4E 47 54 48 0D 20  |;[.] TO LENGTH. |
00001610: 20 20 20 20 20 20 20 C2  C3 C3 20 C2 C9 CE C3 CD  |       ... .....|
00001620: D0 20 3B 5B D9 5D 20 3C  20 CC C5 CE 0D 20 20 20  |. ;[.] < ....   |
00001630: 20 20 20 20 20 D3 C5 C3  20 20 20 20 20 20 20 20  |     ...        |
00001640: 3B D3 45 54 20 C3 C1 D2  D2 D9 0D 20 20 20 20 20  |;.ET ......     |
00001650: 20 20 20 CA CD D0 20 C2  C9 CE D8 C9 D4 20 3B CA  |   ... ...... ;.|
00001660: 55 4D 50 20 45 58 49 54  20 28 D2 D4 D3 29 0D 0D  |UMP EXIT (...)..|
00001670: 0D 0D 20 20 20 20 D7 48  45 4E 20 54 48 45 20 D4  |..    .HEN THE .|
00001680: C1 D2 C7 C5 D4 20 49 54  45 4D 20 49 53 20 4C 45  |..... ITEM IS LE|
00001690: 53 53 20 54 48 41 4E 0D  54 48 45 20 54 41 42 4C  |SS THAN.THE TABL|
000016A0: 45 20 49 54 45 4D 20 54  48 45 20 54 41 42 4C 45  |E ITEM THE TABLE|
000016B0: 20 54 4F 50 20 50 4F 49  4E 54 45 52 0D 49 53 20  | TOP POINTER.IS |
000016C0: 4D 41 44 45 20 45 51 55  41 4C 20 54 4F 20 54 41  |MADE EQUAL TO TA|
000016D0: 42 4C 45 20 4D 49 44 44  4C 45 20 50 4F 49 4E 54  |BLE MIDDLE POINT|
000016E0: 45 52 2E 0D 20 28 D4 41  42 4C 45 20 49 53 20 43  |ER.. (.ABLE IS C|
000016F0: 55 54 20 49 4E 20 48 41  4C 46 2E 29 20 20 D4 48  |UT IN HALF.)  .H|
00001700: 45 0D 44 49 46 46 45 52  45 4E 43 45 20 42 45 54  |E.DIFFERENCE BET|
00001710: 57 45 45 4E 20 54 48 45  20 42 4F 54 54 4F 4D 20  |WEEN THE BOTTOM |
00001720: 41 4E 44 20 54 4F 50 0D  49 53 20 44 49 56 49 44  |AND TOP.IS DIVID|
00001730: 45 44 20 42 59 20 54 57  4F 20 41 4E 44 20 41 44  |ED BY TWO AND AD|
00001740: 44 45 44 20 54 4F 20 54  48 45 0D 42 4F 54 54 4F  |DED TO THE.BOTTO|
00001750: 4D 2E 20 20 D4 48 49 53  20 49 53 20 43 4F 44 45  |M.  .HIS IS CODE|
00001760: 20 57 48 49 43 48 20 45  58 49 53 54 53 0D 45 41  | WHICH EXISTS.EA|
00001770: 52 4C 49 45 52 20 49 4E  20 54 48 49 53 20 52 4F  |RLIER IN THIS RO|
00001780: 55 54 49 4E 45 20 53 4F  20 52 41 54 48 45 52 20  |UTINE SO RATHER |
00001790: 54 48 41 4E 0D 57 52 49  54 45 20 49 54 20 41 47  |THAN.WRITE IT AG|
000017A0: 41 49 4E 2C 20 57 45 20  57 49 4C 4C 20 4A 55 53  |AIN, WE WILL JUS|
000017B0: 54 20 4A 55 4D 50 20 42  41 43 4B 0D 54 4F 20 49  |T JUMP BACK.TO I|
000017C0: 54 2E 0D 0D 20 C2 C9 CE  D3 C8 C4 20 CC C4 C1 20  |T... ...... ... |
000017D0: D4 C1 C2 CD C9 C4 20 3B  D3 45 54 20 54 41 42 4C  |...... ;.ET TABL|
000017E0: 45 20 D4 CF D0 0D 20 20  20 20 20 20 20 20 D3 D4  |E ....        ..|
000017F0: C1 20 D4 C1 C2 D4 CF D0  20 3B 20 45 51 55 41 4C  |. ...... ; EQUAL|
00001800: 20 54 4F 20 CD C9 C4 0D  20 20 20 20 20 20 20 20  | TO ....        |
00001810: CA CD D0 20 C2 C9 CE D3  C8 C1 20 3B CA 55 4D 50  |... ...... ;.UMP|
00001820: 20 54 4F 20 41 44 44 0D  20 20 20 20 20 20 20 20  | TO ADD.        |
00001830: 20 20 20 20 20 20 20 20  20 20 20 3B 20 20 49 4E  |           ;  IN|
00001840: 53 54 52 55 43 54 49 4F  4E 53 0D 0D 0D 0D 0D 20  |STRUCTIONS..... |
00001850: 20 20 20 D7 48 45 4E 20  54 48 45 20 44 45 53 49  |   .HEN THE DESI|
00001860: 52 45 44 20 49 54 45 4D  20 43 41 4E 4E 4F 54 20  |RED ITEM CANNOT |
00001870: 42 45 0D 46 4F 55 4E 44  20 49 4E 20 54 48 45 20  |BE.FOUND IN THE |
00001880: 54 41 42 4C 45 2C 20 54  48 45 20 52 4F 55 54 49  |TABLE, THE ROUTI|
00001890: 4E 45 20 43 4F 4D 45 53  0D 48 45 52 45 20 28 C2  |NE COMES.HERE (.|
000018A0: C9 CE CE C5 3A 20 C2 49  4E 41 52 59 20 CE 4F 54  |....: .INARY .OT|
000018B0: 20 C5 51 55 41 4C 29 2E  0D C2 45 43 41 55 53 45  | .QUAL)...ECAUSE|
000018C0: 20 54 48 45 20 43 41 52  52 59 20 53 45 54 20 4D  | THE CARRY SET M|
000018D0: 45 41 4E 53 20 54 48 45  20 49 54 45 4D 0D 57 41  |EANS THE ITEM.WA|
000018E0: 53 20 46 4F 55 4E 44 2C  20 54 48 45 20 52 4F 55  |S FOUND, THE ROU|
000018F0: 54 49 4E 45 20 57 49 4C  4C 20 43 4C 45 41 52 20  |TINE WILL CLEAR |
00001900: 54 48 45 0D 43 41 52 52  59 2C 20 54 48 45 4E 20  |THE.CARRY, THEN |
00001910: 45 58 49 54 2E 0D 0D 20  C2 C9 CE CE C5 20 20 C3  |EXIT... .....  .|
00001920: CC C3 20 20 20 20 20 20  20 20 3B C3 4C 45 41 52  |..        ;.LEAR|
00001930: 20 C3 41 52 52 59 0D 20  C2 C9 CE D8 C9 D4 20 D2  | .ARRY. ...... .|
00001940: D4 D3 20 20 20 20 20 20  20 20 3B D2 45 54 55 52  |..        ;.ETUR|
00001950: 4E 20 43 41 4C 4C 49 4E  47 0D 20 20 20 20 20 20  |N CALLING.      |
00001960: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 52  |               R|
00001970: 4F 55 54 49 4E 45 2E 0D  0D 20 20 20 20 D7 48 45  |OUTINE...    .HE|
00001980: 4E 20 54 48 45 20 52 4F  55 54 49 4E 45 20 52 45  |N THE ROUTINE RE|
00001990: 54 55 52 4E 53 20 43 4F  4E 54 52 4F 4C 0D 54 4F  |TURNS CONTROL.TO|
000019A0: 20 54 48 45 20 43 41 4C  4C 49 4E 47 20 53 45 51  | THE CALLING SEQ|
000019B0: 55 45 4E 43 45 2C 20 49  46 20 54 48 45 20 C3 C1  |UENCE, IF THE ..|
000019C0: D2 D2 D9 0D 49 53 20 53  45 54 2C 20 54 48 45 4E  |....IS SET, THEN|
000019D0: 20 54 48 45 20 41 44 44  52 45 53 53 20 24 C6 C2  | THE ADDRESS $..|
000019E0: 2D 24 C6 C3 0D 43 4F 4E  54 41 49 4E 53 20 54 48  |-$...CONTAINS TH|
000019F0: 45 20 41 44 44 52 45 53  53 20 49 4E 20 54 48 45  |E ADDRESS IN THE|
00001A00: 20 54 41 42 4C 45 20 4F  46 0D 54 48 45 20 49 54  | TABLE OF.THE IT|
00001A10: 45 4D 20 45 51 55 41 4C  20 54 4F 20 54 48 45 20  |EM EQUAL TO THE |
00001A20: 44 45 53 49 52 45 44 20  49 54 45 4D 2E 20 20 C1  |DESIRED ITEM.  .|
00001A30: 0D C3 C1 D2 D2 D9 20 4F  46 46 20 43 4F 4E 44 49  |...... OFF CONDI|
00001A40: 54 49 4F 4E 20 4D 45 41  4E 53 20 4E 4F 20 4D 41  |TION MEANS NO MA|
00001A50: 54 43 48 20 57 41 53 0D  46 4F 55 4E 44 2E 0D 0D  |TCH WAS.FOUND...|
00001A60: 20 20 20 20 C6 4F 52 20  41 20 53 48 4F 52 54 20  |    .OR A SHORT |
00001A70: 44 45 4D 4F 20 4F 46 20  54 48 45 20 53 50 45 45  |DEMO OF THE SPEE|
00001A80: 44 20 4F 46 0D 41 20 42  49 4E 41 52 59 20 53 45  |D OF.A BINARY SE|
00001A90: 41 52 43 48 2C 20 52 45  41 44 20 41 4E 44 20 52  |ARCH, READ AND R|
00001AA0: 55 4E 20 C2 C9 D4 D3 20  32 0D 4F 4E 20 54 48 49  |UN .... 2.ON THI|
00001AB0: 53 20 44 49 53 4B 2E 0D  0D 20 20 20 20 20 20 20  |S DISK...       |
00001AC0: 20 2A 2A 2A 2A 20 C5 4E  44 20 4F 46 20 D4 45 58  | **** .ND OF .EX|
00001AD0: 54 20 2A 2A 2A 2A 0D                              |T ****.         |
..^U:ZERO..         BITS: BINARY SEARCH.
.          BY MARTY MATTHEWS....********
******************************.*   NOTE:
  THIS MONTH'S BITS USES A  *.*      ROU
TINE BY MARTY THAT WAS     *.*  PUBLISHE
D IN THE BITS FEATURE OF  *.*    LOADSTA
R #45.  THE ROUTINE IS   *.* INCLUDED IN
 THE OBJECT FILE OF THE *.*   "RUN IT" P
ROGRAM ON THIS DISK,   *.* ALTHOUGH IT I
S NOT DOCUMENTED HERE.*.****************
**********************....    A "BINARY 
SEARCH" WORKS BY.DIVIDING A LIST IN HALF
, DOING A.COMPARE AT THE MIDDLE, AND IGN
ORING.THE HALF WHICH DOES NOT CONTAIN TH
E.DESIRED ITEM.  THE REMAINING LIST IS.D
IVIDED IN HALF AND THE PROCESS IS.CONTIN
UED UNTIL THE REMAINING HALF.EQUALS ZERO
 ITEMS, OR THE DESIRED ITEM.IS FOUND... 
   TO LOOK AT 255 ITEMS REQUIRES 9.COMPA
RES MAXIMUM.  THE NUMBER OF.COMPARES MUS
T BE AT LEAST EQUAL TO THE.NEXT HIGHER P
OWER OF TWO PLUS ONE..900 ITEMS WOULD RE
QUIRE 11 COMPARES..1024 = 2^10, AND PLUS
 1 = 11.  THE.LONGER THE LIST, THE GREAT
ER THE.SAVINGS. SHORT LISTS, 30 TO 40 IT
EMS,.MAY PRODUCE NO SAVINGS AT ALL..    
TO INVOKE THE ROUTINE REQUIRES.ONLY A JS
R TO BINSCH.  HOWEVER, THE.ROUTINE REQUI
RES CERTAIN DATA IN ORDER.TO FUNCTION.  
THE FOLLOWING IS A LIST.OF THE REQUIREME
NTS...  NLIM  .BYTE 000  ;NUMBER OF.    
               ; COMPARES 2^N+1.  LEN .B
YTE 000    ;LENGTH OF EACH.             
      ; TABLE ITEM.  TABLIM .BYTE 000 ;N
UMBER OF ITEMS.                   ; IN T
ABLE MINUS 1.  TABASE .BYTE 000 000; ADD
RESS OF.                   ; FIRST TABLE
 ITEM.  TARGET .BYTE " ... "; FIELD OF. 
                  ; LENGTH  LEN.        
           ; CONTAINING THE.            
       ; DESIRED ITEM..  TABTOP .BYTE 00
0 ;THE ITEM NUMBER.                   ; 
AT THE TOP OF.                   ; THE C
URRENT.                   ; LIST SEGMENT
.  TABBOT .BYTE 000 ;THE ITEM NUMBER.   
                ; AT THE BOTTOM.        
           ; OF THE CURRENT.            
       ; LIST SEGMENT.  TABMID .BYTE 000
 ;THE ITEM NUMBER.                   ; A
T THE MIDDLE.                   ; OF THE
 CURRENT.                   ; LIST SEGME
NT..    PLEASE NOTE:  THE CONTENTS OF [A
],.[X], AND [Y] ARE NOT PRESERVED.  ALSO
,.THE TABLE MUST BE IN ASCENDING.SEQUENC
E......    THE ROUTINE BEGINS BY SETTING
 THE.NCOUNT AND THE TABLE BOTTOM POINTER
.(TABBOT) TO ZERO, AND THE TABLE TOP.POI
NTER (TABTOP) TO THE NUMBER OF.ITEMS IN 
THE TABLE... BINSCH LDA #0     ;LOAD ZER
O.        STA NCOUNT ; STORE IN COUNT.  
      STA TABBOT ; STORE IN BOT.        
LDA TABLIM ;LOAD LIMIT NUM.        STA T
ABTOP ; STORE IN TOP.........    SUBTRAC
T THE TABLE BOTTOM POINTER.FROM THE TABL
E TOP POINTER AND DIVIDE.THE DIFFERENCE 
BY TWO.  ADD THE TABLE.BOTTOM POINTER TO
 THE DIFFERENCE AND.STORE IN THE TABLE M
IDDLE POINTER... BINSHA LDA TABTOP ;LOAD
 TOP NUMBER.        SEC        ;PREPARE 
FOR SUBT.        SBC TABBOT ;SUBTRACT BO
TTOM.        LSR        ;DIVIDE BY TWO. 
       CLC        ;PREPARE FOR ADD.     
   ADC TABBOT ;ADD TO BOTTOM.        STA
 TABMID ;STORE IN MIDDLE......    TEST F
OR END WITHOUT FINDING THE.DESIRED ITEM.
  THIS IS WHEN THE NUMBER.OF COMPARES HA
VE BEEN EXHAUSTED.(NCOUNT = OR > NLIM) A
ND NO EQUAL WAS.FOUND.  BRANCH TO BINNE 
TO EXIT THE.ROUTINE.  ADD ONE TO NCOUNT 
IF THE.LIMIT HAS NOT BEEN EXCEEDED... BI
NSHB LDA NCOUNT ;LOAD COUNT.        CMP 
NLIM   ;COMPARE LIMIT.        BCS BINNE 
 ;BRANCH TO BINNE.                   ; I
F EQUAL/GREATER.        INC NCOUNT ;INCR
EASE COUNT......    MULTIPLY THE ITEM LE
NGTH BY THE.DESIRED ITEM NUMBER, THEN AD
D THIS TO.THE TABLE BASE ADDRESS...     
   LDX LEN    ;LOAD LENGTH.        LDY T
ABMID ;LOAD MID POINTER.        JSR SETP
TR ;LEN * ITM NUMBER.                   
;(NOTE: SEE LS #45.                   ; 
FOR THE SETPTR.                   ; ROUT
INE).        TXA        ;SEND LSB TO [A]
.        CLC.        ADC #<TABASE ;ADD T
HE TABLE.                   ; BASE ADDRE
SS.        STA #$FB   ; AND STORE ADDR. 
                  ; IN ZERO PAGE.       
 TYA        ; $FB-FC.        ADC #>TABAS
E ;.        STA #$FC   ;.    COMPARE THE
 TARGET FIELD TO THE.TABLE ITEM.  THE TA
BLE IS ADDRESSED.WITH THE INDIRECT [Y] I
NSTRUCTION..EACH CHARACTER IN THE TARGET
 FIELD AND.THE TABLE IS INDEXED BY Y.  I
F THE.TABLE ITEM IS LESS THAN THE TARGET
.ITEM, A TRANSFER OF CONTROL IS MADE TO.
BINSHD.  IF EQUAL, CONTROL IS.TRANSFERRE
D TO BINSHC.  ON TABLE ITEM.GREATER THAN
 THE TARGET ITEM, NO.BRANCHING OCCURS...
        LDY #0      ;INITIALIZE INDEX. B
INCMP LDA TARGET,Y ;LOAD TARGET.        
CMP ($FB),Y ;COMPARE TABLE.        BCC B
INSHD  ;TARGET > TABLE.        BEQ BINSH
C  ;TARGET = TABLE...    IF THE TABLE IT
EM IS GREATER THAN.THE TARGET FIELD, THE
N THE TABLE.BOTTOM POINTER IS SET EQUAL 
TO THE.TABLE MIDDLE POINTER. (THE TABLE 
IS.CUT IN HALF.)  THE DIFFERENCE BETWEEN
.THE NEW BOTTOM AND THE OLD TOP IS.DIVID
ED BY TWO AND SUBTRACTED FROM THE.TOP TO
 ESTABLISH A NEW MIDDLE.  AFTER.THIS, JU
MP TO BINSDB FOR THE NEXT.ITERATION...  
      LDA TABMID ;LOAD TABLE MID.       
 STA TABTOP ;STORE TABLE TOP.        SEC
        ;SUBTRACT THE.        LDA TABTOP
 ;  BOT FROM.        SBC TABBOT ;  THE T
OP.        LSR        ;DIVIDE BY TWO.   
     STA TABMID ;SBC THE DIFF....       
 LDA TABTOP ; FROM THE TOP.        SEC  
      ; AND STA THE.        SBC TABMID ;
 RESULT IN THE.        STA TABMID ; TABL
E MID.        JMP BINSHB ;NEXT ITERATION
.............    WHEN THE TARGET ITEM IS
 EQUAL TO.THE TABLE ITEM, THE INDEX Y IS
.INCREASED AND TESTED AGAINST THE.LENGTH
 OF AN ITEM.  IF [Y] IS LESS.THAN THE LE
NGTH THE ROUTINE RETURNS.TO THE COMPARE 
FOR THE NEXT.CHARACTER.  IF [Y] EXCEEDS 
THE LENGTH.THEN THE TARGET ITEM IS EQUAL
 TO THE.TABLE ITEM AND THE CARRY IS SET.
.EXITING IS BY AN RTS... BINSHC INY     
   ;INCR [Y].        CPY LEN    ;[Y] TO 
LENGTH.        BCC BINCMP ;[Y] < LEN.   
     SEC        ;SET CARRY.        JMP B
INXIT ;JUMP EXIT (RTS)....    WHEN THE T
ARGET ITEM IS LESS THAN.THE TABLE ITEM T
HE TABLE TOP POINTER.IS MADE EQUAL TO TA
BLE MIDDLE POINTER.. (TABLE IS CUT IN HA
LF.)  THE.DIFFERENCE BETWEEN THE BOTTOM 
AND TOP.IS DIVIDED BY TWO AND ADDED TO T
HE.BOTTOM.  THIS IS CODE WHICH EXISTS.EA
RLIER IN THIS ROUTINE SO RATHER THAN.WRI
TE IT AGAIN, WE WILL JUST JUMP BACK.TO I
T... BINSHD LDA TABMID ;SET TABLE TOP.  
      STA TABTOP ; EQUAL TO MID.        
JMP BINSHA ;JUMP TO ADD.                
   ;  INSTRUCTIONS.....    WHEN THE DESI
RED ITEM CANNOT BE.FOUND IN THE TABLE, T
HE ROUTINE COMES.HERE (BINNE: BINARY NOT
 EQUAL)..BECAUSE THE CARRY SET MEANS THE
 ITEM.WAS FOUND, THE ROUTINE WILL CLEAR 
THE.CARRY, THEN EXIT... BINNE  CLC      
  ;CLEAR CARRY. BINXIT RTS        ;RETUR
N CALLING.                     ROUTINE..
.    WHEN THE ROUTINE RETURNS CONTROL.TO
 THE CALLING SEQUENCE, IF THE CARRY.IS S
ET, THEN THE ADDRESS $FB-$FC.CONTAINS TH
E ADDRESS IN THE TABLE OF.THE ITEM EQUAL
 TO THE DESIRED ITEM.  A.CARRY OFF CONDI
TION MEANS NO MATCH WAS.FOUND...    FOR 
A SHORT DEMO OF THE SPEED OF.A BINARY SE
ARCH, READ AND RUN BITS 2.ON THIS DISK..
.        **** END OF TEXT ****.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL