Search found 101 matches

by gray
Sat Jan 15, 2022 8:01 am
Forum: Astrobe for FPGA RISC5
Topic: Spurious Imports
Replies: 5
Views: 17544

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)...
by gray
Sat Jan 01, 2022 9:53 am
Forum: Astrobe for FPGA RISC5
Topic: Spurious Imports
Replies: 5
Views: 17544

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 ...
by gray
Thu Dec 30, 2021 11:39 am
Forum: Astrobe for FPGA RISC5
Topic: Spurious Imports
Replies: 5
Views: 17544

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...
by gray
Thu Oct 28, 2021 5:21 am
Forum: Astrobe for FPGA RISC5
Topic: System.Date (v8.0)
Replies: 1
Views: 12597

Re: System.Date (v8.0)

Checking for the correctness of the date and time actually set is also useful as we actually can set the clock even with incorrect parameters. Here are two example cases with incorrect parameters where the clock gets set nonetheless. Typos happen. :( System.Date 28 10 n21 10 20 30 System.Date 28 10 ...
by gray
Mon Oct 25, 2021 9:19 am
Forum: Astrobe for FPGA RISC5
Topic: System.Date (v8.0)
Replies: 1
Views: 12597

System.Date (v8.0)

The new System.Date procedure in v8.0: PROCEDURE Date*; (* ... *) BEGIN (* ... *) IF S.class = Texts.Int THEN (*set clock*) (* ... *) IF (day >= 1) & (day <= 31) & (mo >= 1) & (mo <= 12) & (yr >= 0) & (yr <= 63) THEN dt := ((((yr*16 + mo)*32 + day)*32 + hr)*64 + min)*64 + sec; Kernel.SetClock(dt) EN...
by gray
Mon Oct 25, 2021 8:31 am
Forum: Astrobe for FPGA RISC5
Topic: ASSERT & Error.Mod (version 8.0)
Replies: 1
Views: 12392

ASSERT & Error.Mod (version 8.0)

Astrobe for RISC v8.0 provides a new module Error.Mod. It is used, for example, in Math.Mod: PROCEDURE Sqrt*(x: REAL): REAL; (* ... *) BEGIN ASSERT(x >= 0.0, Error.input); (* ... *) END Sqrt; That is, to provide an error code for ASSERT via a second parameter (which could be any integer value, does ...
by gray
Wed Jun 02, 2021 4:28 am
Forum: Astrobe for FPGA RISC5
Topic: Self-unloading With Modules.Free?
Replies: 2
Views: 15856

Re: Self-unloading With Modules.Free?

Thanks for your information and insights. Your general words of caution are useful in any case, as in case "self-freeing" would not work, the unloading could easily be delegated to an extended loader process/task that would free the first program before loading the subsequent one. My current design ...
by gray
Tue Jun 01, 2021 9:23 am
Forum: Astrobe for FPGA RISC5
Topic: Self-unloading With Modules.Free?
Replies: 2
Views: 15856

Self-unloading With Modules.Free?

Is there any reason why, or a situation when, this would not work? MODULE M; IMPORT Modules, Oberon; PROCEDURE Run*; BEGIN Modules.Free("M"); Oberon.Collect(0) END Run; END M. That is, a module unloading itself. The reasoning here is that Modules.Free just sets the module name to the empty string, a...
by gray
Mon May 03, 2021 6:54 am
Forum: Astrobe for FPGA RISC5
Topic: SYSTEM.PUT Transfer Width
Replies: 0
Views: 38188

SYSTEM.PUT Transfer Width

With the Astrobe compiler, SYSTEM.PUT(adr, val) transfers either eight or 32 bits, depending on the type of 'val'. But what if 'val' is an expression? I had this procedure interfacing a device in the FPGA hardware. PROCEDURE SetSignal*(dev: INTEGER; sig: BYTE); BEGIN SYSTEM.PUT(Adr, LSL(sig, DataShi...
by gray
Sat Apr 17, 2021 6:48 am
Forum: Astrobe for FPGA RISC5
Topic: Configurable Stack Size
Replies: 0
Views: 38077

Configurable Stack Size

As mentioned in here , my first real use of creating my own boot file was to make the stack size configurable. To tie up that loose end, here's how. It should basically apply to Project Oberon as well, but I'll focus on Embedded Oberon. The stack size is hard-coded to 32 kB (8000H) in two places. Ke...