I've been persuaded that rather than messing about with mode 2 interrupts, since I can on the SAM, it would be better to put the screen into 32768+, get rid of the ROM and use the low 32kb for program and data. Though Andrew Collier did post some example to do this ages ago when I asked some other questions, I lost it similarly ages ago, but came up with this :
code org 0 di ; now, to load the current ram page into the bottom half of memory in a, (251) and 31 or 32 out (250), a jp tophalf ; load page 0 into the top half (pc is now in the bottom half thanks to jp) tophalf ld a, 4 out (251), a ; put the screen at page 4, and switch to mode 4 ld a, 100 out (252), a ; do some stuff to check if I did it all right lstart ld bc, $fefe in a, (c) bit 0, a jp nz, bgreen ld a, 2 out (254), a jp lstart bgreen ld a, 4 out (254), a jp lstart Which as far as I'm concerned should be turning the border green, but changing it to red (using the default palette) whenever shift is held down. What it actually does it change the border to green and then do nothing. I've tried some other stuff after the init code including writing r register rubbish to the screen, and it seems that the code functions for a very short while but then just stops. So then . . . what stupid mistake am I making? And I'll assume for now with an example this easy that it isn't 'only testing on SIM Coupé'. -Thomas