Search found 78 matches
- Fri Jun 02, 2023 6:17 am
- Forum: Astrobe for FPGA RISC5
- Topic: Embedded Project Oberon on Altera FPGA
- Replies: 0
- Views: 58
Embedded Project Oberon on Altera FPGA
I have implemented the Embedded Project Oberon (EPO) RISC5 CPU and environment in an Intel Altera FPGA, specifically, using the Terasic Cyclone V GX Starter Kit board [1]. It's a nice board in the same price range as the Digilent Arty A7 100, with lots of LEDs, switches, buttons, SRAM, seven segment...
- Thu Apr 20, 2023 5:16 am
- Forum: Astrobe for FPGA RISC5
- Topic: Stack Trace
- Replies: 0
- Views: 1669
Stack Trace
I have always found a "stack trace", ie. the display of the chain of procedure calls that lead to an error, very useful to find the causes of run-time problems. This chain is unrolled by walking the stack backwards from the error point -- or from any state of calls -- frame by frame using the frame ...
- Mon Feb 07, 2022 6:34 am
- Forum: Astrobe for FPGA RISC5
- Topic: Register R13
- Replies: 2
- Views: 3948
Re: Register R13
Thanks for the pointers. I don't have intention to change the compiler to use R13, but I am grinding my teeth on an in-circuit debugger, and an otherwise unused register could be handy from assembly code. 

- Fri Feb 04, 2022 9:13 am
- Forum: Astrobe for FPGA RISC5
- Topic: Register R13
- Replies: 2
- Views: 3948
Register R13
ORG.incR allocates registers up to R11. R12 is MT, R14 is SP, and R15 is LNK. What about R13, may I use it, or does it have a special purpose as well?
- Fri Feb 04, 2022 9:07 am
- Forum: Astrobe for FPGA RISC5
- Topic: SYSTEM.LDREG
- Replies: 1
- Views: 3091
SYSTEM.LDREG
The Astrobe RISC5 compiler creates erroneous code in the following case: PROCEDURE P; VAR i: INTEGER; BEGIN i := 0; SYSTEM.LDREG(i, 13) END P; The procedure compiles without error message, but the code created is: 4400000DH MOV r4, r0, 13 Evidently, the target register number must be a constant, as ...
- Tue Jan 18, 2022 1:08 pm
- Forum: Astrobe for FPGA RISC5
- Topic: RISC5 Oberon Compiler Source Code
- Replies: 1
- Views: 3398
Re: RISC5 Oberon Compiler Source Code
Wow. Thanks! Also for CPIde.
- Sat Jan 15, 2022 8:01 am
- Forum: Astrobe for FPGA RISC5
- Topic: Spurious Imports
- Replies: 5
- Views: 6405
Re: Spurious Imports
Thanks! The indirectly imported modules do count as regards the max allowed 15 imported modules, which we can check in the BL opcode of an external procedure call, where the module number is encoded in a 4 bit value (hence the restriction of 15, zero is not a valid module number for BL instructions)...
- Sat Jan 01, 2022 9:53 am
- Forum: Astrobe for FPGA RISC5
- Topic: Spurious Imports
- Replies: 5
- Views: 6405
Re: Spurious Imports
OK, thanks, I have read up. Does the Astrobe compiler more or less work like the Project Oberon one in that area? In particular the import and export of symbols (reading and writing of symbol files, ORB. Import and ORB.Export) and creating object files (ORG.Close)? The way the symbol table is built ...
- Thu Dec 30, 2021 11:39 am
- Forum: Astrobe for FPGA RISC5
- Topic: Spurious Imports
- Replies: 5
- Views: 6405
Spurious Imports
In the process of debugging an inexplicable error during the system start-up sequence I started to look into 'rsc' files (yes, I know), namely the list of imported modules. I have realised that the list of imports in the 'rsc' files sometimes contains additional modules that are not in the IMPORT li...
- Thu Dec 30, 2021 10:56 am
- Forum: Bug Reports
- Topic: System.Exception in RISC5 Compiler
- Replies: 0
- Views: 4226
System.Exception in RISC5 Compiler
Test case: MODULE M1; CONST OK := M2.OK; END M1. Note the missing IMPORT statement. With the v8.0 compiler: OR Compiler 17.10.2021 compiling M1 2 14 Error: = ? 2 18 Error: undef System.Exception: CASE-trap: selector = 54 at ORP.ORP.factor(Item& x) at ORP.ORP.term(Item& x) at ORP.ORP.SimpleExpression...