T.BIT.1
FILE INFORMATION
FILENAME(S): T.BIT.1
FILE TYPE(S): PRG
FILE SIZE: 5.4K
FIRST SEEN: 2025-11-30 18:12:20
APPEARS ON: 1 disk(s)
FILE HASH
84e866d8be69c9163d16cc47c7cd7c580d09234bdba15fbfc4fbdbd838e986de
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| LOADSTAR 41 S 2 | T.BIT.1 | PRG | Sailor, Ganheden | 16 | 9 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 00 80 5E 55 3A 5A 45 52 4F 0D 0D 0D 20 20 20 20 |..^U:ZERO... | 00000010: 20 20 20 20 20 20 20 20 C2 49 54 20 C2 59 20 C2 | .IT .Y .| 00000020: 49 54 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 |IT. | 00000030: 20 D0 41 52 54 20 31 0D 0D 20 20 20 20 20 20 20 | .ART 1.. | 00000040: 20 20 20 C2 59 20 CD 49 4B 45 20 CD 41 59 4E 41 | .Y .IKE .AYNA| 00000050: 52 44 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 |RD. | 00000060: 26 20 CA 49 4D 20 D2 4F 57 0D 0D 20 20 D4 48 49 |& .IM .OW.. .HI| 00000070: 53 20 4D 4F 4E 54 48 20 57 45 27 4C 4C 20 43 52 |S MONTH WE'LL CR| 00000080: 45 41 54 45 20 41 20 CD 41 43 48 49 4E 45 0D CC |EATE A .ACHINE..| 00000090: 41 4E 47 55 41 47 45 20 C9 CE D0 D5 D4 20 52 4F |ANGUAGE ..... RO| 000000A0: 55 54 49 4E 45 20 54 48 41 54 20 41 4C 4C 4F 57 |UTINE THAT ALLOW| 000000B0: 53 0D 59 4F 55 20 54 4F 20 46 49 4C 54 45 52 20 |S.YOU TO FILTER | 000000C0: 43 45 52 54 41 49 4E 20 47 52 4F 55 50 53 20 4F |CERTAIN GROUPS O| 000000D0: 46 0D 43 48 41 52 41 43 54 45 52 53 20 28 45 2E |F.CHARACTERS (E.| 000000E0: 47 2E 20 CC CF D7 C5 D2 C3 C1 D3 C5 2C 0D D5 D0 |G. .........,...| 000000F0: D0 C5 D2 C3 C1 D3 C5 2C 20 CE D5 CD C2 C5 D2 D3 |......., .......| 00000100: 2C 20 45 54 43 29 20 4F 52 20 43 4F 4D 42 49 4E |, ETC) OR COMBIN| 00000110: 45 0D 54 48 45 53 45 20 47 52 4F 55 50 53 2E 20 |E.THESE GROUPS. | 00000120: D4 4F 20 43 41 4C 4C 20 54 48 49 53 20 52 4F 55 |.O CALL THIS ROU| 00000130: 54 49 4E 45 2C 0D 59 4F 55 20 53 48 4F 55 4C 44 |TINE,.YOU SHOULD| 00000140: 20 45 4E 54 45 52 3A 0D 0D 20 D3 D9 D3 20 33 32 | ENTER:.. ... 32| 00000150: 37 36 38 2C 5B CD CC C5 CE 5D 2C 5B C6 D5 CE C3 |768,[....],[....| 00000160: D4 C9 CF CE 5D 2C 5B D3 D4 D2 C9 CE C7 5D 0D 0D |....],[......]..| 00000170: CD CC C5 CE 2C 20 C6 D5 CE C3 D4 C9 CF CE 20 41 |...., ........ A| 00000180: 4E 44 20 D3 D4 D2 C9 CE C7 20 41 52 45 20 45 58 |ND ...... ARE EX| 00000190: 50 4C 41 49 4E 2D 0D 45 44 20 41 54 20 54 48 45 |PLAIN-.ED AT THE| 000001A0: 20 45 4E 44 20 4F 46 20 54 48 49 53 20 41 52 54 | END OF THIS ART| 000001B0: 49 43 4C 45 2E 20 D4 48 49 53 0D 52 4F 55 54 49 |ICLE. .HIS.ROUTI| 000001C0: 4E 45 20 43 41 4E 20 4F 4E 4C 59 20 42 45 20 55 |NE CAN ONLY BE U| 000001D0: 53 45 44 20 46 4F 52 20 D3 D4 D2 C9 CE C7 D3 21 |SED FOR .......!| 000001E0: 0D C9 46 20 59 4F 55 20 57 41 4E 54 20 54 4F 20 |..F YOU WANT TO | 000001F0: 47 45 54 20 41 20 4E 55 4D 45 52 49 43 20 56 41 |GET A NUMERIC VA| 00000200: 4C 55 45 2C 0D 55 53 45 20 D6 C1 CC 20 54 4F 20 |LUE,.USE ... TO | 00000210: 54 41 4B 45 20 54 48 45 20 56 41 4C 55 45 20 4F |TAKE THE VALUE O| 00000220: 46 20 54 48 45 0D 53 54 52 49 4E 47 20 59 4F 55 |F THE.STRING YOU| 00000230: 20 53 55 50 50 4C 59 2E 0D 0D 20 20 D4 48 45 20 | SUPPLY... .HE | 00000240: 46 4F 4C 4C 4F 57 49 4E 47 20 49 53 20 49 4E 20 |FOLLOWING IS IN | 00000250: 53 59 4D 42 4F 4C 49 43 20 46 4F 52 4D 41 54 0D |SYMBOLIC FORMAT.| 00000260: 41 4E 44 20 57 41 53 20 4F 52 49 47 49 4E 41 4C |AND WAS ORIGINAL| 00000270: 4C 59 20 57 52 49 54 54 45 4E 20 55 53 49 4E 47 |LY WRITTEN USING| 00000280: 20 54 48 45 0D CD C5 D2 CC C9 CE 20 41 53 53 45 | THE....... ASSE| 00000290: 4D 42 4C 45 52 2E 20 C6 4F 52 20 41 20 42 45 54 |MBLER. .OR A BET| 000002A0: 54 45 52 20 55 4E 44 45 52 2D 0D 53 54 41 4E 44 |TER UNDER-.STAND| 000002B0: 49 4E 47 20 4F 46 20 48 4F 57 20 54 48 45 20 50 |ING OF HOW THE P| 000002C0: 52 4F 47 52 41 4D 20 57 4F 52 4B 53 2C 0D 54 48 |ROGRAM WORKS,.TH| 000002D0: 45 20 46 4F 4C 4C 4F 57 49 4E 47 20 49 53 20 48 |E FOLLOWING IS H| 000002E0: 45 41 56 49 4C 59 20 44 4F 43 55 4D 45 4E 54 45 |EAVILY DOCUMENTE| 000002F0: 44 2E 0D C6 4F 52 20 41 20 4D 49 4C 44 4C 59 20 |D...OR A MILDLY | 00000300: 44 4F 43 55 4D 45 4E 54 45 44 20 44 45 53 43 52 |DOCUMENTED DESCR| 00000310: 49 50 54 49 4F 4E 2C 0D 53 45 45 20 54 48 45 20 |IPTION,.SEE THE | 00000320: 53 4F 55 52 43 45 20 46 49 4C 45 20 4F 4E 20 53 |SOURCE FILE ON S| 00000330: 49 44 45 20 32 20 4F 46 0D 54 48 49 53 20 49 53 |IDE 2 OF.THIS IS| 00000340: 53 55 45 20 45 4E 54 49 54 4C 45 44 20 22 C7 C5 |SUE ENTITLED "..| 00000350: D4 27 CE 20 D3 D4 CF D2 C5 34 38 2E CF 2E 22 0D |.'. .....48...".| 00000360: 0D CE CF D4 C5 3A 20 20 5B C1 5D 20 4D 45 41 4E |.....: [.] MEAN| 00000370: 53 20 C1 43 43 55 4D 55 4C 41 54 4F 52 0D 20 20 |S .CCUMULATOR. | 00000380: 20 20 20 20 20 5B D8 5D 20 4D 45 41 4E 53 20 D8 | [.] MEANS .| 00000390: 20 D2 45 47 49 53 54 45 52 0D 20 20 20 20 20 20 | .EGISTER. | 000003A0: 20 5B D9 5D 20 4D 45 41 4E 53 20 D9 20 D2 45 47 | [.] MEANS . .EG| 000003B0: 49 53 54 45 52 0D 20 20 20 20 20 20 20 C1 4C 4C |ISTER. .LL| 000003C0: 20 4E 55 4D 42 45 52 53 20 53 48 4F 57 4E 20 41 | NUMBERS SHOWN A| 000003D0: 52 45 20 C4 C5 C3 C9 CD C1 CC 21 0D 0D 20 D4 48 |RE .......!.. .H| 000003E0: 45 20 46 4F 4C 4C 4F 57 49 4E 47 20 47 52 4F 55 |E FOLLOWING GROU| 000003F0: 50 20 4F 46 20 C5 D1 D5 27 53 20 41 52 45 20 54 |P OF ...'S ARE T| 00000400: 48 45 0D C5 D1 D5 C1 D4 C5 D3 20 46 4F 52 20 54 |HE........ FOR T| 00000410: 48 45 20 43 4F 44 45 2E 20 20 D4 48 45 59 20 54 |HE CODE. .HEY T| 00000420: 45 4C 4C 20 54 48 45 0D 41 44 44 52 45 53 53 45 |ELL THE.ADDRESSE| 00000430: 53 20 55 53 45 44 20 46 4F 52 20 45 41 43 48 20 |S USED FOR EACH | 00000440: 53 59 4D 42 4F 4C 49 43 0D 57 4F 52 44 2E 0D 0D |SYMBOLIC.WORD...| 00000450: 20 20 C7 C5 D4 C9 CE 20 20 20 20 C5 D1 D5 20 36 | ..... ... 6| 00000460: 35 35 30 38 0D 20 20 D0 D2 C9 CE D4 20 20 20 20 |5508. ..... | 00000470: C5 D1 D5 20 36 35 34 39 30 0D 20 20 C3 C8 D2 C7 |... 65490. ....| 00000480: C5 D4 20 20 20 C5 D1 D5 20 31 31 35 0D 20 20 D0 |.. ... 115. .| 00000490: D4 D2 C7 C5 D4 20 20 20 C5 D1 D5 20 34 35 31 39 |..... ... 4519| 000004A0: 35 0D 20 20 C7 C5 D4 C3 CF CD 20 20 20 C5 D1 D5 |5. ...... ...| 000004B0: 20 35 37 38 37 30 0D 20 20 C3 CF CD CE D5 CD 20 | 57870. ...... | 000004C0: 20 20 C5 D1 D5 20 35 37 38 35 36 0D 20 20 C2 D9 | ... 57856. ..| 000004D0: D4 C5 20 20 20 20 20 C5 D1 D5 20 32 35 31 0D 20 |.. ... 251. | 000004E0: 20 D3 D4 D2 C9 CE C7 20 20 20 C5 D1 D5 20 35 32 | ...... ... 52| 000004F0: 30 30 30 0D 0D 20 20 CE 4F 57 2C 20 4F 4E 20 57 |000.. .OW, ON W| 00000500: 49 54 48 20 54 48 45 20 50 52 4F 47 52 41 4D 2E |ITH THE PROGRAM.| 00000510: 2E 2E 0D 0D 20 20 C6 49 52 53 54 20 57 45 20 4E |.... .IRST WE N| 00000520: 45 45 44 20 54 4F 20 50 41 52 53 45 20 54 48 45 |EED TO PARSE THE| 00000530: 20 54 48 52 45 45 0D 56 41 4C 55 45 53 20 54 48 | THREE.VALUES TH| 00000540: 41 54 20 46 4F 4C 4C 4F 57 20 54 48 45 20 D3 D9 |AT FOLLOW THE ..| 00000550: D3 20 53 54 41 54 45 4D 45 4E 54 2E 0D D4 48 45 |. STATEMENT...HE| 00000560: 20 46 49 52 53 54 20 CA D3 D2 20 50 41 52 53 45 | FIRST ... PARSE| 00000570: 53 20 CD CC C5 CE 2C 20 54 48 45 20 4D 41 58 49 |S ...., THE MAXI| 00000580: 2D 0D 4D 55 4D 20 4E 55 4D 42 45 52 20 4F 46 20 |-.MUM NUMBER OF | 00000590: 43 48 41 52 41 43 54 45 52 53 20 59 4F 55 20 57 |CHARACTERS YOU W| 000005A0: 41 4E 54 20 54 48 45 0D 55 53 45 52 20 54 4F 20 |ANT THE.USER TO | 000005B0: 42 45 20 41 42 4C 45 20 54 4F 20 45 4E 54 45 52 |BE ABLE TO ENTER| 000005C0: 2E 20 CD CC C5 CE 20 49 53 0D 41 4E 20 49 4E 54 |. .... IS.AN INT| 000005D0: 45 47 45 52 20 52 41 4E 47 49 4E 47 20 46 52 4F |EGER RANGING FRO| 000005E0: 4D 20 30 20 54 4F 20 32 35 35 2E 0D 0D 20 20 D4 |M 0 TO 255... .| 000005F0: 48 45 20 53 45 43 4F 4E 44 20 CA D3 D2 20 50 41 |HE SECOND ... PA| 00000600: 52 53 45 53 20 C6 D5 CE C3 D4 C9 CF CE 2C 20 54 |RSES ........, T| 00000610: 48 45 0D 46 49 4C 54 45 52 20 54 48 41 54 20 43 |HE.FILTER THAT C| 00000620: 4F 4E 54 52 4F 4C 53 20 57 48 41 54 20 43 48 41 |ONTROLS WHAT CHA| 00000630: 52 41 43 54 45 52 53 0D 54 48 45 20 55 53 45 52 |RACTERS.THE USER| 00000640: 20 43 41 4E 20 45 4E 54 45 52 2E 20 C6 D5 CE C3 | CAN ENTER. ....| 00000650: D4 C9 CF CE 20 49 53 20 41 4E 0D 49 4E 54 45 47 |.... IS AN.INTEG| 00000660: 45 52 20 52 41 4E 47 49 4E 47 20 46 52 4F 4D 20 |ER RANGING FROM | 00000670: 30 20 54 4F 20 32 35 35 2E 0D 0D 20 20 20 20 20 |0 TO 255... | 00000680: 20 20 20 20 CA D3 D2 20 C3 CF CD CE D5 CD 0D 20 | ... ....... | 00000690: 20 20 20 20 20 20 20 20 D3 D4 D8 20 CD CC C5 CE | ... ....| 000006A0: 0D 0D 20 20 20 20 20 20 20 20 20 CA D3 D2 20 C3 |.. ... .| 000006B0: CF CD CE D5 CD 0D 20 20 20 20 20 20 20 20 20 D3 |...... .| 000006C0: D4 D8 20 C6 D5 CE C3 D4 C9 CF CE 0D 0D 20 20 D4 |.. .......... .| 000006D0: 48 45 20 4E 45 58 54 20 54 57 4F 20 CA D3 D2 53 |HE NEXT TWO ...S| 000006E0: 20 50 41 52 53 45 20 54 48 45 20 53 54 52 49 4E | PARSE THE STRIN| 000006F0: 47 0D 54 48 41 54 20 59 4F 55 20 45 4E 54 45 52 |G.THAT YOU ENTER| 00000700: 2E 20 D4 48 45 59 20 54 52 41 4E 53 46 45 52 20 |. .HEY TRANSFER | 00000710: 54 4F 20 CD CC 0D 54 48 45 20 49 4E 46 4F 52 4D |TO ...THE INFORM| 00000720: 41 54 49 4F 4E 20 4E 45 45 44 45 44 20 54 4F 20 |ATION NEEDED TO | 00000730: 46 49 4E 44 20 57 48 45 52 45 0D 54 48 45 20 53 |FIND WHERE.THE S| 00000740: 54 52 49 4E 47 20 49 53 20 49 4E 20 4D 45 4D 4F |TRING IS IN MEMO| 00000750: 52 59 20 41 4E 44 20 48 4F 57 20 4C 4F 4E 47 0D |RY AND HOW LONG.| 00000760: 49 54 20 49 53 2E 20 C9 46 20 4E 4F 20 53 54 52 |IT IS. .F NO STR| 00000770: 49 4E 47 20 49 53 20 46 4F 55 4E 44 2C 20 49 54 |ING IS FOUND, IT| 00000780: 20 49 53 0D 43 52 45 41 54 45 44 2E 20 C1 46 54 | IS.CREATED. .FT| 00000790: 45 52 20 54 48 45 20 CA D3 D2 53 2C 20 5B C1 5D |ER THE ...S, [.]| 000007A0: 20 43 4F 4E 54 41 49 4E 53 0D 54 48 45 20 4C 4F | CONTAINS.THE LO| 000007B0: 57 20 42 59 54 45 20 4F 46 20 57 48 45 52 45 20 |W BYTE OF WHERE | 000007C0: 54 48 45 20 53 54 52 49 4E 47 20 49 53 0D 49 4E |THE STRING IS.IN| 000007D0: 20 4D 45 4D 4F 52 59 20 2D 2D 20 5B D9 5D 20 43 | MEMORY -- [.] C| 000007E0: 4F 4E 54 41 49 4E 53 20 54 48 45 20 48 49 47 48 |ONTAINS THE HIGH| 000007F0: 0D 42 59 54 45 20 4F 46 20 57 48 45 52 45 20 54 |.BYTE OF WHERE T| 00000800: 48 45 20 53 54 52 49 4E 47 20 49 53 20 53 54 4F |HE STRING IS STO| 00000810: 52 45 44 20 49 4E 0D 4D 45 4D 4F 52 59 2E 0D 0D |RED IN.MEMORY...| 00000820: 20 20 20 20 20 20 20 20 20 CA D3 D2 20 C3 C8 D2 | ... ...| 00000830: C7 C5 D4 0D 20 20 20 20 20 20 20 20 20 CA D3 D2 |.... ...| 00000840: 20 D0 D4 D2 C7 C5 D4 0D 20 20 20 20 20 20 20 20 | ....... | 00000850: 20 D3 D4 C1 20 C2 D9 D4 C5 0D 20 20 20 20 20 20 | ... ..... | 00000860: 20 20 20 D3 D4 D9 20 C2 D9 D4 C5 2B 31 0D 0D 20 | ... ....+1.. | 00000870: 20 D4 48 45 20 4E 45 58 54 20 53 54 41 54 45 4D | .HE NEXT STATEM| 00000880: 45 4E 54 53 20 53 45 54 55 50 20 54 48 45 0D 56 |ENTS SETUP THE.V| 00000890: 41 52 49 41 42 4C 45 53 20 54 4F 20 42 45 20 55 |ARIABLES TO BE U| 000008A0: 53 45 44 2E 20 20 D0 CF C9 CE D4 C5 D2 20 49 53 |SED. ....... IS| 000008B0: 20 54 48 45 0D 43 4F 55 4E 54 45 52 20 4F 46 20 | THE.COUNTER OF | 000008C0: 54 48 45 20 4E 55 4D 42 45 52 20 4F 46 20 43 48 |THE NUMBER OF CH| 000008D0: 41 52 41 43 54 45 52 53 0D 54 48 41 54 20 48 41 |ARACTERS.THAT HA| 000008E0: 56 45 20 42 45 45 4E 20 45 4E 54 45 52 45 44 2E |VE BEEN ENTERED.| 000008F0: 20 CC CF C4 C5 CC C1 D9 20 41 4E 44 0D C8 C9 C4 | ....... AND....| 00000900: C5 CC C1 D9 20 41 52 45 20 54 48 45 20 4C 4F 57 |.... ARE THE LOW| 00000910: 20 41 4E 44 20 48 49 47 48 20 42 59 54 45 53 0D | AND HIGH BYTES.| 00000920: 4F 46 20 41 20 44 45 4C 41 59 20 55 53 45 44 20 |OF A DELAY USED | 00000930: 4F 4E 20 54 48 45 20 43 55 52 53 4F 52 0D 52 4F |ON THE CURSOR.RO| 00000940: 55 54 49 4E 45 2E 20 20 C3 D2 D3 D2 D0 D4 D2 20 |UTINE. ....... | 00000950: 49 53 20 54 48 45 20 43 4F 55 4E 54 45 52 20 46 |IS THE COUNTER F| 00000960: 4F 52 0D 54 48 45 20 43 55 52 53 4F 52 20 43 4F |OR.THE CURSOR CO| 00000970: 4C 4F 52 53 20 41 4E 44 20 43 55 52 53 4F 52 0D |LORS AND CURSOR.| 00000980: 43 48 41 52 41 43 54 45 52 53 20 41 4E 44 20 49 |CHARACTERS AND I| 00000990: 53 20 55 53 45 44 20 54 4F 20 43 52 45 41 54 45 |S USED TO CREATE| 000009A0: 20 54 48 45 0D 42 4F 55 4E 43 49 4E 47 2C 20 46 | THE.BOUNCING, F| 000009B0: 4C 41 53 48 49 4E 47 20 43 55 52 53 4F 52 2E 0D |LASHING CURSOR..| 000009C0: 0D 20 20 20 20 20 20 20 20 20 CC C4 D9 20 23 30 |. ... #0| 000009D0: 30 0D 20 20 20 20 20 20 20 20 20 D3 D4 D9 20 D0 |0. ... .| 000009E0: CF C9 CE D4 C5 D2 0D 20 20 20 20 20 20 20 20 20 |....... | 000009F0: D3 D4 D9 20 CC CF C4 C5 CC C1 D9 0D 20 20 20 20 |... ........ | 00000A00: 20 20 20 20 20 D3 D4 D9 20 C8 C9 C4 C5 CC C1 D9 | ... .......| 00000A10: 0D 20 20 20 20 20 20 20 20 20 CC C4 C1 20 23 30 |. ... #0| 00000A20: 31 0D 20 20 20 20 20 20 20 20 20 D3 D4 C1 20 C3 |1. ... .| 00000A30: D2 D3 D2 D0 D4 D2 0D 0D 20 20 D4 48 45 20 46 4F |........ .HE FO| 00000A40: 4C 4C 4F 57 49 4E 47 20 52 4F 55 54 49 4E 45 20 |LLOWING ROUTINE | 00000A50: 57 49 4C 4C 20 53 43 41 4E 20 54 48 45 0D 4B 45 |WILL SCAN THE.KE| 00000A60: 59 42 4F 41 52 44 2E 20 C9 46 20 41 20 4B 45 59 |YBOARD. .F A KEY| 00000A70: 20 48 41 53 20 42 45 45 4E 20 50 52 45 53 53 45 | HAS BEEN PRESSE| 00000A80: 44 2C 0D 49 54 20 42 52 41 4E 43 48 45 53 20 54 |D,.IT BRANCHES T| 00000A90: 4F 20 C7 CF D4 C9 D4 2E 0D 0D C9 CE C5 D2 20 20 |O ............ | 00000AA0: 20 20 20 CA D3 D2 20 C7 C5 D4 C9 CE 0D 20 20 20 | ... ...... | 00000AB0: 20 20 20 20 20 20 C3 CD D0 20 23 30 30 0D 20 20 | ... #00. | 00000AC0: 20 20 20 20 20 20 20 C2 CE C5 20 C7 CF D4 C9 D4 | ... .....| 00000AD0: 0D 0D 20 20 CF 4B 2C 20 4E 4F 20 4B 45 59 20 48 |.. .K, NO KEY H| 00000AE0: 41 53 20 42 45 45 4E 20 50 52 45 53 53 45 44 2C |AS BEEN PRESSED,| 00000AF0: 20 53 4F 2C 0D 4C 45 54 27 53 20 46 4C 41 53 48 | SO,.LET'S FLASH| 00000B00: 20 54 48 45 20 43 55 52 53 4F 52 2E 0D 0D 20 20 | THE CURSOR... | 00000B10: C6 49 52 53 54 20 57 45 20 4E 45 45 44 20 54 4F |.IRST WE NEED TO| 00000B20: 20 41 44 44 20 31 20 54 4F 20 54 48 45 20 44 45 | ADD 1 TO THE DE| 00000B30: 4C 41 59 0D 41 44 44 52 45 53 53 45 53 2C 20 41 |LAY.ADDRESSES, A| 00000B40: 4E 44 2C 20 49 46 20 C8 C9 C4 C5 CC C1 D9 20 44 |ND, IF ....... D| 00000B50: 4F 45 53 20 4E 4F 54 0D 45 51 55 41 4C 20 32 2C |OES NOT.EQUAL 2,| 00000B60: 20 54 48 45 4E 20 42 52 41 4E 43 48 20 42 41 43 | THEN BRANCH BAC| 00000B70: 4B 20 55 50 20 54 4F 20 C9 CE C5 D2 0D 41 4E 44 |K UP TO .....AND| 00000B80: 20 47 45 54 20 41 4E 54 48 45 52 20 43 48 41 52 | GET ANTHER CHAR| 00000B90: 41 43 54 45 52 2E 0D 0D 20 20 20 20 20 20 20 20 |ACTER... | 00000BA0: 20 C3 CC C3 0D 20 20 20 20 20 20 20 20 20 CC C4 | .... ..| 00000BB0: C1 20 CC CF C4 C5 CC C1 D9 0D 20 20 20 20 20 20 |. ........ | 00000BC0: 20 20 20 C1 C4 C3 20 23 30 31 0D 20 20 20 20 20 | ... #01. | 00000BD0: 20 20 20 20 D3 D4 C1 20 CC CF C4 C5 CC C1 D9 0D | ... ........| 00000BE0: 20 20 20 20 20 20 20 20 20 CC C4 C1 20 C8 C9 C4 | ... ...| 00000BF0: C5 CC C1 D9 0D 20 20 20 20 20 20 20 20 20 C1 C4 |..... ..| 00000C00: C3 20 23 30 30 0D 20 20 20 20 20 20 20 20 20 D3 |. #00. .| 00000C10: D4 C1 20 C8 C9 C4 C5 CC C1 D9 0D 20 20 20 20 20 |.. ........ | 00000C20: 20 20 20 20 CC C4 C1 20 C8 C9 C4 C5 CC C1 D9 0D | ... ........| 00000C30: 20 20 20 20 20 20 20 20 20 C3 CD D0 20 23 32 0D | ... #2.| 00000C40: 20 20 20 20 20 20 20 20 20 C2 CE C5 20 C9 CE C5 | ... ...| 00000C50: D2 0D 0D 20 20 CF 55 52 20 44 45 4C 41 59 20 48 |... .UR DELAY H| 00000C60: 41 53 20 42 45 45 4E 20 52 45 41 43 48 45 44 2C |AS BEEN REACHED,| 00000C70: 20 53 4F 20 57 45 0D 4E 45 45 44 20 54 4F 20 5A | SO WE.NEED TO Z| 00000C80: 45 52 4F 20 54 48 45 20 44 45 4C 41 59 53 2C 20 |ERO THE DELAYS, | 00000C90: 47 45 54 20 54 48 45 0D 56 41 4C 55 45 53 20 54 |GET THE.VALUES T| 00000CA0: 48 41 54 20 52 45 50 52 45 53 45 4E 54 20 54 48 |HAT REPRESENT TH| 00000CB0: 45 20 43 55 52 53 4F 52 0D 43 48 41 52 41 43 54 |E CURSOR.CHARACT| 00000CC0: 45 52 20 41 4E 44 20 43 4F 4C 4F 52 2C 20 41 4E |ER AND COLOR, AN| 00000CD0: 44 20 27 D0 CF CB C5 27 20 54 48 45 4D 0D 4F 4E |D '....' THEM.ON| 00000CE0: 20 54 48 45 20 53 43 52 45 45 4E 2E 0D 0D 20 20 | THE SCREEN... | 00000CF0: 20 20 20 20 20 20 20 CC C4 C1 20 23 30 30 0D 20 | ... #00. | 00000D00: 20 20 20 20 20 20 20 20 D3 D4 C1 20 CC CF C4 C5 | ... ....| 00000D10: CC C1 D9 0D 20 20 20 20 20 20 20 20 20 D3 D4 C1 |.... ...| 00000D20: 20 C8 C9 C4 C5 CC C1 D9 0D 20 20 20 20 20 20 20 | ........ | 00000D30: 20 20 CC C4 D9 20 C3 D2 D3 D2 D0 D4 D2 0D 20 20 | ... ........ | 00000D40: 20 20 20 20 20 20 20 CC C4 C1 20 C3 D2 D3 D2 C3 | ... .....| 00000D50: C8 D2 2C D9 0D 20 20 20 20 20 20 20 20 20 CC C4 |..,.. ..| 00000D60: D9 20 32 31 31 0D 20 20 20 20 20 20 20 20 20 D3 |. 211. .| 00000D70: D4 C1 20 28 32 30 39 29 2C D9 0D 20 20 20 20 20 |.. (209),.. | 00000D80: 20 20 20 20 CC C4 C1 20 32 30 39 0D 20 20 20 20 | ... 209. | 00000D90: 20 20 20 20 20 D3 D4 C1 20 32 35 33 0D 20 20 20 | ... 253. | 00000DA0: 20 20 20 20 20 20 CC C4 C1 20 23 32 31 36 0D 20 | ... #216. | 00000DB0: 20 20 20 20 20 20 20 20 D3 C2 C3 20 36 34 38 0D | ... 648.| 00000DC0: 20 20 20 20 20 20 20 20 20 D3 D4 C1 20 D4 C5 CD | ... ...| 00000DD0: D0 0D 20 20 20 20 20 20 20 20 20 C3 CC C3 0D 20 |.. .... | 00000DE0: 20 20 20 20 20 20 20 20 CC C4 C1 20 32 31 30 0D | ... 210.| 00000DF0: 20 20 20 20 20 20 20 20 20 C1 C4 C3 20 D4 C5 CD | ... ...| 00000E00: D0 0D 20 20 20 20 20 20 20 20 20 D3 D4 C1 20 32 |.. ... 2| 00000E10: 35 34 0D 20 20 20 20 20 20 20 20 20 CC C4 D9 20 |54. ... | 00000E20: C3 D2 D3 D2 D0 D4 D2 0D 20 20 20 20 20 20 20 20 |........ | 00000E30: 20 CC C4 C1 20 C3 D2 D3 D2 C3 CC D2 2C D9 0D 20 | ... .......,.. | 00000E40: 20 20 20 20 20 20 20 20 CC C4 D9 20 32 31 31 0D | ... 211.| 00000E50: 20 20 20 20 20 20 20 20 20 D3 D4 C1 20 28 32 35 | ... (25| 00000E60: 33 29 2C D9 0D 0D 20 20 CE 4F 57 2C 20 57 45 20 |3),... .OW, WE | 00000E70: 4E 45 45 44 20 54 4F 20 43 48 45 43 4B 20 46 4F |NEED TO CHECK FO| 00000E80: 52 20 54 48 45 20 45 4E 44 0D 4F 46 20 C3 D2 D3 |R THE END.OF ...| 00000E90: D2 D0 D4 D2 2E 20 C9 46 20 54 48 45 20 45 4E 44 |..... .F THE END| 00000EA0: 20 28 33 30 29 20 48 41 53 20 42 45 45 4E 0D 52 | (30) HAS BEEN.R| 00000EB0: 45 41 43 48 45 44 2C 20 57 45 20 5A 45 52 4F 20 |EACHED, WE ZERO | 00000EC0: 54 48 45 20 43 4F 55 4E 54 45 52 20 41 4E 44 0D |THE COUNTER AND.| 00000ED0: 4A 55 4D 50 20 54 4F 20 C9 CE C5 D2 2E 0D 0D 20 |JUMP TO ....... | 00000EE0: 20 20 20 20 20 20 20 20 CC C4 C1 20 C3 D2 D3 D2 | ... ....| 00000EF0: D0 D4 D2 0D 20 20 20 20 20 20 20 20 20 C3 CD D0 |.... ...| 00000F00: 20 23 33 30 0D 20 20 20 20 20 20 20 20 20 C2 C5 | #30. ..| 00000F10: D1 20 D2 C5 D3 C5 D4 0D 20 20 20 20 20 20 20 20 |. ...... | 00000F20: 20 C9 CE C3 20 C3 D2 D3 D2 D0 D4 D2 0D 20 20 20 | ... ........ | 00000F30: 20 20 20 20 20 20 CA CD D0 20 C9 CE C5 D2 0D D2 | ... ......| 00000F40: C5 D3 C5 D4 20 20 20 20 CC C4 C1 20 23 30 0D 20 |.... ... #0. | 00000F50: 20 20 20 20 20 20 20 20 D3 D4 C1 20 C3 D2 D3 D2 | ... ....| 00000F60: D0 D4 D2 0D 20 20 20 20 20 20 20 20 20 CA CD D0 |.... ...| 00000F70: 20 C9 CE C5 D2 0D 0D 20 20 CE 4F 57 2C 20 57 48 | ...... .OW, WH| 00000F80: 45 4E 20 41 20 4B 45 59 20 49 53 20 50 52 45 53 |EN A KEY IS PRES| 00000F90: 53 45 44 2C 20 49 54 0D 4A 55 4D 50 53 20 54 4F |SED, IT.JUMPS TO| 00000FA0: 20 54 48 45 20 C7 CF D4 C9 D4 20 52 4F 55 54 49 | THE ..... ROUTI| 00000FB0: 4E 45 2E 0D 0D 20 20 D4 48 49 53 20 49 53 20 54 |NE... .HIS IS T| 00000FC0: 48 45 20 C7 CF D4 C9 D4 20 52 4F 55 54 49 4E 45 |HE ..... ROUTINE| 00000FD0: 3A 0D 0D 20 20 C4 49 44 20 54 48 45 20 55 53 45 |:.. .ID THE USE| 00000FE0: 52 20 50 52 45 53 53 20 D2 C5 D4 D5 D2 CE 3F 20 |R PRESS ......? | 00000FF0: C9 46 20 D9 C5 D3 2C 0D 4A 55 4D 50 20 54 4F 20 |.F ...,.JUMP TO | 00001000: D3 D7 C9 D4 C3 C8 3B 20 4F 54 48 45 52 57 49 53 |......; OTHERWIS| 00001010: 45 2C 20 42 52 41 4E 43 48 20 54 4F 0D CE CA CD |E, BRANCH TO....| 00001020: D0 2E 0D 0D C7 CF D4 C9 D4 20 20 20 20 C3 CD D0 |......... ...| 00001030: 20 23 31 33 20 20 20 20 20 20 20 3B 20 5B D2 C5 | #13 ; [..| 00001040: D4 D5 D2 CE 5D 0D 20 20 20 20 20 20 20 20 20 C2 |....]. .| 00001050: CE C5 20 CE CA CD D0 0D 20 20 20 20 20 20 20 20 |.. ..... | 00001060: 20 CA CD D0 20 D3 D7 C9 D4 C3 C8 0D 0D 20 20 C4 | ... ........ .| 00001070: 49 44 20 54 48 45 20 55 53 45 52 20 50 52 45 53 |ID THE USER PRES| 00001080: 53 20 54 48 45 20 C4 C5 CC 20 4B 45 59 3F 20 C9 |S THE ... KEY? .| 00001090: 46 0D CE CF 2C 20 54 48 45 4E 20 42 52 41 4E 43 |F..., THEN BRANC| 000010A0: 48 20 54 4F 20 CE C5 D8 D4 2E 0D 0D CE CA CD D0 |H TO ...........| 000010B0: 20 20 20 20 20 C3 CD D0 20 23 32 30 20 20 20 20 | ... #20 | 000010C0: 20 20 20 3B 20 5B C4 C5 CC 5D 0D 20 20 20 20 20 | ; [...]. | 000010D0: 20 20 20 20 C2 CE C5 20 CE C5 D8 D4 0D 0D 20 20 | ... ...... | 000010E0: D4 48 45 20 C4 C5 CC 20 4B 45 59 20 57 41 53 20 |.HE ... KEY WAS | 000010F0: 50 52 45 53 53 45 44 2E 20 D3 4F 2C 20 57 45 0D |PRESSED. .O, WE.| 00001100: 4E 45 45 44 20 54 4F 20 43 48 45 43 4B 20 D0 CF |NEED TO CHECK ..| 00001110: C9 CE D4 C5 D2 2E 20 C9 46 20 49 54 20 45 51 55 |...... .F IT EQU| 00001120: 41 4C 53 0D 30 2C 20 54 48 45 4E 20 4A 55 53 54 |ALS.0, THEN JUST| 00001130: 20 42 52 41 4E 43 48 20 42 41 43 4B 20 54 4F 20 | BRANCH BACK TO | 00001140: C9 CE C5 D2 2E 0D C9 46 20 49 54 20 44 4F 45 53 |.......F IT DOES| 00001150: 4E 27 54 20 45 51 55 41 4C 20 30 2C 20 57 45 20 |N'T EQUAL 0, WE | 00001160: 4E 45 45 44 20 54 4F 0D 44 45 43 52 45 4D 45 4E |NEED TO.DECREMEN| 00001170: 54 20 D0 CF C9 CE D4 C5 D2 20 41 4E 44 20 27 D0 |T ....... AND '.| 00001180: CF CB C5 27 20 41 20 53 50 41 43 45 0D 4F 4E 20 |...' A SPACE.ON | 00001190: 54 48 45 20 53 43 52 45 45 4E 20 57 48 45 52 45 |THE SCREEN WHERE| 000011A0: 20 54 48 45 20 43 55 52 53 4F 52 20 49 53 2E 0D | THE CURSOR IS..| 000011B0: D4 48 45 4E 2C 20 55 53 49 4E 47 20 54 48 45 20 |.HEN, USING THE | 000011C0: CB C5 D2 CE C1 CC 20 52 4F 55 54 49 4E 45 20 C3 |...... ROUTINE .| 000011D0: C8 D2 CF D5 D4 0D 57 45 20 27 D0 D2 C9 CE D4 27 |......WE '.....'| 000011E0: 20 41 20 42 41 43 4B 53 50 41 43 45 2E 0D 0D C4 | A BACKSPACE....| 000011F0: C5 C3 D0 D4 D2 20 20 20 CC C4 C1 20 D0 CF C9 CE |..... ... ....| 00001200: D4 C5 D2 0D 20 20 20 20 20 20 20 20 20 C3 CD D0 |.... ...| 00001210: 20 23 30 30 0D 20 20 20 20 20 20 20 20 20 C2 C5 | #00. ..| 00001220: D1 20 C9 CE C5 D2 0D 20 20 20 20 20 20 20 20 20 |. ..... | 00001230: C4 C5 C3 20 D0 CF C9 CE D4 C5 D2 0D 20 20 20 20 |... ........ | 00001240: 20 20 20 20 20 CC C4 C1 20 23 33 32 20 20 20 20 | ... #32 | 00001250: 20 20 20 3B 20 5B D3 D0 C1 C3 C5 5D 0D 20 20 20 | ; [.....]. | 00001260: 20 20 20 20 20 20 CC C4 D9 20 32 31 31 0D 20 20 | ... 211. | 00001270: 20 20 20 20 20 20 20 D3 D4 C1 20 28 32 30 39 29 | ... (209)| 00001280: 2C D9 0D 20 20 20 20 20 20 20 20 20 CC C4 C1 20 |,.. ... | 00001290: 23 32 30 20 20 20 20 20 20 20 3B 20 5B C4 C5 CC |#20 ; [...| 000012A0: 5D 0D 20 20 20 20 20 20 20 20 20 CA D3 D2 20 D0 |]. ... .| 000012B0: D2 C9 CE D4 0D 20 20 20 20 20 20 20 20 20 CA CD |..... ..| 000012C0: D0 20 C9 CE C5 D2 0D 0D 20 20 D4 48 45 20 4B 45 |. ...... .HE KE| 000012D0: 59 20 50 52 45 53 53 45 44 20 57 41 53 20 CE CF |Y PRESSED WAS ..| 000012E0: D4 20 54 48 45 20 C4 C5 CC 0D 4B 45 59 2C 20 53 |. THE ....KEY, S| 000012F0: 4F 20 57 45 20 4E 45 45 44 20 54 4F 20 43 48 45 |O WE NEED TO CHE| 00001300: 43 4B 20 54 48 45 20 48 49 47 48 20 42 49 54 2E |CK THE HIGH BIT.| 00001310: 0D C9 46 20 49 54 27 53 20 53 45 54 20 28 31 29 |..F IT'S SET (1)| 00001320: 20 54 48 45 4E 20 CA D5 CD D0 20 54 4F 20 D3 D4 | THEN .... TO ..| 00001330: CF D2 C5 2E 0D C9 46 20 4E 4F 54 2C 20 42 52 41 |......F NOT, BRA| 00001340: 4E 43 48 20 54 4F 20 CE CE 2E 0D 0D CE C5 D8 D4 |NCH TO .........| 00001350: 20 20 20 20 20 D3 D4 C1 20 C3 C8 C1 D2 0D 20 20 | ... ..... | 00001360: 20 20 20 20 20 20 20 CC C4 C1 20 C6 D5 CE C3 D4 | ... .....| 00001370: C9 CF CE 0D 20 20 20 20 20 20 20 20 20 C3 CD D0 |.... ...| 00001380: 20 23 31 32 38 0D 20 20 20 20 20 20 20 20 20 C2 | #128. .| 00001390: CE C5 20 CE CE 0D 20 20 20 20 20 20 20 20 20 CA |.. ... .| 000013A0: CD D0 20 D3 D4 CF D2 C5 0D 0D 20 20 D4 48 45 20 |.. ....... .HE | 000013B0: 48 49 47 48 20 42 49 54 20 57 41 53 20 4E 4F 54 |HIGH BIT WAS NOT| 000013C0: 20 53 45 54 20 28 30 29 2C 20 53 4F 20 57 45 0D | SET (0), SO WE.| 000013D0: 4E 45 45 44 20 54 4F 20 43 48 45 43 4B 20 54 48 |NEED TO CHECK TH| 000013E0: 45 20 4C 45 4E 47 54 48 20 4F 46 20 54 48 45 0D |E LENGTH OF THE.| 000013F0: 53 54 52 49 4E 47 20 28 D0 CF C9 CE D4 C5 D2 29 |STRING (.......)| 00001400: 2E 20 C9 46 20 49 54 27 53 20 4C 45 53 53 20 54 |. .F IT'S LESS T| 00001410: 48 41 4E 0D CD CC C5 CE 20 54 48 45 4E 20 42 52 |HAN..... THEN BR| 00001420: 41 4E 43 48 20 54 4F 20 CE 30 3B 20 4F 54 48 45 |ANCH TO .0; OTHE| 00001430: 52 57 49 53 45 2C 0D 4A 55 4D 50 20 42 41 43 4B |RWISE,.JUMP BACK| 00001440: 20 54 4F 20 C9 CE C5 D2 2E 0D 0D CE CE 20 20 20 | TO ......... | 00001450: 20 20 20 20 CC C4 C1 20 D0 CF C9 CE D4 C5 D2 0D | ... ........| 00001460: 20 20 20 20 20 20 20 20 20 C3 CD D0 20 CD CC C5 | ... ...| 00001470: CE 0D 20 20 20 20 20 20 20 20 20 C2 C3 C3 20 CE |.. ... .| 00001480: 30 0D 20 20 20 20 20 20 20 20 20 CA CD D0 20 C9 |0. ... .| 00001490: CE C5 D2 0D 0D 20 20 C9 46 20 54 48 45 20 43 48 |..... .F THE CH| 000014A0: 41 52 41 43 54 45 52 20 54 48 45 20 55 53 45 52 |ARACTER THE USER| 000014B0: 20 45 4E 54 45 52 45 44 0D 49 53 20 47 52 45 41 | ENTERED.IS GREA| 000014C0: 54 45 52 20 54 48 41 4E 20 4F 52 20 45 51 55 41 |TER THAN OR EQUA| 000014D0: 4C 20 54 4F 20 41 20 53 50 41 43 45 0D 54 48 45 |L TO A SPACE.THE| 000014E0: 4E 20 42 52 41 4E 43 48 20 54 4F 20 CE 31 2E 20 |N BRANCH TO .1. | 000014F0: CF 54 48 45 52 57 49 53 45 20 4A 55 4D 50 0D 42 |.THERWISE JUMP.B| 00001500: 41 43 4B 20 55 50 20 54 4F 20 C9 CE C5 D2 2E 0D |ACK UP TO ......| 00001510: 0D CE 30 20 20 20 20 20 20 20 CC C4 C1 20 C3 C8 |..0 ... ..| 00001520: C1 D2 0D 20 20 20 20 20 20 20 20 20 C3 CD D0 20 |... ... | 00001530: 23 33 32 20 20 20 20 20 20 20 3B 20 5B D3 D0 C1 |#32 ; [...| 00001540: C3 C5 5D 0D 20 20 20 20 20 20 20 20 20 C2 C3 D3 |..]. ...| 00001550: 20 CE 31 0D 20 20 20 20 20 20 20 20 20 CA CD D0 | .1. ...| 00001560: 20 C9 CE C5 D2 0D 0D 20 20 20 20 20 2A 2A 2A 2A | ...... ****| 00001570: 20 C5 4E 44 20 CF 46 20 D0 41 52 54 20 31 20 D4 | .ND .F .ART 1 .| 00001580: 45 58 54 20 2A 2A 2A 2A 0D |EXT ****. |
..^U:ZERO... BIT BY BIT.
PART 1.. BY MIKE MAYNA
RD. & JIM ROW.. THIS MONTH
WE'LL CREATE A MACHINE.LANGUAGE INPUT RO
UTINE THAT ALLOWS.YOU TO FILTER CERTAIN
GROUPS OF.CHARACTERS (E.G. LOWERCASE,.UP
PERCASE, NUMBERS, ETC) OR COMBINE.THESE
GROUPS. TO CALL THIS ROUTINE,.YOU SHOULD
ENTER:.. SYS 32768,[MLEN],[FUNCTION],[S
TRING]..MLEN, FUNCTION AND STRING ARE EX
PLAIN-.ED AT THE END OF THIS ARTICLE. TH
IS.ROUTINE CAN ONLY BE USED FOR STRINGS!
.IF YOU WANT TO GET A NUMERIC VALUE,.USE
VAL TO TAKE THE VALUE OF THE.STRING YOU
SUPPLY... THE FOLLOWING IS IN SYMBOLIC
FORMAT.AND WAS ORIGINALLY WRITTEN USING
THE.MERLIN ASSEMBLER. FOR A BETTER UNDE
R-.STANDING OF HOW THE PROGRAM WORKS,.TH
E FOLLOWING IS HEAVILY DOCUMENTED..FOR A
MILDLY DOCUMENTED DESCRIPTION,.SEE THE
SOURCE FILE ON SIDE 2 OF.THIS ISSUE ENTI
TLED "GET'N STORE48.O."..NOTE: [A] MEAN
S ACCUMULATOR. [X] MEANS X REGISTE
R. [Y] MEANS Y REGISTER. ALL
NUMBERS SHOWN ARE DECIMAL!.. THE FOLLOW
ING GROUP OF EQU'S ARE THE.EQUATES FOR T
HE CODE. THEY TELL THE.ADDRESSES USED F
OR EACH SYMBOLIC.WORD... GETIN EQU 6
5508. PRINT EQU 65490. CHRGET EQU
115. PTRGET EQU 45195. GETCOM EQU
57870. COMNUM EQU 57856. BYTE E
QU 251. STRING EQU 52000.. NOW, ON W
ITH THE PROGRAM..... FIRST WE NEED TO P
ARSE THE THREE.VALUES THAT FOLLOW THE SY
S STATEMENT..THE FIRST JSR PARSES MLEN,
THE MAXI-.MUM NUMBER OF CHARACTERS YOU W
ANT THE.USER TO BE ABLE TO ENTER. MLEN I
S.AN INTEGER RANGING FROM 0 TO 255... T
HE SECOND JSR PARSES FUNCTION, THE.FILTE
R THAT CONTROLS WHAT CHARACTERS.THE USER
CAN ENTER. FUNCTION IS AN.INTEGER RANGI
NG FROM 0 TO 255... JSR COMNUM.
STX MLEN.. JSR COMNUM.
STX FUNCTION.. THE NEXT TWO JSRS
PARSE THE STRING.THAT YOU ENTER. THEY T
RANSFER TO ML.THE INFORMATION NEEDED TO
FIND WHERE.THE STRING IS IN MEMORY AND H
OW LONG.IT IS. IF NO STRING IS FOUND, IT
IS.CREATED. AFTER THE JSRS, [A] CONTAIN
S.THE LOW BYTE OF WHERE THE STRING IS.IN
MEMORY -- [Y] CONTAINS THE HIGH.BYTE OF
WHERE THE STRING IS STORED IN.MEMORY...
JSR CHRGET. JSR PTRGET.
STA BYTE. STY BYTE+1..
THE NEXT STATEMENTS SETUP THE.VARIABLES
TO BE USED. POINTER IS THE.COUNTER OF
THE NUMBER OF CHARACTERS.THAT HAVE BEEN
ENTERED. LODELAY AND.HIDELAY ARE THE LOW
AND HIGH BYTES.OF A DELAY USED ON THE C
URSOR.ROUTINE. CRSRPTR IS THE COUNTER F
OR.THE CURSOR COLORS AND CURSOR.CHARACTE
RS AND IS USED TO CREATE THE.BOUNCING, F
LASHING CURSOR... LDY #00.
STY POINTER. STY LODELAY.
STY HIDELAY. LDA #01.
STA CRSRPTR.. THE FOLLOWING ROUTINE
WILL SCAN THE.KEYBOARD. IF A KEY HAS BEE
N PRESSED,.IT BRANCHES TO GOTIT...INER
JSR GETIN. CMP #00. B
NE GOTIT.. OK, NO KEY HAS BEEN PRESSED,
SO,.LET'S FLASH THE CURSOR... FIRST WE
NEED TO ADD 1 TO THE DELAY.ADDRESSES, A
ND, IF HIDELAY DOES NOT.EQUAL 2, THEN BR
ANCH BACK UP TO INER.AND GET ANTHER CHAR
ACTER... CLC. LDA LODELA
Y. ADC #01. STA LODELAY.
LDA HIDELAY. ADC #00.
STA HIDELAY. LDA HIDELAY.
CMP #2. BNE INER.. OUR
DELAY HAS BEEN REACHED, SO WE.NEED TO Z
ERO THE DELAYS, GET THE.VALUES THAT REPR
ESENT THE CURSOR.CHARACTER AND COLOR, AN
D 'POKE' THEM.ON THE SCREEN... L
DA #00. STA LODELAY. STA
HIDELAY. LDY CRSRPTR. L
DA CRSRCHR,Y. LDY 211. S
TA (209),Y. LDA 209. STA
253. LDA #216. SBC 648.
STA TEMP. CLC.
LDA 210. ADC TEMP. STA 2
54. LDY CRSRPTR. LDA CRS
RCLR,Y. LDY 211. STA (25
3),Y.. NOW, WE NEED TO CHECK FOR THE EN
D.OF CRSRPTR. IF THE END (30) HAS BEEN.R
EACHED, WE ZERO THE COUNTER AND.JUMP TO
INER... LDA CRSRPTR. CMP
#30. BEQ RESET. INC CRS
RPTR. JMP INER.RESET LDA #0.
STA CRSRPTR. JMP INER..
NOW, WHEN A KEY IS PRESSED, IT.JUMPS TO
THE GOTIT ROUTINE... THIS IS THE GOTIT
ROUTINE:.. DID THE USER PRESS RETURN?
IF YES,.JUMP TO SWITCH; OTHERWISE, BRANC
H TO.NJMP...GOTIT CMP #13 ; [RE
TURN]. BNE NJMP. JMP SWI
TCH.. DID THE USER PRESS THE DEL KEY? I
F.NO, THEN BRANCH TO NEXT...NJMP CMP
#20 ; [DEL]. BNE NEXT..
THE DEL KEY WAS PRESSED. SO, WE.NEED TO
CHECK POINTER. IF IT EQUALS.0, THEN JUST
BRANCH BACK TO INER..IF IT DOESN'T EQUA
L 0, WE NEED TO.DECREMENT POINTER AND 'P
OKE' A SPACE.ON THE SCREEN WHERE THE CUR
SOR IS..THEN, USING THE KERNAL ROUTINE C
HROUT.WE 'PRINT' A BACKSPACE...DECPTR
LDA POINTER. CMP #00. BE
Q INER. DEC POINTER. LDA
#32 ; [SPACE]. LDY 211.
STA (209),Y. LDA #20
; [DEL]. JSR PRINT. JM
P INER.. THE KEY PRESSED WAS NOT THE DE
L.KEY, SO WE NEED TO CHECK THE HIGH BIT.
.IF IT'S SET (1) THEN JUMP TO STORE..IF
NOT, BRANCH TO NN...NEXT STA CHAR.
LDA FUNCTION. CMP #128.
BNE NN. JMP STORE.. THE
HIGH BIT WAS NOT SET (0), SO WE.NEED TO
CHECK THE LENGTH OF THE.STRING (POINTER)
. IF IT'S LESS THAN.MLEN THEN BRANCH TO
N0; OTHERWISE,.JUMP BACK TO INER...NN
LDA POINTER. CMP MLEN.
BCC N0. JMP INER.. IF THE CH
ARACTER THE USER ENTERED.IS GREATER THAN
OR EQUAL TO A SPACE.THEN BRANCH TO N1.
OTHERWISE JUMP.BACK UP TO INER...N0
LDA CHAR. CMP #32 ; [SPA
CE]. BCS N1. JMP INER..
**** END OF PART 1 TEXT ****.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL