]> git.sur5r.net Git - cc65/blob - libsrc/atari/atari-14.s
5362034127b09ade4dde55c9a4aa311cc1e31551
[cc65] / libsrc / atari / atari-14.s
1 ;
2 ; Graphics driver for the 160x192x2 (CIO mode 14, ANTIC mode C) on the Atari.
3 ;
4 ; Fatih Aygun (2009)
5 ;
6
7         .include        "atari.inc"
8         .include        "zeropage.inc"
9
10         .include        "tgi-kernel.inc"
11         .include        "tgi-mode.inc"
12         .include        "tgi-error.inc"
13
14         .macpack        generic
15
16 ; ******************************************************************************
17
18         ; ----------------------------------------------------------------------
19         ;
20         ; Constants and tables
21         ;
22         ; ----------------------------------------------------------------------
23
24 ; Graphics mode
25         .define grmode 14
26 ; X resolution
27         .define x_res 160
28 ; Y resolution
29         .define y_res 192
30 ; Number of colors
31         .define colors 2
32 ; Pixels per byte
33         .define ppb 8
34 ; Screen memory size in bytes
35         .define scrsize x_res * y_res / ppb
36 ; Pixel aspect ratio
37         .define aspect $0200                            ; 2:1
38 ; Free memory needed
39         .define mem_needed 3305
40 ; Number of screen pages
41         .define pages 1
42
43 .rodata
44         mask_table:                             ; Mask table to set pixels
45                 .byte   %10000000, %01000000, %00100000, %00010000, %00001000, %00000100, %00000010, %00000001
46         masks:                                  ; Color masks
47                 .byte   %00000000, %11111111
48         bar_table:                              ; Mask table for BAR
49                 .byte   %11111111, %01111111, %00111111, %00011111, %00001111, %00000111, %00000011, %00000001, %00000000
50         default_palette:
51                 .byte   $00, $0E
52
53 .code
54
55 ; ******************************************************************************
56
57 .proc SETPALETTE
58
59         ; ----------------------------------------------------------------------
60         ;
61         ; SETPALETTE: Set the palette (in ptr1)
62         ;
63         ; ----------------------------------------------------------------------
64
65 .code
66         ; Copy the palette
67         ldy     #colors - 1
68 loop:   lda     (ptr1),y
69         sta     palette,y
70         dey
71         bpl     loop
72
73         ; Get the color entries from the palette
74         lda     palette
75         sta     COLOR4
76         lda     palette + 1
77         sta     COLOR0
78
79         ; Done, reset the error code
80         lda     #TGI_ERR_OK
81         sta     error
82         rts
83 .endproc
84
85 .include "atari_tgi_common.inc"