IGNORED

# Introducing Structured Extended BASIC and TiCodEd

## Recommended Posts

11 minutes ago, Vorticon said:

The problem with ON GOSUB is that the variable can only have discreet sequential integer values starting at 1, which would be very restrictive.

I much prefer the flexibility of IF/THEN at the expense of elegance.

Hmm we do have a command to deal with this INT(floating point number)

##### Share on other sites

52 minutes ago, Vorticon said:

The problem with ON GOSUB is that the variable can only have discreet sequential integer values starting at 1, which would be very restrictive.

I much prefer the flexibility of IF/THEN at the expense of elegance.

Don't have a computer in front of me, but I would imagine that ON GOSUB rounds the value up or down as needed. Not the same as INT which always rounds it down. Easy enough to check this.

##### Share on other sites

49 minutes ago, Vorticon said:

ON 1-(a=1)-2*(a=2)-3*(a=3 or a=4) GOSUB CASEELSE, CASE001, CASE002, CASE003

I also tend to the IF-THEN, but above line does not require the numbers to be sequential integers, this would also work with strings or key-codes, as the (Var=Value) terms are -1 when true, with the multiplicator giving the ON value.

ON 1-(a=65)-2*(a=88)-3*(a=32 or a=13) GOSUB CASEELSE, CASE001, CASE002, CASE003

Would work just as well.

##### Share on other sites

46 minutes ago, senior_falcon said:

Don't have a computer in front of me, but I would imagine that ON GOSUB rounds the value up or down as needed. Not the same as INT which always rounds it down. Easy enough to check this.

This.  Program:

10 RANDOMIZE
20 A=RND*10
30 ON A+1 GOSUB 100,110,120,130,140,150,160,170,180,190,200
40 GOTO 20
100 PRINT "0";A :: RETURN
110 PRINT "1";A :: RETURN
120 PRINT "2";A :: RETURN
130 PRINT "3";A :: RETURN
140 PRINT "4";A :: RETURN
150 PRINT "5";A :: RETURN
160 PRINT "6";A :: RETURN
170 PRINT "7";A :: RETURN
180 PRINT "8";A :: RETURN
190 PRINT "9";A :: RETURN
200 PRINT "10";A :: RETURN

Sample output (notice rounding is always the nearest integer, not restricted to just up or down):

##### Share on other sites

1 hour ago, SteveB said:

I also tend to the IF-THEN, but above line does not require the numbers to be sequential integers, this would also work with strings or key-codes, as the (Var=Value) terms are -1 when true, with the multiplicator giving the ON value.

ON 1-(a=65)-2*(a=88)-3*(a=32 or a=13) GOSUB CASEELSE, CASE001, CASE002, CASE003

Would work just as well.

Ah I see. Yes that would work. Clever.

I guess then it's up to you to decide how you want to proceed. I'll be a very happy camper either way as long as I have a CASE statement! ?

##### Share on other sites

2 hours ago, RXB said:

Hmm we do have a command to deal with this INT(floating point number)

What if the starting value of the selection variable is not 1?

Also what if I want to compare specific float values and not integers?

##### Share on other sites

I just noted that the TAB key does not work in the editor. I think it's important to have that functionality for ease of formatting.

##### Share on other sites

5 hours ago, Vorticon said:

I just noted that the TAB key does not work in the editor. I think it's important to have that functionality for ease of formatting.

I can add a TAB key to RXB Editor so how many spaces should it jump forward or should it look for something like "::" ?

Spoiler

***********************************************************
CTRLS  CEQ   147,@RKEY          CTRL S
BR    CTRLD                 No, check more
DST  @VARW,@ARG5       Force cursor to start
*                              ARG5 = current position
BR   RBACK                Now process like FCTN S
CTRLD  CEQ  132,@RKEY         CTRL D
BR   CTRLE                 No, check more
DST  @VARA,@ARG5       Force cursor to end
CALL SPACES              Look for space
BR   RFORW                Process like FCTN D
CTRLE  CEQ  133,@RKEY         CTRL E
BR   CTRLX                  No, check more
DSUB 32,@ARG5          Up one line
DCH  @ARG5,@VARW       Check range
CTRLX  CEQ  152,@RKEY         CTRL X
BR   CTRL                    Resume where left off
DCHE @ARG5,@VARA       Check range
DSUB 32,@ARG5          No, redo
CTRL   CHE  >20,@RKEY         Control character!!!!
BS   G6BD0
SPACES CEQ  >80,V*ARG5        SPACE?
BR   SPACE2
DDEC @ARG5
BR   SPACES
SPACE2 CEQ  >7F,V*ARG5        CURSOR?
BS   SPACE3
RTN
SPACE3 DSUB 4,@ARG5
BR   SPACES
BR   G6A86
***********************************************************

I think the best thing would be tab maybe 24 characters at time so next line in Editor each tab.

XB EXAMPLE:

100 ! This is a test line at line 100 and just to show an example.

When you hit tab the screen would like this:

100 ! This is a test line at

@line 100 and just to sh

ow an example.

The @ is where the Cursor would move to.

##### Share on other sites

58 minutes ago, RXB said:

I can add a TAB key to RXB Editor so how many spaces should it jump forward or should it look for something like "::" ?

Reveal hidden contents

***********************************************************
CTRLS  CEQ   147,@RKEY          CTRL S
BR    CTRLD                 No, check more
DST  @VARW,@ARG5       Force cursor to start
*                              ARG5 = current position
BR   RBACK                Now process like FCTN S
CTRLD  CEQ  132,@RKEY         CTRL D
BR   CTRLE                 No, check more
DST  @VARA,@ARG5       Force cursor to end
CALL SPACES              Look for space
BR   RFORW                Process like FCTN D
CTRLE  CEQ  133,@RKEY         CTRL E
BR   CTRLX                  No, check more
DSUB 32,@ARG5          Up one line
DCH  @ARG5,@VARW       Check range
CTRLX  CEQ  152,@RKEY         CTRL X
BR   CTRL                    Resume where left off
DCHE @ARG5,@VARA       Check range
DSUB 32,@ARG5          No, redo
CTRL   CHE  >20,@RKEY         Control character!!!!
BS   G6BD0
SPACES CEQ  >80,V*ARG5        SPACE?
BR   SPACE2
DDEC @ARG5
BR   SPACES
SPACE2 CEQ  >7F,V*ARG5        CURSOR?
BS   SPACE3
RTN
SPACE3 DSUB 4,@ARG5
BR   SPACES
BR   G6A86
***********************************************************

I think the best thing would be tab maybe 24 characters at time so next line in Editor each tab.

XB EXAMPLE:

100 ! This is a test line at line 100 and just to show an example.

When you hit tab the screen would like this:

100 ! This is a test line at

@line 100 and just to sh

ow an example.

The @ is where the Cursor would move to.

I have trouble seeing how much functionality this would add. Both RXB and XB 2.8 G.E.M. can use Ctrl up and Ctrl down to go up or down one line in the editor. That would be a tab of 28 characters. I suppose going to the statement separator "::" could be of use.

##### Share on other sites

2 hours ago, senior_falcon said:

I have trouble seeing how much functionality this would add. Both RXB and XB 2.8 G.E.M. can use Ctrl up and Ctrl down to go up or down one line in the editor. That would be a tab of 28 characters. I suppose going to the statement separator "::" could be of use.

Hmm that line can be 4 screen lines long. That is a lot to get to what you want to edit using  the left arrow.

Besides now that I have moved so much GPL from GROM to ROM I can add all kinds of features to XB no one else has added.

I think the FIND? command using the FCTN TAB key would be great to find :: or say something like SPRITE or a Variable name.

##### Share on other sites

3 hours ago, RXB said:

Hmm that line can be 4 screen lines long. That is a lot to get to what you want to edit using  the left arrow.

Yes, using the left and right arrows can be a very tedious way of getting navigating a long line. I suspect that's why the author of RXB made it so Ctrl Up and Ctrl Down work the way they do.

• 1
• 1
##### Share on other sites

You guys are so funny.

I'm pretty certain the request for TAB support was focused on the main topic of this thread. TiCodEd.

##### Share on other sites

23 minutes ago, jedimatt42 said:

You guys are so funny.

I'm pretty certain the request for TAB support was focused on the main topic of this thread. TiCodEd.

Boy, do I feel silly!

##### Share on other sites

As an FYI, program works fine in WINE, on Ubuntu, too ?

##### Share on other sites

SELECT CASE likewise is unconcerned about variable type or content.  It can be a string, an integer, a double, a single, a long...An array index...--- whatev.

For this reason I would say the GOSUB surrogate, while clever, is not really a substitute for SELECT CASE.  Especially since CASE allows the use of the "OTHER" case, which is "All things not specified".  Sure, you could do something similar with "VARIABLE >=[integer]", with all the lower values being your branch targets--- but then how do you deal with the edge case of the integer not being proper (such as a 0)?  Depending on how you are using that CASE surrogate, it could be messy.

OK, this is annoying. I click on a thread I KNOW FOR A FACT THAT I HAVE READ, and it sends me to a page that is older than dirt, I am sleepy, dont pay attention, and then reply to it and look like a chump.  (makes angry old man sounds)

Edited by wierd_w
##### Share on other sites

15 hours ago, RXB said:

I can add a TAB key to RXB Editor so how many spaces should it jump forward or should it look for something like "::" ?

Reveal hidden contents

***********************************************************
CTRLS  CEQ   147,@RKEY          CTRL S
BR    CTRLD                 No, check more
DST  @VARW,@ARG5       Force cursor to start
*                              ARG5 = current position
BR   RBACK                Now process like FCTN S
CTRLD  CEQ  132,@RKEY         CTRL D
BR   CTRLE                 No, check more
DST  @VARA,@ARG5       Force cursor to end
CALL SPACES              Look for space
BR   RFORW                Process like FCTN D
CTRLE  CEQ  133,@RKEY         CTRL E
BR   CTRLX                  No, check more
DSUB 32,@ARG5          Up one line
DCH  @ARG5,@VARW       Check range
CTRLX  CEQ  152,@RKEY         CTRL X
BR   CTRL                    Resume where left off
DCHE @ARG5,@VARA       Check range
DSUB 32,@ARG5          No, redo
CTRL   CHE  >20,@RKEY         Control character!!!!
BS   G6BD0
SPACES CEQ  >80,V*ARG5        SPACE?
BR   SPACE2
DDEC @ARG5
BR   SPACES
SPACE2 CEQ  >7F,V*ARG5        CURSOR?
BS   SPACE3
RTN
SPACE3 DSUB 4,@ARG5
BR   SPACES
BR   G6A86
***********************************************************

I think the best thing would be tab maybe 24 characters at time so next line in Editor each tab.

XB EXAMPLE:

100 ! This is a test line at line 100 and just to show an example.

When you hit tab the screen would like this:

100 ! This is a test line at

@line 100 and just to sh

ow an example.

The @ is where the Cursor would move to.

I was thinking more along the lines of text indentation in TICODED.

But the idea of tabbing within the RXB editor is also interesting and I would lean towards tabbing to the next "::" which would simplify the editing of long multi-statement lines. I have also found that using the CTRL-arrow keys to freely move around a line in the XB GEM editor was very useful, the closest we could get to a full-screen editor in XB, something to perhaps also consider in RXB.

##### Share on other sites

7 hours ago, Vorticon said:

I was thinking more along the lines of text indentation in TICODED.

But the idea of tabbing within the RXB editor is also interesting and I would lean towards tabbing to the next "::" which would simplify the editing of long multi-statement lines. I have also found that using the CTRL-arrow keys to freely move around a line in the XB GEM editor was very useful, the closest we could get to a full-screen editor in XB, something to perhaps also consider in RXB.

Well Senior Falcon is correct RXB already had CONTOL ARROWS for first of line, end of line and up and down lines.

But I am going to add FIND into XB Editor Mode so like RES or NUM or COPY just type in FIND linenumber,string

EXAMPLE:

FIND 2070,RK=LF

Would start at line number 2070 and look for "RK=LF" in program and show line number with "RK=LF" in that line number.

##### Share on other sites

What would you use as Tab key on a TI-99/4A?

##### Share on other sites

On 7/12/2021 at 2:40 PM, Vorticon said:

I just noted that the TAB key does not work in the editor. I think it's important to have that functionality for ease of formatting.

What is not working for you?

On an empty page TAB indents 3 characters, otherwise it tries to align with the indention of the line above. This is a function of the Lazarus SynEdit component and not changed by me.

Does it behave differently on your system?

Steve

##### Share on other sites

1 hour ago, Asmusr said:

What would you use as Tab key on a TI-99/4A?

FCTN-7? It's the standard tab key for the E/A editor and most other editors.

##### Share on other sites

43 minutes ago, SteveB said:

What is not working for you?

On an empty page TAB indents 3 characters, otherwise it tries to align with the indention of the line above. This is a function of the Lazarus SynEdit component and not changed by me.

Does it behave differently on your system?

Steve

OK so I was entering code into the XB tab instead of the SXB one. Duh...

Everything works fine. Sorry about the false alarm.

##### Share on other sites

9 minutes ago, Vorticon said:

FCTN-7? It's the standard tab key for the E/A editor and most other editors.

Thanks, I have never tried that.

##### Share on other sites

Also used in SNP, fctn7, tab.

##### Share on other sites

That's also the mapping I used on my PS/2 keyboard and Classic99

##### Share on other sites

I just released version 1.2 of TiCodEd. The biggest change is the new "Variable" tab. As I was writing a larger SXB program I found it difficult to remember all the tiny variable names I was using to preserve precious RAM. With this new feature you can use long, meaningful variable names in SXB and get the substituted for memory saving short names in XB when writing the tokenized file (on the XB tab the long name is still used). This tab also features a cross-reference for you to see in which XB line a variable is used.

I also fixed some bugs and made some usability enhancements, i.e. the window size and position is now remembered. You can download the new version as always at http://lizardware.de/ with Lazarus Source for Windows 64 and 32 bit.

Enjoy

Steve

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

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

×