Hi Lee
thanks for the heads-up about the
updated lib6502.
I had some ideas about projects...
A relatively simple project would be to fit
Samuel's lib65816 into the same kind of wrapper as run6502 - I've done that, some time ago, but in a very rough and ready way, and I haven't published it. You could if you wished take my code as a starting point, but it might be better not to!
As it happens, there's a bug lurking in lib65816 (or possibly my run65816) which would be good to find and fix:
Code:
$ ./run65816 -B -l 0 bbc.img
loading ROM file bbc.img
WARP FACTOR 5
BBC Computer 16K
BASIC
>p
Mistake
>p
Mistake
Bad program
>
whereas lib6502 behaves itself:
Code:
$ ./run6502 -B -l 0 bbc.img
BBC Computer 32K
BASIC
>p
Mistake
>p
Mistake
>
A more advanced project would be to take lib6502 and put a GUI around it using a
cross-platform toolkit like wxwidgets - that would give us a high performance cross-platform GUI for 6502 emulation. (It wouldn't match
Michal Kowalski's program until it could be given an assembler, which would be another project.)
Cheers
Ed
Note that I have a patch for run6502 which is needed for BBC emulation of BASIC errors:
Code:
***************
*** 124,131 ****
break;
case 0x7E: /* acknowledge detection of escape condition */
! return 0; /* 2008-05-02 ed s this must trivially pass, for BASIC errrors */
! return 1; /* buggedly wrong in lib6502 1.0 and 1.1
break;
case 0x82: /* read machine higher order address */
--- 124,130 ----
break;
case 0x7E: /* acknowledge detection of escape condition */
! return 1;
break;
case 0x82: /* read machine higher order address */
***************
*** 505,511 ****
0x8000 + mpu->memory,
0x4000);
n= 1;
- n= 0; // was buggedly 1 in run6502 version 1.0 and 1.1
}
argc -= n;
argv += n;
--- 504,509 ----
Edit: added link target to new location of Kowalski's simulator