1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-23 19:29:37 +00:00
cc65/libsrc/tgi/tgi_map_mode.s
cuz 8ecdf9d6b7 Renamed ..._deinstall -> ..._uninstall.
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
2003-02-11 12:37:46 +00:00

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