]> pd.if.org Git - mmurtl/commitdiff
autocommit for file dated 1995-01-30 22:46:08
authorRichard Burgess <>
Mon, 30 Jan 1995 22:46:08 +0000 (22:46 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Mon, 17 Oct 2016 14:03:47 +0000 (14:03 +0000)
msamples/print/print.asm [new file with mode: 0644]

diff --git a/msamples/print/print.asm b/msamples/print/print.asm
new file mode 100644 (file)
index 0000000..9a3fc64
--- /dev/null
@@ -0,0 +1,613 @@
+\r
+.DATA\r
+EXTRN _InitDevDr FWORD\r
+EXTRN _DeviceOp FWORD\r
+EXTRN _DeviceStat FWORD\r
+EXTRN _DeviceInit FWORD\r
+EXTRN _UnMaskIRQ FWORD\r
+EXTRN _MaskIRQ FWORD\r
+EXTRN _SetIRQVector FWORD\r
+EXTRN _EndOfIRQ FWORD\r
+EXTRN _GetpJCB FWORD\r
+EXTRN _GetJobNum FWORD\r
+EXTRN _LoadNewJob FWORD\r
+EXTRN _Chain FWORD\r
+EXTRN _ExitJob FWORD\r
+EXTRN _KillJob FWORD\r
+EXTRN _SetUserName FWORD\r
+EXTRN _GetUserName FWORD\r
+EXTRN _SetCmdLine FWORD\r
+EXTRN _GetCmdLine FWORD\r
+EXTRN _SetPath FWORD\r
+EXTRN _GetPath FWORD\r
+EXTRN _SetExitJob FWORD\r
+EXTRN _GetExitJob FWORD\r
+EXTRN _SetSysIn FWORD\r
+EXTRN _GetSysIn FWORD\r
+EXTRN _SetSysOut FWORD\r
+EXTRN _GetSysOut FWORD\r
+EXTRN _SetJobName FWORD\r
+EXTRN _RegisterSvc FWORD\r
+EXTRN _UnRegisterSvc FWORD\r
+EXTRN _GetSystemDisk FWORD\r
+EXTRN _ReadKbd FWORD\r
+EXTRN _Alarm FWORD\r
+EXTRN _KillAlarm FWORD\r
+EXTRN _Sleep FWORD\r
+EXTRN _MicroDelay FWORD\r
+EXTRN _GetCMOSTime FWORD\r
+EXTRN _GetCMOSDate FWORD\r
+EXTRN _GetTimerTick FWORD\r
+EXTRN _Tone FWORD\r
+EXTRN _Beep FWORD\r
+EXTRN _SetVidOwner FWORD\r
+EXTRN _SetNormVid FWORD\r
+EXTRN _GetNormVid FWORD\r
+EXTRN _ClrScr FWORD\r
+EXTRN _GetVidChar FWORD\r
+EXTRN _SetXY FWORD\r
+EXTRN _PutVidAttrs FWORD\r
+EXTRN _PutVidChars FWORD\r
+EXTRN _GetVidOwner FWORD\r
+EXTRN _GetXY FWORD\r
+EXTRN _ScrollVid FWORD\r
+EXTRN _TTYOut FWORD\r
+EXTRN _EditLine FWORD\r
+PUBLIC _tabstops DD 4\r
+PUBLIC _NoFF DD 0\r
+PUBLIC _fDisplay DD 0\r
+PUBLIC _fBinary DD 0\r
+PUBLIC _col DD 0\r
+L_lit DB 80,114,105,110,116,105,110,103,0,73,110,118,97,108,105,100\r
+ DB 32,115,119,105,116,99,104,0,80,114,105,110,116,32,70,105\r
+ DB 108,101,44,32,86,101,114,115,105,111,110,32,49,44,48,13\r
+ DB 10,0,85,115,97,103,101,58,32,70,105,108,101,110,97,109\r
+ DB 101,32,47,49,32,47,50,32,47,52,32,47,56,32,47,70\r
+ DB 32,47,68,32,47,66,13,10,0,47,49,32,47,50,32,47\r
+ DB 52,32,47,56,32,45,32,84,97,98,32,115,116,111,112,32\r
+ DB 116,114,97,110,115,108,97,116,105,111,110,32,118,97,108,117\r
+ DB 101,13,10,0,47,70,32,32,110,111,32,70,111,114,109,70\r
+ DB 101,101,100,32,97,116,32,101,110,100,32,111,102,32,102,105\r
+ DB 108,101,13,10,0,47,68,32,32,68,105,115,112,108,97,121\r
+ DB 32,102,105,108,101,32,119,104,105,108,101,32,112,114,105,110\r
+ DB 116,105,110,103,13,10,0,47,66,32,32,66,105,110,97,114\r
+ DB 121,32,112,114,105,110,116,46,32,78,79,32,116,114,97,110\r
+ DB 115,108,97,116,105,111,110,44,32,110,111,32,70,70,13,10\r
+ DB 10,0,69,114,114,111,114,58,32,83,111,117,114,99,101,32\r
+ DB 102,105,108,101,110,97,109,101,32,114,101,113,117,105,114,101\r
+ DB 100,13,10,0,69,114,114,111,114,32,103,101,116,116,105,110\r
+ DB 103,32,76,80,84,32,68,101,118,105,99,101,32,83,116,97\r
+ DB 116,117,115,58,32,37,100,13,10,0,79,112,101,110,76,80\r
+ DB 84,32,69,82,82,79,82,58,32,37,100,32,13,10,0,80\r
+ DB 114,105,110,116,105,110,103,32,37,115,32,46,46,46,13,10\r
+ DB 0,114,0,67,97,110,39,116,32,111,112,101,110,58,32,37\r
+ DB 115,13,10,0,13,10,0,32,0,32,0,37,99,0,69,114\r
+ DB 114,111,114,32,87,114,105,116,105,110,103,32,66,121,116,101\r
+ DB 58,32,37,100,13,10,0,12,0,67,97,110,39,116,32,99\r
+ DB 108,111,115,101,32,76,80,84,46,32,69,114,114,111,114,58\r
+ DB 32,37,100,13,10,0,68,111,110,101,13,10,0\r
+PUBLIC _key DD 0h\r
+PUBLIC _name DB 80 DUP(0)\r
+PUBLIC _f DD 0h\r
+PUBLIC _lpt DB 61 DUP(0)\r
+\r
+\r
+.CODE\r
+EXTRN _fopen: NEAR\r
+EXTRN _fclose: NEAR\r
+EXTRN _remove: NEAR\r
+EXTRN _rename: NEAR\r
+EXTRN _fgetc: NEAR\r
+EXTRN _fgets: NEAR\r
+EXTRN _fputs: NEAR\r
+EXTRN _fputc: NEAR\r
+EXTRN _printf: NEAR\r
+EXTRN _sprintf: NEAR\r
+EXTRN _fprintf: NEAR\r
+EXTRN _ftell: NEAR\r
+EXTRN _rewind: NEAR\r
+EXTRN _fseek: NEAR\r
+EXTRN _fread: NEAR\r
+EXTRN _fwrite: NEAR\r
+EXTRN _iscntrl: NEAR\r
+EXTRN _isspace: NEAR\r
+EXTRN _isdigit: NEAR\r
+EXTRN _isupper: NEAR\r
+EXTRN _islower: NEAR\r
+EXTRN _ispunct: NEAR\r
+EXTRN _isalpha: NEAR\r
+EXTRN _isxdigit: NEAR\r
+EXTRN _isalnum: NEAR\r
+EXTRN _isgraph: NEAR\r
+EXTRN _toupper: NEAR\r
+EXTRN _tolower: NEAR\r
+EXTRN _strcpy: NEAR\r
+EXTRN _strncpy: NEAR\r
+EXTRN _strcat: NEAR\r
+EXTRN _strncat: NEAR\r
+EXTRN _strcmp: NEAR\r
+EXTRN _strncmp: NEAR\r
+EXTRN _strlen: NEAR\r
+EXTRN _strchr: NEAR\r
+EXTRN _exit: NEAR\r
+PUBLIC _main:\r
+       PUSH EBP\r
+       MOV EBP,ESP\r
+       SUB ESP,23\r
+       PUSH  OFFSET L_lit+0\r
+       PUSH 8\r
+       CALL FWORD PTR _SetJobName\r
+       MOV ESI,OFFSET _name\r
+       XOR EAX,EAX\r
+       MOV BYTE PTR [ESI],AL\r
+       MOV EAX,1\r
+       MOV DWORD PTR [EBP-12],EAX\r
+L_1:\r
+       MOV EAX,[EBP-12]\r
+       CMP EAX,DWORD PTR [EBP+12]\r
+       SETL AL\r
+       AND AL,AL\r
+       JZ L_2\r
+       JMP SHORT L_3\r
+L_4:\r
+       INC DWORD PTR [EBP-12]\r
+       MOV EAX,[EBP-12]\r
+       JMP SHORT L_1\r
+L_3:\r
+       MOV EAX,[EBP-12]\r
+       SHL EAX,2\r
+       MOV ESI,DWORD PTR [EBP+8]\r
+       ADD ESI,EAX\r
+       MOV EAX,DWORD PTR [ESI]\r
+       MOV DWORD PTR [EBP-23],EAX\r
+       MOV ESI,DWORD PTR [EBP-23]\r
+       MOVSX EAX,BYTE PTR [ESI]\r
+       CMP EAX,47\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_5\r
+       MOV ESI,DWORD PTR [EBP-23]\r
+       INC DWORD PTR [EBP-23]\r
+       MOV EAX,DWORD PTR [ESI]\r
+       MOV ESI,DWORD PTR [EBP-23]\r
+       MOVSX EAX,BYTE PTR [ESI]\r
+       JMP L_7\r
+L_8:\r
+L_9:\r
+L_10:\r
+L_11:\r
+       MOV ESI,DWORD PTR [EBP-23]\r
+       MOVSX EAX,BYTE PTR [ESI]\r
+       SUB EAX,48\r
+       MOV _tabstops,EAX\r
+       JMP L_6\r
+L_12:\r
+L_13:\r
+       MOV EAX,1\r
+       MOV _NoFF,EAX\r
+       JMP L_6\r
+L_14:\r
+L_15:\r
+       MOV EAX,1\r
+       MOV _fDisplay,EAX\r
+       JMP L_6\r
+L_16:\r
+L_17:\r
+       MOV EAX,1\r
+       MOV _fBinary,EAX\r
+       JMP L_6\r
+L_18:\r
+       PUSH  OFFSET L_lit+9\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH 1\r
+       CALL _exit\r
+       JMP L_6\r
+L_7:\r
+       CMP EAX,98\r
+       JE L_17\r
+       CMP EAX,66\r
+       JE L_16\r
+       CMP EAX,100\r
+       JE L_15\r
+       CMP EAX,68\r
+       JE L_14\r
+       CMP EAX,102\r
+       JE L_13\r
+       CMP EAX,70\r
+       JE L_12\r
+       CMP EAX,56\r
+       JE L_11\r
+       CMP EAX,52\r
+       JE L_10\r
+       CMP EAX,50\r
+       JE L_9\r
+       CMP EAX,49\r
+       JE L_8\r
+       JMP L_18\r
+L_6:\r
+       JMP L_19\r
+L_5:\r
+       MOV ESI,OFFSET _name\r
+       MOVSX EAX,BYTE PTR [ESI]\r
+       AND EAX,EAX\r
+       JNZ L_20\r
+       PUSH OFFSET _name\r
+       MOV EAX,[EBP-12]\r
+       SHL EAX,2\r
+       MOV ESI,DWORD PTR [EBP+8]\r
+       ADD ESI,EAX\r
+       PUSH DWORD PTR [ESI]\r
+       PUSH 79\r
+       CALL _strncpy\r
+L_20:\r
+L_19:\r
+       JMP L_4\r
+L_2:\r
+       MOV ESI,OFFSET _name\r
+       MOVSX EAX,BYTE PTR [ESI]\r
+       AND EAX,EAX\r
+       JNZ L_21\r
+       PUSH  OFFSET L_lit+24\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH  OFFSET L_lit+50\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH  OFFSET L_lit+89\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH  OFFSET L_lit+132\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH  OFFSET L_lit+165\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH  OFFSET L_lit+199\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH  OFFSET L_lit+242\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH 1\r
+       CALL _exit\r
+L_21:\r
+       PUSH 3\r
+       PUSH OFFSET _lpt\r
+       PUSH 64\r
+       LEA EAX,DWORD PTR [EBP-12]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceStat\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       MOV EAX,[EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_22\r
+       PUSH  OFFSET L_lit+276\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+       PUSH DWORD PTR [EBP-4]\r
+       CALL FWORD PTR _ExitJob\r
+L_22:\r
+       PUSH 3\r
+       PUSH 10\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       LEA EAX,DWORD PTR [EBP-12]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       MOV EAX,[EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_23\r
+       PUSH  OFFSET L_lit+314\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+       PUSH DWORD PTR [EBP-4]\r
+       CALL FWORD PTR _ExitJob\r
+L_23:\r
+       PUSH  OFFSET L_lit+335\r
+       PUSH OFFSET _name\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+       PUSH OFFSET _name\r
+       PUSH  OFFSET L_lit+353\r
+       CALL _fopen\r
+       MOV _f,EAX\r
+       AND EAX,EAX\r
+       JNZ L_24\r
+       PUSH 3\r
+       PUSH 12\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       LEA EAX,DWORD PTR [EBP-12]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       PUSH  OFFSET L_lit+355\r
+       PUSH OFFSET _name\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+       PUSH DWORD PTR [EBP-4]\r
+       CALL FWORD PTR _ExitJob\r
+L_24:\r
+       XOR EAX,EAX\r
+       MOV _col,EAX\r
+       XOR EAX,EAX\r
+       MOV DWORD PTR [EBP-12],EAX\r
+       XOR EAX,EAX\r
+       MOV BYTE PTR [EBP-17],AL\r
+       XOR EAX,EAX\r
+       MOV BYTE PTR [EBP-19],AL\r
+L_25:\r
+       MOVSX EAX,BYTE PTR [EBP-19]\r
+       AND EAX,EAX\r
+       SETZ AL\r
+       AND AL,AL\r
+       JZ L_27\r
+       MOV EAX,[EBP-4]\r
+       AND EAX,EAX\r
+       SETZ AL\r
+       AND AL,AL\r
+L_27:\r
+       JZ L_26\r
+       MOV EAX,[EBP-12]\r
+       INC DWORD PTR [EBP-12]\r
+       PUSH _f\r
+       CALL _fgetc\r
+       MOV DWORD PTR [EBP-16],EAX\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [EBP-17]\r
+       MOV BYTE PTR [EBP-18],AL\r
+       MOV EAX,[EBP-16]\r
+       AND EAX,255\r
+       MOV BYTE PTR [EBP-17],AL\r
+       MOV EAX,[EBP-16]\r
+       CMP EAX,-1\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_28\r
+       MOV EAX,1\r
+       MOV BYTE PTR [EBP-19],AL\r
+       JMP L_29\r
+L_28:\r
+       MOV EAX,_fBinary\r
+       AND EAX,EAX\r
+       JZ L_30\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       LEA EAX,BYTE PTR [EBP-18]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       JMP L_31\r
+L_30:\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [EBP-17]\r
+       JMP L_33\r
+L_34:\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       LEA EAX,BYTE PTR [EBP-17]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       JMP L_32\r
+L_35:\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [EBP-18]\r
+       CMP EAX,13\r
+       SETNE AL\r
+       AND AL,AL\r
+       JZ L_36\r
+       MOV EAX,13\r
+       MOV BYTE PTR [EBP-18],AL\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       LEA EAX,BYTE PTR [EBP-18]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+L_36:\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       LEA EAX,BYTE PTR [EBP-17]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       MOV EAX,_fDisplay\r
+       AND EAX,EAX\r
+       JZ L_37\r
+       PUSH  OFFSET L_lit+372\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [EBP-18]\r
+       PUSH EAX\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_37:\r
+       XOR EAX,EAX\r
+       MOV _col,EAX\r
+       JMP L_32\r
+L_38:\r
+L_39:\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       PUSH  OFFSET L_lit+375\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       MOV EAX,_col\r
+       INC _col\r
+       MOV EAX,_fDisplay\r
+       AND EAX,EAX\r
+       JZ L_42\r
+       PUSH  OFFSET L_lit+377\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+L_42:\r
+L_40:\r
+       MOV EAX,_col\r
+       MOV ECX,_tabstops\r
+       CDQ\r
+       IDIV ECX\r
+       MOV EAX,EDX\r
+       AND EAX,EAX\r
+       JNZ L_39\r
+L_41:\r
+       JMP L_32\r
+L_43:\r
+       MOV EAX,_fDisplay\r
+       AND EAX,EAX\r
+       JZ L_44\r
+       PUSH  OFFSET L_lit+379\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [EBP-17]\r
+       PUSH EAX\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_44:\r
+       MOV EAX,_col\r
+       INC _col\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       LEA EAX,BYTE PTR [EBP-17]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       MOV EAX,[EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_45\r
+       PUSH  OFFSET L_lit+382\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_45:\r
+       JMP L_32\r
+L_33:\r
+       CMP EAX,9\r
+       JE L_38\r
+       CMP EAX,10\r
+       JE L_35\r
+       CMP EAX,13\r
+       JE L_34\r
+       JMP L_43\r
+L_32:\r
+L_31:\r
+L_29:\r
+       MOV EAX,[EBP-12]\r
+       MOV ECX,100\r
+       CDQ\r
+       IDIV ECX\r
+       MOV EAX,EDX\r
+       CMP EAX,0\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_46\r
+       PUSH OFFSET _key\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       CALL FWORD PTR _ReadKbd\r
+       MOV DWORD PTR [EBP-8],EAX\r
+       MOV EAX,[EBP-8]\r
+       AND EAX,EAX\r
+       JNZ L_47\r
+       MOV EAX,_key\r
+       AND EAX,0\r
+       JZ L_48\r
+       MOV EAX,1\r
+       MOV BYTE PTR [EBP-19],AL\r
+       MOV EAX,4\r
+       MOV DWORD PTR [EBP-4],EAX\r
+L_48:\r
+L_47:\r
+L_46:\r
+       JMP L_25\r
+L_26:\r
+       MOV EAX,_fBinary\r
+       AND EAX,EAX\r
+       SETZ AL\r
+       AND AL,AL\r
+       JZ L_49\r
+       MOV EAX,_NoFF\r
+       AND EAX,EAX\r
+       SETZ AL\r
+       AND AL,AL\r
+L_49:\r
+       JZ L_50\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       PUSH  OFFSET L_lit+407\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+L_50:\r
+       PUSH _f\r
+       CALL _fclose\r
+       PUSH 3\r
+       PUSH 11\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       LEA EAX,DWORD PTR [EBP-12]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4],EAX\r
+       MOV EAX,[EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_51\r
+       PUSH  OFFSET L_lit+409\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_51:\r
+       PUSH  OFFSET L_lit+438\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH DWORD PTR [EBP-4]\r
+       CALL FWORD PTR _ExitJob\r
+       MOV ESP,EBP\r
+       POP EBP\r
+       RETN 8\r