From 232f87518f811049ba37a15932c9a25848aaf678 Mon Sep 17 00:00:00 2001 From: Richard Burgess <> Date: Tue, 17 Jan 1995 17:40:26 +0000 Subject: [PATCH] autocommit for file dated 1995-01-17 17:40:26 --- ossource/jobcorig.asm | 2414 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2414 insertions(+) create mode 100644 ossource/jobcorig.asm diff --git a/ossource/jobcorig.asm b/ossource/jobcorig.asm new file mode 100644 index 0000000..1df3bfa --- /dev/null +++ b/ossource/jobcorig.asm @@ -0,0 +1,2414 @@ + +.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 +_offCode DD 0 +_offData DD 0 +_nCDFIX DD 0 +_oCDFIX DD 0 +_nCCFIX DD 0 +_oCCFIX DD 0 +_nDDFIX DD 0 +_oDDFIX DD 0 +_nDCFIX DD 0 +_oDCFIX DD 0 +EXTRN _KillExch DD +L_lit DB 69,114,99,32,102,114,111,109,32,71,101,116,82,117,110,70 + DB 105,108,101,32,105,110,32,74,111,98,67,58,32,37,100,13 + DB 10,0,75,66,68,0,86,73,68,0 +_TmpStack DD 128 DUP(0) +_pNewJCB DD 0h +_pTmpJCB DD 0h +_pCrntJCB DD 0h +_JobNum DD 0h +_JobNumE DD 0h +_job_fhE DD 0h +_ExchE DD 0h +_ercE DD 0h +_iE DD 0h +_BogusMsg DD 2 DUP(0) +_pPDE DD 0h +_pExchJCBE DD 0h +_KeyCodeE DD 0h +_aFileE DB 80 DUP(0) +_cbFileE DD 0h +_pCode DD 0h +_pData DD 0h +_pStack DD 0h +_sCode DD 0h +_sData DD 0h +_sStack DD 0h +_oCode DD 0h +_oData DD 0h +_pStart DD 0h +_filetype DB 0h +_tag DB 5 DUP(0) + + +.CODE +EXTRN _AllocJCB: NEAR +EXTRN _RemoveRdyJob: NEAR +EXTRN _GetExchOwner: NEAR +EXTRN _SetExchOwner: NEAR +EXTRN _SendAbort: NEAR +EXTRN _xprintf: NEAR +EXTRN _Dump: NEAR +_CleanUserPD: + PUSH EBP + MOV EBP,ESP + SUB ESP,24 + MOV EAX,768 + MOV [EBP-4],EAX +L_1: + MOV EAX,[EBP-4] + CMP EAX,1024 + SETL AL + AND EAX,01h + JZ L_2 + JMP SHORT L_3 +L_4: + MOV EAX,[EBP-4] + INC DWORD PTR [EBP-4] + JMP SHORT L_1 +L_3: + MOV EAX,[EBP-4] + SHL EAX,2 + MOV ESI,[EBP+8] + ADD ESI,EAX + MOV EAX,[ESI] + AND EAX,EAX + JZ L_5 + MOV EAX,[EBP-4] + SHL EAX,2 + MOV ESI,[EBP+8] + ADD ESI,EAX + MOV EAX,[ESI] + AND EAX,-4096 + MOV [EBP-20],EAX + XOR EAX,EAX + MOV [EBP-8],EAX +L_6: + MOV EAX,[EBP-8] + CMP EAX,1024 + SETL AL + AND EAX,01h + JZ L_7 + JMP SHORT L_8 +L_9: + MOV EAX,[EBP-8] + INC DWORD PTR [EBP-8] + JMP SHORT L_6 +L_8: + XOR EAX,EAX + MOV [EBP-12],EAX + MOV EAX,[EBP-4] + SUB EAX,512 + MOV ECX,4194304 + IMUL ECX + PUSH EAX + MOV EAX,[EBP-8] + MOV ECX,4096 + IMUL ECX + POP EBX + ADD EAX,EBX + MOV [EBP-24],EAX +L_10: + MOV EAX,[EBP-8] + INC DWORD PTR [EBP-8] + SHL EAX,2 + MOV ESI,[EBP-20] + ADD ESI,EAX + MOV EAX,[ESI] + AND EAX,EAX + JZ L_12 + MOV EAX,[EBP-8] + CMP EAX,1024 + SETL AL + AND EAX,01h +L_12: + JZ L_11 + MOV EAX,[EBP-12] + INC DWORD PTR [EBP-12] + JMP L_10 +L_11: + MOV EAX,[EBP-12] + AND EAX,EAX + JZ L_13 + PUSH DWORD PTR [EBP-24] + PUSH DWORD PTR [EBP-12] + CALL FWORD PTR _DeAllocPage + MOV [EBP-16],EAX +L_13: + JMP L_9 +L_7: +L_5: + JMP L_4 +L_2: + MOV ESP,EBP + POP EBP + RETN 4 +_GetRunFile: + PUSH EBP + MOV EBP,ESP + SUB ESP,18 + XOR EAX,EAX + MOV _offCode,EAX + XOR EAX,EAX + MOV _offData,EAX + XOR EAX,EAX + MOV _nCDFIX,EAX + XOR EAX,EAX + MOV _oCDFIX,EAX + XOR EAX,EAX + MOV _nCCFIX,EAX + XOR EAX,EAX + MOV _oCCFIX,EAX + XOR EAX,EAX + MOV _nDDFIX,EAX + XOR EAX,EAX + MOV _oDDFIX,EAX + XOR EAX,EAX + MOV _nDCFIX,EAX + XOR EAX,EAX + MOV _oDCFIX,EAX + MOV ESI,[EBP+8] + XOR EAX,EAX + MOV [ESI],EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + PUSH 0 + PUSH 1 + LEA EAX,[EBP-12] + PUSH EAX + CALL FWORD PTR _OpenFile + MOV [EBP-4],EAX + AND EAX,EAX + JNZ L_14 + XOR AL,AL + MOV [EBP-17],AL +L_15: + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 + AND EAX,EAX + JZ L_17 + MOVSX EAX,BYTE PTR [EBP-17] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_17: + AND EAX,EAX + JZ L_16 + MOV ESI,OFFSET _tag + XOR AL,AL + MOV [ESI],AL + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _tag + PUSH 5 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV ESI,OFFSET _tag + MOV AL,[ESI] + AND EAX,0FFh + JMP L_19 +L_20: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _filetype + PUSH 1 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOVSX EAX,BYTE PTR _filetype + CMP EAX,1 + SETL AL + AND EAX,01h + JNZ L_21 + MOVSX EAX,BYTE PTR _filetype + CMP EAX,3 + SETG AL + AND EAX,01h +L_21: + JZ L_22 + MOV EAX,74 + MOV [EBP-4],EAX +L_22: + JMP L_18 +L_23: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _sStack + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + AND EAX,EAX + JNZ L_24 + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _sCode + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX +L_24: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_25 + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _sData + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX +L_25: + JMP L_18 +L_26: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _offData + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + JMP L_18 +L_27: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _offCode + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + JMP L_18 +L_28: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _pStart + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + JMP L_18 +L_29: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oCode + CALL FWORD PTR _GetFileLFA + MOV [EBP-4],EAX + AND EAX,EAX + JNZ L_30 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,_oCode + ADD EAX,[ESI] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_30: + JMP L_18 +L_31: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oData + CALL FWORD PTR _GetFileLFA + MOV [EBP-4],EAX + AND EAX,EAX + JNZ L_32 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,_oData + ADD EAX,[ESI] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_32: + JMP L_18 +L_33: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oCDFIX + CALL FWORD PTR _GetFileLFA + MOV [EBP-4],EAX + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,[ESI] + MOV ECX,4 + CDQ + IDIV ECX + MOV _nCDFIX,EAX + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_34 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,_oCDFIX + ADD EAX,[ESI] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_34: + JMP L_18 +L_35: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oCCFIX + CALL FWORD PTR _GetFileLFA + MOV [EBP-4],EAX + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,[ESI] + MOV ECX,4 + CDQ + IDIV ECX + MOV _nCCFIX,EAX + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_36 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,_oCCFIX + ADD EAX,[ESI] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_36: + JMP L_18 +L_37: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oDDFIX + CALL FWORD PTR _GetFileLFA + MOV [EBP-4],EAX + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,[ESI] + MOV ECX,4 + CDQ + IDIV ECX + MOV _nDDFIX,EAX + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_38 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,_oDDFIX + ADD EAX,[ESI] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_38: + JMP L_18 +L_39: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oDCFIX + CALL FWORD PTR _GetFileLFA + MOV [EBP-4],EAX + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,[ESI] + MOV ECX,4 + CDQ + IDIV ECX + MOV _nDCFIX,EAX + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_40 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,_oDCFIX + ADD EAX,[ESI] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_40: + JMP L_18 +L_41: + MOV AL,1 + MOV [EBP-17],AL + JMP L_18 +L_42: + PUSH DWORD PTR [EBP-12] + LEA EAX,[EBP-8] + PUSH EAX + CALL FWORD PTR _GetFileLFA + MOV [EBP-4],EAX + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,[ESI] + CMP EAX,1024 + SETG AL + AND EAX,01h + JZ L_43 + MOV EAX,74 + MOV [EBP-4],EAX +L_43: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_44 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + ADD ESI,1 + MOV EAX,[EBP-8] + ADD EAX,[ESI] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_44: + MOV EAX,[EBP-4] + AND EAX,EAX + JZ L_45 + MOV EAX,74 + MOV [EBP-4],EAX +L_45: + JMP L_18 +L_19: + CMP EAX,255 + JE L_41 + CMP EAX,195 + JE L_39 + CMP EAX,194 + JE L_37 + CMP EAX,193 + JE L_35 + CMP EAX,192 + JE L_33 + CMP EAX,178 + JE L_31 + CMP EAX,176 + JE L_29 + CMP EAX,150 + JE L_28 + CMP EAX,148 + JE L_27 + CMP EAX,146 + JE L_26 + CMP EAX,144 + JE L_23 + CMP EAX,128 + JE L_20 + JMP L_42 +L_18: + JMP L_15 +L_16: + MOV EAX,[EBP-4] + AND EAX,EAX + JZ L_46 + PUSH DWORD PTR [EBP-12] + CALL FWORD PTR _CloseFile +L_46: +L_14: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_47 + MOV ESI,[EBP+8] + MOV EAX,[EBP-12] + MOV [ESI],EAX +L_47: + MOV EAX,[EBP-4] + AND EAX,EAX + JZ L_48 + PUSH OFFSET L_lit+0 + PUSH DWORD PTR [EBP-4] + MOV EDI, 4 + CALL _xprintf + ADD ESP,8 +L_48: + MOV EAX,[EBP-4] +L_49: + MOV ESP,EBP + POP EBP + RETN 12 +PUBLIC __SetExitJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,[EBP+12] + CMP EAX,79 + SETG AL + AND EAX,01h + JZ L_50 + MOV EAX,76 + JMP L_51 +L_50: + MOV EAX,[EBP+12] + AND EAX,EAX + JNZ L_53 + MOV ESI,_pTmpJCB + ADD ESI,146 + XOR AL,AL + MOV [ESI],AL + JMP L_54 +L_53: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + ADD ESI,146 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + ADD ESI,146 + MOV EAX,[EBP+12] + MOV [ESI],AL +L_54: +L_52: + XOR EAX,EAX +L_51: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetExitJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + ADD ESI,146 + MOVSX EAX,BYTE PTR [ESI] + MOV [EBP-8],EAX + AND EAX,EAX + JZ L_55 + MOV ESI,_pTmpJCB + ADD ESI,146 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_55: + MOV ESI,[EBP+12] + MOV EAX,[EBP-8] + MOV [ESI],EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetPath: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,[EBP+12] + CMP EAX,69 + SETG AL + AND EAX,01h + JZ L_57 + MOV EAX,76 + JMP L_58 +L_57: + MOV EAX,[EBP+12] + AND EAX,EAX + JNZ L_60 + MOV ESI,_pTmpJCB + ADD ESI,76 + XOR AL,AL + MOV [ESI],AL + JMP L_61 +L_60: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + ADD ESI,76 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + ADD ESI,76 + MOV EAX,[EBP+12] + MOV [ESI],AL +L_61: +L_59: + XOR EAX,EAX +L_58: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetPath: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + PUSH DWORD PTR [EBP+20] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV [EBP-8],EAX + AND EAX,EAX + JNZ L_62 + MOV ESI,_pTmpJCB + ADD ESI,76 + MOVSX EAX,BYTE PTR [ESI] + MOV [EBP-4],EAX + AND EAX,EAX + JZ L_63 + MOV ESI,_pTmpJCB + ADD ESI,76 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-4] + CALL FWORD PTR _CopyData +L_63: + MOV ESI,[EBP+12] + MOV EAX,[EBP-4] + MOV [ESI],EAX +L_62: + MOV EAX,[EBP-8] + MOV ESP,EBP + POP EBP + RETF 12 +PUBLIC __SetCmdLine: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,[EBP+12] + CMP EAX,79 + SETG AL + AND EAX,01h + JZ L_65 + MOV EAX,76 + JMP L_66 +L_65: + MOV EAX,[EBP+12] + AND EAX,EAX + JNZ L_68 + MOV ESI,_pTmpJCB + ADD ESI,226 + XOR AL,AL + MOV [ESI],AL + JMP L_69 +L_68: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + ADD ESI,226 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + ADD ESI,226 + MOV EAX,[EBP+12] + MOV [ESI],AL +L_69: +L_67: + XOR EAX,EAX +L_66: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetCmdLine: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + ADD ESI,226 + MOVSX EAX,BYTE PTR [ESI] + MOV [EBP-8],EAX + AND EAX,EAX + JZ L_70 + MOV ESI,_pTmpJCB + ADD ESI,226 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_70: + MOV ESI,[EBP+12] + MOV EAX,[EBP-8] + MOV [ESI],EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetUserName: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,[EBP+12] + CMP EAX,29 + SETG AL + AND EAX,01h + JZ L_72 + MOV EAX,76 + JMP L_73 +L_72: + MOV EAX,[EBP+12] + AND EAX,EAX + JNZ L_75 + MOV ESI,_pTmpJCB + ADD ESI,46 + XOR AL,AL + MOV [ESI],AL + JMP L_76 +L_75: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + ADD ESI,46 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + ADD ESI,46 + MOV EAX,[EBP+12] + MOV [ESI],AL +L_76: +L_74: + XOR EAX,EAX +L_73: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetUserName: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + ADD ESI,46 + MOVSX EAX,BYTE PTR [ESI] + MOV [EBP-8],EAX + AND EAX,EAX + JZ L_77 + MOV ESI,_pTmpJCB + ADD ESI,46 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_77: + MOV ESI,[EBP+12] + MOV EAX,[EBP-8] + MOV [ESI],EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetSysIn: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,[EBP+12] + CMP EAX,49 + SETG AL + AND EAX,01h + JNZ L_79 + MOV EAX,[EBP+12] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_79: + AND EAX,EAX + JZ L_80 + MOV EAX,76 + JMP L_81 +L_80: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + ADD ESI,306 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + ADD ESI,306 + MOV EAX,[EBP+12] + MOV [ESI],AL +L_82: + XOR EAX,EAX +L_81: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetSysIn: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + ADD ESI,306 + MOVSX EAX,BYTE PTR [ESI] + MOV [EBP-8],EAX + AND EAX,EAX + JZ L_83 + MOV ESI,_pTmpJCB + ADD ESI,306 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_83: + MOV ESI,[EBP+12] + MOV EAX,[EBP-8] + MOV [ESI],EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetSysOut: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,[EBP+12] + CMP EAX,49 + SETG AL + AND EAX,01h + JNZ L_85 + MOV EAX,[EBP+12] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_85: + AND EAX,EAX + JZ L_86 + MOV EAX,76 + JMP L_87 +L_86: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + ADD ESI,356 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + ADD ESI,356 + MOV EAX,[EBP+12] + MOV [ESI],AL +L_88: + XOR EAX,EAX +L_87: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetSysOut: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + ADD ESI,356 + MOVSX EAX,BYTE PTR [ESI] + MOV [EBP-8],EAX + AND EAX,EAX + JZ L_89 + MOV ESI,_pTmpJCB + ADD ESI,356 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_89: + MOV ESI,[EBP+12] + MOV EAX,[EBP-8] + MOV [ESI],EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetJobName: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,[EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,[EBP+12] + CMP EAX,13 + SETG AL + AND EAX,01h + JZ L_91 + MOV EAX,13 + MOV [EBP+12],EAX +L_91: + MOV EAX,[EBP+12] + AND EAX,EAX + JZ L_92 + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + ADD ESI,4 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData +L_92: + MOV ESI,_pTmpJCB + ADD ESI,4 + MOV EAX,[EBP+12] + MOV [ESI],AL + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __LoadNewJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,44 + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + LEA EAX,[EBP-12] + PUSH EAX + CALL _GetRunFile + MOV [EBP-4],EAX + AND EAX,EAX + JNZ L_94 + XOR EAX,EAX + MOV _JobNum,EAX + XOR EAX,EAX + MOV _pNewJCB,EAX + XOR EAX,EAX + MOV [EBP-24],EAX + XOR EAX,EAX + MOV [EBP-28],EAX + XOR EAX,EAX + MOV [EBP-32],EAX + PUSH OFFSET _JobNum + PUSH OFFSET _pNewJCB + CALL _AllocJCB + MOV [EBP-4],EAX + AND EAX,EAX + JNZ L_95 + PUSH 3 + LEA EAX,[EBP-24] + PUSH EAX + CALL FWORD PTR _AllocOSPage + MOV [EBP-4],EAX +L_95: + MOV EAX,[EBP-24] + ADD EAX,4096 + MOV [EBP-28],EAX + MOV EAX,[EBP-24] + ADD EAX,8192 + MOV [EBP-32],EAX + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_96 + PUSH DWORD PTR [EBP-28] + PUSH 4096 + PUSH 0 + CALL FWORD PTR _FillData + PUSH DWORD PTR [EBP-32] + PUSH 4096 + PUSH 0 + CALL FWORD PTR _FillData + PUSH 1 + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + ADD ESI,18 + MOV EAX,[ESI] + MOV [EBP-36],EAX + PUSH 1 + PUSH DWORD PTR [EBP-28] + LEA EAX,[EBP-44] + PUSH EAX + CALL FWORD PTR _GetPhyAdd + MOV EAX,[EBP-44] + OR EAX,7 + MOV [EBP-44],EAX + MOV EAX,1024 + MOV ESI,[EBP-36] + ADD ESI,EAX + MOV EAX,[EBP-44] + MOV [ESI],EAX + MOV EAX,3072 + MOV ESI,[EBP-36] + ADD ESI,EAX + MOV EAX,[EBP-28] + MOV [ESI],EAX + MOV EAX,_sStack + MOV ECX,4096 + CDQ + IDIV ECX + MOV [EBP-20],EAX + MOV EAX,_sStack + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_97 + MOV EAX,[EBP-20] + INC DWORD PTR [EBP-20] +L_97: + PUSH DWORD PTR [EBP-20] + PUSH OFFSET _pStack + CALL FWORD PTR _AllocPage + MOV [EBP-4],EAX + MOV EAX,[EBP-20] + MOV ECX,4096 + IMUL ECX + MOV _sStack,EAX + MOV EAX,_sCode + MOV ECX,4096 + CDQ + IDIV ECX + MOV [EBP-20],EAX + MOV EAX,_sCode + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_98 + MOV EAX,[EBP-20] + INC DWORD PTR [EBP-20] +L_98: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_99 + PUSH DWORD PTR [EBP-20] + PUSH OFFSET _pCode + CALL FWORD PTR _AllocPage + MOV [EBP-4],EAX +L_99: + MOV EAX,_sData + MOV ECX,4096 + CDQ + IDIV ECX + MOV [EBP-20],EAX + MOV EAX,_sData + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_100 + MOV EAX,[EBP-20] + INC DWORD PTR [EBP-20] +L_100: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_101 + PUSH DWORD PTR [EBP-20] + PUSH OFFSET _pData + CALL FWORD PTR _AllocPage + MOV [EBP-4],EAX +L_101: + PUSH DWORD PTR [EBP-36] + PUSH DWORD PTR [EBP-24] + PUSH 4096 + CALL FWORD PTR _CopyData + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_102 + PUSH DWORD PTR [EBP-12] + PUSH _oCode + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_102: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_103 + PUSH DWORD PTR [EBP-12] + PUSH _pCode + PUSH _sCode + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX +L_103: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_104 + PUSH DWORD PTR [EBP-12] + PUSH _oData + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_104: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_105 + PUSH DWORD PTR [EBP-12] + PUSH _pData + PUSH _sData + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX +L_105: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_106 + MOV EAX,_nCDFIX + AND EAX,EAX + JZ L_107 + PUSH DWORD PTR [EBP-12] + PUSH _oCDFIX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_108: + MOV EAX,_nCDFIX + DEC DWORD PTR _nCDFIX + AND EAX,EAX + JZ L_110 + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_110: + AND EAX,EAX + JZ L_109 + PUSH DWORD PTR [EBP-12] + LEA EAX,[EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV EAX,_pCode + ADD EAX,[EBP-8] + MOV [EBP-40],EAX + MOV ESI,[EBP-40] + PUSH ESI + MOV ESI,[EBP-40] + MOV EAX,[ESI] + SUB EAX,_offData + ADD EAX,_pData + POP EBX + MOV [EBX],EAX + JMP L_108 +L_109: +L_107: + MOV EAX,_nCCFIX + AND EAX,EAX + JZ L_111 + PUSH DWORD PTR [EBP-12] + PUSH _oCCFIX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_112: + MOV EAX,_nCCFIX + DEC DWORD PTR _nCCFIX + AND EAX,EAX + JZ L_114 + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_114: + AND EAX,EAX + JZ L_113 + PUSH DWORD PTR [EBP-12] + LEA EAX,[EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV EAX,_pCode + ADD EAX,[EBP-8] + MOV [EBP-40],EAX + MOV ESI,[EBP-40] + PUSH ESI + MOV ESI,[EBP-40] + MOV EAX,[ESI] + SUB EAX,_offCode + ADD EAX,_pCode + POP EBX + MOV [EBX],EAX + JMP L_112 +L_113: +L_111: + MOV EAX,_nDCFIX + AND EAX,EAX + JZ L_115 + PUSH DWORD PTR [EBP-12] + PUSH _oDCFIX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_116: + MOV EAX,_nDCFIX + DEC DWORD PTR _nDCFIX + AND EAX,EAX + JZ L_118 + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_118: + AND EAX,EAX + JZ L_117 + PUSH DWORD PTR [EBP-12] + LEA EAX,[EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV EAX,_pData + ADD EAX,[EBP-8] + MOV [EBP-40],EAX + MOV ESI,[EBP-40] + PUSH ESI + MOV ESI,[EBP-40] + MOV EAX,[ESI] + SUB EAX,_offCode + ADD EAX,_pCode + POP EBX + MOV [EBX],EAX + JMP L_116 +L_117: +L_115: + MOV EAX,_nDDFIX + AND EAX,EAX + JZ L_119 + PUSH DWORD PTR [EBP-12] + PUSH _oDDFIX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_120: + MOV EAX,_nDDFIX + DEC DWORD PTR _nDDFIX + AND EAX,EAX + JZ L_122 + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_122: + AND EAX,EAX + JZ L_121 + PUSH DWORD PTR [EBP-12] + LEA EAX,[EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,[EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV EAX,_pData + ADD EAX,[EBP-8] + MOV [EBP-40],EAX + MOV ESI,[EBP-40] + PUSH ESI + MOV ESI,[EBP-40] + MOV EAX,[ESI] + SUB EAX,_offData + ADD EAX,_pData + POP EBX + MOV [EBX],EAX + JMP L_120 +L_121: +L_119: +L_106: + MOV EAX,1024 + MOV ESI,[EBP-36] + ADD ESI,EAX + PUSH ESI + PUSH 1024 + PUSH 0 + CALL FWORD PTR _FillData + MOV EAX,3072 + MOV ESI,[EBP-36] + ADD ESI,EAX + PUSH ESI + PUSH 1024 + PUSH 0 + CALL FWORD PTR _FillData + MOV ESI,_pNewJCB + ADD ESI,18 + MOV EAX,[EBP-24] + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,38 + MOV EAX,_pStack + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,42 + MOV EAX,_sStack + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,22 + MOV EAX,_pCode + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,26 + MOV EAX,_sCode + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,30 + MOV EAX,_pData + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,34 + MOV EAX,_sData + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,46 + XOR AL,AL + MOV [ESI],AL + MOV ESI,_pNewJCB + ADD ESI,76 + XOR AL,AL + MOV [ESI],AL + MOV ESI,_pNewJCB + ADD ESI,146 + XOR AL,AL + MOV [ESI],AL + MOV ESI,_pNewJCB + ADD ESI,226 + XOR AL,AL + MOV [ESI],AL + PUSH OFFSET L_lit+34 + MOV ESI,_pNewJCB + ADD ESI,306 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH 3 + CALL FWORD PTR _CopyData + MOV ESI,_pNewJCB + ADD ESI,306 + MOV AL,3 + MOV [ESI],AL + PUSH OFFSET L_lit+38 + MOV ESI,_pNewJCB + ADD ESI,356 + MOV EAX,1 + ADD ESI,EAX + PUSH ESI + PUSH 3 + CALL FWORD PTR _CopyData + MOV ESI,_pNewJCB + ADD ESI,356 + MOV AL,3 + MOV [ESI],AL + MOV ESI,_pNewJCB + ADD ESI,410 + MOV EAX,[EBP-32] + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,414 + MOV EAX,[EBP-32] + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,418 + XOR EAX,EAX + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,422 + XOR EAX,EAX + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,426 + MOV EAX,80 + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,430 + MOV EAX,25 + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,434 + XOR EAX,EAX + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,442 + MOV AL,1 + MOV [ESI],AL + MOV ESI,_pNewJCB + ADD ESI,443 + XOR AL,AL + MOV [ESI],AL + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_123 + LEA EAX,[EBP-8] + PUSH EAX + CALL FWORD PTR _AllocExch + MOV [EBP-4],EAX +L_123: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_124 + PUSH _JobNum + PUSH 24 + PUSH 25 + PUSH 0 + PUSH DWORD PTR [EBP-8] + MOV EAX,_pStack + ADD EAX,_sStack + SUB EAX,4 + PUSH EAX + MOV EAX,_pStart + ADD EAX,_pCode + SUB EAX,_offCode + PUSH EAX + CALL FWORD PTR _NewTask + MOV [EBP-4],EAX +L_124: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_125 + PUSH DWORD PTR [EBP-8] + PUSH _pNewJCB + CALL _SetExchOwner +L_125: +L_96: + PUSH DWORD PTR [EBP-12] + CALL FWORD PTR _CloseFile +L_94: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_126 + MOV ESI,[EBP+12] + MOV EAX,_JobNum + MOV [ESI],EAX +L_126: + MOV EAX,[EBP-4] + MOV ESP,EBP + POP EBP + RETF 12 +_LoadJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + MOV EAX,[EBP+12] + MOV _pNewJCB,EAX + MOV EAX,_sStack + MOV ECX,4096 + CDQ + IDIV ECX + MOV [EBP-16],EAX + MOV EAX,_sStack + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_128 + MOV EAX,[EBP-16] + INC DWORD PTR [EBP-16] +L_128: + PUSH DWORD PTR [EBP-16] + PUSH OFFSET _pStack + CALL FWORD PTR _AllocPage + MOV [EBP-4],EAX + MOV EAX,[EBP-16] + MOV ECX,4096 + IMUL ECX + MOV _sStack,EAX + MOV EAX,_sCode + MOV ECX,4096 + CDQ + IDIV ECX + MOV [EBP-16],EAX + MOV EAX,_sCode + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_129 + MOV EAX,[EBP-16] + INC DWORD PTR [EBP-16] +L_129: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_130 + PUSH DWORD PTR [EBP-16] + PUSH OFFSET _pCode + CALL FWORD PTR _AllocPage + MOV [EBP-4],EAX +L_130: + MOV EAX,_sData + MOV ECX,4096 + CDQ + IDIV ECX + MOV [EBP-16],EAX + MOV EAX,_sData + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_131 + MOV EAX,[EBP-16] + INC DWORD PTR [EBP-16] +L_131: + PUSH DWORD PTR [EBP-16] + PUSH OFFSET _pData + CALL FWORD PTR _AllocPage + MOV [EBP-4],EAX + AND EAX,EAX + JNZ L_132 + PUSH DWORD PTR [EBP+8] + PUSH _oCode + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_132: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_133 + PUSH DWORD PTR [EBP+8] + PUSH _pCode + PUSH _sCode + LEA EAX,[EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX +L_133: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_134 + PUSH DWORD PTR [EBP+8] + PUSH _oData + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_134: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_135 + PUSH DWORD PTR [EBP+8] + PUSH _pData + PUSH _sData + LEA EAX,[EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX +L_135: + MOV EAX,[EBP-4] + AND EAX,EAX + JNZ L_136 + MOV EAX,_nCDFIX + AND EAX,EAX + JZ L_137 + PUSH DWORD PTR [EBP+8] + PUSH _oCDFIX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_138: + MOV EAX,_nCDFIX + DEC DWORD PTR _nCDFIX + AND EAX,EAX + JZ L_140 + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_140: + AND EAX,EAX + JZ L_139 + PUSH DWORD PTR [EBP+8] + LEA EAX,[EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,[EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV EAX,_pCode + ADD EAX,[EBP-8] + MOV [EBP-20],EAX + MOV ESI,[EBP-20] + PUSH ESI + MOV ESI,[EBP-20] + MOV EAX,[ESI] + SUB EAX,_offData + ADD EAX,_pData + POP EBX + MOV [EBX],EAX + JMP L_138 +L_139: +L_137: + MOV EAX,_nCCFIX + AND EAX,EAX + JZ L_141 + PUSH DWORD PTR [EBP+8] + PUSH _oCCFIX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_142: + MOV EAX,_nCCFIX + DEC DWORD PTR _nCCFIX + AND EAX,EAX + JZ L_144 + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_144: + AND EAX,EAX + JZ L_143 + PUSH DWORD PTR [EBP+8] + LEA EAX,[EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,[EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV EAX,_pCode + ADD EAX,[EBP-8] + MOV [EBP-20],EAX + MOV ESI,[EBP-20] + PUSH ESI + MOV ESI,[EBP-20] + MOV EAX,[ESI] + SUB EAX,_offCode + ADD EAX,_pCode + POP EBX + MOV [EBX],EAX + JMP L_142 +L_143: +L_141: + MOV EAX,_nDCFIX + AND EAX,EAX + JZ L_145 + PUSH DWORD PTR [EBP+8] + PUSH _oDCFIX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_146: + MOV EAX,_nDCFIX + DEC DWORD PTR _nDCFIX + AND EAX,EAX + JZ L_148 + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_148: + AND EAX,EAX + JZ L_147 + PUSH DWORD PTR [EBP+8] + LEA EAX,[EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,[EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV EAX,_pData + ADD EAX,[EBP-8] + MOV [EBP-20],EAX + MOV ESI,[EBP-20] + PUSH ESI + MOV ESI,[EBP-20] + MOV EAX,[ESI] + SUB EAX,_offCode + ADD EAX,_pCode + POP EBX + MOV [EBX],EAX + JMP L_146 +L_147: +L_145: + MOV EAX,_nDDFIX + AND EAX,EAX + JZ L_149 + PUSH DWORD PTR [EBP+8] + PUSH _oDDFIX + CALL FWORD PTR _SetFileLFA + MOV [EBP-4],EAX +L_150: + MOV EAX,_nDDFIX + DEC DWORD PTR _nDDFIX + AND EAX,EAX + JZ L_152 + MOV EAX,[EBP-4] + AND EAX,EAX + SETZ AL + AND EAX,01 +L_152: + AND EAX,EAX + JZ L_151 + PUSH DWORD PTR [EBP+8] + LEA EAX,[EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,[EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV [EBP-4],EAX + MOV EAX,_pData + ADD EAX,[EBP-8] + MOV [EBP-20],EAX + MOV ESI,[EBP-20] + PUSH ESI + MOV ESI,[EBP-20] + MOV EAX,[ESI] + SUB EAX,_offData + ADD EAX,_pData + POP EBX + MOV [EBX],EAX + JMP L_150 +L_151: +L_149: + MOV ESI,_pNewJCB + ADD ESI,38 + MOV EAX,_pStack + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,42 + MOV EAX,_sStack + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,22 + MOV EAX,_pCode + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,26 + MOV EAX,_sCode + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,30 + MOV EAX,_pData + MOV [ESI],EAX + MOV ESI,_pNewJCB + ADD ESI,34 + MOV EAX,_sData + MOV [ESI],EAX +L_136: + PUSH DWORD PTR [EBP+8] + CALL FWORD PTR _CloseFile + MOV EAX,[EBP-4] + MOV ESP,EBP + POP EBP + RETN 8 +PUBLIC __KillTask: + PUSH EBP + MOV EBP,ESP + PUSH OFFSET _JobNumE + CALL FWORD PTR _GetJobNum + PUSH _JobNumE + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + ADD ESI,18 + MOV EAX,[ESI] + MOV _pPDE,EAX + PUSH EAX + CALL _CleanUserPD + PUSH OFFSET _ExchE + CALL FWORD PTR _GetTSSExch + XOR EAX,EAX + MOV _ercE,EAX +L_154: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_155 + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _CheckMsg + MOV _ercE,EAX + JMP L_154 +L_155: + PUSH _KillExch + PUSH _ExchE + PUSH 4 + CALL FWORD PTR _ISendMsg + PUSH 31 + CALL FWORD PTR _SetPriority + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _WaitMsg +L_156: + MOV EAX,1 + AND EAX,EAX + JZ L_157 + JMP L_156 +L_157: + POP EBP + RETN +PUBLIC __KillJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + PUSH OFFSET _JobNumE + CALL FWORD PTR _GetJobNum + MOV EAX,[EBP+12] + CMP EAX,_JobNumE + SETE AL + AND EAX,01h + JNZ L_158 + MOV EAX,[EBP+12] + CMP EAX,1 + SETE AL + AND EAX,01h + JNZ L_159 + MOV EAX,[EBP+12] + CMP EAX,2 + SETE AL + AND EAX,01h +L_159: +L_158: + JZ L_160 + MOV EAX,70 + JMP L_161 +L_160: + PUSH DWORD PTR [EBP+12] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV [EBP-4],EAX + AND EAX,EAX + JZ L_162 + MOV EAX,[EBP-4] + JMP L_161 +L_162: + MOV ESI,_pTmpJCB + ADD ESI,406 + MOV EAX,4 + MOV [ESI],EAX + PUSH _pTmpJCB + CALL _RemoveRdyJob + XOR EAX,EAX + MOV _ercE,EAX + XOR EAX,EAX + MOV _iE,EAX +L_163: + MOV EAX,_ercE + CMP EAX,10 + SETNE AL + AND EAX,01h + JZ L_164 + PUSH _iE + PUSH OFFSET _pExchJCBE + CALL _GetExchOwner + MOV _ercE,EAX + AND EAX,EAX + SETZ AL + AND EAX,01 + AND EAX,EAX + JZ L_165 + MOV EAX,_pExchJCBE + CMP EAX,_pTmpJCB + SETE AL + AND EAX,01h +L_165: + JZ L_166 + PUSH _iE + CALL FWORD PTR _DeAllocExch +L_166: + MOV EAX,_iE + INC DWORD PTR _iE + JMP L_163 +L_164: + XOR EAX,EAX + MOV _ercE,EAX + PUSH OFFSET _ExchE + CALL FWORD PTR _AllocExch + MOV [EBP-4],EAX + PUSH _ExchE + PUSH _pTmpJCB + CALL _SetExchOwner + PUSH DWORD PTR [EBP+12] + PUSH _ExchE + CALL _SendAbort + PUSH DWORD PTR [EBP+12] + PUSH 8 + PUSH 3 + PUSH 0 + PUSH _ExchE + MOV EAX,508 + MOV ESI,OFFSET _TmpStack + ADD ESI,EAX + PUSH ESI + PUSH OFFSET __KillTask + CALL FWORD PTR _NewTask + MOV [EBP-4],EAX +L_161: + MOV ESP,EBP + POP EBP + RETF 4 +PUBLIC __ExitJob: + PUSH EBP + MOV EBP,ESP + PUSH OFFSET _JobNumE + CALL FWORD PTR _GetJobNum + PUSH _JobNumE + PUSH OFFSET _pCrntJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pCrntJCB + ADD ESI,406 + MOV EAX,[EBP+12] + MOV [ESI],EAX + PUSH _pCrntJCB + CALL _RemoveRdyJob + PUSH OFFSET _ExchE + CALL FWORD PTR _GetTSSExch + XOR EAX,EAX + MOV _ercE,EAX + XOR EAX,EAX + MOV _iE,EAX +L_167: + MOV EAX,_ercE + CMP EAX,10 + SETNE AL + AND EAX,01h + JZ L_168 + PUSH _iE + PUSH OFFSET _pExchJCBE + CALL _GetExchOwner + MOV _ercE,EAX + AND EAX,EAX + SETZ AL + AND EAX,01 + AND EAX,EAX + JZ L_169 + MOV EAX,_iE + CMP EAX,_ExchE + SETNE AL + AND EAX,01h + JZ L_170 + MOV EAX,_pExchJCBE + CMP EAX,_pCrntJCB + SETE AL + AND EAX,01h +L_170: +L_169: + JZ L_171 + PUSH _iE + CALL FWORD PTR _DeAllocExch +L_171: + MOV EAX,_iE + INC DWORD PTR _iE + JMP L_167 +L_168: + PUSH _JobNumE + PUSH _ExchE + CALL _SendAbort + XOR EAX,EAX + MOV _ercE,EAX +L_172: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_173 + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _CheckMsg + MOV _ercE,EAX + JMP L_172 +L_173: + XOR EAX,EAX + MOV _ercE,EAX + MOV EAX, OFFSET _TmpStack + ADD EAX, 508 + MOV ESP, EAX + MOV EBP, EAX + MOV ESI,_pCrntJCB + ADD ESI,18 + MOV EAX,[ESI] + MOV _pPDE,EAX + PUSH EAX + CALL _CleanUserPD + PUSH OFFSET _aFileE + PUSH OFFSET _cbFileE + CALL FWORD PTR _GetExitJob + MOV EAX,_cbFileE + AND EAX,EAX + JNZ L_174 + MOV EAX,76 + MOV _ercE,EAX +L_174: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_175 + PUSH OFFSET _aFileE + PUSH _cbFileE + PUSH OFFSET _job_fhE + CALL _GetRunFile + MOV _ercE,EAX +L_175: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_176 + PUSH _pCrntJCB + PUSH _job_fhE + CALL _LoadJob + MOV _ercE,EAX +L_176: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_177 + MOV EAX,_pStart + ADD EAX,_pCode + SUB EAX,_offCode + MOV _pStart,EAX + MOV EAX, _pStack + MOV EBX, _sStack + ADD EAX, EBX + SUB EAX, 4 + MOV ESP, EAX + MOV EBP, EAX + PUSH 18h + MOV EAX, _pStart + PUSH EAX + RETF ;We are history! +L_177: + MOV EAX,_ercE + AND EAX,EAX + JZ L_178 + PUSH _KillExch + PUSH _ExchE + PUSH _ercE + CALL FWORD PTR _ISendMsg + PUSH 31 + CALL FWORD PTR _SetPriority + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _WaitMsg +L_179: + MOV EAX,1 + AND EAX,EAX + JZ L_180 + JMP L_179 +L_180: +L_178: + POP EBP + RETF 4 +PUBLIC __Chain: + PUSH EBP + MOV EBP,ESP + PUSH DWORD PTR [EBP+20] + PUSH OFFSET _aFileE + PUSH DWORD PTR [EBP+16] + CALL FWORD PTR _CopyData + MOV EAX,[EBP+16] + MOV _cbFileE,EAX + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + PUSH OFFSET _job_fhE + CALL _GetRunFile + MOV _ercE,EAX + AND EAX,EAX + JZ L_181 + PUSH _job_fhE + CALL FWORD PTR _CloseFile + MOV EAX,_ercE + JMP L_182 +L_181: + PUSH _job_fhE + CALL FWORD PTR _CloseFile + PUSH OFFSET _JobNumE + CALL FWORD PTR _GetJobNum + PUSH _JobNumE + PUSH OFFSET _pCrntJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pCrntJCB + ADD ESI,406 + MOV EAX,[EBP+12] + MOV [ESI],EAX + PUSH _pCrntJCB + CALL _RemoveRdyJob + PUSH OFFSET _ExchE + CALL FWORD PTR _GetTSSExch + XOR EAX,EAX + MOV _ercE,EAX + XOR EAX,EAX + MOV _iE,EAX +L_183: + MOV EAX,_ercE + CMP EAX,10 + SETNE AL + AND EAX,01h + JZ L_184 + PUSH _iE + PUSH OFFSET _pExchJCBE + CALL _GetExchOwner + MOV _ercE,EAX + AND EAX,EAX + SETZ AL + AND EAX,01 + AND EAX,EAX + JZ L_185 + MOV EAX,_iE + CMP EAX,_ExchE + SETNE AL + AND EAX,01h + JZ L_186 + MOV EAX,_pExchJCBE + CMP EAX,_pCrntJCB + SETE AL + AND EAX,01h +L_186: +L_185: + JZ L_187 + PUSH _iE + CALL FWORD PTR _DeAllocExch +L_187: + MOV EAX,_iE + INC DWORD PTR _iE + JMP L_183 +L_184: + PUSH _JobNumE + PUSH _ExchE + CALL _SendAbort + XOR EAX,EAX + MOV _ercE,EAX +L_188: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_189 + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _CheckMsg + MOV _ercE,EAX + JMP L_188 +L_189: + XOR EAX,EAX + MOV _ercE,EAX + MOV EAX, OFFSET _TmpStack + ADD EAX, 508 + MOV ESP, EAX + MOV EBP, EAX + MOV ESI,_pCrntJCB + ADD ESI,18 + MOV EAX,[ESI] + MOV _pPDE,EAX + PUSH EAX + CALL _CleanUserPD + PUSH OFFSET _aFileE + PUSH _cbFileE + PUSH OFFSET _job_fhE + CALL _GetRunFile + PUSH _pCrntJCB + PUSH _job_fhE + CALL _LoadJob + MOV _ercE,EAX + AND EAX,EAX + JZ L_190 + PUSH OFFSET _aFileE + PUSH OFFSET _cbFileE + CALL FWORD PTR _GetExitJob + MOV EAX,_cbFileE + AND EAX,EAX + JNZ L_191 + MOV EAX,76 + MOV _ercE,EAX +L_191: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_192 + PUSH OFFSET _aFileE + PUSH _cbFileE + PUSH OFFSET _job_fhE + CALL _GetRunFile + MOV _ercE,EAX +L_192: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_193 + PUSH _pCrntJCB + PUSH _job_fhE + CALL _LoadJob + MOV _ercE,EAX +L_193: +L_190: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_194 + MOV EAX,_pStart + ADD EAX,_pCode + SUB EAX,_offCode + MOV _pStart,EAX + MOV EAX, _pStack + MOV EBX, _sStack + ADD EAX, EBX + SUB EAX, 4 + MOV ESP, EAX + MOV EBP, EAX + PUSH 18h + MOV EAX, _pStart + PUSH EAX + RETF ;We are history! +L_194: + MOV EAX,_ercE + AND EAX,EAX + JZ L_195 + PUSH _KillExch + PUSH _ExchE + PUSH _ercE + CALL FWORD PTR _ISendMsg + STI + PUSH 31 + CALL FWORD PTR _SetPriority + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _WaitMsg +L_196: + MOV EAX,1 + AND EAX,EAX + JZ L_197 + JMP L_196 +L_197: +L_195: +L_182: + POP EBP + RETF 12 -- 2.40.0