<div dir="ltr">While developing the compiler[1], we got a question<div>whether it is possible to write the following:<br><br><div>PROCEDURE DWord(n: INTEGER);<br>...<br>DWord (90909090H)<div><br>(where INTEGER is 32-bit).<br><br>Some compilers give an error (i.e. VOC), while this works in the</div><div>Project Oberon (2013) compiler. This would turn out to be quite convenient,</div><div>because the purpose of DWord in our code was to write 4 bytes to the file</div><div>given as INTEGER (using little-endian byte order).</div><div><br></div><div>DWord has the following implementation (module Generator[2]):</div><div><br>PROCEDURE DWord (n: INTEGER);<br>BEGIN<br>  Files.Write (r, CHR (n MOD 100H));<br>  Files.Write (r, CHR (n DIV 100H MOD 100H));<br>  Files.Write (r, CHR (n DIV 10000H MOD 100H));<br>  Files.Write (r, CHR (n DIV 1000000H))<br>END DWord;<br><br>The Oberon language report does not indicate that literal 90909090H</div><div>should be considered an error if INTEGER has 32 bits.</div><div><br>In this experiment, an online RISC emulator[3] was used.<br></div></div></div><div><br></div><div>References:</div><div>[1] <a href="https://github.com/kekcleader/oberon">https://github.com/kekcleader/oberon</a></div><div>[2] <a href="https://github.com/kekcleader/oberon/blob/master/Mod/Generator.Mod">https://github.com/kekcleader/oberon/blob/master/Mod/Generator.Mod</a></div><div>[3] <a href="http://schierlm.github.io/OberonEmulator/emu-wasm.html?image=FullDiskImage&width=1024&height=768">http://schierlm.github.io/OberonEmulator/emu-wasm.html?image=FullDiskImage&width=1024&height=768</a></div></div>