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