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.