Jump to content
IGNORED

A worse programmers questions


Sid1968

Recommended Posts

2 hours ago, adamantyr said:

Yeah, any development on the native console without memory is a challenge. THAT said, the recent Dragon's Lair cartridge works just fine with 256 bytes of CPU RAM. :)

Yeah.. but memory isn't really one of the demands of playing Dragon's Lair. The only part that didn't fit in scratchpad was the scene queuing, which I only needed to properly replay scenes you fail at. But I had lots of VDP memory for that. ;)

 

5. Is there a Pascal Compiler for the TI-99/4A?

- Just the pCode card, I think, which is an expansion card for the PEB. I thought I heard about a Turbo Pascal, but I've not seen it. 

6. What Compiler/Interpreter/Assembler do you prefer best?

- I use WinAsm99 more often than I should, but xdt99 is probably the most complete environment these days. We used it for the Megademo and I used it for Dragon's Lair as well. It has all the parts you could want, including disk image creation and GPL assembly.

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

6 hours ago, RXB said:

RXB is from Miller Graphics that created GRAM KRACKER Extended Basic same as many others including Super Extended Basic and XB 2.5

RXB was created in 1991/1992 and by 1996 I released version 5.54 that was reviewed by Micropendium Magazine. 

Thank you for that information and your fantastic work for the TI-Community, Richard! ?

In what manner happens the codeoptimization in the expanded basic versions, that they run so much faster than TI-Basic?

 

For example:

 

10 FOR I=1 TO 1000

20 PRINT I

30 NEXT I

 

Needs under

TI-Basic 188 Seconds,

Mechatronic Extended Basic 99 Seconds,

RXB 2015 (is there a newer version?) 99 Seconds

 

Only as an information about the former challenger of the TI-99/4A,

the VIC-20 needs 26 Seconds.

 

Edited by Sid1968
  • Thanks 1
Link to comment
Share on other sites

10 hours ago, Sid1968 said:

Thank you for that information and your fantastic work for the TI-Community, Richard! ?

In what manner happens the codeoptimization in the expanded basic versions, that they run so much faster than TI-Basic?

 

For example:

 

10 FOR I=1 TO 1000

20 PRINT I

30 NEXT I

 

Needs under

TI-Basic 188 Seconds,

Mechatronic Extended Basic 99 Seconds,

RXB 2015 (is there a newer version?) 99 Seconds

 

Only as an information about the former challenger of the TI-99/4A,

the VIC-20 needs 26 Seconds.

 

 

in a nutshell, ti basic is double interpreted.. it converts basic, to GPL that is then interpreted into assembly/machine

extended basic has assembly routines that don't have to be interpreted so it just interprets the basic to the assembly without the intermediary step.. there is some GPL as well but not as much

 

xb256 compiled, removes all the interpretation and just moves your entire program to assembly 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, arcadeshopper said:

it converts basic, to GPL that is then interpreted into assembly/machine

Essentially true, but we should better say that BASIC is not converted to GPL but that the BASIC interpreter is running in GPL (which, by itself, is interpreted and leads to the execution of machine language routines.

 

The whole GPL thing sounds like nonsense, but we can also turn it this way to make it sound better: Call the GPL interpreter a Virtual Machine.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

11 hours ago, Sid1968 said:

10 FOR I=1 TO 1000

20 PRINT I

30 NEXT I

 

Needs under

TI-Basic 188 Seconds,

Mechatronic Extended Basic 99 Seconds,

RXB 2015 (is there a newer version?) 99 Seconds

 

Only as an information about the former challenger of the TI-99/4A,

the VIC-20 needs 26 Seconds.

 

TI Extended Basic also takes only 99 seconds—probably identical code in the various XB interpreters.

 

For comparison, fbForth takes 20 seconds for the same loop.

 

...lee

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, mizapf said:

Essentially true, but we should better say that BASIC is not converted to GPL but that the BASIC interpreter is running in GPL (which, by itself, is interpreted and leads to the execution of machine language routines.

 

The whole GPL thing sounds like nonsense, but we can also turn it this way to make it sound better: Call the GPL interpreter a Virtual Machine.

Makes we wonder, has anyone tried to make a BASIC to GPL compiler? Or a GPL to machine code compiler?

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Lee Stewart said:

For comparison, fbForth takes 20 seconds for the same loop.

Boah.... thats faster than the VIC-20. OK to be fair. fbForth is no Interpreter but a compiler. A compiler would run on the VIC-20 faster too. But its still amazing. How would the programcode looks in fbForth. Know nothing about it.

 

Would be nice to know the worktime for assembler too. ?

Edited by Sid1968
Link to comment
Share on other sites

19 minutes ago, Sid1968 said:

Never heard of xb256. Is that Extended Basic 2.5?

xb256 is a add on for regular xb that gives you more features.. the compiler takes that extended basic and compiles it to assembly..

 

xb256 is included with classic99 if you are using that.. it's also in the development forum here check the pinned post for development resources, memory expansion and a drive or emulator is required

  • Thanks 1
Link to comment
Share on other sites

20 hours ago, Tursi said:

5. Is there a Pascal Compiler for the TI-99/4A?

- Just the pCode card, I think, which is an expansion card for the PEB. I thought I heard about a Turbo Pascal, but I've not seen it. 

 

The p-code card doesn't contain any Pascal compiler. It contains the UCSD p-system, which is an operating system, and the PME (p-machine emulator). The PME is a virtual machine, which executes p-code. The idea is similar to GPL, or Java, to pick something modern.

For the p-system, there's a Pascal compiler available. Some others too, but the Pascal compiler was the only one promoted for the TI 99/4A.

Turbo Pasc'99 is a simplified Pascal compiler for the TI 99/4A. The only advantage it has is that it can run without the rather rare p-code card. But the Pascal version it supports is completely useless.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Sid1968 said:

Boah.... thats faster than the VIC-20. OK to be fair. fbForth is no Interpreter but a compiler. A compiler would run on the VIC-20 faster too. But its still amazing. How would the programcode looks in fbForth. Know nothing about it.

 

Would be nice to know the worktime for assembler too. ?

 

No—fbForth is an interpreter. It has a compiling function when you define new words and otherwise store (compile) information into its dictionary, but it does not compile (or translate) an fbForth word to another language. When you execute words (routines/programs) fbForth is an interpreter. Without getting too detailed, each word is a list of execution addresses and data for words used in the definition of said word. When any given word is executed, fbForth walks the address list, executing the code found at each of those addresses, which likely invokes another address list, etc. before continuing interpreting the current list.

 

The fbForth “program” I used is

: NUMS 
   1000 0 DO   \ loop 1000 times
      I .      \ get index and print it
   LOOP  ;     \ loop until done

The above word NUMS is executed by typing its name followed by <enter>.

 

I will have more to say about the speed comparisons after supper.  TTFN...

 

...lee

  • Thanks 2
Link to comment
Share on other sites

18 minutes ago, Lee Stewart said:

 

No—fbForth is an interpreter. It has a compiling function when you define new words and otherwise store (compile) information into its dictionary, but it does not compile (or translate) an fbForth word to another language. When you execute words (routines/programs) fbForth is an interpreter. Without getting too detailed, each word is a list of execution addresses and data for words used in the definition of said word. When any given word is executed, fbForth walks the address list, executing the code found at each of those addresses, which likely invokes another address list, etc. before continuing interpreting the current list.

 

The fbForth “program” I used is


: NUMS 
   1000 0 DO   \ loop 1000 times
      I .      \ get index and print it
   LOOP  ;     \ loop until done

The above word NUMS is executed by typing its name followed by <enter>.

 

I will have more to say about the speed comparisons after supper.  TTFN...

 

...lee

Thank you Lee. Just looked at your nice webside. Its very interesting and i guess that i will be there more often. Now its 00:05 am in Germany and i say goodnight to all of you Mates! ;-)

 

 

 

 

Edited by Sid1968
  • Like 2
Link to comment
Share on other sites

16 hours ago, Sid1968 said:

Language                              Seconds

------------------------------------  -------

TI Basic                                188

TI Extended Basic V 110 (XB)             99   <---LES added

Mechatronic Extended Basic               99

RXB 2015 (is there a newer version?)     99

VIC-20 Basic                             26

 

I took the liberty of editing the above quote and adding TI Extended Basic V 110.

 

The problem with the code you used to compare with the video is that it is different. The code in the video has a ‘,’ as the last character of the PRINT instruction and it makes a difference for all of the TI Basics. I presume you got the time for the VIC-20 Basic from the video—

10 FOR I=1 TO 1000
20 PRINT I,
30 NEXT I

With that addition, the VIC-20 still wins.

 

All of the TI Basics are faster if you end the PRINT instruction with a ‘;’ and it is this version to which the fbForth code is most comparable—

20 PRINT I;

Here is a composite timing table, presuming the Mechatronic XB and RXB have the same behavior as XB with PRINT ending in ‘,’ and ‘;’—

                                      Time in Seconds for
                                      PRINT ending in
Language                              ‘ ’   ‘,’   ‘;’
------------------------------------  ---   ---   ---
TI Basic                              188   160   130
TI Extended Basic V 110 (XB)           99    72    50
Mechatronic Extended Basic             99    72    50
RXB 2015 (is there a newer version?)   99    72    50
VIC-20 Basic                            ?    26     ?
fbForth 2.0                             ?     ?    20

 

...lee

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

3 hours ago, Lee Stewart said:

 


                                      Time in Seconds for
                                      PRINT ending in
Language                              ‘ ’   ‘,’   ‘;’
------------------------------------  ---   ---   ---
TI Basic                              188   160   130
TI Extended Basic V 110 (XB)           99    72    50
Mechatronic Extended Basic             99    72    50
RXB 2015 (is there a newer version?)   99    72    50
VIC-20 Basic                            ?    26     ?
fbForth 2.0                             ?     ?    20
Compiled XB                            36    20    9.5

The big bottleneck for any of these is the scroll routine. Using the comma puts two numbers per line for half as many scrolls. Using the semicolon usually puts 5 numbers on a line (7 for two digit numbers and 9 for single digit numbers). The VIC has a smaller screen (23x22) which means the scroll has less work to do. That helps the VIC some, but the real advantage is that BASIC is all in assembly. I understand that Myarc XB is all assembly and runs around 3x faster which would put it roughly on a par with the VIC.

 

Edited by senior_falcon
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

7 hours ago, Lee Stewart said:

 

I took the liberty of editing the above quote and adding TI Extended Basic V 110.

 

The problem with the code you used to compare with the video is that it is different. The code in the video has a ‘,’ as the last character of the PRINT instruction and it makes a difference for all of the TI Basics. I presume you got the time for the VIC-20 Basic from the video—


10 FOR I=1 TO 1000
20 PRINT I,
30 NEXT I

With that addition, the VIC-20 still wins.

 

All of the TI Basics are faster if you end the PRINT instruction with a ‘;’ and it is this version to which the fbForth code is most comparable—


20 PRINT I;

Here is a composite timing table, presuming the Mechatronic XB and RXB have the same behavior as XB with PRINT ending in ‘,’ and ‘;’—


                                      Time in Seconds for
                                      PRINT ending in
Language                              ‘ ’   ‘,’   ‘;’
------------------------------------  ---   ---   ---
TI Basic                              188   160   130
TI Extended Basic V 110 (XB)           99    72    50
Mechatronic Extended Basic             99    72    50
RXB 2015 (is there a newer version?)   99    72    50
VIC-20 Basic                            ?    26     ?
fbForth 2.0                             ?     ?    20

 

...lee

No, i took the time from one of my own VIC-20s (I got only 5 VIC-20, 5 C64, 4 Amiga 1200 an now 2 TI-99/4A)

 

ViC-20  Basic        ` `          `,`         `;`

---------------------------------------------

                            26          19          14

 

 

It would be very interesting to find out, what Interpreter/Compiler is the fastes on the TI-99/4A ?

 

The Basictestprogram has the disadvantage that the result depends on the matter how the result is printed.

Maybe we should construct another interpreter/compiler/assembler short program that prints out only one

result and needs to compute on TI-Basic about 180 seconds. Any ideas?

 

 

Edited by Sid1968
Link to comment
Share on other sites

OK, i "developed" an interesting program with amazing results... because this time TI-Basic is the winner (except VIC-20).

 

10 FOR I=1 TO 15000
20 A=I*(2+I)
30 NEXT I
40 PRINT A

 

Result: 225030000

 

                               TI-Basic          Mechatronic Extended Basic          RXB 2015          VIC-20 Basic

------------------------------------------------------------------------------------------------------------
Time in Seconds:      189                             203                                   202                     91

 

 

The Extended Basic Versions are slower.  Why??? Can someone explain me that results on the TI-99/4A?

Please doublecheck that results and add other Interpreter/Compiler/Assembler results.

 

Kind Regards

Sid1968

Edited by Sid1968
Link to comment
Share on other sites

Thank you for that very interesting posting. If i understand that thread right different Computers gets compared by its MIPS.

The testprograms you suggested could be very usefull for further tests. ?

 

Even when i show the results from the VIC-20, this thread is actually more about the compute time of one testprogram in different languages on the TI-99/4A.

Iam very exited of more results. ?

 

Would be kind if everybody who wants to face the challenge gives us the upper Basiccode translated in the language he/she used together with the computetime

 

Kind Regards

Sid1968

Edited by Sid1968
  • Like 1
Link to comment
Share on other sites

3 hours ago, Sid1968 said:

The Extended Basic Versions are slower.  Why??? Can someone explain me that results on the TI-99/4A?

 

The difference, which is not much, likely has to do with the fact that TI Basic ROM routines are located in console ROM and run on the 16-bit bus, whereas ROM routines unique to XB run on the 8-bit bus. The GROMs are also similarly situated, but I do not know whether that makes anywhere near the speed difference the placement of ROMs has.

 

...lee

  • Thanks 1
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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