diff --git a/asm/macros/script.inc b/asm/macros/script.inc new file mode 100644 index 00000000..cfe4328f --- /dev/null +++ b/asm/macros/script.inc @@ -0,0 +1,217 @@ +@ All the macro functions for scripts +@ Generated by disassemble_script.py +.macro SCRIPT_START name + .globl \name + .section .rodata +\name: +.endm + +.macro SCRIPT_END + .short 0xffff +.endm + +.macro nullsub_507 + .short 0x0400 +.endm + +.macro sub_0807E004 + .short 0x0401 +.endm + +.macro sub_0807E014 + .short 0x0402 +.endm + +.macro sub_0807E024 s + .short 0x0803 + .short \s +.endm + +.macro sub_0807E050 s + .short 0x0804 + .short \s +.endm + +.macro sub_0807E064 s + .short 0x0805 + .short \s +.endm + +.macro sub_0807E078 s + .short 0x0806 + .short \s +.endm + +.macro sub_0807E0A0 w + .short 0x0c07 + .word \w +.endm + +.macro sub_0807E0B8 w + .short 0x0c08 + .word \w +.endm + +.macro sub_0807E0CC w + .short 0x0c09 + .word \w +.endm + +.macro sub_0807E0E0 w + .short 0x0c0a + .word \w +.endm + +.macro sub_0807E10C w + .short 0x0c0b + .word \w +.endm + +.macro sub_0807E124 a,b + .short 0x140c + .word \a + .word \b +.endm + +.macro sub_0807E148 w + .short 0x0c0d + .word \w +.endm + +.macro sub_0807E158 w + .short 0x0c0e + .word \w +.endm + +.macro sub_0807E188 s + .short 0x080f + .short \s +.endm + +.macro sub_0807E1D8 s + .short 0x0810 + .short \s +.endm + +.macro sub_0807E4AC s + .short 0x0811 + .short \s +.endm + +.macro sub_0807E260 s + .short 0x0815 + .short \s +.endm + +.macro sub_0807E2A8 s + .short 0x0817 + .short \s +.endm + +.macro sub_0807E2E4 + .short 0x0418 +.endm + +.macro sub_0807E5F8 w + .short 0x0c28 + .word \w +.endm + +.macro sub_0807E680 s + .short 0x0831 + .short \s +.endm + +.macro sub_0807E6AC w + .short 0x0c33 + .word \w +.endm + +.macro sub_0807E864 + .short 0x0443 +.endm + +.macro sub_0807E878 + .short 0x0444 +.endm + +.macro sub_0807E8C4 w + .short 0x0c47 + .word \w +.endm + +.macro sub_0807E8E4_0 + .short 0x0449 +.endm + +.macro sub_0807E8E4_1 + .short 0x044a +.endm + +.macro sub_0807E8E4_2 + .short 0x044b +.endm + +.macro sub_0807E8E4_3 + .short 0x044c +.endm + +.macro sub_0807E930 s + .short 0x0850 + .short \s +.endm + +.macro sub_0807E9D4 + .short 0x0453 +.endm + +.macro sub_0807E9DC + .short 0x0454 +.endm + +.macro sub_0807EA94 + .short 0x0459 +.endm + +.macro sub_0807EAD0 a,b + .short 0x0c5c + .short \a + .short \b +.endm + +.macro sub_0807EB28 s + .short 0x085f + .short \s +.endm + +.macro sub_0807EB8C + .short 0x0464 +.endm + +.macro sub_0807EBC0 param + .short 0x0867 + .short \param +.endm + +.macro sub_0807EC1C s + .short 0x086d + .short \s +.endm + +.macro sub_0807EE30 + .short 0x0475 +.endm + +.macro sub_0807EF80 s + .short 0x0879 + .short \s +.endm + +.macro sub_0807EFAC s + .short 0x087c + .short \s +.endm + +.macro sub_0807EFE4 + .short 0x047e +.endm diff --git a/data/scripts/ezlo_angry.s b/data/scripts/ezlo_angry.s new file mode 100644 index 00000000..b8a3f705 --- /dev/null +++ b/data/scripts/ezlo_angry.s @@ -0,0 +1,233 @@ +.include "asm/macros/script.inc" + +SCRIPT_START gUnk_080126FC +sub_0807E004 +sub_0807EBC0 0x0040 +sub_0807EF80 0x0007 +sub_0807E014 +sub_0807E930 0x0020 +sub_0807E6AC 0x00000004 +sub_0807E930 0x0022 +sub_0807E10C sub_0807F3C8 +sub_0807EAD0 0x1102, 0x000c +sub_0807EA94 +sub_0807E930 0x0020 +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E930 0x0021 +sub_0807E10C sub_0807F3C8 +sub_0807EAD0 0x1103,0x000c +sub_0807EA94 +sub_0807E930 0x0020 +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807EF80 0x0004 +sub_0807E680 0x003c +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807EF80 0x0011 +sub_0807E930 0x001c +sub_0807EAD0 0x1105,0x000c +sub_0807EA94 +sub_0807E930 0x0020 +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E930 0x0022 +sub_0807E10C sub_0807F3C8 +sub_0807EAD0 0x1106,0x000c +sub_0807EA94 +sub_0807E930 0x001c +sub_0807E10C sub_0806D96C // Ezlo Angry FX +sub_0807EAD0 0x1107,0x000c +sub_0807EA94 +sub_0807E930 0x0020 +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E930 0x0021 +sub_0807E10C sub_0807F3C8 // Ezlo Angry FX +sub_0807EAD0 0x1108,0x000c +sub_0807EA94 +sub_0807E930 0x001c +sub_0807E10C sub_0806D96C// Ezlo Angry FX +sub_0807EAD0 0x1109,0x000c +sub_0807EA94 +sub_0807E930 0x0020 +sub_0807EF80 0x000a +sub_0807E9D4 +sub_0807E5F8 0x00000008 +sub_0807E014 +sub_0807E004 +sub_0807E260 0x0000 +sub_0807E050 0x0028 +sub_0807E2E4 +sub_0807E064 0xfff0 +sub_0807E014 +sub_0807E864 +sub_0807E10C sub_0806D944 // Ezlo look at player +sub_0807E930 0x0010 +sub_0807EAD0 0x1114,0x000c +sub_0807EA94 +sub_0807E930 0x0020 +sub_0807E878 +sub_0807E024 0xffd0 +sub_0807E864 +sub_0807E9DC +sub_0807E124 sub_0807F5B0,0x0000003c +sub_0807E10C sub_080791D0 +sub_0807E014 +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807EF80 0x000b +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E10C sub_0806D944// Ezlo look at player +sub_0807E930 0x0010 +sub_0807EAD0 0x110a,0x000c +sub_0807EA94 +sub_0807E930 0x001f +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E930 0x0010 +sub_0807EAD0 0x110b,0x000c +sub_0807EA94 +sub_0807E930 0x001f +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807EF80 0x0004 +sub_0807E680 0x003c +sub_0807E930 0x0010 +sub_0807EAD0 0x110c,0x000c +sub_0807EA94 +sub_0807E930 0x001f +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E930 0x0010 +sub_0807EAD0 0x110d,0x000c +sub_0807EA94 +sub_0807E930 0x001f +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E930 0x0010 +sub_0807EAD0 0x110e,0x000c +sub_0807EA94 +sub_0807E930 0x0018 +sub_0807EBC0 0x0080 +sub_0807E10C sub_0806D908 +sub_0807EC1C 0x0010 +sub_0807EF80 0x000a +sub_0807E9D4 +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E014 +sub_0807E004 +sub_0807E10C sub_0806D944 // Ezlo look at player +sub_0807E2E4 +sub_0807E050 0x000e +sub_0807E2A8 0x3030 +sub_0807E064 0x0020 +sub_0807E024 0xffe6 +sub_0807E864 +sub_0807E930 0x0010 +sub_0807E014 +sub_0807EAD0 0x1115,0x000c +sub_0807EA94 +sub_0807E930 0x0018 +sub_0807E878 +sub_0807E024 0xffcc +sub_0807E014 +sub_0807E864 +sub_0807E10C sub_0807F9A4 +sub_0807E10C sub_0807DF28 +sub_0807EB8C +sub_0807E10C sub_0806D944 // Ezlo look at player +sub_0807E930 0x0010 +sub_0807EAD0 0x110f,0x000c +sub_0807E930 0x0018 +sub_0807EBC0 0x0080 +sub_0807E10C sub_0806D908 +sub_0807EC1C 0x0050 +sub_0807EA94 +sub_0807E10C sub_0807DF50 +sub_0807E878 +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E014 +sub_0807E004 +sub_0807E10C sub_0806D944 // Ezlo look at player +sub_0807E2E4 +sub_0807E050 0x000e +sub_0807E2A8 0x3030 +sub_0807E064 0x0020 +sub_0807E024 0xffe6 +sub_0807E864 +sub_0807E930 0x0010 +sub_0807E014 +sub_0807EAD0 0x1115,0x000c +sub_0807EA94 +sub_0807E930 0x0018 +sub_0807E878 +sub_0807E024 0xffcc +sub_0807E014 +sub_0807E864 +sub_0807E10C sub_0807F9A4 +sub_0807E10C sub_0807DF28 +sub_0807EB8C +sub_0807E10C sub_0806D944 // Ezlo look at player +sub_0807E930 0x0010 +sub_0807EAD0 0x1110,0x000c +sub_0807E930 0x0018 +sub_0807EBC0 0x0080 +sub_0807E10C sub_0806D908 +sub_0807EC1C 0x0050 +sub_0807E930 0x0018 +sub_0807EA94 +sub_0807E10C sub_0807DF50 +sub_0807E878 +sub_0807E5F8 0x00000008 +sub_0807E6AC 0x00000004 +sub_0807E014 +sub_0807E004 +sub_0807E10C sub_0806D944 // Ezlo look at player +sub_0807E2E4 +sub_0807E050 0x000e +sub_0807E2A8 0x3030 +sub_0807E064 0x0020 +sub_0807E024 0xffe6 +sub_0807E864 +sub_0807E930 0x0010 +sub_0807E014 +sub_0807EAD0 0x1115,0x000c +sub_0807EA94 +sub_0807E930 0x0018 +sub_0807E878 +sub_0807E024 0xffcc +sub_0807E014 +sub_0807E864 +sub_0807E10C sub_0807F9A4 +sub_0807E10C sub_0807DF28 +sub_0807EFE4 +sub_0807EF80 0x000b +sub_0807EB8C +sub_0807E10C sub_0806D944 // Ezlo look at player +sub_0807E930 0x0010 +sub_0807EAD0 0x1111,0x000c +sub_0807E930 0x0018 +sub_0807EBC0 0x0080 +sub_0807E10C sub_0806D8A0 +sub_0807EE30 +sub_0807E064 0xfffc +sub_0807E930 0x001f +sub_0807EA94 +sub_0807E8C4 0x08012b18 +sub_0807E10C sub_0806D9A4 +sub_0807EF80 0x0008 +sub_0807E680 0x0078 +sub_0807EFAC 0x000e +sub_0807E004 +sub_0807E8E4_2 +sub_0807EB28 0x1112 +sub_0807E014 +sub_0807EA94 +sub_0807E5F8 0x00000008 +sub_0807EF80 0x0006 +SCRIPT_END \ No newline at end of file diff --git a/linker.ld b/linker.ld index a91e8495..0b0082c8 100644 --- a/linker.ld +++ b/linker.ld @@ -295,6 +295,7 @@ SECTIONS { asm/code_080043E8.o(.text); data/data_08007DF4.o(.rodata); asm/code_0800857C.o(.text); + data/scripts/ezlo_angry.o(.rodata); src/scripts/ezlo_angry.o(.rodata); asm/code_08012AB0.o(.text); src/scripts/npc4e_fusion.o(.rodata); diff --git a/src/scripts/ezlo_angry.c b/src/scripts/ezlo_angry.c index 52458403..ffaab375 100644 --- a/src/scripts/ezlo_angry.c +++ b/src/scripts/ezlo_angry.c @@ -12,235 +12,7 @@ extern void sub_0807DF50(Entity*, ScriptExecutionContext*); extern void sub_0806D8A0(Entity*, ScriptExecutionContext*); extern void sub_0806D9A4(Entity*, ScriptExecutionContext*); // clang-format off -START_SCRIPT(gUnk_080126FC) -sub_0807E004() -sub_0807EBC0(0x0040) -sub_0807EF80(0x0007) -sub_0807E014() -sub_0807E930(0x0020) -sub_0807E6AC(0x00000004) -sub_0807E930(0x0022) -sub_0807E10C(sub_0807F3C8) -sub_0807EAD0(0x1102,0x000c) -sub_0807EA94() -sub_0807E930(0x0020) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E930(0x0021) -sub_0807E10C(sub_0807F3C8) -sub_0807EAD0(0x1103,0x000c) -sub_0807EA94() -sub_0807E930(0x0020) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807EF80(0x0004) -sub_0807E680(0x003c) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807EF80(0x0011) -sub_0807E930(0x001c) -sub_0807EAD0(0x1105,0x000c) -sub_0807EA94() -sub_0807E930(0x0020) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E930(0x0022) -sub_0807E10C(sub_0807F3C8) -sub_0807EAD0(0x1106,0x000c) -sub_0807EA94() -sub_0807E930(0x001c) -sub_0807E10C(sub_0806D96C) // Ezlo Angry FX -sub_0807EAD0(0x1107,0x000c) -sub_0807EA94() -sub_0807E930(0x0020) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E930(0x0021) -sub_0807E10C(sub_0807F3C8) // Ezlo Angry FX -sub_0807EAD0(0x1108,0x000c) -sub_0807EA94() -sub_0807E930(0x001c) -sub_0807E10C(sub_0806D96C)// Ezlo Angry FX -sub_0807EAD0(0x1109,0x000c) -sub_0807EA94() -sub_0807E930(0x0020) -sub_0807EF80(0x000a) -sub_0807E9D4() -sub_0807E5F8(0x00000008) -sub_0807E014() -sub_0807E004() -sub_0807E260(0x0000) -sub_0807E050(0x0028) -sub_0807E2E4() -sub_0807E064(0xfff0) -sub_0807E014() -sub_0807E864() -sub_0807E10C(sub_0806D944) // Ezlo look at player -sub_0807E930(0x0010) -sub_0807EAD0(0x1114,0x000c) -sub_0807EA94() -sub_0807E930(0x0020) -sub_0807E878() -sub_0807E024(0xffd0) -sub_0807E864() -sub_0807E9DC() -sub_0807E124(sub_0807F5B0,0x0000003c) -sub_0807E10C(sub_080791D0) -sub_0807E014() -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807EF80(0x000b) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E10C(sub_0806D944)// Ezlo look at player -sub_0807E930(0x0010) -sub_0807EAD0(0x110a,0x000c) -sub_0807EA94() -sub_0807E930(0x001f) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E930(0x0010) -sub_0807EAD0(0x110b,0x000c) -sub_0807EA94() -sub_0807E930(0x001f) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807EF80(0x0004) -sub_0807E680(0x003c) -sub_0807E930(0x0010) -sub_0807EAD0(0x110c,0x000c) -sub_0807EA94() -sub_0807E930(0x001f) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E930(0x0010) -sub_0807EAD0(0x110d,0x000c) -sub_0807EA94() -sub_0807E930(0x001f) -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E930(0x0010) -sub_0807EAD0(0x110e,0x000c) -sub_0807EA94() -sub_0807E930(0x0018) -sub_0807EBC0(0x0080) -sub_0807E10C(sub_0806D908) -sub_0807EC1C(0x0010) -sub_0807EF80(0x000a) -sub_0807E9D4() -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E014() -sub_0807E004() -sub_0807E10C(sub_0806D944) // Ezlo look at player -sub_0807E2E4() -sub_0807E050(0x000e) -sub_0807E2A8(0x3030) -sub_0807E064(0x0020) -sub_0807E024(0xffe6) -sub_0807E864() -sub_0807E930(0x0010) -sub_0807E014() -sub_0807EAD0(0x1115,0x000c) -sub_0807EA94() -sub_0807E930(0x0018) -sub_0807E878() -sub_0807E024(0xffcc) -sub_0807E014() -sub_0807E864() -sub_0807E10C(sub_0807F9A4) -sub_0807E10C(sub_0807DF28) -sub_0807EB8C() -sub_0807E10C(sub_0806D944) // Ezlo look at player -sub_0807E930(0x0010) -sub_0807EAD0(0x110f,0x000c) -sub_0807E930(0x0018) -sub_0807EBC0(0x0080) -sub_0807E10C(sub_0806D908) -sub_0807EC1C(0x0050) -sub_0807EA94() -sub_0807E10C(sub_0807DF50) -sub_0807E878() -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E014() -sub_0807E004() -sub_0807E10C(sub_0806D944) // Ezlo look at player -sub_0807E2E4() -sub_0807E050(0x000e) -sub_0807E2A8(0x3030) -sub_0807E064(0x0020) -sub_0807E024(0xffe6) -sub_0807E864() -sub_0807E930(0x0010) -sub_0807E014() -sub_0807EAD0(0x1115,0x000c) -sub_0807EA94() -sub_0807E930(0x0018) -sub_0807E878() -sub_0807E024(0xffcc) -sub_0807E014() -sub_0807E864() -sub_0807E10C(sub_0807F9A4) -sub_0807E10C(sub_0807DF28) -sub_0807EB8C() -sub_0807E10C(sub_0806D944) // Ezlo look at player -sub_0807E930(0x0010) -sub_0807EAD0(0x1110,0x000c) -sub_0807E930(0x0018) -sub_0807EBC0(0x0080) -sub_0807E10C(sub_0806D908) -sub_0807EC1C(0x0050) -sub_0807E930(0x0018) -sub_0807EA94() -sub_0807E10C(sub_0807DF50) -sub_0807E878() -sub_0807E5F8(0x00000008) -sub_0807E6AC(0x00000004) -sub_0807E014() -sub_0807E004() -sub_0807E10C(sub_0806D944) // Ezlo look at player -sub_0807E2E4() -sub_0807E050(0x000e) -sub_0807E2A8(0x3030) -sub_0807E064(0x0020) -sub_0807E024(0xffe6) -sub_0807E864() -sub_0807E930(0x0010) -sub_0807E014() -sub_0807EAD0(0x1115,0x000c) -sub_0807EA94() -sub_0807E930(0x0018) -sub_0807E878() -sub_0807E024(0xffcc) -sub_0807E014() -sub_0807E864() -sub_0807E10C(sub_0807F9A4) -sub_0807E10C(sub_0807DF28) -sub_0807EFE4() -sub_0807EF80(0x000b) -sub_0807EB8C() -sub_0807E10C(sub_0806D944) // Ezlo look at player -sub_0807E930(0x0010) -sub_0807EAD0(0x1111,0x000c) -sub_0807E930(0x0018) -sub_0807EBC0(0x0080) -sub_0807E10C(sub_0806D8A0) -sub_0807EE30() -sub_0807E064(0xfffc) -sub_0807E930(0x001f) -sub_0807EA94() -sub_0807E8C4(0x08012b18) -sub_0807E10C(sub_0806D9A4) -sub_0807EF80(0x0008) -sub_0807E680(0x0078) -sub_0807EFAC(0x000e) -sub_0807E004() -sub_0807E8E4_2() -sub_0807EB28(0x1112) -sub_0807E014() -sub_0807EA94() -sub_0807E5F8(0x00000008) -sub_0807EF80(0x0006) -END_SCRIPT() +//START_SCRIPT(gUnk_080126FC) +asm(".section .rodata"); + // clang-format on \ No newline at end of file diff --git a/tools/script_disassembler/script_disassembler.py b/tools/script_disassembler/script_disassembler.py index 62f85f4c..bb0dbce3 100644 --- a/tools/script_disassembler/script_disassembler.py +++ b/tools/script_disassembler/script_disassembler.py @@ -199,25 +199,25 @@ parameters = { 's': { 'length': 1, 'param': 's', - 'expr': 'asm(".short " #s);', + 'expr': ' .short \s', 'read': lambda ctx: barray_to_u16_hex(ctx.data[ctx.ptr+2:ctx.ptr+4])[0] }, 'w': { 'length': 2, 'param': 'w', - 'expr': 'asm(".word " #w);', + 'expr': ' .word \w', 'read': lambda ctx: barray_to_u32_hex(ctx.data[ctx.ptr+2:ctx.ptr+6])[0] }, 'ss': { 'length': 2, 'param': 'a,b', - 'expr': 'asm(".short " #a);asm(".short " #b);', + 'expr': ' .short \\a\n .short \\b', 'read': lambda ctx: ','.join(barray_to_u16_hex(ctx.data[ctx.ptr+2:ctx.ptr+6])) }, 'ww': { 'length': 4, 'param': 'a,b', - 'expr': 'asm(".word " #a);asm(".word " #b);', + 'expr': ' .word \\a\n .word \\b', 'read': lambda ctx: ','.join(barray_to_u32_hex(ctx.data[ctx.ptr+2:ctx.ptr+10])) }, } @@ -251,7 +251,7 @@ def ExecuteScriptCommandSet(ctx: Context): raise Exception('Call with ' + (unk_06-1) +' length, while length of ' + params['length']+' defined') - print(command['fun'] + '(' + params['read'](ctx) + ')') + print(command['fun'] + ' ' + params['read'](ctx)) # Execute script ctx.ptr += unk_06*2 @@ -271,14 +271,22 @@ def disassemble_script(input_data): # Print rest (did not manage to get there) print(',\n'.join(barray_to_u16_hex(ctx.data[ctx.ptr:]))) + def generate_macros(): - print('#ifndef SCRIPT_MACROS_H') - print('#define SCRIPT_MACROS_H') - print('// Generated by disassemble_script.py') - print('#define START_SCRIPT(name) asm(".globl "#name); asm(".section .rodata"); asm(#name":");') - print('#define END_SCRIPT()') - #print('#define WORD_TO_SHORTS(word) (unsigned short)word & 0xffff,(unsigned short)word >> 16') + print('@ All the macro functions for scripts') + print('@ Generated by disassemble_script.py') + + print('.macro SCRIPT_START name') + print(' .globl \\name') + print(' .section .rodata') + print('\\name:') + print('.endm') + + print('.macro SCRIPT_END') + print(' .short 0xffff') + print('.endm') + print('') for num, command in enumerate(commands): if not 'params' in command: @@ -289,9 +297,16 @@ def generate_macros(): params = parameters[command['params']] id = ((params['length']+1) << 0xA) + num - print('#define ' + command['fun'] + '(' + params['param'] + ') asm(".short '+u16_to_hex(id)+'");' + params['expr']) - print ('#endif') + print(f'.macro {command["fun"]} {params["param"]}') + print(f' .short {u16_to_hex(id)}') + if params['expr'] != '': + print(params['expr']) + print('.endm') + print('') + + #print('#define ' + command['fun'] + '(' + params['param'] + ') asm(".short '+u16_to_hex(id)+'");' + params['expr']) + print('') def main():