Dr Jefyll wrote:
Thanks for an interesting post, Garth. I apologize for not contributing to this thread lately myself. whartung, I don't have any experience with F83 so I'm afraid I have no opinion to offer. If you do end up in F83 territory, drop us a line and let us know your impressions!
All of the (available) F83s I've seen are meta-compiled, so I would need to port one to assembly. I may still do this. F83 seems to be the last of the "screen" Forths. While ANS supports screens, etc., F83's heritage is still deep in it. I appreciate that folks prefer the files to screens, but my "machine" doesn't have a filesystem yet, so I'm more attracted to a screen based system at this juncture.
I think F83 is the most mature of the 16-bit, small machine Forths. Still deciding whether to take the porting effort on, but I think it would actually be valuable to have a "Fig style" assembly based F83, and that would be faster than trying to port the F83 meta-compiler to FIG in order to create a new F83. I understand the gist of the meta-compiler, but it's inner mechanics are still not quite clear to me.
Quote:
But, before you move on...
whartung wrote:
It's all quite confusing, I don't think they're consistent in their usage. First of, Fig as B/BUF, "Bytes per Buffer". [...]Then, we have B/SCR [...] These blocks and buffers are not the same as B/BUF and B/SCR blocks and buffers. That's where it gets confusing.
... would you be willing to post a clarification of these issues? I agree the terminology for disk IO is terribly confusing -- partly because of Fig's fondness for abbreviations beginning with the letter B (ambiguously representing BLOCK BUFFER BYTE etc). Another confusing aspect is the distinction between a buffer address (in ram) and the corresponding address
on disk. While the subject is still fresh in your mind, perhaps you could share what you've unraveled.
BUFFER and
BLOCK are the same thing. I should say they refer to the same unit, which is a Buffer. 1 Block is 1 Buffer in size. The argument to
BUFFER and
BLOCK is the same argument, typically the sector number (numbering 1 to # of sectors on the disk, which does not seem to have an "official" name).
Buffers are
B/BUF bytes large. Screens are 1024 bytes large, and consist of
B/SCR buffers.
The arguments to
LIST and
LOAD are Screen Numbers, not buffer numbers. Screens take multiple buffers.
Quote:
Quote:
I changed the Sector Size from 128 to 256, and missed a hard coded constant that was based on that number. (Curse you hard coded constants!)
Here again your efforts could be of benefit to others. Can you document the location of this constant for us please?
The constant is named
BMAG, and the text says it's defined as "total buffer magnitude, in bytes expressed by SSIZE+4*NBUF". The detail there is that it's actually (SSIZE+4)*NBUF, which is likely why it's not defined as an expression since most simple assemblers may not do operator precedence or offer parentheses. The value in the default Fig listing is 1056 ((128 + 4) *
. In my listing I changed it to [SSIZE+4]*NBUF since I use [] in lieu of () in my expressions.
Quote:
Quote:
I finally tracked down the text of the 2 screens with the FIG error messages on it. Kind of annoying they're not in the original FIG listings.
Annoying, to be sure! Can you direct us to where you found the error-message screens?
I found them in two places. One was in the PDP-11 User Guide, but the real find was the actual Fig Installation Manual. dclxvi linked to that:
ftp://ftp.taygeta.com/pub/Forth/Archive ... IGINST.ZIPThis made much more sense since the assembly refers to screens of code and such, but I never knew what those screens referred to. In the past, my friends and I used to buy the machine listings from the legendary tech book store Op Amp Technical Books in Los Angeles, but even then I never saw the original Fig install guide. So, that link was really helpful.
The F83 standard (
http://forth.sourceforge.net/std/fst83/ ) is helpful as well, since it can trace its lineage back to the Fig systems. It's got reasonably clear definitions as well.