In trying to blanket copy a block of the Spectrum's ROM using
PEEK$ it turns out that in using
PEEK$ the ROM isn't actually available to be copied.
This was the code:
; system font position @ 15616 / 0x3D00 %b=%15616 ; using string peek because it can read variable length f$= PEEK$ (%b,768) ; poke the contents into a new location POKE 64000,f$ ; this should have printed the '!' character PRINT PEEK 64008
This doesn't work because when you use PEEK$ a different ROM is paged in and the memory map changes. So you’ll never be able to do it like this. Indeed this is true for all new NextBASIC routines.