home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
utility
/
disk
/
pdos_112
/
1426_fix.s
next >
Wrap
Text File
|
1993-08-02
|
3KB
|
145 lines
************************************************************************
*
* This program patches into the xbios setmode() & setscreen() functions.
* Alters the video parameters set by the call so that it works with
* the PTC1426 TT monitor (with switch in VGA mode).
*
************************************************************************
include d:\devpac\powerdos\dos_defs.s
include d:\devpac\powerdos\dosmacro.s
VWRAP equ $FF8210
SPSHIFT equ $FF8266
HHT equ $FF8282
HBB equ $FF8284
HBE equ $FF8286
HDB equ $FF8288
HDE equ $FF828A
HSS equ $FF828C
HFS equ $FF828E
HEE equ $FF8290
VFT equ $FF82A2
VBB equ $FF82A4
VBE equ $FF82A6
VDB equ $FF82A8
VDE equ $FF82AA
VSS equ $FF82AC
VCO equ $FF82C0
start os_fvector our_setmode(pc),#$58,#14 Change Setmode vector to go to us
lea old_setmode+2(pc),a0
move.l d0,(a0) Jump to original vector
os_fvector our_setscrn(pc),#5,#14 Change Setscreen vector to go to us
lea old_setscrn+2(pc),a0
move.l d0,(a0) Jump to original vector
p_termres #0,#end_of_it-start+256
our_setscrn cmp.w #%110010010,$e(sp) Going to ST Low Rez?
beq.s .do_st_low
cmp.w #%000011010,$e(sp) Going to 640x480x16?
beq.s .do_640x16
cmp.w #%000011011,$e(sp) Going to 640x480x256?
beq.s .do_640x256
bne.s old_setscrn
.do_640x256 lea 4(sp),a0
move.w 10(a0),-(sp)
move.w 8(a0),-(sp)
move.l 4(a0),-(sp)
move.l (a0),-(sp)
pea scrn_640x256(pc)
bra.s old_setscrn
.do_640x16 lea 4(sp),a0
move.w 10(a0),-(sp)
move.w 8(a0),-(sp)
move.l 4(a0),-(sp)
move.l (a0),-(sp)
pea scrn_640x16(pc)
bra.s old_setscrn
.do_st_low lea 4(sp),a0
move.w 10(a0),-(sp)
move.w 8(a0),-(sp)
move.l 4(a0),-(sp)
move.l (a0),-(sp)
pea scrn_st_low(pc) To do ST Low Rez
bra.s old_setscrn
old_setscrn jmp $DEADC0DE Jump to original routine
scrn_640x256 bsr _640x256
lea 12(sp),sp
rts
scrn_640x16 bsr _640x16
lea 12(sp),sp
rts
scrn_st_low bsr st_low
lea 12(sp),sp
rts
our_setmode cmp.w #%110010010,4(sp) Going to ST Low Rez?
beq.s set_st_low
cmp.w #%000011010,4(sp) Going to 640x480x16?
beq.s set_640x16
cmp.w #%000011011,4(sp) Going to 640x480x256?
beq.s set_640x256
bne.s old_setmode
set_640x256 move.w 4(sp),-(sp)
pea mode_640x256(pc) To do 640x480x256
bra.s old_setmode
set_640x16 move.w 4(sp),-(sp) Push parameter
pea mode_640x16(pc) To do 640x480x16
bra.s old_setmode
set_st_low move.w 4(sp),-(sp)
pea mode_st_low(pc) To do ST Low Rez
bra.s old_setmode
old_setmode jmp $DEADC0DE Jump to original routine
mode_640x256 bsr.s _640x256
addq.l #2,sp
rts
mode_640x16 bsr.s _640x16
addq.l #2,sp
rts
mode_st_low bsr.s st_low
addq.l #2,sp
rts
_640x256 move.w #$7C,HBB
move.w #$4,HBE
move.w #$29a,HDB
move.w #$73,HDE
rts
_640x16 move.w #$7c,HBB
move.w #$4,HBE
move.w #$292,HDB
move.w #$6b,HDE
move.w #$97,HSS
rts
st_low move.w #$10,HBB
move.w #$0,HBE
move.w #$20c,HDB
move.w #$b,HDE
move.w #$12,HSS
rts
end_of_it nop
end