2 ; Ullrich von Bassewitz, 21.06.2002
4 ; Common functions of the tgi graphics kernel.
7 .include "tgi-kernel.inc"
8 .include "tgi-error.inc"
14 ;----------------------------------------------------------------------------
19 _tgi_drv: .res 2 ; Pointer to driver
20 _tgi_error: .res 1 ; Last error code
21 _tgi_mode: .res 1 ; Graphics mode or zero
22 _tgi_curx: .res 2 ; Current drawing cursor X
23 _tgi_cury: .res 2 ; Current drawing cursor Y
24 _tgi_color: .res 1 ; Current drawing color
25 _tgi_bgcolor: .res 1 ; Current background color
26 _tgi_xres: .res 2 ; X resolution of the current mode
27 _tgi_yres: .res 2 ; Y resolution of the current mode
28 _tgi_colorcount:.res 1 ; Number of available colors
29 _tgi_pagecount: .res 1 ; Number of available screen pages
34 ; Jump table for the driver functions.
36 tgi_install: jmp $0000
37 tgi_deinstall: jmp $0000
40 tgi_control: jmp $0000
42 tgi_setviewpage:jmp $0000
43 tgi_setdrawpage:jmp $0000
44 tgi_setcolor: jmp $0000
45 tgi_setpixel: jmp $0000
46 tgi_getpixel: jmp $0000
52 ;----------------------------------------------------------------------------
53 ; void __fastcall__ tgi_setup (void);
54 ; /* Setup the driver and graphics kernel once the driver is loaded */
65 jsr tgi_set_ptr ; load _tgi_drv into ptr1
67 ; Copy the jump vectors
71 @L1: inx ; Skip JMP opcode
72 jsr copy ; Copy one byte
73 jsr copy ; Copy one byte
74 cpx #(TGI_HDR_JUMPCOUNT*3)
77 ; Check for emulation vectors needed
80 ora tgi_bar+2 ; Do we have a BAR vector?
82 lda #<tgi_emu_bar ; Use emulation if no
87 ; Copy variables. Beware: We are using internal knowledge about variable
90 @L2: ldy #TGI_HDR_XRES
99 ; Initialize variables
103 @L4: sta _tgi_error,x ; Clear error/mode/curx/cury
107 jsr tgi_install ; Call driver install routine
109 ; jmp tgi_fetch_error
111 ;----------------------------------------------------------------------------
112 ; Fetch the error code from the driver and place it into the global error
113 ; variable. The function will also return the error in A and the flags from
114 ; loading the error code are set.
123 ;----------------------------------------------------------------------------
124 ; Load the pointer to the tgi driver into ptr1.
133 ;----------------------------------------------------------------------------
134 ; Set an invalid argument error