diff options
| -rw-r--r-- | tools/sci/scitrace.asm | 136 | 
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 + | 
