Skip to content

Commit 47de0b3

Browse files
committed
bugfix: Fix LET ARR$ substr asignation
Asignation of substring to an array element of type String was not working when the index was constant. Fixed. LET m$(2)(3 TO 5) = "x" Didn't update m$(2).
1 parent c537c42 commit 47de0b3

File tree

9 files changed

+9
-9
lines changed

9 files changed

+9
-9
lines changed

arch/zx48k/translator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ def visit_LETARRAYSUBSTR(self, node):
364364
else:
365365
offset = node_.offset
366366
if scope == SCOPE.global_:
367-
self.ic_load(gl.PTR_TYPE, entry.t, '%s + %i' % (entry.mangled, offset))
367+
self.ic_load(gl.PTR_TYPE, entry.t, '%s.__DATA__ + %i' % (entry.mangled, offset))
368368
elif scope == SCOPE.parameter:
369369
self.ic_pload(gl.PTR_TYPE, node_.t, entry.offset - offset)
370370
elif scope == SCOPE.local:

tests/functional/let_array_substr10.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __START_PROGRAM:
2525
push hl
2626
ld hl, 3
2727
push hl
28-
ld hl, (_a + 8)
28+
ld hl, (_a.__DATA__ + 8)
2929
call __LETSUBSTR
3030
ld hl, 0
3131
ld b, h

tests/functional/let_array_substr11.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __START_PROGRAM:
2525
push hl
2626
ld hl, 65534
2727
push hl
28-
ld hl, (_a + 6)
28+
ld hl, (_a.__DATA__ + 6)
2929
call __LETSUBSTR
3030
ld hl, 0
3131
ld b, h

tests/functional/let_array_substr12.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __START_PROGRAM:
2525
push hl
2626
ld hl, 5
2727
push hl
28-
ld hl, (_a + 6)
28+
ld hl, (_a.__DATA__ + 6)
2929
call __LETSUBSTR
3030
ld hl, 0
3131
ld b, h

tests/functional/let_array_substr13.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __START_PROGRAM:
2525
push hl
2626
ld hl, 5
2727
push hl
28-
ld hl, (_a + 6)
28+
ld hl, (_a.__DATA__ + 6)
2929
call __LETSUBSTR
3030
ld hl, 0
3131
ld b, h

tests/functional/let_array_substr2.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __START_PROGRAM:
2525
push hl
2626
ld hl, 5
2727
push hl
28-
ld hl, (_a + 6)
28+
ld hl, (_a.__DATA__ + 6)
2929
call __LETSUBSTR
3030
ld hl, 0
3131
ld b, h

tests/functional/let_array_substr3.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __START_PROGRAM:
2525
push hl
2626
ld hl, 5
2727
push hl
28-
ld hl, (_a + 6)
28+
ld hl, (_a.__DATA__ + 6)
2929
call __LETSUBSTR
3030
ld hl, 0
3131
ld b, h

tests/functional/let_array_substr7.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __START_PROGRAM:
2525
push hl
2626
ld hl, 1
2727
push hl
28-
ld hl, (_a + 6)
28+
ld hl, (_a.__DATA__ + 6)
2929
call __LETSUBSTR
3030
ld hl, 0
3131
ld b, h

tests/functional/let_array_substr9.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __START_PROGRAM:
2525
push hl
2626
ld hl, 65534
2727
push hl
28-
ld hl, (_a + 6)
28+
ld hl, (_a.__DATA__ + 6)
2929
call __LETSUBSTR
3030
ld hl, 0
3131
ld b, h

0 commit comments

Comments
 (0)