Brian, did you try out the renum function in NEC to see if it passed the test or not?
I believe that NEC does have a renum, right? On Thursday, June 17, 2021, Brian K. White <[email protected]> wrote: > One of the reasons I just wrote a renumberer in pure bash (actually I did > it in awk first, then re-wrote in bash) was because RESEQ.100 has a bug, > and is essentially unhackable/unfixable by a mere mortal like me. > > I did the awk version initially just out of pure perverse fun. I really > just wanted to renumber SECTOR.BA so that I could have room to insert > lines and hack on that. > > https://github.com/bkw777/BASIC_renumber > > Now this can be messed with by myself or anyone else later to add new > behavior or fix bugs. Like, how about a feature to take a single long > multi-statement line and convert it into a multi-line gosub without > breaking the rest of the program? > Or say I've got a bug of my own still in there that shows up sometime way > later when I'm not around to fix it. > > I might try seeing if I can manage to grow it to an unpacker/packer. > Expand packed code to insert spaces between statements and keywords and > arguments, and replace short variable names with longer ones. That's all a > bit ambitious though. For now I'm just pleased I have a working renumberer > that even works better than RESEQ.100, not to mention about 50 times faster > and more convenient, (well, being on-device would be a significant > convenience) > > The bug in RESEQ is this: > > SECTOR.BA contains this line: > 301 ONAGOSUB310,311,312,,,,316,317,318,319 > > RESEQ.100 produces: > 990 ONAGOSUB1010,1020,1030,,,,316,317,318,319 > > While it should have produced: > 990 ONAGOSUB1010,1020,1030,,,,1070,1080,1090,1100 > > IF you had the source to the machine-language part of RESEQ.100, AND you > actually had a working set of tools and workflow to regenerate the machine > language and then the basic loader from that, then it's probably a pretty > simple correction. But me, looking at what I have in my hands all these > years later after the author wrote it, which is just RESEQ.100 itself, it's > essentially inscrutable and unfixable. > > Put it this way, maybe it's technically fixable, probably Steve will fix > it in his built-in version if he does it, but for me it was easier to write > it over from scratch, twice. > > Ok maybe saying "twice" is a stretch since, the bash version is > essentially identical to the awk version. I did the awk one first, then > pretty much just transcribed it into equivalent bash line by line. The job > was essentially not an awk job in the first place. The part that is > supposed to be the main part of an awk program only has 3 lines in it, 4 if > you count the matching pattern, and all the real work is in the END{...} > section, using ordinary programming that could have been done exactly the > same way in any language. > > One thing that made the awk version not-so-silly after all is, that awk > script will probably still work in 20 years. But if I wrote it in say > python or ruby, it might not work *next* year. > > -- > bkw > > > On 6/17/21 11:43 AM, Tom Wilson wrote: > >> There is actually a renumber feature in one of the option ROMs. I want to >> say it’s the Cleuseau ROM. You can renumber programs, as well as so a few >> other useful things. >> >> So there’s no need to add to REX. Just install that option ROM and use it >> when writing BASIC programs. >> >> On Thu, Jun 17, 2021 at 7:46 AM Stephen Adolph <[email protected] >> <mailto:[email protected]>> wrote: >> >> Neither M100 nor T200 have a built in renumbering function for BASIC. >> (NEC does). >> >> Seems to me that it would be a nice feature to add to REX#/REXCPM. >> >> Here's what I am thinking >> 1) base the implementation from James Yi's RESEQ.100/.200 >> 2) implementation would be from a CNTL-key sequence in the main menu >> - position cursor over a .BA program >> - CNTL-{not sure what key to use} >> - specify starting number, and increment, press [enter] >> >> It is not in scope in my opinion for REX Manager to intercept any >> function directly from BASIC, which I think would be ideal. James >> Yi's solution was a CALL from BASIC to renumber; that would be >> possible but you would always have to remember the call. Nicer to >> have a user interface, but it would need to be active at the M100 >> menu like the REX Quick menu features. >> >> >> Anyhow, open to thoughts or suggestions, or other nice little >> functions to add. >> >> Steve >> >> -- >> Tom Wilson >> [email protected] <mailto:[email protected]> >> (619)940-6311 >> >> > > -- > bkw >
