RXB Posted September 26, 2019 Share Posted September 26, 2019 2 hours ago, senior_falcon said: This agrees with my tests. After 1 minute I got: TI-Basic: 3329 RXB 2015: 2990 Multiply by 60 and we get: TI-Basic: 199740 vs. 203628 these agree closely as does the video. RXB 2015: 179400 vs. 180399 " After 5 hours Rich got: TI-Basic: 391427 RXB: 492783 The divergence is so great it is clear there is either something wrong with his computer or the results are fabricated. I run everything in Classic99 on Windows 10 with a 3.1Ghz I5 2400 Quad Core processor. 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted September 26, 2019 Share Posted September 26, 2019 1 hour ago, Sid1968 said: Thank you for your statement, adamtyr. Rich, you improved the RND functiom of RXB compared to Extended Basic a lot. How did you do that? Kind Regards Sid It was pointed out that the TI Basic RND was faster then XB RND routine. So looking at the XB GPL code it was easy to see why so I replaced XB GPL RND with TI Basic RND. [0799] * Initialize random number generator [0800] A281 31,00,0A INTRND MOVE 10,G@X2SEED,V@RNDX2 A284 A3,A0,A2 A287 89 [0801] A288 00 RTN [0802] A289 42,03,23 X2SEED BYTE >42,>03,>23,>15,>00 * = 33521, X2 INITIAL VAL A28C 15,00 [0803] A28E 43,02,3E X1SEED BYTE >43,>02,>3E,>2A,>17 * = 2624223, X1 INITIAL VAL A291 2A,17 [0804] *********************************************************** [0805] * * [0806] * RXB PATCH REPLACEMENT CODE FOR RND WITH TI BASIC RND * [0807] * * [0808] *********************************************************** [0809] * PSEUDO-RANDOM NUMBER GENERATOR [0810] * X(N+1) = (A*X(N)+C) MOD M; RND = X/M [0811] * WHERE: X = X2 * 1E7 + X1 [0812] * A = A2 * 1E7 + A1 [0813] * C = C2 * 1E7 + C1 [0814] * M = 1E14 [0815] * ASSUMPTIONS: [0816] * (1) All numbers are integers; fractional parts are [0817] * truncated [0818] * (2) If the variables listed below start in the ranges [0819] * specified. They will also end in the ranges specified [0820] * [0821] * CONSTANTS: 0 <= A2 < 5E6 ; 0 <= C2 < 1E7 [0822] * 0 <= A1 < 5E6 ; 0 <= C1 < 1E7 [0823] * VARIABLES: 0 <= X2 < 1E7 ; 0 <= T1 <= 1E14 ; 0 <= T2 < 1E [0824] * 0 <= X1 < 1E7 ; 0 <= T3 <= 1E14 ; 0 <= T4 < 1E [0825] * [0826] * STACK USAGE: [0827] * CONSTANT REFS CONTANT REFS CONTANT REF [0828] * +---------+ IN/OUT IN/OUT IN/OUT [0829] * | STACK+4 | X2*A1(F)(H) -- ---- -- ---- [0830] * +---------+ [0831] * | STACK+3 | T2 (C)(J) -- ---- -- ---- [0832] * +---------+ [0833] * | STACK+2 | T1 (B)(D) new X1 (E)(N) -- ---- [0834] * +---------+ [0835] * | STACK+1 |old X1(A)(G) T3 (K)(L) new X2 (M)(P) [0836] * +---------+ [0837] *********************************************************** [0838] * COMPUTE NEW VALUE FOR X1, SAVE IT IN V@RNDX1 [0839] * STACK [0840] * SREFS FAC CONTENTS [0841] * NRND MOVE 5,V@RNDX1,@FAC FAC = X1 [0842] * MOVE 5,V@RNDX1,@FAC fAC = X1 [0843] * CLR @FAC5 FAC = CLR [0844] * DCLR @FAC6 FAC = CLR [0845] * XML VPUSH (A) FAC = X1 [0846] * MOVE 8,G@RNDA1,@ARG ARG = A1 [0847] * XML FMUL FAC = X1*A1 [0848] * MOVE 8,G@RNDC1,@ARG ARG = C1 [0849] * XML FADD T1=FAC = X1*A1+C1 [0850] * XML VPUSH (B) FAC = T1 [0851] * MOVE 8,G@RNDEM,@ARG ARG = 1/1E7 [0852] * XML FMUL FAC = T1/1E7 [0853] * CALL GRINT T2=FAC = INT(T1/1E7) [0854] * XML VPUSH (C) FAC = T2 [0855] * MOVE 8,G@RNDEP,@ARG ARG = 1E7 99/4 GPL-ASSEMBLER (Pass 3) correct PAGE 0015 EQUATES EXEC-359 [0856] * XML FMUL FAC = T2*1E7 [0857] * DSUB 8,@VSPTR [0858] * XML SSUB (D) X1=FAC = T1-T2*1E7 [0859] * MOVE 5,@FAC,V@RNDX1 FAC = X1 (new) [0860] * XML VPUSH (E) FAC = X1 [0861] * COMPUTE NEW VALUE FOR X2, SAVE IT IN V@RNDX2 [0862] * MOVE 5,V@RNDX2,@FAC FAC = X2 [0863] * CLR @FAC5 FAC = CLR [0864] * DCLR @FAC6 FAC = CLR [0865] * MOVE 8,G@RNDA1,@ARG ARG = A1 [0866] * XML FMUL FAC = X2*A1 [0867] * DADD 8,@VSPTR [0868] * XML VPUSH (F) FAC = X2*A1 [0869] * DSUB 24,@VSPTR [0870] * XML VPOP (G) FAC = X1 [0871] * DADD 32,@VSPTR [0872] * MOVE 8,G@RNDA2,@ARG ARG = A2 [0873] * XML FMUL FAC = X1*A2 [0874] * XML SADD (H) FAC = X2*A1+X1*A2 [0875] * MOVE 8,G@RNDC2,@ARG ARG = C2 [0876] * XML FADD FAC = X2*A1+X1*A2 [0877] * XML SADD (J) T3=FAC = X2*A1+X1*A2 [0878] * DSUB 16,@VSPTR [0879] * XML VPUSH (K) FAC = T3 [0880] * MOVE 8,G@RNDEM,@ARG ARG = 1/1E7 [0881] * XML FMUL FAC = T3/1E7 [0882] * CALL GRINT T4=FAC = INT(T3/1E7) [0883] * MOVE 8,G@RNDEP,@ARG ARG = 1E7 [0884] * XML FMUL FAC = T4*1E7 [0885] * XML SSUB (L) X2=FAC = T3-T4*1E7 [0886] * MOVE 5,@FAC,V@RNDX2 FAC = X2 (new) [0887] * COMPUTE NEW VALUE FOR RND, LEAVE IT IN FAC [0888] * MOVE 8,G@RNDEM,@ARG ARG = 1/1E7 [0889] * XML FMUL FAC = X2/1E7 [0890] * XML VPUSH (M) FAC = X2/1E7 [0891] * DADD 8,@VSPTR [0892] * XML VPOP (N) FAC = X1 [0893] * XML FMUL FAC = X1/1E7 [0894] * XML FMUL FAC = X1/1E14 [0895] * XML SADD (P)RND=FAC = (X2/1E7)+(X1/1E14 [0896] * XML CONT [0897] *********************************************************** [0898] * CONSTANTS FOR THE RANDOM NUMBER ROUTINE [0899] * RNDA2 BYTE >43,>01,>2B,>59,>52,>00,>00,>00 * = 1438982 [0900] * RNDA1 BYTE >42,>2A,>08,>15,>00,>00,>00,>00 * = 0420821 [0901] * RNDC2 BYTE >43,>02,>0B,>20,>30,>00,>00,>00 * = 2113248 [0902] * RNDC1 BYTE >43,>06,>36,>05,>13,>00,>00,>00 * = 6540519 [0903] A293 43,0A,00 RNDEP BYTE >43,>0A,>00,>00,>00,>00,>00,>00 * = 1E7 A296 00,00,00 A299 00,00 [0904] A29B 3C,0A,00 RNDEM BYTE >3C,>0A,>00,>00,>00,>00,>00,>00 * = 1/1E7 A29E 00,00,00 A2A1 00,00 [0905] *********************************************************** [0906] * RXB BASIC RND REPLACEMENT FROM TI BASIC [0907] A2A3 BE,4A,3F NRND ST >3F,@FAC * Exponent [0908] A2A6 BE,10,4B ST >4B,@VAR5 * Loop counter [0909] A2A9 02,63 NRND1 RAND >63 * 0? [0910] A2AB 8E,78 CZ @RANDOM * No, go on [0911] A2AD 42,B9 BR NRND3 [0912] A2AF 92,4A DEC @FAC * 0? [0913] A2B1 8E,4A CZ @FAC * End with 0 [0914] A2B3 62,C6 BS NRND4 * Go on [0915] A2B5 42,A9 BR NRND1 99/4 GPL-ASSEMBLER (Pass 3) correct PAGE 0016 EQUATES EXEC-359 [0916] A2B7 02,63 NRND2 RAND >63 * Till 100 [0917] A2B9 BC,90,10 NRND3 ST @RANDOM,*VAR5 * All digits A2BC 78 [0918] A2BD D6,10,51 CEQ >51,@VAR5 * Till >8351 [0919] A2C0 62,C8 BS NRND5 [0920] A2C2 90,10 INC @VAR5 * Increase loop counter [0921] A2C4 42,B7 BR NRND2 [0922] A2C6 86,4B NRND4 CLR @FAC1 * Set 0 [0923] A2C8 0F,75 NRND5 XML CONT [0924] *********************************************************** As you can see a ton of space opened up in RXB by doing this and I got the speed increase needed too. 1 Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 26, 2019 Author Share Posted September 26, 2019 (edited) Brilliant. Would that be possible with the functions + and * (Addition/Multiplikation) too? Edited September 26, 2019 by Sid1968 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted September 26, 2019 Share Posted September 26, 2019 On 9/25/2019 at 12:29 PM, senior_falcon said: Look folks, let's get realistic here. Rich won't do it. He writes pretty much exclusively in GPL. None of the assembly gurus will do it, and I can't blame them. Why spend a whole bunch of time writing something that will be way slower than what they can do easily right now. The only ones who want this are the ones who do not have the programming skills to do it. Bottom line: It ain't gonna happen. Why are you always so hostile to me. I say you have a great product and you do not even have the manners to do the same? And how am I not "REALISTIC" does everyone on Earth have to just agree with you with no choice? I do GPL and RXB that is my thing, do I rag on you about your thing....no I make "REALISTIC" observations about facts. WTF?? Where is the hostility? My statement that "Rich won't do it" is not meant as a slam, just a statement of fact. I said you write in GPL, which you agree with. "I do GPL and RXB that is my thing." In the past you have asked for help with assembly routines. Does it seem realistic that someone who writes in GPL and is not an assembly guru is going to throw out all of RXB and rewrite it in assembly? Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 26, 2019 Author Share Posted September 26, 2019 1 minute ago, senior_falcon said: Does it seem realistic that someone who writes in GPL and is not an assembly guru is going to throw out all of RXB and rewrite it in assembly? In the lack of assemblerknowlage this is nothing that depends on his voliton. The problem here is more the lack of help he gets! 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted September 26, 2019 Share Posted September 26, 2019 4 minutes ago, Sid1968 said: Brilliant. Would that be possible with the functions + and * (Addition/Multiplikation) too? Sorry not quite sure what you mean? But if I assume you mean does it work exactly the same as original XB? Yes it does. Now to be honest RXB and XB have one difference in Random number generation sequences. If you go XB the sequence is very very much pretty much predictable on purpose and was designed that way by Texas Instruments. TI Basic also has this to a lesser degree, so I combined the two and got something in between, that is it is not TI Basic or XB sequences, but pure RXB sequences. After all I combined XB random number seed with TI Basic random number seed and got something between them as a result. 1 Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 26, 2019 Author Share Posted September 26, 2019 (edited) 6 minutes ago, RXB said: Sorry not quite sure what you mean? But if I assume you mean does it work exactly the same as original XB? Yes it does. Now to be honest RXB and XB have one difference in Random number generation sequences. If you go XB the sequence is very very much pretty much predictable on purpose and was designed that way by Texas Instruments. TI Basic also has this to a lesser degree, so I combined the two and got something in between, that is it is not TI Basic or XB sequences, but pure RXB sequences. After all I combined XB random number seed with TI Basic random number seed and got something between them as a result. I was thinking about the testprogram 2: 10 FOR I=1 TO 15000 20 A=I*(2+I) 30 NEXT I 40 PRINT A The only thing that was computed were A=I*(2+I). Here we find Multiplication and Addition (* and +). Since you changed the RND function, i ask if you could change the functions for Multiplikation and Addition too. TI-Basic runs them faster than RXB. Edited September 26, 2019 by Sid1968 Quote Link to comment Share on other sites More sharing options...
+9640News Posted September 26, 2019 Share Posted September 26, 2019 The assembly language source code for Advanced Basic for the Geneve 9640 as well as the source code for any routines Advanced Basic may call is out there free to use. So, if someone really wants an assembly language interpreter for basic, what is really involved is modifying the code to the confines of either existing hardware for memory management or developing new hardware for the TI-99/4A to use this new interpreter. As it is, someone is already looking at a Geneve 2 to fit inside a TI-99/4A console so if that comes about, you would not even need to do anything if one went that hardware upgrade route. Otherwise, one's options are to tweak the code to be able to be run in a FinalGrom and/or another memory device. Of course, Myarc Extended Basic already exists and it is written in assembly language. Has anyone run those test programs on a Myarc 512K / Myarc Extended Basic II setup? Just curious what kind of speed one may achieve for comparison's sake. I do not know if Myarc Extended Basic II uses any GPL code from the original TI-99/4A groms. Myself, I would never wish upon anyone to write or rewrite something as complicated as Extended Basic into a new language. I think the value should be placed in using existing platforms to develop new software. My 2 cents. Beery 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted September 26, 2019 Share Posted September 26, 2019 21 minutes ago, Sid1968 said: I was thinking about the testprogram 2: 10 FOR I=1 TO 15000 20 A=I*(2+I) 30 NEXT I 40 PRINT A Only things that was computed were A=I*(2+I). Here we find Multiplikation and Addition (* and +). Since you changed the RND function, i aks if you could change the functions for Multiplikation and Addition too. TI-Basic runs them faster than RXB. I wrote a program to test this in Classic99: 100 OPEN #1:"CLOCK" 110 INPUT #1:A$,B$,C$ 120 PRINT A$:B$:C$ 130 FOR I=1 TO 15000 140 A=I*(2+I) 150 NEXT I 160 PRINT A 170 INPUT #1:A$,B$,C$ 180 PRINT A$:B$:C$ 190 CLOSE #1 Test results were: TI Basic: 306 Start: 12:47:26 End: 12:50:32 RXB: 3.17 Start: 12:51:18 End: 12:54:35 XB: 3.18 Start: 12:55:58 End: 12:59:16 Really that is not that bad and the difference tween XB and RXB can be seen as ever so slight at best. 1 Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 26, 2019 Author Share Posted September 26, 2019 I will test it tomorrow, mate. Now its 10:34 pm in germany... time to say goodnight. Quote Link to comment Share on other sites More sharing options...
apersson850 Posted September 26, 2019 Share Posted September 26, 2019 The console's basic arithmetic functions (add, subtract, multiply and divide) are in assembly language and stored in the system ROM in the console. TI BASIC uses them, and so do Pascal. Not all Forth dialects, though, if they support floating point math at all. If Extended BASIC, for some reason, is running its floating point math in the module, not in the console, then it's slower in spite of being identical. But that's due to the computer's hardware architecture, not the language's interpreter. 1 1 Quote Link to comment Share on other sites More sharing options...
matthew180 Posted September 26, 2019 Share Posted September 26, 2019 11 hours ago, Sid1968 said: ... My extremly high interest in the improvement of Extended Basic is founded in the history of the TI-99/4A. ... As an former outsider i strongly believe that this Computer, the TI-99/4A, deserves a more improved Extended Basic Version. You are the topic starter, and this is clearly your personal vision, so what are you waiting for? All the tools you need are at your finger tips, and this community will certainly help you work through various problems and/or design issues, but it is unlikely that anyone else is going to do the work you want done. If you really want this to happen, it is better to start the project yourself and get something working, at which point others might be inspired to contribute. 11 hours ago, Sid1968 said: i am sure we all, the people of this community, will make this happen. I would not hold my breath. 3 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted September 26, 2019 Share Posted September 26, 2019 (edited) 4 hours ago, senior_falcon said: Why are you always so hostile to me. I say you have a great product and you do not even have the manners to do the same? And how am I not "REALISTIC" does everyone on Earth have to just agree with you with no choice? I do GPL and RXB that is my thing, do I rag on you about your thing....no I make "REALISTIC" observations about facts. WTF?? Where is the hostility? My statement that "Rich won't do it" is not meant as a slam, just a statement of fact. I said you write in GPL, which you agree with. "I do GPL and RXB that is my thing." In the past you have asked for help with assembly routines. Does it seem realistic that someone who writes in GPL and is not an assembly guru is going to throw out all of RXB and rewrite it in assembly? Id really love to see forth Replace the ROMs Another topic header I created..sigh.. then creating basic all over again might run fast? Mmm Edited September 26, 2019 by GDMike 1 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 27, 2019 Share Posted September 27, 2019 With regard to print loop time testing... It has been my experience that many of the earier 99/4As... have an error in the garbage collection routine, that exacts a whopping nearly 2 sec. penalty every time it executes... this becomes more frequent as free space diminishes... I believe this occurs even when mearly printing string or numeric constants. My old TI BASIC programing(long lost) made rather heavy use of DEFs that included... ASC, CHR$, VAL and other functions. The program was often using as much memory as TI BASIC would allow. The lock-ups would occur less than ten seconds apart, nearly paralysing my program completely. My understanding is that this routine has been changed, perhaps more than once, finally being completely corrected. I'm not sure how emulators dealt with this. But this could account for vastly different "loop/time" results. Recently I had seen a fully commented source listing of the GPL responsible, including the names of the programmers and dates of corrections. Can't seem to locate it now though. 1 Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 27, 2019 Author Share Posted September 27, 2019 12 hours ago, RXB said: I wrote a program to test this in Classic99: 100 OPEN #1:"CLOCK" 110 INPUT #1:A$,B$,C$ 120 PRINT A$:B$:C$ 130 FOR I=1 TO 15000 140 A=I*(2+I) 150 NEXT I 160 PRINT A 170 INPUT #1:A$,B$,C$ 180 PRINT A$:B$:C$ 190 CLOSE #1 Test results were: TI Basic: 306 Start: 12:47:26 End: 12:50:32 RXB: 3.17 Start: 12:51:18 End: 12:54:35 XB: 3.18 Start: 12:55:58 End: 12:59:16 Really that is not that bad and the difference tween XB and RXB can be seen as ever so slight at best. Sorry couldnt test it on real TI-99/4A. Because of the lack of a clock it outputs only: * I/O Error 00 in 100. ? Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 27, 2019 Author Share Posted September 27, 2019 10 hours ago, matthew180 said: You are the topic starter, and this is clearly your personal vision, so what are you waiting for? All the tools you need are at your finger tips, and this community will certainly help you work through various problems and/or design issues, but it is unlikely that anyone else is going to do the work you want done. If you really want this to happen, it is better to start the project yourself and get something working, at which point others might be inspired to contribute. I would not hold my breath. Thank you for the flowers. 1. A long time ago i was more a programmer in mathematic applications. 2. In Systemprogramming i have two left hands. 3. Its really hard to find an assembler programmer that is worser then me. 4. This is Richs Project! I respect him. All he needs is some assemblerhelp. I understand that the 100% Assemblerprogramming of RXB would be a too big project for you people. Accordingly that idea is burried. Maybe we find a compromise in which you assemblerpros find another solution with Rich. Lets talk about that. ? But... i say thank you for your offer in helping ME. Danke!!! Kind Regards Sid 1 Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 27, 2019 Author Share Posted September 27, 2019 (edited) Here are some new results of some tests i made today. I completed some old test with more XB-Versions and tested additional Cortex Basic. Can someone explain the astonishing results of Cortex Basic? 1. Richards Test. Here i couldnt Test Cortex Basic since i didnt found the Keycombination to stop the program. 10 A=RND 20 C=C+1 30 GOTO 10 Results of "C" after exactly 60 Minutes: TI-Basic: 203628 TI-Extended Basic: 28824 Super-XB: 46952 MECHATRONIC-XB: 46957 RXB 2015: 180399 Since i didnt found the STOP Key in Cortex Basic to stop Richs Testprogram after 60 Minutes, i made the same program with a loop. 10 FOR I=1 TO 3000 20 A=RND 30 NEXT I 40 PRINT A TI-Basic: 46 Seconds RXB 2015: 50 Seconds Cortex Basic: 14 Seconds Basictestprogram 2: 10 FOR I=1 TO 15000 20 A=I*(2+I) 30 NEXT I 40 PRINT A TI-BASIC: 189 Sekonds EXPANDED BASIC PLUS: 203 Seconds Super-XB: 203 Sekonds MECHATRONIC-XB: 203 Seconds RXB 2015: 202 Seconds Cortex Basic: 101 Seconds Cortex Basic - Basictestprogram 2 Cortex Basic - Basictestprogram 2 - Result Cortex Basic is an incredible fast Basicinterpreter!!! Whats you opinion? Sid Edited September 27, 2019 by Sid1968 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted September 27, 2019 Share Posted September 27, 2019 There are several reasons. While the TI 99/4A hardware architecture is about trying to adapt something that shouldn't be there to do something it wasn't intended to do, at the lowest possible cost, the Cortex is designed around the philosophy why do a half measure, when you can go all in? There is no intermediate interpretation level in the Cortex, i.e. no GPL. Since the space effective GPL is missing, Cortex BASIC also don't have all features TI Extended BASIC has. Cortex uses the TMS 9995 CPU, which is 2-3 times as fast as the TMS 9900 (depending on the memory usage). But due to the complicated and inefficient memory usage in the 99/4A, the difference is frequently even larger than that. Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 27, 2019 Author Share Posted September 27, 2019 (edited) 28 minutes ago, apersson850 said: There are several reasons. While the TI 99/4A hardware architecture is about trying to adapt something that shouldn't be there to do something it wasn't intended to do, at the lowest possible cost, the Cortex is designed around the philosophy why do a half measure, when you can go all in? There is no intermediate interpretation level in the Cortex, i.e. no GPL. How did they realized that? 100% Assemblercode? Since the space effective GPL is missing, Cortex BASIC also don't have all features TI Extended BASIC has. What features? E.G. Very slow computing? Cortex uses the TMS 9995 CPU, which is 2-3 times as fast as the TMS 9900 (depending on the memory usage). But due to the complicated and inefficient memory usage in the 99/4A, the difference is frequently even larger than that. Why do software affected for a TMS 9995 runs on an TMS9900 faster then TMS9900 Software??? Is that piece of software advisable? The results are astonishing! Can we learn something from Cortex Basic for RXB? Edited September 27, 2019 by Sid1968 Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 27, 2019 Author Share Posted September 27, 2019 (edited) 14 hours ago, HOME AUTOMATION said: With regard to print loop time testing... It has been my experience that many of the earier 99/4As... have an error in the garbage collection routine, that exacts a whopping nearly 2 sec. penalty every time it executes... this becomes more frequent as free space diminishes... I believe this occurs even when mearly printing string or numeric constants. My old TI BASIC programing(long lost) made rather heavy use of DEFs that included... ASC, CHR$, VAL and other functions. The program was often using as much memory as TI BASIC would allow. The lock-ups would occur less than ten seconds apart, nearly paralysing my program completely. My understanding is that this routine has been changed, perhaps more than once, finally being completely corrected. I'm not sure how emulators dealt with this. But this could account for vastly different "loop/time" results. Recently I had seen a fully commented source listing of the GPL responsible, including the names of the programmers and dates of corrections. Can't seem to locate it now though. How can we test if a TI-99/4A has this problems? Maybe you should write a short referenceprogram in TI-Basic and tell us how long it runs on an errorfree TI-99/4A. Any idea how to fix that bug? Edited September 27, 2019 by Sid1968 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted September 27, 2019 Share Posted September 27, 2019 I first noticed the odd delays while watching MARKET SIMULATION doing the "slow print at technique". This was before I could even program! On a bad unit the glitch happens rather often while the screens are being set up. Here are a few links that mention this issue... http://shawweb.myzen.co.uk/stephen/book2.htm https://www.ninerpedia.org/wiki/Garbage_collection http://www.unige.ch/medecine/nouspikel/ti99/basic.htm Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 27, 2019 Author Share Posted September 27, 2019 (edited) On 9/23/2019 at 5:47 PM, Lee Stewart said: : SNLOOP ( -- n ) \ loop with single-cell, 16-bit numbers 0 \ 0 to stack for first drop in loop 15000 0 DO \ loop 15000 times DROP \ drop num on stack I 2 + \ index (I) + 2 I * \ I*(I+2) LOOP CR \ next line . \ print last loop result ; ...lee I just tipped in your first programm in FIG Forth REL 2.0 (For fbForth i would need a hdd/fdd) . How do i start a programm in Forth... RUN wont work I didnt found that command in your fbForth manual, Lee. Is it there? Edited September 27, 2019 by Sid1968 Quote Link to comment Share on other sites More sharing options...
Sid1968 Posted September 27, 2019 Author Share Posted September 27, 2019 (edited) A few Programmlanguage Questions: ----------------------------------------- 1. For programming what applications was fbForth made for? 2. What is the difference between Forth and fbForth? 3. For programming what applications was LOGO made for? 4. What are the differences between LOGO and LOGO II? 5. Is LOGO a dead language? I am interested in programming applications in natural science like mathematics and physics. What is the best language on TI-99/4A for that? Kind Regards Sid Edited September 27, 2019 by Sid1968 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted September 27, 2019 Share Posted September 27, 2019 4 minutes ago, Sid1968 said: I just typed in your first programm in FIG Forth REL 2.0 (For fbForth i would need a hdd/fdd) . How do i start a programm in Forth... RUN wont work I didnt found that command in your fbForth manual, Lee. Is it there? A “program” in Forth is a word you define in Forth. You run the “program” by typing the word. In the case you quoted, the word is SNLOOP , which you run (execute) by typing it followed by <enter>. ...lee 1 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted September 27, 2019 Share Posted September 27, 2019 Just now, Lee Stewart said: A “program” in Forth is a word you define in Forth. You run the “program” by typing the word. In the case you quoted, the word is SNLOOP , which you run (execute) by typing it followed by <enter>. ...lee I forgot to mention that SNLOOP was defined with ‘ : ’ and the definition was ended with ‘ ; ’. The first string after ‘ : ’ names the word being defined. ...lee 1 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.