![]() |
|
Store array information in extended memory (128kb) - Printable Version +- Boriel Basic Forum (https://forum.boriel.com) +-- Forum: Compilers and Computer Languages (https://forum.boriel.com/forumdisplay.php?fid=12) +--- Forum: ZX Basic Compiler (https://forum.boriel.com/forumdisplay.php?fid=11) +---- Forum: Help & Support (https://forum.boriel.com/forumdisplay.php?fid=16) +---- Thread: Store array information in extended memory (128kb) (/showthread.php?tid=2546) |
Store array information in extended memory (128kb) - rbiondi - 2024-03-10 Hello, Is it possible storing arrays and/or Strings in Zx Spectrum Extended Memory (128kb)? How could this would be accomplished? Thank you very much! Rogerio RE: Store array information in extended memory (128kb) - funkheld - 2024-11-24 spectrum 128 and banking. https://worldofspectrum.org/faq/reference/128kreference.htm write data into bank 1, 3 and 4. switch to the bank and always get the data from $c000. the data from the bank is always in $c000. greetings mey demo , greeting from germany: ----------------------------------- Code: #Include <SP/Fill.bas>
#include <memcopy.bas>
DIM wert AS UInteger
Sub fastcall _bank(n as UByte)
ASM
ld c, a ; A register contains the n parameter
ld a,(0x5b5c)
and 0xf8
or c ;bank N auswählen
ld bc,0x7ffd
di
ld (0x5b5c),a
out (c),a
ei
END ASM
end sub
CLS
_bank(3)
for wert=$c000 to $c000+6143
poke wert,129
next wert
_bank(4)
for wert=$c000 to $c000+6143
poke wert,255
next wert
_bank(1)
for wert=$c000 to $c000+6143
poke wert,137
next wert
do
IF INKEY$ = "q" THEN
_bank(1)
MemMove($c000, $4000, 6144)
end if
IF INKEY$ = "w" THEN
_bank(4)
MemMove($c000, $4000, 6144)
end if
IF INKEY$ = "e" THEN
_bank(3)
MemMove($c000, $4000, 6144)
end if
loopYou can also get the data from $c000 and bring it to $c000 with poke/peek. greting RE: Store array information in extended memory (128kb) - rbiondi - 2025-01-11 Thank you very much for your help! Kind regards, Rogerio |