INTRODUCTION our own C/65, are "loose" enough to allow you to cheat most of the time.) Here, the declarations establish that "pc" (program counter) will always point to (i.e., contain the address of) a byte-sized item. But "pi" will always point to a word-sized (double byte) item. Now, actually, these variables point to nothing until we put an address into them, which we proceed to do via "pc = 84" and "pi = 85". And, finally, the actual "assignments" to or from memory are handled by the last line in each problem solution. Now, all this looks very complicated and hardly worthwhile, but the advantage of C is, once we have made all our declarations, that we can use the variables and structures wherever we need them in a program module, secure in the knowledge that our code is at least partially self-documented. Pascal Actually, standard Pascal has no methods whatsoever available to solve these problems. Remember, Pascal is a "school" language, and access to the machine level was definitely not a desirable feature in such an environment. In fact, most of the Pascal compilers in use today have invented some way to circumvent the restrictions of "standard" Pascal, and it is largely because of such "inventions" that the various versions of the language are incompatible. Anyway, Atari Pascal does provide a method to access individual memory cells. I am not sure that the method I will show here is the best or easiest way, but it appears to work. Again, the solution is presented first: Note: the code in this first part is common to both problems, both for H and V. (* in the "type" declarations section *) charaddr = record row : char; end; wordaddr = record col : integer; end; (* in the "var" declarations section *) pc : ^charaddr; pw : ^wordaddr; rowcrs : absolute [84] ^charaddr; colcrs : absolute [85] ^wordaddr; Problem 1. (includes the above common code) (* execution code in the procedure *) pc : = rowcrs; pw : = colcrs;