[Coco] Wolfenstein 3-D on a 4.77mhz 8088? So, 6809 port, anyone?

Steve Bjork 6809er at srbsoftware.com
Wed Apr 24 00:40:29 EDT 2013


Al,

The 6809 is only has an 8-bit ALU but the 8088 has 16-bit ALU. Math is 
more limited on the 6809 because the lack of the DIV instruction.  The 
8088 also had block memory move instructions. Add the fact that most IBM 
system came with hardware DMA for fast memory moves, the CoCo just can't 
keep up.

But most of all, the 256 color mode used a byte of memory for each dot 
on the screen.  This makes for fast graphics on the screen.

In the case of the CoCo, to update just one dot on the screen needs 4 
instructions just to write one screen byte. The following is used to 
draw a screen object.

WriteDots:
  ldb ,u+       ;Get number of bytes to update in this line
  Loop:

  lda ,x          ;get screen memory
  anda ,u+    ;mask data so the right dot(s) are reset to zero
  ora ,u+       ;mix in the new dot(s)
  sta ,x+        ;Write to screen memory.

  decb
  bne             ;Loop till line is done.

  ldb    ,u+     ;get Skip fact to start of next line
  beq   Endloop   ;Exit drawing this object if no skip factor
  abx             ;Add skip factor to screen memory pointer
  bra WriteDots  ;loop back to write next line.

The above code uses two bytes of data for each screen byte.  The first 
byte reset the bits of the dot to change so the new dots can be mix by 
the "or" instruction.  This "and "or" system changes only the dots that 
you want since 2 to 8 dots share a byte of screen memory. (Depending of 
the graphics mode.) Each row of data has a counter byte at the beginning 
and the last byte of data is a "skip" byte that is added to the screen 
pointer to move to the start of the next line on the screen.  If the 
"skip" byte is zero then is the end of drawing the object.

By the way, the 256 color mode of the PC used 256 color registers.  Each 
color register was 1 of 65,000 or 24,000,000 colors.  (16-bit and 24 
bit.)   As you can see, the 256 color mode is not just about having 256 
colors on the screen but have the 256 color registers with a palette of 
millions of colors.

Steve

On 4/23/2013 4:50 PM, Allen Huffman wrote:
> I just found a video showing Wolfenstein 3-D running on an 8086 at 4.77mhz. How does the CoCo processor stack up against that?
>
> It plays VERY slowly, but...
>
> http://www.youtube.com/watch?v=5f7gW5X24ao
>
>
> -
> Allen Huffman - PO Box 22031 - Clive IA 50325 - 515-999-0227 (vmail/TXT only)
>




More information about the Coco mailing list