Jump to content

Photo

V9938 Text Pages


6 replies to this topic

#1 BeeryMiller ONLINE  

BeeryMiller

    Dragonstomper

  • 818 posts
  • Location:Campbellsburg, KY

Posted Mon Feb 4, 2019 6:25 PM

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

 



#2 FarmerPotato OFFLINE  

FarmerPotato

    Moonsweeper

  • 272 posts
  • Location:Austin, TX

Posted Mon Feb 4, 2019 8:14 PM

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?)



#3 BeeryMiller ONLINE  

BeeryMiller

    Dragonstomper

  • Topic Starter
  • 818 posts
  • Location:Campbellsburg, KY

Posted Mon Feb 4, 2019 8:49 PM

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



#4 FarmerPotato OFFLINE  

FarmerPotato

    Moonsweeper

  • 272 posts
  • Location:Austin, TX

Posted Mon Feb 4, 2019 9:50 PM

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

 

is this accurate? http://ftp.whtech.co...Video XOP'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.



#5 BeeryMiller ONLINE  

BeeryMiller

    Dragonstomper

  • Topic Starter
  • 818 posts
  • Location:Campbellsburg, KY

Posted Tue Feb 5, 2019 8:43 AM

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

 

is this accurate? http://ftp.whtech.co...Video XOP'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



#6 InsaneMultitasker OFFLINE  

InsaneMultitasker

    River Patroller

  • 2,365 posts

Posted Tue Feb 5, 2019 5:47 PM

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.



#7 BeeryMiller ONLINE  

BeeryMiller

    Dragonstomper

  • Topic Starter
  • 818 posts
  • Location:Campbellsburg, KY

Posted Tue Feb 5, 2019 7:15 PM

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






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users