Jump to content
hloberg

Who created TI-99 BASIC, TI or MS?

Recommended Posts

Based on the current information, that theory makes the most sense to me too. Every couple of years we get one new piece of evidence before the thread is buried. ;)

 

 

  • Like 2

Share this post


Link to post
Share on other sites

I just tried to add the new material three times to the Wiki TI-BASIC page and Wiki rejected the sources each time. Now which source they rejected is unclear. So, for now, I have just removed the references already in the article about the origins of TI-BASIC so at least the article isn't giving bad information.

I work with Wiki to get the full update as soon as I can figure it out.

Share this post


Link to post
Share on other sites

Wiki didn't like my article. but they did let me take down all the info about the origins of TI BASIC. 

Share this post


Link to post
Share on other sites

That is why I don't contribute to wikipedia.  You can prove seven ways to sunday that what you have written is factually correct, if the current maintainer of the article gets their knickers in a twist, it will never see the light of day. Too many axes being honed and polished over there, not enough concern about being actually informative.

 

 

  • Like 2

Share this post


Link to post
Share on other sites

What people say and what actually happened are not the same.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, RXB said:

What people say and what actually happened are not the same.

Quite correct. Our memory of an event is often different from someone else’s memory of the same event. Which is why in a trial, forensic evidence is usually more reliable than eye witness evidence.

  • Like 3

Share this post


Link to post
Share on other sites

All about CALLs in 990 TI BASIC

 

The CALL syntax, in 99/4A BASIC and Extended Basic, matches the syntax used in TI BASIC for the 990 minicomputer.  So TI BASIC was designed for named subprograms well before the 99/4A. 

 

It's clear to me that the 99/4A TI BASIC and Extended BASIC were a deliberate subset of 990 TI BASIC with few differences. While reading about the CALL syntax, I also read that 990 TI BASIC used RADIX 100 (with an important feature for DECIMAL type.)


I played with 990 TI BASIC yesterday on Dave Pitt's excellent 990 simulator with DNOS. Basic is already installed. However, it is not clock-speed accurate (it runs fast) so timing BASIC benchmarks is silly. https://www.cozx.com/dpitts/ti990.html


 

In the TI BASIC Reference Manual, 1-Dec-83:  http://www.bitsavers.org/pdf/ti/990/basic/


Page 9-3 describes the DEF statements, which may have a return type, or be multi-line.

Page 9-5 describes the CALL/SUB/SUBEND statements.

Page 11-6 describes how to CALL assembly language routines from 990 TI BASIC, and explains the Radix 100 format of parameters.

 

The CALL/SUB statements, which may have variable types declared:

 

SUB HSTEP(REAL A, INTEGER B, REAL C)
IF A=0 THEN SUBEXIT
C = A * 2^(B/12)
SUBEND

REAL X = 220
INTEGER N = 5
REAL Y
CALL HSTEP(X, N, Y)

An optional type after SUB can set one type for all parameters.

 

ESUB is used instead of SUB to write subroutines that have external visibility. The ESUBs are callable from other programs.


Page 9-3 describes the DEF statements, which may have types or be multi-line:

DEF AVG(X,Y) = (X+Y)/2
DEF REAL PI = 3.1415926535

X = AVG(A,B)/PI

or

DEF XYZ(A,B,C)
XYZ = A + B + 2
FNEND


One of TI's examples of a multi-line DEF is the square root algorithm (also explained to students in TI Learning Center's DC AND BASIC ELECTRICITY textbook.)

 

CALL assembly


Section 11-6 describes how to add assembly language routines to 990 TI BASIC and explains the Radix 100 format.

 

Calling assembly routines is not like  99/4A TI BASIC:

 

LIBRARY "*pathname"
CALL ".ASMBLY"(A$, A, B, C)

where pathname is your assembled and linked code, for example .ASMBLY where "." is the path and ASMBLY is the file. The * indicates that the routine should persist in memory. 

 

The first two words of the file are a BLWP vector; BASIC overwrites the workspace pointer at load time. There is one routine per file. Assembly subroutines return with RTWP.

 

Some important assembly libraries distributed with TI BASIC were the .SORT library and keyed file database. These accessed operating systems features (in particular the SORT facility was a system process, multitasked.)

 

BASIC parameters are passed to the assembly routine in a 18-word block of memory. Continuing the example:

 

REAL A
INTEGER B,C
CALL ".ASMBLY"(A$, A, B, C)

WP-36 Number of parameters
WP-34 2 bits for each parameter type: 
00 end of list
01 integer
10 real or decimal
11 string
WP-30 pointers ...

For the example above,

 

>0004
>E500  * b'11100101 00000000 codes for string, real, int, int
>0000
ptr to A$
ptr to A
ptr to B
ptr to C
>0000
...

Figure 11-1 goes on to unpack the variable formats in memory. In particular, it describes RADIX-100 format for REAL. Integers are 16 bits.

 

REALs are stored in the quite familiar 99/4A format. As we know, the mantissa bytes range from 0-99, wasting a bit per byte (1.3 bits to be pedantic). TI BASIC represents type DECIMAL by using 6 leftover bits to store the number of significant decimal places! (+13 to -13) This feature was omitted from 99/4A floating point, but I find satisfaction that the Radix 100 designer originally make good use of all the bits.


990 TI BASIC used Radix 100 format for REAL and DECIMAL, not the the-standard IBM format used on the 990 elsewhere.

 

Next steps

 

Find a way to disassemble the 990 TI BASIC interpreter!

 

  • Like 2
  • Thanks 1

Share this post


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

Quite correct. Our memory of an event is often different from someone else’s memory of the same event. Which is why in a trial, forensic evidence is usually more reliable than eye witness evidence.

which is why I put all the evidence we had from both sides, but they didn't like it. I got no feed back of what they didn't like but my guess is the interviews off Atariage wasn't 'authoritative enough'. but the interviews is all I have for the side that TI created TI BASIC. SO, I got them to take all the reference down of it's origin. At least that's something.  

  • Like 1

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.

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