News for hackers. Stuff that matters.
Re:The Texas Instruments 99/4: World’s First 16-Bit Computer by jasode on Tuesday June 27, 2017 @08:26AM (#14644727)
The most enduring memory from TI-99 wasn't the games like MunchMan and Parsec. Instead, it was a specific oddity of the TI-BASIC language.

In the free TI-BASIC (built into ROM), the language had no boolean operators like "OR", "AND". Instead, what programmers did was use math tricks to simulate those booleans ... something like this:

Simulate "OR" boolean:

  IF (X=3) + (Y=5) THEN
Simulate "AND" boolean:

  IF (X=3) * (Y=5) THEN
As a child, it was extremely confusing to read those lines of code. Why in the world are we adding or multiplying nonsense like that?!? It turns out the programmers took advantage of any value greater than 0 as "TRUE", and 0 as false. Therefore, if either side evaluated to 0, multiplying the conditions would be FALSE.

However, you paid $100 extra for TI EXTENDED BASIC cartridge[1], that language had extra fancy features like the keywords "AND" and "OR". No more workarounds using "+" and "* " operators. That was progress in 1980s.

That early lesson in "inherent complexity" has affected how I view arguments today about "language simplicity". Not having things like "AND" "OR" makes the language syntax's formal specification simpler on a superficial level but it ends up making it more complex in user code.

[1] https://www.google.com/search?q=ti+extended+basic+cartridge&...

Re:The Texas Instruments 99/4: World’s First 16-Bit Computer by nsxwolf on Tuesday June 27, 2017 @07:10PM (#14650403)
I've always heard that TI-BASIC conformed to a "strict ANSI BASIC" standard, whereas almost everyone else licensed Microsoft's version of BASIC.

Maybe that's why?

Re:The Texas Instruments 99/4: World’s First 16-Bit Computer by schlupa on Wednesday June 28, 2017 @02:49AM (#14652159)
May be. TI BASIC was also limited in a lot of other ways. It didn't have ELSE and the THEN clause didn't allow for anything other than a line number as jump destination. Only one statement per line. So doing something as simple as 10 IF a=1 THEN v=10 ELSE v=50 would have to be written as 10 IF a=1 THEN 40 20 LET v=50 30 GOTO 50 40 LET v=10 50 ...

This was IMHO the worst restriction of that BASIC.

The only feature on the plus side of that BASIC was that it used the BCD floating format they also used in their calculator. So 13 digits precision with numeric range of 10^-99 to 10^99. When I switched later to the Apple II, I was shocked at the ridicule binary floating point format that couldn't even add 2 simple numbers correctly :-)

The TI-EXTENDED BASIC was an absolute must if you wanted to do serious programming. It enabled the sprites, had fancy stuff like named subroutines (that could even be called recursively) and a lot of restriction of the original BASIC were lifted.