Jump to content

Recommended Posts

Posted (edited)
On 5/13/2022 at 12:16 AM, RXB said:

Can you do the Demo line I have showed you and the Youtube I provided in any other XB?

It is also a line that cannot be done in any other XB that I know of.

Sigh... What does this have to do with the topic being discussed?

The line you posted in your post #40 cannot be entered in RXB. This is yet another example of how you like to post things without testing them.

However, it you remove the final ::PRINT then it can be entered in RXB.

But here's the thing:

If you use "Paste XB" in Classic 99 then that line (shortened by one print) can be entered in both standard XB and XB 2.9 with no trouble.

However, there is a difference when actually entering text from the keyboard. RXB allows you to enter up to 21 screen lines. Sadly, poor XB 2.9 G.E.M. comes up short here. (edit - only in the 32 column edit mode) With 2.9 you can only enter up to 12 screen lines. (Which is way more than enough for any normal XB use) Any users of XB 2.9 G.E.M. who are disturbed by this egregious shortcoming can fix it with a hex editor. Search XB29GEM_G.BIN for >045D and change it to >05DD. That will give you all 24 screen lines, 3 more than RXB. But as noted above, in the real world this will make exactly zero difference.

Edit - EDIT40 and EDIT80 modes have no problem entering Rich's line with all the PRINT statements.

 

If you want to continue pointless discussions like this, please start a new thread. Something like "Differences between RXB and XB 2.9 G.E.M." should be good.

Edited by senior_falcon
  • Like 4

Share this post


Link to post
Share on other sites
6 hours ago, senior_falcon said:

Sigh... What does this have to do with the topic being discussed?

The line you posted in your post #40 cannot be entered in RXB. This is yet another example of how you like to post things without testing them.

However, it you remove the final ::PRINT then it can be entered in RXB.

But here's the thing:

If you use "Paste XB" in Classic 99 then that line (shortened by one print) can be entered in both standard XB and XB 2.9 with no trouble.

However, there is a difference when actually entering text from the keyboard. RXB allows you to enter up to 21 screen lines. Sadly, poor XB 2.9 G.E.M. comes up short here. With 2.9 you can only enter up to 12 screen lines. (Which is way more than enough for any normal XB use) Any users of XB 2.9 G.E.M. who are disturbed by this egregious shortcoming can fix it with a hex editor. Search XB29GEM_G.BIN for >045D and change it to >05DD. That will give you all 24 screen lines, 3 more than RXB. But as noted above, in the real world this will make exactly zero difference.

 

If you want to continue pointless discussions like this, please start a new thread. Something like "Differences between RXB and XB 2.9 G.E.M." should be good.

Dude you never explained how the POSTING TITLE WAS DONE, but I did and it was sector edited or memory patched.

You can change line length set to 1 but still have a 159 token line in XB minus the 1 byte length.

As for the REDO (Edit Buffer) it is only 152 characters in size, but the Crunch Buffer is 160 characters in size.

I even explained this in the Video which you might never have watched, that totally explains the limit of how many characters you can type into XB.

I have no issue with you or your product, but you seem to have one with me constantly.

I admit when I am wrong and have done so many times. Being wrong will not kill me.

Are we done here please?

  • Sad 1

Share this post


Link to post
Share on other sites
11 minutes ago, RXB said:

Dude you never explained how the POSTING TITLE WAS DONE, but I did and it was sector edited or memory patched.

You can change line length set to 1 but still have a 159 token line in XB minus the 1 byte length.

As for the REDO (Edit Buffer) it is only 152 characters in size, but the Crunch Buffer is 160 characters in size.

I even explained this in the Video which you might never have watched, that totally explains the limit of how many characters you can type into XB.

I have no issue with you or your product, but you seem to have one with me constantly.

I admit when I am wrong and have done so many times. Being wrong will not kill me.

Are we done here please?

Do we really think the 12 year old used this route?  Or is it more likely they used a non-GPL Extended Basic route?

 

I'm not saying we didn't have some very bright kids in our midst, but I would lean more towards a non-GPL Extended Basic route.  

 

We will unlikely never know how many licks it takes to get to the center of a tootsie pop.............

 

Beery

  • Like 2

Share this post


Link to post
Share on other sites
3 hours ago, 9640News said:

Do we really think the 12 year old used this route?  Or is it more likely they used a non-GPL Extended Basic route?

I'm not saying we didn't have some very bright kids in our midst, but I would lean more towards a non-GPL Extended Basic route.  

We will unlikely never know how many licks it takes to get to the center of a tootsie pop.............

Beery

I would too, provided Myarc XB 2.12 was available by 1987. I think that date is mentioned in the program comments.

  • Like 1

Share this post


Link to post
Share on other sites
18 hours ago, RXB said:

Yes and I disassembled the GPL of SXB and it was pretty much GKXB with some additions of XB Plot added.

I

There may be two Super Extended BASICs or I am remembering the title wrong title.  There was no GPL code, only assembly, for what I refer to. I'll see if I can find the files tonight.

  • Like 2

Share this post


Link to post
Share on other sites

I was wrong: the program is "SUPERBASIC.  Copyright 1987 Steven Karasek."   In addition to being able to JOIN statements, there were softkeys, enhanced editing, and other neat features like finding patterns and text within the program right from command mode.  Is this a precursor to SXB? I don't know.  Maybe there are some neat features that others would like to implement elsewhere.  The RECOVER option came in handy for me a few times when I crashed XB prior to saving my program.  I wasn't able to test JOIN to see if it addresses the question at hand.

 

The spoiler contains the text from the documentation file; the ZIP is a copy of my disk from long ago.  Important note: if I recall correctly, the dongle can be simulated by holding joystick 1 in the UP position. 

 

 SUPERBASIC Karasek 1987.zip 

 

 

 


 .
 .
 .
                                   SUPERBASIC.
                         Copyright 1987 Steven Karasek.
 .
          SUPERBASIC adds several new commands and function keys to Extended.
     Basic.   There are DOS-type commands, additional editing functions, and.
     32 (not 10) user-programmable keys.  SUPERBASIC resides in  low  memory.
     expansion,  so  the  commands are immediately accessible, but no memory.
     space is taken away from your Extended Basic  program.   In  fact,  the.
     program  in  memory  is  left  undisturbed  when using the new commands.
     (except for DEL, RENUM, JOIN, ENTER, and EDIT).  Most of the  functions.
     can  also  be called from your program (for example, CALL LINK("DIR",1).
     will display a directory of drive 1)..
          There are 32 user-programmable keys (Control-A  through  Control-Z.
     plus 6 other control keys).
 Each key can be assigned a string of up to.
     29 characters;  keywords,  printer  name,  anything  you  want.   Their.
     initial  values  are  taken  from a file on DSK1 called SOFTKEYS, which.
     have lines of the form A=DATAb or L=LIST\.  The lines must be in  ASCII.
     order,  so  when  editing  the  file, change the definitions, but don't.
     change the first two characters on each line or add any lines.  When  a.
     definition  ends  with  a lowercase b, a blank is appended.  If it ends.
     with a \, a carriage  return  is  appended.   In  the  above  examples,.
     therefore,  CTRL-A  will produce DATA followed by a blank, while CTRL-L.
     will produce LIST followed by a carriage return (i.e.  the ENTER  key),.
     so pressing CTRL-L will list your program..
          Note:  SUPERBASIC  commands  will  not  be  recognized if they are.
     assigned to a soft key with a carriage return appended.   For  example,.
     if  you  have  a key defined as "DIR\", it will not be recognized.  You.
     can use "DIRb", which will give you an opportunity to supply the  drive.
     number  before  pressing  ENTER,  or  you can use "CALL LINK("DIR",1)\".
     (although this is permanently assigned to CTRL-1)..
          Included with the disk is a "key" which fits in the joystick port..
     It  must  be  present  for  SUPERBASIC  to function.  However, the disk.
     itself is not copy-protected, so you may make as  many  copies  as  you.
     want.   The  idea  is that you would put the files on all of your disks.
     that you use for XBASIC programs.  If you do not copy the documentation.
     to each disk, the other files do not take up very much room..
          If  you  want an Extended Basic program to run automatically after.
     SUPERBASIC  is  loaded,  just  replace  the  CALL  LINK("NEW")  in  the.
     DSK1.LOAD  program  to RUN "DSK1.programname", where programname is the.
     name of your program on the disk..
 .
          The new function keys are as follows:.
 .
          FCTN-5: Backwards Tab - move backwards one-half line..
 .
          FCTN-6: Tab - move forward one-half line..
 .
          FCTN-7: AID - list the names of the new commands to the screen..
 .
          FCTN-9: Clear to Beginning of Line.
 .
          FCTN-0: Clear to End of Line.
 .
          FCTN-.: SAVE - remembers the last file name you used in an OLD  or.
     SAVE  command,  and  types  SAVE  followed by that file name.  Once you.
     confirm the name, just press the ENTER key to save the file..
 .
          CTRL-1 through CTRL-6: Directory of drives 1 through 6..

 .
 .
..
 .
 .
 .
          The new commands are as follows:.
 .
     DEL m-n or DEL m,n.
          DEL deletes a range of lines from the Extended  Basic  program  in.
     memory,  e.g.   DEL  100-200  deletes  all  lines  between  100 and 200.
     inclusive.  To help guard against typos which could cause you  to  lose.
     part  of your program inadvertently, the two specified lines must exist.
     in your program..
 .
     RENUM m,n,new [,increment] or RENUM m-n,new [,increment].
          RENUM resequences  part  of  your  Extended  Basic  program.   For.
     example,  RENUM  100,200,1000,5  moves  lines  100 through 200 to lines.
     1000,1005,1010, etc.  Like DEL, lines  m  and  n  must  exist  in  your.
     program.   If  the  increment is not specified, it defaults to 10.  All.
     references to the moved lines (in GOTOs, GOSUBs, ON-GOTOs,  etc.)  will.
     be renumbered as well..
          If  you  have  subroutines  starting at easy to remember locations.
     like 1000, 2000, etc., you can now renumber the  main  program  without.
     disturbing these locations.  The lines must be moved to an "empty" line.
     number area, or you will receive an error message.  For example, if the.
     first new number would be 1000 (as above) and the last new number would.
     be 1200, there must not be any lines already between 1000 and 1200..
          This restriction is easy to get around, however.  If you  want  to.
     renumber  lines  100 through 200 so that they are evenly spaced with an.
     increment of 10, but keep them starting at line 100, first move them to.
     an  empty  area,  probably  at  the  end  of  your program (e.g.  RENUM.
     100,200,32000,1).  Type LIST 32767 to see what the  last  line  in  the.
     program  is  (assume for this example that it's 32100).  Then move them.
     back to 100 (RENUM 32000,32100,100).  By using 1 as  the  increment  in.
     the first move, the "empty" area does not have to be very large..
          Even  if you want to renumber your whole program, this command has.
     an advantage over the RESEQUENCE command.  If, for example, you have  a.
     subprogram  in  another  file  (which will later be merged into memory).
     which starts at line 10000, and  you  have  one  or  more  GOSUB  10000.
     statements  in  your  program,  RESEQUENCE  will  change these to GOSUB.
     32767, whereas RENUM will leave them alone..
 .
     JOIN n.
          JOIN joins two Extended Basic lines together, allowing you to save.
     memory.  For example, if your program contains the lines:.
     10 A=B.
     20 C=D.
     with  no intervening lines, then the command JOIN 10 will combine these.
     into:.
     10 A=B :: C=D.
     If the lines contain DATA statements, the two  sets  of  data  will  be.
     combined  into  one DATA line, with a comma between the two sets.  Each.
     joined line saves 6 bytes for DATA  lines,  or  5  bytes  for  non-DATA.
     lines..
          Not  all  lines  can be safely joined.  If there is a reference to.
     the second  line  (in  a  GOTO,  GOSUB,  or  RESTORE  statement),  this.
     reference  would  be  meaningless  after  the JOIN.  This can easily be.
     checked, using the FIND  command  (described  later).   For  the  above.
     example,  just  type  /GOTO  20  to find all references to line 20.  If.
     there are none, it is safe to join  the  lines.   If  there  is  an  IF.
     statement  in  the  first line, then it is usually not safe to join the.
     lines.  There are exceptions to this, however.  If a  line  ends  in  a.
     statement  such as IF X>Y THEN 100, you can join the lines, then change.
 .
 .
..
 .
 .
 .
     the :: that was inserted into an ELSE.  There are other  examples  like.
     this; just make sure that the logic of the program is not changed.  You.
     will not be allowed to join a DATA line and a non-DATA line..
 .
     /pattern.
          / (FIND) will allow you to find patterns in your  XBasic  program..
     You  can  find all occurences of a variable name, keyword, string, line.
     number, etc.  You can combine these and search for  patterns  like  "IF.
     A>B AND X$<>"Q" THEN PRINT A,B :: GOTO 100".  Any fragment of an XBasic.
     program line can be specified as the pattern, from one character to the.
     entire line..
          An XBasic program is stored in memory in tokenized form, with each.
     keyword having a one byte code.  Therefore, the keyword  THEN  and  the.
     string  "THEN"  are  stored differently.  You can search for one or the.
     other by specifying either THEN or "THEN" as the pattern..
          Line numbers are stored differently then numeric  constants,  even.
     though  they  may  look  the same in the program.  XBasic knows it is a.
     line number if  it  follows  a  GOTO,  GOSUB,  ON-GOTO,  RESTORE,  etc..
     statement.   If  you  want to find all of the occurences of line number.
     1000, specify the pattern as "GOTO 1000".  The GOTO will force the 1000.
     to  be  stored as a line number, but the find program ignores a GOTO at.
     the beginning of a pattern.  If you want the word GOTO in the  pattern,.
     use  "/GOTO GOTO 1000" (or just GOTO GOTO to find all occurences of the.
     keyword GOTO).  If you use just GOTO as the pattern, this will become a.
     null pattern, which matches every line in the program!.
          The  pattern  A will match any variable name or quoted string (but.
     not keyword) containg the letter A.  The pattern "A"  will  match  only.
     the quoted string "A".  The pattern AT will match only the keyword AT..
          FIND  will  sometimes  report  a  match  when  there is none.  For.
     example, if you type "/A", it will find all occurences of the letter A,.
     but it will also find all occurences of line number 65, since 65 is the.
     ascii code for A.  To avoid this, try using a longer pattern..
 .
     !text.
          ! is an alternate form of the FIND command which is used  to  find.
     patterns   consisting   of  ASCII  text  rather  than  tokenized  code..
     Therefore, while /THEN will find the keyword THEN, !THEN will find  the.
     word  THEN  in  a  REM  statement,  DATA  statment,  or  quoted  string.
     (actually,  it  could  be  embedded  in  another  word  or  string   of.
     characters).   This  form  of  the  FIND  command  is  most  useful  in.
     conjunction with the EDIT command (described later)..
 .
     DIR [n] or CALL LINK("DIR",n).
          DIR displays a directory of disk drive n on the screen.  If  n  is.
     not  specified,  it  defaults  to  the last drive number used in a DIR,.
     RENAME, LOCK, or UNLOCK statement.  It must be  specified  if  you  use.
     CALL LINK..
          For  example,  DIR 1  will  display  a  directory of drive 1.  The.
     information displayed for each file, in order, is the name,  the  size,.
     an asterisk if write protect is on or a blank if it isn't, and the type.
     (e.g.  PROG for program,  DV 80  for  Display/Variable  80,  IF100  for.
     Internal/Fixed 100, etc.).  Up to 46 files are displayed on one screen;.
     press any key to move on to the next screen or to exit DIR..
 .
     TYPE "filename" or CALL LINK("TYPE",filename).
     TYPE displays a display/variable 80 file on the screen.   The  filename.
     must  be  enclosed  in  quotes  (e.g.   TYPE  "DSK1.DISVARFILE" or CALL.
     LINK("DSK1.DISVARFILE")).  To pause the display, hold down any key, and.
 .
 .
..
 .
 .
 .
     release  it  to  continue.   To  stop  and  get  back  to  BASIC, press.
     FCTN-CLEAR..
 .
     COPY "filename1" [TO] "filename2" or.
     CALL LINK("COPY","filename1","filename2").

          COPY copies a display/variable 80 file to another file or  to  the.
     printer  (the second file name can be something like "PIO" or "RS232")..
     The keyword TO is optional.  FCTN-CLEAR will halt the copy..
          Examples:.
          COPY "DSK1.A" TO "DSK1.B" will make a copy of file A  with  a  new.
     name on the same disk..
          COPY "DSK1.A" "DSK2.A" will make a copy of file A on another disk..
          COPY"DSK1.A"TO"PIO"  will print file A (you may want to define one.
     of the softkeys as the name of your printer, especially if it is a long.
     name such as "RS232.BA=1200")..
 .
     APPEND "filename1" [TO] "filename2" or.
     CALL LINK("APPEND","filename1","filename2").

          Similar  to  COPY, but the contents of the first file are added to.
     the end of the second file.  The first file is unchanged..
 .
     RENAME "filename1" [TO] "filename2" [,n] or.
     CALL LINK("RENAME","filename1","filename2",n).

          RENAME renames a file on the  disk  in  drive  n.   If  n  is  not.
     specified,  it defaults to the last drive number used in a DIR, RENAME,.
     LOCK, or UNLOCK statement.  It must be specified if you use CALL  LINK..
     The file can be of any type and record length, including program files..
     The keyword TO is optional..
 .
     LOCK "filename" [,n] or CALL LINK("LOCK","filename",n).
          LOCK turns on write protection for a file on the disk in drive  n..
     If  n  is not specified, it defaults to the last drive number used in a.
     DIR, RENAME, LOCK, or UNLOCK statement.  It must be  specified  if  you.
     use  CALL  LINK.   The  file  can  be  of  any  type and record length,.
     including program files..
 .
     UNLOCK "filename" [,n] or CALL LINK("UNLOCK","filename",n).
          Similar to LOCK, but turns off the write  protection  for  a  disk.
     file..
 .
     QOFF or CALL LINK("QOFF").
          QOFF  disables  the  FCTN-QUIT  key.  If you want SUPERBASIC to be.
     loaded with the QUIT key disabled, just insert 'CALL  LINK("QOFF")  ::'.
     before the CALL LINK("NEW") in the program in DSK1.LOAD..
 .
     QON or CALL LINK("QON").
          QON enables the FCTN-QUIT key..
 .
     ENTER "filename".
          ENTER  reads a program listing from a display/variable 80 file and.
     merges it into program memory.  In other words, each line of  the  file.
     is  treated  as  if you had typed it in at the keyboard.  The result is.
     similar to the MERGE command, e.g.  the lines are added to the  program.
     already in memory.  If a line in the file has the same line number as a.
     line in memory, the line from the file will replace the one in  memory..
     If  you  want  ENTER  to work like OLD rather than MERGE, just type NEW.
     before using it..
          With this command, you can now list your program to a  file  (e.g..
 .
 .
..
 .
 .
 .
     LIST  "DSK1.LISTING"), edit it with a text editor like TI-WRITER (using.
     ReplaceString to change variable names, etc.), then read it  back  into.
     memory  (e.g.   ENTER "DSK1.LISTING").  The maximum length of a line is.
     256 characters, which is just over 3 full lines in a DIS/VAR  80  file,.
     or 9 screen lines when LISTed by BASIC..
          If  a line in the file ends in column 79 or 80, ENTER assumes that.
     it is continued on the next line.  With a 79 character line, a space is.
     placed  in  column  80  before appending the next line.  If some of the.
     lines happen to be exactly 79 or 80 characters long, this will  produce.
     incorrect  results.   Therefore,  when  you  are done editing the file,.
     check for lines that end in column 79 or 80 without being continued  on.
     the  next  line.   If you have any lines like this, just insert a blank.
     line after them, and the problem is solved..
          As with TYPE, you can hold down a key (the space bar is  best)  to.
     pause  the  display, and release it to continue.  You may have to press.
     the ENTER key to get it to continue.  Also, FCTN-CLEAR will  bring  you.
     back to BASIC, but you may need to press it a few times..
          If  you  want  to make a copy of a piece of code (e.g., copy lines.
     1000-1100 to 2000, leaving 1000-1100 intact),  you  can  use  ENTER  in.
     combination  with  RENUM to accomplish it.  For the example, first type.
     LIST "DSK1.TEMP":1000-1100.  Then type RENUM 1000-1100,2000.   Finally,.
     type ENTER "DSK1.TEMP".  Be careful, though, as any references to lines.
     1000 through 1100 have been changed to refer to line 2000 or beyond..
 .
     EDIT "filename".
          EDIT allows you to edit a DIS/VAR 80 file without leaving Extended.
     Basic.   The  file is read into program memory, with each line preceded.
     by a line number and a !, so that XBasic will treat  it  as  a  remark..
     Now you can use all of the normal XBasic and SUPERBASIC commands (LIST,.
     DEL, RENUM, etc.) to edit it.  The ! form of the FIND  command  can  be.
     used  to find all occurences of a particular word or phrase.  Each time.
     you type a line number followed by a space (either manually or  by  use.
     of  the  NUM  command),  the  !  at  the  beginning of the line will be.
     supplied automatically..
          The background color will change to green to remind you  that  you.
     are  in  edit mode.  If you want a different color, change the value of.
     EDITCOLOR in the first line of DSK1.LOAD to the number of  the  desired.
     color   (see  the  XBasic  manual  for  a  list  of  colors  and  their.
     corresponding values)..
          When you are done editing or when you want to save what  you  have.
     edited so far, use the WRITE command.  WRITE will write the file (minus.
     the line numbers  and  !'s)  to  the  default  filename  (the  filename.
     specified  with  the EDIT command).  WRITE "filename" will write it out.
     to the specified file, and make this the default filename..
          To get out of edit mode, use QUIT.  This will clear memory and put.
     you back into normal XBasic mode, so make sure to use the WRITE command.
     first if you want to save your changes..
          If you want to create a new  file,  the  filename  must  still  be.
     supplied with the EDIT command.  This file will be created later if you.
     use WRITE..
          If a line ends up longer than 80  characters  during  editing,  it.
     will  be  split into two lines when written out.  Three screen lines is.
     84 characters, minus the space taken up by the line number, the  space,.
     and  the  !,  so  as  long  as you keep your lines no longer than three.
     screen lines, you should be okay..
          You can edit the file "DSK1.SOFTKEYS", for example,  but  the  new.
     key definitions will not take effect until you re-boot SUPERBASIC..
 .
 .
 .
..
 .
 .
 .
     KILL or CALL LINK("KILL").
          KILL   turns   off   SUPERBASIC.    To   restart   it,  type  CALL.
     LINK("SUPER")..
 .
          Important: If you use CALL INIT, either  in  your  program  or  in.
     command  mode,  you  must type KILL first, or the system may crash.  If.
     you wish to restart SUPERBASIC after doing a CALL INIT, you  will  need.
     to re-boot the disk..
 .
     CALL LINK ("INSKEY", ....
          You may replace a single instance of a softkey definition by using.
     CALL LINK ("INSKEY",n,string), where n is the ASCII code  for  the  key.
     being  redefined  (a number between 128 and 159), and string is the new.
     key definition.  If you wish to have a blank or carriage return at  the.
     end,  you  must insert them (e.g.  "LIST " or "LIST"&CHR$(13), where 13.
     is the ASCII code for a carriage return).   The  ASCII  codes  for  the.
     control  keys are listed in the Appendix in the Basic or Extended Basic.
     manual, on the keyboard description for key unit 5..
 .
     RECOVER.
          The RECOVER program is separate from SUPERBASIC.  It allows you to.
     (usually) recover your Extended Basic program in case of a system crash.
     or a NEW.   If  you  lose  your  program  in  this  way,  follow  these.
     instructions VERY CAREFULLY:.
          1.   Remove  the  SUPERBASIC  disk  or any other disk containing a.
     program called LOAD from disk drive 1.  If you have a LOAD  program  on.
     drive 1, it will be loaded over the program you are trying to recover..
          2.   Get  back  to  the  main  title  screen  by  either  pressing.
     FCTN-QUIT, removing and reinserting the Extended  Basic  cartridge,  or.
     turning the console off and back on.  The latter should only be done if.
     your memory expansion unit gets its power from somewhere other than the.
     console (e.g. a memory card in the P. E. box)..
          3.   Press  a  key,  then  choose  2 to get back to Extended Basic.
     (remember, no DSK1.LOAD)..
          4.  Insert the SUPERBASIC disk into drive 1..
          5.  In command mode (not in a program), type CALL INIT, then  type.
     CALL LOAD("DSK1.RECOVER")..
          Your program should now be recovered..
          Occasionally, RECOVER is not able to fully recover the program, so.
     you may want to LIST it and check it out.  If you want to  restart  the.
     SUPERBASIC system, save the program to disk, then type RUN "DSK1.LOAD"..
          RECOVER will not work if the LOWEST line number in your program is.
     256 or greater.  If you're expecting a system crash, be sure  you  have.
     at least one line numbered less than 256..
 .
          Occasionally, a few extraneous bytes ("garbage") may be introduced.
     into your program, especially when using DEL, RENUM, and  JOIN.   These.
     bytes  do  not  affect your program, but they do take up space.  To get.
     rid of these bytes, save your program in MERGE format, type NEW,  MERGE.
     the  program  back  in,  then save it in the normal way (see the XBasic.
     manual for information on the MERGE command).  There will probably  not.
     be  a  whole lot of garbage, so you shouldn't need to do this until the.
     program is completely finished..
 .
                                 Steven Karasek.
                                 855 Diversey Dr..
                                 St. Louis, MO 63126.
                                 (314) 961-2052.
 .
 .
..

 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
Posted (edited)

Sounds similar to SXB (Super Extended Basic) by JK&H Software who also published Super Cataloger and Video Tiles I, II, & III.

There were ads for this in 99'er Magazine.

 

Here is SXB v1.0 as a DSK image and ARC'd TIFiles format.

 

SXB.ARC

SXB-DISK.dsk

Edited by Torrax
Fixed SXB disk name in DSK image

Share this post


Link to post
Share on other sites
Posted (edited)

Went through all the XB's (sans RXB) yesterday in Classic99 and not one would accept the line without the errror message.

I wonder if he used one of the old XB utils that allowed importing of a XB program from a TI-Writer DV80 file...

Edited by Torrax
  • Like 1

Share this post


Link to post
Share on other sites
19 hours ago, senior_falcon said:

I would too, provided Myarc XB 2.12 was available by 1987. I think that date is mentioned in the program comments.

Hmmm I could be wrong but Myarc XB required a special device for memory to work, no way would it work from just a console.

This is just like Abasic that only runs on a Geneve, also a special device that is not a TI99/4A console nor is it really XB.

Without backward compatibly any XB is just a new creation not really XB anymore.

 

Also SXB due to having a Dongle in Joystick port kind of made use of Joystick useless.

And I should add SXB would not work without a 32K which disabled most of the Cartridge you purchased.

Share this post


Link to post
Share on other sites
12 hours ago, Torrax said:

Went through all the XB's (sans RXB) yesterday in Classic99 and not one would accept the line without the errror message.

I wonder if he used one of the old XB utils that allowed importing of a XB program from a TI-Writer DV80 file...

Yea for USER you need to use listing from XB with a Carriage Return at end of each full line so TI-Writer file or I just have a XB program that does it for each line.

100 ON ERROR 170
110 OPEN #1:"DSK6.PRAMTXT",INPUT
120 OPEN #2:"DSK6.PRAM80",OUTPUT
130 LINPUT #1:Z$
140 IF LEN(Z$)=80 THEN X$=X$&Z$ :: GOTO 130
150 IF LEN(Z$)<80 THEN PRINT #2:X$&Z$&CHR$(13)
160 X$,Z$="" :: GOTO 130
170 CALL CLSALL
180 END

This program reads a XB listing and adds a ENTER (Carraige Return) to each line of XB even if the line is several lines over 80 long.

I use it to create CALL USER files, and there is no size limit to USER DV80 files, it took 11 videos of 15 minutes each for one USER demo.

Share this post


Link to post
Share on other sites

I just did this:

 

loaded myarc xbII 

loaded conbug

edited the line changing a number

no errors, runs fine

saved the file as test

loaded TI xbasic

loaded test

loads fine runs fine

can't edit the line ..line too long

 

  • Like 4
  • Thanks 2

Share this post


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

I just did this:

 

loaded myarc xbII 

loaded conbug

edited the line changing a number

no errors, runs fine

saved the file as test

loaded TI xbasic

loaded test

loads fine runs fine

can't edit the line ..line too long

 

That seems most likely then. It is easy to believe that someone could type it in with XBII, get that long line and not have any reason to believe anything was unusual. It seems hard to believe that someone would resort to any of the subterfuges mentioned above just to get an extra byte in a line when all you would have to do is split the line.

Case closed, as far as I'm concerned.

  • Like 2

Share this post


Link to post
Share on other sites

We worked on the problem as part of the Zoom call today--and sussing out a way to a viable, simple solution was a lot of collaborative fun.

 

As to the timeline for availability of Myarc XB 2.12, I was working it with Manfred Krause and the TI User's Group Errorfree back in 1987/1988. He had a copy he'd purchased from Myarc back then (he actually started with the earlier releases--2.10 and 2.11). When I received my first Geneve we were testing back and forth to verify compatibility of the program between the two machines, since the earliest Geneve machines were delivered with a port of XB 2.12 instead of ABASIC. We discovered that programs written for one would "usually" work on the other, but the differences were enough that trying to do so was often an exercise in futility. I don't think I have my testing notes with the specific incompatibilities anymore, unfortunately.

 

The difference may not be just one extra character per line either--the line buffer for Extended BASIC 2.12 is apparently 163 characters, as opposed to the limit of 160 in the TI Crunch Buffer.

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

I appears that XB 2.10 and XB 2.11 or XB 2.12 relocated the VDP Stack (16 bytes) that normally in XB resides at >0958 to some other location.

This would increase the Edit/Recall Buffer by 16 bytes for the Editor/Recall  from 152 bytes to 168 bytes.

And that would explain the ability to add in more data for lines and in response the Crunch Buffer would have 1 character or token over run into Editor/Recall Buffer.

Not a problem as this would be ignored as already crunched for saving by hitting ENTER.

This also explains the >A0 (160 Tokens) as normal XB would crash as >BF (159 Tokens) is a over run in XB Editor/Recall Buffer limit.

 

I could do this in RXB but you would lose 16 bytes overall of memory in VDP to relocation of VDP Stack 16 bytes.

You know in EDIT mode there is no need for that Edit/Recall Buffer to be located there at >08C0 as the only time it is used is when no program is running anyway.

A Temporary VDP Buffer location could be used instead and it could be any size instead of just 152 bytes, and this would allow VDP Stack to not be moved.

Of course I need to test the limit most likely would crash over 163 bytes in Crunch Buffer limit.

 

  • Like 2

Share this post


Link to post
Share on other sites

I know I have read about this thing many many years ago, probably in a magazine. They were talking about just this to add one more character. But I just remember it as quick as this was NOT an issue I had. But I remember this as it was "weird" to obsess about ONE character 😛 So I know there is a trick to doing this. So there is a way, but that is all I know 😛

Share this post


Link to post
Share on other sites
Posted (edited)

Using Triton's SXB, I can edit or add onto line 310. I get the Line Too Long error. Despite the error, I go ahead and hit <Enter> anyway. The edit takes, can be re-edited back to original code and the program will still run. Did anyone else try this after getting the error?

Edited by Ed in SoDak
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Here's another quirk. SXB's CALL CAT shows the filename for CONCERTO3 is actually CONCER~1. I was getting file error 02 typing in CONCERTO3 till I figured out the "correct" filename. I've been using DOSbox to run V9T9 and also MacV9T9 in Classic MacOS 9.

 

CLASSIC99 can run CONCERTO3 and TIdir does not show the CONCER~1 filename.

 

Odd little beastie this program be!

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, Ed in SoDak said:

Here's another quirk. SXB's CALL CAT shows the filename for CONCERTO3 is actually CONCER~1. I was getting file error 02 typing in CONCERTO3 till I figured out the "correct" filename. I've been using DOSbox to run V9T9 and also MacV9T9 in Classic MacOS 9.

 

CLASSIC99 can run CONCERTO3 and TIdir does not show the CONCER~1 filename.

Long filename vs. DOS problem: CONCERTO3 is longer than eight characters.

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, Ed in SoDak said:

Using Triton's SXB, I can edit or add onto line 310. I get the Line Too Long error. Despite the error, I go ahead and hit <Enter> anyway. The edit takes, can be re-edited back to original code and the program will still run. Did anyone else try this after getting the error?

I only see "line too long" after pressing enter. Can you explain in more detail what it is that you are doing. I'm hard of thinking, so use short sentences and small words. (I'm using Super Extended Basic as found in Win994a.)

  • Haha 1

Share this post


Link to post
Share on other sites
Posted (edited)
6 hours ago, senior_falcon said:

I only see "line too long" after pressing enter. Can you explain in more detail what it is that you are doing. I'm hard of thinking, so use short sentences and small words. (I'm using Super Extended Basic as found in Win994a.)

I'm sorry. You're correct, Line Too Long does not show up until after <Enter> is pressed. But my point still stands that I can edit the line, enter it and the changes are accepted. So nothing special using SXB, beyond ignoring the error, is needed to edit that line. (depending, see below)

 

I was mostly just curious if anyone tried LISTing or RUNning the program after changing line 310.

 

But wait, there's more to this story. It gets convoluted, hope I keep it all straight. This is all done under emulation, not on the real iron.

 

It turns out SXB allows an edit, but only under MacV9T9 or CLASSIC99. I get Line Too Long after <ENTER>. Then bringing line 310 up again, the changes remain. I can lengthen the line quite a bit, though I did not try to see how much more would fit.

 

The old DOS version of V9T9 with SXB does NOT allow an edit. It reports the Line Too Long error but this time line 310 remains unchanged.

 

@senior_falcon, you are probably using the same SXB as I. CALL VERSION(X) puts the value 120 into X. It shows as SUPER EXTENDED BASIC in the TI's module menu.

 

I have not tried this with other flavors of XB, only SXB.

 

EDIT: My bad.banghead.gif.df9dc8f3a6b6d4f5e5e6d0a8021122df.gif I was using Function 8 (REDO) and just bringing my failed edit back up again. facepalm.gif.11b994530eb53aac79fcb690d885bb0c.gif

 

 

Edited by Ed in SoDak
Oh so wrong was I

Share this post


Link to post
Share on other sites
5 hours ago, senior_falcon said:

I only see "line too long" after pressing enter. Can you explain in more detail what it is that you are doing. I'm hard of thinking, so use short sentences and small words. (I'm using Super Extended Basic as found in Win994a.)

Well looking at the GPL and ROM source code of XB I think I can move the Edit/REDO VDP buffer to a temporary area that is deleted when you enter Program mode.

(After all the only time the EDIT mode is used is in EDIT MODE also the only time the RECALL redo buffer is used.)

This would extend the VDP CRUNCH Buffer to 310 bytes in size, of course only 254 could be used for program line size. 

 

Now MERGE file only allows DF163  files so no way to use this feature with MERGE FORMATs. (Might have to make a DF255 MERGE format optional)

But think of XB lines that are 254 bytes of TOKENS so a single XB line would be 94 more characters longer, of course this is all backwards compatible too.

 

Share this post


Link to post
Share on other sites
11 hours ago, OLD CS1 said:

Long filename vs. DOS problem: CONCERTO3 is longer than eight characters.

Now this IS a strange quirk! The V9T9 naming convention follows strict rules for 8 (name) + 3 (extension).

What happens in the PC filename, is a decimal point is inserted after 8 characters. But a TI emulator shows the "virtual TI99 filename."

 

As seen in this screen grab of XBLOAD where CATMAN215 is stored as CATMAN21.5 in the DSK1 folder. CONCERTO3, meanwhile, is not changed at all.

DOSnaming.thumb.jpg.94e4d5a896fa9b35c61eba0b046eeb0c.jpg

 

Now it gets weird! Trying to load CONCERTO3 does not work for MacV9T9 or PC V9T9! Even though that's the name shown for it as seen above.

 

Running the PC V9T9 with DOSbox,  SXB's CALL CAT command shows a totally different name for CONCERTO3, shown in this screen grab. It's somehow showing as CONCER~1...

 

1298687587_CONCERTO3hiddenfilename.thumb.jpg.3d03388a893360acaa9e9bd453bbc50b.jpg

 

...and you type that in, and now it loads!!

1928177046_ImHiding.jpg.cd2f199397fee564af8bac1a57b7090d.jpg

 

Meanwhile, CLASSIC99 doesn't care, it loads CONCERTO3 just fine, thank you. But MacV9T9 won't load it by either name. I have to re-save it with a shorter filename to load it there.

 

Okay... Let's see it in TIdir then...

 

780564517_TIdirScreenshot.thumb.jpg.7413f2b5419f039373b74d9c5c0b5dd0.jpg

 

...Hmmm. There sits CONCERTO3 with both PC and TI names matching. So where the heck is CONCER~1 hiding at that only PC V9T9 sees it?? Below, again we see that CATMAN215 shows the TI name correctly, but CONCERTO3 shows as CONCER~1.

770266146_DOSV9T9.thumb.jpg.008bc72b5059dab70106c5b5a97b3490.jpg

 

I can't explain it. Nor did I try other emulators or real iron or other flavors of XB.

 

There's additional emulator quirks that come into play here, relating to large XB files that get saved as INT/VAR 254 versus PROGRAM that present other challenges with editing, saving and transporting files between one flavor of emulator and another. But that's a whole 'nother topic.

 

 

 

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Ed in SoDak said:

I'm sorry. You're correct, Line Too Long does not show up until after <Enter> is pressed. But my point still stands that I can edit the line, enter it and the changes are accepted. So nothing special using SXB, beyond ignoring the error, is needed to edit that line. (depending, see below)

 

I was mostly just curious if anyone tried LISTing or RUNning the program after changing line 310.

 

But wait, there's more to this story. It gets convoluted, hope I keep it all straight. This is all done under emulation, not on the real iron.

 

It turns out SXB allows an edit, but only under MacV9T9 or CLASSIC99. I get Line Too Long after <ENTER>. Then bringing line 310 up again, the changes remain. I can lengthen the line quite a bit, though I did not try to see how much more would fit.

 

The old DOS version of V9T9 with SXB does NOT allow an edit. It reports the Line Too Long error but this time line 310 remains unchanged.

 

@senior_falcon, you are probably using the same SXB as I. CALL VERSION(X) puts the value 120 into X. It shows as SUPER EXTENDED BASIC in the TI's module menu.

 

I have not tried this with other flavors of XB, only SXB.

I'm still not clear on exactly what you are doing. If I understand you, you are editing the line but it is too long. You press enter and get "line too long". When you say bring up 310 again, you mean you type 310 and up or down arrow and the changes are there? That is not what I see, but I am using Win994a for this. Version 120 like yours.

 

Share this post


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

I'm still not clear on exactly what you are doing. If I understand you, you are editing the line but it is too long. You press enter and get "line too long". When you say bring up 310 again, you mean you type 310 and up or down arrow and the changes are there? That is not what I see, but I am using Win994a for this. Version 120 like yours.

 

GADZOOKS!! You're right again! My bad. I have tripped myself up by using Function 8 (Redo). That just brings up the (failed) line again. I can't believe I did that over umpteen attempts while testing then again while taking screen shots.facepalm.gif.760e7415818952523140e37a05bab1b9.gif

 

 

It's these darn glasses I wear. Yeah that's it! LOL

Isee.jpg

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...