Jump to content
IGNORED

NEWB questions: carts, BASIC flavors, graphics


ceratophyllum

Recommended Posts

I am a little confused about why people want to build cartridge hardware to put new TI994/A software on. Isn't it easier just to distribute E/A object files on disk(real or emulated)? I mean practically every game cart in the "Modules on Disk" collection works fine LOADed with GPL simulator from disk. I never had a GRAM kracker back in the 80s and, judging by how expensive & rare they are on eBay, probably never will get one. However, I like using a REAL old TI994/A with it's HAL9000-looking PEB. (NanoPEB is fun, too. :)) It is definitely a priority for me to be able to program on a real TI.

 

What I'm after: the easiest way to write graphics programs on a real TI. Currently, I'm goofing around with 1D cellular automata (Rule 30, 90), the logistic map, and looking for other computationally cheap-ish fractal(?) thingies. (Trees? Koch Snowflake?) I'm studying assembly using a 2XAA powered-MiniMemory and M.S. Morley's book, but this is a long, uphill battle.... (I know there are other books, some using E/A, but I find Morley's writing easy to understand. So far...)

 

So I see there is/has been all this work on RXB, super XB, Cortex Basic, rumors of XB3, etc. The only one I can actually try out on my REAL TI is Cortex because it is on a disk image as an E/A, funnelweb+XB, MiniMemory loadable object file. I really like Cortex's PLOTting abilities: the syntax is concise (Plotting a line is just PLOT x1,y1 TO x2,y2. Make a circle by plotting cos, sin wrapped in a for loop.) and it seems about twice as fast as the Missing Link which is just, well, too kludgy & copyright-encumbered anyway. In addition, PLOT produces output immediately, unlike super XB and does not (annoyingly) clear the screen when the program ends.

 

Can I somehow dump other BASIC cart images in an emulator to disk images using a GRAM Kracker RPK in emulation? Is there a guide for this some place? Has it been done?

 

Or is there a way outside of emulation to convert from RPK to E/A (or Minimem) loadable object file?

 

Can RXB plot pixels in 191x255 mode?

post-28728-1300117370_thumb.jpg

Link to comment
Share on other sites

Hey cerato! Carts are fun because you don't need a PEB or nanoPEB to run the games... Just plug and play. As far as writing for disks, absolutely--- it is the easiest way to write games in virtually any language. Most or all of the games we have written here load from disk with either an XB or EA cartridge, so if you have those, you can write anything you want and load 99.999% of all TI software.

 

If you're planning on working with assembly exclusively, I have a few suggestions for you. First, check the development resources thread at the top of the forum. There you will find a book by Lottrup called Beginners Guide to Assembly or some such thing. This is a fantastic book and was originally geared towards mini-mem assembly. I have to tell you, though--- mini-mem assembly is limited and difficult.... Get an EA cart and get familiar with Classic99. It will help quite a bit in the early stages here.

 

Another suggestion is to find Matthew180's "Assembly My Way" thread in this forum.. It's full of excellent information and a great place to start.

 

If your focus is arcade-style games, retroclouds has released "SPECTRA2", an assembly library for building games in TMS9900 assembly.

 

If you're interested in writing in assembly, XB, BASIC, or almost any other language, Classic99 is the tops, IMHO... I'm a real hardware guy, myself-- so I certainly understand your desire to work on real iron... That being said, working in emulation for at least part of your development gives you so much freedom and editing becomes a breeze. You can wear the old disk drives out in the PEB with a constant "EDIT, Assemble, run, debug, repeat until you're insane" routine. But it is certainly an option.

 

If you have the nano-PEB, this is simpler, but still nowhere near as efficient as coding in Notepad++ and assembling in Classic99 or any assembler of your choice. Cuts your time literally in half 10 times over.

 

Glad to see you here--- I hope this helped, and please ask questions, as there are far more brilliant minds here than I who would be more than willing to help! Welcome!!!!!

Link to comment
Share on other sites

BTW, all the BASIC games in the BoCC run without cart of any kind.. Tursi just wrote the BASIC cart builder for the BoCC, and the only one that has been made into a cart (so far) is Aperture.

 

If you like graphing stuff, check out sometimes99er's new thread "Sinusoid". Pretty cool stuff!

 

If you're into real hardware, you really need XB and EA cartridges... They are emulated in Classic99, but the physical carts come up on eBay all the time, sometimes for a song. ;)

Link to comment
Share on other sites

Would it help to have some tutorial videos on getting started? I've made about 50 TI-99 info/tutorial videos and put them on my YouTube channel, but many are geared towards very specific subjects that have popped up over the years... If you have anything you'd like to have clarified for you, let me know... I'd be more than happy to make you some educational vids, and if it's out of my league, there are many here who would also be willing to help. As far as I can tell, you're relatively new to the TI, so there's lots of stuff to learn in the first stages. =)

 

BTW, my YouTube account name is "Opry99er" if you would like to take a glance.

Link to comment
Share on other sites

I am a little confused about why people want to build cartridge hardware to put new TI994/A software on. Isn't it easier just to distribute E/A object files on disk(real or emulated)? I mean practically every game cart in the "Modules on Disk" collection works fine LOADed with GPL simulator from disk. I never had a GRAM kracker back in the 80s and, judging by how expensive & rare they are on eBay, probably never will get one. However, I like using a REAL old TI994/A with it's HAL9000-looking PEB. (NanoPEB is fun, too. :)) It is definitely a priority for me to be able to program on a real TI.

 

What I'm after: the easiest way to write graphics programs on a real TI. Currently, I'm goofing around with 1D cellular automata (Rule 30, 90), the logistic map, and looking for other computationally cheap-ish fractal(?) thingies. (Trees? Koch Snowflake?) I'm studying assembly using a 2XAA powered-MiniMemory and M.S. Morley's book, but this is a long, uphill battle.... (I know there are other books, some using E/A, but I find Morley's writing easy to understand. So far...)

 

So I see there is/has been all this work on RXB, super XB, Cortex Basic, rumors of XB3, etc. The only one I can actually try out on my REAL TI is Cortex because it is on a disk image as an E/A, funnelweb+XB, MiniMemory loadable object file. I really like Cortex's PLOTting abilities: the syntax is concise (Plotting a line is just PLOT x1,y1 TO x2,y2. Make a circle by plotting cos, sin wrapped in a for loop.) and it seems about twice as fast as the Missing Link which is just, well, too kludgy & copyright-encumbered anyway. In addition, PLOT produces output immediately, unlike super XB and does not (annoyingly) clear the screen when the program ends.

 

Can I somehow dump other BASIC cart images in an emulator to disk images using a GRAM Kracker RPK in emulation? Is there a guide for this some place? Has it been done?

 

Or is there a way outside of emulation to convert from RPK to E/A (or Minimem) loadable object file?

 

Can RXB plot pixels in 191x255 mode?

 

 

Yea you could do that but no routines are built in for doing that as very little memory is left for XB when in bit mapped mode. Also any EA Object file has to live in lower 8K only otherwise XB is stuck with on using VDP and that is tiny to write programs in as you also use that area for strings and disk buffers and video mode memory map of graphics mode that XB runs from. Even the AMS would make XB a cobbled together mess to make work.

90% of the software for the TI is in Cartirdge form, most has been ported over to ROMS then RAM but they are all still GPL code ported over as GPL will run from RAM/ROM/GRAM/GROM/VDP and even DSR space if you put it there, this is built into the TI OS.

There used to be several kits to turn old cartridges into one bank GRAM devices so you could load and run any cartridge and customize them. The SuperCart was very popular(I have one still) but you only had 4 4K banks of RAM, later version had 4 8K banks.

The problem is people want to run Assembly which is fine, but you are stuck with the limits it imposes. GPL can run from any memory fine, but XB requires a special environment.

 

If you want the RYTE DATA Linker will link GPL Object code into a chain and use in the 32K or even DSR space. All the stuff I am telling you about was done just a couple of years after the TI was put on the market, I bought mine in 1983 and these guys were doing this in 1981.

Link to comment
Share on other sites

Rich... I'm no expert... by any means. But wasn't GPL written in assembly language? Wouldn't this mean that coding in assembly is "talking" directly to the chips?

 

You'll have to forgive my ignorance... I never understood GPL or why/how it was implemented. It seems to me, though, that a more direct approach to programming would be to code in assembly... In that way, you have 100% freedom, and the fastest environment available

 

Again, I'm just asking questions, not making claims. =) I'm genuinely curious about this, as GPL has been a point of contention in the past. Some (who have far more knowledge than I) believe that TI BASIC is as slow as it is because it is double interpreted (GPL and TMS9900). Any thoughts?

 

I think having the perspective of the last remaining GPL programmer would add quite a bit to this debate. =)

Link to comment
Share on other sites

I am a little confused about why people want to build cartridge hardware to put new TI994/A software on.

I often wonder why I bother with the TI-99/4A, but I guess we all have something that makes us come back. Reliving whatever. Back in the day I thought it extremely cool being able to slide in a cartridge and almost instantly being able to play whatever it was. To do something like that, make a game, put it in cartridge format, make box and cover art, seeing your name on the darn thing, sell a few copies - now that is something to die for.

 

:)

Link to comment
Share on other sites

The problem is people want to run Assembly which is fine, but you are stuck with the limits it imposes. GPL can run from any memory fine, but XB requires a special environment.

I don't really see Assembly imposing limits. Obviously it can be economical to program in GPL, since the console ROM supports it. Behind the scenes, both GPL and Assembly are executed as machine code, placed in memory available to the CPU. Similar to GPL I could construct data controls or bytecode, place it elsewhere, and then abstract to say my Assembly program was running from another memory.

 

:)

Link to comment
Share on other sites

Opry99er, I've already watched a bunch of your videos on Beryl R. & serial file transfers. They really helped get me going: Beryl is inspiring and, well, I'd never heard of MagicFM before watching your videos. The use of the music is really cool...I'm reminded of a funny version of the Dukes Of Hazzard Theme where Waylon Jennings sings "they keep showing my hands & not my face on TV." I mean that one never sees the narrator in your videos.

 

I'm at a very beginning level with assembly. I haven't done much except type in short examples, see what happens, and study books. How do I plot a single pixel at some screen location x,y? I can't find a single example of this and I've found assembly code for practically everything else but the kitchen sink. Why is plotting so slow, even in assembly?

 

In the manual to his Chaos Musings (http://tigameshelf.net/Chaos.pdf) Walid Maalouli says it takes his assembly program about 6 minutes to plot the picture of the logistic map. Holy smokes! Cortex can plot the same thing in about the same amount of time. Btw, this program is adapted from Stephen Shaw's TI99 pages. Try it!

 

5 REM RUNS IN 5-6 MINUTES
10 COLOUR 14,7: REM HOW TO CHOOSE NEAT COLOR SCHEME?
60 FOR C=-2 TO 0.25 STEP 0.00625
70 X=0
80 X=X*X+C: IF I<50 THEN GOTO 95
90 PLOT 160*C+320, 90-45*X 
95 NEXT I
97 NEXT C

post-28728-130015041417_thumb.jpg

Link to comment
Share on other sites

Rich... I'm no expert... by any means. But wasn't GPL written in assembly language? Wouldn't this mean that coding in assembly is "talking" directly to the chips?

 

You'll have to forgive my ignorance... I never understood GPL or why/how it was implemented. It seems to me, though, that a more direct approach to programming would be to code in assembly... In that way, you have 100% freedom, and the fastest environment available

 

Again, I'm just asking questions, not making claims. =) I'm genuinely curious about this, as GPL has been a point of contention in the past. Some (who have far more knowledge than I) believe that TI BASIC is as slow as it is because it is double interpreted (GPL and TMS9900). Any thoughts?

 

I think having the perspective of the last remaining GPL programmer would add quite a bit to this debate. =)

 

 

I wrote several articles for Micropendium magazine and I think this in the one that answers your question:

 

ftp://whtech.com/magazines/micropendium/mp9212.pdf

 

Look for the Article I wrote called COMPARING LANGUAGES it compares XB, GPL and Assembly. I wrote another for Forth and C but those were never published.

 

Over all with Emulators GPL no longer has any drawbacks when you time Assembly and GPL the old chip interface no longer exists so the slow GROM chips are no longer a problems so GPL and Assembly are close to same speed. The timing slow down does not need to exist in a Emulator.

(With a 2.93Ghz Quad Core computer like mine how would you ever notice)

Link to comment
Share on other sites

Remember too that in the TI architecture, floating point arithmetic (such as your example) takes more time to execute than integer-based arithmetic. =)

 

I'm pretty sure sometimes99er will be able to help you more on this... He is really a pixel master. =) And he's been working on graphing stuff lately.

 

If you were to use bitmap mode, and think NOT about plotting to a screen, but to a 2 dimensional array, I bet you could come up with some interesting results... of course bitmap isn't simply dots on the screen... there's pattern AND color data which take up roughly 6k a piece (for a total of 12k per bitmap image), given the screen resolution.

 

Someone with more technical knowledge in this field would probably be more suited to answer your questions. =) In the meantime, check out "Tadataka" in the Programming resources thread. It's a bitmap editor (not sure if it ever got completed) and it might at least help by giving you a "graph paper" to work with.

Link to comment
Share on other sites

single pixel at some screen location x,y?

 

Plotting in standard graphics mode (GMODE1) only gives you 768 screen positions... and in assembly, there really isn't a built in "X,Y" parameter anyway... In assembly, the screen positions are linear... Screen position (1,1) is actually "0"... Screen position (2,1) is actually "32". It's easy enough to create your own constructs, though... Using 2 registers to calculate a single linear screen position (such as 1,5)is as simple as adjusting for the 0 offset in your column and row (column 5 becomes column 4, row 1 becomes row 0) and:

 

(total hack job pseudo-code)

 


    LI   R3,0   *row
    LI   R4,4   *column
    MPY  R3,32  
    AI   R3,R4

*LI is "load immediate"
*MPY is "multiply"
*AI is "add immediate"

 

 

This takes your row (contained in register 3) and multiplies it by 32... giving you the starting screen location of the proper row. Then it takes the new value contained in R3 and adds the column value (which you loaded into R4) to give you the screen location...

 

 

Try it with other values like (6,5)... (which becomes 5,4) This becomes screen position 164 (off the top of my head... no calculator handy) =)

 

 

Again, it's hacked up, and it might not even help... but someone I'm sure will explain it much better than I have. =) Happy hunting, and good luck!

Edited by Opry99er
Link to comment
Share on other sites

I am a little confused about why people want to build cartridge hardware to put new TI994/A software on. Isn't it easier just to distribute E/A object files on disk(real or emulated)?

 

Easy isn't important. :) For my point of view, I always wanted to make cartridges, and now I can. Beyond that, everyone with a console can run cartridges, not everyone with a console has a disk unit.

 

Tursi just wrote the BASIC cart builder for the BoCC, and the only one that has been made into a cart (so far) is Aperture.

 

How quickly people forget the awesome that is Hyper Racer! (Which, oddly, I can't find here in the forums anymore....)

 

Over all with Emulators GPL no longer has any drawbacks when you time Assembly and GPL the old chip interface no longer exists so the slow GROM chips are no longer a problems so GPL and Assembly are close to same speed. The timing slow down does not need to exist in a Emulator.

 

Only the emulators that don't care. ;)

 

GPL can be fairly fast, but the smallest GPL instruction takes 17 assembly instructions. On the other hand, it takes one byte while the corresponding assembly opcode takes two. The point is that GPL has an overhead that will cause it to be slower than assembly, if both programs are written to a specific task. However, well written GPL that minimizes the use of low level functionality (ie: instructions that would take one assembly instruction like INV) can approach the speed of assembly, because the larger and more complex routines are written in assembly anyway.

 

One thing I've noticed after spending a lot of time in the GPL interpreter is that it does a lot of fairly inefficient things. Sometimes this is clearly for saving space, but sometimes I'm just left scratching my head. I've often wondered how much quicker a newly written GPL interpreter could run. :)

Link to comment
Share on other sites

Nope... Hyper Racer. It's one of Tursi's games. =) I said it before... it has some real potential to be a wicked game. I think it was a proof of concept Tursi was working on, and it came out really nice. =) I have a copy of it... With Tursi's permission, I'll re-post it. The cart version. =)

 

Actually... here's the link to the thread.

 

http://www.atariage.com/forums/topic/172427-basic-on-cart-contest-bocc/page__view__findpost__p__2145624

Edited by Opry99er
Link to comment
Share on other sites

How do I plot a single pixel at some screen location x,y? I can't find a single example of this and I've found assembly code for practically everything else but the kitchen sink. Why is plotting so slow, even in assembly?

 

I have an essay that might help a little. I'll get it posted tomorrow.

Link to comment
Share on other sites

Yeah, that's the thing, what happened to my thread? I had all that posted here somewhere... :)

 

Ah well, here is the flyer I made:

 

post-12959-130017512214_thumb.jpg

 

It was an entry in the Crap Games contest. My reasoning was a throw back to games that looked awesome and had so much potential, and were SO disappointing when you actually played them ( you have to play it to see ).

 

The original program was just a little TI BASIC demo I did for our user group way back in probably '87 or '88 to show TI BASIC could do stuff. I tweaked it into a playable little 'game' and saved it as cartridge to hide its origins (and test the code I was writing for Owen's contest ;) ).

 

It was fun, but there is no way to extend it, at least not in TI BASIC. There are no color sets left for turns or even cars in other lanes. Of course the whole thing could be redone in assembly and all the issues of this version go away. ;)

Link to comment
Share on other sites

Hello all first posts here for me ever. Where to start, lets me start by saying last week on my new job I was googleing around on the web. All different types of topics but one was on old computers. First I started with computers I had back in the day and was surprised to see how much information was out on the web about retro computing. Found info on my first computer at school the PET. I was in 4th grade. Monochrome all the way but had two 5 1/4 drives. Did not know that Commodore put them out, hum? After that I thought about the second computer I would get. The story began when my Aunt got my uncle a new computer. A TI 99/4A was his new gift in 1983 and I was able to touch the keys and play some games. Shortly after that my mom got my dad the same personal computer the TI 99/4A and we had our first home computer with added speech, and a tape drive to back up our creations. Mom could spend the money only because Texas Instruments was stopping production and prices dropped. Our family used the TI all the time. Our parents’ friends would come over at night to write programs like card games, low level arcade shooting games, and some practical account record keeping system. After years with the TI + speech and a tape drive I decided I need more stuff. Needed $ and so i got a job cleaning out a reception hall and cutting grass. Around middle of 8th grade had $400 and hit the classifieds in the local paper for used computers. In 1986 found an old TI 99/4A with Expansion Box and software $600. Called and my dad drove me up to look at the computer, Nice home with a father, mother and son (around 15 years in age). The father was in education. He worked with the Texas Instrument education program for teachers. He showed me the computer and some of the stuff that it did. It was complete and had more than ours at home; I wanted it as soon as I saw it. I told him he had what I was looking for and had $400 with me and asked if he would let me work and make payments for the rest and he said that what I had would be good. I had my first computer of my very own. Ok back to today, after 19 years in storage in the basement my TI is in front of me right now. What made this change happen? It’s because of this forum with the in-depth stories, future projects, technical expertise and great links to the web and your own personal pages. Thank you. Like I have said before, I have been reading you all week and I’m here today. I have many questions about how to bring a TI back to life after 19 years without power. I’m sure batteries are dead in some items? Or even worst batteries that leek. I will provide a catalog of what I have before powering it on so I can pick some brains. I know this is a long post and I’m not sure if this post is in the correct thread to be stating this info. I would like to help here. I love computer graphic, gaming, desktop publishing and did do networking with most of my MCSE training behind me. I’ve downloaded classic 99 and Win994a simulator and or emulator last week and have been playing since. I don’t get all the terms on the TI sites. I think a lot of it is because I have no base to refer to. XB = extended basic, cart = solid state cartridges those are easy one’s but others no clue. Like the video F18 board idea, and the exchange program. Never connected a TI to a PC before saw that here and YouTube. Can the Expiation Box support any networking hardware or network protocols’? In the past I have also worked on Commodores, Apples, Amiga, and many PC IBM clones. Today I use 9 different PC’s with different operating systems from Windows, DOS, UNIX, Linux, and BeOS, OSR2. Have an iMAC , iPad and iPhone. I can say I’m a computer user and love it. Retro computing here I come. :love:

END OF LINE

Link to comment
Share on other sites

Welcome friend!! You are indeed in the right place for re-starting your TI journey. :)

 

I would suggest starting your own thread with specific questions as you get more information and become more versed in the computer, but this is a great place to start. The TI does not run on batteries, but certain peripherals do, and certain cartridges do ad well. (Mini memory being one)...

 

Assuming your computer isn't damaged, it should power right up, giving you immediate access to modules you own. If you do not have Extended BASIC, you can program in console BASIC which is built right into your TI. :)

 

Glad to see you here, and I look forward to seeing your components list. It will give us some info on how to get you up and running in whatever way you wish to use your TI. It's a great computer, and this is a strong and helpful community--- and we're glad to have you onboard!

Link to comment
Share on other sites

As to your "networking" question--- the current answer is "kind of." if your PBox has an rs232 card in it, you can use that for file transfers and simple line feeds--- you can also connect to "The Hidden Reef," the last remaining BBS for the TI (running on a TI, no less). :). Just need a modem, and you're in business. :)

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