aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMartin Kiewitz2010-02-22 18:06:21 +0000
committerMartin Kiewitz2010-02-22 18:06:21 +0000
commit62d5dd557a2051334ce6a4c528a86dabf1fe356b (patch)
tree6c98e29aeb0ac6382236227e6cac8e2dbf7e68cd /tools
parent2ca06e3e0a023ce4f55e2aab262c2c877f7af4b7 (diff)
downloadscummvm-rg350-62d5dd557a2051334ce6a4c528a86dabf1fe356b.tar.gz
scummvm-rg350-62d5dd557a2051334ce6a4c528a86dabf1fe356b.tar.bz2
scummvm-rg350-62d5dd557a2051334ce6a4c528a86dabf1fe356b.zip
SCI: moving scitrace
svn-id: r48111
Diffstat (limited to 'tools')
-rw-r--r--tools/sci/scitrace.asm136
1 files changed, 136 insertions, 0 deletions
diff --git a/tools/sci/scitrace.asm b/tools/sci/scitrace.asm
new file mode 100644
index 0000000000..7891c414e6
--- /dev/null
+++ b/tools/sci/scitrace.asm
@@ -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
+