Re: [stella] 12 chars/line!?

Subject: Re: [stella] 12 chars/line!?
From: jimn8@xxxxxxxxxx (Jim Nitchals)
Date: Fri, 26 Sep 1997 15:54:07 -0700 (PDT)
> In that case, it's as simple as LDA character1 / ORA character2 / STA
> destination, adjust indexes and loop.

Forget adjusting the indexes and looping, and it becomes almost all
  ldy char
  ldx char+1
  lda font1,y
  ora font2,x
  sta bitmap
  lda font+1,y
  ora font2+1,y
  sta bitmap+6
  lda font+2,y...

The code, fully unwound, is only 264 bytes long.  Fonts are up to 512
bytes depending on what's needed.  The fonts should be page-aligned so
extra cycles aren't used reading the font data.

> We've been over this before here... look in the archives for a "48 pixel
> highres routine explained" message sometime around April, or if you can't
> find it, let me know and I'll email it, or maybe repost it to the list.
> You need to have six 16-bit pointers to each player image in RAM... after
> that, it's a standard routine with one cycle per line to spare.  It
> involves the player vertical delay registers.

I wouldn't mind seeing the code, but if the STELLA 0.7 emulator is right,
I've got a solution that doesn't need vertical delays.  Looks great on the
text.  Not sure if it'd artifact if all 4 bits of the characters were used
instead of 3.

Please post or email what you've got  :)

My code fragment to display one row of graphics is:

        sta     WSYNC
        lda     BitmapArray,x
        sta     grp0
        lda     BitmapArray+1,x
        sta     grp1
        lda     BitmapArray+4,x
        sta     temp
        lda     BitmapArray+5,x
        sta     PatchArea+7
        lda     BitmapArray+2,x
        ldy     BitmapArray+3,x
        ldx     temp
        jmp     PatchArea
; copy this routine into RAM at PatchArea:
        sta     grp0
        sty     grp1
        stx     grp0
        lda     #0    ; gets modified by sta PatchArea+7
        sta     grp1

The players are positioned at pixel locations 66 and 74.

There's enough CPU time to render 7 lines of text.

Archives updated once/day at
Unsubscribing and other info at

Current Thread