Search found 108 matches

by gray
Sun Dec 03, 2023 5:03 am
Forum: Bug Reports
Topic: SYSTEM.ALIGN
Replies: 2
Views: 2590

Re: SYSTEM.ALIGN

Thanks for the fixes and updates with v9.0.3.
by gray
Sun Dec 03, 2023 4:24 am
Forum: Bug Reports
Topic: Module Storage (2)
Replies: 1
Views: 2286

Module Storage (2)

The Astrobe docs say about module Storage: However, you must not change the interface definition of the module as the compiler expects it to be as shown above. I am a bit confused here. As per the documentation about module MAU, each 'NEW' call is converted into a call to MUA.New, and for 'DISPOSE' ...
by gray
Sun Dec 03, 2023 4:19 am
Forum: Bug Reports
Topic: Module Storage (1)
Replies: 3
Views: 3013

Module Storage (1)

I need to write my own heap memory allocator, and I am studying module Storage, which of course is a good starting point. I have trouble understanding this part in the module initialisation: IF heapLimit = 0 THEN stackLimit := 0 ELSE (* Separate heap / stack *) stackLimit := 010000200H END; As far a...
by gray
Mon Nov 27, 2023 1:49 pm
Forum: Bug Reports
Topic: SYSTEM.ALIGN
Replies: 2
Views: 2590

SYSTEM.ALIGN

I am having troubles using SYSTEM.ALIGN. My use case was this. Traps.mod contains several distinct exceptions handlers for the different MCU faults, such as Hard Fault, and some more for the M3, which are identical, mutatis mutandis the hard-coded fault number. Below is an attempt to use the same fa...
by gray
Wed Nov 22, 2023 1:59 am
Forum: Bug Reports
Topic: Stack Trace Considerations (M0)
Replies: 2
Views: 2493

Re: Stack Trace Considerations (M0)

Thanks! That's exactly the flag to test to decide for either the +36 or the +40 offset, ie. solve the "gap" problem in 'SVCTrap'. My two "gap"-related test cases now show correct results with the corresponding changes in 'SVCTrap'. To be fair, the flag is described in the M0 programming manual (PM02...
by gray
Tue Nov 21, 2023 11:18 am
Forum: Bug Reports
Topic: Stack Trace Considerations (M0)
Replies: 2
Views: 2493

Stack Trace Considerations (M0)

With Astrobe version 9.0, the useful stack trace functionality of can show false positives, ie. list procedure calls that don't belong in the call chain leading up to the run-time error. Consider this test code: MODULE TestError1; IMPORT Main; VAR x, y: INTEGER; PROCEDURE p1; VAR z: INTEGER; BEGIN y...
by gray
Fri Nov 17, 2023 9:54 am
Forum: Astrobe for ARM Cortex-M0, M3, M4 and M7
Topic: Interrupt Handlers
Replies: 2
Views: 5686

Re: Interrupt Handlers

Wow. Smart. I am impressed. Thanks for that.
by gray
Thu Nov 16, 2023 12:26 pm
Forum: Astrobe for ARM Cortex-M0, M3, M4 and M7
Topic: Interrupt Handlers
Replies: 2
Views: 5686

Interrupt Handlers

For the Cortex-M0, the prologue and epilogue generated for interrupt handlers is the same as for normal parameterless procedures. That is, they are the same for PROCEDURE p0; END p0; 0B500H push { lr } 046C0H nop 0BD00H pop { pc } 046C0H nop and PROCEDURE p1[0]; END p1; 0B500H push { lr } 046C0H nop...
by gray
Sat Jun 17, 2023 4:41 am
Forum: Astrobe for FPGA RISC5
Topic: SYSTEM.LDREG
Replies: 4
Views: 85071

Re: SYSTEM.LDREG

SYSTEM.LDREG is also used in Oberon.Mod, and its sibling SYSTEM.REG in Kernel.Mod, Modules.Mod, System.Mod, as well as in the bootloader. SYSTEM.H, probably another undocumented feature, is used in Kernel.Mod. Hence, without undocumented features, no Oberon system as we know it.
by gray
Wed Jun 14, 2023 1:08 pm
Forum: Astrobe for FPGA RISC5
Topic: SYSTEM.LDREG
Replies: 4
Views: 85071

Re: SYSTEM.LDREG

Just re-reading some old forum posts... and it occurred to me that, undocumented or not, SYSTEM.LDREG is arguably the most central feature of the compiler. Without it, the system would not even boot. See the bootloader, it's literally the first instruction the system executes. :)