1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-05 21:29:03 +00:00
cc65/libsrc/tgi/tgi_init.s

53 lines
1.5 KiB
ArmAsm
Raw Normal View History

;
; Ullrich von Bassewitz, 21.06.2002
;
; void __fastcall__ tgi_init (unsigned char mode);
; /* Initialize the given graphics mode. */
.include "tgi-kernel.inc"
.include "tgi-error.inc"
.importzp ptr1
.import _tgi_done
.import _tgi_setcolor
.export _tgi_init
_tgi_init:
pha ; Save mode
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.
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
; Set the drawing color to the maximum color
@L1: ldx _tgi_colorcount
dex
txa
jsr _tgi_setcolor ; tgi_setcolor (tgi_getmaxcolor ());
; Clear the screen
jmp tgi_clear
; Error exit
@L9: lda #$00
sta _tgi_mode ; Clear the mode if init was not successful
rts