* * Control bits F0 - F6 (Starting Address) * Display mode V0 - V2 (SAM Control) * VDG Mode V3 - V6 (VDG Control) * * *I want G2C - (128 x 64 x 4) *VDG 7 6 5 4 3 * 1 0 1 0 c * *SAM 2 1 0 * 0 1 0 * *Addr 6 5 4 3 2 1 0 x x x x x x x x x * 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 = $1000 * * * *Addr Set Clear *F6 $FFD3 $FFD2 *F5 $FFD1 $FFD0 *F4 $FFCF $FFCE *F3 $FFCD $FFCC *F2 $FFCB $FFCA *F1 $FFC9 $FFC8 *F0 $FFC7 $FFC6 * *SAM Set Clear *V2 $FFC5 $FFC4 *V1 $FFC3 $FFC2 *V0 $FFC1 $FFC0 * *VDG Set Clear * *V3-V7 $FF22 - Bits 3 - 7 (Auto-set by Basic) * * First, set Starting Address ORG $8B00 *set_video_mode STA $FFD2 * Clear F6 * STA $FFD0 * Clear F5 * STA $FFCE * Clear F4 * STA $FFCD * SET F3 * STA $FFCA * Clear F2 * STA $FFC8 * Clear F1 * STA $FFC6 * Clear F0 * Effect - set starting address of video to 0001 0000 0000 0000 = $1000 LDA #%1010 1000 * G2C STA $FF22 * Write STA $FFC4 * Clear V2 STA $FFC3 * SET V1 STA $FFC0 * Clear V0 *set_some_pix LDX #$1000 * Start of VidRam * LDY #$200 * 512 out of 2048= 1/4 of the page * LDA #%0101 0101 * Solid Magenta * *set_pix_loop STA ,X+ * Write pixel and increase address * LEAY -1,Y * Decrease Counter by One * BNE set_pix_loop * Not zero? Repeat loopy_loop JMP loopy_loop END $8B00