X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fasm.c;h=6a263a311b6196ec327fcbd6d2cbc72a5ff307e3;hb=d8d68d0bd4c45af6f0dc69b4fc33d37d961aca85;hp=3467100ad779290ad9bbb123dafed7db9a496be4;hpb=e536ce9e39cc1bfa82ecd1d6d73f874af655f9db;p=inform.git diff --git a/src/asm.c b/src/asm.c index 3467100..6a263a3 100644 --- a/src/asm.c +++ b/src/asm.c @@ -1,9 +1,8 @@ /* ------------------------------------------------------------------------- */ /* "asm" : The Inform assembler */ /* */ -/* Copyright (c) Graham Nelson 1993 - 2020 */ -/* */ -/* This file is part of Inform. */ +/* Part of Inform 6.35 */ +/* copyright (c) Graham Nelson 1993 - 2021 */ /* */ /* Inform is free software: you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ @@ -868,7 +867,7 @@ extern void assemblez_instruction(assembly_instruction *AI) if (operand_rules==TEXT) { int32 i; - uchar *tmp = translate_text(zcode_holding_area + zcode_ha_size, zcode_holding_area+MAX_ZCODE_SIZE, AI->text); + uchar *tmp = translate_text(zcode_holding_area + zcode_ha_size, zcode_holding_area+MAX_ZCODE_SIZE, AI->text, STRCTX_GAMEOPC); if (!tmp) memoryerror("MAX_ZCODE_SIZE", MAX_ZCODE_SIZE); j = subtract_pointers(tmp, (zcode_holding_area + zcode_ha_size)); @@ -1576,7 +1575,7 @@ extern int32 assemble_routine_header(int no_locals, sprintf(fnt, "[ %s(", name); AO.marker = STRING_MV; AO.type = CONSTANT_OT; - AO.value = compile_string(fnt, FALSE, FALSE); + AO.value = compile_string(fnt, STRCTX_INFIX); assembleg_1(streamstr_gc, AO); if (!stackargs) { @@ -1584,7 +1583,7 @@ extern int32 assemble_routine_header(int no_locals, sprintf(fnt, "%s%s = ", (ix==1)?"":", ", variable_name(ix)); AO.marker = STRING_MV; AO.type = CONSTANT_OT; - AO.value = compile_string(fnt, FALSE, FALSE); + AO.value = compile_string(fnt, STRCTX_INFIX); assembleg_1(streamstr_gc, AO); AO.marker = 0; AO.type = LOCALVAR_OT; @@ -1597,7 +1596,7 @@ extern int32 assemble_routine_header(int no_locals, sprintf(fnt, "%s = ", variable_name(1)); AO.marker = STRING_MV; AO.type = CONSTANT_OT; - AO.value = compile_string(fnt, FALSE, FALSE); + AO.value = compile_string(fnt, STRCTX_INFIX); assembleg_1(streamstr_gc, AO); AO.marker = 0; AO.type = LOCALVAR_OT; @@ -1631,7 +1630,7 @@ extern int32 assemble_routine_header(int no_locals, AO.marker = STRING_MV; AO.type = CONSTANT_OT; - AO.value = compile_string(") ]^", FALSE, FALSE); + AO.value = compile_string(") ]^", STRCTX_INFIX); assembleg_1(streamstr_gc, AO); } } @@ -2078,13 +2077,13 @@ static void transfer_routine_g(void) ((form_len == 2) ? "short" : "long"))); } if (form_len == 1) { - if (addr < -0x80 && addr >= 0x80) { + if (addr < -0x80 || addr >= 0x80) { error("*** Label out of range for byte branch ***"); } - zcode_holding_area[i] = (addr) & 0xFF; + zcode_holding_area[i] = (addr) & 0xFF; } else if (form_len == 2) { - if (addr < -0x8000 && addr >= 0x8000) { + if (addr < -0x8000 || addr >= 0x8000) { error("*** Label out of range for short branch ***"); } zcode_holding_area[i] = (addr >> 8) & 0xFF;