.DATA EXTRN _AllocExch FWORD EXTRN _DeAllocExch FWORD EXTRN _GetTSSExch FWORD EXTRN _SetPriority FWORD EXTRN _NewTask FWORD EXTRN _SpawnTask FWORD EXTRN _SendMsg FWORD EXTRN _ISendMsg FWORD EXTRN _WaitMsg FWORD EXTRN _CheckMsg FWORD EXTRN _Request FWORD EXTRN _MoveRequest FWORD EXTRN _Respond FWORD EXTRN _AllocPage FWORD EXTRN _AllocOSPage FWORD EXTRN _AllocDMAPage FWORD EXTRN _DeAllocPage FWORD EXTRN _QueryPages FWORD EXTRN _GetPhyAdd FWORD EXTRN _AliasMem FWORD EXTRN _DeAliasMem FWORD EXTRN _CopyData FWORD EXTRN _FillData FWORD EXTRN _CompareNCS FWORD EXTRN _Compare FWORD EXTRN _OutByte FWORD EXTRN _OutWord FWORD EXTRN _InByte FWORD EXTRN _InWord FWORD EXTRN _ReadCMOS FWORD EXTRN _Alarm FWORD EXTRN _KillAlarm FWORD EXTRN _Sleep FWORD EXTRN _MicroDelay FWORD EXTRN _GetCMOSTime FWORD EXTRN _GetCMOSDate FWORD EXTRN _GetTimerTick FWORD EXTRN _Tone FWORD EXTRN _Beep FWORD EXTRN _SetVidOwner FWORD EXTRN _SetNormVid FWORD EXTRN _GetNormVid FWORD EXTRN _ClrScr FWORD EXTRN _GetVidChar FWORD EXTRN _SetXY FWORD EXTRN _PutVidAttrs FWORD EXTRN _PutVidChars FWORD EXTRN _GetVidOwner FWORD EXTRN _GetXY FWORD EXTRN _ScrollVid FWORD EXTRN _TTYOut FWORD EXTRN _EditLine FWORD EXTRN _ReadKbd FWORD EXTRN _GetpJCB FWORD EXTRN _GetJobNum FWORD EXTRN _LoadNewJob FWORD EXTRN _Chain FWORD EXTRN _ExitJob FWORD EXTRN _KillJob FWORD EXTRN _SetUserName FWORD EXTRN _GetUserName FWORD EXTRN _SetCmdLine FWORD EXTRN _GetCmdLine FWORD EXTRN _SetPath FWORD EXTRN _GetPath FWORD EXTRN _SetExitJob FWORD EXTRN _GetExitJob FWORD EXTRN _SetSysIn FWORD EXTRN _GetSysIn FWORD EXTRN _SetSysOut FWORD EXTRN _GetSysOut FWORD EXTRN _SetJobName FWORD EXTRN _RegisterSvc FWORD EXTRN _UnRegisterSvc FWORD EXTRN _GetSystemDisk FWORD EXTRN _CreateFile FWORD EXTRN _CreateDir FWORD EXTRN _DeleteDir FWORD EXTRN _OpenFile FWORD EXTRN _RenameFile FWORD EXTRN _GetFileSize FWORD EXTRN _SetFileSize FWORD EXTRN _ReadBlock FWORD EXTRN _WriteBlock FWORD EXTRN _ReadBytes FWORD EXTRN _WriteBytes FWORD EXTRN _GetFileLFA FWORD EXTRN _SetFileLFA FWORD EXTRN _CloseFile FWORD EXTRN _DeleteFile FWORD EXTRN _GetDirSector FWORD EXTRN _InitDevDr FWORD EXTRN _DeviceOp FWORD EXTRN _DeviceStat FWORD EXTRN _DeviceInit FWORD EXTRN _UnMaskIRQ FWORD EXTRN _MaskIRQ FWORD EXTRN _SetIRQVector FWORD EXTRN _EndOfIRQ FWORD _rgStatLine DB 109,109,47,100,100,47,121,121,32,32,48 DB 48,58,48,48,58,48,48,32,32,32,32 DB 32,32,32,32,32,32,32,32,32,32,77 DB 77,85,82,84,76,32,77,111,110,105,116 DB 111,114,32,32,32,32,32,32,32,32,32 DB 32,32,32,32,32,32,32,32,32,32,84 DB 105,99,107,58,48,32,32,32,32,32,32 DB 32,32,32,0 _rgMonMenu1 DB 76,100,67,76,73,-77,74,111,98,115,32 DB 32,-77,83,116,97,116,115,32,-77,32,32 DB 32,32,32,32,0 _rgMonMenu2 DB 32,32,32,32,32,-77,32,32,32,32,32 DB 32,-77,32,32,32,32,32,32,-77,82,101 DB 98,111,111,116,0 _rgMonMenu3 DB 32,32,32,32,32,-77,68,101,98,117,103 DB 32,-77,32,32,32,32,32,32,-77,32,32 DB 32,32,32,0 _rgCPR1 DB 77,77,85,82,84,76,32,40,116,109,41 DB 32,45,32,77,101,115,115,97,103,101,32 DB 98,97,115,101,100,44,32,77,85,108,116 DB 105,116,97,115,107,105,110,103,44,32,82 DB 101,97,108,45,84,105,109,101,32,107,101 DB 114,110,101,76,0 _rgCPR2 DB 67,111,112,121,114,105,103,104,116,32,40 DB 99,41,32,82,46,65,46,32,66,117,114 DB 103,101,115,115,44,32,49,57,57,48,45 DB 49,57,57,51,44,32,65,108,108,32,82 DB 105,103,104,116,115,32,82,101,115,101,114 DB 118,101,100,0 _CRLF DD OFFSET L_lit+0 _Color DD 7 EXTRN _oMemMax DD EXTRN _nSwitches DD EXTRN _nSlices DD EXTRN _nHalts DD EXTRN _nReady DD EXTRN _nRQBLeft DD EXTRN _nJCBLeft DD EXTRN _nTSSLeft DD EXTRN _nLBLeft DD EXTRN _nEXCHLeft DD EXTRN _BootDrive DD L_lit DB 13,10,13,10,0,37,100,0,37,100,0,37,100,0,74,111 DB 98,32,110,117,109,98,101,114,32,37,100,32,116,101,114,109 DB 105,110,97,116,101,100,46,32,69,114,114,111,114,58,32,37 DB 100,13,10,0,75,69,89,66,79,65,82,68,0,75,69,89 DB 66,79,65,82,68,0,75,69,89,66,79,65,82,68,0,75 DB 69,89,66,79,65,82,68,0,58,92,77,77,83,89,83,92 DB 73,78,73,84,73,65,76,46,74,79,66,0,0,99,108,105 DB 46,114,117,110,0,76,111,97,100,105,110,103,58,32,37,115 DB 46,46,46,13,10,0,83,117,99,99,101,115,115,102,117,108 DB 108,121,32,108,111,97,100,101,100,32,97,115,32,106,111,98 DB 32,37,100,13,10,0,69,82,82,79,82,32,37,100,32,76 DB 111,97,100,105,110,103,32,106,111,98,13,10,0,75,69,89 DB 66,79,65,82,68,0,73,78,73,84,73,65,76,46,74,79 DB 66,32,102,105,108,101,32,110,111,116,32,102,111,117,110,100 DB 32,105,110,32,115,121,115,116,101,109,32,100,105,114,101,99 DB 116,111,114,121,46,13,10,0,58,92,77,77,83,89,83,92 DB 67,76,73,46,82,85,78,0,0,76,111,97,100,105,110,103 DB 58,32,37,115,46,46,46,0,78,101,119,32,67,76,73,32 DB 74,111,98,32,78,117,109,98,101,114,32,105,115,58,32,37 DB 100,13,10,0,75,69,89,66,79,65,82,68,0,65,108,108 DB 111,99,69,120,99,104,32,40,77,110,103,114,32,69,120,99 DB 104,41,32,69,114,114,111,114,58,32,37,100,13,10,0,83 DB 112,97,119,110,84,97,115,107,32,40,83,116,97,116,84,97 DB 115,107,41,32,69,114,114,111,114,58,32,37,100,13,10,0 DB 65,108,108,111,99,69,120,99,104,32,40,75,105,108,108,32 DB 69,120,99,104,41,32,69,114,114,111,114,58,32,37,100,13 DB 10,0,77,77,85,82,84,76,32,40,116,109,41,32,45,32 DB 77,101,115,115,97,103,101,32,98,97,115,101,100,44,32,77 DB 85,108,116,105,116,97,115,107,105,110,103,44,32,82,101,97 DB 108,45,84,105,109,101,32,107,101,114,110,101,76,13,10,0 DB 67,111,112,121,114,105,103,104,116,32,40,99,41,32,82,46 DB 65,46,66,117,114,103,101,115,115,44,32,49,57,57,49,45 DB 49,57,57,53,32,32,65,76,76,32,82,73,71,72,84,83 DB 32,82,69,83,69,82,86,69,68,13,10,13,10,0,66,111 DB 111,116,68,114,105,118,101,58,32,37,99,13,10,0,84,111 DB 116,97,108,32,109,101,109,111,114,121,32,40,75,98,41,58 DB 32,37,100,13,10,0,70,114,101,101,32,109,101,109,111,114 DB 121,32,32,40,75,98,41,58,32,37,100,13,10,0,73,110 DB 105,116,32,75,66,68,32,83,101,114,118,105,99,101,32,69 DB 114,114,111,114,58,32,37,100,13,10,0,73,110,105,116,32 DB 83,101,114,105,97,108,32,67,111,109,109,115,32,68,101,118 DB 105,99,101,32,68,114,105,118,101,114,32,69,114,114,111,114 DB 58,32,37,100,13,10,0,73,110,105,116,32,80,97,114,97 DB 108,108,101,108,32,76,80,84,32,68,101,118,105,99,101,32 DB 68,114,105,118,101,114,32,69,114,114,111,114,58,32,37,100 DB 13,10,0,65,108,108,111,99,69,120,99,104,32,69,114,114 DB 111,114,58,32,37,100,13,10,0,65,108,108,111,99,69,120 DB 99,104,32,71,80,49,32,69,114,114,111,114,58,32,37,100 DB 13,10,0,73,110,105,116,32,102,108,111,112,112,121,32,100 DB 101,118,105,99,101,32,100,114,105,118,101,114,46,46,46,32 DB 69,114,114,111,114,58,32,0,37,100,13,10,0,73,110,105 DB 116,32,104,97,114,100,32,100,105,115,107,32,100,101,118,105 DB 99,101,32,100,114,105,118,101,114,46,46,46,32,69,114,114 DB 111,114,58,32,0,37,100,13,10,0,73,110,105,116,105,97 DB 108,105,122,105,110,103,32,102,105,108,101,32,115,121,115,116 DB 101,109,46,46,46,13,10,0,70,105,108,101,32,83,121,115 DB 116,101,109,46,46,46,32,69,114,114,111,114,58,32,37,100 DB 13,10,0,75,69,89,66,79,65,82,68,0,75,98,100,32 DB 83,118,99,32,82,101,113,117,101,115,116,32,75,69,82,78 DB 69,76,32,69,82,82,79,82,58,32,37,100,13,10,0,75 DB 69,82,78,69,76,32,69,114,114,111,114,32,102,114,111,109 DB 32,87,97,105,116,32,109,115,103,58,32,32,37,100,13,10 DB 0,69,114,114,111,114,32,102,114,111,109,32,76,111,97,100 DB 67,76,73,58,32,32,37,100,13,10,0,74,111,98,58,32 DB 37,100,13,10,0,78,97,109,101,58,32,37,115,13,10,0 DB 65,110,121,32,107,101,121,32,116,111,32,100,105,115,109,105 DB 115,115,32,115,116,97,116,117,115,46,46,46,32,13,10,0 DB 70,114,101,101,32,52,75,32,109,101,109,111,114,121,32,112 DB 97,103,101,115,58,32,32,32,32,32,32,37,100,13,10,0 DB 84,97,115,107,32,115,119,105,116,99,104,101,115,32,116,111 DB 116,97,108,58,32,32,32,32,32,32,32,37,100,13,10,0 DB 80,114,101,101,109,112,116,105,118,101,32,116,97,115,107,32 DB 115,119,105,116,99,104,101,115,58,32,32,37,100,13,10,0 DB 67,80,85,32,105,100,108,101,32,116,105,99,107,115,32,40 DB 110,111,32,119,111,114,107,41,58,32,32,37,100,13,10,0 DB 84,97,115,107,115,32,82,101,97,100,121,32,116,111,32,82 DB 117,110,58,32,32,32,32,32,32,32,32,37,100,13,10,0 DB 70,114,101,101,32,84,97,115,107,32,83,116,97,116,101,32 DB 83,101,103,109,101,110,116,115,58,32,32,37,100,13,10,0 DB 70,114,101,101,32,74,111,98,32,67,111,110,116,114,111,108 DB 32,66,108,111,99,107,115,58,32,32,32,37,100,13,10,0 DB 70,114,101,101,32,82,101,113,117,101,115,116,32,66,108,111 DB 99,107,115,58,32,32,32,32,32,32,32,37,100,13,10,0 DB 70,114,101,101,32,76,105,110,107,32,66,108,111,99,107,115 DB 58,32,32,32,32,32,32,32,32,32,32,37,100,13,10,0 DB 70,114,101,101,32,69,120,99,104,97,110,103,101,115,58,32 DB 32,32,32,32,32,32,32,32,32,32,32,37,100,13,10,0 DB 124,0,47,0,45,0,92,0,124,0,47,0,45,0,92,0 DB 32,0,13,10,0,13,10,70,56,32,97,103,97,105,110,32 DB 116,111,32,114,101,98,111,111,116,44,32,97,110,121,32,111 DB 116,104,101,114,32,107,101,121,32,116,111,32,99,97,110,99 DB 101,108,0,46,46,46,67,97,110,99,101,108,108,101,100,13 DB 10,0 _time DD 0h _date DD 0h _tick DD 0h PUBLIC _KillExch DD 0h _KillMsg DD 2 DUP(0) _KillError DD 0h _KillJobNum DD 0h _fKilled DB 0h _MngrExch DD 0h _MngrMsg DD 2 DUP(0) _MngrHndl DD 0h _gcode DD 0h _GPExch DD 0h _GPMsg DD 2 DUP(0) _GPHndl DD 0h _GP1Exch DD 0h _GP1Msg DD 2 DUP(0) _GP1Hndl DD 0h _DiskStatus DB 64 DUP(0) _pJCB DD 0h _StatStack DD 256 DUP(0) _MngrStack DD 256 DUP(0) _Buffer DB 512 DUP(0) _nMemPages DD 0h .CODE EXTRN _InitKBDService: NEAR EXTRN _fdisk_setup: NEAR EXTRN _hdisk_setup: NEAR EXTRN _coms_setup: NEAR EXTRN _lpt_setup: NEAR EXTRN _InitFS: NEAR EXTRN _GetExchOwner: NEAR EXTRN _DeAllocJCB: NEAR _isdigit: PUSH EBP MOV EBP,ESP MOV EAX,[EBP+8] CMP AL, 30h ;0 JL isdigit0 ;No CMP AL, 39h ; JLE isdigit1 ;Yes isdigit0: XOR EAX,EAX ;No JMP SHORT isdigit2 isdigit1: MOV EAX, -1 isdigit2: POP EBP RETN 4 _strlen: PUSH EBP MOV EBP,ESP XOR EAX, EAX MOV ESI,[EBP+8] _strlen0: CMP BYTE PTR [ESI],0 JE _strlen1 INC ESI INC EAX JMP SHORT _strlen0 _strlen1: POP EBP RETN 4 __ffmt: PUSH EBP MOV EBP,ESP SUB ESP,57 XOR EAX,EAX MOV DWORD PTR [EBP-57], EAX L_1: MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-41], AL AND EAX,EAX JZ L_2 MOVSX EAX,BYTE PTR [EBP-41] CMP EAX,37 SETE AL AND AL,AL JZ L_3 MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-41], AL MOV EAX,32 LEA ESI,BYTE PTR [EBP-33] ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-37], EAX MOV ESI,DWORD PTR [EBP-37] XOR EAX,EAX MOV BYTE PTR [EBP-40], AL MOV BYTE PTR [EBP-38], AL MOV BYTE PTR [ESI], AL XOR EAX,EAX MOV DWORD PTR [EBP-53], EAX MOV DWORD PTR [EBP-49], EAX MOV DWORD PTR [EBP-45], EAX MOV EAX,32 MOV BYTE PTR [EBP-39], AL MOVSX EAX,BYTE PTR [EBP-41] CMP EAX,45 SETE AL AND AL,AL JZ L_4 DEC BYTE PTR [EBP-38] MOVSX EAX,BYTE PTR [EBP-38] MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-41], AL L_4: MOVSX EAX,BYTE PTR [EBP-41] CMP EAX,48 SETE AL AND AL,AL JZ L_5 MOV EAX,48 MOV BYTE PTR [EBP-39], AL L_5: L_6: MOVSX EAX,BYTE PTR [EBP-41] PUSH EAX CALL _isdigit AND EAX,EAX JZ L_7 MOV EAX,DWORD PTR [EBP-45] MOV ECX,10 MUL ECX MOV EBX,EAX MOVSX EAX,BYTE PTR [EBP-41] MOV ECX,48 SUB EAX,ECX ADD EAX,EBX MOV DWORD PTR [EBP-45], EAX MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-41], AL JMP L_6 L_7: SUB DWORD PTR [EBP+8],4 MOV ESI,DWORD PTR [EBP+8] MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-49], EAX MOVSX EAX,BYTE PTR [EBP-41] JMP L_9 L_10: MOV EAX,DWORD PTR [EBP-49] AND EAX,-2147483648 JZ L_11 NEG DWORD PTR [EBP-49] MOV EAX,DWORD PTR [EBP-49] INC BYTE PTR [EBP-40] MOVSX EAX,BYTE PTR [EBP-40] L_11: L_12: MOV EAX,10 MOV DWORD PTR [EBP-53], EAX JMP L_8 L_13: L_14: MOV EAX,16 MOV DWORD PTR [EBP-53], EAX JMP L_8 L_15: MOV EAX,8 MOV DWORD PTR [EBP-53], EAX JMP L_8 L_16: MOV EAX,2 MOV DWORD PTR [EBP-53], EAX JMP L_8 L_17: DEC DWORD PTR [EBP-37] MOV ESI,DWORD PTR [EBP-37] MOV EAX,DWORD PTR [EBP-49] MOV BYTE PTR [ESI], AL JMP L_8 L_18: MOV EAX,DWORD PTR [EBP-49] MOV DWORD PTR [EBP-37], EAX JMP L_8 L_19: DEC DWORD PTR [EBP-37] MOV ESI,DWORD PTR [EBP-37] MOVSX EAX,BYTE PTR [EBP-41] MOV BYTE PTR [ESI], AL ADD DWORD PTR [EBP+8],4 MOV EAX,DWORD PTR [EBP+8] JMP L_8 L_9: CMP EAX,115 JE L_18 CMP EAX,99 JE L_17 CMP EAX,98 JE L_16 CMP EAX,111 JE L_15 CMP EAX,88 JE L_14 CMP EAX,120 JE L_13 CMP EAX,117 JE L_12 CMP EAX,100 JE L_10 JMP L_19 L_8: MOV EAX,DWORD PTR [EBP-53] AND EAX,EAX JZ L_20 L_21: MOV EAX,DWORD PTR [EBP-49] MOV ECX,DWORD PTR [EBP-53] XOR EDX,EDX DIV ECX MOV EAX,EDX ADD EAX,48 MOV BYTE PTR [EBP-41], AL CMP EAX,57 SETG AL AND AL,AL JZ L_24 MOVSX EAX,BYTE PTR [EBP-41] MOV ECX,7 ADD EAX,ECX MOV BYTE PTR [EBP-41], AL L_24: DEC DWORD PTR [EBP-37] MOV ESI,DWORD PTR [EBP-37] MOVSX EAX,BYTE PTR [EBP-41] MOV BYTE PTR [ESI], AL L_22: MOV EAX,DWORD PTR [EBP-49] MOV ECX,DWORD PTR [EBP-53] XOR EDX,EDX DIV ECX MOV DWORD PTR [EBP-49], EAX AND EAX,EAX JNZ L_21 L_23: L_20: MOVSX EAX,BYTE PTR [EBP-40] AND EAX,EAX JZ L_25 MOV ESI,DWORD PTR [EBP+16] INC DWORD PTR [EBP+16] MOV EAX,45 MOV BYTE PTR [ESI], AL INC DWORD PTR [EBP-57] MOV EAX,DWORD PTR [EBP-45] AND EAX,EAX JZ L_26 DEC DWORD PTR [EBP-45] MOV EAX,DWORD PTR [EBP-45] L_26: L_25: MOV EAX,DWORD PTR [EBP-45] AND EAX,EAX JZ L_27 MOVSX EAX,BYTE PTR [EBP-38] AND EAX,EAX SETZ AL AND AL,AL L_27: JZ L_28 PUSH DWORD PTR [EBP-37] CALL _strlen MOV DWORD PTR [EBP-53], EAX L_29: MOV EAX,DWORD PTR [EBP-53] CMP EAX,DWORD PTR [EBP-45] SETB AL AND AL,AL JZ L_30 JMP SHORT L_31 L_32: INC DWORD PTR [EBP-53] MOV EAX,DWORD PTR [EBP-53] JMP SHORT L_29 L_31: MOV ESI,DWORD PTR [EBP+16] INC DWORD PTR [EBP+16] MOVSX EAX,BYTE PTR [EBP-39] MOV BYTE PTR [ESI], AL JMP L_32 L_30: INC DWORD PTR [EBP-57] MOV EAX,DWORD PTR [EBP-57] L_28: XOR EAX,EAX MOV DWORD PTR [EBP-53], EAX MOV EAX,DWORD PTR [EBP-45] SUB EAX,1 MOV DWORD PTR [EBP-49], EAX L_33: MOV ESI,DWORD PTR [EBP-37] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_35 MOV EAX,DWORD PTR [EBP-53] CMP EAX,DWORD PTR [EBP-49] SETBE AL AND AL,AL L_35: JZ L_34 MOV ESI,DWORD PTR [EBP+16] INC DWORD PTR [EBP+16] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-37] INC DWORD PTR [EBP-37] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL INC DWORD PTR [EBP-57] MOV EAX,DWORD PTR [EBP-57] INC DWORD PTR [EBP-53] MOV EAX,DWORD PTR [EBP-53] JMP L_33 L_34: MOV EAX,DWORD PTR [EBP-45] AND EAX,EAX JZ L_36 MOVSX EAX,BYTE PTR [EBP-38] L_36: AND EAX,EAX JZ L_37 L_38: MOV EAX,DWORD PTR [EBP-53] CMP EAX,DWORD PTR [EBP-45] SETB AL AND AL,AL JZ L_39 MOV ESI,DWORD PTR [EBP+16] INC DWORD PTR [EBP+16] MOVSX EAX,BYTE PTR [EBP-39] MOV BYTE PTR [ESI], AL INC DWORD PTR [EBP-57] MOV EAX,DWORD PTR [EBP-57] INC DWORD PTR [EBP-53] MOV EAX,DWORD PTR [EBP-53] JMP L_38 L_39: L_37: JMP L_40 L_3: MOV ESI,DWORD PTR [EBP+16] INC DWORD PTR [EBP+16] MOVSX EAX,BYTE PTR [EBP-41] MOV BYTE PTR [ESI], AL INC DWORD PTR [EBP-57] MOV EAX,DWORD PTR [EBP-57] L_40: JMP L_1 L_2: MOV ESI,DWORD PTR [EBP+16] XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV EAX,DWORD PTR [EBP-57] L_41: MOV ESP,EBP POP EBP RETN 12 PUBLIC _xprintf: PUSH EBP MOV EBP,ESP SUB ESP,108 LEA EAX,DWORD PTR [EBP+EDI+8] MOV DWORD PTR [EBP-4], EAX LEA EAX,DWORD PTR [EBP-108] PUSH EAX PUSH DWORD PTR [EBP+EDI+8] PUSH DWORD PTR [EBP-4] CALL __ffmt MOV DWORD PTR [EBP-8], EAX LEA EAX,DWORD PTR [EBP-108] PUSH EAX LEA EAX,DWORD PTR [EBP-108] PUSH EAX CALL _strlen PUSH EAX PUSH _Color CALL FWORD PTR _TTYOut MOV EAX,DWORD PTR [EBP-8] MOV ESP,EBP POP EBP RETN PUBLIC _xsprintf: PUSH EBP MOV EBP,ESP SUB ESP,8 LEA EAX,DWORD PTR [EBP+EDI+8] MOV DWORD PTR [EBP-4], EAX PUSH DWORD PTR [EBP+EDI+12] PUSH DWORD PTR [EBP+EDI+8] PUSH DWORD PTR [EBP-4] CALL __ffmt MOV DWORD PTR [EBP-8], EAX MOV EAX,DWORD PTR [EBP-8] MOV ESP,EBP POP EBP RETN PUBLIC _CheckScreen: PUSH EBP MOV EBP,ESP SUB ESP,8 LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX CALL FWORD PTR _GetXY MOV EAX,DWORD PTR [EBP-8] CMP EAX,23 SETGE AL AND AL,AL JZ L_44 XOR EAX,EAX PUSH EAX PUSH 1 PUSH 80 PUSH 23 PUSH 1 CALL FWORD PTR _ScrollVid XOR EAX,EAX PUSH EAX PUSH 22 CALL FWORD PTR _SetXY L_44: MOV ESP,EBP POP EBP RETN _InitScreen: PUSH EBP MOV EBP,ESP CALL FWORD PTR _ClrScr MOV EAX,70 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX PUSH ESI PUSH OFFSET L_lit+5 PUSH _tick MOV EDI, 4 CALL _xsprintf ADD ESP,12 XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH OFFSET _rgStatLine PUSH 80 PUSH 23 CALL FWORD PTR _PutVidChars XOR EAX,EAX PUSH EAX PUSH 24 PUSH OFFSET _rgMonMenu1 PUSH 26 PUSH 113 CALL FWORD PTR _PutVidChars PUSH 27 PUSH 24 PUSH OFFSET _rgMonMenu2 PUSH 26 PUSH 113 CALL FWORD PTR _PutVidChars PUSH 54 PUSH 24 PUSH OFFSET _rgMonMenu3 PUSH 25 PUSH 113 CALL FWORD PTR _PutVidChars XOR EAX,EAX PUSH EAX PUSH 1 CALL FWORD PTR _SetXY POP EBP RETN _StatTask: PUSH EBP MOV EBP,ESP SUB ESP,28 L_46: PUSH OFFSET _time CALL FWORD PTR _GetCMOSTime MOV EAX,10 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_time MOV ECX,20 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,11 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_time MOV ECX,16 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,13 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_time MOV ECX,12 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,14 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_time MOV ECX,8 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,16 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_time MOV ECX,4 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,17 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_time AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL PUSH OFFSET _date CALL FWORD PTR _GetCMOSDate MOV ESI,OFFSET _rgStatLine MOV EAX,_date MOV ECX,20 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,1 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_date MOV ECX,16 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,3 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_date MOV ECX,12 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,4 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_date MOV ECX,8 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,6 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_date MOV ECX,28 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL MOV EAX,7 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX MOV EAX,_date MOV ECX,24 SHR EAX,CL AND EAX,15 ADD EAX,48 MOV BYTE PTR [ESI], AL PUSH OFFSET _tick CALL FWORD PTR _GetTimerTick MOV EAX,70 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX PUSH ESI PUSH OFFSET L_lit+8 PUSH _tick MOV EDI, 4 CALL _xsprintf ADD ESP,12 XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH OFFSET _rgStatLine PUSH 80 PUSH 23 CALL FWORD PTR _PutVidChars PUSH 50 CALL FWORD PTR _Sleep PUSH OFFSET _tick CALL FWORD PTR _GetTimerTick MOV EAX,70 MOV ESI,OFFSET _rgStatLine ADD ESI,EAX PUSH ESI PUSH OFFSET L_lit+11 PUSH _tick MOV EDI, 4 CALL _xsprintf ADD ESP,12 XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH OFFSET _rgStatLine PUSH 80 PUSH 23 CALL FWORD PTR _PutVidChars PUSH 50 CALL FWORD PTR _Sleep PUSH _KillExch PUSH OFFSET _KillMsg CALL FWORD PTR _CheckMsg MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_48 MOV ESI,OFFSET _KillMsg MOV EAX,DWORD PTR [ESI] MOV _KillError, EAX MOV EAX,4 MOV ESI,OFFSET _KillMsg ADD ESI,EAX PUSH DWORD PTR [ESI] PUSH OFFSET _pJCB CALL _GetExchOwner MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_49 MOV ESI,_pJCB MOV EAX,DWORD PTR [ESI] MOV _KillJobNum, EAX PUSH 440 PUSH 50 CALL FWORD PTR _Tone PUSH OFFSET L_lit+14 PUSH _KillJobNum PUSH _KillError MOV EDI, 8 CALL _xprintf ADD ESP,12 CALL _CheckScreen MOV ESI,_pJCB MOV EAX,DWORD PTR [ESI+18] MOV DWORD PTR [EBP-24], EAX MOV ESI,_pJCB MOV EAX,DWORD PTR [ESI+414] MOV DWORD PTR [EBP-28], EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX CALL FWORD PTR _GetVidOwner MOV EAX,DWORD PTR [EBP-8] CMP EAX,_KillJobNum SETE AL AND AL,AL JZ L_50 LEA EAX,DWORD PTR [EBP-12] PUSH EAX CALL FWORD PTR _GetTSSExch PUSH 1 CALL FWORD PTR _SetVidOwner PUSH OFFSET L_lit+52 PUSH 4 PUSH DWORD PTR [EBP-12] LEA EAX,DWORD PTR [EBP-8] PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH 1 XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _Request MOV DWORD PTR [EBP-4], EAX PUSH DWORD PTR [EBP-12] LEA EAX,DWORD PTR [EBP-20] PUSH EAX CALL FWORD PTR _WaitMsg MOV DWORD PTR [EBP-4], EAX L_50: MOV EAX,4 MOV ESI,OFFSET _KillMsg ADD ESI,EAX PUSH DWORD PTR [ESI] CALL FWORD PTR _DeAllocExch PUSH _pJCB CALL _DeAllocJCB PUSH DWORD PTR [EBP-24] PUSH 2 CALL FWORD PTR _DeAllocPage PUSH DWORD PTR [EBP-28] PUSH 1 CALL FWORD PTR _DeAllocPage MOV EAX,1 MOV _fKilled, AL L_49: L_48: JMP L_46 L_47: MOV ESP,EBP POP EBP RETN _MngrTask: PUSH EBP MOV EBP,ESP SUB ESP,20 PUSH OFFSET L_lit+61 PUSH 2 PUSH _MngrExch PUSH OFFSET _MngrHndl XOR EAX,EAX PUSH EAX PUSH OFFSET _gcode PUSH 4 XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _Request MOV DWORD PTR [EBP-4], EAX L_51: PUSH _MngrExch PUSH OFFSET _MngrMsg CALL FWORD PTR _WaitMsg MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_53 MOV EAX,_gcode AND EAX,255 CMP EAX,12 SETE AL AND AL,AL JZ L_54 LEA EAX,DWORD PTR [EBP-12] PUSH EAX CALL FWORD PTR _GetVidOwner MOV DWORD PTR [EBP-4], EAX XOR EAX,EAX MOV DWORD PTR [EBP-16], EAX MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [EBP-8], EAX L_55: MOV EAX,DWORD PTR [EBP-16] AND EAX,EAX JNZ L_56 MOV EAX,DWORD PTR [EBP-8] INC DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-8] CMP EAX,2 SETE AL AND AL,AL JZ L_57 MOV EAX,3 MOV DWORD PTR [EBP-8], EAX JMP L_58 L_57: MOV EAX,DWORD PTR [EBP-8] CMP EAX,34 SETG AL AND AL,AL JZ L_59 MOV EAX,1 MOV DWORD PTR [EBP-8], EAX L_59: L_58: PUSH DWORD PTR [EBP-8] LEA EAX,DWORD PTR [EBP-20] PUSH EAX CALL FWORD PTR _GetpJCB MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX SETZ AL AND AL,AL JNZ L_60 MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-12] SETE AL AND AL,AL L_60: JZ L_61 MOV EAX,1 MOV DWORD PTR [EBP-16], EAX L_61: JMP L_55 L_56: MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-12] SETNE AL AND AL,AL JZ L_62 PUSH DWORD PTR [EBP-8] CALL FWORD PTR _SetVidOwner PUSH OFFSET L_lit+70 PUSH 4 PUSH _MngrExch PUSH OFFSET _MngrHndl XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-8] XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _Request MOV DWORD PTR [EBP-4], EAX PUSH _MngrExch PUSH OFFSET _MngrMsg CALL FWORD PTR _WaitMsg MOV DWORD PTR [EBP-4], EAX L_62: JMP L_63 L_54: MOV EAX,_gcode AND EAX,255 CMP EAX,127 SETE AL AND AL,AL JZ L_64 LEA EAX,DWORD PTR [EBP-12] PUSH EAX CALL FWORD PTR _GetVidOwner MOV DWORD PTR [EBP-4], EAX PUSH DWORD PTR [EBP-12] CALL FWORD PTR _KillJob MOV DWORD PTR [EBP-4], EAX L_64: L_63: PUSH OFFSET L_lit+79 PUSH 2 PUSH _MngrExch PUSH OFFSET _MngrHndl XOR EAX,EAX PUSH EAX PUSH OFFSET _gcode PUSH 4 XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _Request MOV DWORD PTR [EBP-4], EAX L_53: JMP L_51 L_52: MOV ESP,EBP POP EBP RETN _GoDebug: PUSH EBP MOV EBP,ESP INT 03 POP EBP RETN _Reboot: PUSH EBP MOV EBP,ESP CLI ;first we clear interrupts MOV ECX, 0FFFFh ;check port up to 64K times Reboot0: IN AL,64h ;Read Status Byte into AL TEST AL,02h ;Test The Input Buffer Full Bit LOOPNZ Reboot0 MOV AL,0FEh ;Strobe bit 0 of keyboard crtlr output OUT 64h,AL STI POP EBP RETN PUBLIC _LoadJobFile: PUSH EBP MOV EBP,ESP SUB ESP,161 LEA EAX,BYTE PTR [EBP-29] PUSH EAX CALL FWORD PTR _GetSystemDisk XOR EAX,EAX MOV AL,BYTE PTR [EBP-29] MOV ECX,127 AND EAX,ECX MOV BYTE PTR [EBP-29], AL XOR EAX,EAX MOV AL,BYTE PTR [EBP-29] MOV ECX,65 ADD EAX,ECX MOV BYTE PTR [EBP-29], AL LEA ESI,BYTE PTR [EBP-79] XOR EAX,EAX MOV AL,BYTE PTR [EBP-29] MOV BYTE PTR [ESI], AL PUSH OFFSET L_lit+88 MOV EAX,1 LEA ESI,BYTE PTR [EBP-79] ADD ESI,EAX PUSH ESI PUSH 20 CALL FWORD PTR _CopyData LEA EAX,DWORD PTR [EBP-79] PUSH EAX CALL _strlen MOV DWORD PTR [EBP-12], EAX LEA EAX,DWORD PTR [EBP-79] PUSH EAX PUSH DWORD PTR [EBP-12] XOR EAX,EAX PUSH EAX PUSH 1 LEA EAX,DWORD PTR [EBP-8] PUSH EAX CALL FWORD PTR _OpenFile MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_67 XOR EAX,EAX MOV BYTE PTR [EBP-160], AL XOR EAX,EAX MOV DWORD PTR [EBP-28], EAX XOR EAX,EAX MOV BYTE PTR [EBP-161], AL L_68: MOVSX EAX,BYTE PTR [EBP-160] AND EAX,EAX JNZ L_69 XOR EAX,EAX MOV DWORD PTR [EBP-20], EAX L_70: PUSH DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-20] INC DWORD PTR [EBP-20] LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX PUSH ESI PUSH 1 LEA EAX,DWORD PTR [EBP-24] PUSH EAX CALL FWORD PTR _ReadBytes MOV DWORD PTR [EBP-4], EAX L_71: MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX SETZ AL AND AL,AL JZ L_73 MOV EAX,DWORD PTR [EBP-20] SUB EAX,1 LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,10 SETNE AL AND AL,AL JZ L_74 MOV EAX,DWORD PTR [EBP-20] CMP EAX,80 SETL AL AND AL,AL L_74: L_73: JNZ L_70 L_72: MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX SETZ AL AND AL,AL JZ L_75 MOV EAX,DWORD PTR [EBP-20] CMP EAX,1 SETG AL AND AL,AL L_75: JZ L_76 LEA ESI,BYTE PTR [EBP-159] MOVSX EAX,BYTE PTR [ESI] CMP EAX,59 SETE AL AND AL,AL JZ L_77 JMP L_68 L_77: XOR EAX,EAX MOV DWORD PTR [EBP-16], EAX L_78: MOV EAX,DWORD PTR [EBP-16] LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,10 SETNE AL AND AL,AL JZ L_80 MOV EAX,DWORD PTR [EBP-16] LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,13 SETNE AL AND AL,AL JZ L_81 MOV EAX,DWORD PTR [EBP-16] LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,32 SETNE AL AND AL,AL JZ L_82 MOV EAX,DWORD PTR [EBP-16] LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,9 SETNE AL AND AL,AL JZ L_83 MOV EAX,DWORD PTR [EBP-16] LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] L_83: L_82: L_81: L_80: AND EAX,EAX JZ L_79 MOV EAX,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] JMP L_78 L_79: MOV EAX,DWORD PTR [EBP-16] CMP EAX,2 SETG AL AND AL,AL JZ L_84 MOV EAX,DWORD PTR [EBP-16] LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV EAX,DWORD PTR [EBP-16] CMP EAX,8 SETG AL AND AL,AL JZ L_85 MOV EAX,DWORD PTR [EBP-16] SUB EAX,7 LEA ESI,BYTE PTR [EBP-159] ADD ESI,EAX PUSH ESI PUSH OFFSET L_lit+109 PUSH 7 CALL FWORD PTR _CompareNCS CMP EAX,-1 SETE AL AND AL,AL L_85: JZ L_86 MOV EAX,1 MOV BYTE PTR [EBP-161], AL JMP L_87 L_86: XOR EAX,EAX MOV BYTE PTR [EBP-161], AL L_87: PUSH OFFSET L_lit+117 LEA EAX,DWORD PTR [EBP-159] PUSH EAX MOV EDI, 4 CALL _xprintf ADD ESP,8 CALL _CheckScreen LEA EAX,DWORD PTR [EBP-159] PUSH EAX PUSH DWORD PTR [EBP-16] LEA EAX,DWORD PTR [EBP-28] PUSH EAX CALL FWORD PTR _LoadNewJob MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_88 PUSH OFFSET L_lit+134 PUSH DWORD PTR [EBP-28] MOV EDI, 4 CALL _xprintf ADD ESP,8 CALL _CheckScreen PUSH 50 CALL FWORD PTR _Sleep JMP L_89 L_88: PUSH OFFSET L_lit+166 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 CALL _CheckScreen PUSH 50 CALL FWORD PTR _Sleep XOR EAX,EAX MOV DWORD PTR [EBP-28], EAX XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_89: L_84: JMP L_90 L_76: MOV EAX,1 MOV BYTE PTR [EBP-160], AL L_90: JMP L_68 L_69: PUSH DWORD PTR [EBP-8] CALL FWORD PTR _CloseFile MOV EAX,DWORD PTR [EBP-28] CMP EAX,2 SETG AL AND AL,AL JZ L_91 MOVSX EAX,BYTE PTR [EBP-161] L_91: AND EAX,EAX JZ L_92 PUSH DWORD PTR [EBP-28] CALL FWORD PTR _SetVidOwner PUSH OFFSET L_lit+189 PUSH 4 PUSH _GP1Exch PUSH OFFSET _GP1Hndl XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-28] XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _Request MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_93 PUSH _GP1Exch PUSH OFFSET _GP1Msg CALL FWORD PTR _WaitMsg MOV DWORD PTR [EBP-4], EAX L_93: L_92: JMP L_94 L_67: PUSH OFFSET L_lit+198 MOV EDI, 0 CALL _xprintf ADD ESP,4 CALL _CheckScreen L_94: MOV ESP,EBP POP EBP RETN _LoadCLI: PUSH EBP MOV EBP,ESP SUB ESP,49 LEA EAX,BYTE PTR [EBP-9] PUSH EAX CALL FWORD PTR _GetSystemDisk XOR EAX,EAX MOV AL,BYTE PTR [EBP-9] MOV ECX,127 AND EAX,ECX MOV BYTE PTR [EBP-9], AL XOR EAX,EAX MOV AL,BYTE PTR [EBP-9] MOV ECX,65 ADD EAX,ECX MOV BYTE PTR [EBP-9], AL LEA ESI,BYTE PTR [EBP-49] XOR EAX,EAX MOV AL,BYTE PTR [EBP-9] MOV BYTE PTR [ESI], AL PUSH OFFSET L_lit+248 MOV EAX,1 LEA ESI,BYTE PTR [EBP-49] ADD ESI,EAX PUSH ESI PUSH 16 CALL FWORD PTR _CopyData PUSH OFFSET L_lit+265 LEA EAX,DWORD PTR [EBP-49] PUSH EAX MOV EDI, 4 CALL _xprintf ADD ESP,8 LEA EAX,DWORD PTR [EBP-49] PUSH EAX LEA EAX,DWORD PTR [EBP-49] PUSH EAX CALL _strlen PUSH EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX CALL FWORD PTR _LoadNewJob MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_95 PUSH OFFSET L_lit+280 PUSH DWORD PTR [EBP-8] MOV EDI, 4 CALL _xprintf ADD ESP,8 CALL _CheckScreen PUSH 50 CALL FWORD PTR _Sleep PUSH DWORD PTR [EBP-8] CALL FWORD PTR _SetVidOwner PUSH OFFSET L_lit+308 PUSH 4 PUSH _GP1Exch PUSH OFFSET _GP1Hndl XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-8] XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _Request MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_96 PUSH _GP1Exch PUSH OFFSET _GP1Msg CALL FWORD PTR _WaitMsg MOV DWORD PTR [EBP-4], EAX L_96: L_95: MOV EAX,DWORD PTR [EBP-4] MOV ESP,EBP POP EBP RETN PUBLIC _Monitor: PUSH EBP MOV EBP,ESP SUB ESP,103 CALL _InitScreen PUSH 250 PUSH 15 CALL FWORD PTR _Tone PUSH 1000 PUSH 33 CALL FWORD PTR _Tone PUSH OFFSET _MngrExch CALL FWORD PTR _AllocExch MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_98 PUSH OFFSET L_lit+317 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 L_98: PUSH OFFSET _StatTask PUSH 24 XOR EAX,EAX PUSH EAX MOV EAX,1020 MOV ESI,OFFSET _StatStack ADD ESI,EAX PUSH ESI PUSH 1 CALL FWORD PTR _SpawnTask MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_99 PUSH OFFSET L_lit+351 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 L_99: PUSH OFFSET _KillExch CALL FWORD PTR _AllocExch MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_100 PUSH OFFSET L_lit+384 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 L_100: MOV EAX,14 MOV _Color, EAX PUSH OFFSET L_lit+418 MOV EDI, 0 CALL _xprintf ADD ESP,4 PUSH OFFSET L_lit+480 MOV EDI, 0 CALL _xprintf ADD ESP,4 MOV EAX,7 MOV _Color, EAX MOV EAX,_BootDrive AND EAX,127 ADD EAX,65 MOV BYTE PTR [EBP-33], AL PUSH OFFSET L_lit+542 XOR EAX,EAX MOV AL,BYTE PTR [EBP-33] PUSH EAX MOV EDI, 4 CALL _xprintf ADD ESP,8 MOV EAX,_oMemMax ADD EAX,1 MOV ECX,1024 XOR EDX,EDX DIV ECX MOV DWORD PTR [EBP-8], EAX PUSH OFFSET L_lit+558 PUSH DWORD PTR [EBP-8] MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET _nMemPages CALL FWORD PTR _QueryPages MOV DWORD PTR [EBP-4], EAX MOV EAX,_nMemPages MOV ECX,4096 MUL ECX MOV ECX,1024 XOR EDX,EDX DIV ECX MOV DWORD PTR [EBP-8], EAX PUSH OFFSET L_lit+582 PUSH DWORD PTR [EBP-8] MOV EDI, 4 CALL _xprintf ADD ESP,8 CALL _InitKBDService MOV DWORD PTR [EBP-4], EAX PUSH OFFSET L_lit+606 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 CALL _coms_setup MOV DWORD PTR [EBP-4], EAX PUSH OFFSET L_lit+635 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 CALL _lpt_setup MOV DWORD PTR [EBP-4], EAX PUSH OFFSET L_lit+679 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET _GPExch CALL FWORD PTR _AllocExch MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_101 PUSH OFFSET L_lit+723 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 L_101: PUSH OFFSET _GP1Exch CALL FWORD PTR _AllocExch MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_102 PUSH OFFSET L_lit+745 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 L_102: PUSH OFFSET L_lit+771 MOV EDI, 0 CALL _xprintf ADD ESP,4 CALL _fdisk_setup MOV DWORD PTR [EBP-4], EAX PUSH OFFSET L_lit+808 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+813 MOV EDI, 0 CALL _xprintf ADD ESP,4 CALL _hdisk_setup MOV DWORD PTR [EBP-4], EAX PUSH OFFSET L_lit+853 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+858 MOV EDI, 0 CALL _xprintf ADD ESP,4 CALL _InitFS MOV DWORD PTR [EBP-4], EAX PUSH OFFSET L_lit+888 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET _MngrTask PUSH 10 XOR EAX,EAX PUSH EAX MOV EAX,1020 MOV ESI,OFFSET _MngrStack ADD ESI,EAX PUSH ESI PUSH 1 CALL FWORD PTR _SpawnTask CALL _LoadJobFile L_103: PUSH OFFSET L_lit+915 PUSH 1 PUSH _GPExch PUSH OFFSET _GPHndl XOR EAX,EAX PUSH EAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX PUSH 4 XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH 1 XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _Request MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_105 PUSH OFFSET L_lit+924 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 L_105: PUSH _GPExch PUSH OFFSET _GPMsg CALL FWORD PTR _WaitMsg MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_106 PUSH OFFSET L_lit+959 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 L_106: MOV EAX,DWORD PTR [EBP-28] AND EAX,255 MOV BYTE PTR [EBP-33], AL XOR EAX,EAX MOV AL,BYTE PTR [EBP-33] JMP L_108 L_109: CALL _LoadCLI MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_110 PUSH OFFSET L_lit+993 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _xprintf ADD ESP,8 L_110: JMP L_107 L_111: CALL _InitScreen MOV EAX,2 MOV DWORD PTR [EBP-12], EAX XOR EAX,EAX MOV DWORD PTR [EBP-16], EAX MOV EAX,1 MOV DWORD PTR [EBP-8], EAX L_112: MOV EAX,DWORD PTR [EBP-8] CMP EAX,34 SETL AL AND AL,AL JZ L_113 JMP SHORT L_114 L_115: MOV EAX,DWORD PTR [EBP-8] INC DWORD PTR [EBP-8] JMP SHORT L_112 L_114: MOV EAX,DWORD PTR [EBP-12] CMP EAX,20 SETG AL AND AL,AL JZ L_116 MOV EAX,40 MOV DWORD PTR [EBP-16], EAX L_116: PUSH DWORD PTR [EBP-8] PUSH OFFSET _pJCB CALL FWORD PTR _GetpJCB MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JNZ L_117 PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-12] CALL FWORD PTR _SetXY PUSH OFFSET L_lit+1019 MOV ESI,_pJCB PUSH DWORD PTR [ESI] MOV EDI, 4 CALL _xprintf ADD ESP,8 MOV EAX,DWORD PTR [EBP-16] ADD EAX,10 PUSH EAX PUSH DWORD PTR [EBP-12] CALL FWORD PTR _SetXY MOV ESI,_pJCB MOV EAX,1 ADD ESI,EAX MOV EAX,ESI ADD EAX,4 PUSH EAX LEA EAX,DWORD PTR [EBP-103] PUSH EAX PUSH 13 CALL FWORD PTR _CopyData MOV ESI,_pJCB MOVSX EAX,BYTE PTR [ESI+4] LEA ESI,BYTE PTR [EBP-103] ADD ESI,EAX XOR EAX,EAX MOV BYTE PTR [ESI], AL PUSH OFFSET L_lit+1029 LEA EAX,DWORD PTR [EBP-103] PUSH EAX MOV EDI, 4 CALL _xprintf ADD ESP,8 MOV EAX,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] L_117: JMP L_115 L_113: JMP L_107 L_118: CALL _InitScreen L_119: LEA EAX,DWORD PTR [EBP-32] PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _ReadKbd MOV DWORD PTR [EBP-4], EAX AND EAX,EAX JZ L_120 XOR EAX,EAX PUSH EAX PUSH 1 CALL FWORD PTR _SetXY PUSH OFFSET _nMemPages CALL FWORD PTR _QueryPages MOV DWORD PTR [EBP-4], EAX PUSH OFFSET L_lit+1040 MOV EDI, 0 CALL _xprintf ADD ESP,4 PUSH OFFSET L_lit+1072 PUSH _nMemPages MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1104 PUSH _nSwitches MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1136 PUSH _nSlices MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1168 PUSH _nHalts MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1200 PUSH _nReady MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1232 PUSH _nTSSLeft MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1264 PUSH _nJCBLeft MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1296 PUSH _nRQBLeft MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1328 PUSH _nLBLeft MOV EDI, 4 CALL _xprintf ADD ESP,8 PUSH OFFSET L_lit+1360 PUSH _nEXCHLeft MOV EDI, 4 CALL _xprintf ADD ESP,8 XOR EAX,EAX PUSH EAX PUSH 1 CALL FWORD PTR _SetXY PUSH 29 PUSH 1 PUSH OFFSET L_lit+1392 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars PUSH 9 CALL FWORD PTR _Sleep PUSH 29 PUSH 1 PUSH OFFSET L_lit+1394 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars PUSH 9 CALL FWORD PTR _Sleep PUSH 29 PUSH 1 PUSH OFFSET L_lit+1396 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars PUSH 12 CALL FWORD PTR _Sleep PUSH 29 PUSH 1 PUSH OFFSET L_lit+1398 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars PUSH 9 CALL FWORD PTR _Sleep PUSH 29 PUSH 1 PUSH OFFSET L_lit+1400 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars PUSH 9 CALL FWORD PTR _Sleep PUSH 29 PUSH 1 PUSH OFFSET L_lit+1402 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars PUSH 9 CALL FWORD PTR _Sleep PUSH 29 PUSH 1 PUSH OFFSET L_lit+1404 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars PUSH 12 CALL FWORD PTR _Sleep PUSH 29 PUSH 1 PUSH OFFSET L_lit+1406 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars PUSH 9 CALL FWORD PTR _Sleep PUSH 29 PUSH 1 PUSH OFFSET L_lit+1408 PUSH 1 PUSH 2 CALL FWORD PTR _PutVidChars JMP L_119 L_120: XOR EAX,EAX PUSH EAX PUSH 12 CALL FWORD PTR _SetXY PUSH OFFSET L_lit+1410 MOV EDI, 0 CALL _xprintf ADD ESP,4 JMP L_107 L_121: PUSH OFFSET L_lit+1413 MOV EDI, 0 CALL _xprintf ADD ESP,4 LEA EAX,DWORD PTR [EBP-32] PUSH EAX PUSH 1 CALL FWORD PTR _ReadKbd MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-32] AND EAX,255 CMP EAX,22 SETE AL AND AL,AL JZ L_122 CALL _Reboot L_122: PUSH OFFSET L_lit+1459 MOV EDI, 0 CALL _xprintf ADD ESP,4 JMP L_107 L_123: CALL _GoDebug JMP L_107 L_124: PUSH 3 CALL FWORD PTR _Sleep JMP L_107 L_125: L_126: L_127: L_128: L_129: L_130: L_131: JMP L_107 L_132: XOR EAX,EAX MOV AL,BYTE PTR [EBP-33] CMP EAX,31 SETA AL AND AL,AL JZ L_133 XOR EAX,EAX MOV AL,BYTE PTR [EBP-33] CMP EAX,128 SETB AL AND AL,AL L_133: JNZ L_134 XOR EAX,EAX MOV AL,BYTE PTR [EBP-33] CMP EAX,13 SETE AL AND AL,AL JNZ L_135 XOR EAX,EAX MOV AL,BYTE PTR [EBP-33] CMP EAX,8 SETE AL AND AL,AL L_135: L_134: JZ L_136 XOR EAX,EAX MOV AL,BYTE PTR [EBP-33] CMP EAX,13 SETE AL AND AL,AL JZ L_137 PUSH _CRLF PUSH 2 PUSH 7 CALL FWORD PTR _TTYOut JMP L_138 L_137: LEA EAX,BYTE PTR [EBP-33] PUSH EAX PUSH 1 PUSH 7 CALL FWORD PTR _TTYOut L_138: L_136: JMP L_107 L_108: CMP EAX,26 JE L_131 CMP EAX,25 JE L_130 CMP EAX,23 JE L_129 CMP EAX,21 JE L_128 CMP EAX,20 JE L_127 CMP EAX,19 JE L_126 CMP EAX,18 JE L_125 CMP EAX,0 JE L_124 CMP EAX,24 JE L_123 CMP EAX,22 JE L_121 CMP EAX,17 JE L_118 CMP EAX,16 JE L_111 CMP EAX,15 JE L_109 JMP L_132 L_107: LEA EAX,DWORD PTR [EBP-20] PUSH EAX LEA EAX,DWORD PTR [EBP-24] PUSH EAX CALL FWORD PTR _GetXY MOV EAX,DWORD PTR [EBP-24] CMP EAX,23 SETGE AL AND AL,AL JZ L_139 XOR EAX,EAX PUSH EAX PUSH 1 PUSH 80 PUSH 23 PUSH 1 CALL FWORD PTR _ScrollVid XOR EAX,EAX PUSH EAX PUSH 22 CALL FWORD PTR _SetXY L_139: JMP L_103 L_104: MOV ESP,EBP POP EBP RETN