Jump to content
IGNORED

Geneve FORTH


GDMike

Recommended Posts

17 hours ago, GDMike said:

Old news when I was throwing in the towel... but I found my way through it.. this was ooold.

Okay, so you changed your mind or better yet change your attitude, and you'll get more generous help.  Please remember I'm about to turn 80 years young, and it' been about 24 years since I used a 9640 Geneve in any capacity!  Not only that, but this stinking move is driving me crazier than I already am, so a little slack will help me stay tuned in, even though I don't have the time for this right now.  Just know that I would much rather be spending my "Golden years" doing TI software development than packing all my goodies up to move!

Edited by Bill R Sullivan
corection
  • Like 3
Link to comment
Share on other sites

Okay, so you changed your mind or better yet change your attitude, and you'll get more generous help.

well, neither actually. I was able to replace the Geneve eprom, and I was able to boot into FORTH+ and everything worked again.

I never tried using the high resolution screens and maybe that's why I'm working?? Not sure.

Everyone's been helpful, there like me, trying to figure out if this computer I'm using is ok and is FORTH+ ok.

and then the little stuff, my learning Forth and getting the logic flowing.

so the only thing needed all along was patience and persistence.

I sure hope that move gets done before summer gets here or it's not going to go well.

I'll be back online around Tuesday/Wednesday?? Now possible fuel shortage coming if they can't get those pumps  online!!

 

 

Edited by GDMike
Link to comment
Share on other sites

On 4/1/2021 at 4:16 PM, 9640News said:

MDTEST program on this disk image.

I really didn't see this at all. Totally my fault. I have no excuse. I thought everything was regarding a mouse test, which I didn't need because I was ok with the mouse in forth already.

I didn't know the mem test title that I should be looking for so I overlooked this. Oh man.

 

 

  • Like 2
Link to comment
Share on other sites

On 4/1/2021 at 8:27 PM, 9640News said:

Please look up to my previous post, as I have included the Programmer's Development Package manual that included all information for using the mouse driver from assembly language.

 

Beery

Thx I got it

  • Like 1
Link to comment
Share on other sites

Mike, sorry if I may have come off a bit harsh at times.  Hopefully, when you run the MDTEST program after loading the mouse driver, you will not see any problems, then you (and I) can rest easy that things look to be good. 

  • Like 2
Link to comment
Share on other sites

3 hours ago, 9640News said:

Mike, sorry if I may have come off a bit harsh at times.  Hopefully, when you run the MDTEST program after loading the mouse driver, you will not see any problems, then you (and I) can rest easy that things look to be good. 

It looks like I didn't follow up on a post you sent me regarding that test, then things went fast forward on me, at one point I thought it was all FORTH+ problem then another it was my computer. . then at another point we thought it was both. 

Sometimes it's difficult to determine.. but I had gotten to a point where everything worked and I basically didn't want to touch anything in fear of changing things. It's going to work out, I really appreciate the help, sometimes it's difficult to explain things as your right in front of the item and what seems insignificant becomes a headache,

Especially when it's hardware acting like software. If that makes sense..

But, hey, we got this machine a couple three months back. And Forth+ showed up and I guess it's a mixed bag of goodies.

Even Bill got teed off with my frustrations at one point when I was about to throw in the towel, I apologize bill, wherever you are in your move.

I'm glad you see how I dropped the ball on a missed post or a missed Ram check. I agree, it needed to be done regularly when these things act up.

I'll be lucky though if I get by with just ram issues. Really. Thx again for your amazing work you all do.. sorry for missing the post.

 

  • Like 2
Link to comment
Share on other sites

16 hours ago, 9640News said:

No harm, no foul.  Good luck!

Likewise here, as I sent a PM to Mike that should help us keep the peace, and he can go forward with Forth+, and I will help out when I can; and hopefully, everyone on AtariAge, who are able and willing will help keep the small 9640 Geneve community alive and well by doing so.  Thank you all.

 

RetroBill (fdos)

Link to comment
Share on other sites

  • 2 weeks later...

So I've settled an issue with calling one library from another. Seems to be doing ok now. I had some kind of problem doing that.

I'm not sure if it was the"TIMODE ON" or the TIMODE set in autoexec, but I pulled the line and I'm stable in FORTH+.

I have been calling libraries all day trying to narrow down the problem, with multiple freezing in Forth+ until I just pulled that line mentioned. So I'll get a better feel as I work with this some more.

So far I can call those libraries now as in the video, but until recently, I could not.

 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, GDMike said:

So I've settled an issue with calling one library from another. Seems to be doing ok now. I had some kind of problem doing that.

I'm not sure if it was the"TIMODE ON" or the TIMODE set in autoexec, but I pulled the line and I'm stable in FORTH+.

I have been calling libraries all day trying to narrow down the problem, with multiple freezing in Forth+ until I just pulled that line mentioned. So I'll get a better feel as I work with this some more.

So far I can call those libraries now as in the video, but until recently, I could not.

 

 

Of course, Forth+ will not work in TI MODE, as that loads GPL, making everything in the environment different; MDOS XOPs aren't there, etc..  I can never "run" your videos as I always get a network error.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Ahh. Good to know Bill. Yup, were done here after swinging some clubs at stupid balls that have no intention of dropping in a hole for anything in the world, otherwise, I'm just playing with Forth here now since I can FORGET about my swings of the day with it.

  • Like 1
Link to comment
Share on other sites

10 hours ago, GDMike said:

We know that you can just call these libraries at will, but for ME as I can't remember what even happened yesterday, I needed a way to have these libraries give me feedback and easier names to remember.

And this seems better for me.

Well the audio stuff was a little tough on my ears, as I have the audio levels set to my "easy listening music" to calm me down after a hectic day.  I do understand about making Forth+ your own, but that should be done at the base level (you have those screens), so your dictionary doesn't eat up all your memory over the years!  Unless the Forth+ user base grows to more than just you.

  • Like 2
Link to comment
Share on other sites

This week's question. Maybe someone knows the answer good enough to try and explain.

What is a "Parameter field address" PFA, and what is a "Name field address", NFA as they relate to FORTH+? 

Ok, 2 questions kinda rolled up.

Could they just be words that are internal to the OS of forth, or something that I could and should make practical use with in writing code and setting up tables with? Well, I had seen this referenced from time to time and I'm just not familiar with it what it's purpose is.

 

 

Link to comment
Share on other sites

10 hours ago, GDMike said:

This week's question. Maybe someone knows the answer good enough to try and explain.

What is a "Parameter field address" PFA, and what is a "Name field address", NFA as they relate to FORTH+? 

Ok, 2 questions kinda rolled up.

Could they just be words that are internal to the OS of forth, or something that I could and should make practical use with in writing code and setting up tables with? Well, I had seen this referenced from time to time and I'm just not familiar with it what it's purpose is.

 

 

The details of this stuff will be in your Forth+ docs but here is some general theory. Some of this you know but I want to try and cover it from the beginning.

 

Think of Forth as a list of words, the dictionary, and to each word some programming code is connected.

That's easy to understand.  You give Forth a word, it looks it up in the dictionary and runs the code.  Done.

 

But how do you build a dictionary that can do that?  This is what the CFA PFA NFA stuff is dealing with.

Like most problems in computing there are many ways to skin this cat and Forth people have found MANY. :) 

So there is no "standard" way to make a Forth dictionary but in general here is what is needed.

 

I don't know what else you do with computers but maybe you have used databases.

The Forth dictionary is like a database of records and in each record there are things called fields.

Each Record has an identifier which is the word name. That is text of course.

To make the dictionary work however you need a few more fields of info than just the text name.

 

These fields are called:  Link field, Name field,  Code Field  and Parameter Field. 

(Parameter field  has been renamed to the DATA field in standard Forth which explains what it is for a bit better)

 

The address in memory where these fields are located is confusingly called the Link Field Address, Name field address etc.

So this has lead to the short forms  LFA, NFA, CFA and PFA.

 

Now you know what that names mean and how they came to be. But remember they are really just fields in the record of a Forth Dictionary.

 

What they do

 

Link Field:

The link field holds a memory address that lets you find the next word in the dictionary. 

Since each word's "record" has a different amount of code with it they are all different sizes so they are not in pre-sized chunks. That would waste space.

So when you make a new Forth word, the new word's link field is filled in with the address of the last word that was created (ie before the one you are making)

So Forth searches the dictionary from the last word created, going backwards, following the bread crumbs in the LINK FIELD until it gets to a link field that contains zero. That's the end of the dictionary.

This is called a "linked list". Computer scientists aren't always creative with their names. :) 

 

Name Field:

The name field is where the text name of the word is held.  It is variable in length and can be up to 31 characters these days.

Fun fact: In Chucks first Forth systems he made all words 3 characters long maximum to save space and speed up searching.

 

The name field is typically a "counted string" where the first byte is the length followed by the text of the word. In Fig-Forth I believe they also add a magic character at the end of the word name but that is not done in modern systems.

Consult your documentation for Forth+

 

Code Field:

This is maybe the most confusing field for people. This is because what it does depends on how the implementor of the system made their Forth.

Forth+ is an "indirect threaded code" system (ITC) so I will only describe that.

In simplest terms the code field contains the address of some real 9900 instruction code. That's it.

 

This is because the computer has to run some kind of machine code instructions to do some work right?

 

In Forth words the code in CFA controls what happens to the stuff in the Parameter field. (do the variable code, do the constant code, do the colon definition code etc.) 

 

In a CODE word, the CFA just holds the address of the next cell in memory. In other words it "points" to the machine code the Assembler laid down in this CODE word.

 

Parameter (Data) Field:

Like the name says, the parameter field holds other stuff. 

  • In a colon definition is contains the Code Field addresses (CFA) of other Forth words.
  • If you make a variable it holds the value in the variable
  • If you make a constant it holds the value of the constant.
  • If you make an array it holds all the elements of the array 

and so on...

 

Do you need to know this?

To do some advanced programming yes.

Like it or not Forth is a low level set of tools like a CPU.  The more you understand about what it is made of the better you can use it to do your bidding.

 

Do you need this everyday? 

No. Most of the time you can have a hell of a lot fun using the higher level words that Forth provides.

And Forth+ is a "fat Forth" meaning it gives you a ton of stuff in the libraries so you don't need to dig into the innards of the system ... most of the time. :) 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • Like 3
Link to comment
Share on other sites

11 hours ago, GDMike said:

This week's question. Maybe someone knows the answer good enough to try and explain.

What is a "Parameter field address" PFA, and what is a "Name field address", NFA as they relate to FORTH+? 

Ok, 2 questions kinda rolled up.

Could they just be words that are internal to the OS of forth, or something that I could and should make practical use with in writing code and setting up tables with? Well, I had seen this referenced from time to time and I'm just not familiar with it what it's purpose is.

 

Here is how Forth words are arranged in TI Forth and fbForth:

 

image.thumb.png.646232de37afb85f6c9a5b2997bc79df.png

 

...lee

  • Like 3
Link to comment
Share on other sites

@GDMike, do you know if Forth+ uses this dictionary design?

It might be called "FIG-Forth" in the manual if it does.

Forth Interest Group published this dictionary structure back in the 1970s and it became its own standard.

 

And of course there is a wealth of deep dive information on Forth and some on Camel Forth in this series of papers by Brad Rodriguez if you really haven't had enough. :) 

 

Moving Forth: Part 1 (bradrodriguez.com)

 

 

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...