-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.BA file should probably be a tokenized BASIC file #9
Comments
Good observation. I'll add that to the list :)
The 8201 BASIC is somewhat different than the m100. Drawing characters to
x,y doesn't exist in the same way. There's a few other things... so a
direct 1:1 conversion isn't possible.
The 8201 is my first love for these units, so I have to get a version
running on it :)
…On Sun, Jul 24, 2022 at 7:00 AM hackerb9 ***@***.***> wrote:
There is a file named M100LE.BA, the BA extension implies that it is a
tokenized BASIC file, but it appears to just be a plain ASCII BASIC file,
which the Model 100 usually would call a .DO file. It would be beneficial
to people if there was a genuine .BA file distributed as it will be much
smaller and won't require the user to do the weird "LOAD" then "SAVE" step
that is currently required by M100LEl.DO. (Of course, the original
M100LE.DO should continue to be distributed as it can be transferred using
programs like TELCOM which cannot handle 8-bit files).
I believe the tokenized BASIC for the Model 100 and the Tandy 200 are
identical. I do not know about the NEC PC-8201.
—
Reply to this email directly, view it on GitHub
<#9>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADLJII66FVVNC74ZQTC6JD3VVU46NANCNFSM54PUF4SQ>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
--
--
Brad Grier
----------
|
Just catching up on these... yes, we'll tokenize the .BA once we lock down the next version, 'M100LEm'. |
I have a solution for the X,Y problem in issue #11. You already are setting variables to store the coordinate. I was thinking the variables could simply be the VT52 strings for cursor placement. That should work on any of the Kyocera sisters. I am eager to get it working, once we know that random access reads can work properly on the 8201. |
Nice idea! I've been reluctant to dig into that one as I used |
Now that I think the program should work on the NEC portables, I'm looking into how to tokenize to a M100LE.BA.NEC file. I already have tokenizing working well enough for the Model 100 and Tandy 102/200 at https://github.com/hackerb9/tokenize . One problem I'm running into is that VIrtual T sometimes garbles .BA files when saving from the NEC 8201A emulation, so I don't have a baseline of what the output should look like. |
Hmm, interesting. What would it take to get a baseline? |
Would you be willing to load the M100 code into your NEC 8201A and then post the .BA file in this thread? I believe the tokenization is the same for all the NEC portables, but we should probably check that. |
Yep, for sure! I've got a bit more bandwidth to look back at this stuff (for a little while anyway :)). I'll try and have it up in the next few days. |
Please try downloading the .CO file directly. If that works, please send me the output of running CMPRSS so we can debug it. If the .CO file doesn't work, then I'm curious if the program even works with the old .DO format. (It should if there is no .CO file). It's not possible you have an old copy of CMPRSS.DO, right? |
Bah, I must be bad at reading. Just to confirm what I've done (hopefully it's what you were looking for :) ):
On to the next part... |
|
(Oops, clicking wrong buttons as I'm too sleepy) Hurray that CMPRSS works (at least partially)! It would be good to know if it is able to compress on the fly over the serial port instead of using WL2022.DO. The .txt worked with no file mangling; no need for the .zip. The file you had a hard time deleting makes me more sure that I should finish up bug #37 before the cut to 0.m. |
I think I mentioned this in a different issue, but if not, it's good to note that I have discovered using Virtual T that there are only two different tokenized BASIC formats across all the Kyotronic sister-computers.
After I finish the Kyocera Kyotronic-85 port, I may come back to looking at documenting the N82 BASIC tokenization so I can extend my tokenizer to automatically create .NEC.BA files. A Makefile is now included (ever since the Olivetti M10 pull request). This makes it easy (on a UNIX-like system, anyhow) to re-create the M100LE.BA file. It uses my tandy-tokenize program to do the tokenization. Typing Apple MacOS should come with |
Interesting. That makes sense. The WEB82201 technical documents page only references converting between the two so it looks like the other orgs. decided Tandy basic was fine. And I discovered that since Lion, OSX doesn't come with developer tools installed. My last Macbook Pro had it but I guess I haven't done any mac dev work since then :( Downloading now :) |
No dev tools? Wow, it's been a while since I used MacOS. Are they still using "homebrew" for package management? You might need to "brew install flex" for my tokenizer. If you compile it, please upload the executable so I can add it to the available downloads. |
Well, I thought I'd give your cleaner/tokenizer a try. I installed Flex using Brew then went and attempted build tandy-tokenize... Sadly, I got this error:
Looks like the Mac is missing that library. Thoughts on how I can add it manually? I would have thought it would have come in with the Flex package... I missed something? |
Yeah, libfl is supposed to come with flex. Did you install flex using By the way, still working on the NEC PC-8201A tokenizer. Had some hiccups, but making progress. |
Yep, had brew installed previously. Updated it then added Flex as you describe :( |
I wonder if brew installs library files in weird places. Does Try |
Got this:
|
So, it looks like brew stashed it in /usr/local/Cellar/flex/2.6.4_2/lib but didn't add that to the standard library directory path. What about the results for |
pkg-config wasn't installed - added it via brew:
|
I don't know why locate wouldn't have found it, but people on the net claim that brew creates symlinks to every installed library in a standard directory. Could you please try If not, could you try |
Interesting and confusing.
And I've been searching online a little bit too. Found this one snippet that seems to indicate a minor change to the tandy-tokenize makefile is required -lfl -> -ll https://stackoverflow.com/a/56087296 I know nothing about this level of scripting so I'm not sure if this even makes sense in our context. Would updating that makefile and running it do what's needed? |
This comment was marked as outdated.
This comment was marked as outdated.
Okay, I've updated my tokenize project so that it no longer requires libfl. Please try compiling it now on MacOS. A simple, |
Cool. I love the idea of having one input generate all the outputs we need and appreciate your work on this! I've been working on a simple Python script to dump out all lines containing GOTO and GOSUB statements so that I can track them as I try and condense the code. Scripting is harder than it looks! I tried running the new version and bumped into problems :( Make produced a Command was Also, when I attempted a created: |
Oh, did you know about You may want to try using the |
Whoa! I see what you mean about the comment cleaner mangling the output files. 0 CLEAR 512
1 DIM WD$(5): RD
2 DIM HI$(5) RRENT HINT SYMBOLS
3 DIM SO$(6,5)
4 DIM UL$(6): rline
5 DIM DA(12): RRAY
6 R OF DAYS FOR EACH MONTH INTO THE ARRAY DA() That is not what it does on my system, so I'm guessing the problem is I relied on some feature of GNU sed that MacOS's default sed doesn't support. It looks like you can't just |
Bump... spent time on this trying to use the latest release since the documentation says it's a tokenized file. I'll use the DO. I'd suggest remove the wrongly named .BA file and revise the docs until there's a scripted tokenizer. Or just included a manually generated tokenized files in release zips. |
@jhoger I believe the online documentation refers to the current state of the code, in which the .BA file is tokenized, while the latest release is older than that. Hopefully, there will be a new official release soon. Or, is the problem you're having that the .BA file is tokenized in such a way that it runs fine on a real Model T but bombs out on Virtual T? That would be because of the line pointers which Virtual T cares deeply about. I improved my tokenizer to be Virtual T compatible, but haven't integrated it into M100LE, yet. |
Basically just raising issue about the docs not matching the released
files. Doing a new release would resolve. Or you could change the docs to
cover both cases.
As to VirtualT, the Model T regenerates line pointers when it loads (or
grows/moves) the file. They are basically garbage in a file, not really
used.
I guess VirtualT is using them to check for file type mismatch (DO misnamed
as BA). Since the last pointer would be null, while a DO file would not
have any NULLs..
|
If I recall correctly, I updated the Makefile so that it would use gsed on MacOS. Did we ever test to see if it worked there to automatically create the M100LE.BA from M100LE+comments.DO? If it is too much trouble to get the decommenter working on MacOS, perhaps we should just leave the comments in. A tokenized version with comments will take up quite a bit more space — 15,667 bytes instead of 9088 — but should work. [EDIT: For the next release, of course we could manually remove the comments if necessary.] |
The pull request I have pending #55 should solve pretty much all the problems mentioned in this issue and it can be closed once the request is approved.
|
There is a file named M100LE.BA, the BA extension implies that it is a tokenized BASIC file, but it appears to just be a plain ASCII BASIC file, which the Model 100 usually would call a .DO file. It would be beneficial to people if there was a genuine .BA file distributed as it will be much smaller and won't require the user to do the weird "LOAD" then "SAVE" step that is currently required by M100LEl.DO. (Of course, the original M100LE.DO should continue to be distributed as it can be transferred using programs like TELCOM which cannot handle 8-bit files).
I believe the tokenized BASIC for the Model 100 and the Tandy 200 are identical. I do not know about the NEC PC-8201.
The text was updated successfully, but these errors were encountered: