mirror of
https://github.com/libretro/scummvm.git
synced 2024-11-27 11:20:40 +00:00
SCI: moving scitrace
svn-id: r48111
This commit is contained in:
parent
2ca06e3e0a
commit
62d5dd557a
136
tools/sci/scitrace.asm
Normal file
136
tools/sci/scitrace.asm
Normal file
@ -0,0 +1,136 @@
|
||||
; ScummVM - Graphic Adventure Engine
|
||||
;
|
||||
; ScummVM is the legal property of its developers, whose names
|
||||
; are too numerous to list here. Please refer to the COPYRIGHT
|
||||
; file distributed with this source distribution.
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or
|
||||
; modify it under the terms of the GNU General Public License
|
||||
; as published by the Free Software Foundation; either version 2
|
||||
; of the License, or (at your option) any later version.
|
||||
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program; if not, write to the Free Software
|
||||
; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
;
|
||||
; $URL$
|
||||
; $Id$
|
||||
;
|
||||
;---------------------------------------------------------------------------
|
||||
;
|
||||
; SCITRACE
|
||||
; TSR for logging specific calls inside sierra sci
|
||||
; Written by M. Kiewitz
|
||||
;
|
||||
;---------------------------------------------------------------------------
|
||||
|
||||
; Simply replace 51h 51h 51h 51h in sierra sci with
|
||||
; CDh 90h 90h 90h. This code will then log copyrect calls to scitrace.bin
|
||||
|
||||
.286
|
||||
|
||||
code_seg segment public
|
||||
assume cs:code_seg, ds:nothing, es:nothing
|
||||
org 00100h
|
||||
|
||||
scitrace: jmp install_my_prog
|
||||
|
||||
;---------------------------------------------------------------------------
|
||||
|
||||
filename: db 'SCITRACE.BIN', 0
|
||||
|
||||
inthandler: push ax
|
||||
push bx
|
||||
push cx
|
||||
push dx
|
||||
push ds
|
||||
push cs
|
||||
pop ds
|
||||
mov ah, 3Dh
|
||||
mov al, 1
|
||||
mov dx, offset filename
|
||||
xor cl, cl
|
||||
int 21h
|
||||
pop ds
|
||||
jc int_error
|
||||
mov bx, ax
|
||||
mov ax, 4202h
|
||||
xor cx, cx
|
||||
xor dx, dx
|
||||
int 21h
|
||||
mov dx, si
|
||||
mov ah, 40h
|
||||
mov cx, 8
|
||||
int 21h
|
||||
mov ah, 3Eh
|
||||
int 21h
|
||||
int_error: pop dx
|
||||
pop cx
|
||||
pop bx
|
||||
pop ax
|
||||
movsw
|
||||
movsw
|
||||
movsw
|
||||
movsw
|
||||
iret
|
||||
|
||||
end_of_tsr:
|
||||
|
||||
;---------------------------------------------------------------------------
|
||||
|
||||
titlestr: db 'SCITRACE - written by M. Kiewitz',13,10,'$'
|
||||
errorfile: db 'error creating file',13,10,'$'
|
||||
|
||||
;---------------------------------------------------------------------------
|
||||
|
||||
install_my_prog:
|
||||
push cs
|
||||
pop ds
|
||||
mov ah, 09h
|
||||
mov dx, offset titlestr
|
||||
int 21h
|
||||
|
||||
mov ah, 3Ch
|
||||
mov cx, 0
|
||||
mov dx, offset filename
|
||||
int 21h
|
||||
jnc valid_open
|
||||
mov ah, 09h
|
||||
mov dx, offset errorfile
|
||||
int 21h
|
||||
mov ax, 6200h
|
||||
int 21h
|
||||
mov es, bx
|
||||
mov ax, 4C00h
|
||||
int 21h
|
||||
|
||||
valid_open: mov bx, ax
|
||||
mov ah, 3Eh
|
||||
int 21h
|
||||
|
||||
NowInstallTSR:
|
||||
mov ax, 2590h
|
||||
mov dx, offset inthandler
|
||||
int 21h ; int 90h pointer <- ds:dx
|
||||
|
||||
mov ax, ds:[002ch] ; get envt segment
|
||||
mov es, ax
|
||||
mov ax, 4900h
|
||||
int 21h
|
||||
|
||||
mov dx, offset end_of_tsr
|
||||
add dx, 15
|
||||
shr dx, 4
|
||||
mov ax, 3100h
|
||||
int 21h
|
||||
|
||||
;---------------------------------------------------------------------------
|
||||
|
||||
code_seg ends
|
||||
end scitrace
|
||||
|
Loading…
Reference in New Issue
Block a user