Jump to content
IGNORED

Internal GPL Interpreter?


Retrospect

Recommended Posts

I was reading somewhere online, some time ago, that the TI has an internal GPL interpreter that is not user accessible.

 

So .... IS there a way to interface with it if you're really clever, or is it just sat there for no reason other than to accept GPL code from cartridges?

 

Bare in mind I don't code in GPL but I find it fascinating that there's something in the TI that isn't being used.

  • Like 1
Link to comment
Share on other sites

I guess they referred to the fact that users could not create cartridges on their own (using GROMs) but write machine language programs (if they can't resist, well, at least let's make it expensive). In that sense, the GPL interpreter is not useful for users.

Link to comment
Share on other sites

Difficult question to answer. For example, it is possible to call GPL code, using a routine called GPLLNK (which is in ROM) which will set up the software environment for running GPL, execute a GPL routine (which of course means the GPL interpreter has to execute) and return to the calling routine. So, in that respect, the interpreter is accessible, but you can only access pre-existing GPL code. You can't for example (as far as I know) put some GPL code in RAM or VDP RAM and execute it. It has to be in a GROM or GRAM. In that respect, it's essentially inaccessible, yes.

 

A fascinating machine, our little TI. Nothing like it.

Link to comment
Share on other sites

If you change the pointer from GROM/GRAM to VDP it will run GPL code from VDP.

 

So sorry you are incorrect Willsy.

 

My video tutorials all use this with the Ryte Data GPL Linker using Ryte Data GPL Assembler:

 

Look at the GPLHOW2 series I have produced with links and tutorial Youtube Videos.

 

http://atariage.com/forums/topic/153704-ti-994a-development-resources/

 

At least watch the first two as they explain.

 

  • Like 3
Link to comment
Share on other sites

Hi Rich:

Can you run GPL out of VDP on a real TI or do you need to modify the groms? Can the interpreter handle VDP access properly (writing to the screen or character definitions) when running out of VDP?

http://atariage.com/forums/topic/153704-ti-994a-development-resources/

 

Scroll down to my GPLHOW2 Tutorials and download the GPL Assembler, GPL Linker (RUNS GPL from VDP), GPL Disassembler, GPL Loader and videos on using GPL.

 

UTIL1 is the GPL Linker for running GPL from VDP.

 

RYTE DATA wrote all of these for the TI99/4A in 1980 to 1983, the GPL Loader was originally written in 1986.

Edited by RXB
Link to comment
Share on other sites

It looks as if the Java compiler (Grinder) could "relatively easy" be made to output GPL. I mean Java bytecode looks like a cousin of GPL code. And the concept of this is kinda cool. The GPL interpreter (like a JVM) is built-in (stock console has a lot of ROM and GROM for that (sole) purpose). And GPL is actually getting a speed benchmark up close to that of TurboForth.

 

Unfortunately I'm not going to pursue that (sticking with other TI software projects). Consider it a breadcrumb.

 

;)

  • Like 4
Link to comment
Share on other sites

... You can't for example (as far as I know) put some GPL code in RAM or VDP RAM and execute it. It has to be in a GROM or GRAM. In that respect, it's essentially inaccessible, yes. ...

 

If you change the pointer from GROM/GRAM to VDP it will run GPL code from VDP. ...

 

Hi Rich:

Can you run GPL out of VDP on a real TI or do you need to modify the groms? Can the interpreter handle VDP access properly (writing to the screen or character definitions) when running out of VDP?

 

... GPL Linker (RUNS GPL from VDP), GPL Disassembler, ...

UTIL1 is the GPL Linker for running GPL from VDP. ...

 

Rich, are there any limitations to the GPL programs run through the VDP as far as size or otherwise? I have always been intrigued by GPL, and the idea of being able to create and run programs using your utilities is a very attractive proposition.

 

 

Actually, the GPL programs linked by Monty Schmidt’s GPL Linker load/run them to/from expansion RAM—not VRAM. The GPL Linker links a GPL simulator to the GPL object code into EA5 files that can be loaded and run from either EA or XB.

 

...lee

  • Like 1
Link to comment
Share on other sites

One reason this intrigues me is this: if you can run GPL out of VDP ram, then you should be able to make a loader that brings the program into VDP ram embedded in a TI BASIC program and then run it directly from VDP using an unexpanded console and cassette recorder. (Naturally, you could load from disk as well.) This would be a good fit for the unexpanded console, since you could write the program normally. Playground can run assembly from an unexpanded console, but you have to be very aware of the memory limitations when programming, which means programming in pages no greater than 112 bytes, no use of BLWP and other challenges.

Link to comment
Share on other sites

One reason this intrigues me is this: if you can run GPL out of VDP ram, then you should be able to make a loader that brings the program into VDP ram embedded in a TI BASIC program and then run it directly from VDP using an unexpanded console and cassette recorder. (Naturally, you could load from disk as well.) This would be a good fit for the unexpanded console, since you could write the program normally. Playground can run assembly from an unexpanded console, but you have to be very aware of the memory limitations when programming, which means programming in pages no greater than 112 bytes, no use of BLWP and other challenges.

 

I had a short PM discussion about this a while back about the possibility of running something like Car Wars from VDP RAM.

Link to comment
Share on other sites

I was reading somewhere online, some time ago, that the TI has an internal GPL interpreter that is not user accessible.

 

So .... IS there a way to interface with it if you're really clever, or is it just sat there for no reason other than to accept GPL code from cartridges?

 

Bare in mind I don't code in GPL but I find it fascinating that there's something in the TI that isn't being used.

 

Being one that uses GPL equally as much as assembly, I probably would have given up the TI long ago were it not for the merits of the GPL interpreter.

 

"... there's something in the TI that isn't being used ..." is a completely untrue statement. Without it, there would be no ubergrom cartridges. I could not disagree more with your comment.

 

Mixing GPL and assembly code as a programmer is the best way to make full use of the TI's memory and take complete control of the TI. QED = Extended Basic v2.7 Suite.

 

Gazoo

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

Rich, are there any limitations to the GPL programs run through the VDP as far as size or otherwise? I have always been intrigued by GPL, and the idea of being able to create and run programs using your utilities is a very attractive proposition.

Yes as you are limited to mostly 8K in GPL programs that run from VDP but I have made a 12K one work by some small memory tricks.

 

Obviously GRAM/GROM has more memory than VDP and with GROM/GRAM you can load 40K or more as 16K of TI Basic can also be used for 56K of program space.

 

Personally if you put Assembly in GPL and link it using GPL as a Menu and Program manager it is much more powerful then any other language for the TI99/4A.

 

Name another way to manage all devices and memory on the TI with as much ease of use and management?

  • Like 2
Link to comment
Share on other sites

 

 

 

 

 

 

Actually, the GPL programs linked by Monty Schmidt’s GPL Linker load/run them to/from expansion RAM—not VRAM. The GPL Linker links a GPL simulator to the GPL object code into EA5 files that can be loaded and run from either EA or XB.

 

...lee

Looking at TI Intern OS of the TI99/4A I see how to run GPL from GROM/GRAM/VDP but do not see anyway to do it from RAM?

 

If it runs from RAM then running GPL from a SAMS and without delays would be insanely fast would it not?

Link to comment
Share on other sites

Looking at TI Intern OS of the TI99/4A I see how to run GPL from GROM/GRAM/VDP but do not see anyway to do it from RAM?

 

If it runs from RAM then running GPL from a SAMS and without delays would be insanely fast would it not?

 

I don't know how GPL might actually run from VRAM. I just know (from the manual, at least) that Schmidt's linker is not doing that. It is setting up a GPL simulator that walks through GPL byte code loaded into RAM space and interprets it. It is limited to 4 banks that are menu-selected, so I doubt that the GPL can be written to execute as one large GPL program to be run with this simulator.

 

...lee

Link to comment
Share on other sites

 

Being one that uses GPL equally as much as assembly, I probably would have given up the TI long ago were it not for the merits of the GPL interpreter.

 

"... there's something in the TI that isn't being used ..." is a completely untrue statement. Without it, there would be no ubergrom cartridges. I could not disagree more with your comment.

 

Mixing GPL and assembly code as a programmer is the best way to make full use of the TI's memory and take complete control of the TI. QED = Extended Basic v2.7 Suite.

 

Gazoo

" is a completely untrue statement."

Fine, okay, well, I came to that conclusion because TI stated it was not user accessible. So, if it IS user accessible, great, fine, that's cool.

 

"I could not disagree more with your comment."

Good to know. It's nice to have someone reply with such enthusiasm, I like a bit passion in written words, it portrays emotion. :)

 

One good thing came of my topic though, it got people talking about the GPL Interpreter. Who knows what will come of it? ;)

Link to comment
Share on other sites

 

I don't know how GPL might actually run from VRAM. I just know (from the manual, at least) that Schmidt's linker is not doing that. It is setting up a GPL simulator that walks through GPL byte code loaded into RAM space and interprets it. It is limited to 4 banks that are menu-selected, so I doubt that the GPL can be written to execute as one large GPL program to be run with this simulator.

 

...lee

Hmm using the SAMS and this method would allow a 1Meg GPL Program that could be a combination of GPL and Embedded Assembly.

(Much like the current mega cart available with many programs and software.)

 

I have already proven that GPL does of great job of managing pages of the SAMS with GPL in RXB.

 

  • Like 1
Link to comment
Share on other sites

Hmm using the SAMS and this method would allow a 1Meg GPL Program that could be a combination of GPL and Embedded Assembly.

(Much like the current mega cart available with many programs and software.)

 

I have already proven that GPL does of great job of managing pages of the SAMS with GPL in RXB.

...

 

Great!—but, that is not running GPL byte code from VRAM. You said you do it “by some small memory tricks”. Could you explain how you do this? Do you change a GPL workspace register to point to VRAM for the next GPL byte? Given that writing a VRAM address starts with the LSB and writing a GROM/GRAM address starts with the MSB, how do you pass the VRAM address to the GPL interpreter for the next GPL byte when that byte is not the one ready for reading after autoincrement from the previous read?

 

...lee

Link to comment
Share on other sites

Great!—but, that is not running GPL byte code from VRAM. You said you do it “by some small memory tricks”. Could you explain how you do this? Do you change a GPL workspace register to point to VRAM for the next GPL byte? Given that writing a VRAM address starts with the LSB and writing a GROM/GRAM address starts with the MSB, how do you pass the VRAM address to the GPL interpreter for the next GPL byte when that byte is not the one ready for reading after autoincrement from the previous read?

 

...lee

Not a problem, since the 9918 also has an autoincrement reading, maybe its time for refresh'ing course, this one is good read:

 

http://spatula-city.org/~im14u2c/vdp-99xx/e3/1980_Arizona_Technical_Symposium_Draft.pdf

 

And if you scroll down to page 14 you will see from TI Guru himself 'Karl' that he mentions right there how well the VRAM can be used by the interpreter.

 

In fact TI BASIC does that also, auto reading each byte out of VRAM to decode the opcode bytes of your BASIC program.

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