Jump to content
  • entries
    73
  • comments
    133
  • views
    83,699

Propeller: Atari style text driver.


potatohead

689 views

Edit: No new screenies, but I've got the 128 char font table in the COG now. That means one can have a text display in only .5K of RAM. Actually less, if big chars are adequate.

 

The high bit now selects from either the COG font table (0), or the HUB one. The HUB one will be half-resolution, but 4 colors. Could be the same resolution, but that would impact screen memory access. Essentially, one would then have a non-linear memory mapped screen, with a line length that varies depending on the number of color chars specified. Ugh... At this very moment, it's just 4 colors total. Two for the COG chars, two for the HUB chars, for a total of 4 on screen.

 

Once this pass is complete, then it's back on the overlay project. I've learned a few things about timing that will probably sort the overlay matter out once and for all. If that happens, then sprites --or at the least a nice hardware like cursor becomes possible. That's really why I've left the color timing alone. Overlay is going to be easier with it being static. Gotta walk before running.

 

 

 

 

 

I've really been frustrated with the overlay effort. I *know* two of those Propeller video generators can be made to draw together, but I've just struggled with that a bit too much. So, I'm gonna punt and work on some other stuff I need / want to get done.

 

One of those things is a full on character mode driver, that uses RAM font tables, features variable text sizes and such. Here are a coupla screenies:

 

blogentry-4836-1191341607_thumb.jpgblogentry-4836-1191341633_thumb.jpgblogentry-4836-1191341656_thumb.jpg

 

The multi-color one is what an Atari 8 bit text display would look like, if different color selections were permitted in the high resolution mode. The graphics code uses the same color and pixel timing as the 8bit computers do, but without the limitation on color selection. Some colors are really horrible, others are not bad. I'm eventually going to change that color timing, but not right now.

 

The font is lifted right from an Atari ROM, and is the 128 char international one.

 

Someday, when the overlay gets done, I'll be able to put the player / missile graphics right on top of that, for that A8 bit look. For now though, it's just nice to have a one byte per character, linear mapped screen to write to for debugging and other text kind of things. The memory footprint is already small, and is gonna get really small on the next revision. Ideally, the driver, font and screen memory will consume about 2K, which can be overwritten, once it's up and running on one of the 8 COGs.

 

(On the Prop, nothing executes from main memory. You put the stuff in main HUB ram, then fire up a COG to process it. That data gets copied to the COG, where it runs just fine, leaving the source data available for an overwrite. This is very different, but also very cool, once one gets their mind wrapped around the idea.)

 

That's small enough to power a second display, for debugging, while running other code on the primary one.

 

Today, I think I've got some time to move the font into the COG, and start work on the 4 color mode additions. It's very cool to have the Atari font on the screen. Spent a long time looking at it, and now it's back on some new hardware to tinker with!

 

 

Edit: Thought I would address why. Some have asked in the past, so here it is.

 

First and foremost, because it's there, it's under my control, it's new hardware at the beginning of what looks to be a long life cycle, and it's cheap. The kinds of limitations that make retro computing game art appealing are here on this chip. So, it's cool for me on that basis too. What I'm doing right now is learning, just the same way I did as a kid. Feeds the soul. So, pieces are getting put together, one by one, for greater efforts later on. My setup is portable too. Basically, I've got the chip running on a HYDRA (because that was just easy to get started with), connected to my laptop, through one of those USB capture devices. The whole works just goes into the bag, for tinkering on business travel, or when I have some time.

 

Modern computers are so powerful, the artistic elements exist in a plane well beyond what a single person, or perhaps a few, can leverage and enjoy. Micros, change that for the better, in terms of scale. Getting some extra colors, cramming a game into the RAM, twiddling bits, all are viable and relevant tasks that have meaning in the real world as well as in the retro / game / personal gratification one. I watch the real gurus here, and elsewhere, work their assembly magic and I fear it's going to become a lost art, leaving us with people able to leverage the tech, but never really grokking it at it's fundamental levels.

 

Maybe that's just me too. Either way, I'm having a good time and learning stuff I can apply lots of places. Makes for far more interesting and entertaining business travel as well.

4 Comments


Recommended Comments

I'll have to check out your code.

 

My next first step is to get one cog generating a stable screen using a modified version of my multiple cog code. It won't do anything more than kick out the COG RAM buffer, but that's a start.

 

Then I'll see if I can get two cogs doing the same thing, but overlay the outputs and play with syncronization.

 

Time, she is precious, and I'm spending far too much free time playing Half-Life (for the second time) and watching network TV.

Link to comment
I'll have to check out your code.

 

My next first step is to get one cog generating a stable screen using a modified version of my multiple cog code. It won't do anything more than kick out the COG RAM buffer, but that's a start.

 

Then I'll see if I can get two cogs doing the same thing, but overlay the outputs and play with syncronization.

 

Time, she is precious, and I'm spending far too much free time playing Half-Life (for the second time) and watching network TV.

 

I'll have a much cleaner version posted up today on the parallax forum. I've used Cardboardgurus EASY_NTSC as a template to get started. That bit of code really helped me huge actually. The only thing I really don't get at this point is how to choose my color phase. Pixel, line and static color timing are all cake now. I get stable screens with nearly any pixel combinations I want. Took a while, but it's there.

 

The color bit is really frustrating. The Parallax driver does it exactly right, yielding the max NTSC color resolution output, but I don't yet understand how to incorporate that into the code I'm building on. For now, I'm gonna clean up and use the base I have. There is lots to do. I've been reading the NTSC docs and see now the sync varies every other scanline for a fully standards compliant output. Clearly the non-interlaced variation on that can still have the color interlace happening. The C64 does this nicely...

 

For now, I'll make some progress on building better screen logic. This driver is gonna have it's core font in the COG. The high bit, instead of being inverse, Atari style, will trigger a read from a 4 color HUB resident font, that will be optional. Don't set the bit, don't need the font to be there kind of thing. The result will be two color text, mixed with 4 color text, addressable on a char by char basis. Nice and lean, and useful for a lot of things, like small areas of live graphics.

 

Most of the text drivers I've seen contributed are nuts! They do leverage the font in the prop ROM, but focus on storing addresses and colors in the screen memory. This makes lots of simple things harder than they need to be, or it's just me wanting to do things the way I like to do them. The older computers had it right, IMHO. Put the font somewhere and have the screen memory just be values that address it in various ways.

 

***I've gotten stuck on HALO III. My brother in law just snagged a really great HDTV. Spent last weekend gaming with him, after hooking the whole works up. He's just not up for that. He prefers to buy food and drinks, pile the stuff in a corner and invite people over to make it all go! Of course, this is a win-win for me usually. Good eats, some fun gaming and a chance to play with some new toys.

 

I find the level of detail possible in real time simply amazing. It's almost too good really. Hear you on the gaming.

 

Re: Network TV. I've nearly bagged on that. I have a PVR (it's a nice old Replay TV) and record stuff to consume in discrete blocks. It's really changed how I do television. Instead of working around some goofy network schedule, I record stuff I think has value, then fit the best of it into a viewing time. This is usually in the later evening, after the kids have wound down, and the wife and I want to just enjoy the tube. We commercial skip, pick and choose, and generally get a lot of stuff done in a coupla hours.

 

I almost can't watch live TV, but for sports events, anymore. Too many commercials. Actually, that's not honest. I don't mind the commercials all that much, but they are just getting really aggressive in terms of their sound. When it gets annoying, they do get their attention, but I also tend to adapt away from that. Where did all the good, creative AD producers go. I miss those guys. Laughing at a great AD is fun. Having to grab the control to deal with one that's just over the top loud and annoying, just isn't.

 

The average network program runs 35-40 minutes here in the states, once the commercials are stripped out of it. We usually hit 45, letting some of the nicer spots through, just because.

 

A two hour viewing time then really allows us to bag on a bad pick, after sampling, then really get into two good ones. The only way to go, IMHO.

 

BTW: Take the time you want with the demo board. It's not a worry on my end. Just thought you would enjoy it, when the mood strikes.

Link to comment

PVRs are nice aren't they. I have a TiVo dual tuner (upgraded to 300GB) in the bedroom and an old Sony TiVo in the family room to manually record stuff from the digital channels the other doesn't get. I don't think I've watched any primetime TV live in over a year. And DVDs mean I seldom go to the theater.

Link to comment
PVRs are nice aren't they. I have a TiVo dual tuner (upgraded to 300GB) in the bedroom and an old Sony TiVo in the family room to manually record stuff from the digital channels the other doesn't get. I don't think I've watched any primetime TV live in over a year. And DVDs mean I seldom go to the theater.

 

I'm there with DVD's too. A nicely mastered DVD, on a solid display, really is decent. Decent enough to deal, and leverage all my creature comforts at home. And... NO HAVING TO SNEAK QUALITY GOODIES IN TO THE SHOW.

Link to comment
Guest
Add a comment...

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