cc65/libsrc/tgi/tgi_init.s

75 lines
2.0 KiB
ArmAsm

;
; Ullrich von Bassewitz, 21.06.2002
;
; void tgi_init (void);
; /* Initialize the already loaded graphics driver */
.include "tgi-kernel.inc"
.include "tgi-error.inc"
.import pushax, pusha, decax1
.importzp ptr1
;----------------------------------------------------------------------------
.code
.proc _tgi_init
jsr _tgi_done ; Switch off graphics if needed
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