From 838548843e19d1199d01ed77013648f0e1f01fe5 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Tue, 28 Apr 2020 08:52:47 -0400 Subject: [PATCH] boot: apply BIN( to stray stable ABI references With cross compiling and IMMEDIATE words, things get icky with stable ABI references. For the same reason that EXIT, (br) and (br?) need to stay at stable offsets, these word references will not have BIN( properly applied at Inner core xcomp. The solution for now is to adjust during EXECUTE, which is ugly and inefficient, but I don't see a better solution right now. --- blk/301 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/blk/301 b/blk/301 index 65c92b9..e307504 100644 --- a/blk/301 +++ b/blk/301 @@ -1,7 +1,10 @@ -L3 BSET -PC ORG @ 0x34 + ! ( execute ) - ( DE points to wordref ) - EXDEHL, +L3 BSET PC ORG @ 0x34 + ! ( execute ) + EXDEHL, ( HL now points to wordref ) + ( We don't apply BIN( reliably on stable ABI stuff, we + might need to adjust addr. Ugly, but well... ) + BIN( @ [IF] + A XORr, H ORr, IFZ, H BIN( @ 256 / LDrn, + [THEN] E (HL) LDrr, D BIN( @ 256 / LDrn, EXDEHL,