From: king621@nospicedham.comcast.net   
      
   On 04/04/2018 09:10 PM, Rod Pemberton wrote:   
   > On Wed, 4 Apr 2018 17:51:23 -0700   
   > bilsch wrote:   
   >   
   >> My simple OS uses int 0x10 to display o/p. I'm adding a routine (txt)   
   >> that is a simple text editor which writes to memory at segment   
   >> 0xb800. I enter/exit the txt routine using call/ret. Once I have   
   >> filled the screen with text using the txt routine and then ret back   
   >> to the OS loop subsequent int 0x10 o/p does not get shown on the   
   >> screen. Even when the cursor is repositioned to row/col 0/0. How do   
   >> I get int 0x10 display capability back after filling the screen using   
   >> memory at 0xb800? TIA. Bill S.   
   >   
   > Does your OS use PM (protected mode)? Is your OS switching from PM to   
   > RM (real mode) or v86 mode to call Int 10h? Or, is it purely 16-bit RM?   
   >   
   > (assuming 16-bit RM for now ...)   
      
   yes 16 RM   
   >   
   > Do you explicitly set all necessary registers prior to /every/ Int 10h,   
   > or just the first time you call Int 10h?   
      
    yes, I have now   
      
   >   
   > What happens if you wrap the call to the text routine with PUSHA and   
   > POPA to preserve and restore the calling registers?   
      
   I tried that now, no difference   
   >   
   > I.e., I'd suspect that a register, one which you're expecting to be   
   > preserved, is likely being corrupted or modified, either by the BIOS or   
   > your OS.   
   >   
   > Some BIOS routines modify additional registers other than those listed,   
   > or change initial values of the input registers. Some BIOS routines   
   > also need to have the carry flag set via STC prior to being called.   
   > Also, could the BIOS routine be sensitive to the state of the direction   
   > flag? e.g., STD/CLD for STOSB/MOVSB   
   >   
   I decided to bag the int 0x10 display method. Now I will do everything   
   by writing 0xb800.   
      
   Thanks for your comments.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|