Tuesday, 14 July 2009

CPU Emulator v0.12

version 0.12 fixes/improvements 13th July 2009
==================================
[new] - Added an adjustable CPU clock to govern the Control Unit. This is adjustable down to 20ms pulses. It can be turned on or off. (it doesn't work at that speed due to Windows re-drawing objects).

[fix] - LDA, LDX, LDY fixed assignment of N and Z bits

clarification - BGT Branches if value compared was greater than register
clarification - BLT Branches if value compared was smaller than register
[new] - BGE Branches if value compared was greater than or equal to regiser
[new] - BLE Branches if value compared was smaller than or equal to register

[fix] - sorted out symbol table entries, they are now associated with a code page so duplicate symbols can exist across different code pages.

[fix] - Ram is unloaded when a code page is unloaded

[new] - added RAM ownership display in the RAM window (looks naff - preliminary)

Friday, 10 July 2009

CPU Emulator bug list

Fixes to known bugs/issues
version 0.12 fixes 10th July 2009
==================================
3) RAM and Dissambler window don't show horizontal scrollbar when content to wide - fixed
5) Symbols are not unloaded when a code page is unloaded, have to quit program - fixed (I think), although I haven't fixed point 7 (although I am close to doing this now with the symbol table changes)
6) Multiple code pages cannot have indentical labels (duplicate label errors) - fixed, re-factored symbol table code to associate code pages. Same symbols allowed to exist in different code pages.
7) Code is not unloaded when a code page is unloaded - this now happens all memory addresses allocated are released appropriately on unload.
version 0.11 fixes 10th July 2009
==================================
1) STO X(value) writing to address $0 - fixed
I hadn't implemented Indexed addressing for Write operations!!
2) LDA X - being recognised as NOP - fixed
I was not picking up the register when register addressing mode was used
outstanding bugs/known issues
======================
1) STO X(value) writing to address $0
2) LDA X being recognised as NOP
3) RAM and Dissambler window don't show horizontal scrollbar when content to wide
4) Instruction window just shows instructions and not supported addressing modes
5) Symbols are not unloaded when a code page is unloaded, have to quit program
6) Multiple code pages cannot have identical labels (duplicate label errors)
7) Code is not unloaded when a code page is unloaded
8) Need to re-visit device interface implementation and remove bodges
9) Not rendering negative values in dissambly window properly
please post bug reports by placing a comment on this buglist, check the known bugs/issues first so I can avoid multiple bug reports:
try to describe the fault, what instruction was involved, what the visible outcome was (whether it was a crash or mistake in decoding etc...)

Thursday, 9 July 2009

CPU Emulator v0.1

>The first working version of the Emulator is now in a "working" state, I'm numbering this v0.1 because it isn't really finished.

It is available in the Student shared folder

\students\0AS COMPUTING\

Run the CPU Emulator inside the CPU Emulator folder.

At the moment you only have access to the Emulator exectuable (the finished program) I have produced but next year we will have VS2008 installed and you will have access to the source code written in C#. This project will grow over next year and we will use it to help illustrate many aspects of the 2nd year theory.

Eric

Tuesday, 7 July 2009

CPU Emulator almost done

Hopefully we will be able to use the CPU emulator I have been writting over the last couple of weeks.

It's taken me ages because:

  1. I don't have much time to get on with coding at the moment
  2. I am trying to make it so it can be expanded and externded
  3. I am hoping to use it to demonstrate other things like Scheduling and multi-tasking programs. This will hopefully work by just writing and assembly langugage program for the emulator to do the scheduling!

It is in a far from finished state, and there are a lot of weird things that may happen. You lot will be the official Alpha testers for the system so please leave any comments on the post.

Cheers

Eric