home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / misc / ti-ram.txt < prev    next >
Text File  |  1994-11-15  |  8KB  |  179 lines

  1. -----------------------------------------------------------------------------
  2. -----------------------------------------------------------------------------
  3.   TI-RAM.TXT        A Programmer's Guide to the TI-85 RAM       Version 0.5
  4.                         Copyright (c) 1994 Dan Eble
  5. -----------------------------------------------------------------------------
  6. -----------------------------------------------------------------------------
  7.  
  8. This document is unrefined, but you have it anyway.  Use it how you will.
  9. If you have questions, contact me at Dan.Eble@CommLink.org.
  10. Additions and revisions are welcome.
  11. Feel free to distribute this document in unmodified form.
  12.  
  13. Table of Interesting Data
  14. ─────────────────────────
  15.      0681: character lookup table for something
  16. 6    0C6B: 05, "xStat"
  17. 6    0C71: 05, "yStat"
  18. 128  1439: table for calculating transcendental functions
  19. REAL 1F42: bad number
  20. REAL 1F4C: same as 1F42
  21. REAL 1F56: same as 1F42
  22. REAL 1F60: 0
  23. REAL 1F6A: 1
  24.      41E5: page 7: pointers to error strings
  25.      422B: page 7: error strings
  26.      42DD: page 1: pointers to catalog entries for alphabet
  27. 112  4DC8: page 1: bitmap similar to menu box
  28. 250  4E38: page 1: 124 pointers to menus (indexed by secondary menu type byte)
  29. 1878 4F32: page 1: menu data structures (page 1)
  30.                    1 byte for something
  31.                    1 byte for number of pointers following
  32.                    n pointers
  33.      5688: page 1: menu items (See listing above)
  34.      695C: page 1: mode screen strings (see above)
  35.      6D7F: page 7: pointers to BASIC commands in token order
  36.      6EFC: page 5: link error strings
  37.      6F7D: page 7: pointers to BASIC commands in alphabetical order
  38.      70E7: page 7: list of BASIC commands
  39.      71B2: page 5: variable type strings
  40.      723E: page 1: normal character set (01-E0)
  41.      7268: page 5: zoom variable names (Func, Param, Pol, DifEq, ZRCL)
  42.      76D4: page 7: pointers to variable names
  43.      773E: page 7: variable name strings
  44.      7775: page 5: "fnIntErr"
  45.      7869: page 7: more pointers to variable names
  46.      7936: page 1: character set for menus (00-D7)
  47.      7D7A: page 4: system variable and constant names (cannot store to these)
  48.      7F4F: page 7: filler FF's 
  49.      7FFF: page 7: ROM version byte
  50.                    57h: 3.0A
  51.                    8Eh: 4.0
  52.                    3Dh: 6.0
  53.                    97h: 8.0
  54. Byte 8000: translated scancode of key currently pressed, but
  55.            00 if 01BEh (get key) has been called
  56. Byte 8001: translated scancode of key currently pressed
  57. Byte 8002: same as 8001, but FFh is more than one key is pressed
  58. Byte 8003: countdown until key repeat (only runs for arrows and DEL)
  59. Byte 8004: bit 2 set = key down now
  60. Byte 8006: scancode of last key pressed
  61. Byte 8007: contrast (00-1F)
  62. Byte 8008: ?? timer for cursor blink?
  63. Byte 800C: current row of text cursor (0-7)
  64. Byte 800D: current column of text cursor (0-14h)
  65. Byte 800E: current character at cursor position
  66. Word 8074: ? pointer
  67. Byte 8080: counter for "busy" indicator
  68. Byte 8081: bitmap for "busy" indicator
  69. 10   8082: 1 Byte type of variable found afterward
  70.        1 Byte length of name of variable to locate
  71.            8 Bytes of name plus padding (left over from last name)
  72. Word 80C6: pointer to current home-screen input program (untokenized, length-data form)
  73. Word 80C8: pointer to last-entry program (tokenized, length-data form)
  74.            also pointer to the top of user memory
  75. Word 80CA: ?           
  76. Word 80CC: number of used user memory bytes 
  77.            add this to (80C8) to find first byte of free memory
  78. Word 80CE: ? pointer
  79. Word 80D0: pointer to Ans
  80. Word 80D2: ? pointer (500E) (page 1. char map?)
  81. Word 80D4: ? pointer (5321) (page 1. menu pointers?)
  82. Word 80D6: ? pointer
  83. 168  80DF: text screen memory (8*21 = 168 bytes)
  84. Byte 8187: secondary cursor row
  85. Byte 8188: secondary cursor column
  86. Byte 8189: ??? more secondary data (copied from 8B2F)
  87. Byte 818A: ??? more secondary data (copied from 8358)
  88. Byte 818B: ??? more secondary data (copied from (834B) AND 16)
  89. Byte 818C: data for international character symbol
  90.            0 = nothing, 1 = accent, 2 = grave, 3 = circumflex, 4 = dieresis
  91. Word 81BE: memory checksum from 8BF7 to FA6F
  92. Word 81D1: pointer to current menu item
  93. Word 81E1: ? page 1 pointer to a menu structure? 
  94. Byte 81E3: \_ info about memory page?, what to do (run code, fetch submenu)
  95. Byte 81E4: /  for 81E1?
  96. Word 81E5: pointer to last sub-menu structure (page 1)
  97.            one byte for something
  98.            one byte for number of pointers to follow
  99.            n words for n pointers
  100. Byte 81E7: \_ info for 81E5?
  101. Byte 81E8: / 
  102. Word 81ED: ? pointer (81E1)
  103. Word 81F0: pointer to custom pointers
  104.            (There's a 09 before the 0F. What do it do?)
  105. Word 81F4: ? pointer to last menu? (look at 5664)
  106. Word 81FC: ? pointer (81F0) (pointer to pointer to custom pointers???)
  107. Word 820B: ? pointer (81E1) (another one??)
  108. 40   8254: user menu string buffer -- 5 sets of data (one for each menu key)
  109.            1 byte: 00h = not used, 80h = used (on menu)
  110.            6 bytes: menu item
  111.            1 byte: 00h
  112.      827C: buffer for name of last error
  113. Byte 8333: x coordinate of menu text cursor
  114. Byte 8334: y coordinate of menu text cursor
  115. Byte 8337: last error number
  116.      8346: A table of bitmapped system data.  IY usually points here.
  117.      844C: REALS. range vars.
  118. 1024 8641: graphics screen memory (64*128/8 = 1024 bytes)
  119. REAL 8A41: 12345
  120. REAL 8A4B: 67890
  121. Word 8A5F: pointer to last-entry code (tokenized data form)
  122. Word 8A61: pointer to code of last program executed 
  123. Word 8A6B: secondary text memory (for page-flipping technique?)
  124. Word 8B19: pointer to current home-screen input (untokenized data form)
  125. Word 8B1B: pointer to start of user memory
  126. Word 8B1D: subtract (8B1B) from this to get number of free bytes 
  127. Word 8B1F: ? pointer
  128. Word 8B25: pointer to start (end :) ) of first user variable VAT entry
  129. Byte 8B3A: fixed-point decimal place (FFh for floating point)
  130. 32   8BB1: custom menu pointers ( 1 byte  = ??)
  131.                 ( 1 byte  = 0F = # of items)
  132.                 (15 words = pointers)
  133.                 ( 1 byte  = 00)
  134. Word 8BE1: pointer to REAL+10 (what significance?)
  135. Word 8BEB: pointer to one byte before end of VAT (backwards)
  136. Loc  FA6F: end of VAT (it's built upside-down)
  137. 1024 FC00: real bitmapped video memory
  138.  
  139. Table of Bitmapped Data
  140. ─────────────────────────
  141. (IY+00) or (8346)
  142.  bit 3 set: keystroke available
  143.  bit 2 set: Degree \_ angle display mode
  144.        res: Radian /
  145. (IY+02) or (8348)
  146.  bit 7 set: DifEq \
  147.  bit 6 set: Param  \_ graph
  148.  bit 5 set: Pol    /  modes
  149.  bit 4 set: Func  /
  150. (IY+05) or (834B)
  151.  bit 4 set: use "insert" cursor
  152.  bit 3 set: print normal font in inverse color, or XOR menu font with screen
  153.        res: print normal font in normal color, or overwrite menu font 
  154.  bit 1 set: print 7 rows of menu font
  155.        res: print 6 rows
  156. (IY+08) or (834E)
  157.  bit 0 set: dxNDer \_ method of differentiation
  158.        res: dxDer1 /
  159. (IY+0A) and (IY+0B), or (8350) and (8351)
  160.  bits 7-6: 11= SphereV \
  161.            01= CylV     >- vector display modes
  162.            00= RectV   /
  163.  bit 5 set: PolarC \_ coordinate display mode
  164.        res: RectC  /
  165.  bits 4-2: 100= Bin \
  166.            010= Oct  \_ number
  167.            001= Hex  /  bases
  168.            000= Dec / 
  169.  bits 1-0: 11= Eng    \
  170.            01= Sci     >- number display modes
  171.            00= Normal /
  172. (IY+0D) or (8353)
  173.  bit 1 set: affect text memory as well as screen
  174. (IY+12) or (8358)
  175.  bit 5 set: use "alpha" cursor
  176.  bit 4 set: use "Alpha" cursor
  177.  bit 3 set: use "2nd" cursor
  178.  bit 1 set: there are valid data in the 8-byte buffer at (8078)
  179.  bit 0 set: the "busy" indicator is turned on