http://www.tienza.es/crux/src/www.jwz.org/xscreensaver/xscreensaver-5.05.tar.gz
[xscreensaver] / hacks / images / m6502 / byterun.asm
1 ; testing byterun compression
2  
3 start:
4   lda #<logo
5   sta $0
6   lda #>logo
7   sta $1
8   lda #$00
9   sta $2
10   lda #$02
11   sta $3
12
13 decrunchLoop:
14   lda $3
15   cmp #$6
16   bne moreWork 
17   rts
18 moreWork:
19   ldy #0
20   lda ($0),y
21   cmp #$ff
22   bne notCrunched
23   iny
24   lda ($0),y ; repeat #
25   sta $4
26   iny
27   lda ($0),y ; color
28   ldy $4
29 drawLoop:
30   ldx #0
31   sta ($2,x)
32   jsr nextPixel
33   dey
34   bne drawLoop
35   jsr getNextByte
36   jsr getNextByte
37   jmp decrunchLoop
38 notCrunched:
39   ldx #0
40   sta ($2,x)
41   jsr nextPixel
42   jsr getNextByte
43   jmp decrunchLoop
44
45 getNextByte:
46   inc $0
47   lda $0
48   cmp #$00
49   bne notHi
50   inc $1
51 notHi:
52   rts
53
54 nextPixel:
55   inc $2
56   ldx $2
57   cpx #$00
58   bne notNextLine
59   inc $3
60 notNextLine:
61   rts
62
63
64 logo:
65  dcb $ff,43,1,$f,$f,$f,$c,$f,$f,$f,$ff,24,1,$c,$f,$c,0
66  dcb $c,$f,$c,$ff,24,1,0,$f,$c,0,$c,$f,$c,$ff,24,1
67  dcb $c,$f,$c,0,$c,$f,$c,$ff,24,1,0,$f,$c,0,$c,$f,$c
68  dcb $ff,24,1,$c,$f,0,0,$c,$f,$c,$ff,24,1,0,$f,$c,0
69  dcb $c,$f,$c,$ff,24,1,0,$f,$c,0,$c,$f,0,$ff,24,1
70  dcb 0,$f,$c,0,$c,$f,0,$ff,23,1,$f,0,$f,$c,0,$c,$f,0,$f
71  dcb $ff,22,1,$c,0,1,$c,0,$c,$f,0,$c,$ff,21,1
72  dcb $f,0,0,1,0,0,$c,1,0,0,$ff,21,1,$c,0,$c,1,$c,0
73  dcb $c,1,$c,0,$c,$ff,19,1,$f,0,0,$f,1,$c,0
74  dcb $c,1,$f,0,0,$f,$ff,17,1,$f,0,0,0,1,1,$c,0
75  dcb $c,1,1,0,0,0,$ff,16,1,$f,0,0,0,$f,1,1,0,0
76  dcb $c,1,1,$f,0,0,0,$f,$ff,13,1
77  dcb $c,0,0,0,$c,1,1,1,$c,0,$c,1,1,1,$c,0,0,0,$c
78  dcb $ff,10,1,$c,0,0,0,0,$c,1,1,1,1,0,0
79  dcb $c,1,1,1,1,0,0,0,0,0,$c,$ff,8,1
80  dcb 0,0,0,0,$c,1,1,1,1,1,0,0
81  dcb $c,1,1,1,1,1,$c,0,0,0,0,1,1,1,1,1
82  dcb 1,1,1,1,0,0,$c,1,1,1,1,1,1,1,$c,0
83  dcb $c,1,1,1,1,1,1,$f,$c,0,0,$ff,18,1,$f
84  dcb $ff,53,1,0,$f,1,0,0,0,0,0,$f,1,$c
85  dcb $c,1,1,1,$c,0,0,0,1,1,0,$f,$f,1,1,1
86  dcb 1,1,1,1,$c,0,0,1,1,1,0,$f,1,1,$f,0
87  dcb 0,$f,1,1,0,$f,1,$c,$c,1,0,$f,1,1,1,1
88  dcb 1,1,1,1,0,$f,0,$f,1,1,0,$f,1,1,$f,$c
89  dcb $c,$c,1,1,0,1,1,$f,0,1,0,$f,1,1,1,1
90  dcb 1,1,1,1,0,1,$c,$f,1,1,$c,$f,1,1,0,$f
91  dcb $f,0,1,1,0,$f,$f,0,$f,1,0,$f,1,1,1,1
92  dcb 1,1,1,$c,0,$c,0,0,1,1,0,$f,1,1,0,$c
93  dcb $c,0,$f,1,0,$f,0,$f,1,1,0,$f,1,1,1,1
94  dcb 1,1,1,0,$c,$f,$f,0,$f,1,$c,$f,1,$c,$c,$f
95  dcb $f,$c,$c,1,0,1,$f,$c,1,1,0,$f,1,1,1,1
96  dcb 1,1,$f,0,1,1,1,$c,$c,1,0,$f,1,0,$f,1
97  dcb 1,$f,0,1,0,$f,1,0,$f,1,0,$f,$ff,16,1
98  dcb $f,$ff,5,1,$f,1,1,1,$f,$ff,38,1
99
100