Jump to content
IGNORED

Why twice interpreted TI BASIC?


Airshack

Recommended Posts

United States Patent 4,286,320
Ott August 25, 1981

Digital computing system having auto-incrementing memory
 

Abstract

A digital computing system having an auto-incrementing memory subsystem includes one or more separate memories. Each memory in the memory subsystem has its own address counter which is automatically incremented to the next sequential address after each memory readout. In the case of plural memories, a page select enables memory readout only when a page designation portion of the address matches a unique page number associated with the memory. An automatic memory refresh is provided by a refresh address counter along with a refresh address incrementer in the case that a memory is a dynamic RAM. These features enable improved performance in the digital computing system by reducing the required CPU overhead for memory subsystem control.

-----

This sounds like GROM devices and the VDP memory interface or maybe the entire TI-99 architecture. (?) 

 

A GPL Forth would likely be byte-code compiler and not interactive but it could be done by starting with a GPL assembler in Forth.

Then build the GPL Forth compiling words onto top of that. Not an outlandish idea actually.

 

The piece I know nothing about is how does one make a program image of a GPL file run?

Format it like a cartridge? Could you do that in Super Cart Ram for testing purposes?

 

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

6 hours ago, Ksarul said:

Tursi might be able to shed some useful light here when it comes to making GPL run in new spaces. @RXB could definitely help with understanding the way GPL works in the first place too. . .

GPL is generally absolute addresses, yes. I wrote a little program that was essentially a subset of the GPL interpreter so it could find addresses and relocate them to another GROM.. wouldn't work for tables since it was very thin.

 

  • Like 1
Link to comment
Share on other sites

3 hours ago, Tursi said:

GPL is generally absolute addresses, yes. I wrote a little program that was essentially a subset of the GPL interpreter so it could find addresses and relocate them to another GROM.. wouldn't work for tables since it was very thin.

 

I am ok with absolute addresses. What I don't know anything about is how do you give TI-99  a GPL program image and have it run.

Can I start a GPL program from XB?  Can I load a program image with the E/A loader and jump into the GPL interpreter somehow.

Some comments indicate that the program must live in a GROM? Is that true or is there a work around?

It's all PFM to me. (pure F... magic) :) 

Is there a resource I could study to learn more?

Link to comment
Share on other sites

5 hours ago, TheBF said:

I am ok with absolute addresses. What I don't know anything about is how do you give TI-99  a GPL program image and have it run.

Can I start a GPL program from XB?  Can I load a program image with the E/A loader and jump into the GPL interpreter somehow.

Some comments indicate that the program must live in a GROM? Is that true or is there a work around?

It's all PFM to me. (pure F... magic) :) 

Is there a resource I could study to learn more?

I created the GPL Tutorial and long with videos too:

TI-99/4A development resources - TI-99/4A Development - AtariAge Forums

 

GPL HOW 2 Series video

A complete series on how to program GPL (Graphics Progroamming Language) on the TI-99/4A.

Each tutorial has its own support package with example code, GPL assembler, etc.

Video tutorials done by Rich, the programmer of Rich Extended Basic.

(Author: @RXB)

 

GPLHOW2A - Introduction video / zip

GPLHOW2B - Sprite demo video / zip

GPLHOW2C - How to make a Screen Editor like TI Writer or Editor Assembler video / zip

GPLHOW2D - Editor Assembler TI BASIC support.video / zip

GPLHOW2E - DMII cartridge upgrades and how GPL works video / zip

GPLHOW2F - TI Basic to GPL. Converting a TI Basic program to GPL video / zip

GPLHOW2G - TI Basic CALL SOUND to GPL video / zip

GPLHOW2H - Simultaneous sound lists and interrupt timer in GPL video / zip

GPLHOW2I - XB2GPL demo of a XB game Baloons converted into a GPL program video / zip

GPLHOW2J - Update to GPLHOW2I and adds a automatic music to the game from the last demo video / zip

GPLHOW2K - How to make XB Program Image files into I/V 254 files video / zip

 

 

CLICK the ZIP to get the files!

Have fun 

RXB (Rich Gilbertson)

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

Thanks Rich.

These demos are kind of one level above where I want to learn.

This lets me make GPL programs with existing tools.

I want to replace the existing tools.  :)  (yes I know I need a psychiatrist but whatever) 

 

I will have to go through this to get a feel what is going on under the hood so thanks again.

 

  • Like 2
Link to comment
Share on other sites

6 hours ago, TheBF said:

Thanks Rich.

These demos are kind of one level above where I want to learn.

This lets me make GPL programs with existing tools.

I want to replace the existing tools.  :) (yes I know I need a psychiatrist but whatever) 

 

I will have to go through this to get a feel what is going on under the hood so thanks again.

 

Just what kind of tools?

Not like we can replace ROM 0 in Console as that is where GPL resides written in Assembly.

Link to comment
Share on other sites

1 hour ago, RXB said:

Just what kind of tools?

Not like we can replace ROM 0 in Console as that is where GPL resides written in Assembly.

Not the ROMs but the GPL Assembler and then see if I can lay a Forth on top of that assembler

In theory it's possible. Am I the guy who can do it? I don't know but I would like to try.

It should be possible to make a Forth compiler with structured branching and looping and all the regular trappings, but it emits GPL code to a file.

Then I need to learn how to make that file run. If I make the file format a cartridge I should be able to test it on Classic99... I think. :) 

  • Like 3
Link to comment
Share on other sites

On 7/1/2021 at 6:15 AM, TheBF said:

I am ok with absolute addresses. What I don't know anything about is how do you give TI-99  a GPL program image and have it run.

The short and simple answer is with a stock machine, you can't. TI didn't build in any way to load and run a GPL program. GROM is meant to be executed from GROMs, meaning to develop software in GPL you need to use a GROM Simulator of some kind.

 

There are workarounds, as always. There's at least one GROM interpreter that runs code from RAM. But other people will need to talk about how to use them ;)

 

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

The FinalGrom is able to run grom images. It’s probably the simplest hardware solution.

 

Otherwise it can be done using an emulator.

 

@ralphb has a gpl assembler which will produce cartridge images which can be used in the FinalGrom or in an emulator.

  • Like 3
Link to comment
Share on other sites

16 hours ago, chue said:

The FinalGrom is able to run grom images. It’s probably the simplest hardware solution.

 

Otherwise it can be done using an emulator.

 

@ralphb has a gpl assembler which will produce cartridge images which can be used in the FinalGrom or in an emulator.

Yea but I use the same GPL Assembly as Miller Graphics did the Ryte Data GPL Assembler and Linker for over 30 years now.

It is pretty involved converting to FinalGROM but I do not want to have to convert all my source code to another GPL Assembler

as the syntax is different and the amount of time that would take.

I can currently convert everything now to FinalGROM in about 15 minutes that is time well spent.

 

Link to comment
Share on other sites

On 7/1/2021 at 7:15 AM, TheBF said:

Can I start a GPL program from XB?  Can I load a program image with the E/A loader and jump into the GPL interpreter somehow.

Some comments indicate that the program must live in a GROM? Is that true or is there a work around?

If you set XB, E/A, etc. to use GRAM, on FinalGROM 99, Classic99, then load your program, bounce it into GRAM, set the GROM address register to the program's entry address, load GPLWS, perhaps clear the STATUS byte, then BRANCH to >0070... that might be just enough to do it! Dunno.:dunce:

Link to comment
Share on other sites

4 hours ago, HOME AUTOMATION said:

If you set XB, E/A, etc. to use GRAM, on FinalGROM 99, Classic99, then load your program, bounce it into GRAM, set the GROM address register to the program's entry address, load GPLWS, perhaps clear the STATUS byte, then BRANCH to >0070... that might be just enough to do it! Dunno.:dunce:

Is there a special way I have to hold my tongue as well? ?

 

Thanks I will have to do some homework on how to do all that. Never been to those places in the 99. I guess it's time I learned.

Link to comment
Share on other sites

On 7/3/2021 at 6:30 PM, RXB said:

I do not want to have to convert all my source code to another GPL Assembler

as the syntax is different and the amount of time that would take.

I takes 1 second to convert your sources with this WSH script: https://atariage.com/forums/topic/233677-xdt99-new-ti-99-cross-development-tools-available/?do=findComment&comment=3747491

But then you have to install python and learn how to run Ralph's assembler.

  • Like 1
Link to comment
Share on other sites

11 minutes ago, lucien2 said:

I takes 1 second to convert your sources with this WSH script: https://atariage.com/forums/topic/233677-xdt99-new-ti-99-cross-development-tools-available/?do=findComment&comment=3747491

But then you have to install python and learn how to run Ralph's assembler.

Yea I do not load bloatware onto my PC, if I did not game with this PC I would do so, but last time I did do that is made my PC sluggish.

The more files you stuff into the root directory the slower it is going to run.

Now indexing helps but if you keep the root directory small and do not index you get faster returns.

Oddly having to open a index and update it takes longer then just looking at what is there.

Now if this was in a loop yes indexing would be faster, but who does that?

 

Besides I have been working on RXB this way for 30 years and there would be no real advantage to this other then save me 15 when I am done.

I run GPL@LOADER using Classic99 to test my GPL code so the only time I need a .bin is when totally finished.

Same goes for the ROMs I created now, I just use Editor Assembler to load a ROM and save it using CSAVE.

Link to comment
Share on other sites

1 hour ago, RXB said:

Yea I do not load bloatware onto my PC, if I did not game with this PC I would do so, but last time I did do that is made my PC sluggish.

The more files you stuff into the root directory the slower it is going to run.

Now indexing helps but if you keep the root directory small and do not index you get faster returns.

Oddly having to open a index and update it takes longer then just looking at what is there.

Now if this was in a loop yes indexing would be faster, but who does that?

 

Besides I have been working on RXB this way for 30 years and there would be no real advantage to this other then save me 15 when I am done.

I run GPL@LOADER using Classic99 to test my GPL code so the only time I need a .bin is when totally finished.

Same goes for the ROMs I created now, I just use Editor Assembler to load a ROM and save it using CSAVE.

What is and where to I get GPL@LOADER Rich?

 

Link to comment
Share on other sites

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