Jump to content
senior_falcon

Extended BASIC G.E.M.

Recommended Posts

Making good progress. Here is the experimental 80 column editor for GEM listing a program. It hangs up at the last line, so that will need some work with the debugger  to find out why. Listing in 80 columns is about 80% as fast as lising in standard XB. XB GEM  first lists to the XB 32 column screen, then copies the program lines to the 80 column screen. There are a few tweaks that can be made to speed it up, but it can never be quite as fast as in normal XB

LIST80.GIF.a3c4a419bf1f4930b6bb5dab73d886fc.GIF

  • Like 9

Share this post


Link to post
Share on other sites

The crash at the last line has been fixed.

You may have noticed that each line number is preceded by the "greater than" symbol. This way the editor can know where a line begins and ends. The intention is to let you list a program, then you can go up on the screen to edit any line that appears on the screen.

  • Like 3

Share this post


Link to post
Share on other sites
4 minutes ago, senior_falcon said:

You may have noticed that each line number is preceded by the "greater than" symbol. This way the editor can know where a line begins and ends. The intention is to let you list a program, then you can go up on the screen to edit any line that appears on the screen.

Interesting.  Does the normal editor use the ">" symbol for the same purpose?  How does it employ the edge character (char 31?)

Share this post


Link to post
Share on other sites
46 minutes ago, OLD CS1 said:

Interesting.  Does the normal editor use the ">" symbol for the same purpose?  How does it employ the edge character (char 31?)

I believe the ">" symbol is used by XB as a pointer to tell you to "enter something here". When you list a program it is expected that you will not be entering anything until you are done with the list. So there is no symbol at the beginning of each line. This makes it tough to know where a line begins and ends. You could make inferences based on the length of the line, whether the first characters are numbers, etc. But you could imagine a line that splits a number like this:

100 some code::GOTO 12

345

The editor would have to know that the instruction was GOTO 12345, not GOTO 12. Doing this would take a lot of code and would probably be buggy. My way should be bulletproof.

 

When the BASIC or XB editor comes to an edge character it knows that it must add 4 or subtract 4 to get to the next line. There are other ways to do that. For example, if you are going right, you could AND the screen position with >1F and see if the result is >1E. If it is you have to add 4 to the screen position.

  • Like 3

Share this post


Link to post
Share on other sites

I like the idea of turning the XB editor to work more like the CBM BASIC editor, in which you can cursor up to any previous line or command on the screen to edit or re-execute it.  This is bad-ass.

  • Like 2

Share this post


Link to post
Share on other sites

The experiments with the 80 column editor are coming along nicely. At present I can:

     Enter program lines

     List a program

     Edit a program line  (line number and up or down arrow)

     Use Fctn 8 for the Edit/Recall buffer

     Save and load programs.

 

Yet do do:

   Transfer information from XB to the 80 column editor such as:

     Error messages

     printing a variable (PRINT X)

 

I have some ideas on how to do this that I think will work.

 

Once the editor can interface well with XB it will be time to add features to the editor., which is quite rudimentary at present.

 

 

  • Like 8

Share this post


Link to post
Share on other sites

It looks like this will work out. In the video below, I:

Enter a program

LIST the program

RUN the program

Modify the program

RUN the modified program

Type SIZE

Type PRINT I

EDIT80.gif

 

  • Like 7
  • Thanks 1

Share this post


Link to post
Share on other sites

That is very impressive. Looks like listing the program is faster too, compared to the previous version.

Is the edit80 mode completely driven by the interrupt service routine?

Could the same be possible for TI Basic as well, or is it custom tailored for Extended Basic G.E.M. ?

Share this post


Link to post
Share on other sites
4 hours ago, retroclouds said:

That is very impressive. Looks like listing the program is faster too, compared to the previous version.

Is the edit80 mode completely driven by the interrupt service routine?

Could the same be possible for TI Basic as well, or is it custom tailored for Extended Basic G.E.M. ?

The program listing hasn't changed. The lines are shorter so they show up faster.

No interrupts are used in this. There are a couple of patches out of XB to the editor, so I have much better control over what is going on.

This would be pretty tough for TI Basic. One possibility is using a 40 column editor. There is room for development in MiniMemory. There are about 1300 or so bytes of unused memory in the ROM.

  • Like 3

Share this post


Link to post
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...