T.BYTES
FILE INFORMATION
FILENAME(S): T.BYTES
FILE TYPE(S): PRG
FILE SIZE: 7K
FIRST SEEN: 2025-11-30 18:05:27
APPEARS ON: 1 disk(s)
FILE HASH
c2d6bb2fdfc4bff8f8f2e1818925e18defdb65945c34865ff908aac450bd0282
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| LOADSTAR 67 S 1 | T.BYTES | PRG | Xii | 22 | 3 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 00 80 5E 55 3A 5A 45 52 4F 0D 20 20 20 20 20 D4 |..^U:ZERO. .| 00000010: C8 C5 20 CD C9 C7 C8 D4 D9 20 CE D5 CD C2 C5 D2 |.. ...... ......| 00000020: 20 D4 D2 C1 CE D3 CC C1 D4 CF D2 0D 0D 20 20 20 | ............ | 00000030: 20 20 20 20 20 20 20 C1 CE C4 20 C8 CF D7 20 C9 | ... ... .| 00000040: 20 D0 C1 D2 D3 C5 C4 20 C9 D4 0D 0D 20 20 20 20 | ...... .... | 00000050: 20 20 20 20 20 20 20 20 20 42 59 20 CA 45 46 46 | BY .EFF| 00000060: 20 CA 4F 4E 45 53 0D 0D 20 20 20 20 D7 45 42 53 | .ONES.. .EBS| 00000070: 54 45 52 20 44 45 46 49 4E 45 53 20 D0 C1 D2 D3 |TER DEFINES ....| 00000080: C5 20 41 53 3A 0D 0D 31 2E 20 54 4F 20 42 52 45 |. AS:..1. TO BRE| 00000090: 41 4B 20 28 41 20 53 45 4E 54 45 4E 43 45 29 20 |AK (A SENTENCE) | 000000A0: 44 4F 57 4E 20 49 4E 54 4F 0D 50 41 52 54 53 2C |DOWN INTO.PARTS,| 000000B0: 20 45 58 50 4C 41 49 4E 49 4E 47 20 47 52 41 4D | EXPLAINING GRAM| 000000C0: 4D 41 54 49 43 41 4C 20 46 4F 52 4D 2C 0D 46 55 |MATICAL FORM,.FU| 000000D0: 4E 43 54 49 4F 4E 20 41 4E 44 20 49 4E 54 45 52 |NCTION AND INTER| 000000E0: 52 45 4C 41 54 49 4F 4E 20 4F 46 20 45 41 43 48 |RELATION OF EACH| 000000F0: 0D 50 41 52 54 2E 0D 0D 20 20 20 20 CD 4F 53 54 |.PART... .OST| 00000100: 20 50 52 4F 47 52 41 4D 4D 45 52 53 20 54 48 49 | PROGRAMMERS THI| 00000110: 4E 4B 20 4F 46 0D 22 50 41 52 53 49 4E 47 22 20 |NK OF."PARSING" | 00000120: 41 53 20 53 43 41 4E 4E 49 4E 47 20 41 20 44 4F |AS SCANNING A DO| 00000130: 43 55 4D 45 4E 54 20 4F 52 0D 53 54 52 49 4E 47 |CUMENT OR.STRING| 00000140: 2C 20 4F 52 20 4B 45 59 42 4F 41 52 44 20 49 4E |, OR KEYBOARD IN| 00000150: 50 55 54 20 41 53 20 49 54 20 49 53 0D 4B 45 59 |PUT AS IT IS.KEY| 00000160: 45 44 20 49 4E 2E 0D 0D 0D 0D 20 20 20 20 CE D5 |ED IN..... ..| 00000170: CD C2 C5 D2 20 D4 D2 C1 CE D3 CC C1 D4 CF D2 2C |.... ..........,| 00000180: 20 49 4E 43 4C 55 44 45 44 20 57 49 54 48 0D 54 | INCLUDED WITH.T| 00000190: 48 49 53 20 41 52 54 49 43 4C 45 20 44 4F 45 53 |HIS ARTICLE DOES| 000001A0: 20 41 4E 20 41 57 46 55 4C 20 4C 4F 54 20 4F 46 | AN AWFUL LOT OF| 000001B0: 0D 50 41 52 53 49 4E 47 2E 20 20 D4 48 45 20 50 |.PARSING. .HE P| 000001C0: 52 4F 47 52 41 4D 20 57 49 4C 4C 20 54 45 4C 4C |ROGRAM WILL TELL| 000001D0: 20 59 4F 55 0D 54 48 45 20 C5 4E 47 4C 49 53 48 | YOU.THE .NGLISH| 000001E0: 20 4E 41 4D 45 20 4F 46 20 4A 55 53 54 20 41 42 | NAME OF JUST AB| 000001F0: 4F 55 54 20 41 4E 59 0D 4E 55 4D 42 45 52 20 59 |OUT ANY.NUMBER Y| 00000200: 4F 55 20 54 59 50 45 20 49 4E 2E 20 20 C9 4E 20 |OU TYPE IN. .N | 00000210: 4F 52 44 45 52 20 54 4F 20 44 4F 0D 54 48 49 53 |ORDER TO DO.THIS| 00000220: 2C 20 49 54 20 48 41 53 20 54 4F 20 22 52 45 41 |, IT HAS TO "REA| 00000230: 44 22 20 28 50 41 52 53 45 29 20 57 48 41 54 0D |D" (PARSE) WHAT.| 00000240: 59 4F 55 20 54 59 50 45 44 20 49 4E 2E 0D 0D C9 |YOU TYPED IN....| 00000250: 46 20 59 4F 55 20 45 4E 54 45 52 20 31 32 2C 20 |F YOU ENTER 12, | 00000260: 49 54 20 52 45 53 50 4F 4E 44 53 3A 0D 0D 20 20 |IT RESPONDS:.. | 00000270: 31 32 20 49 53 3A 20 54 57 45 4C 56 45 0D 0D C9 |12 IS: TWELVE...| 00000280: 46 20 59 4F 55 20 45 4E 54 45 52 20 31 30 32 33 |F YOU ENTER 1023| 00000290: 2E 34 30 37 2C 20 49 54 20 53 41 59 53 3A 0D 0D |.407, IT SAYS:..| 000002A0: 20 20 31 2C 30 32 33 2E 34 30 37 20 49 53 3A 20 | 1,023.407 IS: | 000002B0: 4F 4E 45 20 54 48 4F 55 53 41 4E 44 20 54 57 45 |ONE THOUSAND TWE| 000002C0: 4E 54 59 2D 0D 20 20 54 48 52 45 45 20 41 4E 44 |NTY-. THREE AND| 000002D0: 20 46 4F 55 52 20 48 55 4E 44 52 45 44 20 53 45 | FOUR HUNDRED SE| 000002E0: 56 45 4E 0D 20 20 54 48 4F 55 53 41 4E 44 54 48 |VEN. THOUSANDTH| 000002F0: 53 2E 0D 0D 0D 20 20 20 20 D9 4F 55 20 4D 49 47 |S.... .OU MIG| 00000300: 48 54 20 57 41 4E 54 20 54 4F 20 50 52 49 4E 54 |HT WANT TO PRINT| 00000310: 20 4F 55 54 20 54 48 49 53 0D 41 52 54 49 43 4C | OUT THIS.ARTICL| 00000320: 45 20 42 45 43 41 55 53 45 20 C9 27 4C 4C 20 42 |E BECAUSE .'LL B| 00000330: 45 20 52 45 46 45 52 52 49 4E 47 20 54 4F 0D 4C |E REFERRING TO.L| 00000340: 49 4E 45 20 4E 55 4D 42 45 52 53 20 49 4E 20 54 |INE NUMBERS IN T| 00000350: 48 45 20 50 52 4F 47 52 41 4D 2E 0D 0D C9 20 CD |HE PROGRAM.... .| 00000360: 20 D0 20 CF 20 D2 20 D4 20 C1 20 CE 20 D4 20 20 | . . . . . . . | 00000370: 20 D6 20 C1 20 D2 20 C9 20 C1 20 C2 20 CC 20 C5 | . . . . . . . .| 00000380: 20 D3 0D 0D 20 20 20 20 D4 48 45 52 45 20 41 52 | ... .HERE AR| 00000390: 45 20 41 20 31 38 20 47 4C 4F 42 41 4C 20 56 41 |E A 18 GLOBAL VA| 000003A0: 52 49 41 42 4C 45 53 0D 49 4E 20 54 48 49 53 20 |RIABLES.IN THIS | 000003B0: 50 52 4F 47 52 41 4D 20 54 48 41 54 20 C9 20 52 |PROGRAM THAT . R| 000003C0: 45 4C 59 20 4F 4E 3A 0D 0D CE D5 24 20 20 20 54 |ELY ON:....$ T| 000003D0: 48 45 20 49 4E 54 45 47 45 52 20 54 4F 20 42 45 |HE INTEGER TO BE| 000003E0: 20 54 52 41 4E 53 4C 41 54 45 44 0D CC 20 20 20 | TRANSLATED.. | 000003F0: 20 20 54 48 45 20 CC C5 CE 47 54 48 20 4F 46 20 | THE ...GTH OF | 00000400: 54 48 45 20 49 4E 54 45 47 45 52 0D CE 24 20 20 |THE INTEGER..$ | 00000410: 20 20 54 45 4D 50 4F 52 41 52 59 20 53 54 4F 52 | TEMPORARY STOR| 00000420: 41 47 45 20 4F 46 20 49 4E 54 45 47 45 52 0D C4 |AGE OF INTEGER..| 00000430: 24 20 20 20 20 54 48 45 20 46 52 41 43 54 49 4F |$ THE FRACTIO| 00000440: 4E 41 4C 20 50 4F 52 54 49 4F 4E 2C 20 49 46 20 |NAL PORTION, IF | 00000450: 41 4E 59 0D C4 CC 20 20 20 20 54 48 45 20 CC C5 |ANY... THE ..| 00000460: CE 47 54 48 20 4F 46 20 54 48 45 20 46 52 41 43 |.GTH OF THE FRAC| 00000470: 54 49 4F 4E 0D CD C9 24 28 29 20 54 48 45 20 44 |TION...$() THE D| 00000480: 45 4E 4F 4D 49 4E 41 54 49 4F 4E 53 20 4F 46 20 |ENOMINATIONS OF | 00000490: 4E 55 4D 42 45 52 53 0D CF 24 28 29 20 20 54 48 |NUMBERS..$() TH| 000004A0: 45 20 4E 41 4D 45 53 20 4F 46 20 4E 55 4D 42 45 |E NAMES OF NUMBE| 000004B0: 52 53 20 31 2D 31 39 0D D4 D7 24 28 29 20 54 48 |RS 1-19...$() TH| 000004C0: 45 20 4E 41 4D 45 53 20 4F 46 20 32 30 2D 39 30 |E NAMES OF 20-90| 000004D0: 20 53 54 45 50 20 31 30 0D C8 D5 24 28 29 20 54 | STEP 10...$() T| 000004E0: 48 45 20 4E 41 4D 45 53 20 4F 46 20 31 30 30 2D |HE NAMES OF 100-| 000004F0: 39 30 30 20 53 54 45 50 20 31 30 30 0D C3 D2 24 |900 STEP 100...$| 00000500: 20 20 20 43 41 52 52 49 41 47 45 20 52 45 54 55 | CARRIAGE RETU| 00000510: 52 4E 20 4F 52 20 43 41 52 52 49 41 47 45 0D 20 |RN OR CARRIAGE. | 00000520: 20 20 20 20 20 52 45 54 55 52 4E 20 57 49 54 48 | RETURN WITH| 00000530: 20 4D 41 52 47 49 4E 20 4F 46 20 46 49 56 45 20 | MARGIN OF FIVE | 00000540: 49 46 0D 20 20 20 20 20 20 50 52 49 4E 54 45 52 |IF. PRINTER| 00000550: 20 49 53 20 4F 4E 2E 0D C4 20 20 20 20 20 50 4F | IS ON... PO| 00000560: 53 49 54 49 4F 4E 20 4F 46 20 54 48 45 20 44 45 |SITION OF THE DE| 00000570: 43 49 4D 41 4C 20 50 4F 49 4E 54 0D C4 D6 20 20 |CIMAL POINT... | 00000580: 20 20 44 45 56 49 43 45 20 4E 55 4D 42 45 52 20 | DEVICE NUMBER | 00000590: 33 2D 53 43 52 45 45 4E 20 34 2D 50 52 49 4E 54 |3-SCREEN 4-PRINT| 000005A0: 45 52 0D C6 20 20 20 20 20 46 4C 41 47 20 46 4F |ER.. FLAG FO| 000005B0: 52 20 4C 45 41 44 49 4E 47 20 5A 45 52 4F 45 53 |R LEADING ZEROES| 000005C0: 0D CD C1 D8 20 20 20 57 4F 52 44 20 57 52 41 50 |.... WORD WRAP| 000005D0: 20 33 39 2D 53 43 52 45 45 4E 20 36 35 2D 50 52 | 39-SCREEN 65-PR| 000005E0: 49 4E 54 45 52 0D CE DA 20 20 20 20 46 4C 41 47 |INTER... FLAG| 000005F0: 3A 20 50 52 45 56 45 4E 54 53 20 4C 45 41 44 49 |: PREVENTS LEADI| 00000600: 4E 47 20 5A 45 52 4F 45 53 0D D0 20 20 20 20 20 |NG ZEROES.. | 00000610: 50 4F 53 49 54 49 4F 4E 20 4F 46 20 22 33 34 22 |POSITION OF "34"| 00000620: 20 49 4E 20 33 34 2C 34 35 34 2C 32 33 32 0D D0 | IN 34,454,232..| 00000630: CE 24 20 20 20 22 50 52 45 54 54 59 20 4E 55 4D |.$ "PRETTY NUM| 00000640: 42 45 52 22 20 57 49 54 48 20 43 4F 4D 4D 41 53 |BER" WITH COMMAS| 00000650: 0D D0 D3 20 20 20 20 50 4F 53 49 54 49 4F 4E 20 |... POSITION | 00000660: 4F 46 20 43 55 52 53 4F 52 20 46 4F 52 20 50 52 |OF CURSOR FOR PR| 00000670: 49 4E 54 45 52 0D 20 20 20 20 20 20 41 53 20 57 |INTER. AS W| 00000680: 45 4C 4C 20 41 53 20 53 43 52 45 45 4E 0D D3 D4 |ELL AS SCREEN...| 00000690: 20 20 20 20 55 53 45 44 20 54 4F 20 43 48 45 43 | USED TO CHEC| 000006A0: 4B 20 46 4F 52 20 53 45 52 49 41 4C 20 50 52 49 |K FOR SERIAL PRI| 000006B0: 4E 54 45 52 0D D4 20 20 20 20 20 54 4F 47 47 4C |NTER.. TOGGL| 000006C0: 45 53 20 50 53 45 55 44 4F 2D 43 55 52 53 4F 52 |ES PSEUDO-CURSOR| 000006D0: 20 44 55 52 49 4E 47 0D 20 20 20 20 20 20 47 45 | DURING. GE| 000006E0: 54 20 52 4F 55 54 49 4E 45 2E 20 2D 31 3D 4F 4E |T ROUTINE. -1=ON| 000006F0: 2C 20 30 3D 4F 46 46 0D D4 C9 20 20 20 20 53 59 |, 0=OFF... SY| 00000700: 53 54 45 4D 20 56 41 52 49 41 42 4C 45 20 55 53 |STEM VARIABLE US| 00000710: 45 44 20 54 4F 20 54 49 4D 45 0D 20 20 20 20 20 |ED TO TIME. | 00000720: 20 50 52 4F 47 52 41 4D 20 43 4F 4E 54 52 4F 4C | PROGRAM CONTROL| 00000730: 4C 45 44 20 43 55 52 53 4F 52 0D 0D 0D 0D 20 20 |LED CURSOR.... | 00000740: 20 20 20 20 20 C6 C9 D2 D3 D4 20 D4 C8 C5 20 C9 | ..... ... .| 00000750: CE D0 D5 D4 20 D2 CF D5 D4 C9 CE C5 0D 0D 20 20 |.... ......... | 00000760: 20 20 C9 20 44 4F 20 41 20 48 45 46 54 59 20 41 | . DO A HEFTY A| 00000770: 4D 4F 55 4E 54 20 4F 46 20 52 45 41 4C 2D 54 49 |MOUNT OF REAL-TI| 00000780: 4D 45 0D 50 41 52 53 49 4E 47 20 49 4E 20 54 48 |ME.PARSING IN TH| 00000790: 45 20 49 4E 50 55 54 20 52 4F 55 54 49 4E 45 20 |E INPUT ROUTINE | 000007A0: 52 45 53 49 44 49 4E 47 0D 49 4E 20 4C 49 4E 45 |RESIDING.IN LINE| 000007B0: 53 20 36 32 30 2D 38 30 30 2E 20 20 D4 48 49 53 |S 620-800. .HIS| 000007C0: 20 52 4F 55 54 49 4E 45 20 43 4F 55 4C 44 0D 48 | ROUTINE COULD.H| 000007D0: 41 56 45 20 42 45 45 4E 20 4D 55 43 48 20 53 48 |AVE BEEN MUCH SH| 000007E0: 4F 52 54 45 52 20 42 55 54 20 C9 20 48 41 44 20 |ORTER BUT . HAD | 000007F0: 54 4F 0D 53 43 41 4E 20 4F 52 20 22 50 41 52 53 |TO.SCAN OR "PARS| 00000800: 45 22 20 46 4F 52 20 55 4E 57 41 4E 54 45 44 20 |E" FOR UNWANTED | 00000810: 49 4E 50 55 54 2E 0D 0D 20 20 20 20 C6 4F 52 20 |INPUT... .OR | 00000820: 49 4E 53 54 41 4E 43 45 2C 20 49 46 20 59 4F 55 |INSTANCE, IF YOU| 00000830: 20 57 45 52 45 20 54 4F 20 45 4E 54 45 52 0D 31 | WERE TO ENTER.1| 00000840: 2E 31 2E 34 2E 33 2E 32 2E 31 2E 20 41 53 20 41 |.1.4.3.2.1. AS A| 00000850: 20 4E 55 4D 42 45 52 2C 20 54 48 45 52 45 27 53 | NUMBER, THERE'S| 00000860: 20 4E 4F 0D 54 45 4C 4C 49 4E 47 20 57 48 41 54 | NO.TELLING WHAT| 00000870: 20 4D 49 47 48 54 20 42 45 20 53 50 45 57 45 44 | MIGHT BE SPEWED| 00000880: 20 42 41 43 4B 20 41 54 0D 59 4F 55 20 42 59 20 | BACK AT.YOU BY | 00000890: 54 48 45 20 54 52 41 4E 53 4C 41 54 4F 52 2E 20 |THE TRANSLATOR. | 000008A0: 20 D3 4F 2C 20 41 53 20 49 4E 0D 52 45 41 4C 49 | .O, AS IN.REALI| 000008B0: 54 59 2C 20 59 4F 55 20 43 41 4E 20 48 41 56 45 |TY, YOU CAN HAVE| 000008C0: 20 4F 4E 4C 59 20 4F 4E 45 0D 44 45 43 49 4D 41 | ONLY ONE.DECIMA| 000008D0: 4C 20 50 45 52 20 4E 55 4D 42 45 52 2E 0D 0D 20 |L PER NUMBER... | 000008E0: 20 20 20 D4 48 45 20 56 41 52 49 41 42 4C 45 20 | .HE VARIABLE | 000008F0: C4 20 49 53 20 5A 45 52 4F 45 44 20 4F 55 54 20 |. IS ZEROED OUT | 00000900: 45 56 45 52 59 0D 54 49 4D 45 20 54 48 45 20 49 |EVERY.TIME THE I| 00000910: 4E 50 55 54 20 52 4F 55 54 49 4E 45 20 49 53 20 |NPUT ROUTINE IS | 00000920: 43 41 4C 4C 45 44 2E 0D 0D 0D 20 20 20 20 CF 4E |CALLED.... .N| 00000930: 43 45 20 41 20 44 45 43 49 4D 41 4C 20 50 4F 49 |CE A DECIMAL POI| 00000940: 4E 54 20 49 53 20 45 4E 54 45 52 45 44 20 49 4E |NT IS ENTERED IN| 00000950: 0D 54 48 45 20 53 54 52 49 4E 47 2C 20 C4 20 42 |.THE STRING, . B| 00000960: 45 43 4F 4D 45 53 20 54 48 45 20 50 4F 53 49 54 |ECOMES THE POSIT| 00000970: 49 4F 4E 20 4F 46 0D 54 48 45 20 44 45 43 49 4D |ION OF.THE DECIM| 00000980: 41 4C 20 50 4F 49 4E 54 2E 0D 0D 20 20 20 20 CC |AL POINT... .| 00000990: 49 4E 45 20 37 33 30 20 50 52 4F 48 49 42 49 54 |INE 730 PROHIBIT| 000009A0: 53 20 41 4E 4F 54 48 45 52 0D 44 45 43 49 4D 41 |S ANOTHER.DECIMA| 000009B0: 4C 20 50 4F 49 4E 54 20 42 59 20 53 49 4D 50 4C |L POINT BY SIMPL| 000009C0: 59 20 52 45 54 55 52 4E 49 4E 47 20 54 4F 0D 54 |Y RETURNING TO.T| 000009D0: 48 45 20 47 45 54 4B 45 59 20 52 4F 55 54 49 4E |HE GETKEY ROUTIN| 000009E0: 45 20 49 46 20 C4 20 53 48 4F 57 53 20 41 4E 0D |E IF . SHOWS AN.| 000009F0: 45 58 49 53 54 49 4E 47 20 44 45 43 49 4D 41 4C |EXISTING DECIMAL| 00000A00: 2E 0D 0D 20 20 20 20 D4 4F 20 4D 41 4B 45 20 54 |... .O MAKE T| 00000A10: 48 45 20 54 52 41 4E 53 4C 41 54 4F 52 20 4D 4F |HE TRANSLATOR MO| 00000A20: 52 45 0D 46 4F 4F 4C 50 52 4F 4F 46 20 C9 20 48 |RE.FOOLPROOF . H| 00000A30: 41 44 20 54 4F 20 52 45 53 54 52 49 43 54 20 4C |AD TO RESTRICT L| 00000A40: 45 41 44 49 4E 47 0D 5A 45 52 4F 45 53 20 4F 4E |EADING.ZEROES ON| 00000A50: 20 54 48 45 20 49 4E 54 45 47 45 52 20 50 4F 52 | THE INTEGER POR| 00000A60: 54 49 4F 4E 2E 20 20 D9 4F 55 27 4C 4C 0D 4E 4F |TION. .OU'LL.NO| 00000A70: 54 49 43 45 20 54 48 41 54 20 59 4F 55 20 41 52 |TICE THAT YOU AR| 00000A80: 45 4E 27 54 20 41 4C 4C 4F 57 45 44 20 54 4F 0D |EN'T ALLOWED TO.| 00000A90: 54 59 50 45 20 41 20 44 4F 55 42 4C 45 20 5A 45 |TYPE A DOUBLE ZE| 00000AA0: 52 4F 20 55 4E 4C 45 53 53 20 49 54 27 53 0D 49 |RO UNLESS IT'S.I| 00000AB0: 4D 42 45 44 44 45 44 20 49 4E 20 54 48 45 20 53 |MBEDDED IN THE S| 00000AC0: 54 52 49 4E 47 2E 0D 0D 0D 0D 0D 20 20 20 20 C9 |TRING...... .| 00000AD0: 4E 20 4F 54 48 45 52 20 57 4F 52 44 53 2C 20 59 |N OTHER WORDS, Y| 00000AE0: 4F 55 20 43 41 4E 20 45 4E 54 45 52 3A 0D 0D 20 |OU CAN ENTER:.. | 00000AF0: 20 20 20 20 20 20 20 20 20 20 31 30 30 30 30 31 | 100001| 00000B00: 2E 30 30 30 30 31 0D 0D 42 55 54 20 4E 4F 54 3A |.00001..BUT NOT:| 00000B10: 20 20 20 30 30 31 0D 0D 20 20 20 20 C9 4E 20 4C | 001.. .N L| 00000B20: 49 4E 45 20 37 37 30 2C 20 54 48 45 20 56 41 52 |INE 770, THE VAR| 00000B30: 49 41 42 4C 45 2C 20 CE DA 2C 0D 4C 41 59 53 20 |IABLE, ..,.LAYS | 00000B40: 49 4E 20 57 41 49 54 2C 20 5A 45 52 4F 45 44 2C |IN WAIT, ZEROED,| 00000B50: 20 46 4F 52 20 41 20 4E 4F 4E 2D 5A 45 52 4F 0D | FOR A NON-ZERO.| 00000B60: 4E 55 4D 42 45 52 2E 20 20 CF 4E 43 45 20 49 54 |NUMBER. .NCE IT| 00000B70: 20 53 43 41 4E 53 20 41 20 4E 4F 4E 2D 5A 45 52 | SCANS A NON-ZER| 00000B80: 4F 2C 20 49 54 0D 42 45 43 4F 4D 45 53 20 41 20 |O, IT.BECOMES A | 00000B90: 46 4C 41 47 2E 20 20 CE DA 20 49 53 20 4E 4F 57 |FLAG. .. IS NOW| 00000BA0: 20 41 20 31 2E 20 20 CC 49 4E 45 0D 37 34 30 20 | A 1. .INE.740 | 00000BB0: 43 48 45 43 4B 53 20 CE DA 20 41 47 41 49 4E 53 |CHECKS .. AGAINS| 00000BC0: 54 20 54 48 45 20 4C 45 4E 47 54 48 20 4F 46 0D |T THE LENGTH OF.| 00000BD0: 54 48 45 20 53 54 52 49 4E 47 2E 20 20 C9 46 20 |THE STRING. .F | 00000BE0: 54 48 45 20 53 45 43 4F 4E 44 20 44 49 47 49 54 |THE SECOND DIGIT| 00000BF0: 20 49 53 0D 22 30 22 20 41 4E 44 20 CE D8 20 49 | IS."0" AND .. I| 00000C00: 53 20 53 54 49 4C 4C 20 41 20 5A 45 52 4F 2C 20 |S STILL A ZERO, | 00000C10: 54 48 45 4E 20 42 41 43 4B 0D 54 4F 20 54 48 45 |THEN BACK.TO THE| 00000C20: 20 47 45 54 20 4C 4F 4F 50 2E 0D 0D 0D 0D 0D 0D | GET LOOP.......| 00000C30: 20 20 20 20 C1 4C 53 4F 2C 20 54 4F 20 43 41 54 | .LSO, TO CAT| 00000C40: 45 52 20 54 4F 20 54 48 45 20 54 52 41 4E 53 4C |ER TO THE TRANSL| 00000C50: 41 54 4F 52 2C 0D 59 4F 55 20 4D 55 53 54 20 45 |ATOR,.YOU MUST E| 00000C60: 4E 54 45 52 20 46 52 41 43 54 49 4F 4E 53 20 57 |NTER FRACTIONS W| 00000C70: 49 54 48 20 41 0D 4C 45 41 44 49 4E 47 20 5A 45 |ITH A.LEADING ZE| 00000C80: 52 4F 3A 0D 0D 20 20 20 20 20 20 20 20 20 20 30 |RO:.. 0| 00000C90: 2E 39 38 20 41 4E 44 20 4E 4F 54 20 2E 39 38 0D |.98 AND NOT .98.| 00000CA0: 0D 20 20 20 20 CC 49 4E 45 20 37 30 30 20 50 52 |. .INE 700 PR| 00000CB0: 4F 48 49 42 49 54 53 20 41 20 44 45 43 49 4D 41 |OHIBITS A DECIMA| 00000CC0: 4C 20 46 52 4F 4D 0D 42 45 49 4E 47 20 45 4E 54 |L FROM.BEING ENT| 00000CD0: 45 52 45 44 20 46 49 52 53 54 2E 20 20 C9 54 20 |ERED FIRST. .T | 00000CE0: 44 4F 45 53 20 54 48 49 53 20 42 59 0D 4D 45 52 |DOES THIS BY.MER| 00000CF0: 45 4C 59 20 43 48 45 43 4B 49 4E 47 20 54 48 45 |ELY CHECKING THE| 00000D00: 20 4C 45 4E 47 54 48 20 4F 46 20 CE D5 24 2C 0D | LENGTH OF ..$,.| 00000D10: 57 48 49 43 48 20 49 53 20 CC 2E 20 20 C9 4E 20 |WHICH IS .. .N | 00000D20: C5 4E 47 4C 49 53 48 20 4C 49 4E 45 20 37 30 30 |.NGLISH LINE 700| 00000D30: 0D 52 45 41 44 53 3A 20 22 49 46 20 41 20 44 45 |.READS: "IF A DE| 00000D40: 43 49 4D 41 4C 20 57 41 53 20 45 4E 54 45 52 45 |CIMAL WAS ENTERE| 00000D50: 44 20 54 48 45 4E 0D 52 45 4A 45 43 54 20 49 54 |D THEN.REJECT IT| 00000D60: 20 49 46 20 CC 20 49 53 20 45 51 55 41 4C 20 54 | IF . IS EQUAL T| 00000D70: 4F 20 5A 45 52 4F 2E 22 0D 0D 0D 0D 0D 0D 0D 0D |O ZERO."........| 00000D80: 20 20 20 20 20 20 20 D0 20 D2 20 CF 20 C7 20 D2 | . . . . .| 00000D90: 20 C1 20 CD 20 20 20 C6 20 CC 20 CF 20 D7 0D 0D | . . . . . ...| 00000DA0: 20 20 20 20 D7 4F 57 21 20 20 D4 48 49 53 20 43 | .OW! .HIS C| 00000DB0: 4F 44 45 20 49 53 20 46 52 45 53 48 20 4F 46 46 |ODE IS FRESH OFF| 00000DC0: 20 54 48 45 0D 46 49 4E 47 45 52 53 21 20 20 C9 | THE.FINGERS! .| 00000DD0: 20 46 4F 52 47 4F 54 20 48 4F 57 20 C9 20 44 49 | FORGOT HOW . DI| 00000DE0: 44 20 49 54 20 42 55 54 0D 4C 45 54 27 53 20 54 |D IT BUT.LET'S T| 00000DF0: 52 41 43 45 20 49 54 3A 0D 0D 20 20 20 20 C1 46 |RACE IT:.. .F| 00000E00: 54 45 52 20 59 4F 55 20 45 4E 54 45 52 20 41 20 |TER YOU ENTER A | 00000E10: 4E 55 4D 42 45 52 2C 20 41 20 4C 4F 54 0D 47 4F |NUMBER, A LOT.GO| 00000E20: 45 53 20 4F 4E 2E 20 20 C1 4E 59 20 46 52 41 43 |ES ON. .NY FRAC| 00000E30: 54 49 4F 4E 41 4C 20 50 4F 52 54 49 4F 4E 20 49 |TIONAL PORTION I| 00000E40: 53 0D 53 54 52 49 50 50 45 44 20 4F 46 46 20 41 |S.STRIPPED OFF A| 00000E50: 4E 44 20 53 54 4F 52 45 44 20 49 4E 20 C4 24 2E |ND STORED IN .$.| 00000E60: 0D 0D 20 20 20 20 D4 48 45 20 49 4E 50 55 54 20 |.. .HE INPUT | 00000E70: 52 4F 55 54 49 4E 45 2C 20 36 33 30 2D 37 38 30 |ROUTINE, 630-780| 00000E80: 2C 20 49 53 0D 43 41 4C 4C 45 44 20 46 52 4F 4D |, IS.CALLED FROM| 00000E90: 20 4C 49 4E 45 20 31 33 30 2E 20 20 C9 46 20 59 | LINE 130. .F Y| 00000EA0: 4F 55 20 54 59 50 45 20 D1 2C 0D 4F 52 20 54 48 |OU TYPE .,.OR TH| 00000EB0: 45 20 53 54 52 49 4E 47 20 52 45 54 55 52 4E 45 |E STRING RETURNE| 00000EC0: 44 20 42 59 20 54 48 45 20 49 4E 50 55 54 0D 52 |D BY THE INPUT.R| 00000ED0: 4F 55 54 49 4E 45 20 49 53 20 4E 55 4C 4C 2C 20 |OUTINE IS NULL, | 00000EE0: 54 48 45 20 50 52 4F 47 52 41 4D 20 52 45 2D D2 |THE PROGRAM RE-.| 00000EF0: D5 CE D3 2E 0D 0D 0D 0D 0D 0D 20 20 20 20 D9 4F |.......... .O| 00000F00: 55 27 56 45 20 4A 55 53 54 20 45 4E 54 45 52 45 |U'VE JUST ENTERE| 00000F10: 44 20 31 31 2E 20 20 C1 4E 59 0D 4C 45 41 44 49 |D 11. .NY.LEADI| 00000F20: 4E 47 20 5A 45 52 4F 20 49 53 20 43 4C 49 50 50 |NG ZERO IS CLIPP| 00000F30: 45 44 20 4F 46 46 20 42 59 20 41 0D C7 CF D3 D5 |ED OFF BY A.....| 00000F40: C2 20 54 4F 20 4C 49 4E 45 20 34 37 30 2E 20 20 |. TO LINE 470. | 00000F50: CE 45 58 54 20 41 20 22 50 52 45 54 54 59 0D 4E |.EXT A "PRETTY.N| 00000F60: 55 4D 42 45 52 22 20 49 53 20 47 45 4E 45 52 41 |UMBER" IS GENERA| 00000F70: 54 45 44 20 42 59 20 C7 CF D3 D5 C2 49 4E 47 20 |TED BY .....ING | 00000F80: 4C 49 4E 45 0D 35 38 30 2E 20 20 D4 48 45 20 50 |LINE.580. .HE P| 00000F90: 52 45 54 54 59 20 4E 55 4D 42 45 52 2C 20 D0 CE |RETTY NUMBER, ..| 00000FA0: 24 2C 20 48 41 53 0D 43 4F 4D 4D 41 20 53 45 50 |$, HAS.COMMA SEP| 00000FB0: 41 52 41 54 4F 52 53 20 54 4F 20 4D 41 4B 45 20 |ARATORS TO MAKE | 00000FC0: 54 48 45 20 49 4E 54 45 47 45 52 2C 0D 49 46 20 |THE INTEGER,.IF | 00000FD0: 50 52 4F 44 49 47 49 4F 55 53 2C 20 45 41 53 49 |PRODIGIOUS, EASI| 00000FE0: 45 52 20 54 4F 20 52 45 41 44 2E 0D 0D 20 20 20 |ER TO READ... | 00000FF0: 20 D0 D3 2C 20 54 48 45 20 50 4F 53 49 54 49 4F | .., THE POSITIO| 00001000: 4E 20 4F 46 20 54 48 45 20 43 55 52 53 4F 52 2C |N OF THE CURSOR,| 00001010: 20 49 53 0D 53 45 54 20 54 4F 20 5A 45 52 4F 20 | IS.SET TO ZERO | 00001020: 49 4E 20 4C 49 4E 45 20 31 35 30 2E 20 20 CE 45 |IN LINE 150. .E| 00001030: 58 54 20 41 0D 43 4F 55 50 4C 45 20 4F 46 20 43 |XT A.COUPLE OF C| 00001040: 4F 4E 53 54 41 4E 54 53 20 41 52 45 20 44 45 43 |ONSTANTS ARE DEC| 00001050: 4C 41 52 45 44 20 49 4E 0D 4C 49 4E 45 20 31 36 |LARED IN.LINE 16| 00001060: 30 3A 0D 0D 20 20 20 20 C3 D2 24 3D C3 C8 D2 24 |0:.. ..$=...$| 00001070: 28 31 33 29 3A CD C1 D8 3D 33 39 3A C4 D6 3D 33 |(13):...=39:..=3| 00001080: 0D 0D 0D 0D 0D 0D 20 20 20 20 D7 48 41 54 20 48 |...... .HAT H| 00001090: 41 50 50 45 4E 53 20 4E 45 58 54 20 49 53 20 4B |APPENS NEXT IS K| 000010A0: 49 4E 44 20 4F 46 0D 54 52 49 43 4B 59 2E 20 20 |IND OF.TRICKY. | 000010B0: C1 4C 4C 20 54 48 45 53 45 20 43 4F 4E 53 54 41 |.LL THESE CONSTA| 000010C0: 4E 54 53 20 41 52 45 0D 56 41 4C 49 44 20 CF CE |NTS ARE.VALID ..| 000010D0: CC D9 20 49 46 20 54 48 45 20 50 52 49 4E 54 45 |.. IF THE PRINTE| 000010E0: 52 20 49 53 20 4E 4F 54 20 4F 4E 2E 0D C9 46 20 |R IS NOT ON...F | 000010F0: 54 48 45 20 50 52 49 4E 54 45 52 20 C9 D3 20 CF |THE PRINTER .. .| 00001100: CE CC C9 CE C5 20 54 48 45 4E 20 45 41 43 48 0D |..... THEN EACH.| 00001110: 43 4F 4E 53 54 41 4E 54 20 49 53 20 43 48 41 4E |CONSTANT IS CHAN| 00001120: 47 45 44 2E 0D 0D 20 20 20 CF D0 C5 CE 34 2C 34 |GED... ....4,4| 00001130: 2C 37 3A C3 CC CF D3 C5 34 3A C9 C6 D3 D4 3D 30 |,7:.....4:....=0| 00001140: D4 C8 C5 CE CD C1 D8 3D 36 35 3A 0D 20 20 20 C4 |.......=65:. .| 00001150: D6 3D 34 0D 0D 20 20 20 C9 46 20 59 4F 55 52 20 |.=4.. .F YOUR | 00001160: 50 52 49 4E 54 45 52 20 57 41 53 4E 27 54 20 4F |PRINTER WASN'T O| 00001170: 4E 2C 20 D3 D4 0D 57 49 4C 4C 20 42 45 20 2D 31 |N, ...WILL BE -1| 00001180: 32 38 20 41 4E 44 20 54 48 45 20 43 4F 4E 53 54 |28 AND THE CONST| 00001190: 41 4E 54 53 20 57 49 4C 4C 0D 52 45 4D 41 49 4E |ANTS WILL.REMAIN| 000011A0: 20 54 48 45 20 53 41 4D 45 2E 20 20 D4 48 45 20 | THE SAME. .HE | 000011B0: 53 41 4D 45 20 52 4F 55 54 49 4E 45 53 0D 50 52 |SAME ROUTINES.PR| 000011C0: 49 4E 54 20 54 4F 20 53 43 52 45 45 4E 20 4F 52 |INT TO SCREEN OR| 000011D0: 20 50 52 49 4E 54 45 52 2C 20 54 48 45 0D 4D 41 | PRINTER, THE.MA| 000011E0: 52 47 49 4E 53 20 41 4E 44 20 4F 55 54 50 55 54 |RGINS AND OUTPUT| 000011F0: 20 43 4F 4E 54 52 4F 4C 4C 45 44 20 42 59 20 CD | CONTROLLED BY .| 00001200: C1 D8 2C 0D C4 D6 20 41 4E 44 20 C3 D2 24 2E 0D |..,... AND ..$..| 00001210: 0D 0D 0D 0D 20 20 20 20 D7 48 45 4E 20 59 4F 55 |.... .HEN YOU| 00001220: 20 4F 50 45 4E 20 41 20 46 49 4C 45 20 54 4F 20 | OPEN A FILE TO | 00001230: 44 45 56 49 43 45 0D 23 33 2C 20 54 48 45 20 53 |DEVICE.#3, THE S| 00001240: 43 52 45 45 4E 2C 20 D0 D2 C9 CE D4 23 2C 20 57 |CREEN, .....#, W| 00001250: 49 4C 4C 20 50 52 49 4E 54 20 54 4F 0D 54 48 45 |ILL PRINT TO.THE| 00001260: 20 53 43 52 45 45 4E 2E 20 20 D3 4F 20 54 48 45 | SCREEN. .O THE| 00001270: 20 56 41 4C 55 45 20 4F 46 20 C4 D6 20 49 4E 0D | VALUE OF .. IN.| 00001280: 54 48 49 53 20 53 59 4E 54 41 58 3A 0D 0D 20 20 |THIS SYNTAX:.. | 00001290: 20 20 20 20 20 20 20 20 20 20 20 CF D0 C5 CE 34 | ....4| 000012A0: 2C C4 D6 2C 37 0D 0D 44 45 43 49 44 45 53 20 57 |,..,7..DECIDES W| 000012B0: 48 45 54 48 45 52 20 54 48 45 20 4F 55 54 50 55 |HETHER THE OUTPU| 000012C0: 54 20 57 49 4C 4C 20 42 45 0D 50 52 49 4E 54 45 |T WILL BE.PRINTE| 000012D0: 52 20 28 34 29 20 4F 52 20 53 43 52 45 45 4E 20 |R (4) OR SCREEN | 000012E0: 28 33 29 2E 0D 0D 20 20 20 20 20 20 20 D4 D2 C1 |(3)... ...| 000012F0: CE D3 CC C1 D4 C9 CE C7 20 D4 C8 C5 20 D3 D4 D2 |........ ... ...| 00001300: C9 CE C7 0D 0D 20 20 20 20 CE 4F 57 20 57 45 20 |..... .OW WE | 00001310: 47 45 54 20 44 4F 57 4E 20 54 4F 20 54 48 45 20 |GET DOWN TO THE | 00001320: 4E 49 54 54 59 20 41 4E 44 0D 54 48 45 20 47 52 |NITTY AND.THE GR| 00001330: 49 54 54 59 2E 20 20 C9 4E 20 4C 49 4E 45 20 31 |ITTY. .N LINE 1| 00001340: 39 30 2C 20 54 48 45 20 4C 45 4E 47 54 48 0D 4F |90, THE LENGTH.O| 00001350: 46 20 CE D5 24 2C 20 54 48 45 20 49 4E 54 45 47 |F ..$, THE INTEG| 00001360: 45 52 2C 20 44 45 43 49 44 45 53 20 57 48 49 43 |ER, DECIDES WHIC| 00001370: 48 0D 4C 49 4E 45 20 54 4F 20 42 52 41 4E 43 48 |H.LINE TO BRANCH| 00001380: 20 54 4F 20 55 53 49 4E 47 20 54 48 45 20 CF CE | TO USING THE ..| 00001390: 20 C7 CF D3 D5 C2 0D 43 4F 4D 41 4E 44 2E 0D 0D | ......COMAND...| 000013A0: 0D 20 20 20 20 D9 4F 55 20 45 4E 54 45 52 45 44 |. .OU ENTERED| 000013B0: 20 31 31 2C 20 57 48 49 43 48 20 49 53 20 54 57 | 11, WHICH IS TW| 000013C0: 4F 0D 44 49 47 49 54 53 20 4C 4F 4E 47 20 53 4F |O.DIGITS LONG SO| 000013D0: 20 54 48 45 20 50 52 4F 47 52 41 4D 20 57 49 4C | THE PROGRAM WIL| 000013E0: 4C 0D 42 52 41 4E 43 48 20 54 4F 20 32 32 30 0D |L.BRANCH TO 220.| 000013F0: 0D 20 20 20 20 CC 49 4E 45 20 32 32 30 20 43 48 |. .INE 220 CH| 00001400: 45 43 4B 53 20 54 48 45 20 D6 C1 CC 55 45 20 4F |ECKS THE ...UE O| 00001410: 46 20 CE D5 24 2E 0D C9 46 20 47 52 45 41 54 45 |F ..$...F GREATE| 00001420: 52 20 54 48 41 4E 20 32 30 2C 20 49 54 20 42 52 |R THAN 20, IT BR| 00001430: 41 4E 43 48 45 53 20 41 47 41 49 4E 0D 54 4F 20 |ANCHES AGAIN.TO | 00001440: 4C 49 4E 45 20 32 33 30 2E 20 20 C2 55 54 20 54 |LINE 230. .UT T| 00001450: 48 45 20 D6 C1 CC 55 45 20 4F 46 20 CE D5 24 20 |HE ...UE OF ..$ | 00001460: 49 53 0D 31 31 20 53 4F 20 54 48 45 20 45 4C 45 |IS.11 SO THE ELE| 00001470: 56 45 4E 54 48 20 49 54 45 4D 20 49 4E 20 54 48 |VENTH ITEM IN TH| 00001480: 45 20 41 52 52 41 59 0D CF 24 28 29 20 49 53 20 |E ARRAY..$() IS | 00001490: 49 4E 44 45 58 45 44 2E 0D 0D 20 20 20 20 D3 54 |INDEXED... .T| 000014A0: 4F 52 45 44 20 49 4E 20 54 48 45 20 45 4C 45 56 |ORED IN THE ELEV| 000014B0: 45 4E 54 48 20 53 4C 4F 54 20 4F 46 0D 54 48 45 |ENTH SLOT OF.THE| 000014C0: 20 41 52 52 41 59 20 CF 24 28 29 20 49 53 20 54 | ARRAY .$() IS T| 000014D0: 48 45 20 57 4F 52 44 20 22 45 4C 45 56 45 4E 22 |HE WORD "ELEVEN"| 000014E0: 2C 0D 57 48 49 43 48 20 49 53 20 54 52 41 4E 53 |,.WHICH IS TRANS| 000014F0: 46 45 52 52 45 44 20 54 4F 20 54 48 45 20 53 54 |FERRED TO THE ST| 00001500: 52 49 4E 47 2C 0D C1 24 2E 0D 0D 0D 0D 0D 0D 20 |RING,..$....... | 00001510: 20 20 20 D3 4F 4D 45 54 48 49 4E 47 20 49 4D 50 | .OMETHING IMP| 00001520: 4F 52 54 41 4E 54 20 48 41 50 50 45 4E 53 20 48 |ORTANT HAPPENS H| 00001530: 45 52 45 2E 0D 41 20 C7 CF D3 D5 C2 20 49 53 20 |ERE..A ..... IS | 00001540: 4D 41 44 45 20 54 4F 20 4C 49 4E 45 20 35 35 30 |MADE TO LINE 550| 00001550: 2E 20 20 D4 48 45 52 45 0D 54 48 45 20 CC C5 CE |. .HERE.THE ...| 00001560: 47 54 48 20 4F 46 20 C1 24 20 49 53 20 41 44 44 |GTH OF .$ IS ADD| 00001570: 45 44 20 54 4F 20 D0 D3 2E 0D C9 46 20 54 48 49 |ED TO .....F THI| 00001580: 53 20 4D 41 4B 45 53 20 D0 D3 20 47 52 45 41 54 |S MAKES .. GREAT| 00001590: 45 52 20 54 48 41 4E 20 54 48 45 0D 52 49 47 48 |ER THAN THE.RIGH| 000015A0: 54 20 4D 41 52 47 49 4E 20 54 48 45 4E 20 C3 D2 |T MARGIN THEN ..| 000015B0: 24 20 28 43 41 52 52 49 41 47 45 0D 52 45 54 55 |$ (CARRIAGE.RETU| 000015C0: 52 4E 29 20 49 53 20 50 52 49 4E 54 45 44 20 41 |RN) IS PRINTED A| 000015D0: 4E 44 20 D0 D3 20 49 53 20 53 45 54 20 54 4F 0D |ND .. IS SET TO.| 000015E0: 5A 45 52 4F 2E 20 20 D4 48 41 54 20 57 41 53 20 |ZERO. .HAT WAS | 000015F0: 41 20 57 4F 52 44 20 57 52 41 50 21 0D 0D 20 20 |A WORD WRAP!.. | 00001600: 20 20 C1 46 54 45 52 20 D2 C5 D4 D5 D2 CE 49 4E | .FTER ......IN| 00001610: 47 20 46 52 4F 4D 20 54 48 45 20 57 4F 52 44 0D |G FROM THE WORD.| 00001620: 57 52 41 50 20 50 41 52 53 45 52 2C 20 57 45 27 |WRAP PARSER, WE'| 00001630: 52 45 20 42 41 43 4B 20 49 4E 20 54 48 45 20 4D |RE BACK IN THE M| 00001640: 49 44 44 4C 45 0D 4F 46 20 4C 49 4E 45 20 32 32 |IDDLE.OF LINE 22| 00001650: 30 20 57 48 45 52 45 20 C1 24 2C 20 54 48 45 20 |0 WHERE .$, THE | 00001660: 54 52 41 4E 53 4C 41 54 45 44 0D 4E 55 4D 42 45 |TRANSLATED.NUMBE| 00001670: 52 2C 20 49 53 20 46 49 4E 41 4C 4C 59 20 50 52 |R, IS FINALLY PR| 00001680: 49 4E 54 45 44 2E 0D 0D 20 20 20 20 C8 41 44 20 |INTED... .AD | 00001690: CE D5 24 20 42 45 45 4E 20 4C 41 52 47 45 52 20 |..$ BEEN LARGER | 000016A0: 54 48 41 4E 20 32 30 20 42 55 54 0D 4C 45 53 53 |THAN 20 BUT.LESS| 000016B0: 20 54 48 41 4E 20 31 30 30 2C 20 4C 49 4E 45 20 | THAN 100, LINE | 000016C0: 32 34 30 20 57 4F 55 4C 44 20 48 41 56 45 0D 53 |240 WOULD HAVE.S| 000016D0: 54 52 49 50 50 45 44 20 4F 46 46 20 54 48 45 20 |TRIPPED OFF THE | 000016E0: 46 49 52 53 54 20 44 49 47 49 54 20 41 4E 44 0D |FIRST DIGIT AND.| 000016F0: 49 4E 44 45 58 45 44 20 D4 D7 24 28 29 20 42 59 |INDEXED ..$() BY| 00001700: 20 49 54 53 20 D6 C1 CC 55 45 2E 0D 0D 0D 20 20 | ITS ...UE.... | 00001710: 20 20 CC 45 54 27 53 20 53 41 59 20 54 48 45 20 | .ET'S SAY THE | 00001720: 4E 55 4D 42 45 52 20 57 41 53 20 33 34 2E 20 20 |NUMBER WAS 34. | 00001730: D4 48 45 0D 22 33 22 20 49 53 20 53 54 52 49 50 |.HE."3" IS STRIP| 00001740: 50 45 44 20 4F 46 46 2E 20 20 D4 D7 24 28 33 29 |PED OFF. ..$(3)| 00001750: 20 49 53 0D 22 54 48 49 52 54 59 22 2E 20 20 D4 | IS."THIRTY". .| 00001760: 48 41 54 27 53 20 50 52 49 4E 54 45 44 2E 20 20 |HAT'S PRINTED. | 00001770: CE 45 58 54 20 54 48 45 0D 22 34 22 20 49 53 20 |.EXT THE."4" IS | 00001780: 53 45 4E 54 20 54 4F 20 4C 49 4E 45 20 32 32 30 |SENT TO LINE 220| 00001790: 20 57 48 45 52 45 20 49 54 27 53 0D 54 52 41 4E | WHERE IT'S.TRAN| 000017A0: 53 4C 41 54 45 44 20 41 53 20 22 46 4F 55 52 22 |SLATED AS "FOUR"| 000017B0: 20 57 48 45 4E 20 49 4E 44 45 58 45 44 0D 54 48 | WHEN INDEXED.TH| 000017C0: 52 4F 55 47 48 20 CF 24 28 34 29 2E 0D 0D 20 20 |ROUGH .$(4)... | 000017D0: 20 20 C6 4F 52 20 54 48 52 45 45 2D 44 49 47 49 | .OR THREE-DIGI| 000017E0: 54 20 4E 55 4D 42 45 52 53 2C 20 31 30 30 2D 39 |T NUMBERS, 100-9| 000017F0: 39 39 2C 0D 54 48 45 20 53 41 4D 45 20 54 52 49 |99,.THE SAME TRI| 00001800: 43 4B 4C 45 2D 44 4F 57 4E 20 4C 4F 47 49 43 20 |CKLE-DOWN LOGIC | 00001810: 49 53 20 55 53 45 44 3A 0D D4 48 45 53 45 20 53 |IS USED:..HESE S| 00001820: 55 42 52 4F 55 54 49 4E 45 53 20 D5 D3 C5 20 45 |UBROUTINES ... E| 00001830: 41 43 48 20 4F 54 48 45 52 2C 20 41 53 0D 59 4F |ACH OTHER, AS.YO| 00001840: 55 20 57 49 4C 4C 20 53 45 45 2E 20 20 D9 4F 55 |U WILL SEE. .OU| 00001850: 52 20 4E 55 4D 42 45 52 20 49 53 20 22 37 35 39 |R NUMBER IS "759| 00001860: 22 2E 0D D4 48 45 20 22 37 22 20 49 53 20 53 54 |"...HE "7" IS ST| 00001870: 52 49 50 50 45 44 20 4F 46 46 2E 20 20 C9 4E 20 |RIPPED OFF. .N | 00001880: C8 D5 24 28 37 29 0D 49 53 20 54 48 45 20 57 4F |..$(7).IS THE WO| 00001890: 52 44 2C 20 22 53 45 56 45 4E 20 48 55 4E 44 52 |RD, "SEVEN HUNDR| 000018A0: 45 44 22 0D 0D 20 20 20 20 D7 4F 52 44 20 57 52 |ED".. .ORD WR| 000018B0: 41 50 20 49 53 20 43 48 45 43 4B 45 44 2C 20 22 |AP IS CHECKED, "| 000018C0: 53 45 56 45 4E 0D 48 55 4E 44 52 45 44 20 22 20 |SEVEN.HUNDRED " | 000018D0: 49 53 20 50 52 49 4E 54 45 44 2C 20 41 4E 44 20 |IS PRINTED, AND | 000018E0: 54 48 45 0D 52 45 4D 41 49 4E 44 45 52 2C 20 22 |THE.REMAINDER, "| 000018F0: 35 39 22 2C 20 49 53 20 46 45 44 20 54 4F 20 54 |59", IS FED TO T| 00001900: 48 45 20 54 57 4F 2D 0D 44 49 47 49 54 20 54 52 |HE TWO-.DIGIT TR| 00001910: 41 4E 53 4C 41 54 4F 52 2E 0D 0D 20 20 20 20 D4 |ANSLATOR... .| 00001920: 48 45 20 52 4F 55 54 49 4E 45 20 54 48 41 54 20 |HE ROUTINE THAT | 00001930: 54 52 41 4E 53 4C 41 54 45 53 0D 4E 55 4D 42 45 |TRANSLATES.NUMBE| 00001940: 52 53 20 4C 4F 4E 47 45 52 20 54 48 41 4E 20 46 |RS LONGER THAN F| 00001950: 4F 55 52 20 44 49 47 49 54 53 2C 20 31 30 30 30 |OUR DIGITS, 1000| 00001960: 2D 0D 39 2E 39 2A 31 30 5E 36 36 2C 20 49 53 20 |-.9.9*10^66, IS | 00001970: D2 C5 C3 D5 D2 D3 C9 D6 C5 20 49 4E 20 4E 41 54 |......... IN NAT| 00001980: 55 52 45 2E 0D C9 4E 20 43 4F 4D 50 55 54 45 52 |URE...N COMPUTER| 00001990: 20 54 45 52 4D 53 2C 20 41 20 52 4F 55 54 49 4E | TERMS, A ROUTIN| 000019A0: 45 20 54 48 41 54 0D 41 43 54 55 41 4C 4C 59 20 |E THAT.ACTUALLY | 000019B0: C3 C1 CC CC 53 20 49 54 53 45 4C 46 20 49 53 20 |....S ITSELF IS | 000019C0: 43 41 4C 4C 45 44 0D D2 C5 C3 D5 D2 D3 C9 D6 C5 |CALLED..........| 000019D0: 2E 20 20 C9 54 27 53 20 53 41 49 44 20 42 59 20 |. .T'S SAID BY | 000019E0: 43 52 49 54 49 43 53 20 4F 46 0D C2 C1 D3 C9 C3 |CRITICS OF......| 000019F0: 20 54 48 41 54 20 54 48 49 53 20 49 53 20 4E 45 | THAT THIS IS NE| 00001A00: 41 52 4C 59 20 49 4D 50 4F 53 53 49 42 4C 45 0D |ARLY IMPOSSIBLE.| 00001A10: 54 4F 20 44 4F 20 49 4E 20 C2 C1 D3 C9 C3 20 42 |TO DO IN ..... B| 00001A20: 55 54 20 4C 49 4E 45 20 33 34 30 2C 20 50 41 52 |UT LINE 340, PAR| 00001A30: 54 20 4F 46 0D 54 48 45 20 52 4F 55 54 49 4E 45 |T OF.THE ROUTINE| 00001A40: 20 49 4E 20 33 32 30 2D 33 38 30 2C 20 57 49 4C | IN 320-380, WIL| 00001A50: 4C 20 52 45 2D 45 4E 54 45 52 0D 54 48 45 20 52 |L RE-ENTER.THE R| 00001A60: 4F 55 54 49 4E 45 20 41 53 20 4D 41 4E 59 20 54 |OUTINE AS MANY T| 00001A70: 49 4D 45 53 20 41 53 20 49 54 20 48 41 53 0D 54 |IMES AS IT HAS.T| 00001A80: 4F 2E 0D 0D 20 20 20 20 20 D4 48 49 53 20 52 4F |O... .HIS RO| 00001A90: 55 54 49 4E 45 20 57 49 4C 4C 20 53 54 52 49 50 |UTINE WILL STRIP| 00001AA0: 20 4F 46 46 0D 43 48 55 4E 4B 53 20 4F 46 20 4E | OFF.CHUNKS OF N| 00001AB0: 55 4D 42 45 52 53 20 41 4E 44 20 54 52 41 4E 53 |UMBERS AND TRANS| 00001AC0: 4C 41 54 45 20 54 48 45 4D 0D 50 49 45 43 45 20 |LATE THEM.PIECE | 00001AD0: 42 59 20 50 49 45 43 45 20 55 4E 54 49 4C 20 CE |BY PIECE UNTIL .| 00001AE0: D5 24 20 49 53 20 4C 45 53 53 20 54 48 41 4E 0D |.$ IS LESS THAN.| 00001AF0: 34 20 44 49 47 49 54 53 20 4C 4F 4E 47 2C 20 54 |4 DIGITS LONG, T| 00001B00: 48 45 4E 20 49 54 20 57 49 4C 4C 20 50 41 53 53 |HEN IT WILL PASS| 00001B10: 20 54 48 45 0D 46 49 4E 41 4C 20 54 48 52 45 45 | THE.FINAL THREE| 00001B20: 20 44 49 47 49 54 53 20 54 4F 20 54 48 45 20 54 | DIGITS TO THE T| 00001B30: 48 52 45 45 2D 44 49 47 49 54 0D 54 52 41 4E 53 |HREE-DIGIT.TRANS| 00001B40: 4C 41 54 4F 52 2C 20 54 48 45 4E 20 54 4F 20 54 |LATOR, THEN TO T| 00001B50: 48 45 20 54 57 4F 20 44 49 47 49 54 2E 0D 0D 20 |HE TWO DIGIT... | 00001B60: 20 20 20 D4 48 45 52 45 20 59 4F 55 20 48 41 56 | .HERE YOU HAV| 00001B70: 45 20 48 4F 57 20 C9 20 44 49 44 20 49 54 2E 20 |E HOW . DID IT. | 00001B80: 20 C1 4E 59 0D 51 55 45 53 54 49 4F 4E 53 3F 0D | .NY.QUESTIONS?.| 00001B90: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00001BA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001BB0: 20 20 CA CC CA 0D 20 20 20 20 20 20 20 2A 2A 2A | .... ***| 00001BC0: 2A 20 C5 4E 44 20 CF 46 20 D4 45 58 54 20 2A 2A |* .ND .F .EXT **| 00001BD0: 2A 2A 0D |**. |
..^U:ZERO. THE MIGHTY NUMBER TRANSLA
TOR.. AND HOW I PARSED IT..
BY JEFF JONES.. WEBSTER DEFI
NES PARSE AS:..1. TO BREAK (A SENTENCE)
DOWN INTO.PARTS, EXPLAINING GRAMMATICAL
FORM,.FUNCTION AND INTERRELATION OF EACH
.PART... MOST PROGRAMMERS THINK OF."P
ARSING" AS SCANNING A DOCUMENT OR.STRING
, OR KEYBOARD INPUT AS IT IS.KEYED IN...
.. NUMBER TRANSLATOR, INCLUDED WITH.T
HIS ARTICLE DOES AN AWFUL LOT OF.PARSING
. THE PROGRAM WILL TELL YOU.THE ENGLISH
NAME OF JUST ABOUT ANY.NUMBER YOU TYPE
IN. IN ORDER TO DO.THIS, IT HAS TO "REA
D" (PARSE) WHAT.YOU TYPED IN...IF YOU EN
TER 12, IT RESPONDS:.. 12 IS: TWELVE..I
F YOU ENTER 1023.407, IT SAYS:.. 1,023.
407 IS: ONE THOUSAND TWENTY-. THREE AND
FOUR HUNDRED SEVEN. THOUSANDTHS....
YOU MIGHT WANT TO PRINT OUT THIS.ARTICL
E BECAUSE I'LL BE REFERRING TO.LINE NUMB
ERS IN THE PROGRAM...I M P O R T A N T
V A R I A B L E S.. THERE ARE A 18 G
LOBAL VARIABLES.IN THIS PROGRAM THAT I R
ELY ON:..NU$ THE INTEGER TO BE TRANSLA
TED.L THE LENGTH OF THE INTEGER.N$
TEMPORARY STORAGE OF INTEGER.D$ THE
FRACTIONAL PORTION, IF ANY.DL THE LE
NGTH OF THE FRACTION.MI$() THE DENOMINAT
IONS OF NUMBERS.O$() THE NAMES OF NUMBE
RS 1-19.TW$() THE NAMES OF 20-90 STEP 10
.HU$() THE NAMES OF 100-900 STEP 100.CR$
CARRIAGE RETURN OR CARRIAGE. RET
URN WITH MARGIN OF FIVE IF. PRINTER
IS ON..D POSITION OF THE DECIMAL PO
INT.DV DEVICE NUMBER 3-SCREEN 4-PRINT
ER.F FLAG FOR LEADING ZEROES.MAX W
ORD WRAP 39-SCREEN 65-PRINTER.NZ FLAG
: PREVENTS LEADING ZEROES.P POSITION
OF "34" IN 34,454,232.PN$ "PRETTY NUM
BER" WITH COMMAS.PS POSITION OF CURSO
R FOR PRINTER. AS WELL AS SCREEN.ST
USED TO CHECK FOR SERIAL PRINTER.T
TOGGLES PSEUDO-CURSOR DURING. GE
T ROUTINE. -1=ON, 0=OFF.TI SYSTEM VAR
IABLE USED TO TIME. PROGRAM CONTROL
LED CURSOR.... FIRST THE INPUT ROU
TINE.. I DO A HEFTY AMOUNT OF REAL-TI
ME.PARSING IN THE INPUT ROUTINE RESIDING
.IN LINES 620-800. THIS ROUTINE COULD.H
AVE BEEN MUCH SHORTER BUT I HAD TO.SCAN
OR "PARSE" FOR UNWANTED INPUT... FOR
INSTANCE, IF YOU WERE TO ENTER.1.1.4.3.2
.1. AS A NUMBER, THERE'S NO.TELLING WHAT
MIGHT BE SPEWED BACK AT.YOU BY THE TRAN
SLATOR. SO, AS IN.REALITY, YOU CAN HAVE
ONLY ONE.DECIMAL PER NUMBER... THE V
ARIABLE D IS ZEROED OUT EVERY.TIME THE I
NPUT ROUTINE IS CALLED.... ONCE A DEC
IMAL POINT IS ENTERED IN.THE STRING, D B
ECOMES THE POSITION OF.THE DECIMAL POINT
... LINE 730 PROHIBITS ANOTHER.DECIMA
L POINT BY SIMPLY RETURNING TO.THE GETKE
Y ROUTINE IF D SHOWS AN.EXISTING DECIMAL
... TO MAKE THE TRANSLATOR MORE.FOOLP
ROOF I HAD TO RESTRICT LEADING.ZEROES ON
THE INTEGER PORTION. YOU'LL.NOTICE THA
T YOU AREN'T ALLOWED TO.TYPE A DOUBLE ZE
RO UNLESS IT'S.IMBEDDED IN THE STRING...
... IN OTHER WORDS, YOU CAN ENTER:..
100001.00001..BUT NOT: 001..
IN LINE 770, THE VARIABLE, NZ,.LAYS
IN WAIT, ZEROED, FOR A NON-ZERO.NUMBER.
ONCE IT SCANS A NON-ZERO, IT.BECOMES A
FLAG. NZ IS NOW A 1. LINE.740 CHECKS N
Z AGAINST THE LENGTH OF.THE STRING. IF
THE SECOND DIGIT IS."0" AND NX IS STILL
A ZERO, THEN BACK.TO THE GET LOOP.......
ALSO, TO CATER TO THE TRANSLATOR,.YO
U MUST ENTER FRACTIONS WITH A.LEADING ZE
RO:.. 0.98 AND NOT .98.. LIN
E 700 PROHIBITS A DECIMAL FROM.BEING ENT
ERED FIRST. IT DOES THIS BY.MERELY CHEC
KING THE LENGTH OF NU$,.WHICH IS L. IN
ENGLISH LINE 700.READS: "IF A DECIMAL WA
S ENTERED THEN.REJECT IT IF L IS EQUAL T
O ZERO."........ P R O G R A M F
L O W.. WOW! THIS CODE IS FRESH OFF
THE.FINGERS! I FORGOT HOW I DID IT BUT
.LET'S TRACE IT:.. AFTER YOU ENTER A
NUMBER, A LOT.GOES ON. ANY FRACTIONAL P
ORTION IS.STRIPPED OFF AND STORED IN D$.
.. THE INPUT ROUTINE, 630-780, IS.CAL
LED FROM LINE 130. IF YOU TYPE Q,.OR TH
E STRING RETURNED BY THE INPUT.ROUTINE I
S NULL, THE PROGRAM RE-RUNS....... YO
U'VE JUST ENTERED 11. ANY.LEADING ZERO
IS CLIPPED OFF BY A.GOSUB TO LINE 470.
NEXT A "PRETTY.NUMBER" IS GENERATED BY G
OSUBING LINE.580. THE PRETTY NUMBER, PN
$, HAS.COMMA SEPARATORS TO MAKE THE INTE
GER,.IF PRODIGIOUS, EASIER TO READ...
PS, THE POSITION OF THE CURSOR, IS.SET
TO ZERO IN LINE 150. NEXT A.COUPLE OF C
ONSTANTS ARE DECLARED IN.LINE 160:..
CR$=CHR$(13):MAX=39:DV=3...... WHAT H
APPENS NEXT IS KIND OF.TRICKY. ALL THES
E CONSTANTS ARE.VALID ONLY IF THE PRINTE
R IS NOT ON..IF THE PRINTER IS ONLINE TH
EN EACH.CONSTANT IS CHANGED... OPEN4,4
,7:CLOSE4:IFST=0THENMAX=65:. DV=4..
IF YOUR PRINTER WASN'T ON, ST.WILL BE -1
28 AND THE CONSTANTS WILL.REMAIN THE SAM
E. THE SAME ROUTINES.PRINT TO SCREEN OR
PRINTER, THE.MARGINS AND OUTPUT CONTROL
LED BY MAX,.DV AND CR$...... WHEN YOU
OPEN A FILE TO DEVICE.#3, THE SCREEN, P
RINT#, WILL PRINT TO.THE SCREEN. SO THE
VALUE OF DV IN.THIS SYNTAX:..
OPEN4,DV,7..DECIDES WHETHER THE OUTPU
T WILL BE.PRINTER (4) OR SCREEN (3)...
TRANSLATING THE STRING.. NOW WE
GET DOWN TO THE NITTY AND.THE GRITTY. I
N LINE 190, THE LENGTH.OF NU$, THE INTEG
ER, DECIDES WHICH.LINE TO BRANCH TO USIN
G THE ON GOSUB.COMAND.... YOU ENTERED
11, WHICH IS TWO.DIGITS LONG SO THE PRO
GRAM WILL.BRANCH TO 220.. LINE 220 CH
ECKS THE VALUE OF NU$..IF GREATER THAN 2
0, IT BRANCHES AGAIN.TO LINE 230. BUT T
HE VALUE OF NU$ IS.11 SO THE ELEVENTH IT
EM IN THE ARRAY.O$() IS INDEXED... ST
ORED IN THE ELEVENTH SLOT OF.THE ARRAY O
$() IS THE WORD "ELEVEN",.WHICH IS TRANS
FERRED TO THE STRING,.A$....... SOMET
HING IMPORTANT HAPPENS HERE..A GOSUB IS
MADE TO LINE 550. THERE.THE LENGTH OF A
$ IS ADDED TO PS..IF THIS MAKES PS GREAT
ER THAN THE.RIGHT MARGIN THEN CR$ (CARRI
AGE.RETURN) IS PRINTED AND PS IS SET TO.
ZERO. THAT WAS A WORD WRAP!.. AFTER
RETURNING FROM THE WORD.WRAP PARSER, WE'
RE BACK IN THE MIDDLE.OF LINE 220 WHERE
A$, THE TRANSLATED.NUMBER, IS FINALLY PR
INTED... HAD NU$ BEEN LARGER THAN 20
BUT.LESS THAN 100, LINE 240 WOULD HAVE.S
TRIPPED OFF THE FIRST DIGIT AND.INDEXED
TW$() BY ITS VALUE.... LET'S SAY THE
NUMBER WAS 34. THE."3" IS STRIPPED OFF.
TW$(3) IS."THIRTY". THAT'S PRINTED.
NEXT THE."4" IS SENT TO LINE 220 WHERE I
T'S.TRANSLATED AS "FOUR" WHEN INDEXED.TH
ROUGH O$(4)... FOR THREE-DIGIT NUMBER
S, 100-999,.THE SAME TRICKLE-DOWN LOGIC
IS USED:.THESE SUBROUTINES USE EACH OTHE
R, AS.YOU WILL SEE. YOUR NUMBER IS "759
"..THE "7" IS STRIPPED OFF. IN HU$(7).I
S THE WORD, "SEVEN HUNDRED".. WORD WR
AP IS CHECKED, "SEVEN.HUNDRED " IS PRINT
ED, AND THE.REMAINDER, "59", IS FED TO T
HE TWO-.DIGIT TRANSLATOR... THE ROUTI
NE THAT TRANSLATES.NUMBERS LONGER THAN F
OUR DIGITS, 1000-.9.9*10^66, IS RECURSIV
E IN NATURE..IN COMPUTER TERMS, A ROUTIN
E THAT.ACTUALLY CALLS ITSELF IS CALLED.R
ECURSIVE. IT'S SAID BY CRITICS OF.BASIC
THAT THIS IS NEARLY IMPOSSIBLE.TO DO IN
BASIC BUT LINE 340, PART OF.THE ROUTINE
IN 320-380, WILL RE-ENTER.THE ROUTINE A
S MANY TIMES AS IT HAS.TO... THIS RO
UTINE WILL STRIP OFF.CHUNKS OF NUMBERS A
ND TRANSLATE THEM.PIECE BY PIECE UNTIL N
U$ IS LESS THAN.4 DIGITS LONG, THEN IT W
ILL PASS THE.FINAL THREE DIGITS TO THE T
HREE-DIGIT.TRANSLATOR, THEN TO THE TWO D
IGIT... THERE YOU HAVE HOW I DID IT.
ANY.QUESTIONS?..
JLJ. **** END OF TEXT **
**.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL