1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
; 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.
;
;---------------------------------------------------------------------------
;
; 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
|