Login
Back to forumSee the full topicGo to last reply

Posted By

JamesD
on 2017-12-11
22:19:42
 Re: Does the Plus/4 support some form of VARPTR() command?

I really don't see there being any demand for a new ROM that wouldn't run all existing BASIC programs, so coping ROM to RAM or loading a new ROM into RAM is the most logical solution. It's not like BASIC would be using that RAM anyway. I don't see myself making a heavily modified ROM like I did for the MC-10. At the most just make a handful of patches. That wouldn't justify a new ROM.

FWIW, I grew up with a Tandy CoCo... we were copying ROM to RAM to modify it even before the C64 existed. I remember doing it for something when I was in high school, but I have no idea what it was.
On the CoCo it might actually make sense to burn a new ROM since it can run code out of the ROM address range faster than RAM, but it's the only machine I know of with that capability.

*edit*

I tested exiting if it was a digit instead of branching, but it was slower than the first approach.


0 REM01234567890123456789012345678901234567890123
1 FORI=0 TO 42:READ T:POKE 4102+I,T :NEXT I
2 SYS 4102


10000 DATA160,22,185,26,16,153,121,4,136,16,247,200,152,153,122,4,153,142,4,96
10010 DATA160,01,177,59,201,58,144,1,96,201,48,144,3,201,255,96,201,32,240
10020 DATA 230,201,1,96

*edit*
Actually, that turned in identical times to the first version once lines 1, 2, and the DATA lines are deleted after the first run.


For additional speed improvements, each of these addresses need patched with the code shown, and at the very least, the end of RAM value needs patched.

0497 LDA ($43),Y
RTS
04A5 LDA ($3B),Y
RTS
04B0 LDA ($22),Y
RTS
04BB LDA ($24),Y
RTS
04C6 LDA ($6F),Y
RTS
04D1 LDA ($5F),Y
RTS
04DC LDA ($64),Y
RTS

Patch end of RAM?
LDX #$FF
LDY #$7F
JSR $FF99 ; MEMTOP'




Back to top


Copyright © Plus/4 World Team, 2001-2024