Saturday, 25 January 2014

BASIC now works

Again, a quick few screen shots to show how things are moving along.

I spent the day fixing ADC and SBC bugs, as well as a few other miscellaneous CPU bugs.  Also implemented $01 CPU port for memory banking.

Things are now working well enough that BASIC works fairly well, as the following screen shots show.

First, raster bars in BASIC, which show that the CPU is MUCH faster than a real C64, even before I do a pile of optimisation work that I know needs to happen, and will give something like 2x to 3x the current figures.

Okay, so the CPU is clearly much faster than on a C64, but just how fast?  Well, let's do a quick comparison using BASIC:

52/60 of a second to count to 25,000 in BASIC.  Quite nice.  Let's see the same on a C64 and work out a back-of-envelope acceleration factor as things currently stand:

Okay, so we are 42 times faster.  That might be the answer to life the universe and everything, but not for this CPU design.  As mentioned above there are some waitstates that I know I can hide, and also some parallel instruction fetching when running code from chip RAM and other little tricks that will push this to be 2x to 3x the current figure.  Basically I am aiming for 100x C64 speed, and see no real hurdles to achieving it.

No comments:

Post a Comment