[Oberon] How to use SYSTEM.VAL safely?

Joerg joerg.straube at iaeth.ch
Wed Mar 31 19:10:39 CEST 2021


Okay, you want to display decimal nbrs upto 00..99 and the interface to your segment display is BCD.

Then
SYSTEM.PUT(SEVENSEGADR,
   val DIV 10*16 + val MOD 10);
does the job

br
Jörg

> Am 31.03.2021 um 18:51 schrieb Jeff Maggio <jmaggio14 at gmail.com>:
> 
> 
> Thanks!
> 
> I'm actually using binary-coded decimal, which is a little different. I'm writing two separate 4bit decimal digits alongside each other. Each 4bit field drives a separate seven segment display on our embedded board
> 
> best,
> Jeff
> 
> 
>> Jeff For bitwise operations SYSTEM.VAL is safe.
>> The hint to the garbage collection is rather meant in case you manipulate POINTERs by doing calculations on them using INTEGERs.
>> Common low-level programming practice BTW: If I understand correctly what you want to do with SetVal is, interprete the decimal input value as hex nbr. SetVal(73) will store value 115 at address SEVENSEGADR. If so, I would code it as follows:
>> SYSTEM.PUT(SEVENSEGADR,
>> val DIV 10*16 + val MOD 10); Perhaps an other method would be to call SetVal with the hex value in the first place:
>> SetValue(73H);
>> and SerVal just does
>> SYSTEM.PUT(SEVENSEGADR, val) br
>> Jörg
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20210331/7f4592f1/attachment.html>


More information about the Oberon mailing list