Mercurial > vba-clojure
diff clojure/com/aurellem/exp/notes.txt @ 240:25022f3c6607
working on preliminary script to bootstrap my way into a RAM writing program
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sun, 25 Mar 2012 01:53:29 -0500 |
parents | 19fd38fe376e |
children | 7984a084aa07 |
line wrap: on
line diff
1.1 --- a/clojure/com/aurellem/exp/notes.txt Sun Mar 25 00:38:45 2012 -0500 1.2 +++ b/clojure/com/aurellem/exp/notes.txt Sun Mar 25 01:53:29 2012 -0500 1.3 @@ -1,5 +1,11 @@ 1.4 +******** Game Sequence 1.5 + 1.6 + 1.7 start game 1.8 1.9 +name rival "<space><PK>G<PK>G<PK>" 1.10 +(0x7F 0xE1 0x86 0xE1 0x86 0xE1 in character codes) 1.11 + 1.12 get pikachu, fight rival, deliver oak's parcel 1.13 1.14 buy 5 items from viridian store, with the last one being a 1.15 @@ -11,7 +17,80 @@ 1.16 burn-heal) to the money counter to get a bunch of money. 1.17 1.18 buy 94 more burn heals. 95 burn heals spells out the 1.19 -address that will safely return control to pokemon. 1.20 +address that will safely return control to the pokemon 1.21 +kernel. 1.22 1.23 +deposit the cancel item one at a time into the item computer 1.24 +35 times. 1.25 1.26 +deposit 95 burn heals into item computer. This establishes 1.27 +the return point for the program so it doesn't crash the game. 1.28 1.29 +throw away the second character of rival's name until it is 1.30 +equal to D5. Now the first two characters of rival's name 1.31 +spell out the start point of the program that will be 1.32 +constructed in the item computer. 1.33 + 1.34 +throw away the fourth and sixth characters of rival's name 1.35 +until it they are equal to D5. The (thrid and fourth) and 1.36 +characters of rival's name now spell out the target item 1.37 +which we will manipulate in the item computer. 1.38 + 1.39 +toss the zero items past the map data in item memory to 1.40 +spell the following assembly (using underflow) and combine 1.41 +with rival's name like so 1.42 + 1.43 +0x00 1.44 +0xFA -- first part of "Load A from Literal address" 1.45 + 1.46 +third rival's name character 1.47 +fourth rival's name character -- target item address 1.48 + 1.49 +0x00 1.50 +0x3C -- increment A register 1.51 + 1.52 +0x00 1.53 +0xEA -- first part of "Save A to literal address" 1.54 + 1.55 +fifth rival's name character 1.56 +fourth rival's name character -- target item address 1.57 + 1.58 +0x00 1.59 +0xC3 -- first part of "Absolute Jump to literal address" 1.60 + 1.61 +burn-heal 1.62 +x 95 -- address of Route 3 memory-function 1.63 + 1.64 + 1.65 +shift rival's name's first two characters into 1.66 +mem-function-address. 1.67 + 1.68 + 1.69 + 1.70 +now close the menu and continue item manipulations using the 1.71 +newly constructed program. Starting and then canceling the 1.72 +start menu activates the program. 1.73 + 1.74 + 1.75 + 1.76 +********** END Game Sequence 1.77 + 1.78 + 1.79 + 1.80 + 1.81 + 1.82 + 1.83 + 1.84 + 1.85 + 1.86 +valid start addresses for the initial bootstrap program are 1.87 +the following: 1.88 + 1.89 +0xD31D - 0xD41B 1.90 + --OR-- 1.91 +0xD53A - 0XD59C 1.92 + 1.93 + 1.94 + 1.95 + 1.96 +