home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / disk / pdos_112 / 1426_fix.s next >
Text File  |  1993-08-02  |  3KB  |  145 lines

  1. ************************************************************************
  2. *
  3. * This program patches into the xbios setmode() & setscreen() functions.
  4. * Alters the video parameters set by the call so that it works with
  5. * the PTC1426 TT monitor (with switch in VGA mode).
  6. *
  7. ************************************************************************
  8.  
  9.     include    d:\devpac\powerdos\dos_defs.s
  10.  
  11.     include    d:\devpac\powerdos\dosmacro.s
  12.  
  13. VWRAP    equ    $FF8210
  14. SPSHIFT    equ    $FF8266
  15. HHT    equ    $FF8282
  16. HBB    equ    $FF8284
  17. HBE    equ    $FF8286
  18. HDB    equ    $FF8288
  19. HDE    equ    $FF828A
  20. HSS    equ    $FF828C
  21. HFS    equ    $FF828E
  22. HEE    equ    $FF8290
  23. VFT    equ    $FF82A2
  24. VBB    equ    $FF82A4
  25. VBE    equ    $FF82A6
  26. VDB    equ    $FF82A8
  27. VDE    equ    $FF82AA
  28. VSS    equ    $FF82AC
  29. VCO    equ    $FF82C0
  30.  
  31. start    os_fvector    our_setmode(pc),#$58,#14 Change Setmode vector to go to us
  32.     lea    old_setmode+2(pc),a0
  33.     move.l    d0,(a0)        Jump to original vector
  34.  
  35.     os_fvector    our_setscrn(pc),#5,#14    Change Setscreen vector to go to us
  36.     lea    old_setscrn+2(pc),a0
  37.     move.l    d0,(a0)        Jump to original vector
  38.     p_termres    #0,#end_of_it-start+256
  39.  
  40. our_setscrn cmp.w    #%110010010,$e(sp)    Going to ST Low Rez?
  41.     beq.s    .do_st_low
  42.     cmp.w    #%000011010,$e(sp)    Going to 640x480x16?
  43.     beq.s    .do_640x16
  44.     cmp.w    #%000011011,$e(sp)    Going to 640x480x256?
  45.     beq.s    .do_640x256
  46.  
  47.     bne.s    old_setscrn
  48.  
  49. .do_640x256 lea    4(sp),a0
  50.     move.w    10(a0),-(sp)
  51.     move.w    8(a0),-(sp)
  52.     move.l    4(a0),-(sp)
  53.     move.l    (a0),-(sp)
  54.     pea    scrn_640x256(pc)
  55.     bra.s    old_setscrn
  56.  
  57. .do_640x16    lea    4(sp),a0
  58.     move.w    10(a0),-(sp)
  59.     move.w    8(a0),-(sp)
  60.     move.l    4(a0),-(sp)
  61.     move.l    (a0),-(sp)
  62.     pea    scrn_640x16(pc)
  63.     bra.s    old_setscrn
  64.  
  65. .do_st_low    lea    4(sp),a0
  66.     move.w    10(a0),-(sp)
  67.     move.w    8(a0),-(sp)
  68.     move.l    4(a0),-(sp)
  69.     move.l    (a0),-(sp)
  70.     pea    scrn_st_low(pc)    To do ST Low Rez
  71.     bra.s    old_setscrn
  72.  
  73. old_setscrn    jmp    $DEADC0DE        Jump to original routine
  74.  
  75. scrn_640x256 bsr    _640x256
  76.     lea    12(sp),sp
  77.     rts
  78.  
  79. scrn_640x16    bsr    _640x16
  80.     lea    12(sp),sp
  81.     rts
  82.  
  83. scrn_st_low    bsr    st_low
  84.     lea    12(sp),sp
  85.     rts
  86.  
  87. our_setmode    cmp.w    #%110010010,4(sp)    Going to ST Low Rez?
  88.     beq.s    set_st_low
  89.     cmp.w    #%000011010,4(sp)    Going to 640x480x16?
  90.     beq.s    set_640x16
  91.     cmp.w    #%000011011,4(sp)    Going to 640x480x256?
  92.     beq.s    set_640x256
  93.  
  94.     bne.s    old_setmode
  95.  
  96. set_640x256    move.w    4(sp),-(sp)
  97.     pea    mode_640x256(pc)    To do 640x480x256
  98.     bra.s    old_setmode
  99.  
  100. set_640x16    move.w    4(sp),-(sp)        Push parameter
  101.     pea    mode_640x16(pc)    To do 640x480x16
  102.     bra.s    old_setmode
  103.  
  104. set_st_low    move.w    4(sp),-(sp)
  105.     pea    mode_st_low(pc)    To do ST Low Rez
  106.     bra.s    old_setmode
  107.  
  108. old_setmode    jmp    $DEADC0DE        Jump to original routine
  109.  
  110. mode_640x256 bsr.s    _640x256
  111.     addq.l    #2,sp
  112.     rts
  113.  
  114. mode_640x16    bsr.s    _640x16
  115.     addq.l    #2,sp
  116.     rts
  117.  
  118. mode_st_low    bsr.s    st_low
  119.     addq.l    #2,sp
  120.     rts
  121.  
  122. _640x256    move.w    #$7C,HBB
  123.     move.w    #$4,HBE
  124.     move.w    #$29a,HDB
  125.     move.w    #$73,HDE
  126.     rts
  127.  
  128. _640x16    move.w    #$7c,HBB
  129.     move.w    #$4,HBE
  130.     move.w    #$292,HDB
  131.     move.w    #$6b,HDE
  132.     move.w    #$97,HSS
  133.     rts
  134.  
  135. st_low    move.w    #$10,HBB
  136.     move.w    #$0,HBE
  137.     move.w    #$20c,HDB
  138.     move.w    #$b,HDE
  139.     move.w    #$12,HSS
  140.     rts
  141.  
  142. end_of_it    nop
  143.  
  144.     end
  145.