Jump to content
IGNORED

That's why TI BASIC is so slow!


Airshack

Recommended Posts

 

 

GPL Assembler says unknown symbol in line 743 so how the hell do I know where line 743 is in a PC NotePad text file?

(I do not like Notepad + or Notepad 2 as they attempt to make everything a NotePad + or NotePad 2 file.)

1-Notepad shows the line and column numbers in the lower right corner. (At least with XP - I dunno about windows 7 and 10 - sometimes Microsoft removes features)

2-I love Notepad++. I don't know what a NotePad or Notepad 2 file is. The files I save default to .TXT files that are perfectly compatible with Notepad and Classic99. If that is not your experience there must be a setting that needs to be changed. It seems to me that I had to make a change so everything wasn't jumbled together on one line.

  • Like 1
Link to comment
Share on other sites

I could make the entire Module in one pass by chaining the files and it would 14 inches thick on paper, well at least it was in RXB version 2001 and has gotten bigger since then.

RXB 2001 was FIVE 3 ring binders biggest about 4 inches and smallest 3 inches thick.

 

Problem was it took hours to assemble even in Classic99.

 

So I cut it back to one Text file per each GROM. The XB ROMs are going to make it worse.

 

Like I said after I am done with SAMS RXB and normal RXB upgrades I will make a RAM version of TI Basic using the SAMS, that should really speed it up.

 

All of these should be fully backwards compatible except of course if the XB programs are expecting strings or stack or symbols in VDP RAM.

Link to comment
Share on other sites

1-Notepad shows the line and column numbers in the lower right corner. (At least with XP - I dunno about windows 7 and 10 - sometimes Microsoft removes features)

2-I love Notepad++. I don't know what a NotePad or Notepad 2 file is. The files I save default to .TXT files that are perfectly compatible with Notepad and Classic99. If that is not your experience there must be a setting that needs to be changed. It seems to me that I had to make a change so everything wasn't jumbled together on one line.

 

Yea Notepad works fine for me and no need for a special version. I can use TIDIR to do what I need and do not need special setup to load disks as I just use the TI filesystem.

Besides I have to much crap loaded on my computer now.

Link to comment
Share on other sites

How does the speed of Cortex BASIC compare to TI BASIC? I believe Cortex runs from a ROM cartridge (so no GROM and GPL bottlenecks), but not sure if it runs just off VDP RAM or uses 32KB expanded memory. Also, not sure if it uses floating point for all variables or if it has integer specific variable support.

 

I don't really know much about it and might have details wrong, but it could be a useful data point to understand what is really causing TI BASIC to be so slow.

Link to comment
Share on other sites

BJGuillot, on 15 Apr 2017 - 4:46 PM, said:

How does the speed of Cortex BASIC compare to TI BASIC? I believe Cortex runs from a ROM cartridge (so no GROM and GPL bottlenecks), but not sure if it runs just off VDP RAM or uses 32KB expanded memory. Also, not sure if it uses floating point for all variables or if it has integer specific variable support.

 

I don't really know much about it and might have details wrong, but it could be a useful data point to understand what is really causing TI BASIC to be so slow.

 

Cortex BASIC uses CPU RAM/ROM and needs 32K extended memory. Integer values in the range -32768 to +32767 are stored internally in an integer format, otherwise floating point format is used (you can't specifically define a variable as an integer).

 

Cortex BASIC is **very roughly** 1.5 times the speed of XB. There's a little bit of benchmarking in this thread: http://atariage.com/forums/topic/245962-cortex-basic-in-80-column/?p=3376857. There's a bit about benchmarks using the 'top hat graph' here as well: http://atariage.com/forums/topic/215138-bitmap-mode/?p=3183359. All very non scientific as two BASICs can't run the exact same BASIC program ...

  • Like 1
Link to comment
Share on other sites

How does the speed of Cortex BASIC compare to TI BASIC? I believe Cortex runs from a ROM cartridge (so no GROM and GPL bottlenecks), but not sure if it runs just off VDP RAM or uses 32KB expanded memory. Also, not sure if it uses floating point for all variables or if it has integer specific variable support.

 

I don't really know much about it and might have details wrong, but it could be a useful data point to understand what is really causing TI BASIC to be so slow.

LOL does anyone here use GPL as much as me?

 

"TI BASIC HAS NO ASSEMBLY ROUTINES FOR DEALING WITH INTERPRETATION OF BASIC CODE!" (All written in GPL and only uses VDP for Storage.)

 

XB has 12K of Assembly that deals with Prescan, Fetch and Interprets XB code and returns to GPL.

XB also has Assembly routines that skip code or look for symbols or tables or rearranges memory.

 

TI Basic has very few like this at all and a Prescan in TI Basic 24K in size would be really slow as it is all done in GPL from VDP memory only.

TI Basic has no Assembly to skip tokens or look for symbols or tables. It does have some but they are much fewer and in the ROM 0 of the console.

 

12K of Assembly in XB vs 2K of Assembly in TI BASIC.

  • Like 1
Link to comment
Share on other sites

Several BASICS of the era supported straight integers as well as numerics... I believe they used the % symbol to indicate an integer variable or array.

 

I think the worst problem with the architecture is just the (near) lack of CPU memory. I understand why all the RAM was in the VDP only; memory was expensive at the time.

 

The memory issue cropped up even with cartridges as well. I know that several of TI's attempts to get commercial software produced for the TI failed in part because they demanded the 3rd party try and fit everything in the 8K memory slot for cartridges. In particular, Zaxxon was right out.

Wondering where you got this Zaxxon story? Interesting.

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

And not on a TI Console, you have to use a PC and then you can run it on the TI99/4A or a Emulator.

 

I use Classic99 myself using text and using TIDIR99 to put into a TI DV80 Source file, then assemble it in Editor Assembler.

Most of what I do could be done on the TI instead, you are on the other hand have to use the PC.

 

Point is it is not TI in anyway it is all Emulation of TI.

Fine you can do that but do not pretend it is the same as using a real TI99/4A, and I do realize I am using a emulator not real hardware.

I'd suggest that the non-TI hardware emulation development via a PC is the way to go in 2017. You can't use your TI on an airplane, and the PC has many modern editors (and other tools) which make it FAR SUPERIOR to developing on vs our wonderful yet tedious 1979 hardware's programming environment.

 

Coding for the TI with a PC emulator is not at all pretending. It's simply an improved and powerful way to get more software into the system.

 

 

 

 

 

 

 

 

Sent from my iPhone using Tapatalk

  • Like 1
Link to comment
Share on other sites

1-Notepad shows the line and column numbers in the lower right corner. (At least with XP - I dunno about windows 7 and 10 - sometimes Microsoft removes features)

2-I love Notepad++. I don't know what a NotePad or Notepad 2 file is. The files I save default to .TXT files that are perfectly compatible with Notepad and Classic99. If that is not your experience there must be a setting that needs to be changed. It seems to me that I had to make a change so everything wasn't jumbled together on one line.

Notepad++ shows line and column numbers on Windows 10. Great editor!

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

 

Cortex BASIC uses CPU RAM/ROM and needs 32K extended memory. Integer values in the range -32768 to +32767 are stored internally in an integer format, otherwise floating point format is used (you can't specifically define a variable as an integer).

 

Cortex BASIC is **very roughly** 1.5 times the speed of XB. There's a little bit of benchmarking in this thread: http://atariage.com/forums/topic/245962-cortex-basic-in-80-column/?p=3376857. There's a bit about benchmarks using the 'top hat graph' here as well: http://atariage.com/forums/topic/215138-bitmap-mode/?p=3183359. All very non scientific as two BASICs can't run the exact same BASIC program ...

Harry Wilhelm's Compiled basic runs one of my benchmark BASIC programs (with Sprites and dynamic on screen text and graphing) in excess of 25X faster than regular XB.

 

Seems like GAME OVER for all the other BASIC variants?

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

Harry Wilhelm's Compiled basic runs one of my benchmark BASIC programs (with Sprites and dynamic on screen text and graphing) in excess of 25X faster than regular XB.

 

Seems like GAME OVER for all the other BASIC variants?

 

 

Sent from my iPhone using Tapatalk

Wen Complied XB can do some of the stuff RXB can do I will be impressed.

 

Full SAMS support.

Full SCSI/WDS/IDE Support Except Format a Hard Drive.

Will run TI Basic without any modifications even using characters 15 & 16 normally in XB forbidden as this collides with sprite table.

Built in Editor Assembler Cart. (REA)

CRU access using CALL IO command with many demos doing device interface control, music auto play in background using VDP.

Ability to save Lower 8K in Program Image format being much quicker to load or save then normal XB methods. (CALL BSAVE and CALL BLOAD)

And a host of other subroutines only found in RXB.

https://www.youtube.com/channel/UCULwPKqrRFCtNv5_xMuOqQw

Link to comment
Share on other sites

It appears I have much to learn about this RXB! The best part about this hobby is there's always more to learn.

 

Apparently it's an apples to oranges comparison with regard to the highly capable RXB.

 

My earlier "GAME OVER" post requires clarification: Compiled BASIC and XB256 spell GAME OVER for TI BASIC and Extended BASIC.

 

That speed gain is too much to ignore. Not having to learn GPL or Assembly to write speedy code is nothing short of epic for this hobbyist.

 

 

 

 

Sent from my iPhone using Tapatalk

Edited by Airshack
Link to comment
Share on other sites

I guess it all comes down to the specific needs, wants and requirements of an individual at the moment Rich. For example if I want to play a simple game, or use any of the other pre-existing E/A 5 or FG99 compatible program, I care more about the programs speed of execution than I do about the capabilities of the host environments support features.

 

I have a question for you, are any of these extra commands and features inside of your RXB supported by any of the compilers currently available? If so, it might be a nice environment to code in before compiling into a finished product.

Link to comment
Share on other sites

I guess it all comes down to the specific needs, wants and requirements of an individual at the moment Rich. For example if I want to play a simple game, or use any of the other pre-existing E/A 5 or FG99 compatible program, I care more about the programs speed of execution than I do about the capabilities of the host environments support features.

 

I have a question for you, are any of these extra commands and features inside of your RXB supported by any of the compilers currently available? If so, it might be a nice environment to code in before compiling into a finished product.

No some examples only in RXB are:

CALL AMSBANK switches SAMS banks in lower 8K from XB 2 4K pages at a time. Additionally AMSMAP, AMSPASS, ASMON, AMSOFF all control SAMS access.

CALL BLOAD and CALL BSAVE save Lower 8K to Program Image format which is much faster then any other way of loading he lower 8K, especially for SAMS access.

CALL CAT or CALL DIR both can catalog multiple drives in one command. As far as I know no other XB has this feature.

CALL COINC, CALL CHAR, CALL COLOR, CALL DISTANCE, CALL GCHAR, CALL HCHAR, CALL VCHAR all do something no other XB can do, a comma at end allows multiple calls to same command. Every other XB makes you put a new line for each time you need something done.

i.e. CALL COINC(#2,#3,tolerance,variable,#8,dotrow,dotcol,tolarance,variable,ALL,variable) ! no other XB can do this.

CALL FCOPY that will copy files from one device to another.

CALL XBPGM("DSK#.Filename",1) ! does a NEW, does a CALL FILES(1) then loads a XB program like RUN "DSK#.Filename" but this is done in one command.

CALL HGET or CALL VGET fetch off screen a string into a string variable. Much like a CALL GCHAR but does it multiple times.

CALL HPUT or CALL VPUT puts a string onto screen but unlike DISPLAY AT only uses 28 columns these use 32 columns.

CALL IO allows CRU direct control or access from XB, or play music lists from GPL or VDP and I did GPL video demos of this in my GPL HOW 2 videos.

CALL ISROFF or CALL ISRON that allows you from XB to turn on and off ISR HOOK and did a demo of this show running multiple unrelated Assembly from one XB program all from Lower 8K.

CALL ONKEY basically a version of CALL KEY but is like it has a IF true THEN and ON variable GOTO built into one command.

CALL MKDIR that will make Directories on Hard Drives.

CALL MOVES that moves any type of memory to any type of memory of any size from a XB command. Many demos of this have been done.

CALL POKER that loads VDP Registers with the values you want. Must be careful with this one to not change memory locations to much.

CALL RENAME that will not only rename files but Directories on hard drives.

CALL RMDIR that will remove Directories from a Hard Drive.

CALL RMOTION that reversed the direction of a sprite or multiple sprites or even all the sprites. Demos of this on video.

CALL SECTOR that allows from XB to read or write sectors on DISK or Hard Drives. Up to 8K of Sectors read or written into Lower 8K, so using SAMS you could do almost 1 Meg at a time read/write sectors.

CALL SIZE or SIZE reports size of SAMS, amount of Lower 8K assembly space and normal XB memory.

CALL USER the most powerful part of RXB that is a FILE CONTROL similar to DOS but can do anything you can do in XB even load and run multiple XB programs with assembly support.

 

I have done videos on almost all of these and the RXB Demo videos show most of these way back in 2001, since then more changes have occurred.

Edited by RXB
Link to comment
Share on other sites

Definitely looks like a powerhouse for those wanting to program or run from within that environment. Once I finally get a program written, I kind of have my heart set on slapping the program on the FG99 with everything else for quick and easy execution, but that will require compiling it first. I'll want to share what I've developed as well, so for the widest audience possible, it'll have to be in a format most people can use.

  • Like 1
Link to comment
Share on other sites

I have a question for you, are any of these extra commands and features inside of your RXB supported by any of the compilers currently available?

 

I would like to add that XB256 also has a string of extra commands (mostly directed at the game developer). These new commands also compiles. You'll be able to have independent screens, more characters, windows, character and pixel scrolling, play sound lists and more.

 

;)

 

  • Like 1
Link to comment
Share on other sites

I think you are the keeper of the GPL torch.

Matt's TIdBiT is extremely important to the modern BASIC workflow as well. I wouldn't code in any BASIC without exploiting the power of this wonderful BASIC code translator.

 

 

Sent from my iPad using Tapatalk

  • Like 2
Link to comment
Share on other sites

My earlier "GAME OVER" post requires clarification: Compiled BASIC and XB256 spell GAME OVER for TI BASIC and Extended BASIC.

 

That speed gain is too much to ignore. Not having to learn GPL or Assembly to write speedy code is nothing short of epic for this hobbyist.

 

I guess many people could state:

Modern computers spell GAME OVER for the TI-99/4A Home Computer.

 

We come here to play with the TI-99/4A for different reasons. That may be writing TI BASIC and Extended Basic (XB) programs.

 

Yes, TI BASIC is slow. Also compared with many popular computers at the time.

 

Some are purists, more or less. Will it be original unexpanded hardware, emulation or something else.

 

Instead of compiling, you can turn on CPU Overdrive in Classic99. You may then notice that certain things misbehave relative to objective.

 

You may compile, but many programs won't compile, and those that do often fail or misbehave. Already there, it's not just GAME OVER.

 

When compiling, TI BASIC and XB programs often have to be adjusted. It does however open a new world of possibilities considering the speed gain alone. If you take advantage of speed and perhaps new facilities, you'll soon discover you are rewriting more than just adjusting. It's all fine. But again, it's not just GAME OVER. With other words, compiling is not just writing code as you know it, - but it's close.

 

You have to measure your level and success with your goals and time available. AtariAge member tibasic has done some amazing stuff lately in just that, TI BASIC.

 

x1f609.png.pagespeed.ic.wF21YceKxu.png

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

I was speaking mostly about program development in BASIC on the TI, not old programs.

 

The current day TI BASIC programmer has the option to compile code within: Regular TI BASIC, Extended BASIC, and XB256. So no, BASIC is not dead.

 

GAME OVER?

 

All three of these compile as long as you follow just a few rules (restrictions) dealing mainly with IF-THEN logic.

 

The Wilhelm compiler allows the BASIC programmer to run code 20-50X faster than usual! Also, it has many routines to enhance Extended BASIC.

 

Example: The game programmer can now code in BASIC and expect reasonably good collision detection vs abysmal collision detection in interpreted (slow assed) BASIC. That's a MAJOR game changer!

 

Old School Rule: "In order to write a really good graphic based game you need to code it in something other than BASIC or Extended BASIC because they're too slow on the TI."

 

Harry's compiler shatters that rule!

 

Let's say you're writing a new game and you haven't yet learned Assembly Language. Are you going to want to use the compiler and XB256 extensions?

 

XB256 enhancements are all coded in fast Assembly (not GPL) to include:

 

Two unique screens with unique character definitions (112 characters for screen one, 256 for screen two).

 

Seamless toggling between screens!

 

Room for defining 28 double-sized sprites and still room for 256 additional characters for screen graphics!

 

Scrolling of characters: up, down, left and right.

 

Scrolling in windows.

 

Scrolling by individual pixels!

 

Compressed string writes to VDP.

 

Auto-playing of sound lists in VDP RAM.

 

The list goes on and on....

 

The days of having to climb Mount Assembler in order to accurately manage game Sprites have come to an end with this compiler. It's at very least a GAME CHANGER!

 

Sure, one can always do better with Assembly Language programming. The BASIC compiler significantly empowers the less advanced coders is all!'

 

The return on your investment here is significant!

 

When coupled with Module Creator 2.0 you can even produce ROMs (.bin) for use with FlashROM99. Why not?

 

Purists shouldn't be concerned because this is all still used for producing TI-only software. The ultimate goal is getting the code to run on real TI hardware.

 

I maintain....GAME OVER!

 

 

 

Sent from my iPhone using Tapatalk

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