org $800
+LARGE = 0
+
REG_NEWVID = $c029
FB_BASE = $e12000
rep #$30 ; accum/index 16bit
lda #$0000
ldx #$0000
-fillrest
+fillrest ; @30f
stal $e19d00,x
inx
inx
bne fillrest
lda #$0000
-cmap pha
+cmap pha ; @31d
sta 0
asl
tax ; offset = i * 2
YVAL = 0
TMPVAL = 1
+YNIB = 2
- sep #$20 ; accum 8bit
- ldx #0 ; fb index
+ sep #$20 ; accum 8bit @337
+ ldx #0000 ; fb index
stz YVAL
-yloop ldy #0000 ; column/2 on Y reg
-xloop tya
+yloop ldy #0000 ; column/2 on Y reg @33e
+xloop lda YVAL ; @341
+
+ DO LARGE
+ lsr
+ FIN
+
+ and #$0f
+ sta YNIB
+ tya
+
+ DO LARGE = 0
asl
+ inc ; increment X, next pixel on low nibble
+ FIN
+
and #$0f
sta TMPVAL ; save first pixel X coordinate
- inc ; increment by 1 for the next pixel
- eor YVAL
+
+ DO LARGE = 0
+ dec ; decrement back for high nibble pixel
+ FIN
+
+ eor YNIB
asl ; move next pixel value to high nibble
asl
asl
asl
ora TMPVAL ; first pixel X -> low nibble
- eor YVAL
+ eor YNIB
stal FB_BASE, x ; write the pixel pair
inx
cmp #200
bne yloop
-infloop bra infloop
+infloop bra infloop ; @36d
; vi:ft=asm_ca65