Tursi Posted September 21, 2019 Share Posted September 21, 2019 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. 2 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted September 27, 2019 Author Share Posted September 27, 2019 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. Quote Link to comment Share on other sites More sharing options...
+hloberg Posted September 28, 2019 Author Share Posted September 28, 2019 Wiki didn't like my article. but they did let me take down all the info about the origins of TI BASIC. Quote Link to comment Share on other sites More sharing options...
wierd_w Posted September 28, 2019 Share Posted September 28, 2019 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. 2 Quote Link to comment Share on other sites More sharing options...
RXB Posted September 30, 2019 Share Posted September 30, 2019 What people say and what actually happened are not the same. 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted September 30, 2019 Share Posted September 30, 2019 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. 3 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted September 30, 2019 Share Posted September 30, 2019 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! 3 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted October 1, 2019 Author Share Posted October 1, 2019 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. 1 Quote Link to comment Share on other sites More sharing options...
intvnut Posted May 16, 2020 Share Posted May 16, 2020 On 9/17/2019 at 1:28 PM, hloberg said: Interview with Herman Schuurman who had a 36 years career at Texas Instruments, from November 1977 to his retirement in 2013. In March 1978 he got promoted to be Lead Programmer for the Consumer Products Group in Lubbock. Herman's a cool guy. I worked with him up until he retired. Knowing TI, I wouldn't be surprised if Microsoft ended up working on a project adjacent to the one TI shipped. I also worked with Karl Guttag. He had indicated to me (back when we were both still at TI) that he thought Microsoft had actually done the BASIC for the Home Computer. I wonder if he'd conflated the 99/4 with the 99/7 as Herman suggests? Karl was on the VDP side of things (and later CPU, with the TMS9995), while Herman was right in the thick of things in Lubbock. 4 Quote Link to comment Share on other sites More sharing options...
blackbox Posted April 7, 2021 Share Posted April 7, 2021 (edited) Creative Computing March 1980 Page 18 "TI Basic was written by....Microsoft. ...not compatible with---other Microsoft Basic implementations such as TRS-80 Level 2, OSI Basic, Commodore PET Basic, Applesoft Basic.." I don't consider this claim to be authoritative (where did CC get the info from?) but it may be the earliest appearance of the claim, correct or not.. Edited April 7, 2021 by blackbox 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted April 7, 2021 Share Posted April 7, 2021 On 8/30/2019 at 6:05 PM, FarmerPotato said: Hypothesis: Perhaps the floating point format on the TI-99/4A was intended to be BCD coded, but this was abandonded in favor of Radix-100. One thing to consider here is that by the time when the TI-99 was developed (followed by the 99/4A), there was a programmable pocket sized calculator that had the best math precision of them all: The TI programmable 59. Since it had a four bit CPU, it used a 13 digit BCD-coded floating point number format. See the similarity? Perhaps they wanted to spin on that wheel. After all, it was the calculator division that got the little computer under its umbrella. Going to Radix 100 was a logical step, when you had a 16-bit CPU instead of a 4-bit. 2 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted April 7, 2021 Share Posted April 7, 2021 (edited) The interesting thing about radix 100 is that it allows the system to precisely represent those numbers that are most important for our decimal calculation. The IEEE 754 system cannot, for instance, represent the number 0.1. It is simply impossible because in binary representation, 0.1 becomes a periodic fraction. Likewise, 0.2, 0.3, 0.4, 0.6, 0.8, and 0.9 don't work and are all rounded. Only those numbers which are like 0.5, 0.25, 0.125, 0.0625 ... and all sums of them do not need rounding. In radix 100, 0.1 = 10*100^-1. The choice of this system made calculations very slow, but very precise at the same time - if we consider precision from the moment on when the user-provided number constant is encoded in the system. Edited April 7, 2021 by mizapf 3 Quote Link to comment Share on other sites More sharing options...
FSword7 Posted December 12, 2022 Share Posted December 12, 2022 On 8/28/2019 at 6:14 PM, acadiel said: You guys should read the TI source code for the console GROMs.. some fun stuff in here. Console GROM Source Code 1-Monitor 1982-08-25 Console GROM Source Code 2-Cassette 1982-08-25 Console GROM Source Code 3-EDIT-HC 1982-08-25 Console GROM Source Code 4-PSCAN 1982-08-25 Console GROM Source Code 5-FLMGR 1982-08-25 Console GROM Source Code 6-EXEC 1982-08-25 Console GROM Source Code-Monitor Page 33 console source.zip 9.18 MB · 67 downloads I am looking for that in long time! I now downloaded that. Thanks. How about text format version that can be assembled by GPL assembler? Also I am looking for 99/4 console/monitor/basic source codes that contains equation calculator. I already got 99/8 source codes from Whtech FTP site. We have to find 99/2 source codes as well. I need to find XB source (both old and new) and RXB source as well. Thanks, Tim Quote Link to comment Share on other sites More sharing options...
RXB Posted December 12, 2022 Share Posted December 12, 2022 2 hours ago, FSword7 said: I am looking for that in long time! I now downloaded that. Thanks. How about text format version that can be assembled by GPL assembler? Also I am looking for 99/4 console/monitor/basic source codes that contains equation calculator. I already got 99/8 source codes from Whtech FTP site. We have to find 99/2 source codes as well. I need to find XB source (both old and new) and RXB source as well. Thanks, Tim RXB GPL and ROM source from version 1000 to 2022 is free. rxb.zip 5 Quote Link to comment Share on other sites More sharing options...
matthew180 Posted December 13, 2022 Share Posted December 13, 2022 @FarmerPotato That is a nice summary. I assume 990 BASIC is complied (like BASIC was originally designed to be)? If so, I suspect it is quite performant compared to the 99/4A's interpreter. Pretty nice that they exposed direct access to assembly, and the different data types as well. Thanks for the links. Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted December 13, 2022 Share Posted December 13, 2022 @matthew180I haven't seen any documentation that indicates that BASIC programs are compiled. There's some evidence that source is tokenized. I wonder if Herman Schuurman had access to the DX10 BASIC internals. The 99/4A token tables have some holes where a DX10 token would fit in reference manual order. 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted December 13, 2022 Share Posted December 13, 2022 1 hour ago, FarmerPotato said: @matthew180I haven't seen any documentation that indicates that BASIC programs are compiled. There's some evidence that source is tokenized. I wonder if Herman Schuurman had access to the DX10 BASIC internals. The 99/4A token tables have some holes where a DX10 token would fit in reference manual order. If you look at RXB or XB GPL source code it shows some reserved tokens and some future tokens. Spoiler *********************************************************** * BASIC TOKEN TABLE * EQU >80 spare token ELSEZ EQU >81 ELSE SSEPZ EQU >82 :: TREMZ EQU >83 $ IFZ EQU >84 IF GOZ EQU >85 GO GOTOZ EQU >86 GOTO GOSUBZ EQU >87 GOSUB RETURZ EQU >88 RETURN DEFZ EQU >89 DEF DIMZ EQU >8A DIM ENDZ EQU >8B END FORZ EQU >8C FOR LETZ EQU >8D LET BREAKZ EQU >8E BREAK UNBREZ EQU >8F UNBREAK TRACEZ EQU >90 TRACE UNTRAZ EQU >91 UNTRACE INPUTZ EQU >92 INPUT DATAZ EQU >93 DATA RESTOZ EQU >94 RESTORE RANDOZ EQU >95 RANDOMIZE NEXTZ EQU >96 NEXT READZ EQU >97 READ STOPZ EQU >98 STOP DELETZ EQU >99 DELETE REMZ EQU >9A REM ONZ EQU >9B ON PRINTZ EQU >9C PRINT CALLZ EQU >9D CALL OPTIOZ EQU >9E OPTION OPENZ EQU >9F OPEN CLOSEZ EQU >A0 CLOSE SUBZ EQU >A1 SUB DISPLZ EQU >A2 DISPLAY IMAGEZ EQU >A3 IMAGE ACCEPZ EQU >A4 ACCEPT ERRORZ EQU >A5 ERROR WARNZ EQU >A6 WARNING SUBXTZ EQU >A7 SUBEXIT SUBNDZ EQU >A8 SUBEND RUNZ EQU >A9 RUN LINPUZ EQU >AA LINPUT * EQU >AB spare token (LIBRARY) * EQU >AC spare token (REAL) * EQU >AD spare token (INTEGER) * EQU >AE spare token (SCRATCH) * EQU >AF spare token THENZ EQU >B0 THEN TOZ EQU >B1 TO STEPZ EQU >B2 STEP COMMAZ EQU >B3 , SEMICZ EQU >B4 ; COLONZ EQU >B5 : RPARZ EQU >B6 ) LPARZ EQU >B7 ( CONCZ EQU >B8 & (CONCATENATE) * EQU >B9 spare token ORZ EQU >BA OR ANDZ EQU >BB AND XORZ EQU >BC XOR NOTZ EQU >BD NOT EQUALZ EQU >BE = LESSZ EQU >BF < GREATZ EQU >C0 > PLUSZ EQU >C1 + MINUSZ EQU >C2 - MULTZ EQU >C3 * DIVIZ EQU >C4 / CIRCUZ EQU >C5 ^ * EQU >C6 spare token STRINZ EQU >C7 QUOTED STRING UNQSTZ EQU >C8 UNQUOTED STRING NUMZ EQU >C8 ALSO NUMERICAL STRING NUMCOZ EQU >C8 ALSO UNQUOTED STRING LNZ EQU >C9 LINE NUMBER CONSTANT * EQU >CA spare token ABSZ EQU >CB ABS ATNZ EQU >CC ATN COSZ EQU >CD COS EXPZZ EQU >CE EXP INTZ EQU >CF INT LOGZ EQU >D0 LOG SGNZZ EQU >D1 SGN SINZ EQU >D2 SIN SQRZ EQU >D3 SQR TANZ EQU >D4 TAN LENZ EQU >D5 LEN CHRZZ EQU >D6 CHR$ RNDZ EQU >D7 RND SEGZZ EQU >D8 SEG$ POSZ EQU >D9 POS VAL EQU >DA VAL STRZZ EQU >DB STR$ ASCZ EQU >DC ASC PIZ EQU >DD PI RECZ EQU >DE REC MAXZ EQU >DF MAX MINZ EQU >E0 MIN RPTZZ EQU >E1 RPT$ * EQU >E2 unused * EQU >E2 unused * EQU >E3 unused * EQU >E4 unused * EQU >E5 unused * EQU >E6 unused * EQU >E7 unused NUMERZ EQU >E8 NUMERIC DIGITZ EQU >E9 DIGIT UALPHZ EQU >EA UALPHA SIZEZ EQU >EB SIZE ALLZ EQU >EC ALL USINGZ EQU >ED USING BEEPZ EQU >EE BEEP ERASEZ EQU >EF ERASE ATZ EQU >F0 AT BASEZ EQU >F1 BASE * EQU >F2 spare token (TEMPORARY) VARIAZ EQU >F3 VARIABLE RELATZ EQU >F4 RELATIVE INTERZ EQU >F5 INTERNAL SEQUEZ EQU >F6 SEQUENTIAL OUTPUZ EQU >F7 OUTPUT UPDATZ EQU >F8 UPDATE APPENZ EQU >F9 APPEND FIXEDZ EQU >FA FIXED PERMAZ EQU >FB PERMANENT TABZ EQU >FC TAB NUMBEZ EQU >FD # VALIDZ EQU >FE VALIDATE * EQU >FF ILLEGAL VALUE *********************************************************** 2 Quote Link to comment Share on other sites More sharing options...
+FALCOR4 Posted December 15, 2022 Share Posted December 15, 2022 On 8/28/2019 at 6:14 PM, acadiel said: You guys should read the TI source code for the console GROMs.. some fun stuff in here. Console GROM Source Code 1-Monitor 1982-08-25 Console GROM Source Code 2-Cassette 1982-08-25 Console GROM Source Code 3-EDIT-HC 1982-08-25 Console GROM Source Code 4-PSCAN 1982-08-25 Console GROM Source Code 5-FLMGR 1982-08-25 Console GROM Source Code 6-EXEC 1982-08-25 Console GROM Source Code-Monitor Page 33 console source.zip 9.18 MB · 77 downloads Attached are the missing pages EXEC GROM pg 29.pdf EXEC GROM pg 30.pdf FLMGR GROM pg 1.pdf 8 Quote Link to comment Share on other sites More sharing options...
+acadiel Posted December 16, 2022 Share Posted December 16, 2022 On 12/15/2022 at 8:45 AM, FALCOR4 said: Attached are the missing pages EXEC GROM pg 29.pdf 1.11 MB · 8 downloads EXEC GROM pg 30.pdf 333.36 kB · 8 downloads FLMGR GROM pg 1.pdf 1.13 MB · 9 downloads I'll try and use Abbyy to fix these, and I'll re-upload the archive. Thanks! 6 Quote Link to comment Share on other sites More sharing options...
+FALCOR4 Posted December 16, 2022 Share Posted December 16, 2022 5 hours ago, acadiel said: I'll try and use Abbyy to fix these, and I'll re-upload the archive. Thanks! Thanks @acadiel! Actually, we have @Regulus to thank for providing the missing pages. The copiers BITD tended to double feed and skip a page once in a while but he had the missing "pieces". 5 Quote Link to comment Share on other sites More sharing options...
+dhe Posted December 23, 2022 Share Posted December 23, 2022 I'm reading a book with a heart warming story. When Commodore purchased the rights to basic for the VIC-20 - the deal said, they could use it on any machine (or variant) that Commodore produced with a 6502 processor, and then could extend the software any way they wanted under that one license. Commodore went on to use that ONE license for the VIC-20, C64 and Plus/4 lines, with multiple enhancements over time. The book says - Microsoft felt they got cheated on the deal and never did a deal like that again. 😃 1 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 23, 2022 Share Posted December 23, 2022 11 hours ago, dhe said: I'm reading a book with a heart warming story. When Commodore purchased the rights to basic for the VIC-20 - the deal said, they could use it on any machine (or variant) that Commodore produced with a 6502 processor, and then could extend the software any way they wanted under that one license. Commodore went on to use that ONE license for the VIC-20, C64 and Plus/4 lines, with multiple enhancements over time. The book says - Microsoft felt they got cheated on the deal and never did a deal like that again. 😃 Hmm. Microsoft getting cheated outta something..that's a first and a last. 1 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted December 23, 2022 Share Posted December 23, 2022 20 hours ago, dhe said: The book says - Microsoft felt they got cheated on the deal and never did a deal like that again. 😃 Tramiel said he did not want to get married and Gates said he did not want to get f@$%ed. 3 Quote Link to comment Share on other sites More sharing options...
Casey Posted December 24, 2022 Share Posted December 24, 2022 23 hours ago, dhe said: I'm reading a book with a heart warming story. When Commodore purchased the rights to basic for the VIC-20 - the deal said, they could use it on any machine (or variant) that Commodore produced with a 6502 processor, and then could extend the software any way they wanted under that one license. Commodore went on to use that ONE license for the VIC-20, C64 and Plus/4 lines, with multiple enhancements over time. The book says - Microsoft felt they got cheated on the deal and never did a deal like that again. 😃 I would have thought this would have been for the PET initially? Quote Link to comment Share on other sites More sharing options...
+dhe Posted December 24, 2022 Share Posted December 24, 2022 It might have... Looking at wikipedia, the situation seems like it might have been complex: Commodore contacted Microsoft to upgrade BASIC for the new machines; this resulted in the soon-to-be-familiar BASIC 2.0 which removed the 256 element array limitation and had a rearranged zero page. Most bugs were fixed and IEEE-488 support in BASIC was made to be functional. The PEEK function was unblocked for memory locations above 49152. BASIC 2.0 also included an easter egg that Bill Gates personally coded, which would cause "MICROSOFT!" to appear if the user typed WAIT 6502,x (x being the number of times to display the message); this was reportedly due to a dispute with Commodore over ownership of BASIC (years later, when Microsoft developed BASIC for the Amiga, one of their conditions was that Commodore credit the original authors of BASIC, so BASIC 7.0 on the Commodore 128 displayed a Microsoft copyright notice). This feature was present in all 30xx series PETs. Commodore executives were unhappy when they learned about it and it was removed from BASIC on all subsequent Commodore machines. Microsoft also remained sensitive about their copyrighted code and pressured Commodore to not release any BASIC code listings to the public, although user groups eventually made disassemblies of BASIC. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.