00000000: 28 20 43 4F 44 45 2C 20 3B 43 4F 44 45 2C 20 4F |( CODE, ;CODE, O|
00000010: 50 45 52 41 4E 44 20 29 20 48 45 58 20 20 20 20 |PERAND ) HEX |
00000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000050: 46 4F 52 54 48 20 44 45 46 49 4E 49 54 49 4F 4E |FORTH DEFINITION|
00000060: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |S |
00000070: 20 20 20 20 20 20 20 20 3A 20 43 4F 44 45 20 3F | : CODE ?|
00000080: 45 58 45 43 20 43 52 45 41 54 45 20 53 4D 55 44 |EXEC CREATE SMUD|
00000090: 47 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |GE |
000000A0: 20 20 20 5B 43 4F 4D 50 49 4C 45 5D 20 41 53 53 | [COMPILE] ASS|
000000B0: 45 4D 42 4C 45 52 20 20 20 21 43 53 50 20 4C 41 |EMBLER !CSP LA|
000000C0: 54 45 53 54 20 20 20 20 20 20 20 50 46 41 20 44 |TEST PFA D|
000000D0: 55 50 20 32 20 2D 20 21 20 3B 20 20 20 20 20 20 |UP 2 - ! ; |
000000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000110: 20 20 20 20 20 20 20 20 28 20 3B 43 4F 44 45 20 | ( ;CODE |
00000120: 49 53 20 41 4C 52 45 41 44 59 20 44 45 46 49 4E |IS ALREADY DEFIN|
00000130: 45 44 20 49 4E 20 54 48 45 20 46 4F 52 54 48 20 |ED IN THE FORTH |
00000140: 20 20 4B 45 52 4E 41 4C 2E 20 20 4A 55 53 54 20 | KERNAL. JUST |
00000150: 52 45 44 45 46 49 4E 45 20 54 4F 20 49 4E 56 4F |REDEFINE TO INVO|
00000160: 4B 45 20 54 48 45 20 20 20 20 41 53 53 45 4D 42 |KE THE ASSEMB|
00000170: 4C 45 52 20 56 4F 43 41 42 55 4C 41 52 59 20 29 |LER VOCABULARY )|
00000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000001B0: 20 20 20 20 20 20 20 20 3A 20 3B 43 4F 44 45 20 | : ;CODE |
000001C0: 5B 43 4F 4D 50 49 4C 45 5D 20 41 53 53 45 4D 42 |[COMPILE] ASSEMB|
000001D0: 4C 45 52 20 20 20 20 20 20 20 20 20 20 20 20 20 |LER |
000001E0: 20 20 20 20 20 20 20 20 5B 43 4F 4D 50 49 4C 45 | [COMPILE|
000001F0: 5D 20 3B 43 4F 44 45 20 20 3B 20 20 49 4D 4D 45 |] ;CODE ; IMME|
00000200: 44 49 41 54 45 20 20 20 41 53 53 45 4D 42 4C 45 |DIATE ASSEMBLE|
00000210: 52 20 44 45 46 49 4E 49 54 49 4F 4E 53 20 20 20 |R DEFINITIONS |
00000220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000280: 28 20 46 45 54 43 48 20 43 46 41 20 4F 46 20 50 |( FETCH CFA OF P|
00000290: 52 4F 50 45 52 20 41 44 44 52 45 53 53 20 4D 4F |ROPER ADDRESS MO|
000002A0: 44 45 29 20 20 20 20 20 28 20 41 44 4D 41 53 4B |DE) ( ADMASK|
000002B0: 20 4F 50 42 41 53 45 20 2D 2D 2D 20 41 44 4D 41 | OPBASE --- ADMA|
000002C0: 53 4B 20 4F 50 42 41 53 45 20 43 46 41 20 29 20 |SK OPBASE CFA ) |
000002D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000002E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000002F0: 20 20 20 20 20 20 20 20 3A 20 4F 50 45 52 41 4E | : OPERAN|
00000300: 44 20 4F 56 45 52 20 4D 4F 44 45 20 40 20 41 4E |D OVER MODE @ AN|
00000310: 44 20 30 20 31 30 20 30 20 44 4F 20 20 20 20 20 |D 0 10 0 DO |
00000320: 20 20 53 57 41 50 20 44 55 50 20 31 20 41 4E 44 | SWAP DUP 1 AND|
00000330: 20 49 46 20 4C 45 41 56 45 20 53 57 41 50 20 45 | IF LEAVE SWAP E|
00000340: 4C 53 45 20 20 20 20 20 20 20 32 2F 20 53 57 41 |LSE 2/ SWA|
00000350: 50 20 32 2B 20 54 48 45 4E 20 4C 4F 4F 50 20 53 |P 2+ THEN LOOP S|
00000360: 57 41 50 20 44 52 4F 50 20 20 20 20 20 20 20 20 |WAP DROP |
00000370: 20 20 4F 50 4A 54 42 4C 20 2B 20 40 20 3B 20 20 | OPJTBL + @ ; |
00000380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000003A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000003B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000003C0: 44 45 43 49 4D 41 4C 20 20 2D 2D 3E 20 20 20 20 |DECIMAL --> |
000003D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000003E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000003F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
( CODE, ;CODE, OPERAND ) HEX
FORTH DEFINITIONS
: CODE ?EXEC CREATE SMUDGE
[COMPILE] ASSEMBLER !CSP LATEST
PFA DUP 2 - ! ;
( ;CODE IS ALREADY DEFINED IN THE FORTH
KERNAL. JUST REDEFINE TO INVOKE THE
ASSEMBLER VOCABULARY )
: ;CODE [COMPILE] ASSEMBLER
[COMPILE] ;CODE ; IMMEDIATE
ASSEMBLER DEFINITIONS
( FETCH CFA OF PROPER ADDRESS MODE)
( ADMASK OPBASE --- ADMASK OPBASE CFA )
: OPERAND OVER MODE @ AND 0 10 0 DO
SWAP DUP 1 AND IF LEAVE SWAP ELSE
2/ SWAP 2+ THEN LOOP SWAP DROP
OPJTBL + @ ;
DECIMAL -->
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL