Jump to content
Sid1968

A worse programmers questions

Recommended Posts

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.

  • Thanks 1

Share this post


Link to post
Share on other sites
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,[email protected],[email protected]
       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 [email protected]
[0839]               *                             STACK
[0840]               *                               SREFS   FAC CONTENTS
[0841]               * NRND   MOVE 5,[email protected],@FAC        FAC = X1
[0842]               *        MOVE 5,[email protected],@FAC        fAC = X1
[0843]               *        CLR  @FAC5                 FAC = CLR
[0844]               *        DCLR @FAC6                 FAC = CLR
[0845]               *        XML  VPUSH          (A)    FAC = X1
[0846]               *        MOVE 8,[email protected],@ARG        ARG = A1
[0847]               *        XML  FMUL                  FAC = X1*A1
[0848]               *        MOVE 8,[email protected],@ARG        ARG = C1
[0849]               *        XML  FADD               T1=FAC = X1*A1+C1
[0850]               *        XML  VPUSH          (B)    FAC = T1
[0851]               *        MOVE 8,[email protected],@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,[email protected],@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,[email protected]        FAC = X1 (new)
[0860]               *        XML  VPUSH          (E)    FAC = X1
[0861]               * COMPUTE NEW VALUE FOR X2, SAVE IT IN [email protected]
[0862]               *        MOVE 5,[email protected],@FAC        FAC = X2
[0863]               *        CLR  @FAC5                 FAC = CLR
[0864]               *        DCLR @FAC6                 FAC = CLR
[0865]               *        MOVE 8,[email protected],@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,[email protected],@ARG        ARG = A2
[0873]               *        XML  FMUL                  FAC = X1*A2
[0874]               *        XML  SADD           (H)    FAC = X2*A1+X1*A2
[0875]               *        MOVE 8,[email protected],@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,[email protected],@ARG        ARG = 1/1E7
[0881]               *        XML  FMUL                  FAC = T3/1E7
[0882]               *        CALL GRINT              T4=FAC = INT(T3/1E7)
[0883]               *        MOVE 8,[email protected],@ARG        ARG = 1E7
[0884]               *        XML  FMUL                  FAC = T4*1E7
[0885]               *        XML  SSUB           (L) X2=FAC = T3-T4*1E7
[0886]               *        MOVE 5,@FAC,[email protected]        FAC = X2 (new)
[0887]               * COMPUTE NEW VALUE FOR RND, LEAVE IT IN FAC
[0888]               *        MOVE 8,[email protected],@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.

  • Thanks 1

Share this post


Link to post
Share on other sites

Brilliant. Would that be possible with the functions + and * (Addition/Multiplikation) too?

Edited by Sid1968

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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!

  • Like 1

Share this post


Link to post
Share on other sites
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.

  • Thanks 1

Share this post


Link to post
Share on other sites
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 by Sid1968

Share this post


Link to post
Share on other sites

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

  • Like 1

Share this post


Link to post
Share on other sites
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.

  • Thanks 1

Share this post


Link to post
Share on other sites

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.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
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.

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
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 by GDMike
  • Like 1

Share this post


Link to post
Share on other sites

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.

  • Thanks 1

Share this post


Link to post
Share on other sites
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. 😭

Share this post


Link to post
Share on other sites
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

  • Like 1

Share this post


Link to post
Share on other sites

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

20190927_132005.jpg

 

Cortex Basic - Basictestprogram 2 - Result

20190927_132020.jpg

 

 

Cortex Basic is an incredible fast Basicinterpreter!!! Whats you opinion?

 

Sid ;-)

Edited by Sid1968

Share this post


Link to post
Share on other sites

There are several reasons.

  1. 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?
  2. There is no intermediate interpretation level in the Cortex, i.e. no GPL.
  3. Since the space effective GPL is missing, Cortex BASIC also don't have all features TI Extended BASIC has.
  4. 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.

 

Share this post


Link to post
Share on other sites

 

28 minutes ago, apersson850 said:

There are several reasons.

  1. 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?
     
  2. There is no intermediate interpretation level in the Cortex, i.e. no GPL.
    How did they realized that? 100% Assemblercode?
     
  3. 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? ;-)
     
  4. 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 by Sid1968

Share this post


Link to post
Share on other sites
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 by Sid1968

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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 by Sid1968

Share this post


Link to post
Share on other sites

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 by Sid1968

Share this post


Link to post
Share on other sites
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

  • Thanks 1

Share this post


Link to post
Share on other sites
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

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