T.BITS
FILE INFORMATION
FILENAME(S): T.BITS
FILE TYPE(S): PRG
FILE SIZE: 3.8K
FIRST SEEN: 2025-11-30 18:12:17
APPEARS ON: 1 disk(s)
FILE HASH
c914df2f828dec39d578004e816e7590b2061acbc1802ca18130b166f10a7bb0
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| LOADSTAR 45 S 1 | T.BITS | PRG | Sailor, Ganheden | 31 | 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 D4 C9 D0 D3 3A 20 CD CC 20 D3 55 42 | ....: .. .UB| 00000020: 53 43 52 49 50 54 45 52 0D 0D 20 20 20 20 20 20 |SCRIPTER.. | 00000030: 20 20 20 20 42 59 20 CD 41 52 54 49 4E 20 CD 41 | BY .ARTIN .A| 00000040: 54 54 48 45 57 53 0D 0D 20 20 20 20 CF 4E 45 20 |TTHEWS.. .NE | 00000050: 4F 46 20 54 48 45 20 41 44 56 41 4E 54 41 47 45 |OF THE ADVANTAGE| 00000060: 53 20 4F 46 20 C2 C1 D3 C9 C3 20 49 53 0D 54 48 |S OF ..... IS.TH| 00000070: 45 20 45 41 53 45 20 49 4E 20 57 48 49 43 48 20 |E EASE IN WHICH | 00000080: 49 54 20 4F 46 46 45 52 53 20 43 45 52 54 41 49 |IT OFFERS CERTAI| 00000090: 4E 0D 46 55 4E 43 54 49 4F 4E 53 2E 20 20 CF 4E |N.FUNCTIONS. .N| 000000A0: 45 20 4F 46 20 54 48 45 53 45 20 46 55 4E 43 54 |E OF THESE FUNCT| 000000B0: 49 4F 4E 53 20 49 53 0D 53 55 42 53 43 52 49 50 |IONS IS.SUBSCRIP| 000000C0: 54 49 4E 47 2E 20 20 C6 4F 52 20 49 4C 4C 55 53 |TING. .OR ILLUS| 000000D0: 54 52 41 54 49 4F 4E 2C 0D 43 4F 4E 53 49 44 45 |TRATION,.CONSIDE| 000000E0: 52 20 54 48 45 20 53 49 54 55 41 54 49 4F 4E 20 |R THE SITUATION | 000000F0: 57 48 45 52 45 20 54 57 4F 0D 4C 49 53 54 53 20 |WHERE TWO.LISTS | 00000100: 4F 52 20 54 41 42 4C 45 53 20 41 52 45 20 52 45 |OR TABLES ARE RE| 00000110: 51 55 49 52 45 44 2E 20 20 D4 48 45 0D 44 49 53 |QUIRED. .HE.DIS| 00000120: 4B 20 44 49 52 45 43 54 4F 52 59 20 45 4E 54 52 |K DIRECTORY ENTR| 00000130: 49 45 53 20 41 4E 44 20 54 48 45 20 44 49 53 4B |IES AND THE DISK| 00000140: 0D 4E 41 4D 45 53 20 4F 46 20 59 4F 55 52 20 44 |.NAMES OF YOUR D| 00000150: 49 53 4B 20 49 4E 56 45 4E 54 4F 52 59 20 43 4F |ISK INVENTORY CO| 00000160: 55 4C 44 0D 42 45 20 53 55 43 48 20 4C 49 53 54 |ULD.BE SUCH LIST| 00000170: 53 2E 20 20 C3 4F 4D 42 49 4E 45 44 20 49 4E 54 |S. .OMBINED INT| 00000180: 4F 20 4F 4E 45 0D 54 41 42 4C 45 2C 20 54 48 45 |O ONE.TABLE, THE| 00000190: 20 44 49 53 4B 20 4E 41 4D 45 20 57 4F 55 4C 44 | DISK NAME WOULD| 000001A0: 20 48 41 56 45 20 54 4F 0D 42 45 20 52 45 50 45 | HAVE TO.BE REPE| 000001B0: 41 54 45 44 20 46 4F 52 20 45 41 43 48 20 44 49 |ATED FOR EACH DI| 000001C0: 52 45 43 54 4F 52 59 20 45 4E 54 52 59 2E 0D 0D |RECTORY ENTRY...| 000001D0: 0D 0D 20 20 20 20 C9 4E 20 54 57 4F 20 54 41 42 |.. .N TWO TAB| 000001E0: 4C 45 53 2C 20 54 48 45 20 44 49 53 4B 20 4E 41 |LES, THE DISK NA| 000001F0: 4D 45 20 4E 45 45 44 0D 45 58 49 53 54 20 4F 4E |ME NEED.EXIST ON| 00000200: 4C 59 20 4F 4E 43 45 2E 20 20 C2 55 54 20 54 48 |LY ONCE. .UT TH| 00000210: 45 20 50 52 4F 42 4C 45 4D 20 49 53 0D 4B 4E 4F |E PROBLEM IS.KNO| 00000220: 57 49 4E 47 20 20 57 48 49 43 48 20 44 49 53 4B |WING WHICH DISK| 00000230: 20 4E 41 4D 45 20 42 45 4C 4F 4E 47 53 20 54 4F | NAME BELONGS TO| 00000240: 0D 57 48 49 43 48 20 44 49 52 45 43 54 4F 52 59 |.WHICH DIRECTORY| 00000250: 20 45 4E 54 52 59 2E 0D 0D 20 20 20 20 C9 46 20 | ENTRY... .F | 00000260: 54 48 45 20 44 49 53 4B 20 C9 C4 20 57 41 53 20 |THE DISK .. WAS | 00000270: 41 4C 53 4F 20 41 56 41 49 4C 41 42 4C 45 0D 54 |ALSO AVAILABLE.T| 00000280: 48 45 4E 20 54 48 45 20 4E 41 4D 45 20 54 41 42 |HEN THE NAME TAB| 00000290: 4C 45 20 43 4F 55 4C 44 20 42 45 0D 53 45 41 52 |LE COULD BE.SEAR| 000002A0: 43 48 45 44 20 53 45 52 49 41 4C 4C 59 20 28 49 |CHED SERIALLY (I| 000002B0: 2E 45 2E 20 53 54 41 52 54 49 4E 47 0D 45 41 43 |.E. STARTING.EAC| 000002C0: 48 20 54 49 4D 45 20 41 54 20 54 48 45 20 42 45 |H TIME AT THE BE| 000002D0: 47 49 4E 4E 49 4E 47 29 20 46 4F 52 20 41 0D 4D |GINNING) FOR A.M| 000002E0: 41 54 43 48 2E 20 20 C8 4F 57 45 56 45 52 2C 20 |ATCH. .OWEVER, | 000002F0: 49 46 20 54 48 45 20 4E 41 4D 45 20 54 41 42 4C |IF THE NAME TABL| 00000300: 45 0D 45 4E 54 52 59 20 4E 55 4D 42 45 52 20 57 |E.ENTRY NUMBER W| 00000310: 41 53 20 53 54 4F 52 45 44 20 57 49 54 48 20 54 |AS STORED WITH T| 00000320: 48 45 0D 44 49 52 45 43 54 4F 52 59 20 54 41 42 |HE.DIRECTORY TAB| 00000330: 4C 45 20 45 4E 54 52 59 2C 20 54 48 45 4E 20 54 |LE ENTRY, THEN T| 00000340: 48 45 20 44 49 53 4B 0D 4E 41 4D 45 20 43 4F 55 |HE DISK.NAME COU| 00000350: 4C 44 20 42 45 20 41 43 43 45 53 53 45 44 20 44 |LD BE ACCESSED D| 00000360: 49 52 45 43 54 4C 59 20 42 59 0D 53 55 42 53 43 |IRECTLY BY.SUBSC| 00000370: 52 49 50 54 49 4E 47 2E 20 20 C1 20 52 45 4C 41 |RIPTING. . RELA| 00000380: 54 49 56 45 4C 59 20 53 49 4D 50 4C 45 0D 50 52 |TIVELY SIMPLE.PR| 00000390: 4F 43 45 44 55 52 45 20 49 4E 20 C2 C1 D3 C9 C3 |OCEDURE IN .....| 000003A0: 2E 0D 0D 0D 0D 0D 20 20 20 20 D3 55 42 53 43 52 |...... .UBSCR| 000003B0: 49 50 54 49 4E 47 20 52 45 51 55 49 52 45 53 20 |IPTING REQUIRES | 000003C0: 54 48 45 0D 4D 55 4C 54 49 50 4C 59 49 4E 47 20 |THE.MULTIPLYING | 000003D0: 4F 46 20 54 48 45 20 49 54 45 4D 20 53 49 5A 45 |OF THE ITEM SIZE| 000003E0: 20 42 59 20 54 48 45 0D 4E 55 4D 42 45 52 20 49 | BY THE.NUMBER I| 000003F0: 4E 20 54 48 45 20 54 41 42 4C 45 20 4F 46 20 54 |N THE TABLE OF T| 00000400: 48 45 20 49 54 45 4D 0D 44 45 53 49 52 45 44 2E |HE ITEM.DESIRED.| 00000410: 20 20 D4 48 45 20 54 48 45 4F 52 59 20 49 53 20 | .HE THEORY IS | 00000420: 53 49 4D 50 4C 45 2C 20 42 55 54 2C 0D 49 4E 20 |SIMPLE, BUT,.IN | 00000430: CD CC 20 54 48 45 20 45 58 45 43 55 54 49 4F 4E |.. THE EXECUTION| 00000440: 20 49 53 20 41 20 42 49 54 20 4D 4F 52 45 0D 44 | IS A BIT MORE.D| 00000450: 49 46 46 49 43 55 4C 54 2E 20 20 D4 48 45 20 46 |IFFICULT. .HE F| 00000460: 4F 4C 4C 4F 57 49 4E 47 20 52 4F 55 54 49 4E 45 |OLLOWING ROUTINE| 00000470: 2C 0D D3 C5 D4 D0 D4 D2 20 28 D3 45 54 20 D0 4F |,....... (.ET .O| 00000480: 49 4E 54 45 52 29 2C 20 49 53 20 41 20 CD CC 0D |INTER), IS A ...| 00000490: 53 55 42 53 43 52 49 50 54 45 52 2E 20 20 C9 54 |SUBSCRIPTER. .T| 000004A0: 20 41 43 43 45 50 54 53 20 54 48 45 20 49 54 45 | ACCEPTS THE ITE| 000004B0: 4D 0D 53 49 5A 45 20 49 4E 20 54 48 45 20 D8 20 |M.SIZE IN THE . | 000004C0: 52 45 47 49 53 54 45 52 20 41 4E 44 20 54 48 45 |REGISTER AND THE| 000004D0: 20 49 54 45 4D 0D 4E 55 4D 42 45 52 20 44 45 53 | ITEM.NUMBER DES| 000004E0: 49 52 45 44 20 49 4E 20 54 48 45 20 D9 20 52 45 |IRED IN THE . RE| 000004F0: 47 49 53 54 45 52 20 41 4E 44 0D 52 45 54 55 52 |GISTER AND.RETUR| 00000500: 4E 53 20 54 48 45 20 50 52 4F 44 55 43 54 20 4F |NS THE PRODUCT O| 00000510: 46 20 54 48 45 53 45 20 54 57 4F 2E 0D D4 48 45 |F THESE TWO...HE| 00000520: 20 49 54 45 4D 20 4E 55 4D 42 45 52 20 49 53 20 | ITEM NUMBER IS | 00000530: 52 45 4C 41 54 49 56 45 20 54 4F 20 5A 45 52 4F |RELATIVE TO ZERO| 00000540: 2C 0D 54 48 41 54 20 49 53 2C 20 54 48 45 20 46 |,.THAT IS, THE F| 00000550: 49 52 53 54 20 49 54 45 4D 20 49 53 20 5A 45 52 |IRST ITEM IS ZER| 00000560: 4F 20 41 4E 44 0D 54 48 45 20 53 45 43 4F 4E 44 |O AND.THE SECOND| 00000570: 2C 20 31 2C 20 41 4E 44 20 53 4F 20 46 4F 52 54 |, 1, AND SO FORT| 00000580: 48 2E 0D 0D 0D 0D 0D 0D 20 20 20 20 D4 48 45 20 |H....... .HE | 00000590: 52 4F 55 54 49 4E 45 20 52 45 54 55 52 4E 53 2C |ROUTINE RETURNS,| 000005A0: 20 49 4E 20 54 48 45 0D CC D3 C2 2D CD D3 C2 20 | IN THE....-... | 000005B0: 46 4F 52 4D 41 54 2C 20 54 48 45 20 50 52 4F 44 |FORMAT, THE PROD| 000005C0: 55 43 54 20 4F 46 20 54 48 45 20 D8 0D 41 4E 44 |UCT OF THE ..AND| 000005D0: 20 D9 20 52 45 47 49 53 54 45 52 53 2E 20 20 D4 | . REGISTERS. .| 000005E0: 48 45 20 41 44 44 49 54 49 4F 4E 20 4F 46 20 54 |HE ADDITION OF T| 000005F0: 48 45 0D 50 52 4F 44 55 43 54 20 54 4F 20 54 48 |HE.PRODUCT TO TH| 00000600: 45 20 42 41 53 45 20 41 44 44 52 45 53 53 20 4F |E BASE ADDRESS O| 00000610: 46 20 54 48 45 0D 54 41 42 4C 45 20 57 49 4C 4C |F THE.TABLE WILL| 00000620: 20 52 45 53 55 4C 54 20 49 4E 20 54 48 45 20 41 | RESULT IN THE A| 00000630: 44 44 52 45 53 53 20 4F 46 0D 54 48 45 20 44 45 |DDRESS OF.THE DE| 00000640: 53 49 52 45 44 20 49 54 45 4D 2E 0D 0D 20 20 20 |SIRED ITEM... | 00000650: 20 D4 48 45 20 43 41 4C 4C 49 4E 47 20 53 45 51 | .HE CALLING SEQ| 00000660: 55 45 4E 43 45 20 54 4F 20 49 4E 56 4F 4B 45 0D |UENCE TO INVOKE.| 00000670: 54 48 45 20 52 4F 55 54 49 4E 45 20 49 53 3A 0D |THE ROUTINE IS:.| 00000680: 0D 20 31 29 20 CC 4F 41 44 20 54 48 45 20 D8 20 |. 1) .OAD THE . | 00000690: 52 45 47 49 53 54 45 52 20 57 49 54 48 20 54 48 |REGISTER WITH TH| 000006A0: 45 20 53 49 5A 45 0D 20 20 20 20 4F 46 20 45 41 |E SIZE. OF EA| 000006B0: 43 48 20 54 41 42 4C 45 20 49 54 45 4D 2E 20 20 |CH TABLE ITEM. | 000006C0: C5 56 45 52 59 20 49 54 45 4D 0D 20 20 20 20 4D |.VERY ITEM. M| 000006D0: 55 53 54 20 42 45 20 54 48 45 20 53 41 4D 45 20 |UST BE THE SAME | 000006E0: 4C 45 4E 47 54 48 3B 0D 0D 20 32 29 20 CC 4F 41 |LENGTH;.. 2) .OA| 000006F0: 44 20 54 48 45 20 D9 20 52 45 47 49 53 54 45 52 |D THE . REGISTER| 00000700: 20 57 49 54 48 20 54 48 45 0D 20 20 20 20 4E 55 | WITH THE. NU| 00000710: 4D 42 45 52 20 49 4E 20 54 48 45 20 54 41 42 4C |MBER IN THE TABL| 00000720: 45 20 44 45 53 49 52 45 44 2E 20 20 D4 48 45 0D |E DESIRED. .HE.| 00000730: 20 20 20 20 46 49 52 53 54 20 49 54 45 4D 20 49 | FIRST ITEM I| 00000740: 53 20 5A 45 52 4F 2C 20 54 48 45 20 53 45 43 4F |S ZERO, THE SECO| 00000750: 4E 44 20 49 53 0D 20 20 20 20 31 2C 20 45 54 43 |ND IS. 1, ETC| 00000760: 2E 3B 0D 0D 20 33 29 20 CA D3 D2 20 54 4F 20 D3 |.;.. 3) ... TO .| 00000770: C5 D4 D0 D4 D2 3B 0D 0D 20 34 29 20 D3 54 4F 52 |.....;.. 4) .TOR| 00000780: 45 20 54 48 45 20 52 45 54 55 52 4E 45 44 20 D8 |E THE RETURNED .| 00000790: 20 41 4E 44 20 D9 0D 20 20 20 20 52 45 47 49 53 | AND .. REGIS| 000007A0: 54 45 52 53 2C 20 54 48 45 4E 20 41 44 44 20 54 |TERS, THEN ADD T| 000007B0: 48 45 53 45 20 54 4F 20 54 48 45 0D 20 20 20 20 |HESE TO THE. | 000007C0: 54 48 45 20 54 41 42 4C 45 20 42 41 53 45 20 41 |THE TABLE BASE A| 000007D0: 44 44 52 45 53 53 2E 0D 0D 20 20 20 20 D3 C5 D4 |DDRESS... ...| 000007E0: D0 D4 D2 20 52 45 51 55 49 52 45 53 20 54 48 52 |... REQUIRES THR| 000007F0: 45 45 20 44 41 54 41 20 46 49 45 4C 44 53 0D 57 |EE DATA FIELDS.W| 00000800: 48 49 43 48 20 41 52 45 3A 0D 0D C9 D4 CD D3 C9 |HICH ARE:.......| 00000810: DA 20 2E C2 D9 D4 C5 20 30 30 30 20 30 30 30 20 |. ..... 000 000 | 00000820: 3B 20 C9 54 45 4D 20 53 49 5A 45 20 57 4F 52 4B |; .TEM SIZE WORK| 00000830: 0D C9 D4 CD CE D5 CD 20 2E C2 D9 D4 C5 20 30 30 |....... ..... 00| 00000840: 30 20 20 20 20 20 3B 20 CE 55 4D 42 45 52 20 49 |0 ; .UMBER I| 00000850: 4E 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |N. | 00000860: 20 20 20 20 20 20 20 3B 20 20 54 41 42 4C 45 20 | ; TABLE | 00000870: 44 45 53 49 52 45 44 0D D2 C5 D3 D5 CC D4 20 2C |DESIRED....... ,| 00000880: C2 D9 D4 C5 20 30 30 30 20 30 30 30 20 3B 20 D2 |.... 000 000 ; .| 00000890: 45 53 55 4C 54 20 57 48 49 43 48 0D 20 20 20 20 |ESULT WHICH. | 000008A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000008B0: 20 3B 20 20 49 53 20 4C 4F 41 44 45 44 0D 20 20 | ; IS LOADED. | 000008C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000008D0: 20 20 20 3B 20 20 49 4E 54 4F 20 D8 20 41 4E 44 | ; INTO . AND| 000008E0: 20 D9 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 | .. | 000008F0: 20 20 20 20 20 20 20 20 3B 20 20 4F 4E 20 52 45 | ; ON RE| 00000900: 54 55 52 4E 0D 0D 0D 0D 20 20 20 20 D4 48 45 20 |TURN.... .HE | 00000910: 52 4F 55 54 49 4E 45 20 42 45 47 49 4E 53 20 42 |ROUTINE BEGINS B| 00000920: 59 20 53 54 4F 52 49 4E 47 20 54 48 45 0D 49 4E |Y STORING THE.IN| 00000930: 50 55 54 54 45 44 20 49 54 45 4D 20 53 49 5A 45 |PUTTED ITEM SIZE| 00000940: 20 41 4E 44 20 49 54 45 4D 20 4E 55 4D 42 45 52 | AND ITEM NUMBER| 00000950: 2E 0D D4 48 45 4E 20 54 48 45 20 52 45 53 55 4C |...HEN THE RESUL| 00000960: 54 20 46 49 45 4C 44 20 49 53 20 49 4E 49 54 49 |T FIELD IS INITI| 00000970: 41 4C 49 5A 45 44 0D 54 4F 20 5A 45 52 4F 2E 0D |ALIZED.TO ZERO..| 00000980: 0D D3 C5 D4 D0 D4 D2 20 D3 D4 D8 20 C9 D4 CD D3 |....... ... ....| 00000990: C9 DA 0D 20 20 20 20 20 20 20 D3 D4 D9 20 C9 D4 |... ... ..| 000009A0: CD CE D5 CD 0D 20 20 20 20 20 20 20 CC C4 C1 20 |..... ... | 000009B0: 23 30 0D 20 20 20 20 20 20 20 D3 D4 C1 20 D2 C5 |#0. ... ..| 000009C0: D3 D5 CC D4 0D 20 20 20 20 20 20 20 D3 D4 C1 20 |..... ... | 000009D0: D2 C5 D3 D5 CC D4 2B 31 0D 20 20 20 20 20 20 20 |......+1. | 000009E0: D3 D4 C1 20 C9 D4 CD D3 C9 DA 2B 31 0D 0D 20 20 |... ......+1.. | 000009F0: 20 20 D3 C5 D4 D0 30 31 20 49 53 20 54 48 45 20 | ....01 IS THE | 00000A00: 42 45 47 49 4E 49 4E 47 20 4F 46 20 54 48 45 0D |BEGINING OF THE.| 00000A10: 4C 4F 4F 50 2E 20 D4 48 45 20 49 54 45 4D 20 53 |LOOP. .HE ITEM S| 00000A20: 49 5A 45 20 49 53 20 54 45 53 54 45 44 20 46 4F |IZE IS TESTED FO| 00000A30: 52 0D 5A 45 52 4F 2C 20 41 4E 44 20 49 46 20 54 |R.ZERO, AND IF T| 00000A40: 52 55 45 20 41 20 42 52 41 4E 43 48 20 54 4F 20 |RUE A BRANCH TO | 00000A50: 54 48 45 0D 45 58 49 54 20 49 53 20 50 45 52 46 |THE.EXIT IS PERF| 00000A60: 4F 52 4D 45 44 2E 20 20 CF 54 48 45 52 57 49 53 |ORMED. .THERWIS| 00000A70: 45 20 54 48 45 0D 49 54 45 4D 20 4E 55 4D 42 45 |E THE.ITEM NUMBE| 00000A80: 52 20 46 49 45 4C 44 20 49 53 20 53 48 49 46 54 |R FIELD IS SHIFT| 00000A90: 45 44 20 4C 45 46 54 0D 57 49 54 48 20 54 48 45 |ED LEFT.WITH THE| 00000AA0: 20 48 49 47 48 20 4F 52 44 45 52 20 42 49 54 20 | HIGH ORDER BIT | 00000AB0: 46 41 4C 4C 49 4E 47 20 49 4E 54 4F 0D 54 48 45 |FALLING INTO.THE| 00000AC0: 20 43 41 52 52 59 2E 0D 0D 20 20 20 20 C9 46 20 | CARRY... .F | 00000AD0: 41 20 4F 4E 45 20 42 49 54 20 49 53 20 46 4F 55 |A ONE BIT IS FOU| 00000AE0: 4E 44 20 54 48 45 20 49 54 45 4D 0D 53 49 5A 45 |ND THE ITEM.SIZE| 00000AF0: 20 49 53 20 41 44 44 45 44 20 54 4F 20 54 48 45 | IS ADDED TO THE| 00000B00: 20 52 45 53 55 4C 54 2E 20 20 C9 46 20 54 48 45 | RESULT. .F THE| 00000B10: 0D 42 49 54 20 49 53 20 5A 45 52 4F 20 54 48 45 |.BIT IS ZERO THE| 00000B20: 4E 20 41 20 42 52 41 4E 43 48 20 54 4F 20 4D 55 |N A BRANCH TO MU| 00000B30: 4C 54 49 50 4C 59 0D 42 59 20 54 57 4F 20 49 53 |LTIPLY.BY TWO IS| 00000B40: 20 50 45 52 46 4F 52 4D 45 44 2E 0D 0D D3 C5 D4 | PERFORMED......| 00000B50: D0 30 31 20 CC C4 C1 20 C9 D4 CD CE D5 CD 0D 20 |.01 ... ....... | 00000B60: 20 20 20 20 20 20 C2 C5 D1 20 D3 C5 D4 D0 30 33 | ... ....03| 00000B70: 20 20 3B 20 C5 58 49 54 0D 20 20 20 20 20 20 20 | ; .XIT. | 00000B80: CC D3 D2 20 C9 D4 CD CE D5 CD 0D 20 20 20 20 20 |... ....... | 00000B90: 20 20 C2 C3 C3 20 D3 C5 D4 D0 30 32 20 20 3B 20 | ... ....02 ; | 00000BA0: DA 45 52 4F 20 42 49 54 20 42 52 41 4E 43 48 0D |.ERO BIT BRANCH.| 00000BB0: 20 20 20 20 20 20 20 C3 CC C3 20 20 20 20 20 20 | ... | 00000BC0: 20 20 20 3B 20 C1 44 44 20 49 54 45 4D 20 53 49 | ; .DD ITEM SI| 00000BD0: 5A 45 0D 20 20 20 20 20 20 20 CC C4 C1 20 D2 C5 |ZE. ... ..| 00000BE0: D3 D5 CC D4 0D 20 20 20 20 20 20 20 C1 C4 C3 20 |..... ... | 00000BF0: C9 D4 CD D3 C9 DA 0D 20 20 20 20 20 20 20 CC C4 |....... ..| 00000C00: C1 20 D2 C5 D3 D5 CC D4 2B 31 0D 20 20 20 20 20 |. ......+1. | 00000C10: 20 20 C1 C4 C3 20 C9 D4 CD D3 C9 DA 2B 31 0D 20 | ... ......+1. | 00000C20: 20 20 20 20 20 20 D3 D4 C1 20 D2 C5 D3 D5 CC D4 | ... ......| 00000C30: 2B 31 0D 0D 0D 0D 20 20 20 20 C1 46 54 45 52 20 |+1.... .FTER | 00000C40: 45 41 43 48 20 53 48 49 46 54 20 4F 46 20 54 48 |EACH SHIFT OF TH| 00000C50: 45 20 49 4E 50 55 54 0D 46 49 45 4C 44 2C 20 20 |E INPUT.FIELD, | 00000C60: C9 D4 CD CE D5 CD 2C 20 54 48 45 20 50 4F 57 45 |......, THE POWE| 00000C70: 52 20 4F 46 20 54 48 45 0D 52 45 53 55 4C 54 20 |R OF THE.RESULT | 00000C80: 49 53 20 52 41 49 53 45 44 20 42 59 20 54 57 4F |IS RAISED BY TWO| 00000C90: 2E 0D 0D D3 C5 D4 D0 30 32 20 C3 CC C3 20 20 20 |.......02 ... | 00000CA0: 20 20 20 20 20 20 3B 20 CD 55 4C 54 49 50 4C 59 | ; .ULTIPLY| 00000CB0: 20 42 59 20 54 57 4F 0D 20 20 20 20 20 20 20 C1 | BY TWO. .| 00000CC0: D3 CC 20 C9 D4 CD D3 C9 DA 0D 20 20 20 20 20 20 |.. ....... | 00000CD0: 20 D2 CF CC 20 C9 D4 CD D3 C9 DA 2B 31 0D 20 20 | ... ......+1. | 00000CE0: 20 20 20 20 20 CA CD D0 20 D3 C5 D4 D0 30 31 20 | ... ....01 | 00000CF0: 20 3B 20 D2 45 54 55 52 4E 20 54 4F 20 4D 41 49 | ; .ETURN TO MAI| 00000D00: 4E 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |N. | 00000D10: 20 20 20 20 20 3B 20 20 4C 4F 4F 50 0D 0D 20 20 | ; LOOP.. | 00000D20: 20 20 C1 54 20 54 48 45 20 45 4E 44 20 4F 46 20 | .T THE END OF | 00000D30: 54 48 45 20 52 4F 55 54 49 4E 45 2C 20 C9 D4 CD |THE ROUTINE, ...| 00000D40: CE D5 CD 0D 49 53 20 5A 45 52 4F 2C 20 54 48 45 |....IS ZERO, THE| 00000D50: 20 45 58 49 54 20 49 53 20 54 48 52 4F 55 47 48 | EXIT IS THROUGH| 00000D60: 20 D3 C5 D4 D0 30 33 2E 0D D4 48 45 20 45 58 49 | ....03...HE EXI| 00000D70: 54 20 4C 4F 41 44 53 20 54 48 45 20 CC D3 C2 20 |T LOADS THE ... | 00000D80: 4F 46 20 54 48 45 20 52 45 53 55 4C 54 0D 49 4E |OF THE RESULT.IN| 00000D90: 54 4F 20 54 48 45 20 D8 20 52 45 47 49 53 54 45 |TO THE . REGISTE| 00000DA0: 52 20 41 4E 44 20 54 48 45 20 CD D3 C2 20 49 4E |R AND THE ... IN| 00000DB0: 54 4F 0D 54 48 45 20 D9 20 52 45 47 49 53 54 45 |TO.THE . REGISTE| 00000DC0: 52 2E 20 20 D4 48 45 4E 20 41 4E 20 D2 D4 D3 20 |R. .HEN AN ... | 00000DD0: 54 4F 20 54 48 45 0D 43 41 4C 4C 49 4E 47 20 49 |TO THE.CALLING I| 00000DE0: 4E 53 54 52 55 43 54 49 4F 4E 20 53 45 51 55 45 |NSTRUCTION SEQUE| 00000DF0: 4E 43 45 20 49 53 0D 50 45 52 46 4F 52 4D 45 44 |NCE IS.PERFORMED| 00000E00: 2E 0D 0D 0D D3 C5 D4 D0 30 33 20 CC C4 D8 20 D2 |........03 ... .| 00000E10: C5 D3 D5 CC D4 0D 20 20 20 20 20 20 20 CC C4 D9 |...... ...| 00000E20: 20 D2 C5 D3 D5 CC D4 2B 31 0D 20 20 20 20 20 20 | ......+1. | 00000E30: 20 D2 D4 D3 0D 0D 20 20 20 20 D9 4F 55 20 43 41 | ..... .OU CA| 00000E40: 4E 20 41 43 43 4F 4D 50 4C 49 53 48 20 54 48 49 |N ACCOMPLISH THI| 00000E50: 53 20 57 49 54 48 20 54 48 45 0D 46 4F 4C 4C 4F |S WITH THE.FOLLO| 00000E60: 57 49 4E 47 20 49 4E 53 54 52 55 43 54 49 4F 4E |WING INSTRUCTION| 00000E70: 20 53 45 51 55 45 4E 43 45 3A 0D 0D D2 C5 D4 D5 | SEQUENCE:......| 00000E80: D2 CE 20 D4 D8 C1 0D 20 20 20 20 20 20 20 C1 C4 |.. .... ..| 00000E90: C3 20 C2 C1 D3 C5 0D 20 20 20 20 20 20 20 D3 D4 |. ..... ..| 00000EA0: C1 20 C2 C1 D3 C5 0D 20 20 20 20 20 20 20 D4 D9 |. ..... ..| 00000EB0: C1 0D 20 20 20 20 20 20 20 C1 C4 C3 20 C2 C1 D3 |.. ... ...| 00000EC0: C5 2B 31 0D 20 20 20 20 20 20 20 D3 D4 C1 20 C2 |.+1. ... .| 00000ED0: C1 D3 C5 2B 31 0D 0D 20 20 20 20 D7 49 54 48 20 |...+1.. .ITH | 00000EE0: 54 48 49 53 20 41 50 50 52 4F 41 43 48 20 54 48 |THIS APPROACH TH| 00000EF0: 45 20 41 44 44 52 45 53 53 20 4F 46 0D 54 48 45 |E ADDRESS OF.THE| 00000F00: 20 49 54 45 4D 20 44 45 53 49 52 45 44 20 49 53 | ITEM DESIRED IS| 00000F10: 20 49 4E 20 54 48 45 20 46 49 45 4C 44 0D C2 C1 | IN THE FIELD...| 00000F20: D3 C5 2E 0D 0D 20 20 20 20 20 20 20 20 2A 2A 2A |..... ***| 00000F30: 2A 20 C5 4E 44 20 4F 46 20 D4 45 58 54 20 2A 2A |* .ND OF .EXT **| 00000F40: 2A 2A 0D |**. |
..^U:ZERO.. TIPS: ML SUBSCRIPTER
.. BY MARTIN MATTHEWS.. ONE
OF THE ADVANTAGES OF BASIC IS.THE EASE I
N WHICH IT OFFERS CERTAIN.FUNCTIONS. ON
E OF THESE FUNCTIONS IS.SUBSCRIPTING. F
OR ILLUSTRATION,.CONSIDER THE SITUATION
WHERE TWO.LISTS OR TABLES ARE REQUIRED.
THE.DISK DIRECTORY ENTRIES AND THE DISK
.NAMES OF YOUR DISK INVENTORY COULD.BE S
UCH LISTS. COMBINED INTO ONE.TABLE, THE
DISK NAME WOULD HAVE TO.BE REPEATED FOR
EACH DIRECTORY ENTRY..... IN TWO TAB
LES, THE DISK NAME NEED.EXIST ONLY ONCE.
BUT THE PROBLEM IS.KNOWING WHICH DISK
NAME BELONGS TO.WHICH DIRECTORY ENTRY..
. IF THE DISK ID WAS ALSO AVAILABLE.T
HEN THE NAME TABLE COULD BE.SEARCHED SER
IALLY (I.E. STARTING.EACH TIME AT THE BE
GINNING) FOR A.MATCH. HOWEVER, IF THE N
AME TABLE.ENTRY NUMBER WAS STORED WITH T
HE.DIRECTORY TABLE ENTRY, THEN THE DISK.
NAME COULD BE ACCESSED DIRECTLY BY.SUBSC
RIPTING. A RELATIVELY SIMPLE.PROCEDURE
IN BASIC...... SUBSCRIPTING REQUIRES
THE.MULTIPLYING OF THE ITEM SIZE BY THE.
NUMBER IN THE TABLE OF THE ITEM.DESIRED.
THE THEORY IS SIMPLE, BUT,.IN ML THE E
XECUTION IS A BIT MORE.DIFFICULT. THE F
OLLOWING ROUTINE,.SETPTR (SET POINTER),
IS A ML.SUBSCRIPTER. IT ACCEPTS THE ITE
M.SIZE IN THE X REGISTER AND THE ITEM.NU
MBER DESIRED IN THE Y REGISTER AND.RETUR
NS THE PRODUCT OF THESE TWO..THE ITEM NU
MBER IS RELATIVE TO ZERO,.THAT IS, THE F
IRST ITEM IS ZERO AND.THE SECOND, 1, AND
SO FORTH....... THE ROUTINE RETURNS,
IN THE.LSB-MSB FORMAT, THE PRODUCT OF T
HE X.AND Y REGISTERS. THE ADDITION OF T
HE.PRODUCT TO THE BASE ADDRESS OF THE.TA
BLE WILL RESULT IN THE ADDRESS OF.THE DE
SIRED ITEM... THE CALLING SEQUENCE TO
INVOKE.THE ROUTINE IS:.. 1) LOAD THE X
REGISTER WITH THE SIZE. OF EACH TABLE
ITEM. EVERY ITEM. MUST BE THE SAME
LENGTH;.. 2) LOAD THE Y REGISTER WITH TH
E. NUMBER IN THE TABLE DESIRED. THE.
FIRST ITEM IS ZERO, THE SECOND IS.
1, ETC.;.. 3) JSR TO SETPTR;.. 4) STOR
E THE RETURNED X AND Y. REGISTERS, TH
EN ADD THESE TO THE. THE TABLE BASE A
DDRESS... SETPTR REQUIRES THREE DATA
FIELDS.WHICH ARE:..ITMSIZ .BYTE 000 000
; ITEM SIZE WORK.ITMNUM .BYTE 000 ;
NUMBER IN. ; TABLE
DESIRED.RESULT ,BYTE 000 000 ; RESULT WH
ICH. ; IS LOADED.
; INTO X AND Y.
; ON RETURN.... THE
ROUTINE BEGINS BY STORING THE.INPUTTED I
TEM SIZE AND ITEM NUMBER..THEN THE RESUL
T FIELD IS INITIALIZED.TO ZERO...SETPTR
STX ITMSIZ. STY ITMNUM. LDA
#0. STA RESULT. STA RESULT+1
. STA ITMSIZ+1.. SETP01 IS THE
BEGINING OF THE.LOOP. THE ITEM SIZE IS T
ESTED FOR.ZERO, AND IF TRUE A BRANCH TO
THE.EXIT IS PERFORMED. OTHERWISE THE.IT
EM NUMBER FIELD IS SHIFTED LEFT.WITH THE
HIGH ORDER BIT FALLING INTO.THE CARRY..
. IF A ONE BIT IS FOUND THE ITEM.SIZE
IS ADDED TO THE RESULT. IF THE.BIT IS
ZERO THEN A BRANCH TO MULTIPLY.BY TWO IS
PERFORMED...SETP01 LDA ITMNUM. BE
Q SETP03 ; EXIT. LSR ITMNUM.
BCC SETP02 ; ZERO BIT BRANCH. C
LC ; ADD ITEM SIZE. LDA RE
SULT. ADC ITMSIZ. LDA RESULT
+1. ADC ITMSIZ+1. STA RESULT
+1.... AFTER EACH SHIFT OF THE INPUT.
FIELD, ITMNUM, THE POWER OF THE.RESULT
IS RAISED BY TWO...SETP02 CLC ;
MULTIPLY BY TWO. ASL ITMSIZ.
ROL ITMSIZ+1. JMP SETP01 ; RETUR
N TO MAIN. ; LOOP..
AT THE END OF THE ROUTINE, ITMNUM.IS Z
ERO, THE EXIT IS THROUGH SETP03..THE EXI
T LOADS THE LSB OF THE RESULT.INTO THE X
REGISTER AND THE MSB INTO.THE Y REGISTE
R. THEN AN RTS TO THE.CALLING INSTRUCTI
ON SEQUENCE IS.PERFORMED....SETP03 LDX R
ESULT. LDY RESULT+1. RTS..
YOU CAN ACCOMPLISH THIS WITH THE.FOLLO
WING INSTRUCTION SEQUENCE:..RETURN TXA.
ADC BASE. STA BASE. TY
A. ADC BASE+1. STA BASE+1..
WITH THIS APPROACH THE ADDRESS OF.THE
ITEM DESIRED IS IN THE FIELD.BASE...
**** END OF TEXT ****.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL