Shop OBEX P1 Docs P2 Docs Learn Events
AiGeneric TV Text Driver — Parallax Forums

AiGeneric TV Text Driver

Invent-O-DocInvent-O-Doc Posts: 768
edited 2012-07-31 20:05 in Propeller 1
I've been playing around with various tv text drivers and really like AiGeneric.

One problem I have is that my current project uses a 3.5" 4:3 ratio LCD TV that shows all the overscan areas so the display is a bit small from the prop. I also like a text driver that lets me do things in color and changing the background is also a plus.

Questions:
- is there a way to have such a tv driver use more of the horizontal NTSC area (usually reserved for overscan) without upsetting pixel/color timing?
- Does AiGeneric support changing the screen or character background color or do I have to switch to potatohead's driver for that?
(I think potatoheads multicolor text driver uses a lot of cogs or something though - even so, I still want to get to use more of my display width) Thoughts?

Thanks!

Comments

  • potatoheadpotatohead Posts: 10,261
    edited 2012-07-29 12:07
    AiGeneric can be expanded into the overscan fairly easily. It doesn't support full character attributes. That's hard to do in one COG.

    Potatotext 2 does support full attributes, and I think it can also be extended into the overscan, though I've not tried that. It's a two COG driver, with S-video capability, which is recommended for screen displays over 40 columns, if one wants to really use all the color combinations. Composite devices vary in their ability to deal with 64 and 80 column color text.

    Extending into the overscan will take driver tweaks. For AiGeneric, I think these are fairly simple. For Potatotext, they are a bit more involved, due to buffer sizing and such.

    Does your display have an aspect setting of some kind? On those that do, there is often a "full" or "zoom" setting that will better align the safe zone to the display limits. Suppose it's time now to start ignoring that safe zone, or provide an option as so many displays will render nearly a full frame.

    Edit, I'll take a look today. I think I've got a little time. Just came back from a week in the woods! I assume you are pulling AiGeneric from the OBEX? I've not used it in a long time and lost track of where the final or release version was.

    The other difference between the two is character style. Potatotext uses IBM style color attributes. That means one word per character, with one byte the character value, the other byte upper nibble foreground, lower nibble background. Not a big deal, but it does require a tweak to your character out code to deal with words, not bytes for string output to the screen.

    Do you care about odd number of characters per line? Like 47 or 69, etc...? That's the easiest change, keeping character / pixel timing consistent, just changing buffer and loop constants.
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2012-07-29 17:54
    Hi Thanks for the reply (you certainly are the best one to do so!)

    I bought one of those 3.5" LCDs that handles a composite signal perfectly and doesn't even artifact. I don't care specifically about the # of characters per line, odd is fine, but this display has a huge amount of overscan space on the horizontal axis (and it is 4:3, there is no zoom). I can fill up the vertical by going to 26 text lines.

    Any advice on using the overscan space is appreciated. I think I can use either driver. At first, I thought I'd only have one cog free, but looking at how the current project has progressed, there is probably room for a 2 COG driver. I'm checking my design spreadsheet and it budgets for 2 video cogs and I've still got one free.

    (I love your potatotext with the colored atari fonts - doing 20-32 columns looks just like good old graphics mode 3!)

    FYI - I'm building an expansion for an Altair 8800 (either a real one or a briel kit like the one I'm using) that features a small monitor and an 8 digit 7-segment display. The TV monitor can switch between altair terminal output or a diagnostic mode that allows you to see address/data/switch info and provides ASSEMBLY code info based on data switch settings. The 7-seg display will show address/data in hex or switch positions in octal to help with machine programming. Control is through the 7-seg display and a rotary encoder. There will also be a speech synthesizer. The biggest things completed so far have been an SX-based project to demultiplex all the signals on the altair front panel and stream them serially courtesy of a SX chip. Also, I've completed a robust and full feature animating 7-seg driver that will be posted to obex fairly soon.

    Thanks!
  • potatoheadpotatohead Posts: 10,261
    edited 2012-07-29 18:24
    Cool! That is an interesting project. Pictures and a write up please. (when you get done, I love that kind of stuff)

    Yeah, Graphics 3. Indeed. Me too. Spent a lot of time reading that font, and it's a good TV font, well designed to cut down on artifacts.

    I'm home now, getting things setup. I will take a look and post up here later in the evening.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-07-30 00:48
    Here's the AiGeneric expanded to nearly the full display. Some small edits made in a few files to allow for variable column display. This one can do 44x29 or maybe 44x28. I've only a capture card to test. There might be corruption at 29 rows, and I wouldn't know it. That capture card just displays about anything. :) Please test.

    I didn't do much with the text support routines. They might need a tweak or two, if they've not been written for variable columns. I tested the TV output at 32, 40 and 44 columns, and at 26-29 rows. Got stable picture on capture card. YMMV :)
  • potatoheadpotatohead Posts: 10,261
    edited 2012-07-30 01:48
    Adding rows to Potatotext 2 was easy. That's done. Adding columns will take a bit, but is possible. Do you care about 80 column support at 80Mhz? Coupla tricks used in that driver, and one of them limits the amount of horizontal expansion. Might be a character or so less than AiGeneric, which actually can't get a character in the very left extreme either.

    Actually, I'm outta time for the moment. I've attached a mod to Potatotext 2 that allow for variable rows. Tested at 16, 25 and 27. I've also changed it's defaults to 80Mhz Demoboard, composite output instead of the 100Mhz, S-video configuration. I've also set it to not interlace. With interlace turned on (in the start program), the rows are doubled, yielding up to 54 lines of text!

    That all can be reversed with a small edit or two, if it's not what you want.

    Out of time for the moment. I'll think about columns shortly. As per the last posting, it's a raw driver with no text handling code. There is a lot of that out there, and maybe when I do columns I can modify some of the basics for AiGeneric / TV Text type output.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2012-07-30 08:04
    Nice to see this object pulled up from the deep!

    Jeff
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2012-07-31 07:16
    Gee Thanks!

    I'll check these out. I wasn't too concerned about # of columns (potatotext does that readily), but more about using the overscan space to improve legibility on such a small screen. I really appreciate your mods on these and will check 'em out tonight!
  • potatoheadpotatohead Posts: 10,261
    edited 2012-07-31 10:21
    Do you have a column preference? With Potatotext, one key value is used for multiple column sizes. I could hack it for a stretched display at a specific size easier than I can generalize that. Let me know.

    I'm looking into just adding over scan anyway, but that will take a bit. Think I'm gonna add it and some text support routines so it can go into the obey proper. Your query got me thinking about it again.
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2012-07-31 11:30
    Well - Those are both some really great video drivers.

    The AIgeneric you sent me now uses C64 fonts, in the interest of keeping the old atari font, I used your changes to reverse engineer my obex version to function at 44 columns and use overscan. It works great and I learned a thing or two in the process! I'll probably use this driver for the project because it is working really well. (only caveat is background always black, couldn't figure our how to make background another color)

    The potatotext really didn't work. It displayed a few monochrome/grey screens at various column widths but didn't use overscan. This is a great object with a potentially even greater future. (I think the ability to cheaply add video is a primary competitive advantage of the propeller.) I have used the obex versions of this to good effect as far as fiddling.

    Thanks for taking a look at these again.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-07-31 11:56
    Yeah, no overscan on Potatotext yet. That was the column question I asked. If you don't care, I'll just get it into the overscan here in a bit.

    I am puzzled by your grey screen though. It shouldn't do that. Can you share your video circuit and perhaps a link to the display? I would really like to sort that out.

    I like the Atari font too. Good news is they map over really easy. OBC has a soft spot for the C64, and dropped that font in when AiGeneric was packaged up.
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2012-07-31 12:34
    Hehe - on the 64. I was just running a plain old demo board.

    The use of overscan and up to 64 columns might be increasingly more important because many of the screens out there are 16:9 and they tend to have a lot of overscan overhang (does that make sense?).

    Adding columns will restore the square appearance of the text, the overscan will help with the screen.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-07-31 18:26
    Was AiGeneric wide enough for you?

    I think I know what I want to do in order to widen Potatotext 2. I've a test or two I need to run, then I'll know. Can I get one more test out of you on the next pass? Really curious about that grey screen...
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2012-07-31 20:05
    You bet!

    PS Check out my post "Seven Segments of Fun Driver Posted" - no replies but it's the first object I've ever posted.
Sign In or Register to comment.