Jump to content
IGNORED

Implement a call stack by piling workspaces


JCCyC

Recommended Posts

 

I've actually had the idea to make a Rom cart with Myarc Advanced Basic, and yes it would be quite a project. I don't know if the TI source is available, but the Geneve source is. Maybe some sort of insane person might be amenable to teaming up for the project. ;)

 

Gazoo

 

To convert Myarc's Adv. BASIC from Geneve to TI you would at minimum need an AMS for the RAM and bank-switching, and some recoding for the restrictive memory allowances within the TI. The other piece of the puzzle would be to crunch the video XOPs into something usable with the TI for the display modes. Not to say it is impossible, as that means having to prove the statement wrong. ;) Alas, the magic is very strong in that code... very strong, indeed.

Link to comment
Share on other sites

Makes sense to me. That's one of the reasons the BBC B's basic was so fast. You could declare integer variables (by appending a % to the variable name). It went like hell.

 

TIB/XB sucks so much I just can't go near it these days! It's a straight-jacket. Though, in its defence, it has great file handling support. It's great that they built that into the language, but they left out other equally useful things, such as types. That would have been awesome.

 

Bah! Bloody TI!

 

Commodore BASIC has the same feature: declaring integers with a %. In my BBS software I used B% to pass information to machine language routines without having to parse Microsoft's floating point implementation. I just called the BASIC ROM routine to locate the variable and used the pointer it returned to load and store the integer value. This did not save memory, though: integers consume the same number of bytes in the variable table as a floating point but only use two of the bytes.

 

In any case, VERY handy to be able to cast variables when working between BASIC and ML.

 

NB: Commodore's BASIC is limited to two-character variable names.

Edited by OLD CS1
Link to comment
Share on other sites

Oh, and to defend TI a little, I am under the impression that TI BASIC is so limited in terms of functionality because TI absolutely insisted on sticking to standards while others were happy to implement all of the Microsoft-isms. (I recall BASIC on the System/34 in high school being just as limited.) If I am incorrect, then your mom. ;)

Edited by OLD CS1
Link to comment
Share on other sites

 

Commodore BASIC has the same feature: declaring integers with a %. In my BBS software I used B% to pass information to machine language routines without having to parse Microsoft's floating point implementation. I just called the BASIC ROM routine to locate the variable and used the pointer it returned to load and store the integer value. This did not save memory, though: integers consume the same number of bytes in the variable table as a floating point but only use two of the bytes.

 

In any case, VERY handy to be able to cast variables when working between BASIC and ML.

 

NB: Commodore's BASIC is limited to two-character variable names.

 

The same thing applies to the Z80 TRS-80's (not the CoCos, those only had float), CP/M's MBASIC and probably quite a few others.

Link to comment
Share on other sites

Most BASICs (including TI's) were implemented by Microsoft anyway, but yeah, TI apparently insisted on ANSI BASIC rather than the defacto standard. ;)

 

When I got my TI and started dabbling in its BASIC, I wondered why the **** they called the LOAD command "OLD". Then I learned about Dartmouth BASIC...

Link to comment
Share on other sites

Most BASICs (including TI's) were implemented by Microsoft anyway, but yeah, TI apparently insisted on ANSI BASIC rather than the defacto standard. ;)

 

Is that true or a myth? I'd always kind of assumed that it was some massively over-bloated team inside TI that developed the software inside the TI? I believe the assembler that came with the Editor Assembler system was developed internally by TI, and was actually a back-port from their minis, though I've never really read anything that has any specifics.

Link to comment
Share on other sites

 

Is that true or a myth? I'd always kind of assumed that it was some massively over-bloated team inside TI that developed the software inside the TI?

 

Fairly well documented all over the place. Gates and Allen (and some other guy) developed BASIC for the Altair and once people started distributing bug-fixed versions, Gates threw a tantrum and called everyone pirates. The official history lesson is that everyone in the HCC was distributing copes of Altair BASIC. The unnofficial history is these were bug-fixed versions made from copies of the original. Three sides to every story.

 

Anyway, the 6502 BASIC story is longer than this, but he (they) developed 6502-based BASIC and went around licensing it to everyone possible... except Trammiel at Commodore who bought it lock, stock, and barrel for $25,000 with the condition that any derivitives had to include Microsoft branding (which BASIC v7 on the Commodore 128 indeed does.) This deal left Gates with a sour taste in his mouth that probably still makes him gag today. Imagine: you out-right sell the rights to a 6502-based BASIC to the company which sets the record for the most number of home computers ever sold, instead of $3 per unit of over 12 million you get a lousy $25,000.

 

I mean, sure, he is worth billions today, but that is still a bad deal in his history. But, we all make mistakes and he has most definitely learned from that one.

Link to comment
Share on other sites

Is that true or a myth? I'd always kind of assumed that it was some massively over-bloated team inside TI that developed the software inside the TI? I believe the assembler that came with the Editor Assembler system was developed internally by TI, and was actually a back-port from their minis, though I've never really read anything that has any specifics.

Why does this question come up every time it's mentioned? Are people that strongly set against believing it? You'd actually rather believe that a bloated inexperienced team wrote it than the company who did BASIC for pretty much every other machine? :)

 

https://groups.yahoo.com/neo/groups/TI99-4A/conversations/topics/43865 - Thread where it's brought up and questioned again ;)

 

https://groups.yahoo.com/neo/groups/TI99-4A/conversations/messages/38505 - quotes from the biography 'Gates' about TI BASIC

 

As far as I know you are right on the Editor/Assembler.

 

(Edit: Getting tired of the crappy way the AA editor handles web links...)

Edited by Tursi
Link to comment
Share on other sites

  • 5 weeks later...

Things like the full-blown Editor/Assembler package and smaller stuff like the debugger and line-by-line assembler have their heritage traceable back to the TM990 minicomputers. The TMS 9900 microprocessor is an implementation of a basic TM990 CPU on one chip, instead of multiple PCBs used in the minicomputer. I don't know if that's what they thought, but it could be Texas Minicomputer 990 and then Texas Minicomputer on Silicon 9900.

Some minicomputers in the 990 series used the TMS 9900 CPU as well, so no wonder there are similarities. More advanced models, like the TM990/12, had more instructions than the 9900, partly because they allowed up to four words per instruction, not only three. These CPUs were put on silicon in the TMS 99000 series.

 

If you spend some time studying this assembly programming user's guide for the 990-series of minicomputers, you'll notice that someone at TI also thought it would be a good idea to stack return addresses, instead of always storing them in R11 in the workspace. The BLSK is a branch and link with the return address stored on the top of the stack.

The beginning of the document describes instructions available in the different 990 minicomputer models (the TM 990/12 being the most advanced). Interesting to see is the later part of the manual, where the SDSMAC assembler is described. You'll see that a great deal of it is word for word identical to the user's manual for the assembler delivered with the 99/4A computer. The one that comes with the 99/4A is just a scaled down version.

 

Those interested can find tons of information about the TM990 series here. (For nerds only...) I've read at many different places before that software for the TI 99/4A was often developed on TM990 minicomputers, then ported to the 99/4A architecture.

Edited by apersson850
  • Like 2
Link to comment
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...