<div dir="ltr">From very old memory, I think that Modula-2 had a construct to allow reading and writing from absolute memory addresses.  I don't know if a Wirth compiler had this, or if it was from someone else.<div><br></div><div>Something similar to</div><div> </div><div>VAR  memmap [ 100B ] : ARRAY 3 OF INTEGER;</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 30, 2016 at 1:06 AM, Skulski, Wojciech <span dir="ltr"><<a href="mailto:skulski@pas.rochester.edu" target="_blank">skulski@pas.rochester.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Chris:<br>
<span class=""><br>
> But Oberon variables are not mapped to registers that can be changed "from<br>
> the other end". The explicit operations SYSTEM.GET and SYSTEM.PUT are used<br>
> when you want to transfer data between a peripheral register (mapped to an<br>
> absolute memory location) and Oberon variables.<br>
<br>
</span> Pardon my C on this mailing list. The point I want to make is that it is ugly.<br>
<br>
Here is a sample of my C program where I am reading from an absolute memory location mapped to an FPGA register. The "target" is an integer, which is then used to retrieve a value from the FPGA. The address is not constant, but I can make it constant using a #define.<br>
<br>
 long target; /* long int holds addr, needs a typecast */<br>
 short value;<br>
 short *virt_saddr;     /* typed pointer to 16-bit short */<br>
<br>
 virt_saddr = (short *) target; /* convert target to pointer */<br>
 value = * virt_saddr;            /* read value from address   */<br>
<br>
I would prefer to write in C something like the following:<br>
<br>
 short value at address; /* address is constant, which is most often the case*/<br>
<br>
In Oberon it would be something like this:<br>
<br>
 CONST address = ....;<br>
  VAR value: INTEGER AT address; (* address must be constant*)<br>
<br>
Now the question, is this unreasonable?<br>
<br>
Wojtek<br>
<div class="HOEnZb"><div class="h5">--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br>
<a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon" rel="noreferrer" target="_blank">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><font face="'times new roman', serif">(email is my preferred communication media)</font><div><font face="'times new roman', serif">Aubrey McIntosh, Ph.D.<br>1502 Devon Circle<br>Austin TX 78723-1814</font><div><div><span style="line-height:20px;background-color:rgb(255,255,255)"><font face="'times new roman', serif">(512)-348-7401</font></span></div></div><div><div><br></div></div></div></div></div>
</div>