Jump to content

Recommended Posts

Matthew

 

Can you post a brief "how to" for the latest F18 to set the chip up for the new "80 column mode, any character any colour" that is on the latest F18. I'd like to write a library to support it.

 

I need to know how to poke the registers to put in in the appropriate video mode, and how the video tables work/interact/are laid out.

 

Thanks

 

Mark

  • Like 1
Link to comment
https://forums.atariage.com/topic/238033-new-80-column-mode-on-f18a/
Share on other sites

... or an 80 X 30 color text mode.

 

It does open up some amazing possibilities for future updates & incarnations of current programs.

 

... I'm envisioning an 80 column color update to boot with 24 selections per screen, all loaded into Gazoo's XB2.7s cart.

  • Like 1

The enhancement to T40/T80 is called position-based attributes. If you look in the Register Use spreadsheet updated for the V1.6 firmware you will see a new VR50 that has a bit-flag (with a binary weight of >02) called "position vs name attributes". When you set that flag, the color table changes its behavior and becomes a 1:1 fg/bg color table for the name table.

 

For example, if you have the name table at >0000 and the color table at >1000, byte >0000 is the first tile on the screen and byte >1000 is the fg/bg color for the first tile. The fg/bg are 4-bits each, so you can have 16 colors for each fg/bg.

 

Note that this position attribute feature is only available in T40/T80 when the F18A is unlocked.

 

The steps to set this up would be:

 

1. unlock the F18A

2. set T40 or T80 mode

3. set up the NTBA and CTBA accordingly. Keep in mind that the color table will be the same size as the name table

4. set bit >02 in VR50

 

The minimal code to do this:

 

*      F18A Unlock
       LI   R0,>391C            * VR1/57, value 00011100
       BL   @VWTR               * Write once
       BL   @VWTR               * Write twice, unlock

       LI   R0,>0004            * VR0: T80 option
       BL   @VWTR
       LI   R0,>01F0            * VR1: 16K, not blanked, interrupt, text mode
       BL   @VWTR
       LI   R0,>0200            * VR2: Name table at >0000
       BL   @VWTR
       LI   R0,>0340            * VR3: Tile attribute (color table) at >1000
       BL   @VWTR

       LI   R0,>3202            * VR50: Position based tile attributes
       BL   @VWTR
That's it. Let me know if you have any other questions.
  • Like 2

Great stuff Matthew, thanks. Looks like TF can support it (80 column full colour) if I set the number of available block buffers to 5. With reference to the colour table, looks like it sits on 64 byte boundaries, yes? (If >40 sits the table at >1000, then 0x1000 / 0x40 = 0x40).

 

IIRC, sprites can be used in 40 and 80 column modes on the F18. Do I have to explicitly enable that somewhere? For the record, I'm thinking to NOT enable that behaviour, as it would require too much (difficult) re-location of tables in VDP in the current TF system. As things stand, I can use the full-colour modes of 40 and 80 column quite easily if I don't worry about sprites.

A little off topic, but I love that F18a Enhanced sticker on your TI. I need to get something like that for my beige TI.

 

One of your fellow Atari Age moderators, OLD CS1 made that sticker for me. :) (Message Reference)

My TI would just not be the same without it. :thumbsup:

 

One of your fellow Atari Age moderators, OLD CS1 made that sticker for me. :) (Message Reference)

My TI would just not be the same without it. :thumbsup:

Actually I need a replacement badge for my beige TI as the metal one is kind of bent and dented. I wonder if I can get some sort of metal colored custom sticker made with something like "TI-99/4a - F18a Edition" on it?

Actually I need a replacement badge for my beige TI as the metal one is kind of bent and dented. I wonder if I can get some sort of metal colored custom sticker made with something like "TI-99/4a - F18a Edition" on it?

 

I don't know about metal, but there is a vinyl sticker place some of the guys here use. They make up a design to their own visual tastes, as well as size dimensions, upload the graphic, pay online and wait a week or so for the object of their desire. That might be an option worthy of consideration as well.

Great stuff Matthew, thanks. Looks like TF can support it (80 column full colour) if I set the number of available block buffers to 5. With reference to the colour table, looks like it sits on 64 byte boundaries, yes? (If >40 sits the table at >1000, then 0x1000 / 0x40 = 0x40).

Correct, the color/position-attribute table is still locatable on 64-byte boundaries. Also note that when the F18A is unlocked the T40/T80 name table is locatable on 1K boundaries, meaning all 4-bits of the NTBA are used. This is different than the 9938, so be aware of this.

 

IIRC, sprites can be used in 40 and 80 column modes on the F18. Do I have to explicitly enable that somewhere? For the record, I'm thinking to NOT enable that behaviour, as it would require too much (difficult) re-location of tables in VDP in the current TF system. As things stand, I can use the full-colour modes of 40 and 80 column quite easily if I don't worry about sprites.

When you unlock the F18A you have to explicitly *disable* the sprites in the text modes. If you don't want sprites at all set VR51 (stop sprite) to 0.

 

Also, since some of the F18A settings survive a 99/4A "reboot" (which is not a hardware reset) I recommend a modified unlock routine which uses a new F18A "reset" feature:

 

*      F18A Unlock
       LI   R0,>391C            * VR1/57, value 00011100
       BL   @VWTR               * Write once
       BL   @VWTR               * Write twice, unlock

       LI   R0,>3280            * VR50, value 10000000 to reset the F18A's registers
       BL   @VWTR               * The reset will relock the F18A, so it has to be unlocked again

       LI   R0,>391C            * VR1/57, value 00011100
       BL   @VWTR               * Write once
       BL   @VWTR               * Write twice, unlock
This will give you a known F18A state, except for the Palette registers and GPU-preload code which survive everything but a power-cycle.

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