]> git.sur5r.net Git - cc65/blob - asminc/tgi-kernel.inc
Removed (pretty inconsistently used) tab chars from source code base.
[cc65] / asminc / tgi-kernel.inc
1 ;*****************************************************************************/
2 ;*                                                                           */
3 ;*                                tgi-kernel.inc                             */
4 ;*                                                                           */
5 ;*                             TGI kernel interface                          */
6 ;*                                                                           */
7 ;*                                                                           */
8 ;*                                                                           */
9 ;* (C) 2002-2012, Ullrich von Bassewitz                                      */
10 ;*                Roemerstrasse 52                                           */
11 ;*                D-70794 Filderstadt                                        */
12 ;* EMail:         uz@cc65.org                                                */
13 ;*                                                                           */
14 ;*                                                                           */
15 ;* This software is provided 'as-is', without any expressed or implied       */
16 ;* warranty.  In no event will the authors be held liable for any damages    */
17 ;* arising from the use of this software.                                    */
18 ;*                                                                           */
19 ;* Permission is granted to anyone to use this software for any purpose,     */
20 ;* including commercial applications, and to alter it and redistribute it    */
21 ;* freely, subject to the following restrictions:                            */
22 ;*                                                                           */
23 ;* 1. The origin of this software must not be misrepresented; you must not   */
24 ;*    claim that you wrote the original software. If you use this software   */
25 ;*    in a product, an acknowledgment in the product documentation would be  */
26 ;*    appreciated but is not required.                                       */
27 ;* 2. Altered source versions must be plainly marked as such, and must not   */
28 ;*    be misrepresented as being the original software.                      */
29 ;* 3. This notice may not be removed or altered from any source              */
30 ;*    distribution.                                                          */
31 ;*                                                                           */
32 ;*****************************************************************************/
33
34
35
36 ;------------------------------------------------------------------------------
37 ; The driver header
38
39 .struct TGI_HDR
40         ID                  .byte   3   ; Contains 0x74, 0x67, 0x69 ("tgi")
41         VERSION             .byte   1   ; Interface version
42         VARS                .struct
43             XRES            .word   1   ; X resolution
44             YRES            .word   1   ; Y resolution
45             COLORCOUNT      .byte   1   ; Number of available colors
46             PAGECOUNT       .byte   1   ; Number of screens available
47             FONTWIDTH       .byte   1   ; System font width in pixel
48             FONTHEIGHT      .byte   1   ; System font height in pixel
49             ASPECTRATIO     .word   1   ; Fixed point 8.8 format
50             FLAGS           .byte   1   ; TGI driver flags
51         .endstruct
52         JUMPTAB             .struct
53             INSTALL         .addr       ; INSTALL routine
54             UNINSTALL       .addr       ; UNINSTALL routine
55             INIT            .addr       ; INIT routine
56             DONE            .addr       ; DONE routine
57             GETERROR        .addr       ; GETERROR routine
58             CONTROL         .addr       ; CONTROL routine
59             CLEAR           .addr       ; CLEAR routine
60             SETVIEWPAGE     .addr       ; SETVIEWPAGE routine
61             SETDRAWPAGE     .addr       ; SETDRAWPAGE routine
62             SETCOLOR        .addr       ; SETCOLOR routine
63             SETPALETTE      .addr       ; SETPALETTE routine
64             GETPALETTE      .addr       ; GETPALETTE routine
65             GETDEFPALETTE   .addr       ; GETDEFPALETTE routine
66             SETPIXEL        .addr       ; SETPIXEL routine
67             GETPIXEL        .addr       ; GETPIXEL routine
68             LINE            .addr       ; LINE routine
69             BAR             .addr       ; BAR routine
70             TEXTSTYLE       .addr       ; TEXTSTYLE routine
71             OUTTEXT         .addr       ; OUTTEXT routine
72             IRQ             .addr       ; IRQ routine
73         .endstruct
74 .endstruct
75
76 ;------------------------------------------------------------------------------
77 ; The TGI API version, stored at TGI_HDR_VERSION
78
79 TGI_API_VERSION         = $04
80
81 ;------------------------------------------------------------------------------
82 ; Bitmapped tgi driver flags, stored in TGI_HDR::VARS::FLAGS.
83 ; Beware: Some of the bits are tested using the BIT instruction, so do not
84 ; change the values without checking the code!
85
86 TGI_BM_FONT_FINESCALE   = $80           ; Bitmap fonts are fine grained scalable
87
88 ;------------------------------------------------------------------------------
89 ; Text constants
90
91 TGI_FONT_BITMAP         = 0
92 TGI_FONT_VECTOR         = 1
93
94 TGI_TEXT_HORIZONTAL     = 0
95 TGI_TEXT_VERTICAL       = 1
96
97 ;----------------------------------------------------------------------------
98 ; Results of tgi_outcode
99
100 TGI_CLIP_NONE           = $00
101 TGI_CLIP_LEFT           = $01
102 TGI_CLIP_RIGHT          = $02
103 TGI_CLIP_BOTTOM         = $04
104 TGI_CLIP_TOP            = $08
105
106 ;------------------------------------------------------------------------------
107 ; ASM accessible color constants
108
109         .global tgi_color_black:zp      ; Target-specific value for black
110         .global tgi_color_white:zp      ; Target-specific value for white
111
112 ;------------------------------------------------------------------------------
113 ; C accessible variables
114
115         .global _tgi_drv                ; Pointer to driver
116         .global _tgi_error              ; Last error code
117         .global _tgi_gmode              ; Flag: graphics mode active
118         .global _tgi_curx               ; Current drawing cursor X
119         .global _tgi_cury               ; Current drawing cursor Y
120         .global _tgi_color              ; Current drawing color
121         .global _tgi_font               ; Which font to use
122         .global _tgi_textdir            ; Current text direction
123         .global _tgi_vectorfont         ; Pointer to vector font
124         .global _tgi_textscalew         ; Text magnification for the width
125         .global _tgi_textscaleh         ; Text magnification for the height
126         .global _tgi_charwidth          ; Width of scaled system font char
127         .global _tgi_charheight         ; Height of scaled system font char
128         .global _tgi_xres               ; X resolution of the current mode
129         .global _tgi_yres               ; Y resolution of the current mode
130         .global _tgi_xmax               ; Maximum X coordinate
131         .global _tgi_ymax               ; Maximum Y coordinate
132         .global _tgi_colorcount         ; Number of available colors
133         .global _tgi_pagecount          ; Number of available screen pages
134         .global _tgi_fontwidth          ; System font width
135         .global _tgi_fontheight         ; System font height
136         .global _tgi_aspectratio        ; Aspect ratio, fixed point 8.8
137         .global _tgi_flags              ; TGI driver flags
138
139 ;------------------------------------------------------------------------------
140 ; ASM accessible variables
141
142         .global tgi_clip_x1             ; Coordinate for line clipper
143         .global tgi_clip_y1             ; Coordinate for line clipper
144         .global tgi_clip_x2             ; Coordinate for line clipper
145         .global tgi_clip_y2             ; Coordinate for line clipper
146
147 ;------------------------------------------------------------------------------
148 ; Driver entry points
149
150         .global tgi_install
151         .global tgi_uninstall
152         .global tgi_init
153         .global tgi_done
154         .global tgi_geterror
155         .global tgi_control
156         .global tgi_clear
157         .global tgi_setviewpage
158         .global tgi_setdrawpage
159         .global tgi_setcolor
160         .global tgi_setpalette
161         .global tgi_getpalette
162         .global tgi_getdefpalette
163         .global tgi_setpixel
164         .global tgi_getpixel
165         .global tgi_line
166         .global tgi_bar
167         .global tgi_textstyle
168         .global tgi_outtext
169
170 ;------------------------------------------------------------------------------
171 ; ASM functions
172
173         .global tgi_clear_ptr
174         .global tgi_clippedline
175         .global tgi_curtoxy
176         .global tgi_getset
177         .global tgi_imulround
178         .global tgi_inv_arg
179         .global tgi_inv_drv
180         .global tgi_linepop
181         .global tgi_outcode
182         .global tgi_popxy
183         .global tgi_popxy2
184         .global tgi_set_ptr
185
186 ;------------------------------------------------------------------------------
187 ; C callable functions
188
189         .global _tgi_arc
190         .global _tgi_bar
191         .global _tgi_circle
192         .global _tgi_clear
193         .global _tgi_done
194         .global _tgi_ellipse
195         .global _tgi_getaspectratio
196         .global _tgi_getcolor
197         .global _tgi_getcolorcount
198         .global _tgi_getdefpalette
199         .global _tgi_geterror
200         .global _tgi_geterrormsg
201         .global _tgi_getmaxcolor
202         .global _tgi_getmaxx
203         .global _tgi_getmaxy
204         .global _tgi_getpagecount
205         .global _tgi_getpalette
206         .global _tgi_getpixel
207         .global _tgi_gettextheight
208         .global _tgi_gettextwidth
209         .global _tgi_getxres
210         .global _tgi_getyres
211         .global _tgi_gotoxy
212         .global _tgi_imulround
213         .global _tgi_init
214         .global _tgi_install
215         .global _tgi_install_vectorfont
216         .global _tgi_ioctl
217         .global _tgi_line
218         .global _tgi_lineto
219         .global _tgi_load_driver
220         .global _tgi_outtext
221         .global _tgi_outtextxy
222         .global _tgi_pieslice
223         .global _tgi_setaspectratio
224         .global _tgi_setcolor
225         .global _tgi_setdrawpage
226         .global _tgi_setpalette
227         .global _tgi_setpixel
228         .global _tgi_settextdir
229         .global _tgi_settextscale
230         .global _tgi_settextstyle
231         .global _tgi_setviewpage
232         .global _tgi_uninstall
233         .global _tgi_unload