From e4183cdb16f93005e6fe930ccd4613bae8a83e3b Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Thu, 15 Sep 2022 12:06:41 +0300 Subject: [PATCH] fixed pixel order, added LARGE option --- xortest.s | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/xortest.s b/xortest.s index ce89274..9a32dc2 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 @@ -39,23 +41,41 @@ cmap pha 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 -- 1.7.10.4