diff options
author | Astatin <[email protected]> | 2025-01-07 17:24:46 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2025-01-07 17:24:46 +0900 |
commit | c2fb41b27cb4294520cd73aa3d81d51d0f969bf8 (patch) | |
tree | 187caf2f08e3e9625daa18146c0798ea491f84ac /macros.go | |
parent | b5b9637ff2d222841632b8644b94835ec1c93359 (diff) |
Add support for relative labels in parameters
Diffstat (limited to 'macros.go')
-rw-r--r-- | macros.go | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -87,6 +87,7 @@ func MacroParse( lineNb *int, isFirstPass bool, offset uint, + LastAbsoluteLabel string, ) error { words := strings.Split(line, " ") if len(words) == 0 { @@ -102,6 +103,7 @@ func MacroParse( state.IsMacro, isFirstPass, uint16(uint(len(*result))+offset), + LastAbsoluteLabel, line, ) if err != nil { @@ -149,13 +151,13 @@ func MacroParse( } var definedValue any - if v, err := Raw8Indirect(&state.Labels, &state.Defs, words[2]); err == nil { + if v, err := Raw8Indirect(&state.Labels, LastAbsoluteLabel, &state.Defs, words[2]); err == nil { definedValue = Indirect8b(v) - } else if v, err := Raw16Indirect(&state.Labels, &state.Defs, words[2]); err == nil { + } else if v, err := Raw16Indirect(&state.Labels, LastAbsoluteLabel, &state.Defs, words[2]); err == nil { definedValue = Indirect16b(v) - } else if v, err := Raw8(&state.Labels, &state.Defs, words[2]); err == nil { + } else if v, err := Raw8(&state.Labels, LastAbsoluteLabel, &state.Defs, words[2]); err == nil { definedValue = Raw8b(v) - } else if v, err := Raw16(&state.Labels, &state.Defs, words[2]); err == nil { + } else if v, err := Raw16(&state.Labels, LastAbsoluteLabel, &state.Defs, words[2]); err == nil { definedValue = Raw16b(v) } else { return fmt.Errorf("\"%s\" could not be parsed as a .DEFINE argument", words[2]) |