;
; 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 pushax, pusha, decax1
.importzp ptr1
- .import _tgi_done
- .import _tgi_setcolor
- .export _tgi_init
-_tgi_init:
- pha ; Save mode
+
+;----------------------------------------------------------------------------
+
+.code
+.proc _tgi_init
+
jsr _tgi_done ; Switch off graphics if needed
- pla
- sta _tgi_mode ; Remember the mode
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
-; Do driver initialization. First set the default palette.
+ 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
- ora ptr1+1 ; Do we have a default palette?
- beq @L1 ; Jump if no
- jsr tgi_setpalette ; Set the default palette
+ 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 the maximum color
+; Set the drawing color to white
-@L1: ldx _tgi_colorcount
- dex
- txa
- jsr _tgi_setcolor ; tgi_setcolor (tgi_getmaxcolor ());
+@L1: lda #tgi_color_white
+ jsr _tgi_setcolor ; tgi_setcolor (TGI_COLOR_WHITE);
; Set the text style
- lda #TGI_TEXT_HORIZONTAL
- sta _tgi_textdir
- ldx #1
- stx _tgi_textmagx
- ldy #1
- sty _tgi_textmagy
- jsr tgi_textstyle ; Tell the driver about 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
-; Clear the screen
+; Error exit
- jmp tgi_clear
+@L9: rts
-; Error exit
+.endproc
-@L9: lda #$00
- sta _tgi_mode ; Clear the mode if init was not successful
- rts