mirror of
https://github.com/cc65/cc65.git
synced 2024-11-02 18:06:48 +00:00
8ecdf9d6b7
Rename tgi_setup to tgi_install. Make tgi_install and tgi_deinstall user callable. More cosmetic changes. git-svn-id: svn://svn.cc65.org/cc65/trunk@1966 b7a2c559-68d2-44c3-8de9-860c34a00d81
55 lines
1.2 KiB
ArmAsm
55 lines
1.2 KiB
ArmAsm
;
|
|
; Ullrich von Bassewitz, 31.05.2002
|
|
;
|
|
; const char* __fastcall__ tgi_map_mode (unsigned char mode);
|
|
; /* Map tgi mode codes to driver names */
|
|
;
|
|
|
|
.export _tgi_map_mode
|
|
.import _tgi_mode_table
|
|
.import return0
|
|
.importzp tmp1
|
|
|
|
;----------------------------------------------------------------------------
|
|
; BEWARE: The current implementation of tgi_map_mode does not work with tables
|
|
; larger that 255 bytes!
|
|
|
|
.code
|
|
|
|
.proc _tgi_map_mode
|
|
|
|
sta tmp1 ; Save mode
|
|
ldy #$00
|
|
|
|
@L0: lda _tgi_mode_table,y
|
|
beq NotFound ; Branch if mode code zero
|
|
cmp tmp1
|
|
beq Found
|
|
|
|
; Skip the name
|
|
|
|
@L1: iny
|
|
lda _tgi_mode_table,y
|
|
bne @L1 ; Loop until end marker found
|
|
iny ; Skip end marker
|
|
bne @L0 ; Branch always
|
|
|
|
; Mode not found
|
|
|
|
NotFound:
|
|
jmp return0
|
|
|
|
; Mode found
|
|
|
|
Found: tya
|
|
ldx #>_tgi_mode_table
|
|
sec ; Account for the mode byte
|
|
adc #<_tgi_mode_table ; Return pointer to file name
|
|
bcc @L1
|
|
inx
|
|
@L1: rts
|
|
|
|
.endproc
|
|
|
|
|