X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=xortest.s;h=9995ff1689ecf050e20447d36d1d5327b998153c;hb=fdbddf268ed06d10b5039606ee268c5a095de593;hp=ce892745b8f9ec33692c4d02ac0e50b5a62531ba;hpb=c4e4cf9bda70eed128e224e914b8abf6ae334a5d;p=a2gs_xortest diff --git a/xortest.s b/xortest.s index ce89274..9995ff1 100644 --- a/xortest.s +++ b/xortest.s @@ -1,5 +1,7 @@ org $800 +LARGE = 0 + REG_NEWVID = $c029 FB_BASE = $e12000 @@ -12,7 +14,7 @@ FB_BASE = $e12000 rep #$30 ; accum/index 16bit lda #$0000 ldx #$0000 -fillrest +fillrest ; @30f stal $e19d00,x inx inx @@ -20,7 +22,7 @@ fillrest bne fillrest lda #$0000 -cmap pha +cmap pha ; @31d sta 0 asl tax ; offset = i * 2 @@ -34,28 +36,46 @@ cmap pha stal $e19e00,x pla inc - cmp #$000f + cmp #$0010 bne cmap 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 @@ -67,6 +87,6 @@ xloop tya cmp #200 bne yloop -infloop bra infloop +infloop bra infloop ; @36d ; vi:ft=asm_ca65