A92: More TI-92 Plus Assembly info


[Prev][Next][Index][Thread]

A92: More TI-92 Plus Assembly info



There is a table of ROM addresses at $478A74.  Too bad there are no function names.  I bet TI's info will use these... (how else could they make ASM programs run on all versions?)
 
THE TABLE OF ROM ADDRESSES IS POINTED TO AT RAM ADDRESS $C8!!!  This might be exactly how TI intended for us to make ASM programs.
 
There are 684 (decimal) ROM functions in the table, so TI will most likely be releasing A LOT of info.
 
Please note that functions without a ROM func number are most likely either wrong, there is another version somewhere else, or TI wants us to use a different function.
 
Here's an ASM macro to call a ROM function using its function number:
ROM_CALL macro
  move.l ($C8),a5
  add.l #\1*4,a5
  move.l (a5),a5
  jsr (a5)
  endm
 
To call sprintf, for example, you could write:
  ROM_CALL $53
 
Here's a list of ROM functions I have found so far.  The names are those from Fargo II's TIOS library.  All values are in hexadecimal.  (The meanings of the characters after the addresses are listed at the end of this file)
 
Function            Addr    ROM func #
ST_eraseHelp        4FFEF4  0E3
ST_showHelp         4FFFCE  0E6
HeapFree            49AF82  097
HeapAlloc           49B000  090
ER_catch            420B36* 154
ER_success          420B5C* 155
reset_link          421FB0  24C
flush_link          422022  24D
tx_free             42208A* 252
transmit            4220A8  250
receieve            422122* 24F
HeapFreeIndir       49AF68  098
ST_busy             4FFEB8  0E2
ER_throwVar         420B0C  153
HeapRealloc         49B17C  09D
sprintf             4E086C  053
DrawStrXY           48713A  1A9
DrawCharXY          487A84?
FontSetSys          485BC4  18F
DrawTo              485C8E* 19C
MoveTo              485CCC* 19D
PortSet             485CDA* 1A2
PortRestore         485CFE* 1A3
WinActivate         519F52* 001
WinClose            51A300* 00B
WinOpen             51AAB6* 01E
WinStrXY            51B302* 026
SF_font             407280**
HeapAllocThrow      49B124  093
strcmp              56E740  271
ROM_base            400000  n/a
FontGetSys          485C16* 18E
strlen              56E330  27E
strncmp             56E398* 272
strncpy             56E3EC  26D
strcat              56E6F0  26E
strchr              56E714* 274
labs                56E9B4*
memset              56E9C0* 27C
memcmp              56EADC* 270
memcpy              56EB24* 26A
memmove             56EC58* 26B
abs                 56ECB0
rand                56E89C@
srand               56E8DE
_du32u32            56E7B8* 2AA
_ds32s32            56E7E2* 2A8
_du16u16            56E878* 2A6
_ds16u16            56E888* 2A4
_ru32u32            56E8F4* 2AB
_rs32s32            56E914* 2A9
_ru16u16            56E968* 2A7
_rs16u16            56E976* 2A5
DerefSym            50596A* 079
 
* Not tested
** Font order different from original (Now medium,small,large)
? DrawCharXY required extra values on the stack for unknown reasons.  TI may have a new version of this function which does not require these extra values, as the old function is not in the ROM table.
@ The version of rand here only genereated values between 0 and 16383.  There may be a different version elsewhere.