Search found 439 matches

by cfbsoftware
Tue Jul 26, 2011 1:30 pm
Forum: Getting Started
Topic: IRQTimer.mod:TimerHandler:"Update vic priority
Replies: 3
Views: 31004

Re: IRQTimer.mod:TimerHandler:"Update vic priority

Yes. This is also specified in section 7.7 "VIC Usage Notes" in UM10139: Also, before the next interrupt can be serviced, it is necessary that write is performed into the VICVectAddr register before the return from interrupt is executed. This write will clear the respective interrupt flag in the int...
by cfbsoftware
Sat Jul 23, 2011 4:03 am
Forum: Oberon Language
Topic: STRUCTURE ALIGNMENT
Replies: 2
Views: 20265

Re: STRUCTURE ALIGNMENT

Arrays and records in ARM Oberon-07 are allocated memory in multiples of four bytes. You can use SYSTEM.SIZE to find out how much storage each data type occupies. e.g. SYSTEM.SIZE(ZAP) returns 20 (12 + 4 + 4). If you are reading data from a binary file created on another system you will need to trea...
by cfbsoftware
Fri Apr 01, 2011 12:43 pm
Forum: Oberon Language
Topic: Exit mid-loop
Replies: 2
Views: 16786

Re: Exit mid-loop

Code: Select all

  REPEAT
    ...
    IF ~error THEN
      ...
    END
  UNTIL ... OR error;
by cfbsoftware
Wed Mar 30, 2011 11:29 pm
Forum: Getting Started
Topic: Code for GPIO
Replies: 1
Views: 25299

Re: Code for GPIO

Hi, please could you show me a code example for testing the state of a single input pin? For examples see the discussion reading status inport in the Development Boards section of this forum: http://www.astrobe.com/forum/viewtopic.php?f=7&t=60 While I'm at it, it would be very helpfull to have exam...
by cfbsoftware
Sat Mar 26, 2011 11:07 pm
Forum: Oberon Language
Topic: Shifts and masks
Replies: 3
Views: 21163

Re: Shifts and masks

Yes - of course. Sorry about the blooper! With the benefit of hindsight, it might be clearer to write it as two separate statements: R := LSL(value, 16); R := LSR(R, 22); If this form is used in a leaf procedure you do not need to worry about efficiency as it generates code which is identical to the...
by cfbsoftware
Mon Mar 21, 2011 9:35 pm
Forum: Oberon Language
Topic: Convert INTEGER to SET
Replies: 4
Views: 26320

Re: Convert INTEGER to SET

If you want to typecast an INTEGER variable to a SET variable use the general typecasting function SYSTEM.VAL. e.g. VAR s: SET; i: INTEGER; s := SYSTEM.VAL(SET, i); Examples: i = 0, s = {} i = 8, s = {3} i = 0FH, s = {0..3} i = 0AAH, s = {1, 3, 5, 7} i = 055H, s = {0, 2, 4, 6} Note that this doesn't...
by cfbsoftware
Sat Mar 12, 2011 5:39 am
Forum: Getting Started
Topic: Info example says the LPC2103 only has 8k
Replies: 1
Views: 22314

Re: Info example says the LPC2103 only has 8k

The LPC2103 has 32kB of flash *ROM* (program code) but only 8kB of RAM (program data). The Memory Available 7140 shown in the Info example refers to what is left of the 8kb of RAM. Have a look at Section 6.5 "Memory Map" in Astrobe > Help > Oberon for LPC Microcontrollers to see how the memory is al...
by cfbsoftware
Sun Feb 20, 2011 12:52 pm
Forum: Getting Started
Topic: advocating specific board entry on forum
Replies: 1
Views: 22859

Re: advocating specific board entry on forum

Hi Frans-Pieter, Thank you for your positive feedback and suggestion. I'm pleased to hear you are making good progress. For now I've just created one new forum for any topics that are related to specific development boards. If large numbers of topics for a particular manufacturer start to appear I c...
by cfbsoftware
Mon Feb 14, 2011 6:51 am
Forum: Oberon Language
Topic: Question about the Language
Replies: 2
Views: 19898

Re: Question about the Language

Thank you for your compliments :) Although Oberon-07 was designed by Niklaus Wirth, the designer of Pascal there are a few fundamental differences. Hence, not only are reserved words capitals only, but also all other identifiers are case-sensitive. Wirth introduced this change when he designed the l...
by cfbsoftware
Tue Feb 01, 2011 11:10 am
Forum: Oberon Language
Topic: Convert CHAR to INTEGER
Replies: 1
Views: 11851

Re: Convert CHAR to INTEGER

The built-in ORD function will typecast a CHAR to INTEGER i.e. VAR ch: CHAR; i: INTEGER; ... ... i := ORD(ch); This gives you the corresponding numeric ASCII value for that character. Knowing this, if you want to convert a single character (e.g. '9') to the integer value (e.g. 9) you can then say: I...