Login
Back to forumSee the full topicGo to last reply

Posted By

Csabo
on 2007-09-20
12:03:33
 Re: For Plus4emu

Here's my wish-list. I'd be happy to see these implemented in any emulator.

1) Palm OS support. I don't care if it's hard, I don't care that the Palm is dead, just do it... They ported Frodo to the Palm, it's open source: http://frodopalm.sourceforge.net/ I'm sure some of their code could help, or those developers might even join in.

2) A killer breakpoint system. I know some of these already exists.

Syntax: b <#bpnum> <expression>

If #bpnum is specified, then set the given breakpoint, otherwise set the next available one. If expression is empty, clear the breakpoint.

A simple expression evaluator is needed, where following things should be evaluated:
A,X,Y,S,PC (etc) should be special keywords, they should return the current value of A, X etc.
$00 any literal number
($1000) should return the value of memory location $1000

b ($0c00)<a should cause a breakpoint when the value of memory location $0c00 becomes less than the value in the accumulator, or
b pc<$400 & x!=$00 should cause a breakpoint when there's a jump to any address below $400 and X is nonzero.

Other special handles:
b ($c0) should cause a breakpoint when any opcode is accessing location $00c0. This would be super useful... I remember Luca posted something a while back when he didn't know what's overwriting his zeropage variables. Sometimes it's something like "STA $B0,Y" and Y=$10. There's no easy way to catch that currently. Perhaps This could be further broken down to: b ($c0) read or b ($c0) write - where those would cause breakpoints if the given address is read or written.

3) Expose all of the emulators functionality, and allow it to be controlled from user scripts.

I want to write a script like this and have an emulator execute it:
LOAD "sensible_hugo.prg"
B #1 $036C
TYPE "run<enter>"
STOP
#1:
SAVE "sensible_hugo.prg" (w:$2B) (w:$2D)
END

You get the point, right? With something like this, a lot of new and interesting things will become possible. For example, other programs will be able to use the emulator to remove packers (see above). Packers could be auto-detected and the script generated. Or, adventure (or other) games could be played "automatically", using brute force trial and error.

Those are my ideas.



Back to top


Copyright © Plus/4 World Team, 2001-2024