Jump to content
Sign in to follow this  
BeeryMiller

V9938 Programming

Recommended Posts

I'm working on something, and it has been over 20 years since I did this with another routine, and need some help.

 

I am in Graphics mode 6, with a 512x255x16 color screen.  

 

I am on display page 0, and want to display the last 8 pixel rows of page 1, with the balance of the display of pixel rows from page 0.

 

I believe I need to send >01F7 to Register #23 with a BLWP @VWTR instruction.

 

What I do not recall is how to code/write that address to the register correctly.  If someone can provide me with the two to four lines of code to do it, I would appreciate it.

 

I am mixing some coding in MDOS with direct video writes to use of the MDOS XOP's, and I am hoping by changing the display page coordinates, the MDOS XOP's will not realize the display page range is shifted making some other code a lot easier to use.
 

Any feedback is much appreciated.


Beery

Share this post


Link to post
Share on other sites
16 hours ago, BeeryMiller said:

I'm working on something, and it has been over 20 years since I did this with another routine, and need some help.

 

I am in Graphics mode 6, with a 512x255x16 color screen.  

 

I am on display page 0, and want to display the last 8 pixel rows of page 1, with the balance of the display of pixel rows from page 0.

 

I believe I need to send >01F7 to Register #23 with a BLWP @VWTR instruction.

 

What I do not recall is how to code/write that address to the register correctly.  If someone can provide me with the two to four lines of code to do it, I would appreciate it.

 

I am mixing some coding in MDOS with direct video writes to use of the MDOS XOP's, and I am hoping by changing the display page coordinates, the MDOS XOP's will not realize the display page range is shifted making some other code a lot easier to use.
 

Any feedback is much appreciated.


Beery

I was not aware of such a trick. Are you sure you remember that it was possible to cross a page boundary? There are only 8 bits in vertical scrolling register #23 so >FF is the limit.  If you write >F8 then the display should take the last 8 rows from Page 0 rows 248-255, followed by Page 0 rows 0-183. 

 

For what you want to do, one way would be to set an interrupt on a particular line, then use the interrupt handler to change the page number in R#2 (manual says values are >3F and >7F for pages 0 and 1.) But that is surely not what you recall either...

 

What do the other, undocumented values of R#2 do? If you put in >3E do you get something like what you describe? I'm taking a wild guess. I have not yet seen any "undocumented 9938" writeups. 

 

I found this nice annotated 9938 manual on GR8BIT

http://rs.gr8bit.ru/Documentation/V9938-programmers-guide.pdf

For one thing, explanation of R#23 in section 2.1.4 has color screenshots.

 

My Geneve is still sitting here for lack of a working 5.25" floppy drive (of all the things).

 

Share this post


Link to post
Share on other sites

I tried >F8.  I'm getting something close to what I was wanting.  I think I am going to need to shift it to >F4 as at 212 pixel rows, that works out to 26.5 rows.

 

What is happening, is I have shifted the page display at the hardware level of the 9938, however MDOS and the XOP's that permitting "text writing" in Graphics mode, is unaware the page is shifted, so they are writing as though the boundary starts at 0,0 and is writing in the lower window.  This has given me a "menu" at the top row instead of a status bar at the bottom of the screen so I can do some things.


Beery

 

Share this post


Link to post
Share on other sites

Hmm, unfortunately, when trying to return back to text mode from graphics mode, I adjusted R23 with a >0C as well or an >08, but all I get is a split character.  Looks like the pattern table is shifted somehow.


Trying to resolve the issue.

 

Beery

 

  • Like 1

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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...