P2BEE

Propeller 2 BEE is the ultimate emulation engine for the Propeller 2!

I know, that is a very strong claim. I’ll prove it.

Benefits:

  •  Maximum possible execution rate for byte-encoded instructions
  •   6.5 clocks per byte avearage execution rate for single cycle P2 instructions
  •   Makes writing processor emulators MUCH easier with much less code
  •   Makes writing any virtual machine much easier and run much faster
  •   Propeller 2 BEE is now the premiere emulation platform
  •   for P2BEE’s requiring less than 256 instructions rest of STACK is available

Designed for:

  •   Specifically for Propeller 2
  •   Fastest possible Spin VM
  •   Fastest possible Java VM
  •   Fastest and Smallest “compressed mode” for C and other compilers
  •   Fastest possible 8 bit processor emulation
  •   Can be for 16/32 bit emulators (in some cases)
  •   provides DRASTIC speed up for Spin, Forth, ZOG, Z80, 6809, 6502 and
  • every other emulator and virtual machine
  •   Retro Gaming
  •   Retro Console Emulation
  •   Retro Computer Emulation

License:

Creative Commons Attribution-ShareAlike 3.0 Unported
http://creativecommons.org/licenses/by-sa/3.0/legalcode

History:

I’ve been having a lot of fun with the Propeller 2 on my DE0-Nano, and I came up with a really cute trick that lead to developing P2BEE.

Today I verified that my P2BEE concept works, and that the engine works.

I could not wait to publish it – and I can’t wait to see all the different emulators and virtual machines that will be based on it!

Frequently Asked Questions:

Why is P2BEE so fast?

Propeller 2 BEE pulls out all the stops, and uses all of the tricks I could
think of to execute byte codes as fast as possible. It uses a specific order
of cached byte read and stack access instructions optimized for the pipeline
details of the Propeller 2.

How did you think of it?

I have developing software and hardware for the Parallax Propeller since it
became available. I always had a great interest in processor emulation for
retro computers and gaming.

Way back, I came up with the LMM virtual machine for the Propeller, allowing
it to execute larger programs than it could in the native “cog” memory.

Once I saw the specifications and instructions for the STACK memory, I started
thinking of non-obvious uses for it… and once Chip increased it to 256 longs
from the original 128 entr “CLUT” version, it became even more interesting.

256 longs… a very useful number. There are 256 possible values for a byte.

Thus P2BEE was born.

Single cycle propeller instructions stored in the STACK (CLUT) memory can be
executed by the inner P2BEE engine in 6.5 cycles (on average) – obviously
other instructions will take longer.

By storing various JMP instructions, sequences of instructions can be run
for every byte code – making coding VM’s and emulators immensely easier.

Code:

To be added

If you liked this article, please help us grow! "Like" us and let your friends know with the Twitter and Facebook buttons at the top left - We appreciate your support!