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 +