Jump to content
BeeryMiller

V9938 Text Pages

Recommended Posts

I tried some test code the other night, and I did not get what I was expecting.

 

I thought I could each of the text pages on the 9938 to have their own unique character sets for characters 0 to 255. So, simply by flipping from one page to another, besides changing what was on the screen, it would also use the new character set if one was different.

 

I'm using a mixture of of the VIDEO XOP's and direct video writes.

 

Is there any reason why my thoughts are not correct?

Beery

 

Share this post


Link to post
Share on other sites

I tried some test code the other night, and I did not get what I was expecting.

 

I thought I could each of the text pages on the 9938 to have their own unique character sets for characters 0 to 255. So, simply by flipping from one page to another, besides changing what was on the screen, it would also use the new character set if one was different.

 

I'm using a mixture of of the VIDEO XOP's and direct video writes.

 

Is there any reason why my thoughts are not correct?

Beery

 

 

Are you changing the pattern generator table address (in VDP R#4?)

Share this post


Link to post
Share on other sites

No, not chaning the table. Is it possible to have the pattern layout for table 0 in view, and reference the pattern table layout for table 1?

 

Either way, looks like I will need to avoid using the XOP's for what I am trying to do.

 

I'm trying to free up about 2K as I switch between an ANSI character set and an inverse video set.

 

Beery

Share this post


Link to post
Share on other sites

I forget what the XOPs do and I can't find my MDOS manual.

 

is this accurate? http://ftp.whtech.com/Geneve/mdos/MDOS%20Development%20documents/Video%20XOP's.pdf

 

I think I used XOP 1 to set the mode and then wrote everything else direct.

What does XOP 4 do? SetDisPage. It does have a flag to set tables or not.

I see XOP >37 GetTables which looks useful.

 

You can get inverse characters, or a second color of text, by setting up the 9938 directly in Text2 mode (80 column).

 

1. Set VR12 to the other FG-BG colors (like VR7)

2. Set the color table address using VR3 and VR10 (high bits)

3. Set the ON and OFF times in VR13. OFF time is the duration that colors in VR7 apply, ON time is the duration that colors in VR12 apply to positions with the Blink bit set.

Always ON: set VR13 to >F0. Equal ON/OFF blink time: >66 (for example).

4. To "blink" the Nth screen image table position, set the Nth bit in the color table.

Share this post


Link to post
Share on other sites

I forget what the XOPs do and I can't find my MDOS manual.

 

is this accurate? http://ftp.whtech.com/Geneve/mdos/MDOS%20Development%20documents/Video%20XOP's.pdf

 

I think I used XOP 1 to set the mode and then wrote everything else direct.

What does XOP 4 do? SetDisPage. It does have a flag to set tables or not.

I see XOP >37 GetTables which looks useful.

 

 

Text Mode 2 was setup by the Video XOP, then there are direct video writes setting up some registers, background colors, etc.

 

The original code did an inverse of bytes 0 through 127 and placed in 128 through 255 to get an "inverse" effect when scrolling through menu options.

 

ANSI definitions are defined for 128 through 255. So, when I drop from a terminal screen back to a menu, the way the code was originally setup, I have to rewrite the inverse character definitions for 128 through 255. This causes anything "behind" the menu that was originally ANSI 128 through 255 to have those characters redefined. I then have to restore the ANSI character set after exiting the menu.

 

I'm really trying to avoid rewriting the handling of the menu screen code and my first thought had been to flip from text mode page 0 to text mode page 1 via an XOP thinking the pattern definition table would automatically change with it as well. That does not seem to be happening, and as I am thinking about it, MDOS was never made aware bytes 128 through 255 had been redefined as the terminal program wrote that out to the pattern table directly. It may actually be pulling from the original "default" values and does nothing with 128 through 255. I'm not entirely sure what the MDOS XOP code to change text pages is doing, and may need to investigate the MDOS source code itself.

 

My intent is to free up the ANSI character definition I have contained in the source code, and move it to something like a CHARA1 file that is loaded on startup freeing up some memory.

 

Beery

Share this post


Link to post
Share on other sites

Beery,

 

For text2 mode I often use the XOPS to set up the tables and screen. I can then choose to use the XOPS (for windowed text) or direct video read/write (for speed). I use the method FarmerPotato outlines in his post for simulating inverse characters by leveraging the blink attribute. This also lets you select different colors for the 'inverted' characters.

 

Long ago I submitted some routines that you published in 9640News. Not very pretty but they are the basis for menus in some of my programs like PORT and CYA. I'm not sure if they include the blink attribute routines or the menu picklist routine. I originally wrote the code while playing around with Super Mass Transfer.

 

I think the XOPs have a facility for resetting tables but I've never tried to do what you describe in your original post.

 

MDOS is aware of characters 128-255. The IBMGRF command will turn this on/off. The defs can carry over to other programs if they don't reset the tables, and MDOS will restore the character defs under most conditions when the program terminates.

  • Like 1

Share this post


Link to post
Share on other sites

I've used the blink attribute in the past as well for a menu item. I need to recall what program(s) I did that with. Sounds like that may be the more logical approach to do that. Now, just gotta figure out how easy that is to implement within the existing menu code.

 

Probably need to go through the issues of 9640News and see if anything rings a bell.

Beery

Share this post


Link to post
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.

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