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

Luis Antoniosi (CoCoDemus) retrocanada76 at gmail.com
Tue Apr 23 23:50:36 EDT 2013


Hey Steve,

But for 6309 and using a wide pixel (2 pixel with same color) we can have
some improvement.

all coco2 games uses 2 pixels per color anyway ;)




On Wed, Apr 24, 2013 at 12:40 AM, Steve Bjork <6809er at srbsoftware.com>wrote:

> 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<http://www.youtube.com/watch?v=5f7gW5X24ao>
>>
>>
>> -
>> Allen Huffman - PO Box 22031 - Clive IA 50325 - 515-999-0227 (vmail/TXT
>> only)
>>
>>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/**mailman/listinfo/coco<http://five.pairlist.net/mailman/listinfo/coco>
>



-- 
Long live the CoCo



More information about the Coco mailing list