T.BYTE
FILE INFORMATION
FILENAME(S): T.BYTE
FILE TYPE(S): PRG
FILE SIZE: 3.5K
FIRST SEEN: 2025-11-30 18:12:20
APPEARS ON: 1 disk(s)
FILE HASH
150cce49cec5661893caf210dc13868ad32eb765832fe9995b447bdc954d5107
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| LOADSTAR 41 S 2 | T.BYTE | PRG | Sailor, Ganheden | 5 | 18 | 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 C2 59 54 45 20 C2 59 20 C2 | .YTE .Y .| 00000020: 59 54 45 0D 20 20 20 20 20 20 20 20 20 20 20 20 |YTE. | 00000030: 20 20 20 20 42 59 0D 20 20 20 20 20 20 20 20 20 | BY. | 00000040: 20 20 CD 49 4B 45 20 CD 41 59 4E 41 52 44 0D 20 | .IKE .AYNARD. | 00000050: 20 20 20 20 20 20 20 20 20 20 20 26 20 CA 49 4D | & .IM| 00000060: 20 D2 4F 57 0D 0D 20 20 D4 48 49 53 20 4D 4F 4E | .OW.. .HIS MON| 00000070: 54 48 20 57 45 27 4C 4C 20 57 52 49 54 45 20 41 |TH WE'LL WRITE A| 00000080: 20 C2 C1 D3 C9 C3 0D 49 4E 50 55 54 20 53 55 42 | ......INPUT SUB| 00000090: 52 4F 55 54 49 4E 45 20 54 48 41 54 20 43 41 4E |ROUTINE THAT CAN| 000000A0: 20 41 43 43 45 50 54 0D 4E 55 4D 42 45 52 53 2C | ACCEPT.NUMBERS,| 000000B0: 20 4C 45 54 54 45 52 53 20 4F 52 20 42 4F 54 48 | LETTERS OR BOTH| 000000C0: 2E 20 D4 48 45 20 50 52 4F 47 52 41 4D 0D 49 53 |. .HE PROGRAM.IS| 000000D0: 20 57 52 49 54 54 45 4E 20 55 53 49 4E 47 20 4C | WRITTEN USING L| 000000E0: 41 52 47 45 20 4C 49 4E 45 20 4E 55 4D 42 45 52 |ARGE LINE NUMBER| 000000F0: 53 0D 28 36 30 35 58 58 29 20 53 4F 20 49 54 20 |S.(605XX) SO IT | 00000100: 53 48 4F 55 4C 44 20 42 45 20 45 41 53 59 20 54 |SHOULD BE EASY T| 00000110: 4F 20 4D 45 52 47 45 0D 49 54 20 54 4F 20 41 4C |O MERGE.IT TO AL| 00000120: 4D 4F 53 54 20 41 4E 59 20 C2 C1 D3 C9 C3 20 50 |MOST ANY ..... P| 00000130: 52 4F 47 52 41 4D 2E 0D 0D 20 20 D4 48 49 53 20 |ROGRAM... .HIS | 00000140: 52 4F 55 54 49 4E 45 20 22 4C 4F 43 4B 53 2D 4F |ROUTINE "LOCKS-O| 00000150: 55 54 22 20 C3 CC D2 2F C8 CF CD C5 2C 0D C9 CE |UT" .../....,...| 00000160: D3 C5 D2 D4 2C 20 C3 CF CE D4 D2 CF CC 20 43 4F |...., ....... CO| 00000170: 44 45 53 2C 20 C3 D2 D3 D2 20 4D 4F 56 45 4D 45 |DES, .... MOVEME| 00000180: 4E 54 53 0D 41 4E 44 20 4B 45 59 42 4F 41 52 44 |NTS.AND KEYBOARD| 00000190: 20 47 52 41 50 48 49 43 53 2E 20 C9 54 20 4D 41 | GRAPHICS. .T MA| 000001A0: 59 20 42 45 0D 55 53 45 44 20 57 48 45 4E 45 56 |Y BE.USED WHENEV| 000001B0: 45 52 20 59 4F 55 20 57 41 4E 54 20 41 20 55 53 |ER YOU WANT A US| 000001C0: 45 52 20 54 4F 0D 45 4E 54 45 52 20 57 4F 52 44 |ER TO.ENTER WORD| 000001D0: 53 20 4F 52 20 4E 55 4D 42 45 52 53 2C 20 59 45 |S OR NUMBERS, YE| 000001E0: 54 20 4E 4F 54 0D 41 43 43 49 44 45 4E 54 4C 59 |T NOT.ACCIDENTLY| 000001F0: 20 43 4C 45 41 52 20 54 48 45 20 53 43 52 45 45 | CLEAR THE SCREE| 00000200: 4E 20 4F 52 20 4D 4F 56 45 0D 54 48 45 20 C3 D2 |N OR MOVE.THE ..| 00000210: D3 D2 20 55 50 20 4F 52 20 44 4F 57 4E 2C 20 45 |.. UP OR DOWN, E| 00000220: 54 43 2E 0D 0D 20 20 D4 48 45 20 C2 C1 D3 C9 C3 |TC... .HE .....| 00000230: 20 53 55 42 52 4F 55 54 49 4E 45 20 49 53 20 4F | SUBROUTINE IS O| 00000240: 4E 20 53 49 44 45 20 54 57 4F 0D 4F 46 20 54 48 |N SIDE TWO.OF TH| 00000250: 49 53 20 49 53 53 55 45 2C 20 45 4E 54 49 54 4C |IS ISSUE, ENTITL| 00000260: 45 44 20 22 C9 CE D0 D5 D4 2E C2 C1 D3 22 2E 0D |ED "........."..| 00000270: D4 48 45 20 46 4F 4C 4C 4F 57 49 4E 47 20 49 53 |.HE FOLLOWING IS| 00000280: 20 41 20 44 45 53 43 52 49 50 54 49 4F 4E 20 4F | A DESCRIPTION O| 00000290: 46 0D 57 48 41 54 20 45 41 43 48 20 4C 49 4E 45 |F.WHAT EACH LINE| 000002A0: 20 44 4F 45 53 3A 0D 0D 20 C6 49 52 53 54 2C 20 | DOES:.. .IRST, | 000002B0: 57 45 20 43 4C 45 41 52 20 C3 24 20 41 4E 44 20 |WE CLEAR .$ AND | 000002C0: 54 48 45 20 4B 45 59 42 4F 41 52 44 0D 42 55 46 |THE KEYBOARD.BUF| 000002D0: 46 45 52 2C 20 54 48 45 4E 20 D0 D2 C9 CE D4 20 |FER, THEN ..... | 000002E0: 54 48 45 20 43 48 41 52 41 43 54 45 52 0D 57 45 |THE CHARACTER.WE| 000002F0: 27 4C 4C 20 42 45 20 55 53 49 4E 47 20 46 4F 52 |'LL BE USING FOR| 00000300: 20 41 20 43 55 52 53 4F 52 2E 0D 0D 36 30 35 30 | A CURSOR...6050| 00000310: 30 20 C3 24 3D 22 22 3A D0 CF CB C5 31 39 38 2C |0 .$="":....198,| 00000320: 30 3A D0 D2 C9 CE D4 22 5B 43 4D 44 52 20 40 5D |0:....."[CMDR @]| 00000330: 22 3B 0D 0D 20 D4 48 45 4E 2C 20 57 45 20 43 52 |";.. .HEN, WE CR| 00000340: 45 41 54 45 20 41 20 C6 CF D2 2E 2E 2E CE C5 D8 |EATE A .........| 00000350: D4 20 4C 4F 4F 50 0D 54 48 41 54 20 4C 4F 4F 50 |. LOOP.THAT LOOP| 00000360: 53 20 46 52 4F 4D 20 31 20 54 4F 20 CC C5 2B 31 |S FROM 1 TO ..+1| 00000370: 2E 20 CC C5 20 49 53 20 54 48 45 0D CC C5 4E 47 |. .. IS THE...NG| 00000380: 54 48 20 4F 46 20 54 48 45 20 53 54 52 49 4E 47 |TH OF THE STRING| 00000390: 20 59 4F 55 20 57 41 4E 54 20 54 48 45 0D 55 53 | YOU WANT THE.US| 000003A0: 45 52 20 54 4F 20 45 4E 54 45 52 2E 0D 0D 36 30 |ER TO ENTER...60| 000003B0: 35 31 30 20 C6 CF D2 20 C1 3D 31 20 D4 CF 20 CC |510 ... .=1 .. .| 000003C0: C5 2B 31 0D 0D 20 CE 4F 57 2C 20 57 45 20 4C 4F |.+1.. .OW, WE LO| 000003D0: 4F 50 20 55 4E 54 49 4C 20 41 20 4B 45 59 20 49 |OP UNTIL A KEY I| 000003E0: 53 20 50 52 45 53 53 45 44 2E 0D 0D 36 30 35 32 |S PRESSED...6052| 000003F0: 30 20 C7 C5 D4 20 C1 24 3A C9 C6 20 C1 24 3D 22 |0 ... .$:.. .$="| 00000400: 22 20 D4 C8 C5 CE 20 36 30 35 32 30 0D 0D 20 CF |" .... 60520.. .| 00000410: 4B 2C 20 41 20 4B 45 59 20 57 41 53 20 50 52 45 |K, A KEY WAS PRE| 00000420: 53 53 45 44 2C 20 46 49 52 53 54 20 57 45 20 4E |SSED, FIRST WE N| 00000430: 45 45 44 0D 54 4F 20 53 45 45 20 49 46 20 49 54 |EED.TO SEE IF IT| 00000440: 20 57 41 53 20 54 48 45 20 D2 C5 D4 D5 D2 CE 20 | WAS THE ...... | 00000450: 4B 45 59 2E 0D C9 46 20 49 54 20 57 41 53 2C 20 |KEY...F IT WAS, | 00000460: 57 45 20 D0 D2 C9 CE D4 20 41 20 53 50 41 43 45 |WE ..... A SPACE| 00000470: 20 4F 56 45 52 20 54 48 45 0D 43 55 52 53 4F 52 | OVER THE.CURSOR| 00000480: 20 43 48 41 52 41 43 54 45 52 20 41 4E 44 20 52 | CHARACTER AND R| 00000490: 45 54 55 52 4E 20 46 52 4F 4D 20 54 48 49 53 0D |ETURN FROM THIS.| 000004A0: 52 4F 55 54 49 4E 45 2E 0D 0D 36 30 35 33 30 20 |ROUTINE...60530 | 000004B0: C9 C6 20 C1 24 3D C3 C8 D2 24 28 31 33 29 20 D4 |.. .$=...$(13) .| 000004C0: C8 C5 CE 20 D0 D2 C9 CE D4 22 5B 43 52 53 52 0D |... ....."[CRSR.| 000004D0: 20 20 20 20 20 20 4C 45 46 54 5D 20 22 3A D2 C5 | LEFT] ":..| 000004E0: D4 D5 D2 CE 0D 0D 20 CE 4F 57 2C 20 57 45 20 43 |...... .OW, WE C| 000004F0: 48 45 43 4B 20 54 4F 20 53 45 45 20 49 46 20 54 |HECK TO SEE IF T| 00000500: 48 45 20 C4 C5 CC 20 4B 45 59 0D 57 41 53 20 50 |HE ... KEY.WAS P| 00000510: 52 45 53 53 45 44 2E 20 C9 46 20 49 54 20 57 41 |RESSED. .F IT WA| 00000520: 53 2C 20 41 4E 44 20 54 48 45 0D 4C 45 4E 47 54 |S, AND THE.LENGT| 00000530: 48 20 4F 46 20 54 48 45 20 53 54 52 49 4E 47 20 |H OF THE STRING | 00000540: 49 53 20 47 52 45 41 54 45 52 20 54 48 41 4E 0D |IS GREATER THAN.| 00000550: 4F 4E 45 2C 20 54 48 45 4E 20 57 45 20 4E 45 45 |ONE, THEN WE NEE| 00000560: 44 20 54 4F 3A 0D 0D 20 20 31 29 20 C4 45 4C 45 |D TO:.. 1) .ELE| 00000570: 54 45 20 54 48 45 20 4C 41 53 54 20 43 48 41 52 |TE THE LAST CHAR| 00000580: 41 43 54 45 52 20 41 4E 44 0D 20 20 20 20 20 54 |ACTER AND. T| 00000590: 48 45 20 43 55 52 53 4F 52 20 43 48 41 52 41 43 |HE CURSOR CHARAC| 000005A0: 54 45 52 2E 0D 0D 20 20 32 29 20 D3 55 42 54 52 |TER... 2) .UBTR| 000005B0: 41 43 54 20 4F 4E 45 20 46 52 4F 4D 20 54 48 45 |ACT ONE FROM THE| 000005C0: 20 4C 45 4E 47 54 48 2E 0D 0D 20 20 33 29 20 C4 | LENGTH... 3) .| 000005D0: 45 4C 45 54 45 20 54 48 45 20 4C 41 53 54 20 43 |ELETE THE LAST C| 000005E0: 48 41 52 41 43 54 45 52 20 49 4E 20 C3 24 2E 0D |HARACTER IN .$..| 000005F0: 0D 20 20 34 29 20 C1 4E 44 2C 20 C7 CF D4 CF 20 |. 4) .ND, .... | 00000600: 36 30 35 32 30 20 54 4F 20 47 45 54 20 41 4E 4F |60520 TO GET ANO| 00000610: 54 48 45 52 0D 20 20 20 20 20 43 48 41 52 41 43 |THER. CHARAC| 00000620: 54 45 52 2E 0D 0D 36 30 35 34 30 20 C9 C6 20 C1 |TER...60540 .. .| 00000630: 24 3D C3 C8 D2 24 28 32 30 29 20 C1 CE C4 20 C1 |$=...$(20) ... .| 00000640: 3E 31 20 D4 C8 C5 CE 0D 20 20 20 20 20 20 D0 D2 |>1 ..... ..| 00000650: C9 CE D4 20 22 5B 32 20 43 52 53 52 20 4C 45 46 |... "[2 CRSR LEF| 00000660: 54 5D 20 20 5B 32 20 43 52 53 52 0D 20 20 20 20 |T] [2 CRSR. | 00000670: 20 20 4C 45 46 54 5D 22 3B 3A C1 3D C1 2D 31 3A | LEFT]";:.=.-1:| 00000680: C3 24 3D CC C5 C6 D4 24 28 C3 24 2C C1 2D 31 29 |.$=....$(.$,.-1)| 00000690: 3A 0D 20 20 20 20 20 20 C7 CF D4 CF 20 36 30 35 |:. .... 605| 000006A0: 32 30 0D 0D 20 C1 54 20 54 48 49 53 20 50 4F 49 |20.. .T THIS POI| 000006B0: 4E 54 2C 20 57 45 20 4E 45 45 44 20 54 4F 20 43 |NT, WE NEED TO C| 000006C0: 48 45 43 4B 20 54 48 45 0D 4C 45 4E 47 54 48 20 |HECK THE.LENGTH | 000006D0: 4F 46 20 54 48 45 20 53 54 52 49 4E 47 2E 20 C9 |OF THE STRING. .| 000006E0: 46 20 49 54 20 45 51 55 41 4C 53 0D CC C5 20 2B |F IT EQUALS... +| 000006F0: 20 31 2C 20 54 48 45 20 52 4F 55 54 49 4E 45 20 | 1, THE ROUTINE | 00000700: 53 48 4F 55 4C 44 20 4E 4F 54 20 41 4C 4C 4F 57 |SHOULD NOT ALLOW| 00000710: 0D 41 4E 59 4D 4F 52 45 20 43 48 41 52 41 43 54 |.ANYMORE CHARACT| 00000720: 45 52 53 20 54 4F 20 42 45 20 41 44 44 45 44 20 |ERS TO BE ADDED | 00000730: 54 4F 20 54 48 45 0D 53 54 52 49 4E 47 2E 20 D4 |TO THE.STRING. .| 00000740: 48 49 53 20 52 45 51 55 49 52 45 53 20 54 48 45 |HIS REQUIRES THE| 00000750: 20 55 53 45 52 20 54 4F 0D 50 52 45 53 53 20 D2 | USER TO.PRESS .| 00000760: C5 D4 D5 D2 CE 20 4F 52 20 44 45 4C 45 54 45 20 |..... OR DELETE | 00000770: 53 4F 4D 45 0D 43 48 41 52 41 43 54 45 52 53 2E |SOME.CHARACTERS.| 00000780: 0D 0D 36 30 35 35 30 20 C9 C6 20 28 C1 3D CC C5 |..60550 .. (.=..| 00000790: 2B 31 29 20 D4 C8 C5 CE 20 36 30 35 32 30 0D 0D |+1) .... 60520..| 000007A0: 20 CE 4F 57 2C 20 49 46 20 CE D5 20 49 53 20 53 | .OW, IF .. IS S| 000007B0: 45 54 20 28 31 29 20 54 48 45 4E 20 57 45 20 43 |ET (1) THEN WE C| 000007C0: 48 45 43 4B 0D 54 4F 20 53 45 45 20 49 46 20 54 |HECK.TO SEE IF T| 000007D0: 48 45 20 43 48 41 52 41 43 54 45 52 20 49 53 20 |HE CHARACTER IS | 000007E0: 45 51 55 41 4C 20 54 4F 0D 41 20 43 48 41 52 41 |EQUAL TO.A CHARA| 000007F0: 43 54 45 52 20 42 45 54 57 45 45 4E 20 22 30 22 |CTER BETWEEN "0"| 00000800: 20 41 4E 44 20 22 39 22 2E 0D C9 46 20 49 54 20 | AND "9"...F IT | 00000810: 49 53 2C 20 47 4F 54 4F 20 54 48 45 20 4C 49 4E |IS, GOTO THE LIN| 00000820: 45 20 54 48 41 54 20 50 52 49 4E 54 53 0D 54 48 |E THAT PRINTS.TH| 00000830: 45 20 43 48 41 52 41 43 54 45 52 20 41 4E 44 20 |E CHARACTER AND | 00000840: 41 44 44 53 20 49 54 20 54 4F 20 54 48 45 0D 53 |ADDS IT TO THE.S| 00000850: 54 52 49 4E 47 2E 0D 0D 36 30 35 36 30 20 C9 C6 |TRING...60560 ..| 00000860: 20 28 CE D5 29 20 C1 CE C4 20 28 28 C1 24 3E 3D | (..) ... ((.$>=| 00000870: 22 30 22 29 20 C1 CE C4 20 28 C1 24 0D 20 20 20 |"0") ... (.$. | 00000880: 20 20 20 3C 3D 22 39 22 29 29 20 D4 C8 C5 CE 20 | <="9")) .... | 00000890: 36 30 35 39 35 0D 0D 20 CE 4F 57 2C 20 49 46 20 |60595.. .OW, IF | 000008A0: C1 CC 20 49 53 20 53 45 54 20 28 31 29 20 54 48 |.. IS SET (1) TH| 000008B0: 45 4E 20 57 45 20 43 48 45 43 4B 0D 54 4F 20 53 |EN WE CHECK.TO S| 000008C0: 45 45 20 49 46 20 54 48 45 20 43 48 41 52 41 43 |EE IF THE CHARAC| 000008D0: 54 45 52 20 49 53 20 45 51 55 41 4C 20 54 4F 20 |TER IS EQUAL TO | 000008E0: 41 0D 43 48 41 52 41 43 54 45 52 20 42 45 54 57 |A.CHARACTER BETW| 000008F0: 45 45 4E 20 22 41 22 20 41 4E 44 20 22 5A 22 2E |EEN "A" AND "Z".| 00000900: 0D C9 46 20 49 54 20 49 53 2C 20 47 4F 54 4F 20 |..F IT IS, GOTO | 00000910: 54 48 45 20 4C 49 4E 45 20 54 48 41 54 20 50 52 |THE LINE THAT PR| 00000920: 49 4E 54 53 0D 54 48 45 20 43 48 41 52 41 43 54 |INTS.THE CHARACT| 00000930: 45 52 20 41 4E 44 20 41 44 44 53 20 49 54 20 54 |ER AND ADDS IT T| 00000940: 4F 20 54 48 45 0D 53 54 52 49 4E 47 2E 0D 0D 36 |O THE.STRING...6| 00000950: 30 35 37 30 20 C9 C6 20 28 C1 CC 29 20 C1 CE C4 |0570 .. (..) ...| 00000960: 20 28 28 C1 24 3E 3D 22 41 22 29 20 C1 CE C4 20 | ((.$>="A") ... | 00000970: 28 C1 24 0D 20 20 20 20 20 20 3C 3D 22 5A 22 29 |(.$. <="Z")| 00000980: 20 D4 C8 C5 CE 20 36 30 35 39 35 0D 0D 20 D7 45 | .... 60595.. .E| 00000990: 20 41 4C 53 4F 20 4E 45 45 44 20 54 4F 20 43 48 | ALSO NEED TO CH| 000009A0: 45 43 4B 20 54 4F 20 53 45 45 20 49 46 0D C1 CC |ECK TO SEE IF...| 000009B0: 20 49 53 20 53 45 54 20 41 4E 44 20 54 48 45 20 | IS SET AND THE | 000009C0: 43 48 41 52 41 43 54 45 52 20 49 53 20 4F 4E 45 |CHARACTER IS ONE| 000009D0: 0D 4F 46 20 54 48 45 20 55 50 50 45 52 43 41 53 |.OF THE UPPERCAS| 000009E0: 45 20 43 48 41 52 41 43 54 45 52 53 2E 0D 0D 36 |E CHARACTERS...6| 000009F0: 30 35 38 30 20 C9 C6 20 28 C1 CC 29 20 C1 CE C4 |0580 .. (..) ...| 00000A00: 20 28 28 C1 24 3E 3D 22 C1 22 29 20 C1 CE C4 20 | ((.$>=".") ... | 00000A10: 28 C1 24 0D 20 20 20 20 20 20 3C 3D 22 DA 22 29 |(.$. <=".")| 00000A20: 20 D4 C8 C5 CE 20 36 30 35 39 35 0D 0D 20 C9 46 | .... 60595.. .F| 00000A30: 20 54 48 45 20 50 52 4F 47 52 41 4D 20 4D 41 4B | THE PROGRAM MAK| 00000A40: 45 53 20 49 54 20 54 4F 20 54 48 49 53 0D 50 4F |ES IT TO THIS.PO| 00000A50: 49 4E 54 2C 20 41 4E 20 49 4C 4C 45 47 41 4C 20 |INT, AN ILLEGAL | 00000A60: 43 48 41 52 41 43 54 45 52 20 4D 55 53 54 20 48 |CHARACTER MUST H| 00000A70: 41 56 45 0D 42 45 45 4E 20 45 4E 54 45 52 45 44 |AVE.BEEN ENTERED| 00000A80: 20 53 4F 20 57 45 20 49 47 4E 4F 52 45 20 49 54 | SO WE IGNORE IT| 00000A90: 20 41 4E 44 20 47 4F 0D 42 41 43 4B 20 54 4F 20 | AND GO.BACK TO | 00000AA0: 47 45 54 54 49 4E 47 20 43 48 41 52 41 43 54 45 |GETTING CHARACTE| 00000AB0: 52 53 2E 0D 0D 36 30 35 39 30 20 C7 CF D4 CF 20 |RS...60590 .... | 00000AC0: 36 30 35 32 30 0D 0D 20 D4 48 49 53 20 4C 49 4E |60520.. .HIS LIN| 00000AD0: 45 20 50 52 49 4E 54 53 20 41 20 43 55 52 53 4F |E PRINTS A CURSO| 00000AE0: 52 20 4C 45 46 54 20 53 4F 0D 49 54 20 43 41 4E |R LEFT SO.IT CAN| 00000AF0: 20 50 52 49 4E 54 20 54 48 45 20 43 48 41 52 41 | PRINT THE CHARA| 00000B00: 43 54 45 52 20 45 4E 54 45 52 45 44 0D 4F 56 45 |CTER ENTERED.OVE| 00000B10: 52 20 54 48 45 20 43 55 52 53 4F 52 20 43 48 41 |R THE CURSOR CHA| 00000B20: 52 41 43 54 45 52 2E 20 D4 48 45 4E 2C 20 49 54 |RACTER. .HEN, IT| 00000B30: 0D 43 4C 45 41 52 53 20 54 48 45 20 51 55 4F 54 |.CLEARS THE QUOT| 00000B40: 45 20 4D 4F 44 45 20 46 4C 41 47 20 41 4E 44 0D |E MODE FLAG AND.| 00000B50: 52 45 50 52 49 4E 54 53 20 54 48 45 20 43 55 52 |REPRINTS THE CUR| 00000B60: 53 4F 52 2E 20 C6 49 4E 41 4C 4C 59 2C 20 49 54 |SOR. .INALLY, IT| 00000B70: 20 41 44 44 53 0D 54 48 45 20 43 48 41 52 41 43 | ADDS.THE CHARAC| 00000B80: 54 45 52 20 54 4F 20 C3 24 2E 20 D4 48 45 20 CE |TER TO .$. .HE .| 00000B90: C5 D8 D4 20 53 54 41 54 45 2D 0D 4D 45 4E 54 20 |... STATE-.MENT | 00000BA0: 43 41 55 53 45 53 20 54 48 45 20 50 52 4F 47 52 |CAUSES THE PROGR| 00000BB0: 41 4D 20 54 4F 20 4A 55 4D 50 20 42 41 43 4B 0D |AM TO JUMP BACK.| 00000BC0: 55 50 20 54 4F 20 4C 49 4E 45 20 36 30 35 32 30 |UP TO LINE 60520| 00000BD0: 20 41 4E 44 20 47 45 54 20 41 4E 4F 54 48 45 52 | AND GET ANOTHER| 00000BE0: 0D 43 48 41 52 41 43 54 45 52 2E 0D 0D 36 30 35 |.CHARACTER...605| 00000BF0: 39 35 20 D0 D2 C9 CE D4 22 5B 43 52 53 52 20 4C |95 ....."[CRSR L| 00000C00: 45 46 54 5D 22 20 C1 24 3B 3A 20 D0 CF CB C5 0D |EFT]" .$;: .....| 00000C10: 20 20 20 20 20 20 32 31 32 2C 2E 3A D0 D2 C9 CE | 212,.:....| 00000C20: D4 20 22 5B 43 4D 44 52 20 40 5D 22 3B 3A 20 C3 |. "[CMDR @]";: .| 00000C30: 24 3D 0D 20 20 20 20 20 20 C3 24 2B C1 24 3A CE |$=. .$+.$:.| 00000C40: C5 D8 D4 0D 0D 20 20 C1 4E 44 2C 20 54 48 41 54 |..... .ND, THAT| 00000C50: 27 53 20 54 48 45 20 45 4E 44 20 4F 46 20 54 48 |'S THE END OF TH| 00000C60: 45 20 49 4E 50 55 54 0D 52 4F 55 54 49 4E 45 2E |E INPUT.ROUTINE.| 00000C70: 0D 0D 20 20 CF 54 48 45 52 20 47 52 4F 55 50 53 |.. .THER GROUPS| 00000C80: 20 4F 46 20 43 48 41 52 41 43 54 45 52 53 20 43 | OF CHARACTERS C| 00000C90: 41 4E 20 42 45 0D 43 48 45 43 4B 45 44 20 46 4F |AN BE.CHECKED FO| 00000CA0: 52 20 42 59 20 41 44 44 49 4E 47 20 43 4F 44 45 |R BY ADDING CODE| 00000CB0: 20 53 49 4D 49 4C 41 52 0D 54 4F 20 54 48 41 54 | SIMILAR.TO THAT| 00000CC0: 20 49 4E 20 4C 49 4E 45 53 20 36 30 35 36 30 20 | IN LINES 60560 | 00000CD0: 2D 20 36 30 35 38 30 2E 0D 0D 20 20 CE 4F 54 45 |- 60580... .OTE| 00000CE0: 20 54 48 41 54 20 42 45 46 4F 52 45 20 C7 CF D3 | THAT BEFORE ...| 00000CF0: D5 C2 49 4E 47 20 54 48 49 53 0D 52 4F 55 54 49 |..ING THIS.ROUTI| 00000D00: 4E 45 2C 20 59 4F 55 20 57 49 4C 4C 20 4E 45 45 |NE, YOU WILL NEE| 00000D10: 44 20 54 4F 20 53 45 54 20 54 48 45 0D 46 4F 4C |D TO SET THE.FOL| 00000D20: 4C 4F 57 49 4E 47 20 56 41 52 49 41 42 4C 45 53 |LOWING VARIABLES| 00000D30: 3A 0D 0D 20 20 CC C5 20 3D 20 54 48 45 20 4C 45 |:.. .. = THE LE| 00000D40: 4E 47 54 48 20 4F 46 20 54 48 45 20 53 54 52 49 |NGTH OF THE STRI| 00000D50: 4E 47 0D 20 20 20 20 20 20 20 28 30 20 2D 20 32 |NG. (0 - 2| 00000D60: 35 35 29 0D 0D 20 20 CE D5 20 3D 20 30 20 4D 45 |55).. .. = 0 ME| 00000D70: 41 4E 53 20 4E 55 4D 42 45 52 53 20 41 52 45 20 |ANS NUMBERS ARE | 00000D80: 49 4C 4C 45 47 41 4C 0D 20 20 20 20 20 20 20 31 |ILLEGAL. 1| 00000D90: 20 4D 45 41 4E 53 20 4E 55 4D 42 45 52 53 20 41 | MEANS NUMBERS A| 00000DA0: 52 45 20 4C 45 47 41 4C 0D 0D 20 20 C1 CC 20 3D |RE LEGAL.. .. =| 00000DB0: 20 30 20 4D 45 41 4E 53 20 54 48 45 20 41 4C 50 | 0 MEANS THE ALP| 00000DC0: 48 41 42 45 54 20 49 53 20 49 4C 4C 45 47 41 4C |HABET IS ILLEGAL| 00000DD0: 0D 20 20 20 20 20 20 20 31 20 4D 45 41 4E 53 20 |. 1 MEANS | 00000DE0: 54 48 45 20 41 4C 50 48 41 42 45 54 20 49 53 20 |THE ALPHABET IS | 00000DF0: 4C 45 47 41 4C 0D 0D 20 20 20 20 20 20 20 20 2A |LEGAL.. *| 00000E00: 2A 2A 2A 20 C5 4E 44 20 CF 46 20 D4 45 58 54 20 |*** .ND .F .EXT | 00000E10: 2A 2A 2A 2A 0D |****. |
..^U:ZERO... BYTE BY BYTE.
BY. MIKE MAYNARD.
& JIM ROW.. THIS MONTH WE'LL
WRITE A BASIC.INPUT SUBROUTINE THAT CAN
ACCEPT.NUMBERS, LETTERS OR BOTH. THE PR
OGRAM.IS WRITTEN USING LARGE LINE NUMBER
S.(605XX) SO IT SHOULD BE EASY TO MERGE.
IT TO ALMOST ANY BASIC PROGRAM... THIS
ROUTINE "LOCKS-OUT" CLR/HOME,.INSERT, CO
NTROL CODES, CRSR MOVEMENTS.AND KEYBOARD
GRAPHICS. IT MAY BE.USED WHENEVER YOU W
ANT A USER TO.ENTER WORDS OR NUMBERS, YE
T NOT.ACCIDENTLY CLEAR THE SCREEN OR MOV
E.THE CRSR UP OR DOWN, ETC... THE BASIC
SUBROUTINE IS ON SIDE TWO.OF THIS ISSUE
, ENTITLED "INPUT.BAS"..THE FOLLOWING IS
A DESCRIPTION OF.WHAT EACH LINE DOES:..
FIRST, WE CLEAR C$ AND THE KEYBOARD.BUF
FER, THEN PRINT THE CHARACTER.WE'LL BE U
SING FOR A CURSOR...60500 C$="":POKE198,
0:PRINT"[CMDR @]";.. THEN, WE CREATE A F
OR...NEXT LOOP.THAT LOOPS FROM 1 TO LE+1
. LE IS THE.LENGTH OF THE STRING YOU WAN
T THE.USER TO ENTER...60510 FOR A=1 TO L
E+1.. NOW, WE LOOP UNTIL A KEY IS PRESSE
D...60520 GET A$:IF A$="" THEN 60520.. O
K, A KEY WAS PRESSED, FIRST WE NEED.TO S
EE IF IT WAS THE RETURN KEY..IF IT WAS,
WE PRINT A SPACE OVER THE.CURSOR CHARACT
ER AND RETURN FROM THIS.ROUTINE...60530
IF A$=CHR$(13) THEN PRINT"[CRSR. LE
FT] ":RETURN.. NOW, WE CHECK TO SEE IF T
HE DEL KEY.WAS PRESSED. IF IT WAS, AND T
HE.LENGTH OF THE STRING IS GREATER THAN.
ONE, THEN WE NEED TO:.. 1) DELETE THE L
AST CHARACTER AND. THE CURSOR CHARAC
TER... 2) SUBTRACT ONE FROM THE LENGTH.
.. 3) DELETE THE LAST CHARACTER IN C$..
. 4) AND, GOTO 60520 TO GET ANOTHER.
CHARACTER...60540 IF A$=CHR$(20) AND A
>1 THEN. PRINT "[2 CRSR LEFT] [2 C
RSR. LEFT]";:A=A-1:C$=LEFT$(C$,A-1)
:. GOTO 60520.. AT THIS POINT, WE N
EED TO CHECK THE.LENGTH OF THE STRING. I
F IT EQUALS.LE + 1, THE ROUTINE SHOULD N
OT ALLOW.ANYMORE CHARACTERS TO BE ADDED
TO THE.STRING. THIS REQUIRES THE USER TO
.PRESS RETURN OR DELETE SOME.CHARACTERS.
..60550 IF (A=LE+1) THEN 60520.. NOW, IF
NU IS SET (1) THEN WE CHECK.TO SEE IF T
HE CHARACTER IS EQUAL TO.A CHARACTER BET
WEEN "0" AND "9"..IF IT IS, GOTO THE LIN
E THAT PRINTS.THE CHARACTER AND ADDS IT
TO THE.STRING...60560 IF (NU) AND ((A$>=
"0") AND (A$. <="9")) THEN 60595..
NOW, IF AL IS SET (1) THEN WE CHECK.TO S
EE IF THE CHARACTER IS EQUAL TO A.CHARAC
TER BETWEEN "A" AND "Z"..IF IT IS, GOTO
THE LINE THAT PRINTS.THE CHARACTER AND A
DDS IT TO THE.STRING...60570 IF (AL) AND
((A$>="A") AND (A$. <="Z") THEN 60
595.. WE ALSO NEED TO CHECK TO SEE IF.AL
IS SET AND THE CHARACTER IS ONE.OF THE
UPPERCASE CHARACTERS...60580 IF (AL) AND
((A$>="A") AND (A$. <="Z") THEN 60
595.. IF THE PROGRAM MAKES IT TO THIS.PO
INT, AN ILLEGAL CHARACTER MUST HAVE.BEEN
ENTERED SO WE IGNORE IT AND GO.BACK TO
GETTING CHARACTERS...60590 GOTO 60520..
THIS LINE PRINTS A CURSOR LEFT SO.IT CAN
PRINT THE CHARACTER ENTERED.OVER THE CU
RSOR CHARACTER. THEN, IT.CLEARS THE QUOT
E MODE FLAG AND.REPRINTS THE CURSOR. FIN
ALLY, IT ADDS.THE CHARACTER TO C$. THE N
EXT STATE-.MENT CAUSES THE PROGRAM TO JU
MP BACK.UP TO LINE 60520 AND GET ANOTHER
.CHARACTER...60595 PRINT"[CRSR LEFT]" A$
;: POKE. 212,.:PRINT "[CMDR @]";: C
$=. C$+A$:NEXT.. AND, THAT'S THE E
ND OF THE INPUT.ROUTINE... OTHER GROUPS
OF CHARACTERS CAN BE.CHECKED FOR BY ADD
ING CODE SIMILAR.TO THAT IN LINES 60560
- 60580... NOTE THAT BEFORE GOSUBING TH
IS.ROUTINE, YOU WILL NEED TO SET THE.FOL
LOWING VARIABLES:.. LE = THE LENGTH OF
THE STRING. (0 - 255).. NU = 0 ME
ANS NUMBERS ARE ILLEGAL. 1 MEANS N
UMBERS ARE LEGAL.. AL = 0 MEANS THE ALP
HABET IS ILLEGAL. 1 MEANS THE ALPH
ABET IS LEGAL.. **** END OF TEXT
****.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL