Skip to content

Commit d330c84

Browse files
committed
fix: Add LBound table if LBound is used
1 parent 4988d47 commit d330c84

9 files changed

Lines changed: 33 additions & 9 deletions

File tree

src/arch/z80/visitor/var_translator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def visit_ARRAYDECL(self, node):
5555
ubound_label = entry.mangled + ".__UBOUND__"
5656
bound_ptrs = ["0", "0"] # NULL by default
5757

58-
if not entry.is_zero_based and entry.is_dynamically_accessed:
58+
if not entry.is_zero_based and (entry.is_dynamically_accessed or entry.lbound_used):
5959
bound_ptrs[0] = lbound_label
6060

6161
if entry.ubound_used or OPTIONS.array_check:

tests/functional/arch/zx48k/bound02.asm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ _a:
2424
DEFW .LABEL.__LABEL0
2525
_a.__DATA__.__PTR__:
2626
DEFW _a.__DATA__
27-
DEFW 0
27+
DEFW _a.__LBOUND__
2828
DEFW 0
2929
_a.__DATA__:
3030
DEFB 00h
@@ -87,6 +87,9 @@ _a.__DATA__:
8787
DEFW 0001h
8888
DEFW 0004h
8989
DEFB 02h
90+
_a.__LBOUND__:
91+
DEFW 0002h
92+
DEFW 0003h
9093
.core.ZXBASIC_USER_DATA_END:
9194
.core.__MAIN_PROGRAM__:
9295
ld a, 1

tests/functional/arch/zx48k/lbound2.asm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ _a:
2525
DEFW .LABEL.__LABEL0
2626
_a.__DATA__.__PTR__:
2727
DEFW _a.__DATA__
28-
DEFW 0
28+
DEFW _a.__LBOUND__
2929
DEFW 0
3030
_a.__DATA__:
3131
DEFB 00h
@@ -41,6 +41,9 @@ _a.__DATA__:
4141
DEFW 0001h
4242
DEFW 0003h
4343
DEFB 01h
44+
_a.__LBOUND__:
45+
DEFW 0003h
46+
DEFW 0007h
4447
.core.ZXBASIC_USER_DATA_END:
4548
.core.__MAIN_PROGRAM__:
4649
ld hl, (_b)

tests/functional/arch/zx48k/lbound4.asm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ _a:
2525
DEFW .LABEL.__LABEL0
2626
_a.__DATA__.__PTR__:
2727
DEFW _a.__DATA__
28-
DEFW 0
28+
DEFW _a.__LBOUND__
2929
DEFW 0
3030
_a.__DATA__:
3131
DEFB 00h
@@ -41,6 +41,9 @@ _a.__DATA__:
4141
DEFW 0001h
4242
DEFW 0003h
4343
DEFB 01h
44+
_a.__LBOUND__:
45+
DEFW 0003h
46+
DEFW 0007h
4447
.core.ZXBASIC_USER_DATA_END:
4548
.core.__MAIN_PROGRAM__:
4649
ld hl, (_b)

tests/functional/arch/zx48k/lbound5.asm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ _a:
2525
DEFW .LABEL.__LABEL0
2626
_a.__DATA__.__PTR__:
2727
DEFW _a.__DATA__
28-
DEFW 0
28+
DEFW _a.__LBOUND__
2929
DEFW 0
3030
_a.__DATA__:
3131
DEFB 00h
@@ -41,6 +41,9 @@ _a.__DATA__:
4141
DEFW 0001h
4242
DEFW 0003h
4343
DEFB 01h
44+
_a.__LBOUND__:
45+
DEFW 0003h
46+
DEFW 0007h
4447
.core.ZXBASIC_USER_DATA_END:
4548
.core.__MAIN_PROGRAM__:
4649
ld hl, (_b)

tests/functional/arch/zx48k/lbound7.asm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ _a:
2424
DEFW .LABEL.__LABEL5
2525
_a.__DATA__.__PTR__:
2626
DEFW _a.__DATA__
27-
DEFW 0
27+
DEFW _a.__LBOUND__
2828
DEFW 0
2929
_a.__DATA__:
3030
DEFB 00h
@@ -40,6 +40,9 @@ _a.__DATA__:
4040
DEFW 0001h
4141
DEFW 0003h
4242
DEFB 01h
43+
_a.__LBOUND__:
44+
DEFW 0003h
45+
DEFW 0007h
4346
.core.ZXBASIC_USER_DATA_END:
4447
.core.__MAIN_PROGRAM__:
4548
ld hl, _a

tests/functional/arch/zx48k/lbound8.asm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ _a:
2424
DEFW .LABEL.__LABEL5
2525
_a.__DATA__.__PTR__:
2626
DEFW _a.__DATA__
27-
DEFW 0
27+
DEFW _a.__LBOUND__
2828
DEFW 0
2929
_a.__DATA__:
3030
DEFB 00h
@@ -40,6 +40,9 @@ _a.__DATA__:
4040
DEFW 0001h
4141
DEFW 0003h
4242
DEFB 01h
43+
_a.__LBOUND__:
44+
DEFW 0003h
45+
DEFW 0007h
4346
.core.ZXBASIC_USER_DATA_END:
4447
.core.__MAIN_PROGRAM__:
4548
ld hl, _a

tests/functional/arch/zx48k/lbound9.asm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ _a:
2424
DEFW .LABEL.__LABEL5
2525
_a.__DATA__.__PTR__:
2626
DEFW _a.__DATA__
27-
DEFW 0
27+
DEFW _a.__LBOUND__
2828
DEFW 0
2929
_a.__DATA__:
3030
DEFB 00h
@@ -40,6 +40,9 @@ _a.__DATA__:
4040
DEFW 0001h
4141
DEFW 0003h
4242
DEFB 01h
43+
_a.__LBOUND__:
44+
DEFW 0003h
45+
DEFW 0007h
4346
.core.ZXBASIC_USER_DATA_END:
4447
.core.__MAIN_PROGRAM__:
4548
ld hl, _a

tests/functional/arch/zxnext/bound02.asm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ _a:
2121
DEFW .LABEL.__LABEL0
2222
_a.__DATA__.__PTR__:
2323
DEFW _a.__DATA__
24-
DEFW 0
24+
DEFW _a.__LBOUND__
2525
DEFW 0
2626
_a.__DATA__:
2727
DEFB 00h
@@ -84,6 +84,9 @@ _a.__DATA__:
8484
DEFW 0001h
8585
DEFW 0004h
8686
DEFB 02h
87+
_a.__LBOUND__:
88+
DEFW 0002h
89+
DEFW 0003h
8790
.core.ZXBASIC_USER_DATA_END:
8891
.core.__MAIN_PROGRAM__:
8992
ld a, 1

0 commit comments

Comments
 (0)