T.BITS 1
FILE INFORMATION
FILENAME(S): T.BITS 1
FILE TYPE(S): PRG
FILE SIZE: 5.8K
FIRST SEEN: 2025-11-30 18:12:13
APPEARS ON: 1 disk(s)
FILE HASH
baf3cae5715cf80ded3d0a303833aa4084d5dff87a9015f0a2aa50192b7e4d83
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| LOADSTAR 49 S 1 | T.BITS 1 | PRG | Sailor, Ganheden | 25 | 1 | 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 DA C5 D2 CF 20 D0 C1 C7 C5 3A 20 C2 49 | .... ....: .I| 00000020: 54 53 20 D0 41 52 54 20 31 0D 20 20 20 20 20 20 |TS .ART 1. | 00000030: 20 20 20 20 20 42 59 20 CD 49 4B 45 20 CD 41 59 | BY .IKE .AY| 00000040: 4E 41 52 44 0D 0D 20 20 20 20 20 C2 C1 D3 C9 C3 |NARD.. .....| 00000050: 20 3C 2D 2D 2D 3E 20 CD C1 C3 C8 C9 CE C5 20 CC | <---> ....... .| 00000060: C1 CE C7 D5 C1 C7 C5 0D 20 20 20 20 20 20 20 20 |........ | 00000070: 20 20 D4 C8 C5 20 CD C9 D3 D3 C9 CE C7 20 CC C9 | ... ....... ..| 00000080: CE CB D3 0D 0D 20 20 20 20 C8 41 56 45 20 59 4F |..... .AVE YO| 00000090: 55 20 45 56 45 52 20 57 41 4E 54 45 44 20 54 4F |U EVER WANTED TO| 000000A0: 20 54 52 41 4E 53 46 45 52 0D 56 41 52 49 41 42 | TRANSFER.VARIAB| 000000B0: 4C 45 53 20 4F 52 20 53 54 52 49 4E 47 53 20 46 |LES OR STRINGS F| 000000C0: 52 4F 4D 20 C2 C1 D3 C9 C3 20 54 4F 0D 59 4F 55 |ROM ..... TO.YOU| 000000D0: 52 20 CD CC 20 52 4F 55 54 49 4E 45 53 3F 20 20 |R .. ROUTINES? | 000000E0: CF 52 20 48 4F 57 20 41 42 4F 55 54 20 50 52 49 |.R HOW ABOUT PRI| 000000F0: 4E 54 0D 4E 55 4D 42 45 52 53 20 4F 52 20 53 54 |NT.NUMBERS OR ST| 00000100: 52 49 4E 47 53 20 46 52 4F 4D 20 CD CC 3F 20 20 |RINGS FROM ..? | 00000110: D7 45 4C 4C 2C 0D 54 48 45 53 45 20 52 4F 55 54 |.ELL,.THESE ROUT| 00000120: 49 4E 45 53 2C 20 41 53 20 57 45 4C 4C 20 41 53 |INES, AS WELL AS| 00000130: 20 4F 54 48 45 52 53 2C 0D 41 52 45 20 41 4C 52 | OTHERS,.ARE ALR| 00000140: 45 41 44 59 20 57 52 49 54 54 45 4E 20 46 4F 52 |EADY WRITTEN FOR| 00000150: 20 59 4F 55 20 41 4E 44 20 52 45 41 44 59 0D 54 | YOU AND READY.T| 00000160: 4F 20 55 53 45 20 49 4E 20 54 48 45 20 C2 C1 D3 |O USE IN THE ...| 00000170: C9 C3 20 D2 CF CD 20 54 48 41 54 20 49 53 20 49 |.. ... THAT IS I| 00000180: 4E 0D 45 56 45 52 59 20 C3 2D 36 34 20 43 4F 4D |N.EVERY .-64 COM| 00000190: 50 55 54 45 52 2E 20 20 D4 48 41 54 27 53 20 52 |PUTER. .HAT'S R| 000001A0: 49 47 48 54 20 2D 2D 0D 53 43 41 54 54 45 52 45 |IGHT --.SCATTERE| 000001B0: 44 20 54 48 52 4F 55 47 48 4F 55 54 20 C2 C1 D3 |D THROUGHOUT ...| 000001C0: C9 C3 20 D2 CF CD 20 41 52 45 0D 52 4F 55 54 49 |.. ... ARE.ROUTI| 000001D0: 4E 45 53 20 54 48 41 54 20 59 4F 55 20 43 41 4E |NES THAT YOU CAN| 000001E0: 20 45 41 53 49 4C 59 20 55 53 45 20 46 52 4F 4D | EASILY USE FROM| 000001F0: 0D 57 49 54 48 49 4E 20 59 4F 55 52 20 4F 57 4E |.WITHIN YOUR OWN| 00000200: 20 CD CC 20 50 52 4F 47 52 41 4D 53 2E 0D 0D 20 | .. PROGRAMS... | 00000210: 20 20 20 D4 48 49 53 20 54 45 58 54 20 57 49 4C | .HIS TEXT WIL| 00000220: 4C 20 45 58 50 4C 41 49 4E 20 48 4F 57 20 59 4F |L EXPLAIN HOW YO| 00000230: 55 0D 43 41 4E 20 45 41 53 49 4C 59 2E 2E 2E 0D |U.CAN EASILY....| 00000240: 0D 20 20 2D 2D 20 46 49 4E 44 20 28 4F 52 20 53 |. -- FIND (OR S| 00000250: 45 54 55 50 29 20 41 20 56 41 52 49 41 42 4C 45 |ETUP) A VARIABLE| 00000260: 0D 20 20 20 20 20 49 4E 20 4D 45 4D 4F 52 59 0D |. IN MEMORY.| 00000270: 20 20 2D 2D 20 54 52 41 4E 53 46 45 52 20 41 20 | -- TRANSFER A | 00000280: C2 C1 D3 C9 C3 20 53 54 52 49 4E 47 20 54 4F 20 |..... STRING TO | 00000290: CD CC 0D 20 20 2D 2D 20 54 52 41 4E 53 46 45 52 |... -- TRANSFER| 000002A0: 20 38 2D 42 49 54 20 41 4E 44 20 31 36 2D 42 49 | 8-BIT AND 16-BI| 000002B0: 54 0D 20 20 20 20 20 49 4E 54 45 47 45 52 53 20 |T. INTEGERS | 000002C0: 46 52 4F 4D 20 C2 C1 D3 C9 C3 20 54 4F 20 CD CC |FROM ..... TO ..| 000002D0: 0D 20 20 2D 2D 20 50 52 49 4E 54 20 55 50 20 54 |. -- PRINT UP T| 000002E0: 4F 20 32 35 35 20 43 48 41 52 41 43 54 45 52 53 |O 255 CHARACTERS| 000002F0: 20 46 52 4F 4D 0D 20 20 20 20 20 4D 41 43 48 49 | FROM. MACHI| 00000300: 4E 45 20 4C 41 4E 47 55 41 47 45 0D 20 20 2D 2D |NE LANGUAGE. --| 00000310: 20 50 52 49 4E 54 20 41 4E 20 49 4E 54 45 47 45 | PRINT AN INTEGE| 00000320: 52 20 46 52 4F 4D 20 30 20 54 4F 20 36 35 35 33 |R FROM 0 TO 6553| 00000330: 35 0D 20 20 2D 2D 20 50 52 4F 44 55 43 45 20 52 |5. -- PRODUCE R| 00000340: 41 4E 44 4F 4D 20 4E 55 4D 42 45 52 53 20 49 4E |ANDOM NUMBERS IN| 00000350: 20 CD CC 0D 20 20 2D 2D 20 50 52 4F 44 55 43 45 | ... -- PRODUCE| 00000360: 20 4F 4E 45 20 4F 46 20 C2 C1 D3 C9 C3 27 53 20 | ONE OF .....'S | 00000370: 32 39 20 45 52 52 4F 52 0D 20 20 20 20 20 4D 45 |29 ERROR. ME| 00000380: 53 53 41 47 45 53 0D 20 20 2D 2D 20 C7 CF D4 CF |SSAGES. -- ....| 00000390: 20 41 20 C2 C1 D3 C9 C3 20 4C 49 4E 45 20 4E 55 | A ..... LINE NU| 000003A0: 4D 42 45 52 20 46 52 4F 4D 20 CD CC 0D 0D 20 20 |MBER FROM .... | 000003B0: 20 20 C9 27 4D 20 53 55 52 45 20 54 48 45 52 45 | .'M SURE THERE| 000003C0: 20 41 52 45 20 4D 41 4E 59 20 4D 4F 52 45 2C 20 | ARE MANY MORE, | 000003D0: 42 55 54 0D 54 48 45 53 45 20 41 52 45 20 54 48 |BUT.THESE ARE TH| 000003E0: 45 20 4F 4E 45 53 20 C9 27 56 45 20 55 53 45 44 |E ONES .'VE USED| 000003F0: 20 4D 4F 53 54 2E 0D 0D 2D 2D C6 C9 CE C4 20 CF | MOST...--.... .| 00000400: D2 20 D3 C5 D4 D5 D0 20 C1 20 D6 C1 D2 C9 C1 C2 |. ..... . ......| 00000410: CC C5 20 C9 CE 20 CD C5 CD CF D2 D9 2D 2D 0D 0D |.. .. ......--..| 00000420: 20 C5 51 55 41 54 45 53 3A 20 20 20 C3 C8 D2 C7 | .QUATES: ....| 00000430: C5 D4 20 20 3D 20 31 31 35 0D 20 20 20 20 20 20 |.. = 115. | 00000440: 20 20 20 20 20 20 D0 CF C9 CE D4 C5 D2 20 3D 20 | ....... = | 00000450: 32 35 31 0D 20 20 20 20 20 20 20 20 20 20 20 20 |251. | 00000460: D0 D4 D2 C7 C5 D4 20 20 3D 20 34 35 31 39 35 0D |...... = 45195.| 00000470: 0D D4 48 45 20 43 4F 44 45 3A 20 20 20 CA D3 D2 |..HE CODE: ...| 00000480: 20 C3 C8 D2 C7 C5 D4 0D 20 20 20 20 20 20 20 20 | ....... | 00000490: 20 20 20 20 CA D3 D2 20 D0 D2 D4 C7 C5 D4 0D 0D | ... ........| 000004A0: 20 20 20 20 20 20 20 20 20 20 20 20 D3 D4 C1 20 | ... | 000004B0: D0 CF C9 CE D4 C5 D2 0D 20 20 20 20 20 20 20 20 |........ | 000004C0: 20 20 20 20 D3 D4 D9 20 D0 CF C9 CE D4 C5 D2 2B | ... .......+| 000004D0: 31 0D 0D C5 58 41 4D 50 4C 45 53 3A 20 20 20 D3 |1...XAMPLES: .| 000004E0: D9 D3 20 CF D2 C7 2C D0 D1 0D 20 20 20 20 20 20 |.. ...,... | 000004F0: 20 20 20 20 20 20 D3 D9 D3 20 CF D2 C7 2C C1 24 | ... ...,.$| 00000500: 0D 20 20 20 20 20 20 20 20 20 20 20 20 D3 D9 D3 |. ...| 00000510: 20 CF D2 C7 2C C6 C9 24 28 30 29 0D 0D 0D 0D 0D | ...,..$(0).....| 00000520: 20 20 20 20 C3 C8 D2 C7 C5 D4 20 49 53 20 41 20 | ...... IS A | 00000530: D2 CF CD 20 52 4F 55 54 49 4E 45 20 54 48 41 54 |... ROUTINE THAT| 00000540: 27 53 0D 43 4F 50 49 45 44 20 54 4F 20 D2 C1 CD |'S.COPIED TO ...| 00000550: 20 28 41 54 20 31 31 35 29 20 57 48 45 4E 20 41 | (AT 115) WHEN A| 00000560: 20 43 4F 4C 44 0D 53 54 41 52 54 20 49 53 20 49 | COLD.START IS I| 00000570: 4E 49 54 49 41 54 45 44 2E 20 20 C9 54 27 53 20 |NITIATED. .T'S | 00000580: 54 48 45 20 52 4F 55 54 49 4E 45 0D 54 48 41 54 |THE ROUTINE.THAT| 00000590: 20 C2 C1 D3 C9 C3 20 55 53 45 53 20 54 4F 20 52 | ..... USES TO R| 000005A0: 45 41 44 20 54 48 45 20 54 45 58 54 20 4F 46 0D |EAD THE TEXT OF.| 000005B0: 54 48 45 20 C2 C1 D3 C9 C3 20 50 52 4F 47 52 41 |THE ..... PROGRA| 000005C0: 4D 20 57 48 49 43 48 20 49 53 20 42 45 49 4E 47 |M WHICH IS BEING| 000005D0: 0D 49 4E 54 45 52 50 52 45 54 45 44 2E 20 20 D7 |.INTERPRETED. .| 000005E0: 48 45 4E 20 54 48 49 53 20 52 4F 55 54 49 4E 45 |HEN THIS ROUTINE| 000005F0: 20 49 53 0D 43 41 4C 4C 45 44 20 54 48 45 20 54 | IS.CALLED THE T| 00000600: 45 58 54 20 50 4F 49 4E 54 45 52 20 49 53 20 49 |EXT POINTER IS I| 00000610: 4E 43 52 45 4D 45 4E 54 45 44 0D 41 4E 44 20 54 |NCREMENTED.AND T| 00000620: 48 45 20 4E 45 58 54 20 43 48 41 52 41 43 54 45 |HE NEXT CHARACTE| 00000630: 52 20 49 53 20 50 55 54 20 49 4E 20 5B C1 5D 2E |R IS PUT IN [.].| 00000640: 0D C5 4E 54 45 52 49 4E 47 20 41 54 20 C3 C8 D2 |..NTERING AT ...| 00000650: C7 CF D4 20 28 31 32 31 29 20 45 4E 41 42 4C 45 |... (121) ENABLE| 00000660: 53 20 59 4F 55 0D 54 4F 20 47 45 54 20 41 20 43 |S YOU.TO GET A C| 00000670: 48 41 52 41 43 54 45 52 20 57 49 54 48 4F 55 54 |HARACTER WITHOUT| 00000680: 0D 49 4E 43 52 45 4D 45 4E 54 49 4E 47 20 54 48 |.INCREMENTING TH| 00000690: 45 20 54 45 58 54 20 50 4F 49 4E 54 45 52 2E 0D |E TEXT POINTER..| 000006A0: 0D 20 20 20 20 C9 4E 20 54 48 45 20 41 42 4F 56 |. .N THE ABOV| 000006B0: 45 20 52 4F 55 54 49 4E 45 2C 20 C9 27 4D 20 4E |E ROUTINE, .'M N| 000006C0: 4F 54 0D 43 48 45 43 4B 49 4E 47 20 46 4F 52 20 |OT.CHECKING FOR | 000006D0: 41 20 43 4F 4D 4D 41 20 54 4F 20 53 48 4F 57 20 |A COMMA TO SHOW | 000006E0: 48 4F 57 0D 46 4C 45 58 49 42 4C 45 20 C3 C8 D2 |HOW.FLEXIBLE ...| 000006F0: C7 C5 D4 20 52 45 41 4C 4C 59 20 49 53 2E 20 20 |... REALLY IS. | 00000700: C2 45 43 41 55 53 45 20 4F 46 0D 54 48 49 53 2C |.ECAUSE OF.THIS,| 00000710: 20 22 D3 D9 D3 20 CF D2 C7 26 C1 24 22 20 49 53 | "... ...&.$" IS| 00000720: 20 4A 55 53 54 20 41 53 20 56 41 4C 49 44 20 41 | JUST AS VALID A| 00000730: 53 0D 22 D3 D9 D3 20 CF D2 C7 2C C1 24 22 2E 20 |S."... ...,.$". | 00000740: 20 C3 C8 D2 C7 C5 D4 20 4F 50 45 4E 53 20 55 50 | ...... OPENS UP| 00000750: 0D 55 4E 4C 49 4D 49 54 45 44 20 50 4F 53 53 49 |.UNLIMITED POSSI| 00000760: 42 49 4C 49 54 49 45 53 20 46 4F 52 20 C2 C1 D3 |BILITIES FOR ...| 00000770: C9 C3 2F CD CC 0D 50 52 4F 47 52 41 4D 4D 45 52 |../...PROGRAMMER| 00000780: 53 2E 0D 0D 20 20 20 20 D4 48 45 20 4E 45 58 54 |S... .HE NEXT| 00000790: 20 43 41 4C 4C 20 28 54 4F 20 D0 D4 D2 C7 C5 D4 | CALL (TO ......| 000007A0: 29 20 41 54 54 45 4D 50 54 53 0D 54 4F 20 46 49 |) ATTEMPTS.TO FI| 000007B0: 4E 44 20 41 20 56 41 52 49 41 42 4C 45 20 42 59 |ND A VARIABLE BY| 000007C0: 20 53 45 41 52 43 48 49 4E 47 20 46 4F 52 0D 49 | SEARCHING FOR.I| 000007D0: 54 53 20 4E 41 4D 45 20 49 4E 20 54 48 45 20 56 |TS NAME IN THE V| 000007E0: 41 52 49 41 42 4C 45 20 41 52 45 41 2E 20 20 C9 |ARIABLE AREA. .| 000007F0: 46 0D 54 48 45 20 56 41 52 49 41 42 4C 45 20 49 |F.THE VARIABLE I| 00000800: 53 20 4E 4F 54 20 46 4F 55 4E 44 2C 20 4F 4E 45 |S NOT FOUND, ONE| 00000810: 20 49 53 0D 43 52 45 41 54 45 44 2E 20 20 D4 48 | IS.CREATED. .H| 00000820: 45 20 52 4F 55 54 49 4E 45 20 52 45 54 55 52 4E |E ROUTINE RETURN| 00000830: 53 20 54 48 45 0D 41 44 44 52 45 53 53 20 4F 46 |S THE.ADDRESS OF| 00000840: 20 54 48 45 20 42 59 54 45 20 46 4F 4C 4C 4F 57 | THE BYTE FOLLOW| 00000850: 49 4E 47 20 54 48 45 0D 56 41 52 49 41 42 4C 45 |ING THE.VARIABLE| 00000860: 27 53 20 4E 41 4D 45 20 49 4E 20 5B C1 5D 20 2F |'S NAME IN [.] /| 00000870: 20 5B D9 5D 2E 0D 0D 20 20 20 20 C9 4E 20 4D 45 | [.]... .N ME| 00000880: 4D 4F 52 59 2C 20 53 45 56 45 4E 20 42 59 54 45 |MORY, SEVEN BYTE| 00000890: 53 20 41 52 45 0D 41 4C 4C 4F 43 41 54 45 44 20 |S ARE.ALLOCATED | 000008A0: 46 4F 52 20 45 41 43 48 20 56 41 52 49 41 42 4C |FOR EACH VARIABL| 000008B0: 45 2E 20 20 D4 48 45 0D 46 49 52 53 54 20 54 57 |E. .HE.FIRST TW| 000008C0: 4F 20 41 52 45 20 55 53 45 44 20 46 4F 52 20 54 |O ARE USED FOR T| 000008D0: 48 45 20 56 41 52 49 41 42 4C 45 27 53 0D 4E 41 |HE VARIABLE'S.NA| 000008E0: 4D 45 20 41 4E 44 20 54 59 50 45 2E 20 20 D4 48 |ME AND TYPE. .H| 000008F0: 45 20 37 54 48 20 42 49 54 20 4F 46 20 42 4F 54 |E 7TH BIT OF BOT| 00000900: 48 0D 42 59 54 45 53 20 41 52 45 20 55 53 45 44 |H.BYTES ARE USED| 00000910: 20 54 4F 20 44 49 53 54 49 4E 47 55 49 53 48 20 | TO DISTINGUISH | 00000920: 42 45 54 57 45 45 4E 0D 54 48 45 20 44 49 46 46 |BETWEEN.THE DIFF| 00000930: 45 52 45 4E 54 20 56 41 52 49 41 42 4C 45 20 54 |ERENT VARIABLE T| 00000940: 59 50 45 53 2E 0D 0D 20 20 20 20 D4 48 45 20 55 |YPES... .HE U| 00000950: 53 45 20 4F 46 20 54 48 45 20 4F 54 48 45 52 20 |SE OF THE OTHER | 00000960: 46 49 56 45 20 42 49 54 53 0D 44 45 50 45 4E 44 |FIVE BITS.DEPEND| 00000970: 53 20 4F 4E 20 54 48 45 20 56 41 52 49 41 42 4C |S ON THE VARIABL| 00000980: 45 20 54 59 50 45 2E 0D 0D C9 CE D4 C5 C7 C5 D2 |E TYPE..........| 00000990: D3 3A 20 3F 20 2F 20 3F 20 2F 20 C8 C9 20 2F 20 |.: ? / ? / .. / | 000009A0: CC CF 20 2F 20 58 20 2F 20 58 20 2F 20 58 0D 0D |.. / X / X / X..| 000009B0: 3F 20 2F 20 3F 20 49 53 20 54 48 45 20 56 41 52 |? / ? IS THE VAR| 000009C0: 49 41 42 4C 45 20 4E 41 4D 45 2E 20 C2 4F 54 48 |IABLE NAME. .OTH| 000009D0: 20 42 59 54 45 53 0D 43 4F 4E 54 41 49 4E 20 54 | BYTES.CONTAIN T| 000009E0: 48 45 20 C1 D3 C3 C9 C9 20 56 41 4C 55 45 20 57 |HE ..... VALUE W| 000009F0: 49 54 48 20 54 48 45 20 37 54 48 0D 42 49 54 20 |ITH THE 7TH.BIT | 00000A00: 53 45 54 2E 20 20 D4 48 49 53 20 41 44 44 53 20 |SET. .HIS ADDS | 00000A10: 31 32 38 20 54 4F 20 54 48 45 20 C1 D3 C3 0D 56 |128 TO THE ....V| 00000A20: 41 4C 55 45 2E 0D 0D C8 C9 20 49 53 20 57 48 45 |ALUE..... IS WHE| 00000A30: 52 45 20 D0 CF C9 CE D4 C5 D2 20 49 4E 20 54 48 |RE ....... IN TH| 00000A40: 45 20 46 49 52 53 54 0D 45 58 41 4D 50 4C 45 20 |E FIRST.EXAMPLE | 00000A50: 50 4F 49 4E 54 53 2E 20 28 49 45 3A 20 41 4C 54 |POINTS. (IE: ALT| 00000A60: 45 52 49 4E 47 20 54 48 45 20 54 57 4F 0D 50 52 |ERING THE TWO.PR| 00000A70: 45 56 49 4F 55 53 20 42 59 54 45 53 20 57 4F 55 |EVIOUS BYTES WOU| 00000A80: 4C 44 20 43 48 41 4E 47 45 20 54 48 45 0D 56 41 |LD CHANGE THE.VA| 00000A90: 52 49 41 42 4C 45 20 4E 41 4D 45 29 0D 0D C8 C9 |RIABLE NAME)....| 00000AA0: 20 2F 20 CC CF 20 49 53 20 54 48 45 20 49 4E 54 | / .. IS THE INT| 00000AB0: 45 47 45 52 20 4E 55 4D 42 45 52 20 49 4E 0D C8 |EGER NUMBER IN..| 00000AC0: C9 C7 C8 20 C2 D9 D4 C5 2F CC CF D7 20 C2 D9 D4 |... ..../... ...| 00000AD0: C5 20 46 4F 52 4D 41 54 20 2D 2D 20 CE CF D4 20 |. FORMAT -- ... | 00000AE0: 54 48 45 0D 45 56 45 52 2D 50 4F 50 55 4C 41 52 |THE.EVER-POPULAR| 00000AF0: 20 4C 4F 2F 48 49 20 46 4F 52 4D 41 54 21 0D 0D | LO/HI FORMAT!..| 00000B00: D4 48 45 20 54 48 52 45 45 20 58 27 53 20 41 52 |.HE THREE X'S AR| 00000B10: 45 20 55 4E 55 53 45 44 20 41 44 44 52 45 53 53 |E UNUSED ADDRESS| 00000B20: 45 53 2E 0D 0D 0D D3 D4 D2 C9 CE C7 D3 3A 20 3F |ES...........: ?| 00000B30: 20 2F 20 3F 20 2F 20 CC C5 CE 20 2F 20 CC CF 20 | / ? / ... / .. | 00000B40: 2F 20 C8 C9 20 2F 20 58 20 2F 20 58 0D 0D CF 4E |/ .. / X / X...N| 00000B50: 43 45 20 41 47 41 49 4E 2C 20 22 3F 20 2F 20 3F |CE AGAIN, "? / ?| 00000B60: 22 20 52 45 50 52 45 53 45 4E 54 53 20 54 48 45 |" REPRESENTS THE| 00000B70: 0D 53 54 52 49 4E 47 20 4E 41 4D 45 20 45 58 43 |.STRING NAME EXC| 00000B80: 45 50 54 20 54 48 41 54 20 57 49 54 48 20 53 54 |EPT THAT WITH ST| 00000B90: 52 49 4E 47 53 2C 0D 54 48 45 20 53 45 43 4F 4E |RINGS,.THE SECON| 00000BA0: 44 20 42 59 54 45 20 48 41 53 20 49 54 53 20 37 |D BYTE HAS ITS 7| 00000BB0: 54 48 20 42 49 54 20 53 45 54 2E 0D D4 48 45 20 |TH BIT SET...HE | 00000BC0: 46 49 52 53 54 20 42 59 54 45 20 49 53 20 54 48 |FIRST BYTE IS TH| 00000BD0: 45 20 C1 D3 C3 C9 C9 20 56 41 4C 55 45 20 4F 46 |E ..... VALUE OF| 00000BE0: 0D 54 48 45 20 46 49 52 53 54 20 4C 45 54 54 45 |.THE FIRST LETTE| 00000BF0: 52 20 4F 46 20 54 48 45 20 56 41 52 49 41 42 4C |R OF THE VARIABL| 00000C00: 45 0D 4E 41 4D 45 2E 0D 0D C6 4F 52 20 53 54 52 |E.NAME....OR STR| 00000C10: 49 4E 47 53 2C 20 CC C5 CE 20 49 53 20 57 48 45 |INGS, ... IS WHE| 00000C20: 52 45 20 D0 CF C9 CE D4 C5 D2 0D 57 49 4C 4C 20 |RE ........WILL | 00000C30: 50 4F 49 4E 54 20 54 4F 2E 20 20 CC C5 CE 20 49 |POINT TO. ... I| 00000C40: 53 20 54 48 45 20 4C 45 4E 47 54 48 20 4F 46 0D |S THE LENGTH OF.| 00000C50: 54 48 45 20 53 54 52 49 4E 47 2E 0D 0D CC CF 20 |THE STRING..... | 00000C60: 2F 20 C8 C9 20 50 4F 49 4E 54 53 20 54 4F 20 54 |/ .. POINTS TO T| 00000C70: 48 45 20 54 45 58 54 27 53 20 53 54 52 49 4E 47 |HE TEXT'S STRING| 00000C80: 0D 44 41 54 41 2E 0D 0D C6 4F 52 20 41 20 4D 4F |.DATA....OR A MO| 00000C90: 52 45 20 49 4E 2D 44 45 50 54 48 20 4C 4F 4F 4B |RE IN-DEPTH LOOK| 00000CA0: 20 41 54 20 48 4F 57 20 4F 54 48 45 52 0D 54 59 | AT HOW OTHER.TY| 00000CB0: 50 45 53 20 4F 46 20 56 41 52 49 41 42 4C 45 53 |PES OF VARIABLES| 00000CC0: 20 41 52 45 20 53 54 4F 52 45 44 2C 20 43 4F 4E | ARE STORED, CON| 00000CD0: 53 55 4C 54 0D C3 4F 4D 50 55 54 45 21 27 53 20 |SULT..OMPUTE!'S | 00000CE0: CD C1 D0 D0 C9 CE C7 20 D4 C8 C5 20 36 34 2C 20 |....... ... 64, | 00000CF0: 50 50 20 31 35 2D 31 38 2E 0D 0D 2D 2D 2D 2D 2D |PP 15-18...-----| 00000D00: 2D 2D D4 D2 C1 CE D3 C6 C5 D2 20 C1 20 D3 D4 D2 |--........ . ...| 00000D10: C9 CE C7 20 D4 CF 20 CD CC 2D 2D 2D 2D 2D 2D 2D |... .. ..-------| 00000D20: 2D 0D 0D 20 20 20 20 D4 48 45 20 50 52 45 56 49 |-.. .HE PREVI| 00000D30: 4F 55 53 20 52 4F 55 54 49 4E 45 20 43 4F 55 4C |OUS ROUTINE COUL| 00000D40: 44 20 42 45 0D 55 53 45 44 20 54 4F 20 41 43 43 |D BE.USED TO ACC| 00000D50: 4F 4D 50 4C 49 53 48 20 54 48 49 53 20 53 41 4D |OMPLISH THIS SAM| 00000D60: 45 20 54 41 53 4B 2C 0D 45 58 43 45 50 54 20 54 |E TASK,.EXCEPT T| 00000D70: 48 45 52 45 20 49 53 20 4F 4E 45 20 4D 49 4E 4F |HERE IS ONE MINO| 00000D80: 52 20 43 41 54 43 48 2E 20 20 D4 48 45 0D 54 45 |R CATCH. .HE.TE| 00000D90: 58 54 20 59 4F 55 20 53 45 4E 44 20 4D 55 53 54 |XT YOU SEND MUST| 00000DA0: 20 48 41 56 45 20 42 45 45 4E 20 50 52 45 2D 0D | HAVE BEEN PRE-.| 00000DB0: 44 45 46 49 4E 45 44 20 49 4E 54 4F 20 41 20 56 |DEFINED INTO A V| 00000DC0: 41 52 49 41 42 4C 45 2E 20 20 D7 49 54 48 20 54 |ARIABLE. .ITH T| 00000DD0: 48 45 0D 46 4F 4C 4C 4F 57 49 4E 47 20 52 4F 55 |HE.FOLLOWING ROU| 00000DE0: 54 49 4E 45 2C 20 59 4F 55 20 43 41 4E 20 41 4C |TINE, YOU CAN AL| 00000DF0: 53 4F 20 55 53 45 0D 22 4C 49 54 45 52 41 4C 22 |SO USE."LITERAL"| 00000E00: 20 28 48 41 52 44 43 4F 44 45 44 29 20 54 45 58 | (HARDCODED) TEX| 00000E10: 54 2E 0D 0D 20 C5 51 55 41 54 45 53 3A 20 20 20 |T... .QUATES: | 00000E20: C3 C8 CB C3 CF CD 20 3D 20 34 34 37 39 37 0D 20 |...... = 44797. | 00000E30: 20 20 20 20 20 20 20 20 20 20 20 C6 D2 CD C5 D6 | .....| 00000E40: CC 20 3D 20 34 34 34 34 36 0D 20 20 20 20 20 20 |. = 44446. | 00000E50: 20 20 20 20 20 20 C6 D2 C5 D3 D4 D2 20 3D 20 34 | ...... = 4| 00000E60: 36 37 35 35 0D 0D D4 48 45 20 C3 4F 44 45 3A 20 |6755...HE .ODE: | 00000E70: 20 20 CA D3 D2 20 C3 C8 CB C3 CF CD 0D 20 20 20 | ... ....... | 00000E80: 20 20 20 20 20 20 20 20 20 CA D3 D2 20 C6 D2 CD | ... ...| 00000E90: C5 D6 CC 0D 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00000EA0: CA D3 D2 20 C6 D2 C5 D3 D4 D2 0D 0D 20 20 20 20 |... ........ | 00000EB0: C1 54 20 54 48 49 53 20 50 4F 49 4E 54 2C 20 5B |.T THIS POINT, [| 00000EC0: C1 5D 20 57 49 4C 4C 20 43 4F 4E 54 41 49 4E 0D |.] WILL CONTAIN.| 00000ED0: 54 48 45 20 4C 45 4E 47 54 48 20 4F 46 20 54 48 |THE LENGTH OF TH| 00000EE0: 45 20 53 54 52 49 4E 47 20 41 4E 44 20 5B D8 5D |E STRING AND [.]| 00000EF0: 20 2F 20 5B D9 5D 0D 57 49 4C 4C 20 50 4F 49 4E | / [.].WILL POIN| 00000F00: 54 20 54 4F 20 54 48 45 20 41 44 44 52 45 53 53 |T TO THE ADDRESS| 00000F10: 20 57 48 45 52 45 20 54 48 45 0D 54 45 58 54 20 | WHERE THE.TEXT | 00000F20: 53 54 41 52 54 53 2E 0D 0D C5 58 41 4D 50 4C 45 |STARTS....XAMPLE| 00000F30: 53 3A 20 20 20 D3 D9 D3 20 CF D2 C7 2C CE C1 24 |S: ... ...,..$| 00000F40: 2B C3 C8 D2 24 28 31 33 29 0D 20 20 20 20 20 20 |+...$(13). | 00000F50: 20 20 20 20 20 20 D3 D9 D3 20 CF D2 C7 2C C6 C9 | ... ...,..| 00000F60: 24 28 34 29 0D 20 20 20 20 20 20 20 20 20 20 20 |$(4). | 00000F70: 20 D3 D9 D3 20 CF D2 C7 2C 22 D4 C8 C9 D3 20 C9 | ... ...,".... .| 00000F80: D3 20 D4 C5 D8 D4 22 0D 0D 20 20 20 20 C3 C8 CB |. ....".. ...| 00000F90: C3 CF CD 20 43 48 45 43 4B 53 20 54 4F 20 53 45 |... CHECKS TO SE| 00000FA0: 45 20 54 48 41 54 20 54 48 45 0D 4E 45 58 54 20 |E THAT THE.NEXT | 00000FB0: 43 48 41 52 41 43 54 45 52 20 49 53 20 41 20 43 |CHARACTER IS A C| 00000FC0: 4F 4D 4D 41 2E 20 20 C9 46 20 49 54 20 49 53 0D |OMMA. .F IT IS.| 00000FD0: 4E 4F 54 20 41 20 43 4F 4D 4D 41 2C 20 41 20 D3 |NOT A COMMA, A .| 00000FE0: D9 CE D4 C1 D8 20 C5 D2 D2 CF D2 20 49 53 0D 52 |..... ..... IS.R| 00000FF0: 45 54 55 52 4E 45 44 2E 20 20 C1 4E 4F 54 48 45 |ETURNED. .NOTHE| 00001000: 52 20 51 55 49 43 4B 20 57 41 59 20 54 4F 20 43 |R QUICK WAY TO C| 00001010: 48 45 43 4B 0D 46 4F 52 20 C1 CE D9 20 43 48 41 |HECK.FOR ... CHA| 00001020: 52 41 43 54 45 52 20 49 4E 20 41 20 C2 C1 D3 C9 |RACTER IN A ....| 00001030: C3 20 53 54 41 54 45 4D 45 4E 54 0D 57 4F 55 4C |. STATEMENT.WOUL| 00001040: 44 20 42 45 20 54 4F 20 4C 4F 41 44 20 54 48 45 |D BE TO LOAD THE| 00001050: 20 5B C1 5D 20 57 49 54 48 20 54 48 45 0D 43 48 | [.] WITH THE.CH| 00001060: 41 52 41 43 54 45 52 20 59 4F 55 20 57 41 4E 54 |ARACTER YOU WANT| 00001070: 20 54 4F 20 43 48 45 43 4B 20 41 4E 44 20 CA D3 | TO CHECK AND ..| 00001080: D2 0D C3 C8 CB C3 CF CD 2B 32 2E 20 20 D4 48 45 |........+2. .HE| 00001090: 20 46 49 52 53 54 20 54 57 4F 20 42 59 54 45 53 | FIRST TWO BYTES| 000010A0: 20 4C 4F 41 44 0D 5B C1 5D 20 57 49 54 48 20 54 | LOAD.[.] WITH T| 000010B0: 48 45 20 56 41 4C 55 45 20 46 4F 52 20 41 20 43 |HE VALUE FOR A C| 000010C0: 4F 4D 4D 41 2E 0D 0D 20 20 20 20 D4 48 45 20 4D |OMMA... .HE M| 000010D0: 41 49 4E 20 50 55 52 50 4F 53 45 20 4F 46 20 C6 |AIN PURPOSE OF .| 000010E0: D2 CD C5 D6 CC 20 49 53 20 54 4F 0D 52 45 41 44 |..... IS TO.READ| 000010F0: 20 49 4E 20 54 48 45 20 C1 D3 C3 C9 C9 20 54 45 | IN THE ..... TE| 00001100: 58 54 20 4F 46 20 C2 C1 D3 C9 C3 0D 45 58 50 52 |XT OF ......EXPR| 00001110: 45 53 53 49 4F 4E 53 2C 20 53 45 50 41 52 41 54 |ESSIONS, SEPARAT| 00001120: 45 20 54 48 45 20 4F 50 45 52 41 54 4F 52 53 2C |E THE OPERATORS,| 00001130: 0D 43 48 45 43 4B 20 46 4F 52 20 45 52 52 4F 52 |.CHECK FOR ERROR| 00001140: 53 20 41 4E 44 20 4F 42 54 41 49 4E 20 41 20 53 |S AND OBTAIN A S| 00001150: 49 4E 47 4C 45 0D 56 41 4C 55 45 20 54 48 41 54 |INGLE.VALUE THAT| 00001160: 20 54 48 45 20 C2 C1 D3 C9 C3 20 50 52 4F 47 52 | THE ..... PROGR| 00001170: 41 4D 20 43 41 4E 20 55 53 45 2E 0D C1 46 54 45 |AM CAN USE...FTE| 00001180: 52 20 45 56 41 4C 55 41 54 49 4F 4E 2C 20 41 44 |R EVALUATION, AD| 00001190: 44 52 45 53 53 20 31 33 20 49 53 20 53 45 54 0D |DRESS 13 IS SET.| 000011A0: 54 4F 20 54 45 4C 4C 20 57 48 45 54 48 45 52 20 |TO TELL WHETHER | 000011B0: 54 48 45 20 52 45 53 55 4C 54 49 4E 47 20 56 41 |THE RESULTING VA| 000011C0: 4C 55 45 0D 49 53 20 53 54 52 49 4E 47 20 4F 52 |LUE.IS STRING OR| 000011D0: 20 4E 55 4D 45 52 49 43 2E 20 20 C1 4E 44 2C 20 | NUMERIC. .ND, | 000011E0: 49 46 20 54 48 45 0D 56 41 4C 55 45 20 49 53 20 |IF THE.VALUE IS | 000011F0: 4E 55 4D 45 52 49 43 2C 20 54 48 45 20 46 4C 41 |NUMERIC, THE FLA| 00001200: 47 20 41 54 20 31 34 20 49 53 0D 53 45 54 20 54 |G AT 14 IS.SET T| 00001210: 4F 20 53 48 4F 57 20 49 46 20 49 54 20 49 53 20 |O SHOW IF IT IS | 00001220: 41 4E 20 49 4E 54 45 47 45 52 20 4F 52 0D 46 4C |AN INTEGER OR.FL| 00001230: 4F 41 54 49 4E 47 20 50 4F 49 4E 54 20 4E 55 4D |OATING POINT NUM| 00001240: 42 45 52 2E 0D 0D 20 20 20 20 C6 D2 C5 D3 D4 D2 |BER... ......| 00001250: 20 49 53 20 55 53 45 44 20 54 4F 20 44 49 53 43 | IS USED TO DISC| 00001260: 41 52 44 20 41 0D 54 45 4D 50 4F 52 41 52 59 20 |ARD A.TEMPORARY | 00001270: 53 54 52 49 4E 47 2E 20 20 C9 46 20 54 48 45 20 |STRING. .F THE | 00001280: 44 45 53 43 52 49 50 54 4F 52 0D 57 41 53 20 4F |DESCRIPTOR.WAS O| 00001290: 4E 20 54 48 45 20 53 54 41 43 4B 2C 20 49 54 20 |N THE STACK, IT | 000012A0: 45 58 49 54 53 20 41 46 54 45 52 0D 53 45 54 54 |EXITS AFTER.SETT| 000012B0: 49 4E 47 20 50 4F 49 4E 54 45 52 53 20 54 4F 20 |ING POINTERS TO | 000012C0: 54 48 45 20 53 54 52 49 4E 47 20 41 4E 44 0D 49 |THE STRING AND.I| 000012D0: 54 53 20 4C 45 4E 47 54 48 2E 0D 0D 0D 2D 2D 2D |TS LENGTH....---| 000012E0: D4 D2 C1 CE D3 C6 C5 D2 20 C1 CE 20 38 2D C2 C9 |........ .. 8-..| 000012F0: D4 20 C9 CE D4 C5 C7 C5 D2 20 D4 CF 20 CD CC 2D |. ....... .. ..-| 00001300: 2D 2D 2D 0D 0D 20 C5 51 55 41 54 45 20 3A 20 20 |---.. .QUATE : | 00001310: 20 C3 CF CD CE D5 CD 20 3D 20 34 37 30 38 39 0D | ...... = 47089.| 00001320: 0D D4 48 45 20 C3 4F 44 45 3A 20 20 20 CA D3 D2 |..HE .ODE: ...| 00001330: 20 C3 CF CD CE D5 CD 0D 0D C5 58 41 4D 50 4C 45 | .........XAMPLE| 00001340: 53 3A 20 20 20 D3 D9 D3 20 CF D2 C7 2C 32 35 35 |S: ... ...,255| 00001350: 0D 20 20 20 20 20 20 20 20 20 20 20 20 D3 D9 D3 |. ...| 00001360: 20 CF D2 C7 2C C1 0D 20 20 20 20 20 20 20 20 20 | ...,.. | 00001370: 20 20 20 D3 D9 D3 20 CF D2 C7 2C C4 C5 28 31 29 | ... ...,..(1)| 00001380: 0D 0D 20 20 20 20 D4 48 49 53 20 52 4F 55 54 49 |.. .HIS ROUTI| 00001390: 4E 45 20 57 49 4C 4C 20 54 41 4B 45 20 41 4E 20 |NE WILL TAKE AN | 000013A0: 38 2D 42 49 54 0D 49 4E 54 45 47 45 52 20 41 4E |8-BIT.INTEGER AN| 000013B0: 44 20 50 55 54 20 54 48 41 54 20 56 41 4C 55 45 |D PUT THAT VALUE| 000013C0: 20 49 4E 20 54 48 45 20 D8 0D 52 45 47 49 53 54 | IN THE ..REGIST| 000013D0: 45 52 2E 20 20 C1 20 4E 55 4D 42 45 52 20 4F 55 |ER. . NUMBER OU| 000013E0: 54 20 4F 46 20 54 48 45 20 52 41 4E 47 45 0D 30 |T OF THE RANGE.0| 000013F0: 20 2D 20 32 35 35 20 57 49 4C 4C 20 52 45 54 55 | - 255 WILL RETU| 00001400: 52 4E 20 41 4E 20 49 4C 4C 45 47 41 4C 0D 51 55 |RN AN ILLEGAL.QU| 00001410: 41 4E 54 49 54 59 20 45 52 52 4F 52 2E 20 20 D7 |ANTITY ERROR. .| 00001420: 48 41 54 20 45 4C 53 45 20 43 41 4E 20 C9 20 53 |HAT ELSE CAN . S| 00001430: 41 59 0D 45 58 43 45 50 54 20 49 54 27 53 20 51 |AY.EXCEPT IT'S Q| 00001440: 55 49 43 4B 20 41 4E 44 20 45 41 53 59 3F 21 0D |UICK AND EASY?!.| 00001450: 0D 0D 0D 2D 2D 2D D4 D2 C1 CE D3 C6 C5 D2 20 C1 |...---........ .| 00001460: 20 31 36 2D C2 C9 D4 20 C9 CE D4 C5 C7 C5 D2 20 | 16-... ....... | 00001470: D4 CF 20 CD CC 2D 2D 2D 2D 0D 0D 20 C5 51 55 41 |.. ..----.. .QUA| 00001480: 54 45 53 3A 20 20 20 C3 C8 CB C3 CF CD 20 3D 20 |TES: ...... = | 00001490: 34 34 37 39 37 0D 20 20 20 20 20 20 20 20 20 20 |44797. | 000014A0: 20 20 C6 D2 CD CE D5 CD 20 3D 20 34 34 34 32 36 | ...... = 44426| 000014B0: 0D 20 20 20 20 20 20 20 20 20 20 20 20 C7 C5 D4 |. ...| 000014C0: C1 C4 D2 20 3D 20 34 37 30 39 35 0D 0D D4 48 45 |... = 47095...HE| 000014D0: 20 C3 4F 44 45 3A 20 20 20 CA D3 D2 20 C3 C8 CB | .ODE: ... ...| 000014E0: C3 CF CD 0D 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 000014F0: CA D3 D2 20 C6 D2 CD CE D5 CD 0D 20 20 20 20 20 |... ....... | 00001500: 20 20 20 20 20 20 20 CA D3 D2 20 C7 C5 D4 C1 C4 | ... .....| 00001510: D2 0D 0D C5 58 41 4D 50 4C 45 53 3A 20 20 20 D3 |....XAMPLES: .| 00001520: D9 D3 20 CF D2 C7 2C 31 32 33 34 35 0D 20 20 20 |.. ...,12345. | 00001530: 20 20 20 20 20 20 20 20 20 D3 D9 D3 20 CF D2 C7 | ... ...| 00001540: 2C D3 C3 2B C2 C1 0D 20 20 20 20 20 20 20 20 20 |,..+... | 00001550: 20 20 20 D3 D9 D3 20 CF D2 C7 2C C1 C4 28 33 30 | ... ...,..(30| 00001560: 29 0D 0D 20 20 20 20 C1 46 54 45 52 20 43 41 4C |).. .FTER CAL| 00001570: 4C 49 4E 47 20 54 48 45 20 52 4F 55 54 49 4E 45 |LING THE ROUTINE| 00001580: 53 2C 20 5B D9 5D 0D 43 4F 4E 54 41 49 4E 53 20 |S, [.].CONTAINS | 00001590: 54 48 45 20 4C 4F 57 20 42 59 54 45 20 41 4E 44 |THE LOW BYTE AND| 000015A0: 20 5B C1 5D 20 43 4F 4E 54 41 49 4E 53 0D 54 48 | [.] CONTAINS.TH| 000015B0: 45 20 48 49 47 48 20 42 59 54 45 2E 0D 0D 0D 20 |E HIGH BYTE.... | 000015C0: 20 20 20 C6 D2 CD CE D5 CD 20 45 56 41 4C 55 41 | ...... EVALUA| 000015D0: 54 45 53 20 4E 55 4D 45 52 49 43 0D 45 58 50 52 |TES NUMERIC.EXPR| 000015E0: 45 53 53 49 4F 4E 53 20 41 4E 44 20 43 48 45 43 |ESSIONS AND CHEC| 000015F0: 4B 53 20 54 4F 20 53 45 45 20 54 48 41 54 0D 54 |KS TO SEE THAT.T| 00001600: 48 45 20 44 41 54 41 20 54 59 50 45 20 49 53 20 |HE DATA TYPE IS | 00001610: 43 4F 52 52 45 43 54 2E 0D 0D 20 20 20 20 C7 C5 |CORRECT... ..| 00001620: D4 C1 C4 D2 20 43 4F 4E 56 45 52 54 53 20 41 20 |.... CONVERTS A | 00001630: 46 4C 4F 41 54 49 4E 47 20 50 4F 49 4E 54 0D 4E |FLOATING POINT.N| 00001640: 55 4D 42 45 52 20 54 4F 20 41 20 54 57 4F 2D 42 |UMBER TO A TWO-B| 00001650: 59 54 45 20 49 4E 54 45 47 45 52 2E 0D 0D 20 20 |YTE INTEGER... | 00001660: 20 20 C9 46 20 54 48 49 53 20 52 4F 55 54 49 4E | .F THIS ROUTIN| 00001670: 45 20 45 4E 43 4F 55 4E 54 45 52 53 20 41 0D 4E |E ENCOUNTERS A.N| 00001680: 55 4D 42 45 52 20 4C 45 53 53 20 54 48 41 4E 20 |UMBER LESS THAN | 00001690: 30 20 4F 52 20 47 52 45 41 54 45 52 20 54 48 41 |0 OR GREATER THA| 000016A0: 4E 0D 36 35 35 33 35 2C 20 49 54 20 57 49 4C 4C |N.65535, IT WILL| 000016B0: 20 52 45 54 55 52 4E 20 41 4E 20 45 52 52 4F 52 | RETURN AN ERROR| 000016C0: 2E 0D 0D 0D 20 20 20 20 3C C2 49 54 53 20 49 53 |.... <.ITS IS| 000016D0: 20 43 4F 4E 54 49 4E 55 45 44 20 49 4E 20 D0 41 | CONTINUED IN .A| 000016E0: 52 54 20 32 3E 0D 0D 20 20 20 20 20 20 20 20 2A |RT 2>.. *| 000016F0: 2A 2A 2A 20 C5 4E 44 20 CF 46 20 D4 45 58 54 20 |*** .ND .F .EXT | 00001700: 2A 2A 2A 2A 0D |****. |
..^U:ZERO.. ZERO PAGE: BITS PART
1. BY MIKE MAYNARD.. BASIC
<---> MACHINE LANGUAGE. THE MI
SSING LINKS.. HAVE YOU EVER WANTED TO
TRANSFER.VARIABLES OR STRINGS FROM BASI
C TO.YOUR ML ROUTINES? OR HOW ABOUT PRI
NT.NUMBERS OR STRINGS FROM ML? WELL,.TH
ESE ROUTINES, AS WELL AS OTHERS,.ARE ALR
EADY WRITTEN FOR YOU AND READY.TO USE IN
THE BASIC ROM THAT IS IN.EVERY C-64 COM
PUTER. THAT'S RIGHT --.SCATTERED THROUG
HOUT BASIC ROM ARE.ROUTINES THAT YOU CAN
EASILY USE FROM.WITHIN YOUR OWN ML PROG
RAMS... THIS TEXT WILL EXPLAIN HOW YO
U.CAN EASILY..... -- FIND (OR SETUP) A
VARIABLE. IN MEMORY. -- TRANSFER A
BASIC STRING TO ML. -- TRANSFER 8-BIT A
ND 16-BIT. INTEGERS FROM BASIC TO ML
. -- PRINT UP TO 255 CHARACTERS FROM.
MACHINE LANGUAGE. -- PRINT AN INTEGE
R FROM 0 TO 65535. -- PRODUCE RANDOM NU
MBERS IN ML. -- PRODUCE ONE OF BASIC'S
29 ERROR. MESSAGES. -- GOTO A BASIC
LINE NUMBER FROM ML.. I'M SURE THERE
ARE MANY MORE, BUT.THESE ARE THE ONES I
'VE USED MOST...--FIND OR SETUP A VARIAB
LE IN MEMORY--.. EQUATES: CHRGET = 11
5. POINTER = 251.
PTRGET = 45195..THE CODE: JSR CHRGET.
JSR PRTGET.. STA
POINTER. STY POINTER+1..EXAMP
LES: SYS ORG,PQ. SYS ORG,A$
. SYS ORG,FI$(0)..... CHRG
ET IS A ROM ROUTINE THAT'S.COPIED TO RAM
(AT 115) WHEN A COLD.START IS INITIATED
. IT'S THE ROUTINE.THAT BASIC USES TO R
EAD THE TEXT OF.THE BASIC PROGRAM WHICH
IS BEING.INTERPRETED. WHEN THIS ROUTINE
IS.CALLED THE TEXT POINTER IS INCREMENT
ED.AND THE NEXT CHARACTER IS PUT IN [A].
.ENTERING AT CHRGOT (121) ENABLES YOU.TO
GET A CHARACTER WITHOUT.INCREMENTING TH
E TEXT POINTER... IN THE ABOVE ROUTIN
E, I'M NOT.CHECKING FOR A COMMA TO SHOW
HOW.FLEXIBLE CHRGET REALLY IS. BECAUSE
OF.THIS, "SYS ORG&A$" IS JUST AS VALID A
S."SYS ORG,A$". CHRGET OPENS UP.UNLIMIT
ED POSSIBILITIES FOR BASIC/ML.PROGRAMMER
S... THE NEXT CALL (TO PTRGET) ATTEMP
TS.TO FIND A VARIABLE BY SEARCHING FOR.I
TS NAME IN THE VARIABLE AREA. IF.THE VA
RIABLE IS NOT FOUND, ONE IS.CREATED. TH
E ROUTINE RETURNS THE.ADDRESS OF THE BYT
E FOLLOWING THE.VARIABLE'S NAME IN [A] /
[Y]... IN MEMORY, SEVEN BYTES ARE.AL
LOCATED FOR EACH VARIABLE. THE.FIRST TW
O ARE USED FOR THE VARIABLE'S.NAME AND T
YPE. THE 7TH BIT OF BOTH.BYTES ARE USED
TO DISTINGUISH BETWEEN.THE DIFFERENT VA
RIABLE TYPES... THE USE OF THE OTHER
FIVE BITS.DEPENDS ON THE VARIABLE TYPE..
.INTEGERS: ? / ? / HI / LO / X / X / X..
? / ? IS THE VARIABLE NAME. BOTH BYTES.C
ONTAIN THE ASCII VALUE WITH THE 7TH.BIT
SET. THIS ADDS 128 TO THE ASC.VALUE...H
I IS WHERE POINTER IN THE FIRST.EXAMPLE
POINTS. (IE: ALTERING THE TWO.PREVIOUS B
YTES WOULD CHANGE THE.VARIABLE NAME)..HI
/ LO IS THE INTEGER NUMBER IN.HIGH BYTE
/LOW BYTE FORMAT -- NOT THE.EVER-POPULAR
LO/HI FORMAT!..THE THREE X'S ARE UNUSED
ADDRESSES....STRINGS: ? / ? / LEN / LO
/ HI / X / X..ONCE AGAIN, "? / ?" REPRES
ENTS THE.STRING NAME EXCEPT THAT WITH ST
RINGS,.THE SECOND BYTE HAS ITS 7TH BIT S
ET..THE FIRST BYTE IS THE ASCII VALUE OF
.THE FIRST LETTER OF THE VARIABLE.NAME..
.FOR STRINGS, LEN IS WHERE POINTER.WILL
POINT TO. LEN IS THE LENGTH OF.THE STRI
NG...LO / HI POINTS TO THE TEXT'S STRING
.DATA...FOR A MORE IN-DEPTH LOOK AT HOW
OTHER.TYPES OF VARIABLES ARE STORED, CON
SULT.COMPUTE!'S MAPPING THE 64, PP 15-18
...-------TRANSFER A STRING TO ML-------
-.. THE PREVIOUS ROUTINE COULD BE.USE
D TO ACCOMPLISH THIS SAME TASK,.EXCEPT T
HERE IS ONE MINOR CATCH. THE.TEXT YOU S
END MUST HAVE BEEN PRE-.DEFINED INTO A V
ARIABLE. WITH THE.FOLLOWING ROUTINE, YO
U CAN ALSO USE."LITERAL" (HARDCODED) TEX
T... EQUATES: CHKCOM = 44797.
FRMEVL = 44446. FRESTR = 4
6755..THE CODE: JSR CHKCOM.
JSR FRMEVL. JSR FRESTR..
AT THIS POINT, [A] WILL CONTAIN.THE LENG
TH OF THE STRING AND [X] / [Y].WILL POIN
T TO THE ADDRESS WHERE THE.TEXT STARTS..
.EXAMPLES: SYS ORG,NA$+CHR$(13).
SYS ORG,FI$(4). SYS ORG
,"THIS IS TEXT".. CHKCOM CHECKS TO SE
E THAT THE.NEXT CHARACTER IS A COMMA. I
F IT IS.NOT A COMMA, A SYNTAX ERROR IS.R
ETURNED. ANOTHER QUICK WAY TO CHECK.FOR
ANY CHARACTER IN A BASIC STATEMENT.WOUL
D BE TO LOAD THE [A] WITH THE.CHARACTER
YOU WANT TO CHECK AND JSR.CHKCOM+2. THE
FIRST TWO BYTES LOAD.[A] WITH THE VALUE
FOR A COMMA... THE MAIN PURPOSE OF F
RMEVL IS TO.READ IN THE ASCII TEXT OF BA
SIC.EXPRESSIONS, SEPARATE THE OPERATORS,
.CHECK FOR ERRORS AND OBTAIN A SINGLE.VA
LUE THAT THE BASIC PROGRAM CAN USE..AFTE
R EVALUATION, ADDRESS 13 IS SET.TO TELL
WHETHER THE RESULTING VALUE.IS STRING OR
NUMERIC. AND, IF THE.VALUE IS NUMERIC,
THE FLAG AT 14 IS.SET TO SHOW IF IT IS
AN INTEGER OR.FLOATING POINT NUMBER...
FRESTR IS USED TO DISCARD A.TEMPORARY
STRING. IF THE DESCRIPTOR.WAS ON THE ST
ACK, IT EXITS AFTER.SETTING POINTERS TO
THE STRING AND.ITS LENGTH....---TRANSFER
AN 8-BIT INTEGER TO ML----.. EQUATE :
COMNUM = 47089..THE CODE: JSR COMNUM.
.EXAMPLES: SYS ORG,255. SYS
ORG,A. SYS ORG,DE(1).. TH
IS ROUTINE WILL TAKE AN 8-BIT.INTEGER AN
D PUT THAT VALUE IN THE X.REGISTER. A N
UMBER OUT OF THE RANGE.0 - 255 WILL RETU
RN AN ILLEGAL.QUANTITY ERROR. WHAT ELSE
CAN I SAY.EXCEPT IT'S QUICK AND EASY?!.
...---TRANSFER A 16-BIT INTEGER TO ML---
-.. EQUATES: CHKCOM = 44797.
FRMNUM = 44426. GETADR = 47
095..THE CODE: JSR CHKCOM.
JSR FRMNUM. JSR GETADR..EXAMP
LES: SYS ORG,12345. SYS ORG
,SC+BA. SYS ORG,AD(30).. A
FTER CALLING THE ROUTINES, [Y].CONTAINS
THE LOW BYTE AND [A] CONTAINS.THE HIGH B
YTE.... FRMNUM EVALUATES NUMERIC.EXPR
ESSIONS AND CHECKS TO SEE THAT.THE DATA
TYPE IS CORRECT... GETADR CONVERTS A
FLOATING POINT.NUMBER TO A TWO-BYTE INTE
GER... IF THIS ROUTINE ENCOUNTERS A.N
UMBER LESS THAN 0 OR GREATER THAN.65535,
IT WILL RETURN AN ERROR.... <BITS IS
CONTINUED IN PART 2>.. **** END
OF TEXT ****.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL