]> git.sur5r.net Git - cc65/blob - libsrc/tgi/tgi-kernel.s
Implementing TGI
[cc65] / libsrc / tgi / tgi-kernel.s
1 ;
2 ; Ullrich von Bassewitz, 21.06.2002
3 ;
4 ; Common functions of the tgi graphics kernel.
5 ;
6
7         .include        "tgi-kernel.inc"
8
9 ;----------------------------------------------------------------------------
10 ; Variables
11
12 .bss
13
14 _tgi_drv:       .res    2               ; Pointer to driver
15 _tgi_error:     .res    1               ; Last error code
16
17
18 .data
19
20 ; Jump table for the driver functions.
21
22 tgi_install:    jmp     $0000
23 tgi_deinstall:  jmp     $0000
24 tgi_init:       jmp     $0000
25 tgi_post:       jmp     $0000
26 tgi_control:    jmp     $0000
27 tgi_clear:      jmp     $0000
28 tgi_setcolor:   jmp     $0000
29 tgi_setpixel:   jmp     $0000
30 tgi_getpixel:   jmp     $0000
31 tgi_line:       jmp     $0000
32 tgi_bar:        jmp     $0000
33 tgi_circle:     jmp     $0000
34
35
36 ;----------------------------------------------------------------------------
37 ; Setup the TGI driver once it is loaded.
38
39 tgi_setup:
40         lda     _tgi_drv
41         sta     ptr1
42         lda     _tgi_drv+1
43         sta     ptr1+1
44
45         ldy     #TGI_HDR_JUMPTAB
46         ldx     #1
47
48 @L1:    lda     (ptr1),y
49         sta     tgi_install,x
50         iny
51         inx
52         lda     (ptr1),y
53         sta     tgi_install,x
54         inx
55         cpx     #(TGI_HDR_JMPCOUNT*3)
56         bne     @L1
57
58         lda     #$00
59         sta     _tgi_error
60
61         jsr     tgi_install             ; Call driver install routine
62
63 ;       jmp     tgi_fetch_error
64
65 ;----------------------------------------------------------------------------
66 ; Fetch the error code from the driver and place it into the global error
67 ; variable.
68
69 tgi_fetch_error:
70         jsr     tgi_set_ptr
71         ldy     #TGI_HDR_ERROR
72         lda     (ptr1),y
73         sta     _tgi_error
74         rts
75
76 ;----------------------------------------------------------------------------
77 ; Load the pointer to the tgi driver into ptr1.
78
79 tgi_set_ptr:
80         lda     _tgi_drv
81         sta     ptr1
82         lda     _tgi_drv+1
83         sta     ptr1+1
84         rts
85