[comp.os.msdos.misc] Support for detailed MSDOS programming questions?

heintze@fmcsse.enet.dec.com (Siegfried Heintze) (09/04/90)

    I'm wondering what options there are for solving programming 
    problems with MSDOS.    I have posted the following query in other
    MSDOS.PROGRAMMING news groups and I am still hoping for some 
    responses from VNEWS readers.

    I would like to query for suggestions on other means of 
    investigating my problem of MSDOS hanging when I call INT 0x33 
    FUNC 2.

    I can think of 
      (1)  Books on the subject.  I have looked thru several - none
           address this specific issue.  There is one expensive
           book called (something like) "MSDOS System programming" 
           that gives an example in text mode but not graphics.
      (2)  Calling MS customer support.  Is there such an animal for
           detailed programming questions?  What is the phone number 
           and how much does it cost?
      (3)  Buying one of those expensive disassemblers to disassemble 
           my mouse driver and possibly part of MSDOS to better 
           understand exactly what is happening when I use an INT 33 
           FUNC 2.
      (4)  Buying one of those very expensive debuggers like 
           periscope for ~$400.  I don't know enough about them to 
           know exactly how they could help me - but for that price 
           they ought to be able to work miracles.

      Which option would you recommend?  Can you think of other 
    options?


                                        Thanks,


                                        Sieg

    =======================================================================
    Here is the original query I have posted in 
    COMP.OS.MSDOS.PROGRAMMING:


    I'm using MSDOS software interrupt 0x33, function 0x0c to
    establish a routine (called ime) to be called by the mouse driver
    everytime the mouse changes state  (ie, everytime a button is
    depressed or released or the position of the mouse changes.)

    This works because I can call the zortech routine "sound_click()"
    to verify that it is working.

    I remember reading somewhere that it is necessary to call
    interrupt 0x33 function 2 before writing to the VGA to prevent a
    conflict.   This function hides the mouse pointer on the VGA to
    prevent the mouse driver and you from trying to  access VGA
    simultaneously.  This is an important consideration because
    writing to the VGA is not an atomic operation.  It consists of
    writing to  multiple VGA registers via I/O ports.  Interrupting
    this sequence with another write sequence would not be desireable. 
    So we tell the mouse driver not update the mouse pointer on the
    VGA while we are accessing the VGA display RAM and when we are
    done we use INT 0x33 func 1 to display the mouse pointer again.

    I tried just writing to the VGA display from the routine called by
    INT 0x33  func 0x0c and it did not hang.   But when I tried to
    write a character to the VGA display using a call to MSDOS (INT
    0x10 func 9) it hangs.  No surprise,  I probably needed to hide
    the mouse.  

    So I call int 0x33 func 2 to hide the mouse inside ime.   This
    hangs my machine.   Why?  How do I diagnose this problem further?


                                       Sieg