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