]> pd.if.org Git - mmurtl/blob - ossource/jobcorig.asm
autocommit for file dated 1995-01-17 17:40:26
[mmurtl] / ossource / jobcorig.asm
1 \r
2 .DATA\r
3 EXTRN _AllocExch FWORD\r
4 EXTRN _DeAllocExch FWORD\r
5 EXTRN _GetTSSExch FWORD\r
6 EXTRN _SetPriority FWORD\r
7 EXTRN _NewTask FWORD\r
8 EXTRN _SpawnTask FWORD\r
9 EXTRN _SendMsg FWORD\r
10 EXTRN _ISendMsg FWORD\r
11 EXTRN _WaitMsg FWORD\r
12 EXTRN _CheckMsg FWORD\r
13 EXTRN _Request FWORD\r
14 EXTRN _MoveRequest FWORD\r
15 EXTRN _Respond FWORD\r
16 EXTRN _AllocPage FWORD\r
17 EXTRN _AllocOSPage FWORD\r
18 EXTRN _AllocDMAPage FWORD\r
19 EXTRN _DeAllocPage FWORD\r
20 EXTRN _QueryPages FWORD\r
21 EXTRN _GetPhyAdd FWORD\r
22 EXTRN _AliasMem FWORD\r
23 EXTRN _DeAliasMem FWORD\r
24 EXTRN _CopyData FWORD\r
25 EXTRN _FillData FWORD\r
26 EXTRN _CompareNCS FWORD\r
27 EXTRN _Compare FWORD\r
28 EXTRN _OutByte FWORD\r
29 EXTRN _OutWord FWORD\r
30 EXTRN _InByte FWORD\r
31 EXTRN _InWord FWORD\r
32 EXTRN _ReadCMOS FWORD\r
33 EXTRN _Alarm FWORD\r
34 EXTRN _KillAlarm FWORD\r
35 EXTRN _Sleep FWORD\r
36 EXTRN _MicroDelay FWORD\r
37 EXTRN _GetCMOSTime FWORD\r
38 EXTRN _GetCMOSDate FWORD\r
39 EXTRN _GetTimerTick FWORD\r
40 EXTRN _Tone FWORD\r
41 EXTRN _Beep FWORD\r
42 EXTRN _SetVidOwner FWORD\r
43 EXTRN _SetNormVid FWORD\r
44 EXTRN _GetNormVid FWORD\r
45 EXTRN _ClrScr FWORD\r
46 EXTRN _GetVidChar FWORD\r
47 EXTRN _SetXY FWORD\r
48 EXTRN _PutVidAttrs FWORD\r
49 EXTRN _PutVidChars FWORD\r
50 EXTRN _GetVidOwner FWORD\r
51 EXTRN _GetXY FWORD\r
52 EXTRN _ScrollVid FWORD\r
53 EXTRN _TTYOut FWORD\r
54 EXTRN _EditLine FWORD\r
55 EXTRN _ReadKbd FWORD\r
56 EXTRN _GetpJCB FWORD\r
57 EXTRN _GetJobNum FWORD\r
58 EXTRN _LoadNewJob FWORD\r
59 EXTRN _Chain FWORD\r
60 EXTRN _ExitJob FWORD\r
61 EXTRN _KillJob FWORD\r
62 EXTRN _SetUserName FWORD\r
63 EXTRN _GetUserName FWORD\r
64 EXTRN _SetCmdLine FWORD\r
65 EXTRN _GetCmdLine FWORD\r
66 EXTRN _SetPath FWORD\r
67 EXTRN _GetPath FWORD\r
68 EXTRN _SetExitJob FWORD\r
69 EXTRN _GetExitJob FWORD\r
70 EXTRN _SetSysIn FWORD\r
71 EXTRN _GetSysIn FWORD\r
72 EXTRN _SetSysOut FWORD\r
73 EXTRN _GetSysOut FWORD\r
74 EXTRN _SetJobName FWORD\r
75 EXTRN _RegisterSvc FWORD\r
76 EXTRN _UnRegisterSvc FWORD\r
77 EXTRN _GetSystemDisk FWORD\r
78 EXTRN _CreateFile FWORD\r
79 EXTRN _CreateDir FWORD\r
80 EXTRN _DeleteDir FWORD\r
81 EXTRN _OpenFile FWORD\r
82 EXTRN _RenameFile FWORD\r
83 EXTRN _GetFileSize FWORD\r
84 EXTRN _SetFileSize FWORD\r
85 EXTRN _ReadBlock FWORD\r
86 EXTRN _WriteBlock FWORD\r
87 EXTRN _ReadBytes FWORD\r
88 EXTRN _WriteBytes FWORD\r
89 EXTRN _GetFileLFA FWORD\r
90 EXTRN _SetFileLFA FWORD\r
91 EXTRN _CloseFile FWORD\r
92 EXTRN _DeleteFile FWORD\r
93 EXTRN _GetDirSector FWORD\r
94 _offCode DD 0\r
95 _offData DD 0\r
96 _nCDFIX DD 0\r
97 _oCDFIX DD 0\r
98 _nCCFIX DD 0\r
99 _oCCFIX DD 0\r
100 _nDDFIX DD 0\r
101 _oDDFIX DD 0\r
102 _nDCFIX DD 0\r
103 _oDCFIX DD 0\r
104 EXTRN _KillExch DD\r
105 L_lit DB 69,114,99,32,102,114,111,109,32,71,101,116,82,117,110,70\r
106  DB 105,108,101,32,105,110,32,74,111,98,67,58,32,37,100,13\r
107  DB 10,0,75,66,68,0,86,73,68,0\r
108 _TmpStack DD 128 DUP(0)\r
109 _pNewJCB DD 0h\r
110 _pTmpJCB DD 0h\r
111 _pCrntJCB DD 0h\r
112 _JobNum DD 0h\r
113 _JobNumE DD 0h\r
114 _job_fhE DD 0h\r
115 _ExchE DD 0h\r
116 _ercE DD 0h\r
117 _iE DD 0h\r
118 _BogusMsg DD 2 DUP(0)\r
119 _pPDE DD 0h\r
120 _pExchJCBE DD 0h\r
121 _KeyCodeE DD 0h\r
122 _aFileE DB 80 DUP(0)\r
123 _cbFileE DD 0h\r
124 _pCode DD 0h\r
125 _pData DD 0h\r
126 _pStack DD 0h\r
127 _sCode DD 0h\r
128 _sData DD 0h\r
129 _sStack DD 0h\r
130 _oCode DD 0h\r
131 _oData DD 0h\r
132 _pStart DD 0h\r
133 _filetype DB 0h\r
134 _tag DB 5 DUP(0)\r
135 \r
136 \r
137 .CODE\r
138 EXTRN _AllocJCB: NEAR\r
139 EXTRN _RemoveRdyJob: NEAR\r
140 EXTRN _GetExchOwner: NEAR\r
141 EXTRN _SetExchOwner: NEAR\r
142 EXTRN _SendAbort: NEAR\r
143 EXTRN _xprintf: NEAR\r
144 EXTRN _Dump: NEAR\r
145 _CleanUserPD:\r
146         PUSH EBP\r
147         MOV EBP,ESP\r
148         SUB ESP,24\r
149         MOV EAX,768\r
150         MOV [EBP-4],EAX\r
151 L_1:\r
152         MOV EAX,[EBP-4]\r
153         CMP EAX,1024\r
154         SETL AL\r
155         AND EAX,01h\r
156         JZ L_2\r
157         JMP SHORT L_3\r
158 L_4:\r
159         MOV EAX,[EBP-4]\r
160         INC DWORD PTR [EBP-4]\r
161         JMP SHORT L_1\r
162 L_3:\r
163         MOV EAX,[EBP-4]\r
164         SHL EAX,2\r
165         MOV ESI,[EBP+8]\r
166         ADD ESI,EAX\r
167         MOV EAX,[ESI]\r
168         AND EAX,EAX\r
169         JZ L_5\r
170         MOV EAX,[EBP-4]\r
171         SHL EAX,2\r
172         MOV ESI,[EBP+8]\r
173         ADD ESI,EAX\r
174         MOV EAX,[ESI]\r
175         AND EAX,-4096\r
176         MOV [EBP-20],EAX\r
177         XOR EAX,EAX\r
178         MOV [EBP-8],EAX\r
179 L_6:\r
180         MOV EAX,[EBP-8]\r
181         CMP EAX,1024\r
182         SETL AL\r
183         AND EAX,01h\r
184         JZ L_7\r
185         JMP SHORT L_8\r
186 L_9:\r
187         MOV EAX,[EBP-8]\r
188         INC DWORD PTR [EBP-8]\r
189         JMP SHORT L_6\r
190 L_8:\r
191         XOR EAX,EAX\r
192         MOV [EBP-12],EAX\r
193         MOV EAX,[EBP-4]\r
194         SUB EAX,512\r
195         MOV ECX,4194304\r
196         IMUL ECX\r
197         PUSH EAX\r
198         MOV EAX,[EBP-8]\r
199         MOV ECX,4096\r
200         IMUL ECX\r
201         POP EBX\r
202         ADD EAX,EBX\r
203         MOV [EBP-24],EAX\r
204 L_10:\r
205         MOV EAX,[EBP-8]\r
206         INC DWORD PTR [EBP-8]\r
207         SHL EAX,2\r
208         MOV ESI,[EBP-20]\r
209         ADD ESI,EAX\r
210         MOV EAX,[ESI]\r
211         AND EAX,EAX\r
212         JZ L_12\r
213         MOV EAX,[EBP-8]\r
214         CMP EAX,1024\r
215         SETL AL\r
216         AND EAX,01h\r
217 L_12:\r
218         JZ L_11\r
219         MOV EAX,[EBP-12]\r
220         INC DWORD PTR [EBP-12]\r
221         JMP L_10\r
222 L_11:\r
223         MOV EAX,[EBP-12]\r
224         AND EAX,EAX\r
225         JZ L_13\r
226         PUSH DWORD PTR [EBP-24]\r
227         PUSH DWORD PTR [EBP-12]\r
228         CALL FWORD PTR _DeAllocPage\r
229         MOV [EBP-16],EAX\r
230 L_13:\r
231         JMP L_9\r
232 L_7:\r
233 L_5:\r
234         JMP L_4\r
235 L_2:\r
236         MOV ESP,EBP\r
237         POP EBP\r
238         RETN 4\r
239 _GetRunFile:\r
240         PUSH EBP\r
241         MOV EBP,ESP\r
242         SUB ESP,18\r
243         XOR EAX,EAX\r
244         MOV _offCode,EAX\r
245         XOR EAX,EAX\r
246         MOV _offData,EAX\r
247         XOR EAX,EAX\r
248         MOV _nCDFIX,EAX\r
249         XOR EAX,EAX\r
250         MOV _oCDFIX,EAX\r
251         XOR EAX,EAX\r
252         MOV _nCCFIX,EAX\r
253         XOR EAX,EAX\r
254         MOV _oCCFIX,EAX\r
255         XOR EAX,EAX\r
256         MOV _nDDFIX,EAX\r
257         XOR EAX,EAX\r
258         MOV _oDDFIX,EAX\r
259         XOR EAX,EAX\r
260         MOV _nDCFIX,EAX\r
261         XOR EAX,EAX\r
262         MOV _oDCFIX,EAX\r
263         MOV ESI,[EBP+8]\r
264         XOR EAX,EAX\r
265         MOV [ESI],EAX\r
266         PUSH DWORD PTR [EBP+16]\r
267         PUSH DWORD PTR [EBP+12]\r
268         PUSH 0\r
269         PUSH 1\r
270         LEA EAX,[EBP-12]\r
271         PUSH EAX\r
272         CALL FWORD PTR _OpenFile\r
273         MOV [EBP-4],EAX\r
274         AND EAX,EAX\r
275         JNZ L_14\r
276         XOR AL,AL\r
277         MOV [EBP-17],AL\r
278 L_15:\r
279         MOV EAX,[EBP-4]\r
280         AND EAX,EAX\r
281         SETZ AL\r
282         AND EAX,01\r
283         AND EAX,EAX\r
284         JZ L_17\r
285         MOVSX EAX,BYTE PTR [EBP-17]\r
286         AND EAX,EAX\r
287         SETZ AL\r
288         AND EAX,01\r
289 L_17:\r
290         AND EAX,EAX\r
291         JZ L_16\r
292         MOV ESI,OFFSET _tag\r
293         XOR AL,AL\r
294         MOV [ESI],AL\r
295         PUSH DWORD PTR [EBP-12]\r
296         PUSH OFFSET _tag\r
297         PUSH 5\r
298         LEA EAX,[EBP-16]\r
299         PUSH EAX\r
300         CALL FWORD PTR _ReadBytes\r
301         MOV [EBP-4],EAX\r
302         MOV ESI,OFFSET _tag\r
303         MOV AL,[ESI]\r
304         AND EAX,0FFh\r
305         JMP L_19\r
306 L_20:\r
307         PUSH DWORD PTR [EBP-12]\r
308         PUSH OFFSET _filetype\r
309         PUSH 1\r
310         LEA EAX,[EBP-16]\r
311         PUSH EAX\r
312         CALL FWORD PTR _ReadBytes\r
313         MOV [EBP-4],EAX\r
314         MOVSX EAX,BYTE PTR _filetype\r
315         CMP EAX,1\r
316         SETL AL\r
317         AND EAX,01h\r
318         JNZ L_21\r
319         MOVSX EAX,BYTE PTR _filetype\r
320         CMP EAX,3\r
321         SETG AL\r
322         AND EAX,01h\r
323 L_21:\r
324         JZ L_22\r
325         MOV EAX,74\r
326         MOV [EBP-4],EAX\r
327 L_22:\r
328         JMP L_18\r
329 L_23:\r
330         PUSH DWORD PTR [EBP-12]\r
331         PUSH OFFSET _sStack\r
332         PUSH 4\r
333         LEA EAX,[EBP-16]\r
334         PUSH EAX\r
335         CALL FWORD PTR _ReadBytes\r
336         MOV [EBP-4],EAX\r
337         AND EAX,EAX\r
338         JNZ L_24\r
339         PUSH DWORD PTR [EBP-12]\r
340         PUSH OFFSET _sCode\r
341         PUSH 4\r
342         LEA EAX,[EBP-16]\r
343         PUSH EAX\r
344         CALL FWORD PTR _ReadBytes\r
345         MOV [EBP-4],EAX\r
346 L_24:\r
347         MOV EAX,[EBP-4]\r
348         AND EAX,EAX\r
349         JNZ L_25\r
350         PUSH DWORD PTR [EBP-12]\r
351         PUSH OFFSET _sData\r
352         PUSH 4\r
353         LEA EAX,[EBP-16]\r
354         PUSH EAX\r
355         CALL FWORD PTR _ReadBytes\r
356         MOV [EBP-4],EAX\r
357 L_25:\r
358         JMP L_18\r
359 L_26:\r
360         PUSH DWORD PTR [EBP-12]\r
361         PUSH OFFSET _offData\r
362         PUSH 4\r
363         LEA EAX,[EBP-16]\r
364         PUSH EAX\r
365         CALL FWORD PTR _ReadBytes\r
366         MOV [EBP-4],EAX\r
367         JMP L_18\r
368 L_27:\r
369         PUSH DWORD PTR [EBP-12]\r
370         PUSH OFFSET _offCode\r
371         PUSH 4\r
372         LEA EAX,[EBP-16]\r
373         PUSH EAX\r
374         CALL FWORD PTR _ReadBytes\r
375         MOV [EBP-4],EAX\r
376         JMP L_18\r
377 L_28:\r
378         PUSH DWORD PTR [EBP-12]\r
379         PUSH OFFSET _pStart\r
380         PUSH 4\r
381         LEA EAX,[EBP-16]\r
382         PUSH EAX\r
383         CALL FWORD PTR _ReadBytes\r
384         MOV [EBP-4],EAX\r
385         JMP L_18\r
386 L_29:\r
387         PUSH DWORD PTR [EBP-12]\r
388         PUSH OFFSET _oCode\r
389         CALL FWORD PTR _GetFileLFA\r
390         MOV [EBP-4],EAX\r
391         AND EAX,EAX\r
392         JNZ L_30\r
393         PUSH DWORD PTR [EBP-12]\r
394         MOV ESI,OFFSET _tag\r
395         ADD ESI,1\r
396         MOV EAX,_oCode\r
397         ADD EAX,[ESI]\r
398         PUSH EAX\r
399         CALL FWORD PTR _SetFileLFA\r
400         MOV [EBP-4],EAX\r
401 L_30:\r
402         JMP L_18\r
403 L_31:\r
404         PUSH DWORD PTR [EBP-12]\r
405         PUSH OFFSET _oData\r
406         CALL FWORD PTR _GetFileLFA\r
407         MOV [EBP-4],EAX\r
408         AND EAX,EAX\r
409         JNZ L_32\r
410         PUSH DWORD PTR [EBP-12]\r
411         MOV ESI,OFFSET _tag\r
412         ADD ESI,1\r
413         MOV EAX,_oData\r
414         ADD EAX,[ESI]\r
415         PUSH EAX\r
416         CALL FWORD PTR _SetFileLFA\r
417         MOV [EBP-4],EAX\r
418 L_32:\r
419         JMP L_18\r
420 L_33:\r
421         PUSH DWORD PTR [EBP-12]\r
422         PUSH OFFSET _oCDFIX\r
423         CALL FWORD PTR _GetFileLFA\r
424         MOV [EBP-4],EAX\r
425         MOV ESI,OFFSET _tag\r
426         ADD ESI,1\r
427         MOV EAX,[ESI]\r
428         MOV ECX,4\r
429         CDQ\r
430         IDIV ECX\r
431         MOV _nCDFIX,EAX\r
432         MOV EAX,[EBP-4]\r
433         AND EAX,EAX\r
434         JNZ L_34\r
435         PUSH DWORD PTR [EBP-12]\r
436         MOV ESI,OFFSET _tag\r
437         ADD ESI,1\r
438         MOV EAX,_oCDFIX\r
439         ADD EAX,[ESI]\r
440         PUSH EAX\r
441         CALL FWORD PTR _SetFileLFA\r
442         MOV [EBP-4],EAX\r
443 L_34:\r
444         JMP L_18\r
445 L_35:\r
446         PUSH DWORD PTR [EBP-12]\r
447         PUSH OFFSET _oCCFIX\r
448         CALL FWORD PTR _GetFileLFA\r
449         MOV [EBP-4],EAX\r
450         MOV ESI,OFFSET _tag\r
451         ADD ESI,1\r
452         MOV EAX,[ESI]\r
453         MOV ECX,4\r
454         CDQ\r
455         IDIV ECX\r
456         MOV _nCCFIX,EAX\r
457         MOV EAX,[EBP-4]\r
458         AND EAX,EAX\r
459         JNZ L_36\r
460         PUSH DWORD PTR [EBP-12]\r
461         MOV ESI,OFFSET _tag\r
462         ADD ESI,1\r
463         MOV EAX,_oCCFIX\r
464         ADD EAX,[ESI]\r
465         PUSH EAX\r
466         CALL FWORD PTR _SetFileLFA\r
467         MOV [EBP-4],EAX\r
468 L_36:\r
469         JMP L_18\r
470 L_37:\r
471         PUSH DWORD PTR [EBP-12]\r
472         PUSH OFFSET _oDDFIX\r
473         CALL FWORD PTR _GetFileLFA\r
474         MOV [EBP-4],EAX\r
475         MOV ESI,OFFSET _tag\r
476         ADD ESI,1\r
477         MOV EAX,[ESI]\r
478         MOV ECX,4\r
479         CDQ\r
480         IDIV ECX\r
481         MOV _nDDFIX,EAX\r
482         MOV EAX,[EBP-4]\r
483         AND EAX,EAX\r
484         JNZ L_38\r
485         PUSH DWORD PTR [EBP-12]\r
486         MOV ESI,OFFSET _tag\r
487         ADD ESI,1\r
488         MOV EAX,_oDDFIX\r
489         ADD EAX,[ESI]\r
490         PUSH EAX\r
491         CALL FWORD PTR _SetFileLFA\r
492         MOV [EBP-4],EAX\r
493 L_38:\r
494         JMP L_18\r
495 L_39:\r
496         PUSH DWORD PTR [EBP-12]\r
497         PUSH OFFSET _oDCFIX\r
498         CALL FWORD PTR _GetFileLFA\r
499         MOV [EBP-4],EAX\r
500         MOV ESI,OFFSET _tag\r
501         ADD ESI,1\r
502         MOV EAX,[ESI]\r
503         MOV ECX,4\r
504         CDQ\r
505         IDIV ECX\r
506         MOV _nDCFIX,EAX\r
507         MOV EAX,[EBP-4]\r
508         AND EAX,EAX\r
509         JNZ L_40\r
510         PUSH DWORD PTR [EBP-12]\r
511         MOV ESI,OFFSET _tag\r
512         ADD ESI,1\r
513         MOV EAX,_oDCFIX\r
514         ADD EAX,[ESI]\r
515         PUSH EAX\r
516         CALL FWORD PTR _SetFileLFA\r
517         MOV [EBP-4],EAX\r
518 L_40:\r
519         JMP L_18\r
520 L_41:\r
521         MOV AL,1\r
522         MOV [EBP-17],AL\r
523         JMP L_18\r
524 L_42:\r
525         PUSH DWORD PTR [EBP-12]\r
526         LEA EAX,[EBP-8]\r
527         PUSH EAX\r
528         CALL FWORD PTR _GetFileLFA\r
529         MOV [EBP-4],EAX\r
530         MOV ESI,OFFSET _tag\r
531         ADD ESI,1\r
532         MOV EAX,[ESI]\r
533         CMP EAX,1024\r
534         SETG AL\r
535         AND EAX,01h\r
536         JZ L_43\r
537         MOV EAX,74\r
538         MOV [EBP-4],EAX\r
539 L_43:\r
540         MOV EAX,[EBP-4]\r
541         AND EAX,EAX\r
542         JNZ L_44\r
543         PUSH DWORD PTR [EBP-12]\r
544         MOV ESI,OFFSET _tag\r
545         ADD ESI,1\r
546         MOV EAX,[EBP-8]\r
547         ADD EAX,[ESI]\r
548         PUSH EAX\r
549         CALL FWORD PTR _SetFileLFA\r
550         MOV [EBP-4],EAX\r
551 L_44:\r
552         MOV EAX,[EBP-4]\r
553         AND EAX,EAX\r
554         JZ L_45\r
555         MOV EAX,74\r
556         MOV [EBP-4],EAX\r
557 L_45:\r
558         JMP L_18\r
559 L_19:\r
560         CMP EAX,255\r
561         JE L_41\r
562         CMP EAX,195\r
563         JE L_39\r
564         CMP EAX,194\r
565         JE L_37\r
566         CMP EAX,193\r
567         JE L_35\r
568         CMP EAX,192\r
569         JE L_33\r
570         CMP EAX,178\r
571         JE L_31\r
572         CMP EAX,176\r
573         JE L_29\r
574         CMP EAX,150\r
575         JE L_28\r
576         CMP EAX,148\r
577         JE L_27\r
578         CMP EAX,146\r
579         JE L_26\r
580         CMP EAX,144\r
581         JE L_23\r
582         CMP EAX,128\r
583         JE L_20\r
584         JMP L_42\r
585 L_18:\r
586         JMP L_15\r
587 L_16:\r
588         MOV EAX,[EBP-4]\r
589         AND EAX,EAX\r
590         JZ L_46\r
591         PUSH DWORD PTR [EBP-12]\r
592         CALL FWORD PTR _CloseFile\r
593 L_46:\r
594 L_14:\r
595         MOV EAX,[EBP-4]\r
596         AND EAX,EAX\r
597         JNZ L_47\r
598         MOV ESI,[EBP+8]\r
599         MOV EAX,[EBP-12]\r
600         MOV [ESI],EAX\r
601 L_47:\r
602         MOV EAX,[EBP-4]\r
603         AND EAX,EAX\r
604         JZ L_48\r
605         PUSH OFFSET L_lit+0\r
606         PUSH DWORD PTR [EBP-4]\r
607         MOV EDI, 4\r
608         CALL _xprintf\r
609         ADD ESP,8\r
610 L_48:\r
611         MOV EAX,[EBP-4]\r
612 L_49:\r
613         MOV ESP,EBP\r
614         POP EBP\r
615         RETN 12\r
616 PUBLIC __SetExitJob:\r
617         PUSH EBP\r
618         MOV EBP,ESP\r
619         SUB ESP,4\r
620         LEA EAX,[EBP-4]\r
621         PUSH EAX\r
622         CALL FWORD PTR _GetJobNum\r
623         PUSH DWORD PTR [EBP-4]\r
624         PUSH OFFSET _pTmpJCB\r
625         CALL FWORD PTR _GetpJCB\r
626         MOV EAX,[EBP+12]\r
627         CMP EAX,79\r
628         SETG AL\r
629         AND EAX,01h\r
630         JZ L_50\r
631         MOV EAX,76\r
632         JMP L_51\r
633 L_50:\r
634         MOV EAX,[EBP+12]\r
635         AND EAX,EAX\r
636         JNZ L_53\r
637         MOV ESI,_pTmpJCB\r
638         ADD ESI,146\r
639         XOR AL,AL\r
640         MOV [ESI],AL\r
641         JMP L_54\r
642 L_53:\r
643         PUSH DWORD PTR [EBP+16]\r
644         MOV ESI,_pTmpJCB\r
645         ADD ESI,146\r
646         MOV EAX,1\r
647         ADD ESI,EAX\r
648         PUSH ESI\r
649         PUSH DWORD PTR [EBP+12]\r
650         CALL FWORD PTR _CopyData\r
651         MOV ESI,_pTmpJCB\r
652         ADD ESI,146\r
653         MOV EAX,[EBP+12]\r
654         MOV [ESI],AL\r
655 L_54:\r
656 L_52:\r
657         XOR EAX,EAX\r
658 L_51:\r
659         MOV ESP,EBP\r
660         POP EBP\r
661         RETF 8\r
662 PUBLIC __GetExitJob:\r
663         PUSH EBP\r
664         MOV EBP,ESP\r
665         SUB ESP,8\r
666         LEA EAX,[EBP-4]\r
667         PUSH EAX\r
668         CALL FWORD PTR _GetJobNum\r
669         PUSH DWORD PTR [EBP-4]\r
670         PUSH OFFSET _pTmpJCB\r
671         CALL FWORD PTR _GetpJCB\r
672         MOV ESI,_pTmpJCB\r
673         ADD ESI,146\r
674         MOVSX EAX,BYTE PTR [ESI]\r
675         MOV [EBP-8],EAX\r
676         AND EAX,EAX\r
677         JZ L_55\r
678         MOV ESI,_pTmpJCB\r
679         ADD ESI,146\r
680         MOV EAX,1\r
681         ADD ESI,EAX\r
682         PUSH ESI\r
683         PUSH DWORD PTR [EBP+16]\r
684         PUSH DWORD PTR [EBP-8]\r
685         CALL FWORD PTR _CopyData\r
686 L_55:\r
687         MOV ESI,[EBP+12]\r
688         MOV EAX,[EBP-8]\r
689         MOV [ESI],EAX\r
690         XOR EAX,EAX\r
691         MOV ESP,EBP\r
692         POP EBP\r
693         RETF 8\r
694 PUBLIC __SetPath:\r
695         PUSH EBP\r
696         MOV EBP,ESP\r
697         SUB ESP,4\r
698         LEA EAX,[EBP-4]\r
699         PUSH EAX\r
700         CALL FWORD PTR _GetJobNum\r
701         PUSH DWORD PTR [EBP-4]\r
702         PUSH OFFSET _pTmpJCB\r
703         CALL FWORD PTR _GetpJCB\r
704         MOV EAX,[EBP+12]\r
705         CMP EAX,69\r
706         SETG AL\r
707         AND EAX,01h\r
708         JZ L_57\r
709         MOV EAX,76\r
710         JMP L_58\r
711 L_57:\r
712         MOV EAX,[EBP+12]\r
713         AND EAX,EAX\r
714         JNZ L_60\r
715         MOV ESI,_pTmpJCB\r
716         ADD ESI,76\r
717         XOR AL,AL\r
718         MOV [ESI],AL\r
719         JMP L_61\r
720 L_60:\r
721         PUSH DWORD PTR [EBP+16]\r
722         MOV ESI,_pTmpJCB\r
723         ADD ESI,76\r
724         MOV EAX,1\r
725         ADD ESI,EAX\r
726         PUSH ESI\r
727         PUSH DWORD PTR [EBP+12]\r
728         CALL FWORD PTR _CopyData\r
729         MOV ESI,_pTmpJCB\r
730         ADD ESI,76\r
731         MOV EAX,[EBP+12]\r
732         MOV [ESI],AL\r
733 L_61:\r
734 L_59:\r
735         XOR EAX,EAX\r
736 L_58:\r
737         MOV ESP,EBP\r
738         POP EBP\r
739         RETF 8\r
740 PUBLIC __GetPath:\r
741         PUSH EBP\r
742         MOV EBP,ESP\r
743         SUB ESP,8\r
744         PUSH DWORD PTR [EBP+20]\r
745         PUSH OFFSET _pTmpJCB\r
746         CALL FWORD PTR _GetpJCB\r
747         MOV [EBP-8],EAX\r
748         AND EAX,EAX\r
749         JNZ L_62\r
750         MOV ESI,_pTmpJCB\r
751         ADD ESI,76\r
752         MOVSX EAX,BYTE PTR [ESI]\r
753         MOV [EBP-4],EAX\r
754         AND EAX,EAX\r
755         JZ L_63\r
756         MOV ESI,_pTmpJCB\r
757         ADD ESI,76\r
758         MOV EAX,1\r
759         ADD ESI,EAX\r
760         PUSH ESI\r
761         PUSH DWORD PTR [EBP+16]\r
762         PUSH DWORD PTR [EBP-4]\r
763         CALL FWORD PTR _CopyData\r
764 L_63:\r
765         MOV ESI,[EBP+12]\r
766         MOV EAX,[EBP-4]\r
767         MOV [ESI],EAX\r
768 L_62:\r
769         MOV EAX,[EBP-8]\r
770         MOV ESP,EBP\r
771         POP EBP\r
772         RETF 12\r
773 PUBLIC __SetCmdLine:\r
774         PUSH EBP\r
775         MOV EBP,ESP\r
776         SUB ESP,4\r
777         LEA EAX,[EBP-4]\r
778         PUSH EAX\r
779         CALL FWORD PTR _GetJobNum\r
780         PUSH DWORD PTR [EBP-4]\r
781         PUSH OFFSET _pTmpJCB\r
782         CALL FWORD PTR _GetpJCB\r
783         MOV EAX,[EBP+12]\r
784         CMP EAX,79\r
785         SETG AL\r
786         AND EAX,01h\r
787         JZ L_65\r
788         MOV EAX,76\r
789         JMP L_66\r
790 L_65:\r
791         MOV EAX,[EBP+12]\r
792         AND EAX,EAX\r
793         JNZ L_68\r
794         MOV ESI,_pTmpJCB\r
795         ADD ESI,226\r
796         XOR AL,AL\r
797         MOV [ESI],AL\r
798         JMP L_69\r
799 L_68:\r
800         PUSH DWORD PTR [EBP+16]\r
801         MOV ESI,_pTmpJCB\r
802         ADD ESI,226\r
803         MOV EAX,1\r
804         ADD ESI,EAX\r
805         PUSH ESI\r
806         PUSH DWORD PTR [EBP+12]\r
807         CALL FWORD PTR _CopyData\r
808         MOV ESI,_pTmpJCB\r
809         ADD ESI,226\r
810         MOV EAX,[EBP+12]\r
811         MOV [ESI],AL\r
812 L_69:\r
813 L_67:\r
814         XOR EAX,EAX\r
815 L_66:\r
816         MOV ESP,EBP\r
817         POP EBP\r
818         RETF 8\r
819 PUBLIC __GetCmdLine:\r
820         PUSH EBP\r
821         MOV EBP,ESP\r
822         SUB ESP,8\r
823         LEA EAX,[EBP-4]\r
824         PUSH EAX\r
825         CALL FWORD PTR _GetJobNum\r
826         PUSH DWORD PTR [EBP-4]\r
827         PUSH OFFSET _pTmpJCB\r
828         CALL FWORD PTR _GetpJCB\r
829         MOV ESI,_pTmpJCB\r
830         ADD ESI,226\r
831         MOVSX EAX,BYTE PTR [ESI]\r
832         MOV [EBP-8],EAX\r
833         AND EAX,EAX\r
834         JZ L_70\r
835         MOV ESI,_pTmpJCB\r
836         ADD ESI,226\r
837         MOV EAX,1\r
838         ADD ESI,EAX\r
839         PUSH ESI\r
840         PUSH DWORD PTR [EBP+16]\r
841         PUSH DWORD PTR [EBP-8]\r
842         CALL FWORD PTR _CopyData\r
843 L_70:\r
844         MOV ESI,[EBP+12]\r
845         MOV EAX,[EBP-8]\r
846         MOV [ESI],EAX\r
847         XOR EAX,EAX\r
848         MOV ESP,EBP\r
849         POP EBP\r
850         RETF 8\r
851 PUBLIC __SetUserName:\r
852         PUSH EBP\r
853         MOV EBP,ESP\r
854         SUB ESP,4\r
855         LEA EAX,[EBP-4]\r
856         PUSH EAX\r
857         CALL FWORD PTR _GetJobNum\r
858         PUSH DWORD PTR [EBP-4]\r
859         PUSH OFFSET _pTmpJCB\r
860         CALL FWORD PTR _GetpJCB\r
861         MOV EAX,[EBP+12]\r
862         CMP EAX,29\r
863         SETG AL\r
864         AND EAX,01h\r
865         JZ L_72\r
866         MOV EAX,76\r
867         JMP L_73\r
868 L_72:\r
869         MOV EAX,[EBP+12]\r
870         AND EAX,EAX\r
871         JNZ L_75\r
872         MOV ESI,_pTmpJCB\r
873         ADD ESI,46\r
874         XOR AL,AL\r
875         MOV [ESI],AL\r
876         JMP L_76\r
877 L_75:\r
878         PUSH DWORD PTR [EBP+16]\r
879         MOV ESI,_pTmpJCB\r
880         ADD ESI,46\r
881         MOV EAX,1\r
882         ADD ESI,EAX\r
883         PUSH ESI\r
884         PUSH DWORD PTR [EBP+12]\r
885         CALL FWORD PTR _CopyData\r
886         MOV ESI,_pTmpJCB\r
887         ADD ESI,46\r
888         MOV EAX,[EBP+12]\r
889         MOV [ESI],AL\r
890 L_76:\r
891 L_74:\r
892         XOR EAX,EAX\r
893 L_73:\r
894         MOV ESP,EBP\r
895         POP EBP\r
896         RETF 8\r
897 PUBLIC __GetUserName:\r
898         PUSH EBP\r
899         MOV EBP,ESP\r
900         SUB ESP,8\r
901         LEA EAX,[EBP-4]\r
902         PUSH EAX\r
903         CALL FWORD PTR _GetJobNum\r
904         PUSH DWORD PTR [EBP-4]\r
905         PUSH OFFSET _pTmpJCB\r
906         CALL FWORD PTR _GetpJCB\r
907         MOV ESI,_pTmpJCB\r
908         ADD ESI,46\r
909         MOVSX EAX,BYTE PTR [ESI]\r
910         MOV [EBP-8],EAX\r
911         AND EAX,EAX\r
912         JZ L_77\r
913         MOV ESI,_pTmpJCB\r
914         ADD ESI,46\r
915         MOV EAX,1\r
916         ADD ESI,EAX\r
917         PUSH ESI\r
918         PUSH DWORD PTR [EBP+16]\r
919         PUSH DWORD PTR [EBP-8]\r
920         CALL FWORD PTR _CopyData\r
921 L_77:\r
922         MOV ESI,[EBP+12]\r
923         MOV EAX,[EBP-8]\r
924         MOV [ESI],EAX\r
925         XOR EAX,EAX\r
926         MOV ESP,EBP\r
927         POP EBP\r
928         RETF 8\r
929 PUBLIC __SetSysIn:\r
930         PUSH EBP\r
931         MOV EBP,ESP\r
932         SUB ESP,4\r
933         LEA EAX,[EBP-4]\r
934         PUSH EAX\r
935         CALL FWORD PTR _GetJobNum\r
936         PUSH DWORD PTR [EBP-4]\r
937         PUSH OFFSET _pTmpJCB\r
938         CALL FWORD PTR _GetpJCB\r
939         MOV EAX,[EBP+12]\r
940         CMP EAX,49\r
941         SETG AL\r
942         AND EAX,01h\r
943         JNZ L_79\r
944         MOV EAX,[EBP+12]\r
945         AND EAX,EAX\r
946         SETZ AL\r
947         AND EAX,01\r
948 L_79:\r
949         AND EAX,EAX\r
950         JZ L_80\r
951         MOV EAX,76\r
952         JMP L_81\r
953 L_80:\r
954         PUSH DWORD PTR [EBP+16]\r
955         MOV ESI,_pTmpJCB\r
956         ADD ESI,306\r
957         MOV EAX,1\r
958         ADD ESI,EAX\r
959         PUSH ESI\r
960         PUSH DWORD PTR [EBP+12]\r
961         CALL FWORD PTR _CopyData\r
962         MOV ESI,_pTmpJCB\r
963         ADD ESI,306\r
964         MOV EAX,[EBP+12]\r
965         MOV [ESI],AL\r
966 L_82:\r
967         XOR EAX,EAX\r
968 L_81:\r
969         MOV ESP,EBP\r
970         POP EBP\r
971         RETF 8\r
972 PUBLIC __GetSysIn:\r
973         PUSH EBP\r
974         MOV EBP,ESP\r
975         SUB ESP,8\r
976         LEA EAX,[EBP-4]\r
977         PUSH EAX\r
978         CALL FWORD PTR _GetJobNum\r
979         PUSH DWORD PTR [EBP-4]\r
980         PUSH OFFSET _pTmpJCB\r
981         CALL FWORD PTR _GetpJCB\r
982         MOV ESI,_pTmpJCB\r
983         ADD ESI,306\r
984         MOVSX EAX,BYTE PTR [ESI]\r
985         MOV [EBP-8],EAX\r
986         AND EAX,EAX\r
987         JZ L_83\r
988         MOV ESI,_pTmpJCB\r
989         ADD ESI,306\r
990         MOV EAX,1\r
991         ADD ESI,EAX\r
992         PUSH ESI\r
993         PUSH DWORD PTR [EBP+16]\r
994         PUSH DWORD PTR [EBP-8]\r
995         CALL FWORD PTR _CopyData\r
996 L_83:\r
997         MOV ESI,[EBP+12]\r
998         MOV EAX,[EBP-8]\r
999         MOV [ESI],EAX\r
1000         XOR EAX,EAX\r
1001         MOV ESP,EBP\r
1002         POP EBP\r
1003         RETF 8\r
1004 PUBLIC __SetSysOut:\r
1005         PUSH EBP\r
1006         MOV EBP,ESP\r
1007         SUB ESP,4\r
1008         LEA EAX,[EBP-4]\r
1009         PUSH EAX\r
1010         CALL FWORD PTR _GetJobNum\r
1011         PUSH DWORD PTR [EBP-4]\r
1012         PUSH OFFSET _pTmpJCB\r
1013         CALL FWORD PTR _GetpJCB\r
1014         MOV EAX,[EBP+12]\r
1015         CMP EAX,49\r
1016         SETG AL\r
1017         AND EAX,01h\r
1018         JNZ L_85\r
1019         MOV EAX,[EBP+12]\r
1020         AND EAX,EAX\r
1021         SETZ AL\r
1022         AND EAX,01\r
1023 L_85:\r
1024         AND EAX,EAX\r
1025         JZ L_86\r
1026         MOV EAX,76\r
1027         JMP L_87\r
1028 L_86:\r
1029         PUSH DWORD PTR [EBP+16]\r
1030         MOV ESI,_pTmpJCB\r
1031         ADD ESI,356\r
1032         MOV EAX,1\r
1033         ADD ESI,EAX\r
1034         PUSH ESI\r
1035         PUSH DWORD PTR [EBP+12]\r
1036         CALL FWORD PTR _CopyData\r
1037         MOV ESI,_pTmpJCB\r
1038         ADD ESI,356\r
1039         MOV EAX,[EBP+12]\r
1040         MOV [ESI],AL\r
1041 L_88:\r
1042         XOR EAX,EAX\r
1043 L_87:\r
1044         MOV ESP,EBP\r
1045         POP EBP\r
1046         RETF 8\r
1047 PUBLIC __GetSysOut:\r
1048         PUSH EBP\r
1049         MOV EBP,ESP\r
1050         SUB ESP,8\r
1051         LEA EAX,[EBP-4]\r
1052         PUSH EAX\r
1053         CALL FWORD PTR _GetJobNum\r
1054         PUSH DWORD PTR [EBP-4]\r
1055         PUSH OFFSET _pTmpJCB\r
1056         CALL FWORD PTR _GetpJCB\r
1057         MOV ESI,_pTmpJCB\r
1058         ADD ESI,356\r
1059         MOVSX EAX,BYTE PTR [ESI]\r
1060         MOV [EBP-8],EAX\r
1061         AND EAX,EAX\r
1062         JZ L_89\r
1063         MOV ESI,_pTmpJCB\r
1064         ADD ESI,356\r
1065         MOV EAX,1\r
1066         ADD ESI,EAX\r
1067         PUSH ESI\r
1068         PUSH DWORD PTR [EBP+16]\r
1069         PUSH DWORD PTR [EBP-8]\r
1070         CALL FWORD PTR _CopyData\r
1071 L_89:\r
1072         MOV ESI,[EBP+12]\r
1073         MOV EAX,[EBP-8]\r
1074         MOV [ESI],EAX\r
1075         XOR EAX,EAX\r
1076         MOV ESP,EBP\r
1077         POP EBP\r
1078         RETF 8\r
1079 PUBLIC __SetJobName:\r
1080         PUSH EBP\r
1081         MOV EBP,ESP\r
1082         SUB ESP,4\r
1083         LEA EAX,[EBP-4]\r
1084         PUSH EAX\r
1085         CALL FWORD PTR _GetJobNum\r
1086         PUSH DWORD PTR [EBP-4]\r
1087         PUSH OFFSET _pTmpJCB\r
1088         CALL FWORD PTR _GetpJCB\r
1089         MOV EAX,[EBP+12]\r
1090         CMP EAX,13\r
1091         SETG AL\r
1092         AND EAX,01h\r
1093         JZ L_91\r
1094         MOV EAX,13\r
1095         MOV [EBP+12],EAX\r
1096 L_91:\r
1097         MOV EAX,[EBP+12]\r
1098         AND EAX,EAX\r
1099         JZ L_92\r
1100         PUSH DWORD PTR [EBP+16]\r
1101         MOV ESI,_pTmpJCB\r
1102         ADD ESI,4\r
1103         MOV EAX,1\r
1104         ADD ESI,EAX\r
1105         PUSH ESI\r
1106         PUSH DWORD PTR [EBP+12]\r
1107         CALL FWORD PTR _CopyData\r
1108 L_92:\r
1109         MOV ESI,_pTmpJCB\r
1110         ADD ESI,4\r
1111         MOV EAX,[EBP+12]\r
1112         MOV [ESI],AL\r
1113         XOR EAX,EAX\r
1114         MOV ESP,EBP\r
1115         POP EBP\r
1116         RETF 8\r
1117 PUBLIC __LoadNewJob:\r
1118         PUSH EBP\r
1119         MOV EBP,ESP\r
1120         SUB ESP,44\r
1121         PUSH DWORD PTR [EBP+20]\r
1122         PUSH DWORD PTR [EBP+16]\r
1123         LEA EAX,[EBP-12]\r
1124         PUSH EAX\r
1125         CALL _GetRunFile\r
1126         MOV [EBP-4],EAX\r
1127         AND EAX,EAX\r
1128         JNZ L_94\r
1129         XOR EAX,EAX\r
1130         MOV _JobNum,EAX\r
1131         XOR EAX,EAX\r
1132         MOV _pNewJCB,EAX\r
1133         XOR EAX,EAX\r
1134         MOV [EBP-24],EAX\r
1135         XOR EAX,EAX\r
1136         MOV [EBP-28],EAX\r
1137         XOR EAX,EAX\r
1138         MOV [EBP-32],EAX\r
1139         PUSH OFFSET _JobNum\r
1140         PUSH OFFSET _pNewJCB\r
1141         CALL _AllocJCB\r
1142         MOV [EBP-4],EAX\r
1143         AND EAX,EAX\r
1144         JNZ L_95\r
1145         PUSH 3\r
1146         LEA EAX,[EBP-24]\r
1147         PUSH EAX\r
1148         CALL FWORD PTR _AllocOSPage\r
1149         MOV [EBP-4],EAX\r
1150 L_95:\r
1151         MOV EAX,[EBP-24]\r
1152         ADD EAX,4096\r
1153         MOV [EBP-28],EAX\r
1154         MOV EAX,[EBP-24]\r
1155         ADD EAX,8192\r
1156         MOV [EBP-32],EAX\r
1157         MOV EAX,[EBP-4]\r
1158         AND EAX,EAX\r
1159         JNZ L_96\r
1160         PUSH DWORD PTR [EBP-28]\r
1161         PUSH 4096\r
1162         PUSH 0\r
1163         CALL FWORD PTR _FillData\r
1164         PUSH DWORD PTR [EBP-32]\r
1165         PUSH 4096\r
1166         PUSH 0\r
1167         CALL FWORD PTR _FillData\r
1168         PUSH 1\r
1169         PUSH OFFSET _pTmpJCB\r
1170         CALL FWORD PTR _GetpJCB\r
1171         MOV ESI,_pTmpJCB\r
1172         ADD ESI,18\r
1173         MOV EAX,[ESI]\r
1174         MOV [EBP-36],EAX\r
1175         PUSH 1\r
1176         PUSH DWORD PTR [EBP-28]\r
1177         LEA EAX,[EBP-44]\r
1178         PUSH EAX\r
1179         CALL FWORD PTR _GetPhyAdd\r
1180         MOV EAX,[EBP-44]\r
1181         OR EAX,7\r
1182         MOV [EBP-44],EAX\r
1183         MOV EAX,1024\r
1184         MOV ESI,[EBP-36]\r
1185         ADD ESI,EAX\r
1186         MOV EAX,[EBP-44]\r
1187         MOV [ESI],EAX\r
1188         MOV EAX,3072\r
1189         MOV ESI,[EBP-36]\r
1190         ADD ESI,EAX\r
1191         MOV EAX,[EBP-28]\r
1192         MOV [ESI],EAX\r
1193         MOV EAX,_sStack\r
1194         MOV ECX,4096\r
1195         CDQ\r
1196         IDIV ECX\r
1197         MOV [EBP-20],EAX\r
1198         MOV EAX,_sStack\r
1199         MOV ECX,4096\r
1200         CDQ\r
1201         IDIV ECX\r
1202         MOV EAX,EDX\r
1203         AND EAX,EAX\r
1204         JZ L_97\r
1205         MOV EAX,[EBP-20]\r
1206         INC DWORD PTR [EBP-20]\r
1207 L_97:\r
1208         PUSH DWORD PTR [EBP-20]\r
1209         PUSH OFFSET _pStack\r
1210         CALL FWORD PTR _AllocPage\r
1211         MOV [EBP-4],EAX\r
1212         MOV EAX,[EBP-20]\r
1213         MOV ECX,4096\r
1214         IMUL ECX\r
1215         MOV _sStack,EAX\r
1216         MOV EAX,_sCode\r
1217         MOV ECX,4096\r
1218         CDQ\r
1219         IDIV ECX\r
1220         MOV [EBP-20],EAX\r
1221         MOV EAX,_sCode\r
1222         MOV ECX,4096\r
1223         CDQ\r
1224         IDIV ECX\r
1225         MOV EAX,EDX\r
1226         AND EAX,EAX\r
1227         JZ L_98\r
1228         MOV EAX,[EBP-20]\r
1229         INC DWORD PTR [EBP-20]\r
1230 L_98:\r
1231         MOV EAX,[EBP-4]\r
1232         AND EAX,EAX\r
1233         JNZ L_99\r
1234         PUSH DWORD PTR [EBP-20]\r
1235         PUSH OFFSET _pCode\r
1236         CALL FWORD PTR _AllocPage\r
1237         MOV [EBP-4],EAX\r
1238 L_99:\r
1239         MOV EAX,_sData\r
1240         MOV ECX,4096\r
1241         CDQ\r
1242         IDIV ECX\r
1243         MOV [EBP-20],EAX\r
1244         MOV EAX,_sData\r
1245         MOV ECX,4096\r
1246         CDQ\r
1247         IDIV ECX\r
1248         MOV EAX,EDX\r
1249         AND EAX,EAX\r
1250         JZ L_100\r
1251         MOV EAX,[EBP-20]\r
1252         INC DWORD PTR [EBP-20]\r
1253 L_100:\r
1254         MOV EAX,[EBP-4]\r
1255         AND EAX,EAX\r
1256         JNZ L_101\r
1257         PUSH DWORD PTR [EBP-20]\r
1258         PUSH OFFSET _pData\r
1259         CALL FWORD PTR _AllocPage\r
1260         MOV [EBP-4],EAX\r
1261 L_101:\r
1262         PUSH DWORD PTR [EBP-36]\r
1263         PUSH DWORD PTR [EBP-24]\r
1264         PUSH 4096\r
1265         CALL FWORD PTR _CopyData\r
1266         MOV EAX,[EBP-4]\r
1267         AND EAX,EAX\r
1268         JNZ L_102\r
1269         PUSH DWORD PTR [EBP-12]\r
1270         PUSH _oCode\r
1271         CALL FWORD PTR _SetFileLFA\r
1272         MOV [EBP-4],EAX\r
1273 L_102:\r
1274         MOV EAX,[EBP-4]\r
1275         AND EAX,EAX\r
1276         JNZ L_103\r
1277         PUSH DWORD PTR [EBP-12]\r
1278         PUSH _pCode\r
1279         PUSH _sCode\r
1280         LEA EAX,[EBP-16]\r
1281         PUSH EAX\r
1282         CALL FWORD PTR _ReadBytes\r
1283         MOV [EBP-4],EAX\r
1284 L_103:\r
1285         MOV EAX,[EBP-4]\r
1286         AND EAX,EAX\r
1287         JNZ L_104\r
1288         PUSH DWORD PTR [EBP-12]\r
1289         PUSH _oData\r
1290         CALL FWORD PTR _SetFileLFA\r
1291         MOV [EBP-4],EAX\r
1292 L_104:\r
1293         MOV EAX,[EBP-4]\r
1294         AND EAX,EAX\r
1295         JNZ L_105\r
1296         PUSH DWORD PTR [EBP-12]\r
1297         PUSH _pData\r
1298         PUSH _sData\r
1299         LEA EAX,[EBP-16]\r
1300         PUSH EAX\r
1301         CALL FWORD PTR _ReadBytes\r
1302         MOV [EBP-4],EAX\r
1303 L_105:\r
1304         MOV EAX,[EBP-4]\r
1305         AND EAX,EAX\r
1306         JNZ L_106\r
1307         MOV EAX,_nCDFIX\r
1308         AND EAX,EAX\r
1309         JZ L_107\r
1310         PUSH DWORD PTR [EBP-12]\r
1311         PUSH _oCDFIX\r
1312         CALL FWORD PTR _SetFileLFA\r
1313         MOV [EBP-4],EAX\r
1314 L_108:\r
1315         MOV EAX,_nCDFIX\r
1316         DEC DWORD PTR _nCDFIX\r
1317         AND EAX,EAX\r
1318         JZ L_110\r
1319         MOV EAX,[EBP-4]\r
1320         AND EAX,EAX\r
1321         SETZ AL\r
1322         AND EAX,01\r
1323 L_110:\r
1324         AND EAX,EAX\r
1325         JZ L_109\r
1326         PUSH DWORD PTR [EBP-12]\r
1327         LEA EAX,[EBP-8]\r
1328         PUSH EAX\r
1329         PUSH 4\r
1330         LEA EAX,[EBP-16]\r
1331         PUSH EAX\r
1332         CALL FWORD PTR _ReadBytes\r
1333         MOV [EBP-4],EAX\r
1334         MOV EAX,_pCode\r
1335         ADD EAX,[EBP-8]\r
1336         MOV [EBP-40],EAX\r
1337         MOV ESI,[EBP-40]\r
1338         PUSH ESI\r
1339         MOV ESI,[EBP-40]\r
1340         MOV EAX,[ESI]\r
1341         SUB EAX,_offData\r
1342         ADD EAX,_pData\r
1343         POP EBX\r
1344         MOV [EBX],EAX\r
1345         JMP L_108\r
1346 L_109:\r
1347 L_107:\r
1348         MOV EAX,_nCCFIX\r
1349         AND EAX,EAX\r
1350         JZ L_111\r
1351         PUSH DWORD PTR [EBP-12]\r
1352         PUSH _oCCFIX\r
1353         CALL FWORD PTR _SetFileLFA\r
1354         MOV [EBP-4],EAX\r
1355 L_112:\r
1356         MOV EAX,_nCCFIX\r
1357         DEC DWORD PTR _nCCFIX\r
1358         AND EAX,EAX\r
1359         JZ L_114\r
1360         MOV EAX,[EBP-4]\r
1361         AND EAX,EAX\r
1362         SETZ AL\r
1363         AND EAX,01\r
1364 L_114:\r
1365         AND EAX,EAX\r
1366         JZ L_113\r
1367         PUSH DWORD PTR [EBP-12]\r
1368         LEA EAX,[EBP-8]\r
1369         PUSH EAX\r
1370         PUSH 4\r
1371         LEA EAX,[EBP-16]\r
1372         PUSH EAX\r
1373         CALL FWORD PTR _ReadBytes\r
1374         MOV [EBP-4],EAX\r
1375         MOV EAX,_pCode\r
1376         ADD EAX,[EBP-8]\r
1377         MOV [EBP-40],EAX\r
1378         MOV ESI,[EBP-40]\r
1379         PUSH ESI\r
1380         MOV ESI,[EBP-40]\r
1381         MOV EAX,[ESI]\r
1382         SUB EAX,_offCode\r
1383         ADD EAX,_pCode\r
1384         POP EBX\r
1385         MOV [EBX],EAX\r
1386         JMP L_112\r
1387 L_113:\r
1388 L_111:\r
1389         MOV EAX,_nDCFIX\r
1390         AND EAX,EAX\r
1391         JZ L_115\r
1392         PUSH DWORD PTR [EBP-12]\r
1393         PUSH _oDCFIX\r
1394         CALL FWORD PTR _SetFileLFA\r
1395         MOV [EBP-4],EAX\r
1396 L_116:\r
1397         MOV EAX,_nDCFIX\r
1398         DEC DWORD PTR _nDCFIX\r
1399         AND EAX,EAX\r
1400         JZ L_118\r
1401         MOV EAX,[EBP-4]\r
1402         AND EAX,EAX\r
1403         SETZ AL\r
1404         AND EAX,01\r
1405 L_118:\r
1406         AND EAX,EAX\r
1407         JZ L_117\r
1408         PUSH DWORD PTR [EBP-12]\r
1409         LEA EAX,[EBP-8]\r
1410         PUSH EAX\r
1411         PUSH 4\r
1412         LEA EAX,[EBP-16]\r
1413         PUSH EAX\r
1414         CALL FWORD PTR _ReadBytes\r
1415         MOV [EBP-4],EAX\r
1416         MOV EAX,_pData\r
1417         ADD EAX,[EBP-8]\r
1418         MOV [EBP-40],EAX\r
1419         MOV ESI,[EBP-40]\r
1420         PUSH ESI\r
1421         MOV ESI,[EBP-40]\r
1422         MOV EAX,[ESI]\r
1423         SUB EAX,_offCode\r
1424         ADD EAX,_pCode\r
1425         POP EBX\r
1426         MOV [EBX],EAX\r
1427         JMP L_116\r
1428 L_117:\r
1429 L_115:\r
1430         MOV EAX,_nDDFIX\r
1431         AND EAX,EAX\r
1432         JZ L_119\r
1433         PUSH DWORD PTR [EBP-12]\r
1434         PUSH _oDDFIX\r
1435         CALL FWORD PTR _SetFileLFA\r
1436         MOV [EBP-4],EAX\r
1437 L_120:\r
1438         MOV EAX,_nDDFIX\r
1439         DEC DWORD PTR _nDDFIX\r
1440         AND EAX,EAX\r
1441         JZ L_122\r
1442         MOV EAX,[EBP-4]\r
1443         AND EAX,EAX\r
1444         SETZ AL\r
1445         AND EAX,01\r
1446 L_122:\r
1447         AND EAX,EAX\r
1448         JZ L_121\r
1449         PUSH DWORD PTR [EBP-12]\r
1450         LEA EAX,[EBP-8]\r
1451         PUSH EAX\r
1452         PUSH 4\r
1453         LEA EAX,[EBP-16]\r
1454         PUSH EAX\r
1455         CALL FWORD PTR _ReadBytes\r
1456         MOV [EBP-4],EAX\r
1457         MOV EAX,_pData\r
1458         ADD EAX,[EBP-8]\r
1459         MOV [EBP-40],EAX\r
1460         MOV ESI,[EBP-40]\r
1461         PUSH ESI\r
1462         MOV ESI,[EBP-40]\r
1463         MOV EAX,[ESI]\r
1464         SUB EAX,_offData\r
1465         ADD EAX,_pData\r
1466         POP EBX\r
1467         MOV [EBX],EAX\r
1468         JMP L_120\r
1469 L_121:\r
1470 L_119:\r
1471 L_106:\r
1472         MOV EAX,1024\r
1473         MOV ESI,[EBP-36]\r
1474         ADD ESI,EAX\r
1475         PUSH ESI\r
1476         PUSH 1024\r
1477         PUSH 0\r
1478         CALL FWORD PTR _FillData\r
1479         MOV EAX,3072\r
1480         MOV ESI,[EBP-36]\r
1481         ADD ESI,EAX\r
1482         PUSH ESI\r
1483         PUSH 1024\r
1484         PUSH 0\r
1485         CALL FWORD PTR _FillData\r
1486         MOV ESI,_pNewJCB\r
1487         ADD ESI,18\r
1488         MOV EAX,[EBP-24]\r
1489         MOV [ESI],EAX\r
1490         MOV ESI,_pNewJCB\r
1491         ADD ESI,38\r
1492         MOV EAX,_pStack\r
1493         MOV [ESI],EAX\r
1494         MOV ESI,_pNewJCB\r
1495         ADD ESI,42\r
1496         MOV EAX,_sStack\r
1497         MOV [ESI],EAX\r
1498         MOV ESI,_pNewJCB\r
1499         ADD ESI,22\r
1500         MOV EAX,_pCode\r
1501         MOV [ESI],EAX\r
1502         MOV ESI,_pNewJCB\r
1503         ADD ESI,26\r
1504         MOV EAX,_sCode\r
1505         MOV [ESI],EAX\r
1506         MOV ESI,_pNewJCB\r
1507         ADD ESI,30\r
1508         MOV EAX,_pData\r
1509         MOV [ESI],EAX\r
1510         MOV ESI,_pNewJCB\r
1511         ADD ESI,34\r
1512         MOV EAX,_sData\r
1513         MOV [ESI],EAX\r
1514         MOV ESI,_pNewJCB\r
1515         ADD ESI,46\r
1516         XOR AL,AL\r
1517         MOV [ESI],AL\r
1518         MOV ESI,_pNewJCB\r
1519         ADD ESI,76\r
1520         XOR AL,AL\r
1521         MOV [ESI],AL\r
1522         MOV ESI,_pNewJCB\r
1523         ADD ESI,146\r
1524         XOR AL,AL\r
1525         MOV [ESI],AL\r
1526         MOV ESI,_pNewJCB\r
1527         ADD ESI,226\r
1528         XOR AL,AL\r
1529         MOV [ESI],AL\r
1530         PUSH OFFSET L_lit+34\r
1531         MOV ESI,_pNewJCB\r
1532         ADD ESI,306\r
1533         MOV EAX,1\r
1534         ADD ESI,EAX\r
1535         PUSH ESI\r
1536         PUSH 3\r
1537         CALL FWORD PTR _CopyData\r
1538         MOV ESI,_pNewJCB\r
1539         ADD ESI,306\r
1540         MOV AL,3\r
1541         MOV [ESI],AL\r
1542         PUSH OFFSET L_lit+38\r
1543         MOV ESI,_pNewJCB\r
1544         ADD ESI,356\r
1545         MOV EAX,1\r
1546         ADD ESI,EAX\r
1547         PUSH ESI\r
1548         PUSH 3\r
1549         CALL FWORD PTR _CopyData\r
1550         MOV ESI,_pNewJCB\r
1551         ADD ESI,356\r
1552         MOV AL,3\r
1553         MOV [ESI],AL\r
1554         MOV ESI,_pNewJCB\r
1555         ADD ESI,410\r
1556         MOV EAX,[EBP-32]\r
1557         MOV [ESI],EAX\r
1558         MOV ESI,_pNewJCB\r
1559         ADD ESI,414\r
1560         MOV EAX,[EBP-32]\r
1561         MOV [ESI],EAX\r
1562         MOV ESI,_pNewJCB\r
1563         ADD ESI,418\r
1564         XOR EAX,EAX\r
1565         MOV [ESI],EAX\r
1566         MOV ESI,_pNewJCB\r
1567         ADD ESI,422\r
1568         XOR EAX,EAX\r
1569         MOV [ESI],EAX\r
1570         MOV ESI,_pNewJCB\r
1571         ADD ESI,426\r
1572         MOV EAX,80\r
1573         MOV [ESI],EAX\r
1574         MOV ESI,_pNewJCB\r
1575         ADD ESI,430\r
1576         MOV EAX,25\r
1577         MOV [ESI],EAX\r
1578         MOV ESI,_pNewJCB\r
1579         ADD ESI,434\r
1580         XOR EAX,EAX\r
1581         MOV [ESI],EAX\r
1582         MOV ESI,_pNewJCB\r
1583         ADD ESI,442\r
1584         MOV AL,1\r
1585         MOV [ESI],AL\r
1586         MOV ESI,_pNewJCB\r
1587         ADD ESI,443\r
1588         XOR AL,AL\r
1589         MOV [ESI],AL\r
1590         MOV EAX,[EBP-4]\r
1591         AND EAX,EAX\r
1592         JNZ L_123\r
1593         LEA EAX,[EBP-8]\r
1594         PUSH EAX\r
1595         CALL FWORD PTR _AllocExch\r
1596         MOV [EBP-4],EAX\r
1597 L_123:\r
1598         MOV EAX,[EBP-4]\r
1599         AND EAX,EAX\r
1600         JNZ L_124\r
1601         PUSH _JobNum\r
1602         PUSH 24\r
1603         PUSH 25\r
1604         PUSH 0\r
1605         PUSH DWORD PTR [EBP-8]\r
1606         MOV EAX,_pStack\r
1607         ADD EAX,_sStack\r
1608         SUB EAX,4\r
1609         PUSH EAX\r
1610         MOV EAX,_pStart\r
1611         ADD EAX,_pCode\r
1612         SUB EAX,_offCode\r
1613         PUSH EAX\r
1614         CALL FWORD PTR _NewTask\r
1615         MOV [EBP-4],EAX\r
1616 L_124:\r
1617         MOV EAX,[EBP-4]\r
1618         AND EAX,EAX\r
1619         JNZ L_125\r
1620         PUSH DWORD PTR [EBP-8]\r
1621         PUSH _pNewJCB\r
1622         CALL _SetExchOwner\r
1623 L_125:\r
1624 L_96:\r
1625         PUSH DWORD PTR [EBP-12]\r
1626         CALL FWORD PTR _CloseFile\r
1627 L_94:\r
1628         MOV EAX,[EBP-4]\r
1629         AND EAX,EAX\r
1630         JNZ L_126\r
1631         MOV ESI,[EBP+12]\r
1632         MOV EAX,_JobNum\r
1633         MOV [ESI],EAX\r
1634 L_126:\r
1635         MOV EAX,[EBP-4]\r
1636         MOV ESP,EBP\r
1637         POP EBP\r
1638         RETF 12\r
1639 _LoadJob:\r
1640         PUSH EBP\r
1641         MOV EBP,ESP\r
1642         SUB ESP,20\r
1643         MOV EAX,[EBP+12]\r
1644         MOV _pNewJCB,EAX\r
1645         MOV EAX,_sStack\r
1646         MOV ECX,4096\r
1647         CDQ\r
1648         IDIV ECX\r
1649         MOV [EBP-16],EAX\r
1650         MOV EAX,_sStack\r
1651         MOV ECX,4096\r
1652         CDQ\r
1653         IDIV ECX\r
1654         MOV EAX,EDX\r
1655         AND EAX,EAX\r
1656         JZ L_128\r
1657         MOV EAX,[EBP-16]\r
1658         INC DWORD PTR [EBP-16]\r
1659 L_128:\r
1660         PUSH DWORD PTR [EBP-16]\r
1661         PUSH OFFSET _pStack\r
1662         CALL FWORD PTR _AllocPage\r
1663         MOV [EBP-4],EAX\r
1664         MOV EAX,[EBP-16]\r
1665         MOV ECX,4096\r
1666         IMUL ECX\r
1667         MOV _sStack,EAX\r
1668         MOV EAX,_sCode\r
1669         MOV ECX,4096\r
1670         CDQ\r
1671         IDIV ECX\r
1672         MOV [EBP-16],EAX\r
1673         MOV EAX,_sCode\r
1674         MOV ECX,4096\r
1675         CDQ\r
1676         IDIV ECX\r
1677         MOV EAX,EDX\r
1678         AND EAX,EAX\r
1679         JZ L_129\r
1680         MOV EAX,[EBP-16]\r
1681         INC DWORD PTR [EBP-16]\r
1682 L_129:\r
1683         MOV EAX,[EBP-4]\r
1684         AND EAX,EAX\r
1685         JNZ L_130\r
1686         PUSH DWORD PTR [EBP-16]\r
1687         PUSH OFFSET _pCode\r
1688         CALL FWORD PTR _AllocPage\r
1689         MOV [EBP-4],EAX\r
1690 L_130:\r
1691         MOV EAX,_sData\r
1692         MOV ECX,4096\r
1693         CDQ\r
1694         IDIV ECX\r
1695         MOV [EBP-16],EAX\r
1696         MOV EAX,_sData\r
1697         MOV ECX,4096\r
1698         CDQ\r
1699         IDIV ECX\r
1700         MOV EAX,EDX\r
1701         AND EAX,EAX\r
1702         JZ L_131\r
1703         MOV EAX,[EBP-16]\r
1704         INC DWORD PTR [EBP-16]\r
1705 L_131:\r
1706         PUSH DWORD PTR [EBP-16]\r
1707         PUSH OFFSET _pData\r
1708         CALL FWORD PTR _AllocPage\r
1709         MOV [EBP-4],EAX\r
1710         AND EAX,EAX\r
1711         JNZ L_132\r
1712         PUSH DWORD PTR [EBP+8]\r
1713         PUSH _oCode\r
1714         CALL FWORD PTR _SetFileLFA\r
1715         MOV [EBP-4],EAX\r
1716 L_132:\r
1717         MOV EAX,[EBP-4]\r
1718         AND EAX,EAX\r
1719         JNZ L_133\r
1720         PUSH DWORD PTR [EBP+8]\r
1721         PUSH _pCode\r
1722         PUSH _sCode\r
1723         LEA EAX,[EBP-12]\r
1724         PUSH EAX\r
1725         CALL FWORD PTR _ReadBytes\r
1726         MOV [EBP-4],EAX\r
1727 L_133:\r
1728         MOV EAX,[EBP-4]\r
1729         AND EAX,EAX\r
1730         JNZ L_134\r
1731         PUSH DWORD PTR [EBP+8]\r
1732         PUSH _oData\r
1733         CALL FWORD PTR _SetFileLFA\r
1734         MOV [EBP-4],EAX\r
1735 L_134:\r
1736         MOV EAX,[EBP-4]\r
1737         AND EAX,EAX\r
1738         JNZ L_135\r
1739         PUSH DWORD PTR [EBP+8]\r
1740         PUSH _pData\r
1741         PUSH _sData\r
1742         LEA EAX,[EBP-12]\r
1743         PUSH EAX\r
1744         CALL FWORD PTR _ReadBytes\r
1745         MOV [EBP-4],EAX\r
1746 L_135:\r
1747         MOV EAX,[EBP-4]\r
1748         AND EAX,EAX\r
1749         JNZ L_136\r
1750         MOV EAX,_nCDFIX\r
1751         AND EAX,EAX\r
1752         JZ L_137\r
1753         PUSH DWORD PTR [EBP+8]\r
1754         PUSH _oCDFIX\r
1755         CALL FWORD PTR _SetFileLFA\r
1756         MOV [EBP-4],EAX\r
1757 L_138:\r
1758         MOV EAX,_nCDFIX\r
1759         DEC DWORD PTR _nCDFIX\r
1760         AND EAX,EAX\r
1761         JZ L_140\r
1762         MOV EAX,[EBP-4]\r
1763         AND EAX,EAX\r
1764         SETZ AL\r
1765         AND EAX,01\r
1766 L_140:\r
1767         AND EAX,EAX\r
1768         JZ L_139\r
1769         PUSH DWORD PTR [EBP+8]\r
1770         LEA EAX,[EBP-8]\r
1771         PUSH EAX\r
1772         PUSH 4\r
1773         LEA EAX,[EBP-12]\r
1774         PUSH EAX\r
1775         CALL FWORD PTR _ReadBytes\r
1776         MOV [EBP-4],EAX\r
1777         MOV EAX,_pCode\r
1778         ADD EAX,[EBP-8]\r
1779         MOV [EBP-20],EAX\r
1780         MOV ESI,[EBP-20]\r
1781         PUSH ESI\r
1782         MOV ESI,[EBP-20]\r
1783         MOV EAX,[ESI]\r
1784         SUB EAX,_offData\r
1785         ADD EAX,_pData\r
1786         POP EBX\r
1787         MOV [EBX],EAX\r
1788         JMP L_138\r
1789 L_139:\r
1790 L_137:\r
1791         MOV EAX,_nCCFIX\r
1792         AND EAX,EAX\r
1793         JZ L_141\r
1794         PUSH DWORD PTR [EBP+8]\r
1795         PUSH _oCCFIX\r
1796         CALL FWORD PTR _SetFileLFA\r
1797         MOV [EBP-4],EAX\r
1798 L_142:\r
1799         MOV EAX,_nCCFIX\r
1800         DEC DWORD PTR _nCCFIX\r
1801         AND EAX,EAX\r
1802         JZ L_144\r
1803         MOV EAX,[EBP-4]\r
1804         AND EAX,EAX\r
1805         SETZ AL\r
1806         AND EAX,01\r
1807 L_144:\r
1808         AND EAX,EAX\r
1809         JZ L_143\r
1810         PUSH DWORD PTR [EBP+8]\r
1811         LEA EAX,[EBP-8]\r
1812         PUSH EAX\r
1813         PUSH 4\r
1814         LEA EAX,[EBP-12]\r
1815         PUSH EAX\r
1816         CALL FWORD PTR _ReadBytes\r
1817         MOV [EBP-4],EAX\r
1818         MOV EAX,_pCode\r
1819         ADD EAX,[EBP-8]\r
1820         MOV [EBP-20],EAX\r
1821         MOV ESI,[EBP-20]\r
1822         PUSH ESI\r
1823         MOV ESI,[EBP-20]\r
1824         MOV EAX,[ESI]\r
1825         SUB EAX,_offCode\r
1826         ADD EAX,_pCode\r
1827         POP EBX\r
1828         MOV [EBX],EAX\r
1829         JMP L_142\r
1830 L_143:\r
1831 L_141:\r
1832         MOV EAX,_nDCFIX\r
1833         AND EAX,EAX\r
1834         JZ L_145\r
1835         PUSH DWORD PTR [EBP+8]\r
1836         PUSH _oDCFIX\r
1837         CALL FWORD PTR _SetFileLFA\r
1838         MOV [EBP-4],EAX\r
1839 L_146:\r
1840         MOV EAX,_nDCFIX\r
1841         DEC DWORD PTR _nDCFIX\r
1842         AND EAX,EAX\r
1843         JZ L_148\r
1844         MOV EAX,[EBP-4]\r
1845         AND EAX,EAX\r
1846         SETZ AL\r
1847         AND EAX,01\r
1848 L_148:\r
1849         AND EAX,EAX\r
1850         JZ L_147\r
1851         PUSH DWORD PTR [EBP+8]\r
1852         LEA EAX,[EBP-8]\r
1853         PUSH EAX\r
1854         PUSH 4\r
1855         LEA EAX,[EBP-12]\r
1856         PUSH EAX\r
1857         CALL FWORD PTR _ReadBytes\r
1858         MOV [EBP-4],EAX\r
1859         MOV EAX,_pData\r
1860         ADD EAX,[EBP-8]\r
1861         MOV [EBP-20],EAX\r
1862         MOV ESI,[EBP-20]\r
1863         PUSH ESI\r
1864         MOV ESI,[EBP-20]\r
1865         MOV EAX,[ESI]\r
1866         SUB EAX,_offCode\r
1867         ADD EAX,_pCode\r
1868         POP EBX\r
1869         MOV [EBX],EAX\r
1870         JMP L_146\r
1871 L_147:\r
1872 L_145:\r
1873         MOV EAX,_nDDFIX\r
1874         AND EAX,EAX\r
1875         JZ L_149\r
1876         PUSH DWORD PTR [EBP+8]\r
1877         PUSH _oDDFIX\r
1878         CALL FWORD PTR _SetFileLFA\r
1879         MOV [EBP-4],EAX\r
1880 L_150:\r
1881         MOV EAX,_nDDFIX\r
1882         DEC DWORD PTR _nDDFIX\r
1883         AND EAX,EAX\r
1884         JZ L_152\r
1885         MOV EAX,[EBP-4]\r
1886         AND EAX,EAX\r
1887         SETZ AL\r
1888         AND EAX,01\r
1889 L_152:\r
1890         AND EAX,EAX\r
1891         JZ L_151\r
1892         PUSH DWORD PTR [EBP+8]\r
1893         LEA EAX,[EBP-8]\r
1894         PUSH EAX\r
1895         PUSH 4\r
1896         LEA EAX,[EBP-12]\r
1897         PUSH EAX\r
1898         CALL FWORD PTR _ReadBytes\r
1899         MOV [EBP-4],EAX\r
1900         MOV EAX,_pData\r
1901         ADD EAX,[EBP-8]\r
1902         MOV [EBP-20],EAX\r
1903         MOV ESI,[EBP-20]\r
1904         PUSH ESI\r
1905         MOV ESI,[EBP-20]\r
1906         MOV EAX,[ESI]\r
1907         SUB EAX,_offData\r
1908         ADD EAX,_pData\r
1909         POP EBX\r
1910         MOV [EBX],EAX\r
1911         JMP L_150\r
1912 L_151:\r
1913 L_149:\r
1914         MOV ESI,_pNewJCB\r
1915         ADD ESI,38\r
1916         MOV EAX,_pStack\r
1917         MOV [ESI],EAX\r
1918         MOV ESI,_pNewJCB\r
1919         ADD ESI,42\r
1920         MOV EAX,_sStack\r
1921         MOV [ESI],EAX\r
1922         MOV ESI,_pNewJCB\r
1923         ADD ESI,22\r
1924         MOV EAX,_pCode\r
1925         MOV [ESI],EAX\r
1926         MOV ESI,_pNewJCB\r
1927         ADD ESI,26\r
1928         MOV EAX,_sCode\r
1929         MOV [ESI],EAX\r
1930         MOV ESI,_pNewJCB\r
1931         ADD ESI,30\r
1932         MOV EAX,_pData\r
1933         MOV [ESI],EAX\r
1934         MOV ESI,_pNewJCB\r
1935         ADD ESI,34\r
1936         MOV EAX,_sData\r
1937         MOV [ESI],EAX\r
1938 L_136:\r
1939         PUSH DWORD PTR [EBP+8]\r
1940         CALL FWORD PTR _CloseFile\r
1941         MOV EAX,[EBP-4]\r
1942         MOV ESP,EBP\r
1943         POP EBP\r
1944         RETN 8\r
1945 PUBLIC __KillTask:\r
1946         PUSH EBP\r
1947         MOV EBP,ESP\r
1948         PUSH OFFSET _JobNumE\r
1949         CALL FWORD PTR _GetJobNum\r
1950         PUSH _JobNumE\r
1951         PUSH OFFSET _pTmpJCB\r
1952         CALL FWORD PTR _GetpJCB\r
1953         MOV ESI,_pTmpJCB\r
1954         ADD ESI,18\r
1955         MOV EAX,[ESI]\r
1956         MOV _pPDE,EAX\r
1957         PUSH EAX\r
1958         CALL _CleanUserPD\r
1959         PUSH OFFSET _ExchE\r
1960         CALL FWORD PTR _GetTSSExch\r
1961         XOR EAX,EAX\r
1962         MOV _ercE,EAX\r
1963 L_154:\r
1964         MOV EAX,_ercE\r
1965         AND EAX,EAX\r
1966         JNZ L_155\r
1967         PUSH _ExchE\r
1968         PUSH OFFSET _BogusMsg\r
1969         CALL FWORD PTR _CheckMsg\r
1970         MOV _ercE,EAX\r
1971         JMP L_154\r
1972 L_155:\r
1973         PUSH _KillExch\r
1974         PUSH _ExchE\r
1975         PUSH 4\r
1976         CALL FWORD PTR _ISendMsg\r
1977         PUSH 31\r
1978         CALL FWORD PTR _SetPriority\r
1979         PUSH _ExchE\r
1980         PUSH OFFSET _BogusMsg\r
1981         CALL FWORD PTR _WaitMsg\r
1982 L_156:\r
1983         MOV EAX,1\r
1984         AND EAX,EAX\r
1985         JZ L_157\r
1986         JMP L_156\r
1987 L_157:\r
1988         POP EBP\r
1989         RETN\r
1990 PUBLIC __KillJob:\r
1991         PUSH EBP\r
1992         MOV EBP,ESP\r
1993         SUB ESP,4\r
1994         PUSH OFFSET _JobNumE\r
1995         CALL FWORD PTR _GetJobNum\r
1996         MOV EAX,[EBP+12]\r
1997         CMP EAX,_JobNumE\r
1998         SETE AL\r
1999         AND EAX,01h\r
2000         JNZ L_158\r
2001         MOV EAX,[EBP+12]\r
2002         CMP EAX,1\r
2003         SETE AL\r
2004         AND EAX,01h\r
2005         JNZ L_159\r
2006         MOV EAX,[EBP+12]\r
2007         CMP EAX,2\r
2008         SETE AL\r
2009         AND EAX,01h\r
2010 L_159:\r
2011 L_158:\r
2012         JZ L_160\r
2013         MOV EAX,70\r
2014         JMP L_161\r
2015 L_160:\r
2016         PUSH DWORD PTR [EBP+12]\r
2017         PUSH OFFSET _pTmpJCB\r
2018         CALL FWORD PTR _GetpJCB\r
2019         MOV [EBP-4],EAX\r
2020         AND EAX,EAX\r
2021         JZ L_162\r
2022         MOV EAX,[EBP-4]\r
2023         JMP L_161\r
2024 L_162:\r
2025         MOV ESI,_pTmpJCB\r
2026         ADD ESI,406\r
2027         MOV EAX,4\r
2028         MOV [ESI],EAX\r
2029         PUSH _pTmpJCB\r
2030         CALL _RemoveRdyJob\r
2031         XOR EAX,EAX\r
2032         MOV _ercE,EAX\r
2033         XOR EAX,EAX\r
2034         MOV _iE,EAX\r
2035 L_163:\r
2036         MOV EAX,_ercE\r
2037         CMP EAX,10\r
2038         SETNE AL\r
2039         AND EAX,01h\r
2040         JZ L_164\r
2041         PUSH _iE\r
2042         PUSH OFFSET _pExchJCBE\r
2043         CALL _GetExchOwner\r
2044         MOV _ercE,EAX\r
2045         AND EAX,EAX\r
2046         SETZ AL\r
2047         AND EAX,01\r
2048         AND EAX,EAX\r
2049         JZ L_165\r
2050         MOV EAX,_pExchJCBE\r
2051         CMP EAX,_pTmpJCB\r
2052         SETE AL\r
2053         AND EAX,01h\r
2054 L_165:\r
2055         JZ L_166\r
2056         PUSH _iE\r
2057         CALL FWORD PTR _DeAllocExch\r
2058 L_166:\r
2059         MOV EAX,_iE\r
2060         INC DWORD PTR _iE\r
2061         JMP L_163\r
2062 L_164:\r
2063         XOR EAX,EAX\r
2064         MOV _ercE,EAX\r
2065         PUSH OFFSET _ExchE\r
2066         CALL FWORD PTR _AllocExch\r
2067         MOV [EBP-4],EAX\r
2068         PUSH _ExchE\r
2069         PUSH _pTmpJCB\r
2070         CALL _SetExchOwner\r
2071         PUSH DWORD PTR [EBP+12]\r
2072         PUSH _ExchE\r
2073         CALL _SendAbort\r
2074         PUSH DWORD PTR [EBP+12]\r
2075         PUSH 8\r
2076         PUSH 3\r
2077         PUSH 0\r
2078         PUSH _ExchE\r
2079         MOV EAX,508\r
2080         MOV ESI,OFFSET _TmpStack\r
2081         ADD ESI,EAX\r
2082         PUSH ESI\r
2083         PUSH OFFSET __KillTask\r
2084         CALL FWORD PTR _NewTask\r
2085         MOV [EBP-4],EAX\r
2086 L_161:\r
2087         MOV ESP,EBP\r
2088         POP EBP\r
2089         RETF 4\r
2090 PUBLIC __ExitJob:\r
2091         PUSH EBP\r
2092         MOV EBP,ESP\r
2093         PUSH OFFSET _JobNumE\r
2094         CALL FWORD PTR _GetJobNum\r
2095         PUSH _JobNumE\r
2096         PUSH OFFSET _pCrntJCB\r
2097         CALL FWORD PTR _GetpJCB\r
2098         MOV ESI,_pCrntJCB\r
2099         ADD ESI,406\r
2100         MOV EAX,[EBP+12]\r
2101         MOV [ESI],EAX\r
2102         PUSH _pCrntJCB\r
2103         CALL _RemoveRdyJob\r
2104         PUSH OFFSET _ExchE\r
2105         CALL FWORD PTR _GetTSSExch\r
2106         XOR EAX,EAX\r
2107         MOV _ercE,EAX\r
2108         XOR EAX,EAX\r
2109         MOV _iE,EAX\r
2110 L_167:\r
2111         MOV EAX,_ercE\r
2112         CMP EAX,10\r
2113         SETNE AL\r
2114         AND EAX,01h\r
2115         JZ L_168\r
2116         PUSH _iE\r
2117         PUSH OFFSET _pExchJCBE\r
2118         CALL _GetExchOwner\r
2119         MOV _ercE,EAX\r
2120         AND EAX,EAX\r
2121         SETZ AL\r
2122         AND EAX,01\r
2123         AND EAX,EAX\r
2124         JZ L_169\r
2125         MOV EAX,_iE\r
2126         CMP EAX,_ExchE\r
2127         SETNE AL\r
2128         AND EAX,01h\r
2129         JZ L_170\r
2130         MOV EAX,_pExchJCBE\r
2131         CMP EAX,_pCrntJCB\r
2132         SETE AL\r
2133         AND EAX,01h\r
2134 L_170:\r
2135 L_169:\r
2136         JZ L_171\r
2137         PUSH _iE\r
2138         CALL FWORD PTR _DeAllocExch\r
2139 L_171:\r
2140         MOV EAX,_iE\r
2141         INC DWORD PTR _iE\r
2142         JMP L_167\r
2143 L_168:\r
2144         PUSH _JobNumE\r
2145         PUSH _ExchE\r
2146         CALL _SendAbort\r
2147         XOR EAX,EAX\r
2148         MOV _ercE,EAX\r
2149 L_172:\r
2150         MOV EAX,_ercE\r
2151         AND EAX,EAX\r
2152         JNZ L_173\r
2153         PUSH _ExchE\r
2154         PUSH OFFSET _BogusMsg\r
2155         CALL FWORD PTR _CheckMsg\r
2156         MOV _ercE,EAX\r
2157         JMP L_172\r
2158 L_173:\r
2159         XOR EAX,EAX\r
2160         MOV _ercE,EAX\r
2161         MOV EAX, OFFSET _TmpStack\r
2162         ADD EAX, 508\r
2163         MOV ESP, EAX\r
2164         MOV EBP, EAX\r
2165         MOV ESI,_pCrntJCB\r
2166         ADD ESI,18\r
2167         MOV EAX,[ESI]\r
2168         MOV _pPDE,EAX\r
2169         PUSH EAX\r
2170         CALL _CleanUserPD\r
2171         PUSH OFFSET _aFileE\r
2172         PUSH OFFSET _cbFileE\r
2173         CALL FWORD PTR _GetExitJob\r
2174         MOV EAX,_cbFileE\r
2175         AND EAX,EAX\r
2176         JNZ L_174\r
2177         MOV EAX,76\r
2178         MOV _ercE,EAX\r
2179 L_174:\r
2180         MOV EAX,_ercE\r
2181         AND EAX,EAX\r
2182         JNZ L_175\r
2183         PUSH OFFSET _aFileE\r
2184         PUSH _cbFileE\r
2185         PUSH OFFSET _job_fhE\r
2186         CALL _GetRunFile\r
2187         MOV _ercE,EAX\r
2188 L_175:\r
2189         MOV EAX,_ercE\r
2190         AND EAX,EAX\r
2191         JNZ L_176\r
2192         PUSH _pCrntJCB\r
2193         PUSH _job_fhE\r
2194         CALL _LoadJob\r
2195         MOV _ercE,EAX\r
2196 L_176:\r
2197         MOV EAX,_ercE\r
2198         AND EAX,EAX\r
2199         JNZ L_177\r
2200         MOV EAX,_pStart\r
2201         ADD EAX,_pCode\r
2202         SUB EAX,_offCode\r
2203         MOV _pStart,EAX\r
2204                         MOV EAX, _pStack\r
2205                         MOV EBX, _sStack\r
2206                         ADD EAX, EBX\r
2207                         SUB EAX, 4\r
2208                         MOV ESP, EAX\r
2209                         MOV EBP, EAX\r
2210                         PUSH 18h\r
2211                         MOV EAX, _pStart\r
2212                         PUSH EAX\r
2213                         RETF                            ;We are history!\r
2214 L_177:\r
2215         MOV EAX,_ercE\r
2216         AND EAX,EAX\r
2217         JZ L_178\r
2218         PUSH _KillExch\r
2219         PUSH _ExchE\r
2220         PUSH _ercE\r
2221         CALL FWORD PTR _ISendMsg\r
2222         PUSH 31\r
2223         CALL FWORD PTR _SetPriority\r
2224         PUSH _ExchE\r
2225         PUSH OFFSET _BogusMsg\r
2226         CALL FWORD PTR _WaitMsg\r
2227 L_179:\r
2228         MOV EAX,1\r
2229         AND EAX,EAX\r
2230         JZ L_180\r
2231         JMP L_179\r
2232 L_180:\r
2233 L_178:\r
2234         POP EBP\r
2235         RETF 4\r
2236 PUBLIC __Chain:\r
2237         PUSH EBP\r
2238         MOV EBP,ESP\r
2239         PUSH DWORD PTR [EBP+20]\r
2240         PUSH OFFSET _aFileE\r
2241         PUSH DWORD PTR [EBP+16]\r
2242         CALL FWORD PTR _CopyData\r
2243         MOV EAX,[EBP+16]\r
2244         MOV _cbFileE,EAX\r
2245         PUSH DWORD PTR [EBP+20]\r
2246         PUSH DWORD PTR [EBP+16]\r
2247         PUSH OFFSET _job_fhE\r
2248         CALL _GetRunFile\r
2249         MOV _ercE,EAX\r
2250         AND EAX,EAX\r
2251         JZ L_181\r
2252         PUSH _job_fhE\r
2253         CALL FWORD PTR _CloseFile\r
2254         MOV EAX,_ercE\r
2255         JMP L_182\r
2256 L_181:\r
2257         PUSH _job_fhE\r
2258         CALL FWORD PTR _CloseFile\r
2259         PUSH OFFSET _JobNumE\r
2260         CALL FWORD PTR _GetJobNum\r
2261         PUSH _JobNumE\r
2262         PUSH OFFSET _pCrntJCB\r
2263         CALL FWORD PTR _GetpJCB\r
2264         MOV ESI,_pCrntJCB\r
2265         ADD ESI,406\r
2266         MOV EAX,[EBP+12]\r
2267         MOV [ESI],EAX\r
2268         PUSH _pCrntJCB\r
2269         CALL _RemoveRdyJob\r
2270         PUSH OFFSET _ExchE\r
2271         CALL FWORD PTR _GetTSSExch\r
2272         XOR EAX,EAX\r
2273         MOV _ercE,EAX\r
2274         XOR EAX,EAX\r
2275         MOV _iE,EAX\r
2276 L_183:\r
2277         MOV EAX,_ercE\r
2278         CMP EAX,10\r
2279         SETNE AL\r
2280         AND EAX,01h\r
2281         JZ L_184\r
2282         PUSH _iE\r
2283         PUSH OFFSET _pExchJCBE\r
2284         CALL _GetExchOwner\r
2285         MOV _ercE,EAX\r
2286         AND EAX,EAX\r
2287         SETZ AL\r
2288         AND EAX,01\r
2289         AND EAX,EAX\r
2290         JZ L_185\r
2291         MOV EAX,_iE\r
2292         CMP EAX,_ExchE\r
2293         SETNE AL\r
2294         AND EAX,01h\r
2295         JZ L_186\r
2296         MOV EAX,_pExchJCBE\r
2297         CMP EAX,_pCrntJCB\r
2298         SETE AL\r
2299         AND EAX,01h\r
2300 L_186:\r
2301 L_185:\r
2302         JZ L_187\r
2303         PUSH _iE\r
2304         CALL FWORD PTR _DeAllocExch\r
2305 L_187:\r
2306         MOV EAX,_iE\r
2307         INC DWORD PTR _iE\r
2308         JMP L_183\r
2309 L_184:\r
2310         PUSH _JobNumE\r
2311         PUSH _ExchE\r
2312         CALL _SendAbort\r
2313         XOR EAX,EAX\r
2314         MOV _ercE,EAX\r
2315 L_188:\r
2316         MOV EAX,_ercE\r
2317         AND EAX,EAX\r
2318         JNZ L_189\r
2319         PUSH _ExchE\r
2320         PUSH OFFSET _BogusMsg\r
2321         CALL FWORD PTR _CheckMsg\r
2322         MOV _ercE,EAX\r
2323         JMP L_188\r
2324 L_189:\r
2325         XOR EAX,EAX\r
2326         MOV _ercE,EAX\r
2327         MOV EAX, OFFSET _TmpStack\r
2328         ADD EAX, 508\r
2329         MOV ESP, EAX\r
2330         MOV EBP, EAX\r
2331         MOV ESI,_pCrntJCB\r
2332         ADD ESI,18\r
2333         MOV EAX,[ESI]\r
2334         MOV _pPDE,EAX\r
2335         PUSH EAX\r
2336         CALL _CleanUserPD\r
2337         PUSH OFFSET _aFileE\r
2338         PUSH _cbFileE\r
2339         PUSH OFFSET _job_fhE\r
2340         CALL _GetRunFile\r
2341         PUSH _pCrntJCB\r
2342         PUSH _job_fhE\r
2343         CALL _LoadJob\r
2344         MOV _ercE,EAX\r
2345         AND EAX,EAX\r
2346         JZ L_190\r
2347         PUSH OFFSET _aFileE\r
2348         PUSH OFFSET _cbFileE\r
2349         CALL FWORD PTR _GetExitJob\r
2350         MOV EAX,_cbFileE\r
2351         AND EAX,EAX\r
2352         JNZ L_191\r
2353         MOV EAX,76\r
2354         MOV _ercE,EAX\r
2355 L_191:\r
2356         MOV EAX,_ercE\r
2357         AND EAX,EAX\r
2358         JNZ L_192\r
2359         PUSH OFFSET _aFileE\r
2360         PUSH _cbFileE\r
2361         PUSH OFFSET _job_fhE\r
2362         CALL _GetRunFile\r
2363         MOV _ercE,EAX\r
2364 L_192:\r
2365         MOV EAX,_ercE\r
2366         AND EAX,EAX\r
2367         JNZ L_193\r
2368         PUSH _pCrntJCB\r
2369         PUSH _job_fhE\r
2370         CALL _LoadJob\r
2371         MOV _ercE,EAX\r
2372 L_193:\r
2373 L_190:\r
2374         MOV EAX,_ercE\r
2375         AND EAX,EAX\r
2376         JNZ L_194\r
2377         MOV EAX,_pStart\r
2378         ADD EAX,_pCode\r
2379         SUB EAX,_offCode\r
2380         MOV _pStart,EAX\r
2381                 MOV EAX, _pStack\r
2382                 MOV EBX, _sStack\r
2383                 ADD EAX, EBX\r
2384                 SUB EAX, 4\r
2385                 MOV ESP, EAX\r
2386                 MOV EBP, EAX\r
2387                 PUSH 18h\r
2388                 MOV EAX, _pStart\r
2389                 PUSH EAX\r
2390                 RETF                            ;We are history!\r
2391 L_194:\r
2392         MOV EAX,_ercE\r
2393         AND EAX,EAX\r
2394         JZ L_195\r
2395         PUSH _KillExch\r
2396         PUSH _ExchE\r
2397         PUSH _ercE\r
2398         CALL FWORD PTR _ISendMsg\r
2399                 STI\r
2400         PUSH 31\r
2401         CALL FWORD PTR _SetPriority\r
2402         PUSH _ExchE\r
2403         PUSH OFFSET _BogusMsg\r
2404         CALL FWORD PTR _WaitMsg\r
2405 L_196:\r
2406         MOV EAX,1\r
2407         AND EAX,EAX\r
2408         JZ L_197\r
2409         JMP L_196\r
2410 L_197:\r
2411 L_195:\r
2412 L_182:\r
2413         POP EBP\r
2414         RETF 12\r