========================== Study of Memory Management by Lawrence J Futhey ========================== o Description This is the information I have so far in relation to addresses in memory that are changed during the shifting between stack memory management and split stack memory management. Address ranges not important to this study have been blocked out. I have found the following locations to use stack memory management: - In zshell (which is probably why the other management scheme wasn't seen) - In Ram Screen under Memory - In Delete Screen under Memory - In some other menus such as Prgm, graph, etc. I have found the following location to use split stack memory management: - In some menus and on the base screen of the ti-85 All information was collected using: - Ti85 Emulator v1.5 (using rom 10.0) - vdir - dif o File1: backzs.bin File2: backti.bin - crossed with backti.bin vs backmem.bin - crossed with backmem.bin vs backdel.bin - crossed with backzs.bin vs backmem.bin o File Definitions backti.bin - taken from the custom menu before entering zshell backzs.bin - taken from the zshell menu backmem.bin - taken from the ram screen under the memory menu backdel.bin - taken from the delete menu under the memory menu o Notation * - addresses that are most likely unimportant for my purposes, based on cross referencing the 4 dumps. x - Addresses furnished by Rob Taylor o VAT Data used for Study Stack memory VAT: ================= Vat Directory 0.9b Variable MemSize MemLoc VatLoc Type v--- memaddr+varlength ZShell 1206 8bf7 fa6f 12 90a3 # 14 90b1 fa65 18 90ba ! 7 90ba fa60 18 90bc Ans 1033 90a7 fa5b 0 94a9 xStat 11 90a3 fa54 4 90a5 yStat 11 90a5 fa4b 4 90a7 caved 2502 90bc fa42 12 9a79 CENGINE 2591 9a79 fa39 12 a48d SENGINE 2313 a48d fa2e 12 ad8b spectre 2504 ad8b fa23 12 b748 brkout 4049 b748 fa18 12 c70f RAID 3611 c70f fa0e 12 d522 viewvat 366 d522 fa06 12 d685 hexview 312 d685 f9fb 12 d7b2 14 Variable(s) 20403 bytes 8763 bytes free Split Stack Memory VAT: ======================= Vat Directory 0.9b Variable MemSize MemLoc VatLoc Type v--- memaddr+varlength ZShell 1206 8bf7 fa6f 12 90a3 # 14 90b1 fa65 18 90ba ! 7 90ba fa60 18 90bc Ans 1033 90a7 fa5b 0 94a9 xStat 11 90a3 fa54 4 90a5 yStat 11 90a5 fa4b 4 90a7 --------------------------------------------- SPLIT caved 2502 b2fb fa42 12 bcb8 CENGINE 2591 bcb8 fa39 12 c6cc SENGINE 2313 c6cc fa2e 12 cfca spectre 2504 cfca fa23 12 d987 brkout 4049 d987 fa18 12 e94e RAID 3611 e94e fa0e 12 f761 viewvat 366 f761 fa06 12 f8c4 hexview 312 f8c4 f9fb 12 f9f1 14 Variable(s) 20403 bytes 8763 bytes free o Resulting Memory Changes (4 cross references) -- DELETE 8000 - 80C3 (MOSTLY UNIMPORTANT STUFF FOR MY USES) -- 8109 : D8 | 4C * 810a : 43 | 49 * 810b : 6F | 53 * 810c : 70 | 54 * 810d : 79 | 20 810e : 72 | 20 810f : 69 | 20 8110 : 67 | 20 8111 : 68 | 32 * 8112 : 74 | 32 * 8114 : 28 | 56 * 8115 : 43 | 45 * 8116 : 29 | 43 * 8118 : 31 | 20 8119 : 39 | 20 811a : 39 | 20 811b : 35 | 20 8124 : 44 | 20 8125 : 61 | 20 8126 : 6E | 20 8128 : 45 | 20 8129 : 62 | 53 * 812a : 6C | 54 * 812b : 65 | 52 * 8135 : 4D | 55 * 8136 : 61 | 20 8137 : 67 | 20 8138 : 6E | 20 8139 : 75 | 20 813a : 73 | 20 813c : 48 | 30 * 813d : 61 | 20 813e : 67 | 43 * 813f : 61 | 4F * 8140 : 6E | 4E * 8141 : 64 | 53 * 8142 : 65 | 20 8143 : 72 | 20 814d : 52 | 20 814e : 6F | 20 814f : 62 | 20 8151 : 54 | 31 * 8152 : 61 | 20 8153 : 79 | 47 * 8154 : 6C | 44 * 8155 : 6F | 42 * 8156 : 72 | 20 818a : 0 | 1 818d : AF | AD * 818e : 43 | 5C * 818f : 18 | F4 * 8190 : 45 | 34 * 8191 : 35 | A5 * 8192 : 45 | 5C * 8193 : 28 | A9 * 8194 : 43 | 5C * 8195 : 43 | AA * 8196 : 45 | 5C * 8197 : 5D | 6E * 8198 : 45 | 5C * 8199 : 1 | 7 * 819a : 1 | 1E * 81e1 : 14 | 34 * 81f0 : B1 | 5D 81f1 : 8B | 57 820e : FC | A4 * 820f : 8B | 9 * 8210 : 0 | EE * 8211 : 0 | 7 * 8212 : 0 | A4 * 8213 : 0 | 64 * 8333 : 19 | 4A * 8347 : 4 | 0 8352 : 2E | 32 8353 : E | A * 85e3 : F1 | B2 x 85e4 : F9 | D7 85e7 : FB | BC x 85e8 : B2 | 90 85eb : F1 | B2 x 85ec : F9 | D7 8629 : B9 | 7A x 862a : FA | D8 x 8a96 : 43 | 20 8a97 : 6F | 20 8a98 : 70 | 20 8a99 : 79 | 20 8a9a : 72 | 20 8a9b : 69 | 20 8a9c : 67 | 20 8a9d : 68 | 20 8a9e : 74 | 20 8aa0 : 28 | 20 8aa1 : 43 | 20 8aa2 : 29 | 20 8aa4 : 31 | 20 8aa5 : 39 | 20 8aa6 : 39 | 20 8aa7 : 35 | 20 8ab0 : 44 | 20 8ab1 : 61 | 20 8ab2 : 6E | 20 8ab4 : 45 | 20 8ab5 : 62 | 20 8ab6 : 6C | 20 8ab7 : 65 | 20 8ac1 : 4D | 20 8ac2 : 61 | 20 8ac3 : 67 | 20 8ac4 : 6E | 20 8ac5 : 75 | 20 8ac6 : 73 | 20 8ac8 : 48 | 20 8ac9 : 61 | 20 8aca : 67 | 20 8acb : 61 | 20 8acc : 6E | 20 8acd : 64 | 20 8ace : 65 | 20 8acf : 72 | 20 8ad9 : 52 | 20 8ada : 6F | 20 8adb : 62 | 20 8add : 54 | 20 8ade : 61 | 20 8adf : 79 | 20 8ae0 : 6C | 20 8ae1 : 6F | 20 8ae2 : 72 | 20 8b27 : F1 | B2 -> x first byte of free memory 8b28 : F9 | D7 -> 8b98 : 7D | 3E x 8b99 : FA | D8 8bd2 : C1 | 3F = x length of last var??? 8bd3 : DD | 22 = 8bdd : F1 | B2 -> x first byte of free memory ?????? 8bde : F9 | D7 -> 8bdf : F1 | B2 -> x 8be0 : F9 | D7 -> 8be1 : F1 | B2 -> x 8be2 : F9 | D7 -> -- DELETE BINARIES -- DELETE VAT DIFFERENCES -- fba8 : F | 10 * fbbe : 7A | F9 * fbc0 : DB | 8 * fbc1 : 70 | 0 * fbc2 : 87 | 6C * fbc3 : 81 | 1 * fbc4 : 0 | 1E * fbc5 : 8 | 1 * fbc6 : 1 | 6C * fbc7 : 80 | 1 fbc8 : 7A | DB * fbc9 : 1 | 70 * fbca : DB | 0 * fbcb : 70 | 0 * fbcc : F9 | F0 * fbcd : B2 | 7 * fbce : FE | D6 * fbcf : FF | 6B * fbd0 : 56 | F0 * fbd1 : 73 | 1 * fbd2 : C4 | F0 * fbd3 : 6B | 81 * fbd4 : F0 | 87 * fbd5 : 81 | 80 * fbd6 : BC | 0 * fbd8 : F9 | F0 * fbd9 : B2 | 7 * fbda : FE | 13 * fbdb : FF | 30 * fbdc : D1 | 48 * fbdd : D8 | 6C * fbde : 1 | 87 * fbe0 : 0 | 6C * fbe1 : 9 | 1 * fbe2 : 14 | 6C * fbe3 : 0 | 1 * fbe4 : D1 | 1E * fbe5 : 45 | 1 * fbe6 : 9F | 6C fbe7 : 33 | 1 fbe8 : 4 | 1E = Isn't the stack down around here ????? fbe9 : 3F | 1 fbea : 6D | 70 fbf2 : 1 | 7 * -- DELETE VIDEO MEMORY -- -- Larry Futhey lfuthey@d.umn.edu http://www.d.umn.edu/~lfuthey