From 862039cf73fe04d9a44ebe9dce0baeca5fda8f30 Mon Sep 17 00:00:00 2001 From: Richard Burgess <> Date: Thu, 9 Feb 1995 11:16:56 +0000 Subject: [PATCH] autocommit for file dated 1995-02-09 11:16:56 --- ossource/monitor.asm | 2181 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2181 insertions(+) create mode 100644 ossource/monitor.asm diff --git a/ossource/monitor.asm b/ossource/monitor.asm new file mode 100644 index 0000000..bfb5c88 --- /dev/null +++ b/ossource/monitor.asm @@ -0,0 +1,2181 @@ + +.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 -- 2.40.0