Woz BASIC variable storage table ================================== 4a.4b = lo mem pointer 4c.4d = hi mem pointer cc.cd = end of variable pointer Integers -------- byte_position ===================================== 00 variable name 1 01 variable name 2 02 next variable ptr hi 03 next variable ptr lo 04 value hi 05 value lo variable name 1 = ASCII * 2, (example- a variable named "A" would be $82, since ASCII "A" = $41 and $41 * 2 = $82) variable name 2 = The second position of the variable name. If variable name is A1 then variable name 2 = "1" ASCII + $80 (example- if A1 is variable name then variable name 2 = "1" and value in this position is $31 (ASCII for "1") + $80 (decimal 128) = $B1 ) next variable ptr hi, lo = points to the next variable in the table. If this = end of variable pointer (cc.cd) then it is last. value hi, lo = the value assigned to the variable Strings -------- byte_position ==================================== 00 variable name 1 01 variable name 2 02 next variable ptr hi 03 next variable ptr lo 04 value 05 value ... terminator ($1E) variable name 1 = ASCII * 2, (example- a variable named "A" would be $82, since ASCII "A" = $41 and $41 * 2 = $82) variable name 2 = The second position in the table of a string variable will be $40 next variable ptr hi, lo = points to the next variable in the table. If this = end of variable pointer (cc.cd) then it is last. value = ASCII + $80 terminator $1E