Rev 539 | Blame | Compare with Previous | Last modification | View Log | Download
# file opened: label_as_name.asm1 0000 ;; classic syntax (name is after MACRO directive)2 0000 MACRO classicNameNoArg3 0000 ~ dz "classic-no-arg\n"4 0000 ENDM5 0000 MACRO classicNameOneArg arg1?6 0000 ~ db "classic-1-arg: ", arg1?, "\n", 07 0000 ENDM8 0000 MACRO classicNameTwoArg arg1?, arg2?9 0000 ~ db "classic-2-arg: ", arg1?, arg2?, "\n", 010 0000 ENDM11 000012 0000 ;; new optional syntax (label on MACRO line is used as macro name)13 0000 newNameNoArg MACRO14 0000 ~ dz "new-no-arg\n"15 0000 ENDM16 0000 newNameOneArg MACRO arg1?17 0000 ~ db "new-1-arg: ", arg1?, "\n", 018 0000 ENDM19 0000 newNameTwoArg MACRO arg1?, arg2?20 0000 ~ db "new-1-arg: ", arg1?, arg2?, "\n", 021 0000 ENDM22 000023 0000 ;; but label doesn't work over colon separator24 0000 Label24 0000 MACRO nameOrArg?25 0000 ~ dz "name-or-arg as name\n"26 0000 ENDM27 000028 0000 ;; DEFL labels also don't work, even without colonlabel_as_name.asm(29): error: Unexpected: MACRO nameOrArg2?29 0000 Babel = 2 MACRO nameOrArg2?30 0000 ; dz "name-or-arg2 as name\n"label_as_name.asm(31): error: [ENDM] End macro without macro31 0000 ENDM32 000033 0000 MODULE module1 ; first version did use "module1" as part of macro name - now fixed+tested34 000035 0000 newInModule MACRO arg1?36 0000 ~ db "in-module-new-1-arg: ", arg1?, "\n", 037 0000 ENDM38 000039 0000 MACRO classicInModule arg1?40 0000 ~ db "in-module-classic-1-arg: ", arg1?, "\n", 041 0000 ENDM42 000043 0000 ENDMODULE44 000045 0000 OUTPUT "label_as_name.bin" ; verify defined macros (by checking bin output)46 0000 classicNameNoArg46 0000 63 6C 61 73 > dz "classic-no-arg\n"46 0004 73 69 63 2D >46 0008 6E 6F 2D 61 >46 000C 72 67 0A 00 >46 0010 classicNameOneArg 'a'46 0010 63 6C 61 73 > db "classic-1-arg: ", 'a', "\n", 046 0014 73 69 63 2D >46 0018 31 2D 61 72 >46 001C 67 3A 20 61 >46 0020 0A 00 >46 0022 classicNameTwoArg 'b', 'c'46 0022 63 6C 61 73 > db "classic-2-arg: ", 'b', 'c', "\n", 046 0026 73 69 63 2D >46 002A 32 2D 61 72 >46 002E 67 3A 20 62 >46 0032 63 0A 00 >47 0035 newNameNoArg47 0035 6E 65 77 2D > dz "new-no-arg\n"47 0039 6E 6F 2D 61 >47 003D 72 67 0A 00 >47 0041 newNameOneArg 'a'47 0041 6E 65 77 2D > db "new-1-arg: ", 'a', "\n", 047 0045 31 2D 61 72 >47 0049 67 3A 20 61 >47 004D 0A 00 >47 004F newNameTwoArg 'b', 'c'47 004F 6E 65 77 2D > db "new-1-arg: ", 'b', 'c', "\n", 047 0053 31 2D 61 72 >47 0057 67 3A 20 62 >47 005B 63 0A 00 >48 005E nameOrArg?48 005E 6E 61 6D 65 > dz "name-or-arg as name\n"48 0062 2D 6F 72 2D >48 0066 61 72 67 20 >48 006A 61 73 20 6E >48 006E 61 6D 65 0A >48 0072 00 >label_as_name.asm(48): error: Unrecognized instruction: nameOrArg2?48 0073 nameOrArg2?49 0073 newInModule 'm'49 0073 69 6E 2D 6D > db "in-module-new-1-arg: ", 'm', "\n", 049 0077 6F 64 75 6C >49 007B 65 2D 6E 65 >49 007F 77 2D 31 2D >49 0083 61 72 67 3A >49 0087 20 6D 0A 00 >49 008B classicInModule 'M'49 008B 69 6E 2D 6D > db "in-module-classic-1-arg: ", 'M', "\n", 049 008F 6F 64 75 6C >49 0093 65 2D 63 6C >49 0097 61 73 73 69 >49 009B 63 2D 31 2D >49 009F 61 72 67 3A >49 00A3 20 4D 0A 00 >50 00A751 00A7 ;; invalid macro nameslabel_as_name.asm(52): error: [MACRO] Illegal macroname: @invalidClassic52 00A7 MACRO @invalidClassic ; no need for "ENDM" due to errorlabel_as_name.asm(53): error: [MACRO] Illegal macroname: @invalidNew53 00A7 @invalidNew MACRO54 00A7label_as_name.asm(55): error: [MACRO] Illegal macroname: #invalidClassic2 arg1?55 00A7 MACRO #invalidClassic2 arg1? ; no need for "ENDM" due to errorlabel_as_name.asm(56): error: [MACRO] Illegal macroname: #invalidNew256 00A7 #invalidNew2 MACRO arg1?57 00A7label_as_name.asm(58): error: [MACRO] Illegal macroname: trailingChar$58 00A7 trailingChar$ MACRO arg159 00A7label_as_name.asm(60): error: [MACRO] Illegal macroname: trailingChar$ arg160 00A7 MACRO trailingChar$ arg161 00A7# file closed: label_as_name.asmValue Label------ - -----------------------------------------------------------0x0002 X Babel0x0000 X Label