]> git.sur5r.net Git - cc65/blob - asminc/tgi-kernel.inc
012dfdc100f799060736b5742fc5a986a16ac436
[cc65] / asminc / tgi-kernel.inc
1 ;*****************************************************************************/
2 ;*                                                                           */
3 ;*                                tgi-kernel.inc                             */
4 ;*                                                                           */
5 ;*                             TGI kernel interface                          */
6 ;*                                                                           */
7 ;*                                                                           */
8 ;*                                                                           */
9 ;* (C) 2002-2009, 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
48             FONTHEIGHT      .byte   1   ; System font height
49             ASPECTRATIO     .word   1   ; Fixed point 8.8 format
50         .endstruct
51         JUMPTAB             .struct
52             INSTALL         .addr       ; INSTALL routine
53             UNINSTALL       .addr       ; UNINSTALL routine
54             INIT            .addr       ; INIT routine
55             DONE            .addr       ; DONE routine
56             GETERROR        .addr       ; GETERROR routine
57             CONTROL         .addr       ; CONTROL routine
58             CLEAR           .addr       ; CLEAR routine
59             SETVIEWPAGE     .addr       ; SETVIEWPAGE routine
60             SETDRAWPAGE     .addr       ; SETDRAWPAGE routine
61             SETCOLOR        .addr       ; SETCOLOR routine
62             SETPALETTE      .addr       ; SETPALETTE routine
63             GETPALETTE      .addr       ; GETPALETTE routine
64             GETDEFPALETTE   .addr       ; GETDEFPALETTE routine
65             SETPIXEL        .addr       ; SETPIXEL routine
66             GETPIXEL        .addr       ; GETPIXEL routine
67             LINE            .addr       ; LINE routine
68             BAR             .addr       ; BAR routine
69             TEXTSTYLE       .addr       ; TEXTSTYLE routine
70             OUTTEXT         .addr       ; OUTTEXT routine
71             IRQ             .addr       ; IRQ routine
72         .endstruct
73 .endstruct
74
75 ;------------------------------------------------------------------------------
76 ; The TGI API version, stored at TGI_HDR_VERSION
77
78 TGI_API_VERSION         = $03
79
80 ;------------------------------------------------------------------------------
81 ; Color and text constants
82
83 TGI_COLOR_BLACK         = 0
84 TGI_COLOR_WHITE         = 1
85
86 TGI_FONT_BITMAP         = 0
87 TGI_FONT_VECTOR         = 1
88
89 TGI_TEXT_HORIZONTAL     = 0
90 TGI_TEXT_VERTICAL       = 1
91
92 ;------------------------------------------------------------------------------
93 ; Variables
94
95         .global _tgi_drv                ; Pointer to driver
96         .global _tgi_error              ; Last error code
97         .global _tgi_gmode              ; Flag: graphics mode active
98         .global _tgi_curx               ; Current drawing cursor X
99         .global _tgi_cury               ; Current drawing cursor Y
100         .global _tgi_color              ; Current drawing color
101         .global _tgi_font               ; Which font to use
102         .global _tgi_textdir            ; Current text direction
103         .global _tgi_textscalew         ; Text magnification for the width
104         .global _tgi_textscaleh         ; Text magnification for the height
105         .global _tgi_charwidth          ; Width of scaled system font char
106         .global _tgi_charheight         ; Height of scaled system font char
107         .global _tgi_xres               ; X resolution of the current mode
108         .global _tgi_yres               ; Y resolution of the current mode
109         .global _tgi_colorcount         ; Number of available colors
110         .global _tgi_pagecount          ; Number of available screen pages
111         .global _tgi_fontwidth          ; System font width
112         .global _tgi_fontheight         ; System font height
113         .global _tgi_aspectratio        ; Aspect ratio, fixed point 8.8
114
115 ;------------------------------------------------------------------------------
116 ; Driver entry points
117
118         .global tgi_install
119         .global tgi_uninstall
120         .global tgi_init
121         .global tgi_done
122         .global tgi_geterror
123         .global tgi_control
124         .global tgi_clear
125         .global tgi_setviewpage
126         .global tgi_setdrawpage
127         .global tgi_setcolor
128         .global tgi_setpalette
129         .global tgi_getpalette
130         .global tgi_getdefpalette
131         .global tgi_setpixel
132         .global tgi_getpixel
133         .global tgi_line
134         .global tgi_bar
135         .global tgi_textstyle
136         .global tgi_outtext
137
138 ;------------------------------------------------------------------------------
139 ; ASM functions
140
141         .global tgi_getset
142         .global tgi_inv_arg
143         .global tgi_inv_drv
144         .global tgi_linepop
145         .global tgi_set_ptr
146         .global tgi_popxy
147         .global tgi_popxy2
148         .global tgi_curtoxy
149
150 ;------------------------------------------------------------------------------
151 ; C callable functions
152
153         .global _tgi_load
154         .global _tgi_load_driver
155         .global _tgi_unload
156         .global _tgi_install
157         .global _tgi_uninstall
158         .global _tgi_init
159         .global _tgi_ioctl
160         .global _tgi_done
161         .global _tgi_geterror
162         .global _tgi_geterrormsg
163         .global _tgi_clear
164         .global _tgi_getpagecount
165         .global _tgi_setviewpage
166         .global _tgi_setdrawpage
167         .global _tgi_getcolorcount
168         .global _tgi_getmaxcolor
169         .global _tgi_setcolor
170         .global _tgi_getcolor
171         .global _tgi_setpalette
172         .global _tgi_getpalette
173         .global _tgi_getdefpalette
174         .global _tgi_getxres
175         .global _tgi_getmaxx
176         .global _tgi_getyres
177         .global _tgi_getmaxy
178         .global _tgi_getpixel
179         .global _tgi_setpixel
180         .global _tgi_gotoxy
181         .global _tgi_line
182         .global _tgi_lineto
183         .global _tgi_circle
184         .global _tgi_ellipse
185         .global _tgi_bar
186         .global _tgi_textscale
187         .global _tgi_textstyle
188         .global _tgi_textwidth
189         .global _tgi_textheight
190         .global _tgi_outtext
191         .global _tgi_outtextxy
192
193