]> pd.if.org Git - mmurtl/blob - msamples/print/print.asm
autocommit for file dated 1995-01-30 22:46:08
[mmurtl] / msamples / print / print.asm
1 \r
2 .DATA\r
3 EXTRN _InitDevDr FWORD\r
4 EXTRN _DeviceOp FWORD\r
5 EXTRN _DeviceStat FWORD\r
6 EXTRN _DeviceInit FWORD\r
7 EXTRN _UnMaskIRQ FWORD\r
8 EXTRN _MaskIRQ FWORD\r
9 EXTRN _SetIRQVector FWORD\r
10 EXTRN _EndOfIRQ FWORD\r
11 EXTRN _GetpJCB FWORD\r
12 EXTRN _GetJobNum FWORD\r
13 EXTRN _LoadNewJob FWORD\r
14 EXTRN _Chain FWORD\r
15 EXTRN _ExitJob FWORD\r
16 EXTRN _KillJob FWORD\r
17 EXTRN _SetUserName FWORD\r
18 EXTRN _GetUserName FWORD\r
19 EXTRN _SetCmdLine FWORD\r
20 EXTRN _GetCmdLine FWORD\r
21 EXTRN _SetPath FWORD\r
22 EXTRN _GetPath FWORD\r
23 EXTRN _SetExitJob FWORD\r
24 EXTRN _GetExitJob FWORD\r
25 EXTRN _SetSysIn FWORD\r
26 EXTRN _GetSysIn FWORD\r
27 EXTRN _SetSysOut FWORD\r
28 EXTRN _GetSysOut FWORD\r
29 EXTRN _SetJobName FWORD\r
30 EXTRN _RegisterSvc FWORD\r
31 EXTRN _UnRegisterSvc FWORD\r
32 EXTRN _GetSystemDisk FWORD\r
33 EXTRN _ReadKbd FWORD\r
34 EXTRN _Alarm FWORD\r
35 EXTRN _KillAlarm FWORD\r
36 EXTRN _Sleep FWORD\r
37 EXTRN _MicroDelay FWORD\r
38 EXTRN _GetCMOSTime FWORD\r
39 EXTRN _GetCMOSDate FWORD\r
40 EXTRN _GetTimerTick FWORD\r
41 EXTRN _Tone FWORD\r
42 EXTRN _Beep FWORD\r
43 EXTRN _SetVidOwner FWORD\r
44 EXTRN _SetNormVid FWORD\r
45 EXTRN _GetNormVid FWORD\r
46 EXTRN _ClrScr FWORD\r
47 EXTRN _GetVidChar FWORD\r
48 EXTRN _SetXY FWORD\r
49 EXTRN _PutVidAttrs FWORD\r
50 EXTRN _PutVidChars FWORD\r
51 EXTRN _GetVidOwner FWORD\r
52 EXTRN _GetXY FWORD\r
53 EXTRN _ScrollVid FWORD\r
54 EXTRN _TTYOut FWORD\r
55 EXTRN _EditLine FWORD\r
56 PUBLIC _tabstops DD 4\r
57 PUBLIC _NoFF DD 0\r
58 PUBLIC _fDisplay DD 0\r
59 PUBLIC _fBinary DD 0\r
60 PUBLIC _col DD 0\r
61 L_lit DB 80,114,105,110,116,105,110,103,0,73,110,118,97,108,105,100\r
62  DB 32,115,119,105,116,99,104,0,80,114,105,110,116,32,70,105\r
63  DB 108,101,44,32,86,101,114,115,105,111,110,32,49,44,48,13\r
64  DB 10,0,85,115,97,103,101,58,32,70,105,108,101,110,97,109\r
65  DB 101,32,47,49,32,47,50,32,47,52,32,47,56,32,47,70\r
66  DB 32,47,68,32,47,66,13,10,0,47,49,32,47,50,32,47\r
67  DB 52,32,47,56,32,45,32,84,97,98,32,115,116,111,112,32\r
68  DB 116,114,97,110,115,108,97,116,105,111,110,32,118,97,108,117\r
69  DB 101,13,10,0,47,70,32,32,110,111,32,70,111,114,109,70\r
70  DB 101,101,100,32,97,116,32,101,110,100,32,111,102,32,102,105\r
71  DB 108,101,13,10,0,47,68,32,32,68,105,115,112,108,97,121\r
72  DB 32,102,105,108,101,32,119,104,105,108,101,32,112,114,105,110\r
73  DB 116,105,110,103,13,10,0,47,66,32,32,66,105,110,97,114\r
74  DB 121,32,112,114,105,110,116,46,32,78,79,32,116,114,97,110\r
75  DB 115,108,97,116,105,111,110,44,32,110,111,32,70,70,13,10\r
76  DB 10,0,69,114,114,111,114,58,32,83,111,117,114,99,101,32\r
77  DB 102,105,108,101,110,97,109,101,32,114,101,113,117,105,114,101\r
78  DB 100,13,10,0,69,114,114,111,114,32,103,101,116,116,105,110\r
79  DB 103,32,76,80,84,32,68,101,118,105,99,101,32,83,116,97\r
80  DB 116,117,115,58,32,37,100,13,10,0,79,112,101,110,76,80\r
81  DB 84,32,69,82,82,79,82,58,32,37,100,32,13,10,0,80\r
82  DB 114,105,110,116,105,110,103,32,37,115,32,46,46,46,13,10\r
83  DB 0,114,0,67,97,110,39,116,32,111,112,101,110,58,32,37\r
84  DB 115,13,10,0,13,10,0,32,0,32,0,37,99,0,69,114\r
85  DB 114,111,114,32,87,114,105,116,105,110,103,32,66,121,116,101\r
86  DB 58,32,37,100,13,10,0,12,0,67,97,110,39,116,32,99\r
87  DB 108,111,115,101,32,76,80,84,46,32,69,114,114,111,114,58\r
88  DB 32,37,100,13,10,0,68,111,110,101,13,10,0\r
89 PUBLIC _key DD 0h\r
90 PUBLIC _name DB 80 DUP(0)\r
91 PUBLIC _f DD 0h\r
92 PUBLIC _lpt DB 61 DUP(0)\r
93 \r
94 \r
95 .CODE\r
96 EXTRN _fopen: NEAR\r
97 EXTRN _fclose: NEAR\r
98 EXTRN _remove: NEAR\r
99 EXTRN _rename: NEAR\r
100 EXTRN _fgetc: NEAR\r
101 EXTRN _fgets: NEAR\r
102 EXTRN _fputs: NEAR\r
103 EXTRN _fputc: NEAR\r
104 EXTRN _printf: NEAR\r
105 EXTRN _sprintf: NEAR\r
106 EXTRN _fprintf: NEAR\r
107 EXTRN _ftell: NEAR\r
108 EXTRN _rewind: NEAR\r
109 EXTRN _fseek: NEAR\r
110 EXTRN _fread: NEAR\r
111 EXTRN _fwrite: NEAR\r
112 EXTRN _iscntrl: NEAR\r
113 EXTRN _isspace: NEAR\r
114 EXTRN _isdigit: NEAR\r
115 EXTRN _isupper: NEAR\r
116 EXTRN _islower: NEAR\r
117 EXTRN _ispunct: NEAR\r
118 EXTRN _isalpha: NEAR\r
119 EXTRN _isxdigit: NEAR\r
120 EXTRN _isalnum: NEAR\r
121 EXTRN _isgraph: NEAR\r
122 EXTRN _toupper: NEAR\r
123 EXTRN _tolower: NEAR\r
124 EXTRN _strcpy: NEAR\r
125 EXTRN _strncpy: NEAR\r
126 EXTRN _strcat: NEAR\r
127 EXTRN _strncat: NEAR\r
128 EXTRN _strcmp: NEAR\r
129 EXTRN _strncmp: NEAR\r
130 EXTRN _strlen: NEAR\r
131 EXTRN _strchr: NEAR\r
132 EXTRN _exit: NEAR\r
133 PUBLIC _main:\r
134         PUSH EBP\r
135         MOV EBP,ESP\r
136         SUB ESP,23\r
137         PUSH  OFFSET L_lit+0\r
138         PUSH 8\r
139         CALL FWORD PTR _SetJobName\r
140         MOV ESI,OFFSET _name\r
141         XOR EAX,EAX\r
142         MOV BYTE PTR [ESI],AL\r
143         MOV EAX,1\r
144         MOV DWORD PTR [EBP-12],EAX\r
145 L_1:\r
146         MOV EAX,[EBP-12]\r
147         CMP EAX,DWORD PTR [EBP+12]\r
148         SETL AL\r
149         AND AL,AL\r
150         JZ L_2\r
151         JMP SHORT L_3\r
152 L_4:\r
153         INC DWORD PTR [EBP-12]\r
154         MOV EAX,[EBP-12]\r
155         JMP SHORT L_1\r
156 L_3:\r
157         MOV EAX,[EBP-12]\r
158         SHL EAX,2\r
159         MOV ESI,DWORD PTR [EBP+8]\r
160         ADD ESI,EAX\r
161         MOV EAX,DWORD PTR [ESI]\r
162         MOV DWORD PTR [EBP-23],EAX\r
163         MOV ESI,DWORD PTR [EBP-23]\r
164         MOVSX EAX,BYTE PTR [ESI]\r
165         CMP EAX,47\r
166         SETE AL\r
167         AND AL,AL\r
168         JZ L_5\r
169         MOV ESI,DWORD PTR [EBP-23]\r
170         INC DWORD PTR [EBP-23]\r
171         MOV EAX,DWORD PTR [ESI]\r
172         MOV ESI,DWORD PTR [EBP-23]\r
173         MOVSX EAX,BYTE PTR [ESI]\r
174         JMP L_7\r
175 L_8:\r
176 L_9:\r
177 L_10:\r
178 L_11:\r
179         MOV ESI,DWORD PTR [EBP-23]\r
180         MOVSX EAX,BYTE PTR [ESI]\r
181         SUB EAX,48\r
182         MOV _tabstops,EAX\r
183         JMP L_6\r
184 L_12:\r
185 L_13:\r
186         MOV EAX,1\r
187         MOV _NoFF,EAX\r
188         JMP L_6\r
189 L_14:\r
190 L_15:\r
191         MOV EAX,1\r
192         MOV _fDisplay,EAX\r
193         JMP L_6\r
194 L_16:\r
195 L_17:\r
196         MOV EAX,1\r
197         MOV _fBinary,EAX\r
198         JMP L_6\r
199 L_18:\r
200         PUSH  OFFSET L_lit+9\r
201         MOV EDI, 0\r
202         CALL _printf\r
203         ADD ESP,4\r
204         PUSH 1\r
205         CALL _exit\r
206         JMP L_6\r
207 L_7:\r
208         CMP EAX,98\r
209         JE L_17\r
210         CMP EAX,66\r
211         JE L_16\r
212         CMP EAX,100\r
213         JE L_15\r
214         CMP EAX,68\r
215         JE L_14\r
216         CMP EAX,102\r
217         JE L_13\r
218         CMP EAX,70\r
219         JE L_12\r
220         CMP EAX,56\r
221         JE L_11\r
222         CMP EAX,52\r
223         JE L_10\r
224         CMP EAX,50\r
225         JE L_9\r
226         CMP EAX,49\r
227         JE L_8\r
228         JMP L_18\r
229 L_6:\r
230         JMP L_19\r
231 L_5:\r
232         MOV ESI,OFFSET _name\r
233         MOVSX EAX,BYTE PTR [ESI]\r
234         AND EAX,EAX\r
235         JNZ L_20\r
236         PUSH OFFSET _name\r
237         MOV EAX,[EBP-12]\r
238         SHL EAX,2\r
239         MOV ESI,DWORD PTR [EBP+8]\r
240         ADD ESI,EAX\r
241         PUSH DWORD PTR [ESI]\r
242         PUSH 79\r
243         CALL _strncpy\r
244 L_20:\r
245 L_19:\r
246         JMP L_4\r
247 L_2:\r
248         MOV ESI,OFFSET _name\r
249         MOVSX EAX,BYTE PTR [ESI]\r
250         AND EAX,EAX\r
251         JNZ L_21\r
252         PUSH  OFFSET L_lit+24\r
253         MOV EDI, 0\r
254         CALL _printf\r
255         ADD ESP,4\r
256         PUSH  OFFSET L_lit+50\r
257         MOV EDI, 0\r
258         CALL _printf\r
259         ADD ESP,4\r
260         PUSH  OFFSET L_lit+89\r
261         MOV EDI, 0\r
262         CALL _printf\r
263         ADD ESP,4\r
264         PUSH  OFFSET L_lit+132\r
265         MOV EDI, 0\r
266         CALL _printf\r
267         ADD ESP,4\r
268         PUSH  OFFSET L_lit+165\r
269         MOV EDI, 0\r
270         CALL _printf\r
271         ADD ESP,4\r
272         PUSH  OFFSET L_lit+199\r
273         MOV EDI, 0\r
274         CALL _printf\r
275         ADD ESP,4\r
276         PUSH  OFFSET L_lit+242\r
277         MOV EDI, 0\r
278         CALL _printf\r
279         ADD ESP,4\r
280         PUSH 1\r
281         CALL _exit\r
282 L_21:\r
283         PUSH 3\r
284         PUSH OFFSET _lpt\r
285         PUSH 64\r
286         LEA EAX,DWORD PTR [EBP-12]\r
287         PUSH EAX\r
288         CALL FWORD PTR _DeviceStat\r
289         MOV DWORD PTR [EBP-4],EAX\r
290         MOV EAX,[EBP-4]\r
291         AND EAX,EAX\r
292         JZ L_22\r
293         PUSH  OFFSET L_lit+276\r
294         PUSH DWORD PTR [EBP-4]\r
295         MOV EDI, 4\r
296         CALL _printf\r
297         ADD ESP,8\r
298         PUSH DWORD PTR [EBP-4]\r
299         CALL FWORD PTR _ExitJob\r
300 L_22:\r
301         PUSH 3\r
302         PUSH 10\r
303         XOR EAX,EAX\r
304         PUSH EAX\r
305         XOR EAX,EAX\r
306         PUSH EAX\r
307         LEA EAX,DWORD PTR [EBP-12]\r
308         PUSH EAX\r
309         CALL FWORD PTR _DeviceOp\r
310         MOV DWORD PTR [EBP-4],EAX\r
311         MOV EAX,[EBP-4]\r
312         AND EAX,EAX\r
313         JZ L_23\r
314         PUSH  OFFSET L_lit+314\r
315         PUSH DWORD PTR [EBP-4]\r
316         MOV EDI, 4\r
317         CALL _printf\r
318         ADD ESP,8\r
319         PUSH DWORD PTR [EBP-4]\r
320         CALL FWORD PTR _ExitJob\r
321 L_23:\r
322         PUSH  OFFSET L_lit+335\r
323         PUSH OFFSET _name\r
324         MOV EDI, 4\r
325         CALL _printf\r
326         ADD ESP,8\r
327         PUSH OFFSET _name\r
328         PUSH  OFFSET L_lit+353\r
329         CALL _fopen\r
330         MOV _f,EAX\r
331         AND EAX,EAX\r
332         JNZ L_24\r
333         PUSH 3\r
334         PUSH 12\r
335         XOR EAX,EAX\r
336         PUSH EAX\r
337         XOR EAX,EAX\r
338         PUSH EAX\r
339         LEA EAX,DWORD PTR [EBP-12]\r
340         PUSH EAX\r
341         CALL FWORD PTR _DeviceOp\r
342         MOV DWORD PTR [EBP-4],EAX\r
343         PUSH  OFFSET L_lit+355\r
344         PUSH OFFSET _name\r
345         MOV EDI, 4\r
346         CALL _printf\r
347         ADD ESP,8\r
348         PUSH DWORD PTR [EBP-4]\r
349         CALL FWORD PTR _ExitJob\r
350 L_24:\r
351         XOR EAX,EAX\r
352         MOV _col,EAX\r
353         XOR EAX,EAX\r
354         MOV DWORD PTR [EBP-12],EAX\r
355         XOR EAX,EAX\r
356         MOV BYTE PTR [EBP-17],AL\r
357         XOR EAX,EAX\r
358         MOV BYTE PTR [EBP-19],AL\r
359 L_25:\r
360         MOVSX EAX,BYTE PTR [EBP-19]\r
361         AND EAX,EAX\r
362         SETZ AL\r
363         AND AL,AL\r
364         JZ L_27\r
365         MOV EAX,[EBP-4]\r
366         AND EAX,EAX\r
367         SETZ AL\r
368         AND AL,AL\r
369 L_27:\r
370         JZ L_26\r
371         MOV EAX,[EBP-12]\r
372         INC DWORD PTR [EBP-12]\r
373         PUSH _f\r
374         CALL _fgetc\r
375         MOV DWORD PTR [EBP-16],EAX\r
376         XOR EAX,EAX\r
377         MOV AL,BYTE PTR [EBP-17]\r
378         MOV BYTE PTR [EBP-18],AL\r
379         MOV EAX,[EBP-16]\r
380         AND EAX,255\r
381         MOV BYTE PTR [EBP-17],AL\r
382         MOV EAX,[EBP-16]\r
383         CMP EAX,-1\r
384         SETE AL\r
385         AND AL,AL\r
386         JZ L_28\r
387         MOV EAX,1\r
388         MOV BYTE PTR [EBP-19],AL\r
389         JMP L_29\r
390 L_28:\r
391         MOV EAX,_fBinary\r
392         AND EAX,EAX\r
393         JZ L_30\r
394         PUSH 3\r
395         PUSH 32\r
396         XOR EAX,EAX\r
397         PUSH EAX\r
398         PUSH 1\r
399         LEA EAX,BYTE PTR [EBP-18]\r
400         PUSH EAX\r
401         CALL FWORD PTR _DeviceOp\r
402         MOV DWORD PTR [EBP-4],EAX\r
403         JMP L_31\r
404 L_30:\r
405         XOR EAX,EAX\r
406         MOV AL,BYTE PTR [EBP-17]\r
407         JMP L_33\r
408 L_34:\r
409         PUSH 3\r
410         PUSH 32\r
411         XOR EAX,EAX\r
412         PUSH EAX\r
413         PUSH 1\r
414         LEA EAX,BYTE PTR [EBP-17]\r
415         PUSH EAX\r
416         CALL FWORD PTR _DeviceOp\r
417         MOV DWORD PTR [EBP-4],EAX\r
418         JMP L_32\r
419 L_35:\r
420         XOR EAX,EAX\r
421         MOV AL,BYTE PTR [EBP-18]\r
422         CMP EAX,13\r
423         SETNE AL\r
424         AND AL,AL\r
425         JZ L_36\r
426         MOV EAX,13\r
427         MOV BYTE PTR [EBP-18],AL\r
428         PUSH 3\r
429         PUSH 32\r
430         XOR EAX,EAX\r
431         PUSH EAX\r
432         PUSH 1\r
433         LEA EAX,BYTE PTR [EBP-18]\r
434         PUSH EAX\r
435         CALL FWORD PTR _DeviceOp\r
436         MOV DWORD PTR [EBP-4],EAX\r
437 L_36:\r
438         PUSH 3\r
439         PUSH 32\r
440         XOR EAX,EAX\r
441         PUSH EAX\r
442         PUSH 1\r
443         LEA EAX,BYTE PTR [EBP-17]\r
444         PUSH EAX\r
445         CALL FWORD PTR _DeviceOp\r
446         MOV DWORD PTR [EBP-4],EAX\r
447         MOV EAX,_fDisplay\r
448         AND EAX,EAX\r
449         JZ L_37\r
450         PUSH  OFFSET L_lit+372\r
451         XOR EAX,EAX\r
452         MOV AL,BYTE PTR [EBP-18]\r
453         PUSH EAX\r
454         MOV EDI, 4\r
455         CALL _printf\r
456         ADD ESP,8\r
457 L_37:\r
458         XOR EAX,EAX\r
459         MOV _col,EAX\r
460         JMP L_32\r
461 L_38:\r
462 L_39:\r
463         PUSH 3\r
464         PUSH 32\r
465         XOR EAX,EAX\r
466         PUSH EAX\r
467         PUSH 1\r
468         PUSH  OFFSET L_lit+375\r
469         CALL FWORD PTR _DeviceOp\r
470         MOV DWORD PTR [EBP-4],EAX\r
471         MOV EAX,_col\r
472         INC _col\r
473         MOV EAX,_fDisplay\r
474         AND EAX,EAX\r
475         JZ L_42\r
476         PUSH  OFFSET L_lit+377\r
477         MOV EDI, 0\r
478         CALL _printf\r
479         ADD ESP,4\r
480 L_42:\r
481 L_40:\r
482         MOV EAX,_col\r
483         MOV ECX,_tabstops\r
484         CDQ\r
485         IDIV ECX\r
486         MOV EAX,EDX\r
487         AND EAX,EAX\r
488         JNZ L_39\r
489 L_41:\r
490         JMP L_32\r
491 L_43:\r
492         MOV EAX,_fDisplay\r
493         AND EAX,EAX\r
494         JZ L_44\r
495         PUSH  OFFSET L_lit+379\r
496         XOR EAX,EAX\r
497         MOV AL,BYTE PTR [EBP-17]\r
498         PUSH EAX\r
499         MOV EDI, 4\r
500         CALL _printf\r
501         ADD ESP,8\r
502 L_44:\r
503         MOV EAX,_col\r
504         INC _col\r
505         PUSH 3\r
506         PUSH 32\r
507         XOR EAX,EAX\r
508         PUSH EAX\r
509         PUSH 1\r
510         LEA EAX,BYTE PTR [EBP-17]\r
511         PUSH EAX\r
512         CALL FWORD PTR _DeviceOp\r
513         MOV DWORD PTR [EBP-4],EAX\r
514         MOV EAX,[EBP-4]\r
515         AND EAX,EAX\r
516         JZ L_45\r
517         PUSH  OFFSET L_lit+382\r
518         PUSH DWORD PTR [EBP-4]\r
519         MOV EDI, 4\r
520         CALL _printf\r
521         ADD ESP,8\r
522 L_45:\r
523         JMP L_32\r
524 L_33:\r
525         CMP EAX,9\r
526         JE L_38\r
527         CMP EAX,10\r
528         JE L_35\r
529         CMP EAX,13\r
530         JE L_34\r
531         JMP L_43\r
532 L_32:\r
533 L_31:\r
534 L_29:\r
535         MOV EAX,[EBP-12]\r
536         MOV ECX,100\r
537         CDQ\r
538         IDIV ECX\r
539         MOV EAX,EDX\r
540         CMP EAX,0\r
541         SETE AL\r
542         AND AL,AL\r
543         JZ L_46\r
544         PUSH OFFSET _key\r
545         XOR EAX,EAX\r
546         PUSH EAX\r
547         CALL FWORD PTR _ReadKbd\r
548         MOV DWORD PTR [EBP-8],EAX\r
549         MOV EAX,[EBP-8]\r
550         AND EAX,EAX\r
551         JNZ L_47\r
552         MOV EAX,_key\r
553         AND EAX,0\r
554         JZ L_48\r
555         MOV EAX,1\r
556         MOV BYTE PTR [EBP-19],AL\r
557         MOV EAX,4\r
558         MOV DWORD PTR [EBP-4],EAX\r
559 L_48:\r
560 L_47:\r
561 L_46:\r
562         JMP L_25\r
563 L_26:\r
564         MOV EAX,_fBinary\r
565         AND EAX,EAX\r
566         SETZ AL\r
567         AND AL,AL\r
568         JZ L_49\r
569         MOV EAX,_NoFF\r
570         AND EAX,EAX\r
571         SETZ AL\r
572         AND AL,AL\r
573 L_49:\r
574         JZ L_50\r
575         PUSH 3\r
576         PUSH 32\r
577         XOR EAX,EAX\r
578         PUSH EAX\r
579         PUSH 1\r
580         PUSH  OFFSET L_lit+407\r
581         CALL FWORD PTR _DeviceOp\r
582         MOV DWORD PTR [EBP-4],EAX\r
583 L_50:\r
584         PUSH _f\r
585         CALL _fclose\r
586         PUSH 3\r
587         PUSH 11\r
588         XOR EAX,EAX\r
589         PUSH EAX\r
590         XOR EAX,EAX\r
591         PUSH EAX\r
592         LEA EAX,DWORD PTR [EBP-12]\r
593         PUSH EAX\r
594         CALL FWORD PTR _DeviceOp\r
595         MOV DWORD PTR [EBP-4],EAX\r
596         MOV EAX,[EBP-4]\r
597         AND EAX,EAX\r
598         JZ L_51\r
599         PUSH  OFFSET L_lit+409\r
600         PUSH DWORD PTR [EBP-4]\r
601         MOV EDI, 4\r
602         CALL _printf\r
603         ADD ESP,8\r
604 L_51:\r
605         PUSH  OFFSET L_lit+438\r
606         MOV EDI, 0\r
607         CALL _printf\r
608         ADD ESP,4\r
609         PUSH DWORD PTR [EBP-4]\r
610         CALL FWORD PTR _ExitJob\r
611         MOV ESP,EBP\r
612         POP EBP\r
613         RETN 8\r