;
; Ullrich von Bassewitz, 21.06.2002
;
-; void __fastcall__ tgi_init (unsigned char mode);
-; /* Initialize the given graphics mode. */
+; void __fastcall__ tgi_init (void);
+; /* Initialize the already loaded graphics driver */
.include "tgi-kernel.inc"
.include "tgi-error.inc"
- .import _tgi_done
- .export _tgi_init
+ .import pushax, pusha, decax1
+ .importzp ptr1
+
+
+;----------------------------------------------------------------------------
+
+.code
+.proc _tgi_init
-_tgi_init:
- pha ; Save mode
jsr _tgi_done ; Switch off graphics if needed
- jsr tgi_init ; Initialize the mode
- jsr tgi_fetch_error ; Get the error code
- pla ; Restore the mode
- ldx _tgi_error ; Did we have an error before?
- bne @L1 ; Jump if yes
- sta _tgi_mode ; Set the current mode if not
-@L1: rts
+ jsr tgi_init ; Go into graphics mode
+ jsr tgi_geterror ; Get the error code
+ sta _tgi_error ; Save for later reference
+ cmp #TGI_ERR_OK
+ bne @L9 ; Jump on error
+
+ inc _tgi_gmode ; Remember that graph mode is active
+
+; Get the maximum X and Y coordinate
+
+ jsr _tgi_getxres
+ jsr decax1
+ sta _tgi_xmax
+ stx _tgi_xmax+1
+
+ jsr _tgi_getyres
+ jsr decax1
+ sta _tgi_ymax
+ stx _tgi_ymax+1
+
+; Do driver initialization. Set draw and view pages.
+
+ lda #0
+ jsr tgi_setviewpage
+ lda #0
+ jsr tgi_setdrawpage
+
+; Set the default palette.
+
+ jsr tgi_getdefpalette ; Get the default palette into A/X
+ sta ptr1
+ stx ptr1+1 ; Save it
+ jsr tgi_setpalette ; Set the default palette.
+ jsr tgi_geterror ; Clear a possible error code
+
+; Set the drawing color to white
+
+@L1: lda #tgi_color_white
+ jsr _tgi_setcolor ; tgi_setcolor (TGI_COLOR_WHITE);
+
+; Set the text style
+
+ lda #<$100
+ ldx #>$100
+ jsr pushax ; Width scale = 1.0
+ jsr pushax ; Heigh scale = 1.0
+ jsr pusha ; Text direction = TGI_TEXT_HORIZONTAL
+ jmp _tgi_settextstyle ; A = Font = TGI_FONT_BITMAP
+
+; Error exit
+
+@L9: rts
+
+.endproc
+