Subject: New 'Power BASIC' Interpreter for TI-99/4A

From: "Stuart" <[email-masked]>
Date: Sat, 29 Jan 2011 18:14:57 -0000

Over the past two months or so I've been porting the `Power BASIC' interpreter used with the TMS9995-based Powertran Cortex machine (<www.old-computers.com/museum/computer.asp?st=1&c=171>) across to my TM990 system, and with not much extra effort I've also got it running on the TI-99/4A as well. Features and constraints are as follows:
 
-- It's written in pure assembly (but uses the console keyboard scanning routine) so is reasonably fast, more so if you have 32K RAM on the 16-bit bus fitted in the console.

-- The default working mode is 40-column text mode, and it also directly supports the 256x192 pixel Graphics mode 2 so you can do things like plot graphs and annotate them directly in BASIC.

-- Sprites are supported but their automatic movement is not – your program is responsible for moving them.

-- The code is loaded at the moment using E/A option 3. The size of the code means that only 5.5K of RAM is available for your program and variable storage. Programs are stored in a tokenised format so what free memory there is is used quite efficiently. There is also no load/save function at the moment, so you're not going to want to type in large programs anyway ...

-- The only hardware that the code is aware of at the moment is the console (but not the sound chip) and 32K RAM. No programmable sound, no speech, no disks or printer ports.

-- The code runs on real hardware and Tursi's Classic99 simulator (which I used extensively for debugging – great program!). It will NOT run on the Win994a simulator – it loads but then crashes, looks like there's a bug in the simulator somewhere.
 
The Cortex BASIC user guide is available which details the BASIC implementation. This was lovingly typed in by Jim Fetzner from a poor quality photocopy.
 
Further details are on my webpage at <www.avjd51.dsl.pipex.com/ti/ti.htm#programs>, which includes download links and some further information.
 
I'm looking to do a further release which includes load/save capability, and having it run from one of Jon Guidry's bank switched cartridges where it will unload itself from the cartridge into RAM and run mainly from there, but by having some code remaining running from the cartridge it should be possible to free up another 8K of RAM or so for program and variable storage. Running it with an 8K E/A SuperCart might also be an option. Code for direct control of the RS-232 and parallel port hardware (bypassing use of the DSRs) is also available, but including this will obviously reduce the amount of RAM available for program storage. Having it run directly from a bank-switching cartridge to free up most of the 32K of RAM is a possibility, but accomplishing this is a non-trivial task due to the way some of the routines are nested and modify their return addresses.
 
Happy TInkering.
 
Stuart.

---

From: mark wills <[email-masked]>
Date: Sat, 29 Jan 2011 18:39:31 +0000 (GMT)

HA HA this awesome! BRILLIANT job!

Where do we download it?

Mark

----- Original Message ----
> From: Stuart <[email-masked]>
> To: [email-masked]
> Sent: Sat, 29 January, 2011 18:14:57
> Subject: [TI994A] New 'Power BASIC' Interpreter for TI-99/4A
> 
> Over the past two months or so I've been porting the `Power BASIC' interpreter  
>used with the TMS9995-based Powertran Cortex machine  
>(<www.old-computers.com/museum/computer.asp?st=1&c=171>) across to my  TM990 
>system, and with not much extra effort I've also got it running on the  TI-99/4A 
>as well. Features and constraints are as follows:
> 
> -- It's  written in pure assembly (but uses the console keyboard scanning 
>routine) so is  reasonably fast, more so if you have 32K RAM on the 16-bit bus 
>fitted in the  console.
> 
> -- The default working mode is 40-column text mode, and it also  directly 
>supports the 256x192 pixel Graphics mode 2 so you can do things like  plot 
>graphs and annotate them directly in BASIC.
> 
> -- The code is loaded at the moment using E/A option 3. The size of  the code 
>means that only 5.5K of RAM is available for your program and variable  storage. 
>Programs are stored in a tokenised format so what free memory there is  is used 
>quite efficiently. There is also no load/save function at the moment, so  you're 
>not going to want to type in large programs anyway ...
> 
> -- The only  hardware that the code is aware of at the moment is the console 
>(but not the  sound chip) and 32K RAM. No programmable sound, no speech, no 
>disks or printer  ports.
> 
> -- The code runs on real hardware and Tursi's Classic99 simulator  (which I 
>used extensively for debugging – great program!). It will NOT run on  the 
>Win994a simulator – it loads but then crashes, looks like there's a bug in  the 
>simulator somewhere.
> 
> The Cortex BASIC user guide is available which  details the BASIC 
>implementation. This was lovingly typed in by Jim Fetzner from  a poor quality 
>photocopy.
> 
> Further details are on my webpage at  
><www.avjd51.dsl.pipex.com/ti/ti.htm#programs>, which includes download  links 
>and some further information.
> 
> I'm looking to do a further release  which includes load/save capability, and 
>having it run from one of Jon Guidry's  bank switched cartridges where it will 
>unload itself from the cartridge into RAM  and run mainly from there, but by 
>having some code remaining running from the  cartridge it should be possible to 
>free up another 8K of RAM or so for program  and variable storage. Running it 
>with an 8K E/A SuperCart might also be an  option. Code for direct control of 
>the RS-232 and parallel port hardware  (bypassing use of the DSRs) is also 
>available, but including this will obviously  reduce the amount of RAM available 
>for program storage. Having it run directly  from a bank-switching cartridge to 
>free up most of the 32K of RAM is a  possibility, but accomplishing this is a 
>non-trivial task due to the way some of  the routines are nested and modify 
>their return addresses.
> 
> Happy  TInkering.
> 
> Stuart.
> 
> 
> 
> 
> ------------------------------------
> 
> Yahoo!  Groups Links
> 
> 
> 
>

---

From: "Stuart" <[email-masked]>
Date: Sat, 29 Jan 2011 18:54:12 -0000

As the post says:

"Further details are on my webpage at <www.avjd51.dsl.pipex.com/ti/ti.htm#programs>, which includes download links and some further information."

;-)

Stuart.

--- In [email-masked], mark wills <markrobertwills@...> wrote:
> > From: Stuart <ti99@...>
> > -- Sprites are supported  but their automatic movement is not â€" your program is 
> >responsible for moving  them.
> > 
> >used extensively for debugging â€" great program!). It will NOT run on  the 
> >Win994a simulator â€" it loads but then crashes, looks like there's a bug in  the 
> >simulator somewhere.
> >

---

From: ti99_forever <[email-masked]>
Date: Sat, 29 Jan 2011 11:06:34 -0800 (PST)

Damn you!!! I was just about to start porting that!

Actually, thanks - I was going to port that...

--- On Sat, 1/29/11, Stuart <[email-masked]> wrote:

> Date: Saturday, January 29, 2011, 1:14 PM
> Over the past two months or so I've
> been porting the `Power BASIC' interpreter used with the
> TMS9995-based Powertran Cortex machine
> (<www.old-computers.com/museum/computer.asp?st=1&c=171>)
> across to my TM990 system, and with not much extra effort
> I've also got it running on the TI-99/4A as well. Features
> and constraints are as follows:
>  
> -- It's written in pure assembly (but uses the console
> keyboard scanning routine) so is reasonably fast, more so if
> you have 32K RAM on the 16-bit bus fitted in the console.
> 
> -- The default working mode is 40-column text mode, and it
> also directly supports the 256x192 pixel Graphics mode 2 so
> you can do things like plot graphs and annotate them
> directly in BASIC.
> 
> -- Sprites are supported but their automatic movement is
> not – your program is responsible for moving them.
> 
> -- The code is loaded at the moment using E/A option 3. The
> size of the code means that only 5.5K of RAM is available
> for your program and variable storage. Programs are stored
> in a tokenised format so what free memory there is is used
> quite efficiently. There is also no load/save function at
> the moment, so you're not going to want to type in large
> programs anyway ...
> 
> -- The only hardware that the code is aware of at the
> moment is the console (but not the sound chip) and 32K RAM.
> No programmable sound, no speech, no disks or printer
> ports.
> 
> -- The code runs on real hardware and Tursi's Classic99
> simulator (which I used extensively for debugging – great
> program!). It will NOT run on the Win994a simulator – it
> loads but then crashes, looks like there's a bug in the
> simulator somewhere.
>  
> The Cortex BASIC user guide is available which details the
> BASIC implementation. This was lovingly typed in by Jim
> Fetzner from a poor quality photocopy.
>  
> <www.avjd51.dsl.pipex.com/ti/ti.htm#programs>, which
> includes download links and some further information.
>  
> I'm looking to do a further release which includes
> load/save capability, and having it run from one of Jon
> Guidry's bank switched cartridges where it will unload
> itself from the cartridge into RAM and run mainly from
> there, but by having some code remaining running from the
> cartridge it should be possible to free up another 8K of RAM
> or so for program and variable storage. Running it with an
> 8K E/A SuperCart might also be an option. Code for direct
> control of the RS-232 and parallel port hardware (bypassing
> use of the DSRs) is also available, but including this will
> obviously reduce the amount of RAM available for program
> storage. Having it run directly from a bank-switching
> cartridge to free up most of the 32K of RAM is a
> possibility, but accomplishing this is a non-trivial task
> due to the way some of the routines are nested and modify
> their return addresses.
>  
> Happy TInkering.
>  
> Stuart.
> 
> 
> 
> 
>     [email-masked]
> 
> 
>

---

From: ti99_forever <[email-masked]>
Date: Sat, 29 Jan 2011 12:46:25 -0800 (PST)

When I was thinking about how to give the user some RAM, I was thinking along the lines of the AMS card, since I have one...

Ben

---

From: Gregory McGill <[email-masked]>
Date: Sat, 29 Jan 2011 18:34:35 -0800

Very cool.  I will have to check this out :)

Greg

On Sat, Jan 29, 2011 at 10:14 AM, Stuart <[email-masked]> wrote:

>
>
> Over the past two months or so I've been porting the `Power BASIC'
> interpreter used with the TMS9995-based Powertran Cortex machine (<
> www.old-computers.com/museum/computer.asp?st=1&c=171>) across to my TM990
> system, and with not much extra effort I've also got it running on the
> TI-99/4A as well. Features and constraints are as follows:
>
> routine) so is reasonably fast, more so if you have 32K RAM on the 16-bit
> bus fitted in the console.
>
> -- The code is loaded at the moment using E/A option 3. The size of the
> code means that only 5.5K of RAM is available for your program and variable
> storage. Programs are stored in a tokenised format so what free memory there
> is is used quite efficiently. There is also no load/save function at the
> moment, so you're not going to want to type in large programs anyway ...
>
> Win994a simulator – it loads but then crashes, looks like there's a bug in
> the simulator somewhere.
>
> implementation. This was lovingly typed in by Jim Fetzner from a poor
> quality photocopy.
>
> Further details are on my webpage at <
> www.avjd51.dsl.pipex.com/ti/ti.htm#programs>, which includes download
> links and some further information.
>
> I'm looking to do a further release which includes load/save capability,
> and having it run from one of Jon Guidry's bank switched cartridges where it
> will unload itself from the cartridge into RAM and run mainly from there,
> but by having some code remaining running from the cartridge it should be
> possible to free up another 8K of RAM or so for program and variable
> storage. Running it with an 8K E/A SuperCart might also be an option. Code
> for direct control of the RS-232 and parallel port hardware (bypassing use
> of the DSRs) is also available, but including this will obviously reduce the
> amount of RAM available for program storage. Having it run directly from a
> bank-switching cartridge to free up most of the 32K of RAM is a possibility,
> but accomplishing this is a non-trivial task due to the way some of the
> routines are nested and modify their return addresses.
>
> Happy TInkering.
>
> Stuart.
>
>  
>

---

From: Gregory McGill <[email-masked]>
Date: Sat, 29 Jan 2011 19:37:17 -0800

Ok I give up, how do you "break" a running program? :)  the usual suspects
no work. It's gonna hello world forever!

Greg

On Sat, Jan 29, 2011 at 6:34 PM, Gregory McGill <[email-masked]> wrote:

>> -- The only hardware that the code is aware of at the moment is the
>> console (but not the sound chip) and 32K RAM. No programmable sound, no
>> speech, no disks or printer ports.
>>

---

From: "Tursi" <[email-masked]>
Date: Sat, 29 Jan 2011 21:21:36 -0800

This is pretty awesome, Stuart! Congratulations! I look forward to seeing 
the storage implemented, then maybe if you need help making it bank switch 
we can put together a small team to make lighter work of it. :)

-----Original Message----- 
From: Stuart
Sent: Saturday, January 29, 2011 10:54 AM
To: [email-masked]
Subject: [TI994A] Re: New 'Power BASIC' Interpreter for TI-99/4A

As the post says:

"Further details are on my webpage at 
<www.avjd51.dsl.pipex.com/ti/ti.htm#programs>, which includes download links 
and some further information."

;-)

Stuart.

--- In [email-masked], mark wills <markrobertwills@...> wrote:
> > interpreter
> >TI-99/4A
> > code
> > console
> >quality

Yahoo! Groups Links

---

From: ti99_forever <[email-masked]>
Date: Sat, 29 Jan 2011 22:55:20 -0800 (PST)

NEW SYS(7) gives you 6,676 bytes of Program space, instead of 5,544.

The reason is that a "NEW" by itself reserves about 1k for assembly programs...

It is fun playing with this - just need an "ESC" key for the TI-99... only way I can see doing that is changing the Unit # to "4" and using Ctrl-".".

And remember an IF-THEN requires a GOTO before a line number.
And check out the IF/ELSE - ELSE can be on subsequent lines.

Also, string variables start with "$"...

Also, the Powertran Cortext Basic PDF contains text, so you can copy & paste the programs into Classic99.

---

From: ti99_forever <[email-masked]>
Date: Sat, 29 Jan 2011 23:27:38 -0800 (PST)

I didn't see anything there about submitting bugs?

--- On Sat, 1/29/11, Stuart <[email-masked]> wrote:

> Date: Saturday, January 29, 2011, 1:54 PM
> As the post says:
> 
> includes download links and some further information."
> 
> ;-)
> 
> Stuart.
> 
> across to my  TM990 
> > > -- Sprites are supported  but their
> automatic movement is not â€" your program is

---

From: "fredkaal" <[email-masked]>
Date: Sun, 30 Jan 2011 10:10:21 -0000

Very cool Stuart. Seems to run fine in Ti994w also!

Fred ;-)

---

From: "Stuart" <[email-masked]>
Date: Sun, 30 Jan 2011 10:38:59 -0000

The key mapping is on my webpage.

On the console, Escape is FCTN-9 (BACK). On Classic99 use Esc or Alt-9 on the PC keyboard.

Note that checking for the Escape key *only* takes places between statement lines. So if you put a FOR/NEXT loop all on one line then you can't escape out of it. If you put FOR on one line and NEXT on another than you can escape out of it.

Stuart.

---

From: "Stuart" <[email-masked]>
Date: Sun, 30 Jan 2011 10:42:50 -0000

Bugs, bugs?  ;-)

Send to me - ti99(at)stuartconner(dot)me(dot)uk.

If you think you've found a bug, please try out the Cortex simulator first (link on my webpage) to ensure that its not a misunderstanding of one of the BASIC commands.

Stuart.

--- In [email-masked], ti99_forever <ti99_forever@...> wrote:
> --- On Sat, 1/29/11, Stuart <ti99@...> wrote:
> 
> > From: Stuart <ti99@...>
> > --- In [email-masked],
> > mark wills <markrobertwills@> wrote:
> > >
> > > > From: Stuart <ti99@>

---

From: ti99_forever <[email-masked]>
Date: Sun, 30 Jan 2011 03:02:13 -0800 (PST)

I *swear* I tried that. Every key with Ctrl, every key with Alt... and somehow it works now that you say so... ;)

I had a nicely formatted capture of your page with the notes, but it wouldn't load on the PC here at work, said it was corrupt... and when I used it to capture it, formatting went all to Hell...

--- On Sun, 1/30/11, Stuart <[email-masked]> wrote:

> Date: Sunday, January 30, 2011, 5:38 AM
> Note that checking for the Escape key *only* takes places
> between statement lines. So if you put a FOR/NEXT loop all
> on one line then you can't escape out of it. If you put FOR
> on one line and NEXT on another than you can escape out of
> it.
> 
> Stuart.
> 
> ti99_forever <ti99_forever@...> wrote:
> >
> > It is fun playing with this - just need an "ESC" key
> for the TI-99... only way I can see doing that is changing
> the Unit # to "4" and using Ctrl-".".
> > 
> > Also, the Powertran Cortext Basic PDF contains text,
> so you can copy & paste the programs into Classic99.
> >
> 
> 
> 
>

---

From: "Stuart" <[email-masked]>
Date: Sun, 30 Jan 2011 11:40:06 -0000

Just to explain about string storage, as one of the examples in the manual appears to be wrong. String storage is very different to the TI.

The string variable $A can store a maximum of 5 characters (plus a null terminator). If you need to store more than 5 characters, you need to use a variable array, and reference the string through array element 0. Each element of the array, except the last element, can store 6 characters (the last element can store 5 plus the null terminator), and array elements are number from 0.

For example, if you run the following program ...

10  DATA 5,3.14159,"DOE,JOHN",4*ATN[1]
20  READ A,B,$C,D
30  PRINT A,B,$C,D

... then the value for variable B will appear corrupted because you're storing more than 5 characters in the string variable $C and its overflowing. What you need in this case is ...

1  DIM $C[1] !This allows for 6+5 characters in the string
10  DATA 5,3.14159,"DOE,JOHN",4*ATN[1]
20  READ A,B,$C[0],D !Reference string thru' array element 0.
30  PRINT A,B,$C[0],D

It's all described in detail in the manual. Take a look at sections 2.5.5, 2.5.6 and 6.3.

Stuart.

--- In [email-masked], "Stuart" <ti99@...> wrote:
> --- In [email-masked], ti99_forever <ti99_forever@> wrote:
> >
> > --- On Sat, 1/29/11, Stuart <ti99@> wrote:
> > 
> > > From: Stuart <ti99@>

---

From: ti99_forever <[email-masked]>
Date: Sun, 30 Jan 2011 03:51:56 -0800 (PST)

Ok, I see... now that wasn't clear in the manual...

--- On Sun, 1/30/11, Stuart <[email-masked]> wrote:

> Subject: [TI994A] New 'Power BASIC' Interpreter for TI-99/4A - String Storage
> Date: Sunday, January 30, 2011, 6:40 AM
> Just to explain about string storage,
> as one of the examples in the manual appears to be wrong.
> String storage is very different to the TI.
> 
> The string variable $A can store a maximum of 5 characters
> (plus a null terminator). If you need to store more than 5
> characters, you need to use a variable array, and reference
> the string through array element 0. Each element of the
> array, except the last element, can store 6 characters (the
> last element can store 5 plus the null terminator), and
> array elements are number from 0.
> 
> ... then the value for variable B will appear corrupted
> because you're storing more than 5 characters in the string
> variable $C and its overflowing. What you need in this case
> is ...
> 
> "Stuart" <ti99@...> wrote:
> >
> > Bugs, bugs?  ;-)
> > 
> > If you think you've found a bug, please try out the
> Cortex simulator first (link on my webpage) to ensure that
> its not a misunderstanding of one of the BASIC commands.
> > 
> > Stuart.
> > 
> > 
> > 
> ti99_forever <ti99_forever@> wrote:
> > >
> > > > > > Subject: [TI994A] New 'Power
> BASIC' Interpreter
> > > > for TI-99/4A
> > > > > > 
> > > > > > Over the past two months or so
> I've been porting
> > > > the `Power BASIC' interpreterÂ  
> > > > > >used with the TMS9995-based
> Powertran Cortex
> > > > machineÂ  
> > > > >
> > > >
> > > > across to myÂ  TM990 
> > > > > >system, and with not much extra
> effort I've also
> > > > got it running on theÂ  TI-99/4A 
> > > > > > -- It'sÂ  written in pure
> assembly (but uses
> > > > the console keyboard scanning 
> > > > > >routine) so isÂ  reasonably fast,
> more so if
> > > > you have 32K RAM on the 16-bit bus 
> > > > > >fitted in theÂ  console.
> > > > > > 
> > > > > > -- The default working mode is
> 40-column text
> > > > mode, and it alsoÂ  directly 
> > > > > >supports the 256x192 pixel Graphics
> mode 2 so you
> > > > can do things likeÂ  plot 
> > > > > > -- Sprites are supportedÂ  but
> their
> > > > automatic movement is not Ã¢â‚¬" your
> program is 
> > > > > >responsible for movingÂ  them.
> > > > > > 
> > > > > > -- The code is loaded at the
> moment using E/A
> > > > option 3. The size ofÂ  the code 
> > > > > >means that only 5.5K of RAM is
> available for your
> > > > program and variableÂ  storage. 
> > > > > >Programs are stored in a tokenised
> format so what
> > > > free memory there isÂ  is used 
> > > > > >quite efficiently. There is also no
> load/save
> > > > function at the moment, soÂ  you're 
> > > > > >not going to want to type in large
> programs anyway
> > > > ...
> > > > > > 
> > > > > > -- The onlyÂ  hardware that the
> code is aware
> > > > of at the moment is the console 
> > > > > >(but not theÂ  sound chip) and
> 32K RAM. No
> > > > programmable sound, no speech, no 
> > > > > >disks or printerÂ  ports.
> > > > > > 
> > > > > > -- The code runs on real hardware
> and Tursi's
> > > > Classic99 simulatorÂ  (which I 
> > > > > >used extensively for debugging
> Ã¢â‚¬" great
> > > > program!). It will NOT run onÂ  the 
> > > > > >Win994a simulator Ã¢â‚¬" it
> loads but then
> > > > crashes, looks like there's a bug inÂ  the
> 
> > > > > >simulator somewhere.
> > > > > > 
> > > > > > The Cortex BASIC user guide is
> available
> > > > whichÂ  details the BASIC 
> > > > > >implementation. This was lovingly
> typed in by Jim
> > > > Fetzner fromÂ  a poor quality 
> > > > > >photocopy.
> > > > > > 
> > > > > > Further details are on my webpage
> atÂ  
> > > > >
> > > >
> ><www.avjd51.dsl.pipex.com/ti/ti.htm#programs>,
> > > > which includes downloadÂ  links 
> > > > > > I'm looking to do a further
> releaseÂ  which
> > > > includes load/save capability, and 
> > > > > >having it run from one of Jon
> Guidry'sÂ  bank
> > > > switched cartridges where it will 
> > > > > >unload itself from the cartridge
> into RAMÂ 
> > > > and run mainly from there, but by 
> > > > > >having some code remaining running
> from theÂ 
> > > > cartridge it should be possible to 
> > > > > >free up another 8K of RAM or so for
> programÂ 
> > > > and variable storage. Running it 
> > > > > >with an 8K E/A SuperCart might also
> be anÂ 
> > > > option. Code for direct control of 
> > > > > >the RS-232 and parallel port
> hardwareÂ 
> > > > (bypassing use of the DSRs) is also 
> > > > > >available, but including this will
> obviouslyÂ 
> > > > reduce the amount of RAM available 
> > > > > >for program storage. Having it run
> directlyÂ 
> > > > from a bank-switching cartridge to 
> > > > > >free up most of the 32K of RAM is
> aÂ 
> > > > possibility, but accomplishing this is a 
> > > > > >non-trivial task due to the way
> some ofÂ  the
> > > > > > HappyÂ  TInkering.
> > > > > > Yahoo!Â  Groups Links
> > > > Â  Â  [email-masked]
> > > > 
> > > > 
> > > >
> > >
> >
> 
> 
> 
>

---

From: mark wills <[email-masked]>
Date: Sun, 30 Jan 2011 12:14:10 +0000 (GMT)

I'd be willing to help with porting to cartridge.

I have developed TurboForth to run completely from a cartridge. It doesn't copy 
itself to the TI's RAM at all. This was done (at the expense of some pain for 
me, as the developer) to give as much RAM as possible to the programmer. 
Consequently, you get 31.1K of RAM free on a 32K TI with TurboForth (the ~1K 
being buffers and stuff reserved for TurboForth itself).

It's easy enough, but there are some pitfalls...

I tried it today! Nice...! It didn't display properly though in Classic99 - VDP 
all messed up. 

In Win994A this caused an immediate crash (i.e. windows exception):

10 FOR I=0 TO 999:PRINT I;:NEXT I
RUN

Mark

----- Original Message ----
> From: Tursi <[email-masked]>
> Sent: Sun, 30 January, 2011 5:21:36
> Subject: Re: [TI994A] Re: New 'Power BASIC' Interpreter for TI-99/4A
>

---

From: "Stuart" <[email-masked]>
Date: Sun, 30 Jan 2011 12:36:42 -0000

Hi Mark,

Classic99 - download the latest version. I found a bug which Tursi corrected.

Win994a - as I said it *won't* work with Win994a. There's a bug in the simulator somewhere.

Thanks for the offer of help porting to cartridge (from yourself and others). I want to get simple load/saving working first then we can look at cartridge-ising it.

Stuart.

--- In [email-masked], mark wills <markrobertwills@...> wrote:
> > From: Tursi <yahoogroup@...>
> > --- In [email-masked], mark wills  <markrobertwills@> wrote:
> > >

---

From: "Jens-Eike Hartwig" <[email-masked]>
Date: Sun, 06 Feb 2011 15:44:31 +0100

Just did a quick test with a FOR-NEXT loop counting to 20000 on a
TI-99/4A (with Atronic CPS99 expansion) and on a SNUG 99/4P (16-bit
RAM).

Cortex: 33s (TI), 26s (SNUG)
TI-XB: 73s (both)
TI-BASIC: 57s

Jens-Eike

-----Original Message-----

-- It's written in pure assembly (but uses the console keyboard scanning
routine) so is reasonably fast, more so if you have 32K RAM on the
16-bit bus fitted in the console.

---

From: Owen <[email-masked]>
Date: Sun, 6 Feb 2011 10:02:21 -0500

Very curious that TI BASIC is 16 seconds faster than XB.  I remember previous XB speed tests which timed the FOR NEXT loops alot closer to the BASIC speed.... But this is interesting. ;)

Sent from my iPhone

---

From: "Jens-Eike Hartwig" <[email-masked]>
Date: Sun, 06 Feb 2011 17:41:12 +0100

I tried several runs, because I couldn't believe it, but BASIC was
always faster than XB. The computer was running with Disk Controller and
32k (no difference in BASIC), to have the same hardware configuration
for all runs.

New test:
Development Power BASIC on a TM990/101MA (one wait state for all
memory): 14s

Jens-Eike

-----Original Message-----
Date: Sun, 06 Feb 2011 16:02:21 +0100
Subject: Re: [TI994A] New 'Power BASIC' Interpreter for TI-99/4A
From: Owen <[email-masked]>
To: "[email-masked]" <[email-masked]>

Very curious that TI BASIC is 16 seconds faster than XB.  I remember
previous XB speed tests which timed the FOR NEXT loops alot closer to
the BASIC speed.... But this is interesting. ;)

Sent from my iPhone
On Feb 6, 2011, at 9:44 AM, "Jens-Eike Hartwig"
<[email-masked] [1]> wrote:

 Jens-Eike

 -----Original Message-----

 -- It's written in pure assembly (but uses the console keyboard
scanning
 routine) so is reasonably fast, more so if you have 32K RAM on the
 16-bit bus fitted in the console.

Links:
------
[1] mailto:[email-masked]
[2]
http://groups.yahoo.com/group/TI994A/join;_ylc=X3oDMTJnbmJvYmhvBF9TAzk3NDc2NTkwBGdycElkAzMyMzIxMDU5BGdycHNwSWQDMTcwNTExNTM4NgRzZWMDZnRyBHNsawNzdG5ncwRzdGltZQMxMjk3MDA0NTcw
[3] mailto:[email-masked]?subject=Email Delivery:
Digest
[4]
http://groups.yahoo.com/group/TI994A;_ylc=X3oDMTJlM3A5cWkzBF9TAzk3NDc2NTkwBGdycElkAzMyMzIxMDU5BGdycHNwSWQDMTcwNTExNTM4NgRzZWMDZnRyBHNsawNocGYEc3RpbWUDMTI5NzAwNDU3MA--
[5] http://docs.yahoo.com/info/terms/
[6] mailto:[email-masked]?subject=Unsubscribe

---

From: Owen <[email-masked]>
Date: Sun, 6 Feb 2011 12:45:05 -0500

I remember BASIC coming in ahead in most loop tests, but I don't remember it being such a disparity!!

Sent from my iPhone

---

From: ti99_forever <[email-masked]>
Date: Sun, 6 Feb 2011 09:53:00 -0800 (PST)

I always thought it was because "NEXT" is overloaded in XB - meaning the interpreter has to check to see if it is part of a RETURN NEXT.

Same should hold for RETURN, then.

Just a guess.

But try inserting a PRINT statement in between printing the loop counter. See how BASIC slows down, and TI XB actually seems to be closer, if Classic99 is a good way to compare.

--- On Sun, 2/6/11, Jens-Eike Hartwig <[email-masked]> wrote:

> From: Jens-Eike Hartwig <[email-masked]>
> Date: Sunday, February 6, 2011, 11:41 AM
> keyboard

---

From: "Stuart" <[email-masked]>
Date: Sun, 06 Feb 2011 18:08:28 -0000

Cortex BASIC on a 990/101 with no wait states is 9 seconds. I suspect Development Power BASIC will be pretty much the same.

Stuart.

--- In [email-masked], "Jens-Eike Hartwig" <j-e_hartwig@...> wrote:
> From: Owen <owenbrand@...>
> <j-e_hartwig@... [1]> wrote:
> 
> [1] mailto:j-e_hartwig@...
> [2]

---

From: "Stuart" <[email-masked]>
Date: Thu, 10 Feb 2011 21:18:30 -0000

I've added the LOAD and SAVE commands to the Power BASIC intepreter. It uses standard device/file names enclosed in quotes, so:

SAVE "DSK3.MYPROG"
LOAD "DSK3.MYPROG"

The auto-run feature described in the Cortex user guide is implemented as well.

The latest copy can be downloaded from <www.avjd51.dsl.pipex.com/ti/ti.htm#programs>.

I've tested it in Classic99 and it works fine. Tried it on my console with CF7+ tonight and it saves OK, and usually loads OK, but sometimes it hangs if loading one program after having previously loaded another. Reload BASIC and its fine again. This may just be my hacked-about console - if someone with a standard setup finds the same then I'll log the bug and look into it sometime.

Stuart.

---

From: Gregory McGill <[email-masked]>
Date: Fri, 11 Feb 2011 08:45:42 -0800

Copied over the the REAL 4/a and works as described. Saved test program,
new, load test program, works, new load test prog, works, new load test prog
works.

Greg

On Thu, Feb 10, 2011 at 1:18 PM, Stuart <[email-masked]> wrote:

>
>
> I've added the LOAD and SAVE commands to the Power BASIC intepreter. It
> uses standard device/file names enclosed in quotes, so:
>
> SAVE "DSK3.MYPROG"
> LOAD "DSK3.MYPROG"
>
> The latest copy can be downloaded from <
> www.avjd51.dsl.pipex.com/ti/ti.htm#programs>.
>
> I've tested it in Classic99 and it works fine. Tried it on my console with
> CF7+ tonight and it saves OK, and usually loads OK, but sometimes it hangs
> if loading one program after having previously loaded another. Reload BASIC
> and its fine again. This may just be my hacked-about console - if someone
> with a standard setup finds the same then I'll log the bug and look into it
> sometime.
>
> Stuart.
>
> > -- The code runs on real hardware and Tursi's Classic99 simulator (which
> I used extensively for debugging – great program!). It will NOT run on the

---

From: "Stuart" <[email-masked]>
Date: Fri, 11 Feb 2011 18:05:07 -0000

Excellent. Thanks Greg.

--- In [email-masked], Gregory McGill <arcadeshopper@...> wrote:
> On Thu, Feb 10, 2011 at 1:18 PM, Stuart <ti99@...> wrote:
> 
> >
> >
> > --- In [email-masked], "Stuart" <ti99@> wrote:
> > >

---

From: ti99_forever <[email-masked]>
Date: Sun, 13 Feb 2011 13:46:43 -0800 (PST)

Same here - tested it on my SCSI drive, saves/loads perfectly.
Did the FOR I=1 TO 1000 / PRINT I / NEXT I benchmark...01:34 Power BASIC01:38 Super XB (should be same for XB)01:34 TI BASIC at I=500...

--- On Fri, 2/11/11, Gregory McGill <[email-masked]> wrote:

From: Gregory McGill <[email-masked]>
Subject: Re: [TI994A] New 'Power BASIC' Interpreter for TI-99/4A - now with LOAD/SAVE
To: [email-masked]
Date: Friday, February 11, 2011, 11:45 AM

 

Copied over the the REAL 4/a and works as described. Saved test program, new, load test program, works, new load test prog, works, new load test prog works.
Greg

 

    

SAVE "DSK3.MYPROG"

LOAD "DSK3.MYPROG"

Stuart.

--- In [email-masked], "Stuart" <ti99@...> wrote:

---

From: mark wills <[email-masked]>
Date: Sun, 13 Feb 2011 22:49:14 +0000 (GMT)

If you do:

You get:

Power Basic: 20 seconds
XB: 46 Seconds
TIB: 1:58 (shocking)

Mark

________________________________
From: ti99_forever <[email-masked]>
To: [email-masked]
Sent: Sun, 13 February, 2011 21:46:43
Subject: Re: [TI994A] New 'Power BASIC' Interpreter for TI-99/4A - now with 
LOAD/SAVE

Did the FOR I=1 TO 1000 / PRINT I / NEXT I benchmark...
01:34 Power BASIC
01:38 Super XB (should be same for XB)
01:34 TI BASIC at I=500...

--- On Fri, 2/11/11, Gregory McGill <[email-masked]> wrote:

>Copied over the the REAL 4/a and works as described. Saved test program, new, 
>load test program, works, new load test prog, works, new load test prog works.
>
>
>Greg
>
>
>>I've added the LOAD and SAVE commands to the Power BASIC intepreter. It uses 
>>standard device/file names enclosed in quotes, so:
>>
>>SAVE "DSK3.MYPROG"
>>LOAD "DSK3.MYPROG"
>>
>>The latest copy can be downloaded from 
>><www.avjd51.dsl.pipex.com/ti/ti.htm#programs>.
>>
>>I've tested it in Classic99 and it works fine. Tried it on my console with CF7+ 
>>tonight and it saves OK, and usually loads OK, but sometimes it hangs if loading 
>>one program after having previously loaded another. Reload BASIC and its fine 
>>again. This may just be my hacked-about console - if someone with a standard 
>>setup finds the same then I'll log the bug and look into it sometime.
>>
>>Stuart.
>>
>>>supports the 256x192 pixel Graphics mode 2 so you can do things like plot graphs 
>>>and annotate them directly in BASIC.
>>> 
>>>(but not the sound chip) and 32K RAM. No programmable sound, no speech, no disks 
>>>or printer ports.
>>> 
>>> -- The code runs on real hardware and Tursi's Classic99 simulator (which I used 
>>>extensively for debugging – great program!). It will NOT run on the Win994a 
>>>simulator – it loads but then crashes, looks like there's a bug in the simulator 
>>>somewhere.
>>> 
>>><www.avjd51.dsl.pipex.com/ti/ti.htm#programs>, which includes download links and 
>>>some further information.
>>> 
>>>with an 8K E/A SuperCart might also be an option. Code for direct control of the 
>>>RS-232 and parallel port hardware (bypassing use of the DSRs) is also available, 
>>>but including this will obviously reduce the amount of RAM available for program 
>>>storage. Having it run directly from a bank-switching cartridge to free up most 
>>>of the 32K of RAM is a possibility, but accomplishing this is a non-trivial task 
>>>due to the way some of the routines are nested and modify their return 
>>>addresses.
>>> 
>>> Happy TInkering.
>>> 
>>> Stuart.
>>>
>>
>>
>
>
>

---

From: mark wills <[email-masked]>
Date: Sun, 13 Feb 2011 23:08:08 +0000 (GMT)

About 5 seconds in TurboForth. About 2.5 seconds if you turn the screen 
scrolling off...

Here's a head to head with XB:

http://www.youtube.com/watch?v=TNPc38mHZtM

To be fair, it's unfair to pitch any Basic against a Forth system. The Forth 
system will always win simply due to the way in which it works. Still, it's 
interesting.

And PowerBasic is really going some to be more than twice as fast as XB. Does 
Power Basic do sprites and stuff?

Mark

---

From: ti99_forever <[email-masked]>
Date: Sun, 13 Feb 2011 15:16:42 -0800 (PST)

Sprites (without automotion) - all 32.Bitmap mode. Text mode. 40 column glory! Point-plotting, line graphics, "shapes" separate from "character definitions".No sound (yet). No file i/o. But they are possible. Poke/Peek-type supported with mem.x=mem(04000H) and mem(04000H)=32 (think I got the syntax right).You could, currently, Poke a routine into memory, and then poke the user interrupt with the address, IF the interrupts are active (is it? Don't know... yet).

--- On Sun, 2/13/11, mark wills <[email-masked]> wrote:

From: mark wills <[email-masked]>
Subject: Re: [TI994A] New 'Power BASIC' Interpreter for TI-99/4A - now with LOAD/SAVE
To: [email-masked]
Date: Sunday, February 13, 2011, 6:08 PM

About 5 seconds in TurboForth. About 2.5 seconds if you turn the screen scrolling off...

To be fair, it's unfair to pitch any Basic against a Forth system. The Forth system will always win simply due to the way in which it works. Still, it's interesting.

And PowerBasic is really going some to be more than twice as fast as XB. Does Power Basic do sprites and stuff?

Mark

        

        

 

    

SAVE "DSK3.MYPROG"

LOAD "DSK3.MYPROG"

Stuart.

--- In [email-masked], "Stuart" <ti99@...> wrote:

---

From: "Stuart" <[email-masked]>
Date: Sun, 13 Feb 2011 23:34:45 -0000

Only occurred to me yesterday that the workspaces that PowerBasic is using are in the 8-bit high memory area, so for those with the usual 8-bit 32K memory expansion I should be able to increase the speed slightly by moving them to the console 256 byte RAM.

Did like your Youtube demo Mark, where you start XB running then go to Forth, type in the command line, bungle your typing and correct it, then start Forth running, and Forth finishes before XB is barely half-way through ...  ;-)

Stuart.

--- In [email-masked], mark wills <markrobertwills@...> wrote:
> From: ti99_forever <ti99_forever@...>
> --- On Fri, 2/11/11, Gregory McGill <arcadeshopper@...> wrote:
> 
> 
> >From: Gregory McGill <arcadeshopper@...>
> >>>extensively for debugging â€" great program!). It will NOT run on the Win994a 
> >>>simulator â€" it loads but then crashes, looks like there's a bug in the simulator 
> >>>somewhere.
> >>>

---

From: "Stuart" <[email-masked]>
Date: Sun, 13 Feb 2011 23:39:48 -0000

The PowerBasic code doesn't touch interrupts at all. So they should remain in whatever state the E/A loader leaves them in.

Stuart.

--- In [email-masked], ti99_forever <ti99_forever@...> wrote:
>
> Sprites (without automotion) - all 32.Bitmap mode. Text mode. 40 column glory! Point-plotting, line graphics, "shapes" separate from "character definitions".No sound (yet). No file i/o.Â But they are possible. Poke/Peek-type supported with mem.x=mem(04000H) and mem(04000H)=32 (think I got the syntax right).You could, currently, Poke a routine into memory, and then poke the user interrupt with the address, IF the interrupts are active (is it? Don't know... yet).
> 
> --- On Sun, 2/13/11, mark wills <markrobertwills@...> wrote:
> 
> From: mark wills <markrobertwills@...>
> Â 
> > -- Sprites are supported but their automatic movement is not â€" your program is responsible for moving them.
> 
> > 
> 
> > -- The code runs on real hardware and Tursi's Classic99 simulator (which I used extensively for debugging â€" great program!). It will NOT run on the Win994a simulator â€" it loads but then crashes, looks like there's a bug in the simulator somewhere.
> 
> 
> >  
>