Host Engineering Forum

General Category => Do-more CPUs and Do-more Designer Software => Topic started by: Bolt on August 16, 2019, 03:49:26 PM

Title: FIFOLoad/Unload Questions
Post by: Bolt on August 16, 2019, 03:49:26 PM
Using the FIFO instruction sets for the first time.   A few comments/questions:

1.  The boxes are quite large, taking up allot of space on the screen.
2.  I can't use a number or a Symbolic Constant in the Value or Destination input?
3.  How can I preform a lookup, IF FIFOBlock contains nnn, do not LOAD, or DROP nnn from FIFOBlock?
Title: Re: FIFOLoad/Unload Questions
Post by: franji1 on August 16, 2019, 04:04:40 PM
Using the FIFO instruction sets for the first time.   A few comments/questions:

1.  The boxes are quite large, taking up allot of space on the screen.

Status display is large.  Non-status display is small/normal.  We can make the status details be dynamic in a future version so you don't see as much info when you have status ON.
Title: Re: FIFOLoad/Unload Questions
Post by: franji1 on August 16, 2019, 04:06:41 PM
2.  I can't use a number or a Symbolic Constant in the Value or Destination input?

No.  To make this instruction fast, it uses memory pointers, not values, for both the source and destination.  Hence, no constants are allowed.  You must put the constant into a register first.
Title: Re: FIFOLoad/Unload Questions
Post by: franji1 on August 16, 2019, 04:09:58 PM
3.  How can I preform a lookup, IF FIFOBlock contains nnn, do not LOAD, or DROP nnn from FIFOBlock?

These are basic FIFO/LIFO functionality.  We are looking to support more complex TABLE operations where you can do FIND and DROP (or INSERT or whatever).  The FIFO/LIFO were "easy" to implement/understand without adding a bunch of operations (i.e. TABLE complexity).

If you understand how circular buffers work, you could implement your own Find in a subroutine based on the members of the Queue structure.  We can definitely help with that.