Re: [stella] Another kernel is rolling

Subject: Re: [stella] Another kernel is rolling
From: "Fred Quimby" <c9r@xxxxxxxxxxx>
Date: Thu, 7 Apr 2005 04:36:41 -0400
I'm currently experimenting some dirty tricks in order to save space.  If 
the 9-byte VSYNC is giving trouble, you might be able to use this.  Under 
certain conditions (stack pointer = $FF, that is) you can do VSYNC in 8 
bytes, provided you combine it with the overscan timer.

    LDX INTIM ; overscan timer
    BNE .1
    ; x=0, Z flag = 0 here

    ; If stack pointer isn't initially $FF, this won't work!

    TXS     ; set stack pointer on top of VSYNC register ($00)
    PHP ; pushes Z=1 (bit 1 set) to VSYNC then resets SP to $FF.
    INC WSYNC ; INC does two writes to WSYNC, giving you two scanlines!
    STX VSYNC ; x=0, ends VSYNC

I haven't actually tried this on real hardware, so use at your own risk!

Archives (includes files) at
Unsub & more at

Current Thread