comparison clojure/com/aurellem/exp/notes.txt @ 241:7984a084aa07

still working on overall stragety... going to sleep on it.
author Robert McIntyre <rlm@mit.edu>
date Sun, 25 Mar 2012 02:35:14 -0500
parents 25022f3c6607
children 22f58fa47c3c
comparison
equal deleted inserted replaced
240:25022f3c6607 241:7984a084aa07
14 Perform save corruption. 14 Perform save corruption.
15 15
16 move one of the other items that wasn't destroyed (but not 16 move one of the other items that wasn't destroyed (but not
17 burn-heal) to the money counter to get a bunch of money. 17 burn-heal) to the money counter to get a bunch of money.
18 18
19 buy 94 more burn heals. 95 burn heals spells out the 19 buy 95 more burn heals. 95 burn heals spells out the
20 address that will safely return control to the pokemon 20 address that will safely return control to the pokemon
21 kernel. 21 kernel.
22 22
23 deposit the cancel item one at a time into the item computer 23 [repeat following 35 times]
24 35 times. 24 0x00
25 25 0x01
26 deposit 95 burn heals into item computer. This establishes
27 the return point for the program so it doesn't crash the game.
28
29 throw away the second character of rival's name until it is
30 equal to D5. Now the first two characters of rival's name
31 spell out the start point of the program that will be
32 constructed in the item computer.
33
34 throw away the fourth and sixth characters of rival's name
35 until it they are equal to D5. The (thrid and fourth) and
36 characters of rival's name now spell out the target item
37 which we will manipulate in the item computer.
38
39 toss the zero items past the map data in item memory to
40 spell the following assembly (using underflow) and combine
41 with rival's name like so
42 26
43 0x00 27 0x00
44 0xFA -- first part of "Load A from Literal address" 28 0xFA -- first part of "Load A from Literal address"
45 29
46 third rival's name character 30 third rival's name character
47 fourth rival's name character -- target item address 31 xD5 -- target item address
48 32
49 0x00 33 0x00
50 0x3C -- increment A register 34 0x3C -- increment A register
51 35
52 0x00 36 0x00
53 0xEA -- first part of "Save A to literal address" 37 0xEA -- first part of "Save A to literal address"
54 38
55 fifth rival's name character 39 fifth rival's name character
56 fourth rival's name character -- target item address 40 xD5 -- target item address
57 41
58 0x00 42 0x00
59 0xC3 -- first part of "Absolute Jump to literal address" 43 0xC3 -- first part of "Absolute Jump to literal address"
60 44
61 burn-heal 45 burn-heal
62 x 95 -- address of Route 3 memory-function 46 x 95 -- address of Route 3 memory-function
63 47
48 0x00
49 0x??
64 50
65 shift rival's name's first two characters into 51 shift rival's name's first two characters into
66 mem-function-address. 52 mem-function-address.
67
68
69 53
70 now close the menu and continue item manipulations using the 54 now close the menu and continue item manipulations using the
71 newly constructed program. Starting and then canceling the 55 newly constructed program. Starting and then canceling the
72 start menu activates the program. 56 start menu activates the program.
73 57