ce892745b8f9ec33692c4d02ac0e50b5a62531ba
[a2gs_xortest] / xortest.s
1         org $800
2
3 REG_NEWVID = $c029
4 FB_BASE = $e12000
5
6         clc
7         xce
8
9         lda #$c1
10         sta REG_NEWVID
11
12         rep #$30        ; accum/index 16bit
13         lda #$0000
14         ldx #$0000
15 fillrest
16         stal $e19d00,x
17         inx
18         inx
19         cpx #$100
20         bne fillrest
21         
22         lda #$0000
23 cmap    pha
24         sta 0
25         asl
26         tax     ; offset = i * 2
27         asl
28         asl
29         asl
30         ora 0
31         sta 0
32         xba
33         ora 0
34         stal $e19e00,x
35         pla
36         inc
37         cmp #$000f
38         bne cmap
39
40 YVAL    = 0
41 TMPVAL  = 1
42
43         sep #$20        ; accum 8bit
44         ldx #0          ; fb index
45         stz YVAL
46 yloop   ldy #0000       ; column/2 on Y reg
47 xloop   tya
48         asl
49         and #$0f
50         sta TMPVAL      ; save first pixel X coordinate
51         inc             ; increment by 1 for the next pixel
52         eor YVAL
53         asl             ; move next pixel value to high nibble
54         asl
55         asl
56         asl
57         ora TMPVAL      ; first pixel X -> low nibble
58         eor YVAL
59
60         stal FB_BASE, x ; write the pixel pair
61         inx
62         iny
63         cpy #160
64         bne xloop
65         inc YVAL
66         lda YVAL
67         cmp #200
68         bne yloop
69
70 infloop bra infloop
71
72         ; vi:ft=asm_ca65