Subject: BASIC on Cart Contest

From: Owen <[email-masked]>
Date: Tue, 15 Feb 2011 03:37:23 -0500

Announcing the winner of the 2011 BoCC (BASIC on Cart Contest)... Adamantyr for his unbelievable game, "Aperture." There were 6 entries and all were quite impressive for TI BASIC.  The entries were: (and in no specific order)

1) Dedalus--W. Maalouli
2) Aperture--A. Haase
3) BloxoTIz--Howie Uman
4) Beryl: Search For Minerals--sometimes99er
5) Sokoban--Lucien Baumann
6) Smart Ball--Alessandro Betori

6 truly quality games for TI BASIC all released within a month of one another by good solid programmers.  Wonder if these 6 represent the bulk of all TI-console BASIC programming in the 21st century... 10 years so far.  :)

Anyway, the winner gets his game put onto cartridges and the recognition.  Adam's game is really the best piece of console BASIC programming I've ever seen personally... But he is quite modest about it.  :)

Firebrandmusic.net

---

From: fdos <[email-masked]>
Date: Tue, 15 Feb 2011 08:43:47 -0700

Owen,

I don't suppose my programs written using TI BASIC+ count in such "pure" 
minimal hardware contests due to expansion memory requirements?

Bill S

---

From: Owen <[email-masked]>
Date: Tue, 15 Feb 2011 12:17:13 -0500

True... Contest rules were very rigid on "completely unexpanded console--must load from tape".  ;)

It was a great contest... Keep your eyes open for the compendium which I will upload to this list. 

Firebrandmusic.net

---

From: Keith Bergman <[email-masked]>
Date: Tue, 15 Feb 2011 12:20:02 -0500

This was a great contest.  I wasn't able to finish my entry due to work
commitments, but forcing yourself to work in the "box" of TI BASIC is quite
an interesting mental exercise.  I still hope to finish my game for the heck
of it, at some point soon.

And if you haven't downloaded these games and tried them, particularly
Adam's, you're missing out.  What "Aperture" accomplishes in console BASIC
is pretty extraordinary.

On Tue, Feb 15, 2011 at 12:17 PM, Owen <[email-masked]> wrote:

> Firebrandmusic.net <http://firebrandmusic.net/>
>
>
> > Announcing the winner of the 2011 BoCC (BASIC on Cart Contest)...
> Adamantyr for his unbelievable game, "Aperture." There were 6 entries and
> all were quite impressive for TI BASIC. The entries were: (and in no
> specific order)
> >
> > 1) Dedalus--W. Maalouli
> > 2) Aperture--A. Haase
> > 3) BloxoTIz--Howie Uman
> > 6 truly quality games for TI BASIC all released within a month of one
> another by good solid programmers. Wonder if these 6 represent the bulk of
> all TI-console BASIC programming in the 21st century... 10 years so far. :)
> >
> > Anyway, the winner gets his game put onto cartridges and the recognition.
> Adam's game is really the best piece of console BASIC programming I've ever
> seen personally... But he is quite modest about it. :)
> >
> >
> >
> >
> > Firebrandmusic.net <http://firebrandmusic.net/><http://firebrandmusic.net/>
> >
> >
>
>  
>

---

From: fdos <[email-masked]>
Date: Tue, 15 Feb 2011 11:11:35 -0700

Loading from tape is not a problem nor is hiding 32K in the TI console. 
  Am I getting close? :-)

Bill S

On 2/15/2011 10:17 AM, Owen wrote:
> On Feb 15, 2011, at 10:43 AM, fdos<[email-masked]>  wrote:
>
>> Owen,
>>

---

From: fdos <[email-masked]>
Date: Tue, 15 Feb 2011 11:18:49 -0700

As soon as I can find some spare time I'll download and take a look. 
I'm not really much of a gamester, however.

Bill S

On 2/15/2011 10:20 AM, Keith Bergman wrote:
> On Tue, Feb 15, 2011 at 12:17 PM, Owen<[email-masked]>  wrote:
>
>>
>>
>> Firebrandmusic.net<http://firebrandmusic.net/>
>>
>>
>>> Firebrandmusic.net<http://firebrandmusic.net/><http://firebrandmusic.net/>
>>>
>>>
>>
>>
>>
>

---

From: Gregory McGill <[email-masked]>
Date: Tue, 15 Feb 2011 10:25:18 -0800

Aperture is too cool..  here's a utube i did of playing an earlier version
on myarc xbii :-) He since took out the fancy animated startup screen to use
that ram for levels.

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

Greg

---

From: Owen <[email-masked]>
Date: Tue, 15 Feb 2011 13:27:54 -0500

Hehehe... Afraid not.  For this contest, we are making a BASIC cartridge.... :) It takes a snapshot of the memory map as the game begins executing and we're dumping that data to EPROM.  Should work brilliantly.  Tursi wrote a great program to do this.  :). I'm interested in BASIC+ though... Does it require SAMS support?

Once TF and/or XForth99 are done, we'll probably do a Forth programming contest.  :)

Firebrandmusic.net

---

From: Keith Bergman <[email-masked]>
Date: Tue, 15 Feb 2011 13:30:31 -0500

Thanks for putting up that video, Greg!  Always nice to have some
easy-to-access examples of the good work being done in this community.

I think even for the non-gamers out there, these are some pretty interesting
programming exercises.  The speed and fluidity of execution, the compact
code... all good stuff to see, even if you don't get into beating the game
or achieving a high score.

Reeeeeally hoping I can make some time this week to work on mine.  These
periods of TI inactivity bum me out.  :/

On Tue, Feb 15, 2011 at 1:27 PM, Owen <[email-masked]> wrote:

>
>
> Hehehe... Afraid not.  For this contest, we are making a BASIC
> cartridge.... :) It takes a snapshot of the memory map as the game begins
> executing and we're dumping that data to EPROM.  Should work brilliantly.
>  Tursi wrote a great program to do this.  :). I'm interested in BASIC+
> though... Does it require SAMS support?
>
> >>> Anyway, the winner gets his game put onto cartridges and the
> recognition. Adam's game is really the best piece of console BASIC
> programming I've ever seen personally... But he is quite modest about it. :)
> >>>
> >>>
> >>>
> >>>

---

From: Gregory McGill <[email-masked]>
Date: Tue, 15 Feb 2011 10:32:39 -0800

I'd still like to see your entry if you ever finish it Keith :)

Greg

On Tue, Feb 15, 2011 at 9:20 AM, Keith Bergman <[email-masked]>wrote:

>> > <http://firebrandmusic.net/>Firebrandmusic.net<http://firebrandmusic.net/>
>> >
>> >
>>
>>
>  
>

---

From: "Jon Vogel" <[email-masked]>
Date: Tue, 15 Feb 2011 13:01:45 -0600

Owen,

Since BASIC programs on an unexpanded TI live in the VDP RAM, how are you doing this?  It sounds interesting and I'd like to understand the process.

Regards,

Jon

From: Owen

---

From: tursi <[email-masked]>
Date: Tue, 15 Feb 2011 11:20:08 -0800 (PST)

Hey Jon - since I wrote this program, I figured I could jump in here.

The first step is emulation, of course. Classic99 is used to do it. To 
pick a point at which to save, I currently instruct Owen to add a dummy 
"CALL SCREEN" somewhere near the beginning of the program, and to add a 
breakpoint on VDP register 7 that reflects the output of the call.

When the emulator breakpoints, we then know exactly what BASIC was up to 
at the time. Classic99 is instructed to dump memory.

I then wrote a little tool that reads in the memory dumps and creates a 
cartridge to copy the data into the right place, just like we did with the 
E/A#5 carts. In order to fit in 16k, the cartridge saves all of VRAM 
except for the screen (768 bytes). In the space made available by skipping 
the screen lives the program, and a dump of all 256 bytes of scratchpad.

The program then sets up the TI BASIC environment in the VDP registers 
(which is hard coded to match the start of a TI BASIC program), clears the 
screen, copies all the VRAM data out, and then copies all the scratchpad 
memory. The first two words of scratchpad memory are manually copied 
without using registers in order to obtain complete coverage, and then the 
code sets the workspace and jumps into the GPL interpreter to "continue" 
running BASIC. 'CALL SCREEN' was chosen because it's an easy thing to 
trigger on, and analysis of the code suggested that I did not have to 
worry about the CPU status register.

I am considering adding that functionality to Classic99 just to simplify 
the process... no promises yet though! :)

It occurs to me that the jump back into TI BASIC is absolute.. I know GROM 
0 changes, but were the TI BASIC GROMs consistent? We probably should make 
sure of that before Owen releases the cart. :)

> Since BASIC programs on an unexpanded TI live in the VDP RAM, how are you doing this? 
> It sounds interesting and I'd like to understand the process.
>  
> Regards,
>  
> Jon
> 
> Hehehe... Afraid not.  For this contest, we are making a BASIC cartridge.... :) It
> takes a snapshot of the memory map as the game begins executing and we're dumping that
> data to EPROM.  Should work brilliantly.  Tursi wrote a great program to do this.  :).

---

From: Owen <[email-masked]>
Date: Tue, 15 Feb 2011 14:55:26 -0500

Thanks for describing the details, Tursi.  :). I guess "snapshot" as I put it, isn't all that descriptive.  :) I'm a creative thinker, not so much a critical one.  :)

Gotta say, I never would have thought this possible in this way--- When I was thinking "BASIC on cart," I was mainly thinking of storing the actual BASIC listing into cart and inputting it via the cart port... However, this method is just amazing.  :) All the setup time at the beginning of a BASIC program is gone.... 

Press 2) for Aperture and boom!!!! You're playing.  :). The quality of this game will really blow people's minds I think. This console BASIC game is better than many of TI's cartridge games of the early 80's.  Adam really outdid himself here.  :)

Firebrandmusic.net

---

From: "Jon Vogel" <[email-masked]>
Date: Tue, 15 Feb 2011 15:25:33 -0600

Cool, Tursi.  Thanks for the explanation.  I paraphrased all of what you wrote to "we have a little loader program in the cartridge that shoves the BASIC program into the VDP memory and sets up the rest of the computer."  Sweet.

Regards,

Jon

From: tursi 
Sent: Tuesday, February 15, 2011 1:20 PM
To: [email-masked] 
Subject: Re: [TI994A] BASIC on Cart Contest

---

From: fdos <[email-masked]>
Date: Wed, 16 Feb 2011 08:31:37 -0700

I can save the VDP program part in a Super Cart using BCART.  Therefore 
it is a BASIC cartridge except for the AL code.  Maybe I can use a Super 
Space II cartridge with 32K, and hide the AL code in the other 8K banks. 
  Innovation should be worth something in a contest, no?

I remember back in my drag racing days I knew full well the Chevy guys 
were running 327" and claiming 283" against my 289" Mustang, but unless 
I put up the bucks for an engine tear down I couldn't challenge them. 
Couldn't we have something similar in this contest?  I'm looking for 
some revenge on somebody. :-)

TF is coming soon, but X4th99 is a long ways off.  A game contest in 
Forth should produce some incredibly fast complex games for the gamester 
crowd.

Bill S

On 2/15/2011 11:27 AM, Owen wrote:
> On Feb 15, 2011, at 1:11 PM, fdos<[email-masked]>  wrote:
>

---

From: fdos <[email-masked]>
Date: Wed, 16 Feb 2011 08:42:35 -0700

Owen,

As I just stated in my previous post, BCART installed in a Super Cart or 
equivalent allows TI BASIC programs of less than 8K to be saved and 
"RUN" in the TI cartridge space at >6000 ~ >7FFF and selected from the 
TI menu.  A not so well known very early on "Home Brew Cartridge" 
method.  Works very well--just limited to a single 8K bank.

Bill S

On 2/15/2011 12:55 PM, Owen wrote:
> On Feb 15, 2011, at 2:20 PM, tursi<[email-masked]>  wrote:
>