senior_falcon Posted May 13, 2022 Author Share Posted May 13, 2022 (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 May 19, 2022 by senior_falcon 4 Quote Link to comment Share on other sites More sharing options...
RXB Posted May 13, 2022 Share Posted May 13, 2022 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? 1 Quote Link to comment Share on other sites More sharing options...
+9640News Posted May 13, 2022 Share Posted May 13, 2022 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 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted May 13, 2022 Author Share Posted May 13, 2022 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. 1 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted May 13, 2022 Share Posted May 13, 2022 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. 2 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted May 14, 2022 Share Posted May 14, 2022 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. . . .. 2 1 Quote Link to comment Share on other sites More sharing options...
+Torrax Posted May 14, 2022 Share Posted May 14, 2022 (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 May 14, 2022 by Torrax Fixed SXB disk name in DSK image Quote Link to comment Share on other sites More sharing options...
+Torrax Posted May 14, 2022 Share Posted May 14, 2022 (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 May 14, 2022 by Torrax 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted May 14, 2022 Share Posted May 14, 2022 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. Quote Link to comment Share on other sites More sharing options...
RXB Posted May 14, 2022 Share Posted May 14, 2022 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. Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted May 14, 2022 Share Posted May 14, 2022 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 4 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted May 14, 2022 Author Share Posted May 14, 2022 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. 2 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted May 14, 2022 Share Posted May 14, 2022 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. 3 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted May 15, 2022 Share Posted May 15, 2022 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. 2 Quote Link to comment Share on other sites More sharing options...
oddemann Posted May 15, 2022 Share Posted May 15, 2022 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 ? Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted May 15, 2022 Share Posted May 15, 2022 (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 May 15, 2022 by Ed in SoDak 1 1 Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted May 15, 2022 Share Posted May 15, 2022 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! 1 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted May 15, 2022 Share Posted May 15, 2022 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. 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted May 15, 2022 Author Share Posted May 15, 2022 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.) 1 Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted May 15, 2022 Share Posted May 15, 2022 (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. I was using Function 8 (REDO) and just bringing my failed edit back up again. Edited May 15, 2022 by Ed in SoDak Oh so wrong was I Quote Link to comment Share on other sites More sharing options...
RXB Posted May 15, 2022 Share Posted May 15, 2022 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. Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted May 15, 2022 Share Posted May 15, 2022 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. 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... ...and you type that in, and now it loads!! 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... ...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. 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. 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted May 15, 2022 Author Share Posted May 15, 2022 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. Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted May 15, 2022 Share Posted May 15, 2022 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. It's these darn glasses I wear. Yeah that's it! LOL Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted May 15, 2022 Share Posted May 15, 2022 I think I should just sit in the back and watch quietly. <slinks away> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.