spectrum 128 :
here is a demo for bank 1,3,4
is wonderful.
Bank 1 can also be filled with a different value for testing purposes using poke...
greetings
------------------------------------------
#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 ©,a
ei
END ASM
end sub
CLS
CIRCLE 128, 87, 87
SPFill(128, 87, USR "ud")
_bank(1)
MemMove($4000, $c000, 6144)
for wert=$4000 to $4000+6143
poke wert,129
next wert
_bank(3)
MemMove($4000, $c000, 6144)
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
loop
------------------------------------------------
here is a demo for bank 1,3,4
is wonderful.
Bank 1 can also be filled with a different value for testing purposes using poke...
greetings
------------------------------------------
#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 ©,a
ei
END ASM
end sub
CLS
CIRCLE 128, 87, 87
SPFill(128, 87, USR "ud")
_bank(1)
MemMove($4000, $c000, 6144)
for wert=$4000 to $4000+6143
poke wert,129
next wert
_bank(3)
MemMove($4000, $c000, 6144)
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
loop
------------------------------------------------