_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

ASSEMBLER.LOGO

FILE INFORMATION

FILENAME(S): ASSEMBLER.LOGO

FILE TYPE(S): PRG

FILE SIZE: 3.8K

FIRST SEEN: 2025-11-30 21:12:55

APPEARS ON: 3 disk(s)

FILE HASH

e00fc22172db30b7ffcdc10524298172a07371328e71df6a853a8c9bc9d8c1d4

FOUND ON DISKS (3 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
LOGO NEDERLANDS ASSEMBLER.LOGO PRG DuncanTwain 23 5 DOWNLOAD FILE
LOGO NEDERLANDS ASSEMBLER.LOGO PRG DuncanTwain 23 5 DOWNLOAD FILE
LOGO NEDERLANDS ASSEMBLER.LOGO PRG DuncanTwain 23 5 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 00 20 54 4F 20 21 41 0D  20 57 45 47 20 5B 41 53  |. TO !A. WEG [AS|
00000010: 53 45 4D 42 4C 45 45 52  20 45 52 4E 53 20 53 59  |SEMBLEER ERNS SY|
00000020: 4D 42 4F 4C 53 20 53 59  4D 53 2E 4C 20 41 53 53  |MBOLS SYMS.L ASS|
00000030: 49 47 4E 20 52 45 4C 49  4E 53 3F 20 49 4E 53 3F  |IGN RELINS? INS?|
00000040: 20 49 4D 50 49 4E 53 3F  20 41 4D 4F 44 45 31 20  | IMPINS? AMODE1 |
00000050: 4C 4F 4F 4B 55 50 20 48  49 38 20 4C 4F 38 20 49  |LOOKUP HI8 LO8 I|
00000060: 4E 53 4C 45 4E 20 4F 50  43 4F 44 45 20 49 4E 44  |NSLEN OPCODE IND|
00000070: 45 4E 54 20 41 4D 4F 44  45 20 53 54 4F 52 45 32  |ENT AMODE STORE2|
00000080: 20 45 4D 49 54 20 4C 41  42 45 4C 3F 20 53 54 4F  | EMIT LABEL? STO|
00000090: 52 45 20 53 54 4F 52 45  31 20 4F 50 45 52 41 4E  |RE STORE1 OPERAN|
000000A0: 44 20 52 45 4C 4F 50 45  52 20 4F 50 2E 4C 4F 43  |D RELOPER OP.LOC|
000000B0: 20 45 52 52 4F 52 20 24  31 20 24 20 21 41 5D 0D  | ERROR $1 $ !A].|
000000C0: 20 57 45 47 20 4E 41 4D  45 4E 0D 45 4E 44 0D 0D  | WEG NAMEN.END..|
000000D0: 54 4F 20 41 53 53 45 4D  42 4C 45 45 52 20 3A 43  |TO ASSEMBLEER :C|
000000E0: 4F 44 45 0D 20 41 4C 53  20 57 41 41 52 44 45 3F  |ODE. ALS WAARDE?|
000000F0: 20 22 4C 41 42 45 4C 53  20 45 52 4E 53 20 3A 4C  | "LABELS ERNS :L|
00000100: 41 42 45 4C 53 0D 20 4D  41 41 4B 20 22 4C 41 42  |ABELS. MAAK "LAB|
00000110: 45 4C 53 20 5B 5D 0D 20  53 43 48 52 49 4A 56 45  |ELS []. SCHRIJVE|
00000120: 4E 20 50 52 20 3A 43 4F  44 45 0D 20 4D 41 41 4B  |N PR :CODE. MAAK|
00000130: 20 22 43 4F 44 45 20 4D  45 20 54 45 4B 53 54 20  | "CODE ME TEKST |
00000140: 3A 43 4F 44 45 0D 20 53  59 4D 42 4F 4C 53 20 3A  |:CODE. SYMBOLS :|
00000150: 43 4F 44 45 20 3A 4F 52  47 0D 20 53 54 4F 52 45  |CODE :ORG. STORE|
00000160: 20 3A 43 4F 44 45 20 3A  4F 52 47 0D 45 4E 44 0D  | :CODE :ORG.END.|
00000170: 0D 54 4F 20 45 52 4E 53  20 3A 4E 41 4D 45 4E 0D  |.TO ERNS :NAMEN.|
00000180: 20 41 4C 53 20 3A 4E 41  4D 45 4E 20 3D 20 5B 5D  | ALS :NAMEN = []|
00000190: 20 53 54 4F 50 0D 20 57  45 47 4E 41 41 4D 20 45  | STOP. WEGNAAM E|
000001A0: 45 52 53 54 45 20 3A 4E  41 4D 45 4E 0D 20 45 52  |ERSTE :NAMEN. ER|
000001B0: 4E 53 20 4D 45 20 3A 4E  41 4D 45 4E 0D 45 4E 44  |NS ME :NAMEN.END|
000001C0: 0D 0D 54 4F 20 53 59 4D  42 4F 4C 53 20 3A 43 4F  |..TO SYMBOLS :CO|
000001D0: 44 45 20 3A 44 4F 54 0D  20 41 4C 53 20 3A 43 4F  |DE :DOT. ALS :CO|
000001E0: 44 45 20 3D 20 5B 5D 20  4D 41 41 4B 20 22 45 4E  |DE = [] MAAK "EN|
000001F0: 44 20 3A 44 4F 54 20 2D  20 31 20 53 54 4F 50 0D  |D :DOT - 1 STOP.|
00000200: 20 53 59 4D 42 4F 4C 53  20 4D 45 20 3A 43 4F 44  | SYMBOLS ME :COD|
00000210: 45 20 3A 44 4F 54 20 2B  20 28 20 53 59 4D 53 2E  |E :DOT + ( SYMS.|
00000220: 4C 20 45 45 52 53 54 45  20 3A 43 4F 44 45 20 45  |L EERSTE :CODE E|
00000230: 45 52 53 54 45 20 45 45  52 53 54 45 20 3A 43 4F  |ERSTE EERSTE :CO|
00000240: 44 45 20 29 0D 45 4E 44  0D 0D 54 4F 20 53 59 4D  |DE ).END..TO SYM|
00000250: 53 2E 4C 20 3A 52 45 47  45 4C 20 3A 54 4F 4B 45  |S.L :REGEL :TOKE|
00000260: 4E 0D 20 41 4C 53 20 49  4E 53 3F 20 3A 54 4F 4B  |N. ALS INS? :TOK|
00000270: 45 4E 20 52 45 53 20 49  4E 53 4C 45 4E 20 41 4D  |EN RES INSLEN AM|
00000280: 4F 44 45 20 3A 54 4F 4B  45 4E 20 4D 45 20 3A 52  |ODE :TOKEN ME :R|
00000290: 45 47 45 4C 0D 20 41 4C  53 20 4C 41 42 45 4C 3F  |EGEL. ALS LABEL?|
000002A0: 20 3A 54 4F 4B 45 4E 20  41 53 53 49 47 4E 20 3A  | :TOKEN ASSIGN :|
000002B0: 54 4F 4B 45 4E 20 3A 44  4F 54 20 52 45 53 20 53  |TOKEN :DOT RES S|
000002C0: 59 4D 53 2E 4C 20 4D 45  20 3A 52 45 47 45 4C 20  |YMS.L ME :REGEL |
000002D0: 45 45 52 53 54 45 20 4D  45 20 3A 52 45 47 45 4C  |EERSTE ME :REGEL|
000002E0: 0D 20 41 4C 53 20 4C 49  4A 53 54 3F 20 3A 54 4F  |. ALS LIJST? :TO|
000002F0: 4B 45 4E 20 52 55 4E 20  3A 54 4F 4B 45 4E 20 52  |KEN RUN :TOKEN R|
00000300: 45 53 20 30 0D 20 41 4C  53 20 47 45 54 41 4C 3F  |ES 0. ALS GETAL?|
00000310: 20 3A 54 4F 4B 45 4E 20  52 45 53 20 31 0D 20 45  | :TOKEN RES 1. E|
00000320: 52 52 4F 52 20 3A 54 4F  4B 45 4E 20 5B 47 45 45  |RROR :TOKEN [GEE|
00000330: 4E 20 49 4E 53 54 52 55  4B 54 49 45 5D 0D 45 4E  |N INSTRUKTIE].EN|
00000340: 44 0D 0D 54 4F 20 41 53  53 49 47 4E 20 3A 4C 41  |D..TO ASSIGN :LA|
00000350: 42 45 4C 20 3A 44 49 4E  47 0D 20 4D 41 41 4B 20  |BEL :DING. MAAK |
00000360: 22 4C 41 42 45 4C 20 4D  4C 20 3A 4C 41 42 45 4C  |"LABEL ML :LABEL|
00000370: 0D 20 41 4C 53 20 57 41  41 52 44 45 3F 20 3A 4C  |. ALS WAARDE? :L|
00000380: 41 42 45 4C 20 45 52 52  4F 52 20 3A 4C 41 42 45  |ABEL ERROR :LABE|
00000390: 4C 20 5B 41 4C 20 47 45  42 52 55 49 4B 54 5D 0D  |L [AL GEBRUIKT].|
000003A0: 20 4D 41 41 4B 20 3A 4C  41 42 45 4C 20 3A 44 4F  | MAAK :LABEL :DO|
000003B0: 54 0D 20 4D 41 41 4B 20  22 4C 41 42 45 4C 53 20  |T. MAAK "LABELS |
000003C0: 5A 45 54 56 20 3A 4C 41  42 45 4C 20 3A 4C 41 42  |ZETV :LABEL :LAB|
000003D0: 45 4C 53 0D 45 4E 44 0D  0D 54 4F 20 49 4E 53 3F  |ELS.END..TO INS?|
000003E0: 20 3A 54 4F 4B 45 4E 0D  20 41 4C 53 20 57 41 41  | :TOKEN. ALS WAA|
000003F0: 52 44 45 3F 20 3A 54 4F  4B 45 4E 20 52 45 53 20  |RDE? :TOKEN RES |
00000400: 4C 49 4A 53 54 3F 20 57  41 41 52 44 45 20 3A 54  |LIJST? WAARDE :T|
00000410: 4F 4B 45 4E 0D 20 52 45  53 20 22 4E 49 45 54 57  |OKEN. RES "NIETW|
00000420: 0D 45 4E 44 0D 0D 54 4F  20 4C 4F 4F 4B 55 50 20  |.END..TO LOOKUP |
00000430: 3A 44 49 4E 47 20 3A 50  4C 41 41 54 53 0D 20 41  |:DING :PLAATS. A|
00000440: 4C 53 20 3A 50 4C 41 41  54 53 20 3D 20 5B 5D 20  |LS :PLAATS = [] |
00000450: 45 52 52 4F 52 20 3A 44  49 4E 47 20 5B 56 45 52  |ERROR :DING [VER|
00000460: 4B 45 45 52 44 45 20 4D  4F 44 45 5D 0D 20 41 4C  |KEERDE MODE]. AL|
00000470: 53 20 3A 44 49 4E 47 20  3D 20 45 45 52 53 54 45  |S :DING = EERSTE|
00000480: 20 3A 50 4C 41 41 54 53  20 52 45 53 20 45 45 52  | :PLAATS RES EER|
00000490: 53 54 45 20 4D 45 20 3A  50 4C 41 41 54 53 0D 20  |STE ME :PLAATS. |
000004A0: 52 45 53 20 4C 4F 4F 4B  55 50 20 3A 44 49 4E 47  |RES LOOKUP :DING|
000004B0: 20 4D 45 20 4D 45 20 3A  50 4C 41 41 54 53 0D 45  | ME ME :PLAATS.E|
000004C0: 4E 44 0D 0D 54 4F 20 41  4D 4F 44 45 31 20 3A 56  |ND..TO AMODE1 :V|
000004D0: 44 45 45 4C 20 3A 41 44  45 45 4C 0D 20 41 4C 53  |DEEL :ADEEL. ALS|
000004E0: 20 3A 56 44 45 45 4C 20  3D 20 22 23 20 52 45 53  | :VDEEL = "# RES|
000004F0: 20 4C 4F 4F 4B 55 50 20  4D 45 20 3A 41 44 45 45  | LOOKUP ME :ADEE|
00000500: 4C 20 3A 49 4D 4D 53 0D  20 41 4C 53 20 3A 56 44  |L :IMMS. ALS :VD|
00000510: 45 45 4C 20 3D 20 22 21  20 52 45 53 20 4C 4F 4F  |EEL = "! RES LOO|
00000520: 4B 55 50 20 4D 45 20 3A  41 44 45 45 4C 20 3A 5A  |KUP ME :ADEEL :Z|
00000530: 50 53 0D 20 41 4C 53 20  3A 56 44 45 45 4C 20 3D  |PS. ALS :VDEEL =|
00000540: 20 22 28 20 52 45 53 20  4C 4F 4F 4B 55 50 20 4D  | "( RES LOOKUP M|
00000550: 45 20 3A 41 44 45 45 4C  20 3A 49 4E 44 49 52 53  |E :ADEEL :INDIRS|
00000560: 0D 20 52 45 53 20 4C 4F  4F 4B 55 50 20 3A 41 44  |. RES LOOKUP :AD|
00000570: 45 45 4C 20 3A 49 4E 44  45 58 45 53 0D 45 4E 44  |EEL :INDEXES.END|
00000580: 0D 0D 54 4F 20 49 4D 50  49 4E 53 3F 20 3A 54 4F  |..TO IMPINS? :TO|
00000590: 4B 45 4E 0D 20 41 4C 53  20 49 4E 53 3F 20 3A 54  |KEN. ALS INS? :T|
000005A0: 4F 4B 45 4E 20 52 45 53  20 22 49 4D 50 20 3D 20  |OKEN RES "IMP = |
000005B0: 45 45 52 53 54 45 20 57  41 41 52 44 45 20 3A 54  |EERSTE WAARDE :T|
000005C0: 4F 4B 45 4E 0D 20 52 45  53 20 22 4E 49 45 54 57  |OKEN. RES "NIETW|
000005D0: 0D 45 4E 44 0D 0D 54 4F  20 52 45 4C 49 4E 53 3F  |.END..TO RELINS?|
000005E0: 20 3A 54 4F 4B 45 4E 0D  20 41 4C 53 20 49 4E 53  | :TOKEN. ALS INS|
000005F0: 3F 20 3A 54 4F 4B 45 4E  20 52 45 53 20 22 52 45  |? :TOKEN RES "RE|
00000600: 4C 20 3D 20 45 45 52 53  54 45 20 57 41 41 52 44  |L = EERSTE WAARD|
00000610: 45 20 3A 54 4F 4B 45 4E  0D 20 52 45 53 20 22 4E  |E :TOKEN. RES "N|
00000620: 49 45 54 57 0D 45 4E 44  0D 0D 54 4F 20 48 49 38  |IETW.END..TO HI8|
00000630: 20 3A 4E 0D 20 52 45 53  20 51 55 4F 54 49 45 4E  | :N. RES QUOTIEN|
00000640: 54 20 3A 4E 20 32 35 36  0D 45 4E 44 0D 0D 54 4F  |T :N 256.END..TO|
00000650: 20 4C 4F 38 20 3A 4E 0D  20 52 45 53 20 42 49 54  | LO8 :N. RES BIT|
00000660: 41 4E 44 20 3A 4E 20 32  35 35 0D 45 4E 44 0D 0D  |AND :N 255.END..|
00000670: 54 4F 20 49 4E 53 4C 45  4E 20 3A 4D 4F 44 45 0D  |TO INSLEN :MODE.|
00000680: 20 52 45 53 20 45 45 52  53 54 45 20 57 41 41 52  | RES EERSTE WAAR|
00000690: 44 45 20 3A 4D 4F 44 45  0D 45 4E 44 0D 0D 54 4F  |DE :MODE.END..TO|
000006A0: 20 4F 50 43 4F 44 45 20  3A 49 4E 53 20 3A 4D 4F  | OPCODE :INS :MO|
000006B0: 44 45 0D 20 52 45 53 20  4C 4F 4F 4B 55 50 20 3A  |DE. RES LOOKUP :|
000006C0: 4D 4F 44 45 20 57 41 41  52 44 45 20 3A 49 4E 53  |MODE WAARDE :INS|
000006D0: 0D 45 4E 44 0D 0D 54 4F  20 49 4E 44 45 4E 54 20  |.END..TO INDENT |
000006E0: 3A 53 50 41 54 49 45 53  0D 20 41 4C 53 20 3A 53  |:SPATIES. ALS :S|
000006F0: 50 41 54 49 45 53 20 3C  20 30 20 50 52 49 4E 54  |PATIES < 0 PRINT|
00000700: 31 20 22 27 20 27 20 53  54 4F 50 0D 20 48 45 52  |1 "' ' STOP. HER|
00000710: 48 41 41 4C 20 3A 53 50  41 54 49 45 53 20 5B 50  |HAAL :SPATIES [P|
00000720: 52 49 4E 54 31 20 22 27  20 27 5D 0D 45 4E 44 0D  |RINT1 "' '].END.|
00000730: 0D 54 4F 20 41 4D 4F 44  45 20 3A 54 4F 4B 45 4E  |.TO AMODE :TOKEN|
00000740: 20 3A 41 52 47 53 0D 20  41 4C 53 20 52 45 4C 49  | :ARGS. ALS RELI|
00000750: 4E 53 3F 20 3A 54 4F 4B  45 4E 20 52 45 53 20 22  |NS? :TOKEN RES "|
00000760: 52 45 4C 0D 20 41 4C 53  20 49 4D 50 49 4E 53 3F  |REL. ALS IMPINS?|
00000770: 20 3A 54 4F 4B 45 4E 20  52 45 53 20 22 49 4D 50  | :TOKEN RES "IMP|
00000780: 0D 20 41 4C 53 20 3A 41  52 47 53 20 3D 20 5B 5D  |. ALS :ARGS = []|
00000790: 20 52 45 53 20 22 49 4D  50 0D 20 41 4C 53 20 3A  | RES "IMP. ALS :|
000007A0: 41 52 47 53 20 3D 20 5B  41 5D 20 52 45 53 20 22  |ARGS = [A] RES "|
000007B0: 41 43 43 0D 20 41 4C 53  20 4D 45 20 3A 41 52 47  |ACC. ALS ME :ARG|
000007C0: 53 20 3D 20 5B 5D 20 52  45 53 20 22 41 42 53 0D  |S = [] RES "ABS.|
000007D0: 20 52 45 53 20 41 4D 4F  44 45 31 20 45 45 52 53  | RES AMODE1 EERS|
000007E0: 54 45 20 3A 41 52 47 53  20 4D 45 20 3A 41 52 47  |TE :ARGS ME :ARG|
000007F0: 53 0D 45 4E 44 0D 0D 54  4F 20 53 54 4F 52 45 32  |S.END..TO STORE2|
00000800: 20 3A 52 45 47 45 4C 20  3A 4D 4F 44 45 0D 20 4C  | :REGEL :MODE. L|
00000810: 4F 4B 41 41 4C 20 22 42  59 54 45 20 4C 4F 4B 41  |OKAAL "BYTE LOKA|
00000820: 41 4C 20 22 4C 45 4E 0D  20 4D 41 41 4B 20 22 42  |AL "LEN. MAAK "B|
00000830: 59 54 45 20 4F 50 43 4F  44 45 20 45 45 52 53 54  |YTE OPCODE EERST|
00000840: 45 20 3A 52 45 47 45 4C  20 3A 4D 4F 44 45 0D 20  |E :REGEL :MODE. |
00000850: 4D 41 41 4B 20 22 4C 45  4E 20 49 4E 53 4C 45 4E  |MAAK "LEN INSLEN|
00000860: 20 3A 4D 4F 44 45 0D 20  45 4D 49 54 20 3A 44 4F  | :MODE. EMIT :DO|
00000870: 54 20 3A 42 59 54 45 0D  20 41 4C 53 20 3A 4C 45  |T :BYTE. ALS :LE|
00000880: 4E 20 3D 20 31 20 52 45  53 20 3A 4C 45 4E 0D 20  |N = 1 RES :LEN. |
00000890: 4D 41 41 4B 20 22 42 59  54 45 20 4F 50 45 52 41  |MAAK "BYTE OPERA|
000008A0: 4E 44 20 3A 4D 4F 44 45  20 4D 45 20 3A 52 45 47  |ND :MODE ME :REG|
000008B0: 45 4C 0D 20 41 4C 53 20  3A 4C 45 4E 20 3D 20 32  |EL. ALS :LEN = 2|
000008C0: 20 45 4D 49 54 20 3A 44  4F 54 20 2B 20 31 20 3A  | EMIT :DOT + 1 :|
000008D0: 42 59 54 45 20 52 45 53  20 3A 4C 45 4E 0D 20 45  |BYTE RES :LEN. E|
000008E0: 4D 49 54 20 3A 44 4F 54  20 2B 20 31 20 4C 4F 38  |MIT :DOT + 1 LO8|
000008F0: 20 3A 42 59 54 45 0D 20  45 4D 49 54 20 3A 44 4F  | :BYTE. EMIT :DO|
00000900: 54 20 2B 20 32 20 48 49  38 20 3A 42 59 54 45 0D  |T + 2 HI8 :BYTE.|
00000910: 20 52 45 53 20 3A 4C 45  4E 0D 45 4E 44 0D 0D 54  | RES :LEN.END..T|
00000920: 4F 20 45 4D 49 54 20 3A  44 4F 54 20 3A 42 59 54  |O EMIT :DOT :BYT|
00000930: 45 0D 20 49 4E 44 45 4E  54 20 32 39 20 2D 20 45  |E. INDENT 29 - E|
00000940: 45 52 53 54 45 20 43 55  52 53 4F 52 50 4F 53 0D  |ERSTE CURSORPOS.|
00000950: 20 28 20 50 52 49 4E 54  31 20 3A 44 4F 54 20 22  | ( PRINT1 :DOT "|
00000960: 3D 20 3A 42 59 54 45 20  29 0D 20 50 52 49 4E 54  |= :BYTE ). PRINT|
00000970: 20 5B 5D 0D 20 2E 44 45  50 4F 53 49 54 20 3A 44  | []. .DEPOSIT :D|
00000980: 4F 54 20 3A 42 59 54 45  0D 45 4E 44 0D 0D 54 4F  |OT :BYTE.END..TO|
00000990: 20 4C 41 42 45 4C 3F 20  3A 54 4F 4B 45 4E 0D 20  | LABEL? :TOKEN. |
000009A0: 52 45 53 20 22 3A 20 3D  20 4C 41 41 54 53 54 45  |RES ": = LAATSTE|
000009B0: 20 3A 54 4F 4B 45 4E 0D  45 4E 44 0D 0D 54 4F 20  | :TOKEN.END..TO |
000009C0: 53 54 4F 52 45 20 3A 43  4F 44 45 20 3A 44 4F 54  |STORE :CODE :DOT|
000009D0: 0D 20 41 4C 53 20 3A 43  4F 44 45 20 3D 20 5B 5D  |. ALS :CODE = []|
000009E0: 20 53 54 4F 50 0D 20 53  54 4F 52 45 31 20 45 45  | STOP. STORE1 EE|
000009F0: 52 53 54 45 20 3A 43 4F  44 45 20 45 45 52 53 54  |RSTE :CODE EERST|
00000A00: 45 20 45 45 52 53 54 45  20 3A 43 4F 44 45 0D 45  |E EERSTE :CODE.E|
00000A10: 4E 44 0D 0D 54 4F 20 53  54 4F 52 45 31 20 3A 52  |ND..TO STORE1 :R|
00000A20: 45 47 45 4C 20 3A 54 4F  4B 45 4E 0D 20 50 52 49  |EGEL :TOKEN. PRI|
00000A30: 4E 54 31 20 3A 52 45 47  45 4C 0D 20 41 4C 53 20  |NT1 :REGEL. ALS |
00000A40: 4C 49 4A 53 54 3F 20 3A  54 4F 4B 45 4E 20 50 52  |LIJST? :TOKEN PR|
00000A50: 49 4E 54 20 5B 5D 20 53  54 4F 52 45 20 4D 45 20  |INT [] STORE ME |
00000A60: 3A 43 4F 44 45 20 3A 44  4F 54 20 53 54 4F 50 0D  |:CODE :DOT STOP.|
00000A70: 20 41 4C 53 20 4C 41 42  45 4C 3F 20 3A 54 4F 4B  | ALS LABEL? :TOK|
00000A80: 45 4E 20 4D 41 41 4B 20  22 52 45 47 45 4C 20 4D  |EN MAAK "REGEL M|
00000A90: 45 20 3A 52 45 47 45 4C  20 4D 41 41 4B 20 22 54  |E :REGEL MAAK "T|
00000AA0: 4F 4B 45 4E 20 45 45 52  53 54 45 20 3A 52 45 47  |OKEN EERSTE :REG|
00000AB0: 45 4C 0D 20 41 4C 53 20  47 45 54 41 4C 3F 20 3A  |EL. ALS GETAL? :|
00000AC0: 54 4F 4B 45 4E 20 45 4D  49 54 20 3A 44 4F 54 20  |TOKEN EMIT :DOT |
00000AD0: 3A 54 4F 4B 45 4E 20 53  54 4F 52 45 20 4D 45 20  |:TOKEN STORE ME |
00000AE0: 3A 43 4F 44 45 20 3A 44  4F 54 20 2B 20 31 20 53  |:CODE :DOT + 1 S|
00000AF0: 54 4F 50 0D 20 53 54 4F  52 45 20 4D 45 20 3A 43  |TOP. STORE ME :C|
00000B00: 4F 44 45 20 3A 44 4F 54  20 2B 20 28 20 53 54 4F  |ODE :DOT + ( STO|
00000B10: 52 45 32 20 3A 52 45 47  45 4C 20 28 20 41 4D 4F  |RE2 :REGEL ( AMO|
00000B20: 44 45 20 3A 54 4F 4B 45  4E 20 4D 45 20 3A 52 45  |DE :TOKEN ME :RE|
00000B30: 47 45 4C 20 29 20 29 0D  45 4E 44 0D 0D 54 4F 20  |GEL ) ).END..TO |
00000B40: 4F 50 45 52 41 4E 44 20  3A 4D 4F 44 45 20 3A 41  |OPERAND :MODE :A|
00000B50: 52 47 53 0D 20 41 4C 53  20 3A 4D 4F 44 45 20 3D  |RGS. ALS :MODE =|
00000B60: 20 22 52 45 4C 20 52 45  53 20 52 45 4C 4F 50 45  | "REL RES RELOPE|
00000B70: 52 0D 20 4D 41 41 4B 20  22 41 52 47 53 20 45 4C  |R. MAAK "ARGS EL|
00000B80: 45 4D 45 4E 54 20 28 20  4F 50 2E 4C 4F 43 20 3A  |EMENT ( OP.LOC :|
00000B90: 4D 4F 44 45 20 29 20 3A  41 52 47 53 0D 20 41 4C  |MODE ) :ARGS. AL|
00000BA0: 53 20 4C 49 4A 53 54 3F  20 3A 41 52 47 53 20 52  |S LIJST? :ARGS R|
00000BB0: 45 53 20 52 55 4E 20 3A  41 52 47 53 0D 20 41 4C  |ES RUN :ARGS. AL|
00000BC0: 53 20 47 45 54 41 4C 3F  20 3A 41 52 47 53 20 52  |S GETAL? :ARGS R|
00000BD0: 45 53 20 3A 41 52 47 53  0D 20 41 4C 53 20 45 45  |ES :ARGS. ALS EE|
00000BE0: 52 53 54 45 20 3A 41 52  47 53 20 3D 20 22 22 20  |RSTE :ARGS = "" |
00000BF0: 52 45 53 20 41 53 43 49  49 20 4D 45 20 3A 41 52  |RES ASCII ME :AR|
00000C00: 47 53 0D 20 41 4C 53 20  57 41 41 52 44 45 3F 20  |GS. ALS WAARDE? |
00000C10: 3A 41 52 47 53 20 52 45  53 20 57 41 41 52 44 45  |:ARGS RES WAARDE|
00000C20: 20 3A 41 52 47 53 0D 20  45 52 52 4F 52 20 3A 41  | :ARGS. ERROR :A|
00000C30: 52 47 53 20 5B 47 45 45  4E 20 4C 41 42 45 4C 5D  |RGS [GEEN LABEL]|
00000C40: 0D 45 4E 44 0D 0D 54 4F  20 52 45 4C 4F 50 45 52  |.END..TO RELOPER|
00000C50: 0D 20 4D 41 41 4B 20 22  41 52 47 53 20 28 20 4F  |. MAAK "ARGS ( O|
00000C60: 50 45 52 41 4E 44 20 22  41 42 53 20 3A 41 52 47  |PERAND "ABS :ARG|
00000C70: 53 20 29 20 2D 20 3A 44  4F 54 20 2D 20 32 0D 20  |S ) - :DOT - 2. |
00000C80: 41 4C 53 20 3A 41 52 47  53 20 3C 20 30 20 52 45  |ALS :ARGS < 0 RE|
00000C90: 53 20 32 35 36 20 2B 20  3A 41 52 47 53 20 41 4E  |S 256 + :ARGS AN|
00000CA0: 44 45 52 53 20 52 45 53  20 3A 41 52 47 53 0D 45  |DERS RES :ARGS.E|
00000CB0: 4E 44 0D 0D 54 4F 20 4F  50 2E 4C 4F 43 20 3A 4D  |ND..TO OP.LOC :M|
00000CC0: 4F 44 45 0D 20 52 45 53  20 45 45 52 53 54 45 20  |ODE. RES EERSTE |
00000CD0: 4D 45 20 57 41 41 52 44  45 20 3A 4D 4F 44 45 0D  |ME WAARDE :MODE.|
00000CE0: 45 4E 44 0D 0D 54 4F 20  45 52 52 4F 52 20 3A 41  |END..TO ERROR :A|
00000CF0: 20 3A 42 0D 20 28 20 50  52 49 4E 54 20 5B 49 4E  | :B. ( PRINT [IN|
00000D00: 20 52 45 47 45 4C 5D 20  3A 52 45 47 45 4C 20 29  | REGEL] :REGEL )|
00000D10: 0D 20 28 20 50 52 49 4E  54 20 3A 41 20 3A 42 20  |. ( PRINT :A :B |
00000D20: 29 0D 20 41 46 47 45 4C  4F 50 45 4E 0D 45 4E 44  |). AFGELOPEN.END|
00000D30: 0D 0D 54 4F 20 24 31 20  3A 57 4F 4F 52 44 20 3A  |..TO $1 :WOORD :|
00000D40: 56 41 4C 0D 20 41 4C 53  20 3A 57 4F 4F 52 44 20  |VAL. ALS :WOORD |
00000D50: 3D 20 22 20 52 45 53 20  3A 56 41 4C 0D 20 41 4C  |= " RES :VAL. AL|
00000D60: 53 20 47 45 54 41 4C 3F  20 45 45 52 53 54 45 20  |S GETAL? EERSTE |
00000D70: 3A 57 4F 4F 52 44 20 52  45 53 20 24 31 20 4D 45  |:WOORD RES $1 ME|
00000D80: 20 3A 57 4F 4F 52 44 20  3A 56 41 4C 20 2A 20 3A  | :WOORD :VAL * :|
00000D90: 24 42 41 53 45 20 2B 20  45 45 52 53 54 45 20 3A  |$BASE + EERSTE :|
00000DA0: 57 4F 4F 52 44 0D 20 4C  4F 4B 41 41 4C 20 22 44  |WOORD. LOKAAL "D|
00000DB0: 49 47 49 54 0D 20 4D 41  41 4B 20 22 44 49 47 49  |IGIT. MAAK "DIGI|
00000DC0: 54 20 28 20 41 53 43 49  49 20 45 45 52 53 54 45  |T ( ASCII EERSTE|
00000DD0: 20 3A 57 4F 4F 52 44 20  29 20 2D 20 35 35 0D 20  | :WOORD ) - 55. |
00000DE0: 41 4C 53 20 45 45 4E 56  41 4E 20 3A 44 49 47 49  |ALS EENVAN :DIGI|
00000DF0: 54 20 3C 20 30 20 3A 44  49 47 49 54 20 2D 20 31  |T < 0 :DIGIT - 1|
00000E00: 20 3E 20 3A 24 42 41 53  45 20 45 52 52 4F 52 20  | > :$BASE ERROR |
00000E10: 45 45 52 53 54 45 20 3A  57 4F 4F 52 44 20 5B 47  |EERSTE :WOORD [G|
00000E20: 45 45 4E 20 47 45 54 41  4C 5D 0D 20 52 45 53 20  |EEN GETAL]. RES |
00000E30: 24 31 20 4D 45 20 3A 57  4F 4F 52 44 20 3A 56 41  |$1 ME :WOORD :VA|
00000E40: 4C 20 2A 20 3A 24 42 41  53 45 20 2B 20 3A 44 49  |L * :$BASE + :DI|
00000E50: 47 49 54 0D 45 4E 44 0D  0D 54 4F 20 24 20 3A 57  |GIT.END..TO $ :W|
00000E60: 4F 4F 52 44 0D 20 52 45  53 20 24 31 20 3A 57 4F  |OORD. RES $1 :WO|
00000E70: 4F 52 44 20 30 0D 45 4E  44 0D 0D 54 4F 20 5A 45  |ORD 0.END..TO ZE|
00000E80: 54 4F 50 0D 20 4D 41 41  4B 20 22 24 42 41 53 45  |TOP. MAAK "$BASE|
00000E90: 20 31 36 0D 20 4C 41 41  44 20 22 41 4D 4F 44 45  | 16. LAAD "AMODE|
00000EA0: 53 0D 20 4C 41 41 44 20  22 4F 50 43 4F 44 45 53  |S. LAAD "OPCODES|
00000EB0: 0D 20 4D 41 41 4B 20 22  4F 52 47 20 24 20 22 43  |. MAAK "ORG $ "C|
00000EC0: 34 30 0D 20 4C 41 41 44  20 22 41 44 52 45 53 53  |40. LAAD "ADRESS|
00000ED0: 45 4E 0D 20 57 45 47 4E  41 41 4D 20 22 53 54 41  |EN. WEGNAAM "STA|
00000EE0: 52 54 4F 50 0D 20 57 45  47 20 5A 45 54 4F 50 0D  |RTOP. WEG ZETOP.|
00000EF0: 45 4E 44 0D 0D 4D 41 41  4B 20 22 53 54 41 52 54  |END..MAAK "START|
00000F00: 4F 50 20 5B 5A 45 54 4F  50 5D 0D                 |OP [ZETOP].     |
. TO !A. WEG [ASSEMBLEER ERNS SYMBOLS SY
MS.L ASSIGN RELINS? INS? IMPINS? AMODE1 
LOOKUP HI8 LO8 INSLEN OPCODE INDENT AMOD
E STORE2 EMIT LABEL? STORE STORE1 OPERAN
D RELOPER OP.LOC ERROR $1 $ !A]. WEG NAM
EN.END..TO ASSEMBLEER :CODE. ALS WAARDE?
 "LABELS ERNS :LABELS. MAAK "LABELS []. 
SCHRIJVEN PR :CODE. MAAK "CODE ME TEKST 
:CODE. SYMBOLS :CODE :ORG. STORE :CODE :
ORG.END..TO ERNS :NAMEN. ALS :NAMEN = []
 STOP. WEGNAAM EERSTE :NAMEN. ERNS ME :N
AMEN.END..TO SYMBOLS :CODE :DOT. ALS :CO
DE = [] MAAK "END :DOT - 1 STOP. SYMBOLS
 ME :CODE :DOT + ( SYMS.L EERSTE :CODE E
ERSTE EERSTE :CODE ).END..TO SYMS.L :REG
EL :TOKEN. ALS INS? :TOKEN RES INSLEN AM
ODE :TOKEN ME :REGEL. ALS LABEL? :TOKEN 
ASSIGN :TOKEN :DOT RES SYMS.L ME :REGEL 
EERSTE ME :REGEL. ALS LIJST? :TOKEN RUN 
:TOKEN RES 0. ALS GETAL? :TOKEN RES 1. E
RROR :TOKEN [GEEN INSTRUKTIE].END..TO AS
SIGN :LABEL :DING. MAAK "LABEL ML :LABEL
. ALS WAARDE? :LABEL ERROR :LABEL [AL GE
BRUIKT]. MAAK :LABEL :DOT. MAAK "LABELS 
ZETV :LABEL :LABELS.END..TO INS? :TOKEN.
 ALS WAARDE? :TOKEN RES LIJST? WAARDE :T
OKEN. RES "NIETW.END..TO LOOKUP :DING :P
LAATS. ALS :PLAATS = [] ERROR :DING [VER
KEERDE MODE]. ALS :DING = EERSTE :PLAATS
 RES EERSTE ME :PLAATS. RES LOOKUP :DING
 ME ME :PLAATS.END..TO AMODE1 :VDEEL :AD
EEL. ALS :VDEEL = "# RES LOOKUP ME :ADEE
L :IMMS. ALS :VDEEL = "! RES LOOKUP ME :
ADEEL :ZPS. ALS :VDEEL = "( RES LOOKUP M
E :ADEEL :INDIRS. RES LOOKUP :ADEEL :IND
EXES.END..TO IMPINS? :TOKEN. ALS INS? :T
OKEN RES "IMP = EERSTE WAARDE :TOKEN. RE
S "NIETW.END..TO RELINS? :TOKEN. ALS INS
? :TOKEN RES "REL = EERSTE WAARDE :TOKEN
. RES "NIETW.END..TO HI8 :N. RES QUOTIEN
T :N 256.END..TO LO8 :N. RES BITAND :N 2
55.END..TO INSLEN :MODE. RES EERSTE WAAR
DE :MODE.END..TO OPCODE :INS :MODE. RES 
LOOKUP :MODE WAARDE :INS.END..TO INDENT 
:SPATIES. ALS :SPATIES < 0 PRINT1 "' ' S
TOP. HERHAAL :SPATIES [PRINT1 "' '].END.
.TO AMODE :TOKEN :ARGS. ALS RELINS? :TOK
EN RES "REL. ALS IMPINS? :TOKEN RES "IMP
. ALS :ARGS = [] RES "IMP. ALS :ARGS = [
A] RES "ACC. ALS ME :ARGS = [] RES "ABS.
 RES AMODE1 EERSTE :ARGS ME :ARGS.END..T
O STORE2 :REGEL :MODE. LOKAAL "BYTE LOKA
AL "LEN. MAAK "BYTE OPCODE EERSTE :REGEL
 :MODE. MAAK "LEN INSLEN :MODE. EMIT :DO
T :BYTE. ALS :LEN = 1 RES :LEN. MAAK "BY
TE OPERAND :MODE ME :REGEL. ALS :LEN = 2
 EMIT :DOT + 1 :BYTE RES :LEN. EMIT :DOT
 + 1 LO8 :BYTE. EMIT :DOT + 2 HI8 :BYTE.
 RES :LEN.END..TO EMIT :DOT :BYTE. INDEN
T 29 - EERSTE CURSORPOS. ( PRINT1 :DOT "
= :BYTE ). PRINT []. .DEPOSIT :DOT :BYTE
.END..TO LABEL? :TOKEN. RES ": = LAATSTE
 :TOKEN.END..TO STORE :CODE :DOT. ALS :C
ODE = [] STOP. STORE1 EERSTE :CODE EERST
E EERSTE :CODE.END..TO STORE1 :REGEL :TO
KEN. PRINT1 :REGEL. ALS LIJST? :TOKEN PR
INT [] STORE ME :CODE :DOT STOP. ALS LAB
EL? :TOKEN MAAK "REGEL ME :REGEL MAAK "T
OKEN EERSTE :REGEL. ALS GETAL? :TOKEN EM
IT :DOT :TOKEN STORE ME :CODE :DOT + 1 S
TOP. STORE ME :CODE :DOT + ( STORE2 :REG
EL ( AMODE :TOKEN ME :REGEL ) ).END..TO 
OPERAND :MODE :ARGS. ALS :MODE = "REL RE
S RELOPER. MAAK "ARGS ELEMENT ( OP.LOC :
MODE ) :ARGS. ALS LIJST? :ARGS RES RUN :
ARGS. ALS GETAL? :ARGS RES :ARGS. ALS EE
RSTE :ARGS = "" RES ASCII ME :ARGS. ALS 
WAARDE? :ARGS RES WAARDE :ARGS. ERROR :A
RGS [GEEN LABEL].END..TO RELOPER. MAAK "
ARGS ( OPERAND "ABS :ARGS ) - :DOT - 2. 
ALS :ARGS < 0 RES 256 + :ARGS ANDERS RES
 :ARGS.END..TO OP.LOC :MODE. RES EERSTE 
ME WAARDE :MODE.END..TO ERROR :A :B. ( P
RINT [IN REGEL] :REGEL ). ( PRINT :A :B 
). AFGELOPEN.END..TO $1 :WOORD :VAL. ALS
 :WOORD = " RES :VAL. ALS GETAL? EERSTE 
:WOORD RES $1 ME :WOORD :VAL * :$BASE + 
EERSTE :WOORD. LOKAAL "DIGIT. MAAK "DIGI
T ( ASCII EERSTE :WOORD ) - 55. ALS EENV
AN :DIGIT < 0 :DIGIT - 1 > :$BASE ERROR 
EERSTE :WOORD [GEEN GETAL]. RES $1 ME :W
OORD :VAL * :$BASE + :DIGIT.END..TO $ :W
OORD. RES $1 :WOORD 0.END..TO ZETOP. MAA
K "$BASE 16. LAAD "AMODES. LAAD "OPCODES
. MAAK "ORG $ "C40. LAAD "ADRESSEN. WEGN
AAM "STARTOP. WEG ZETOP.END..MAAK "START
OP [ZETOP].
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL