1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-18 15:05:14 +00:00
cc65/libsrc/tgi/tgi_init.s
uz e319fc217b Hold the maximum X and Y coordinate in variables instead of calculating them
when needed. The variables make signed compares in the line clipper easier.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4450 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-06 12:02:52 +00:00

81 lines
2.0 KiB
ArmAsm

;
; Ullrich von Bassewitz, 21.06.2002
;
; 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
;----------------------------------------------------------------------------
.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
jsr pushax ; Heigh scale
jsr pusha ; Text direction = TGI_TEXT_VERTICAL
jsr _tgi_textstyle ; A = Font = TGI_FONT_BITMAP
; Clear the screen
jmp tgi_clear
; Error exit
@L9: rts
.endproc