00000000: 00 20 54 4F 20 48 45 4C 50 0D 20 4E 44 0D 20 44 |. TO HELP. ND. D|
00000010: 4F 43 2E 4C 49 53 54 20 5B 42 41 53 45 20 42 49 |OC.LIST [BASE BI|
00000020: 4E 41 52 59 20 48 45 58 20 55 4E 42 41 53 45 20 |NARY HEX UNBASE |
00000030: 24 20 45 5D 0D 45 4E 44 0D 0D 54 4F 20 44 4F 43 |$ E].END..TO DOC|
00000040: 2E 4C 49 53 54 20 3A 50 52 4F 43 53 0D 20 49 46 |.LIST :PROCS. IF|
00000050: 20 45 4D 50 54 59 3F 20 3A 50 52 4F 43 53 20 53 | EMPTY? :PROCS S|
00000060: 54 4F 50 0D 20 44 4F 43 20 46 49 52 53 54 20 3A |TOP. DOC FIRST :|
00000070: 50 52 4F 43 53 0D 20 50 52 49 4E 54 20 5B 5D 0D |PROCS. PRINT [].|
00000080: 20 44 4F 43 2E 4C 49 53 54 20 42 46 20 3A 50 52 | DOC.LIST BF :PR|
00000090: 4F 43 53 0D 45 4E 44 0D 0D 54 4F 20 42 49 4E 41 |OCS.END..TO BINA|
000000A0: 52 59 20 3A 4E 55 4D 0D 20 3B 20 4F 55 54 50 55 |RY :NUM. ; OUTPU|
000000B0: 54 53 20 54 48 45 20 42 49 4E 41 52 59 20 52 45 |TS THE BINARY RE|
000000C0: 50 52 45 53 45 4E 54 41 54 49 4F 4E 20 4F 46 20 |PRESENTATION OF |
000000D0: 41 20 4E 55 4D 42 45 52 0D 20 4F 50 20 42 41 53 |A NUMBER. OP BAS|
000000E0: 45 20 32 20 3A 4E 55 4D 0D 45 4E 44 0D 0D 54 4F |E 2 :NUM.END..TO|
000000F0: 20 48 45 58 20 3A 4E 55 4D 0D 20 3B 20 4F 55 54 | HEX :NUM. ; OUT|
00000100: 50 55 54 53 20 54 48 45 20 48 45 58 20 52 45 50 |PUTS THE HEX REP|
00000110: 52 45 53 45 4E 54 41 54 49 4F 4E 20 4F 46 20 41 |RESENTATION OF A|
00000120: 20 4E 55 4D 42 45 52 0D 20 4F 50 20 42 41 53 45 | NUMBER. OP BASE|
00000130: 20 31 36 20 3A 4E 55 4D 0D 45 4E 44 0D 0D 54 4F | 16 :NUM.END..TO|
00000140: 20 55 4E 42 41 53 45 20 3A 42 41 53 45 20 3A 42 | UNBASE :BASE :B|
00000150: 4E 55 4D 0D 20 3B 20 4F 55 50 55 54 53 20 54 48 |NUM. ; OUPUTS TH|
00000160: 45 20 4E 55 4D 42 45 52 20 54 48 41 54 20 49 53 |E NUMBER THAT IS|
00000170: 20 52 45 50 52 45 53 45 4E 54 45 44 20 42 59 20 | REPRESENTED BY |
00000180: 3A 42 4E 55 4D 20 28 51 55 4F 54 45 44 20 57 4F |:BNUM (QUOTED WO|
00000190: 52 44 29 20 49 4E 20 3A 42 41 53 45 0D 20 49 46 |RD) IN :BASE. IF|
000001A0: 20 3A 42 4E 55 4D 20 3D 20 30 20 4F 50 20 30 0D | :BNUM = 0 OP 0.|
000001B0: 20 4F 50 20 24 49 4E 54 20 3A 42 4E 55 4D 20 30 | OP $INT :BNUM 0|
000001C0: 20 3A 42 41 53 45 0D 45 4E 44 0D 0D 54 4F 20 24 | :BASE.END..TO $|
000001D0: 20 3A 4E 55 4D 0D 20 3B 20 43 4F 4E 56 45 52 54 | :NUM. ; CONVERT|
000001E0: 53 20 41 20 48 45 58 20 4E 55 4D 42 45 52 20 28 |S A HEX NUMBER (|
000001F0: 51 55 4F 54 45 44 20 57 4F 52 44 29 20 54 4F 20 |QUOTED WORD) TO |
00000200: 41 20 4E 55 4D 42 45 52 0D 20 4F 50 20 24 49 4E |A NUMBER. OP $IN|
00000210: 54 20 3A 4E 55 4D 20 30 20 31 36 0D 45 4E 44 0D |T :NUM 0 16.END.|
00000220: 0D 54 4F 20 45 20 3A 41 44 44 52 0D 20 3B 20 53 |.TO E :ADDR. ; S|
00000230: 48 4F 52 54 20 46 4F 52 20 2E 45 58 41 4D 49 4E |HORT FOR .EXAMIN|
00000240: 45 0D 20 4F 50 20 2E 45 58 41 4D 49 4E 45 20 3A |E. OP .EXAMINE :|
00000250: 41 44 44 52 0D 45 4E 44 0D 0D 54 4F 20 56 41 4C |ADDR.END..TO VAL|
00000260: 44 49 47 20 3A 4E 0D 20 49 46 20 3A 4E 20 3C 20 |DIG :N. IF :N < |
00000270: 31 30 20 4F 50 20 3A 4E 0D 20 4F 50 20 43 48 41 |10 OP :N. OP CHA|
00000280: 52 20 35 35 20 2B 20 3A 4E 0D 45 4E 44 0D 0D 54 |R 55 + :N.END..T|
00000290: 4F 20 42 41 53 45 31 20 3A 4E 55 4D 0D 20 49 46 |O BASE1 :NUM. IF|
000002A0: 20 3A 4E 55 4D 20 3D 20 30 20 4F 50 20 22 0D 20 | :NUM = 0 OP ". |
000002B0: 4F 50 20 57 4F 52 44 20 42 41 53 45 31 20 28 20 |OP WORD BASE1 ( |
000002C0: 51 55 4F 54 49 45 4E 54 20 3A 4E 55 4D 20 3A 42 |QUOTIENT :NUM :B|
000002D0: 41 53 45 20 29 20 28 20 56 41 4C 44 49 47 20 52 |ASE ) ( VALDIG R|
000002E0: 45 4D 41 49 4E 44 45 52 20 3A 4E 55 4D 20 3A 42 |EMAINDER :NUM :B|
000002F0: 41 53 45 20 29 0D 45 4E 44 0D 0D 54 4F 20 55 4E |ASE ).END..TO UN|
00000300: 42 4E 31 20 3A 4E 55 4D 0D 20 49 46 20 3A 4E 55 |BN1 :NUM. IF :NU|
00000310: 4D 20 3D 20 30 20 4F 50 20 22 0D 20 4F 50 20 57 |M = 0 OP ". OP W|
00000320: 4F 52 44 20 55 4E 42 31 20 51 55 4F 54 49 45 4E |ORD UNB1 QUOTIEN|
00000330: 54 20 3A 4E 55 4D 20 32 20 28 20 52 45 4D 41 49 |T :NUM 2 ( REMAI|
00000340: 4E 44 45 52 20 3A 4E 55 4D 20 32 20 29 0D 45 4E |NDER :NUM 2 ).EN|
00000350: 44 0D 0D 54 4F 20 44 49 47 56 41 4C 20 3A 43 48 |D..TO DIGVAL :CH|
00000360: 41 52 0D 20 49 46 20 4E 55 4D 42 45 52 3F 20 3A |AR. IF NUMBER? :|
00000370: 43 48 41 52 20 4F 50 20 3A 43 48 41 52 0D 20 4F |CHAR OP :CHAR. O|
00000380: 50 20 2D 20 35 35 20 2B 20 41 53 43 49 49 20 3A |P - 55 + ASCII :|
00000390: 43 48 41 52 0D 45 4E 44 0D 0D 54 4F 20 24 49 4E |CHAR.END..TO $IN|
000003A0: 54 20 3A 4E 55 4D 20 3A 56 41 4C 20 3A 42 41 53 |T :NUM :VAL :BAS|
000003B0: 45 0D 20 49 46 20 3A 4E 55 4D 20 3D 20 22 20 4F |E. IF :NUM = " O|
000003C0: 50 20 3A 56 41 4C 0D 20 4F 50 20 24 49 4E 54 20 |P :VAL. OP $INT |
000003D0: 42 46 20 3A 4E 55 4D 20 3A 56 41 4C 20 2A 20 3A |BF :NUM :VAL * :|
000003E0: 42 41 53 45 20 2B 20 44 49 47 56 41 4C 20 46 49 |BASE + DIGVAL FI|
000003F0: 52 53 54 20 3A 4E 55 4D 20 3A 42 41 53 45 0D 45 |RST :NUM :BASE.E|
00000400: 4E 44 0D 0D 54 4F 20 24 32 20 3A 4E 55 4D 0D 20 |ND..TO $2 :NUM. |
00000410: 4F 50 20 24 49 4E 54 20 3A 4E 55 4D 20 30 20 32 |OP $INT :NUM 0 2|
00000420: 0D 45 4E 44 0D 0D 54 4F 20 44 4F 43 20 3A 50 52 |.END..TO DOC :PR|
00000430: 4F 43 0D 20 4C 4F 43 41 4C 20 22 54 45 58 54 20 |OC. LOCAL "TEXT |
00000440: 4D 41 4B 45 20 22 54 45 58 54 20 54 45 58 54 20 |MAKE "TEXT TEXT |
00000450: 3A 50 52 4F 43 0D 20 4C 4F 43 41 4C 20 22 44 4F |:PROC. LOCAL "DO|
00000460: 43 20 4D 41 4B 45 20 22 44 4F 43 20 46 49 52 53 |C MAKE "DOC FIRS|
00000470: 54 20 42 46 20 3A 54 45 58 54 0D 20 28 20 50 52 |T BF :TEXT. ( PR|
00000480: 49 4E 54 20 3A 50 52 4F 43 20 46 49 52 53 54 20 |INT :PROC FIRST |
00000490: 3A 54 45 58 54 20 29 0D 20 49 46 20 22 3B 20 3D |:TEXT ). IF "; =|
000004A0: 20 46 49 52 53 54 20 3A 44 4F 43 20 50 52 49 4E | FIRST :DOC PRIN|
000004B0: 54 20 42 46 20 3A 44 4F 43 0D 45 4E 44 0D 0D 54 |T BF :DOC.END..T|
000004C0: 4F 20 42 41 53 45 20 3A 42 41 53 45 20 3A 4E 55 |O BASE :BASE :NU|
000004D0: 4D 0D 20 3B 20 4F 55 54 50 55 54 53 20 54 48 45 |M. ; OUTPUTS THE|
000004E0: 20 52 45 50 52 45 53 45 4E 54 41 54 49 4F 4E 20 | REPRESENTATION |
000004F0: 4F 46 20 3A 4E 55 4D 20 49 4E 20 3A 42 41 53 45 |OF :NUM IN :BASE|
00000500: 0D 20 49 46 20 3A 4E 55 4D 20 3D 20 30 20 4F 50 |. IF :NUM = 0 OP|
00000510: 20 30 0D 20 4F 50 20 42 41 53 45 31 20 3A 4E 55 | 0. OP BASE1 :NU|
00000520: 4D 0D 45 4E 44 0D 0D 4D 41 4B 45 20 22 53 54 41 |M.END..MAKE "STA|
00000530: 52 54 55 50 20 5B 48 45 4C 50 5D 0D FF FF |RTUP [HELP]... |
. TO HELP. ND. DOC.LIST [BASE BINARY HEX
UNBASE $ E].END..TO DOC.LIST :PROCS. IF
EMPTY? :PROCS STOP. DOC FIRST :PROCS. P
RINT []. DOC.LIST BF :PROCS.END..TO BINA
RY :NUM. ; OUTPUTS THE BINARY REPRESENTA
TION OF A NUMBER. OP BASE 2 :NUM.END..TO
HEX :NUM. ; OUTPUTS THE HEX REPRESENTAT
ION OF A NUMBER. OP BASE 16 :NUM.END..TO
UNBASE :BASE :BNUM. ; OUPUTS THE NUMBER
THAT IS REPRESENTED BY :BNUM (QUOTED WO
RD) IN :BASE. IF :BNUM = 0 OP 0. OP $INT
:BNUM 0 :BASE.END..TO $ :NUM. ; CONVERT
S A HEX NUMBER (QUOTED WORD) TO A NUMBER
. OP $INT :NUM 0 16.END..TO E :ADDR. ; S
HORT FOR .EXAMINE. OP .EXAMINE :ADDR.END
..TO VALDIG :N. IF :N < 10 OP :N. OP CHA
R 55 + :N.END..TO BASE1 :NUM. IF :NUM =
0 OP ". OP WORD BASE1 ( QUOTIENT :NUM :B
ASE ) ( VALDIG REMAINDER :NUM :BASE ).EN
D..TO UNBN1 :NUM. IF :NUM = 0 OP ". OP W
ORD UNB1 QUOTIENT :NUM 2 ( REMAINDER :NU
M 2 ).END..TO DIGVAL :CHAR. IF NUMBER? :
CHAR OP :CHAR. OP - 55 + ASCII :CHAR.END
..TO $INT :NUM :VAL :BASE. IF :NUM = " O
P :VAL. OP $INT BF :NUM :VAL * :BASE + D
IGVAL FIRST :NUM :BASE.END..TO $2 :NUM.
OP $INT :NUM 0 2.END..TO DOC :PROC. LOCA
L "TEXT MAKE "TEXT TEXT :PROC. LOCAL "DO
C MAKE "DOC FIRST BF :TEXT. ( PRINT :PRO
C FIRST :TEXT ). IF "; = FIRST :DOC PRIN
T BF :DOC.END..TO BASE :BASE :NUM. ; OUT
PUTS THE REPRESENTATION OF :NUM IN :BASE
. IF :NUM = 0 OP 0. OP BASE1 :NUM.END..M
AKE "STARTUP [HELP]...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL