Recently I've just finished an ARM7TDMI emulation plug-in for my retargettable embedded system emulator - ProEmulator. Now what is urgent to do is to test each of the ARM instruction emulated, by writing simple assembly rountine, stepping over it, and check whether all registers/memory units/flag bits are changed correctly, according to ARM7TDMI datasheet or an instruction manual. If u r learning to program on ARM, it's a good opportunity that u can learn it interactively while giving me a hand. If u r interested in the it or more development job of ProEmulator, please contact me.
The following is the an ARM7 assembly rountine being stepped over.



You can download the ProEmulator ARM Package and ARM7TDMI related doc here:
http://sourceforge.net/project/showfiles.php?group_id=105359&package_id=129562
Posted on 2004-09-10 21:18:25 by optimus
You beat me to it lol, I'm still working on the Z80 plug-in updated it about 2 or 3 weeks ago. found a rather major bug. I've started work on 68000 CPU emulation, hoepfully I can get that in to ya fairly soon. Keep up great work :D
Posted on 2004-09-10 22:04:04 by x86asm
Excellent work, optimus :alright:

The only problems I encountered are user-interface related. When resized, the windows won't take top-position, and won't redraw - thus leaving lots of screen dirty. Almost no tricks to make them repaint work. Also, with all child windows having grayed non-client area, it's impossible to tell which window is currently focused. This is because you put the child windows in a SubWndClass instead of a MDIClient. The app will benefit a lot from the MDI API. And when I click on a window, it doesn't get top position - it's difficult to switch between srccode and other windows (again because of the SubWndClass).

On the Registers table, the "svr" column must be exactly to the right of the "Reg" column, and its name should be more descriptive - "Value" for instance :) .

The "Source code has successfully compiled" is a too nagging messagebox - the presence or change in the "Machine Code" window is all necessary for this notification, I suppose :)

The emulator works perfectly as far as I tested it, will certainly use it for designing+completing (finally) a 3D engine for my Tungsten ;)
thanks :) keep up the good work :alright:
Posted on 2004-09-11 15:42:09 by Ultrano
Thanks a lot for your important feedbacks Ultrano. I'll remove that message box soon and try to switch to MDI API in the future as soon as I finished the ARM emulation plugin (any quick tutorial on MDI?). Expect any more feedbacks from u!
Posted on 2004-09-11 21:39:50 by optimus
Wish to see your 68000 plugin coming to work soon. 68000 is supported by GNU toolchain, so it will be possible to perform source level debugging on it with GDB controlled by ProEmulator. And your Z80 plugin, if passed most of the instruction set test, I think u can try to test some C program, using SDCC which is already supported by ProEmulator.

You beat me to it lol, I'm still working on the Z80 plug-in updated it about 2 or 3 weeks ago. found a rather major bug. I've started work on 68000 CPU emulation, hoepfully I can get that in to ya fairly soon. Keep up great work :D
Posted on 2004-09-11 21:43:40 by optimus
I'm having trouble setting up the options for SDCC to generate a plain Z80 binary. All it generates are a .o, .asm and .ihx I thought it was supposed to link automatically! If not how do I link manually?
Posted on 2004-09-13 18:17:32 by x86asm
The ProEmulator package only includes a incomplete SDCC which only supports 8051 and 68HC08. To generate Z80 codes, u need to download the full version of SDCC.
http://prdownloads.sourceforge.net/proemulator/sdcc.exe?download
Posted on 2004-09-13 20:13:07 by optimus
The ProEmulator package only includes a incomplete SDCC which only supports 8051 and 68HC08. To generate Z80 codes, u need to download the full version of SDCC.
http://prdownloads.sourceforge.net/proemulator/sdcc.exe?download


I did it but it still put out on those files lol, I'm not sure what to do. I'll look into it more thouroughly but please (if you can) try it for yourself and let me know what ya did to get it to work. Thanks.
Posted on 2004-09-14 19:03:11 by x86asm
Plz check the compiler path in compiler configuration and manually set the path of SDCC (u can put SDCC in c:\sdcc for example, and set the path to c:\sdcc but not c:\sdcc\bin)
Posted on 2004-09-15 20:59:55 by optimus