From: Richard Burgess <> Date: Thu, 9 Feb 1995 16:39:02 +0000 (+0000) Subject: autocommit for file dated 1995-02-09 16:39:02 X-Git-Url: https://pd.if.org/git/?p=mmurtl;a=commitdiff_plain;h=caf92de9d9a731f54644fa1eb581bf7e9c6c7fb8 autocommit for file dated 1995-02-09 16:39:02 --- diff --git a/msamples/scrnprnt/scrnprnt.asm b/msamples/scrnprnt/scrnprnt.asm new file mode 100644 index 0000000..9d9a430 --- /dev/null +++ b/msamples/scrnprnt/scrnprnt.asm @@ -0,0 +1,770 @@ + +.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 _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 _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 _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 _InitDevDr FWORD +EXTRN _DeviceOp FWORD +EXTRN _DeviceStat FWORD +EXTRN _DeviceInit FWORD +EXTRN _UnMaskIRQ FWORD +EXTRN _MaskIRQ FWORD +EXTRN _SetIRQVector FWORD +EXTRN _EndOfIRQ FWORD +PUBLIC _fToFile DB 0 +L_lit DB 79,112,101,110,76,80,84,32,69,82,82,79,82,58,32,37 + DB 100,32,13,10,0,13,0,10,0,12,0,67,97,110,39,116 + DB 32,119,114,105,116,101,32,116,111,32,76,80,84,46,32,69 + DB 114,114,111,114,58,32,37,100,13,10,0,67,97,110,39,116 + DB 32,99,108,111,115,101,32,76,80,84,46,32,69,114,114,111 + DB 114,58,32,37,100,13,10,0,67,84,82,76,45,65,76,84 + DB 45,80,114,105,110,116,83,99,114,110,32,119,105,108,108,32 + DB 112,114,105,110,116,32,116,104,101,32,115,99,114,101,101,110 + DB 32,102,114,111,109,32,97,110,121,32,106,111,98,32,121,111 + DB 117,39,114,101,32,118,105,101,119,105,110,103,46,13,10,0 + DB 80,114,101,115,115,58,13,10,0,32,32,32,49,41,32,84 + DB 111,32,100,105,114,101,99,116,32,115,99,114,101,101,110,32 + DB 112,114,105,110,116,115,32,116,111,32,76,80,84,49,47,80 + DB 114,105,110,116,101,114,32,40,100,101,102,97,117,108,116,41 + DB 46,13,10,0,32,32,32,50,41,32,84,111,32,100,105,114 + DB 101,99,116,32,115,99,114,101,101,110,32,112,114,105,110,116 + DB 115,32,116,111,32,97,32,102,105,108,101,46,13,10,0,32 + DB 32,32,51,41,32,84,111,32,116,101,114,109,105,110,116,101 + DB 32,116,104,101,32,115,99,114,101,101,110,32,112,114,105,110 + DB 116,32,117,116,105,108,105,116,121,46,13,10,10,0,83,99 + DB 114,101,101,110,80,114,105,110,116,0,83,99,114,101,101,110 + DB 32,80,114,105,110,116,32,85,116,105,108,105,116,121,32,105 + DB 110,115,116,97,108,108,101,100,32,97,115,32,106,111,98,32 + DB 110,117,109,98,101,114,58,32,37,100,46,13,10,10,0,75 + DB 69,89,66,79,65,82,68,0,69,114,114,111,114,32,37,100 + DB 32,111,110,32,71,108,111,98,97,108,32,75,101,121,98,111 + DB 97,114,100,32,82,101,113,117,101,115,116,13,10,0,75,69 + DB 89,66,79,65,82,68,0,69,114,114,111,114,32,37,100,32 + DB 111,110,32,82,101,97,100,75,101,121,32,82,101,113,117,101 + DB 115,116,13,10,0,83,99,114,101,101,110,32,112,114,105,110 + DB 116,32,100,105,114,101,99,116,101,100,32,116,111,32,112,114 + DB 105,110,116,101,114,32,40,76,80,84,49,41,13,10,0,76 + DB 80,84,0,13,10,69,110,116,101,114,32,102,105,108,101,110 + DB 97,109,101,32,116,111,32,112,114,105,110,116,32,116,111,58 + DB 32,0,13,10,0,75,69,89,66,79,65,82,68,0,75,69 + DB 89,66,79,65,82,68,0,97,0,67,97,110,39,116,32,111 + DB 112,101,110,32,102,105,108,101,58,32,37,115,13,10,0,83 + DB 99,114,101,101,110,32,112,114,105,110,116,32,115,101,110,116 + DB 32,116,111,32,37,115,32,102,111,114,32,106,111,98,32,37 + DB 100,13,10,10,0,83,99,114,101,101,110,32,112,114,105,110 + DB 116,32,115,101,110,116,32,116,111,32,76,80,84,49,32,102 + DB 111,114,32,106,111,98,32,37,100,13,10,10,0,75,69,89 + DB 66,79,65,82,68,0,69,114,114,111,114,32,37,100,32,111 + DB 110,32,87,97,105,116,77,115,103,32,102,114,111,109,32,107 + DB 101,114,110,101,108,13,10,0 +PUBLIC _pRqBlk DD 0h +PUBLIC _AnExch DD 0h +PUBLIC _Message DD 2 DUP(0) +PUBLIC _rqHndlG DD 0h +PUBLIC _rqHndlK DD 0h +PUBLIC _cbFilename DD 0h +PUBLIC _Filename DB 80 DUP(0) +PUBLIC _ourJob DD 0h +PUBLIC _printJob DD 0h +PUBLIC _fh DD 0h +PUBLIC _keycode DD 0h +PUBLIC _keycodeG DD 0h +PUBLIC _buf DB 4160 DUP(0) + + +.CODE +EXTRN _fopen: NEAR +EXTRN _fclose: NEAR +EXTRN _remove: NEAR +EXTRN _rename: NEAR +EXTRN _fgetc: NEAR +EXTRN _fgets: NEAR +EXTRN _fputs: NEAR +EXTRN _fputc: NEAR +EXTRN _printf: NEAR +EXTRN _sprintf: NEAR +EXTRN _fprintf: NEAR +EXTRN _ftell: NEAR +EXTRN _rewind: NEAR +EXTRN _fseek: NEAR +EXTRN _fread: NEAR +EXTRN _fwrite: NEAR +EXTRN _strcpy: NEAR +EXTRN _strncpy: NEAR +EXTRN _strcat: NEAR +EXTRN _strncat: NEAR +EXTRN _strcmp: NEAR +EXTRN _strncmp: NEAR +EXTRN _strlen: NEAR +EXTRN _strchr: NEAR +EXTRN _exit: NEAR +PUBLIC _CaptureScreen: + PUSH EBP + MOV EBP,ESP + PUSH 753664 + PUSH OFFSET _buf + PUSH 4000 + CALL FWORD PTR _CopyData + PUSH 1000 + PUSH 15 + CALL FWORD PTR _Tone + PUSH 300 + PUSH 15 + CALL FWORD PTR _Tone + POP EBP + RETN +PUBLIC _ProcessScreen: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX +L_1: + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,4000 + SETL AL + AND AL,AL + JZ L_2 + JMP SHORT L_3 +L_4: + MOV EAX,DWORD PTR [EBP-4] + ADD EAX,2 + MOV DWORD PTR [EBP-4], EAX + JMP SHORT L_1 +L_3: + MOV EAX,DWORD PTR [EBP-4] + MOV ESI,OFFSET _buf + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + CMP EAX,32 + SETB AL + AND AL,AL + JNZ L_5 + MOV EAX,DWORD PTR [EBP-4] + MOV ESI,OFFSET _buf + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + CMP EAX,126 + SETA AL + AND AL,AL +L_5: + JZ L_6 + MOV EAX,DWORD PTR [EBP-4] + MOV ESI,OFFSET _buf + ADD ESI,EAX + MOV EAX,32 + MOV BYTE PTR [ESI], AL +L_6: + JMP L_4 +L_2: + MOV ESP,EBP + POP EBP + RETN +PUBLIC _ScreenToFile: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX +L_7: + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,25 + SETL AL + AND AL,AL + JZ L_8 + JMP SHORT L_9 +L_10: + MOV EAX,DWORD PTR [EBP-4] + INC DWORD PTR [EBP-4] + JMP SHORT L_7 +L_9: + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_11: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,160 + SETL AL + AND AL,AL + JZ L_12 + JMP SHORT L_13 +L_14: + MOV EAX,DWORD PTR [EBP-8] + ADD EAX,2 + MOV DWORD PTR [EBP-8], EAX + JMP SHORT L_11 +L_13: + MOV EAX,DWORD PTR [EBP-4] + MOV ECX,160 + IMUL ECX + ADD EAX,DWORD PTR [EBP-8] + MOV ESI,OFFSET _buf + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + PUSH EAX + PUSH DWORD PTR [EBP+8] + CALL _fputc + JMP L_14 +L_12: + PUSH 10 + PUSH DWORD PTR [EBP+8] + CALL _fputc + JMP L_10 +L_8: + MOV ESP,EBP + POP EBP + RETN 4 +PUBLIC _ScreenToLPT: + PUSH EBP + MOV EBP,ESP + SUB ESP,12 + PUSH 3 + PUSH 10 + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_15 + PUSH OFFSET L_lit+0 + PUSH DWORD PTR [EBP-4] + MOV EDI, 4 + CALL _printf + ADD ESP,8 + JMP L_16 +L_15: + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_17: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,25 + SETL AL + AND AL,AL + JZ L_18 + JMP SHORT L_19 +L_20: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + JMP SHORT L_17 +L_19: + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX +L_21: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,160 + SETL AL + AND AL,AL + JZ L_22 + JMP SHORT L_23 +L_24: + MOV EAX,DWORD PTR [EBP-12] + ADD EAX,2 + MOV DWORD PTR [EBP-12], EAX + JMP SHORT L_21 +L_23: + PUSH 3 + PUSH 32 + XOR EAX,EAX + PUSH EAX + PUSH 1 + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,160 + IMUL ECX + ADD EAX,DWORD PTR [EBP-12] + MOV ESI,OFFSET _buf + ADD ESI,EAX + PUSH ESI + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_22 + JMP L_24 +L_22: + PUSH 3 + PUSH 32 + XOR EAX,EAX + PUSH EAX + PUSH 1 + PUSH OFFSET L_lit+21 + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + PUSH 3 + PUSH 32 + XOR EAX,EAX + PUSH EAX + PUSH 1 + PUSH OFFSET L_lit+23 + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_18 + JMP L_20 +L_18: + PUSH 3 + PUSH 32 + XOR EAX,EAX + PUSH EAX + PUSH 1 + PUSH OFFSET L_lit+25 + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_27 + PUSH OFFSET L_lit+27 + PUSH DWORD PTR [EBP-4] + MOV EDI, 4 + CALL _printf + ADD ESP,8 +L_27: + PUSH 3 + PUSH 11 + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_28 + PUSH OFFSET L_lit+59 + PUSH DWORD PTR [EBP-4] + MOV EDI, 4 + CALL _printf + ADD ESP,8 +L_28: +L_16: + MOV ESP,EBP + POP EBP + RETN +PUBLIC _menu: + PUSH EBP + MOV EBP,ESP + PUSH OFFSET L_lit+88 + MOV EDI, 0 + CALL _printf + ADD ESP,4 + PUSH OFFSET L_lit+160 + MOV EDI, 0 + CALL _printf + ADD ESP,4 + PUSH OFFSET L_lit+169 + MOV EDI, 0 + CALL _printf + ADD ESP,4 + PUSH OFFSET L_lit+228 + MOV EDI, 0 + CALL _printf + ADD ESP,4 + PUSH OFFSET L_lit+271 + MOV EDI, 0 + CALL _printf + ADD ESP,4 + POP EBP + RETN +PUBLIC _main: + PUSH EBP + MOV EBP,ESP + SUB ESP,14 + PUSH OFFSET _ourJob + CALL FWORD PTR _GetJobNum + PUSH OFFSET L_lit+318 + PUSH 11 + CALL FWORD PTR _SetJobName + PUSH OFFSET _Filename + PUSH 80 + PUSH 32 + CALL FWORD PTR _FillData + XOR EAX,EAX + MOV _cbFilename, EAX + XOR EAX,EAX + MOV _fToFile, AL + PUSH OFFSET _AnExch + CALL FWORD PTR _AllocExch + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_29 + PUSH DWORD PTR [EBP-4] + CALL FWORD PTR _ExitJob +L_29: + PUSH 7 + CALL FWORD PTR _SetNormVid + CALL FWORD PTR _ClrScr + PUSH OFFSET L_lit+330 + PUSH _ourJob + MOV EDI, 4 + CALL _printf + ADD ESP,8 + PUSH OFFSET L_lit+383 + PUSH 2 + PUSH _AnExch + PUSH OFFSET _rqHndlG + XOR EAX,EAX + PUSH EAX + PUSH OFFSET _keycodeG + 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 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_30 + PUSH OFFSET L_lit+392 + PUSH DWORD PTR [EBP-4] + MOV EDI, 4 + CALL _printf + ADD ESP,8 +L_30: + PUSH OFFSET L_lit+430 + PUSH 1 + PUSH _AnExch + PUSH OFFSET _rqHndlK + XOR EAX,EAX + PUSH EAX + PUSH OFFSET _keycode + 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_31 + PUSH OFFSET L_lit+439 + PUSH DWORD PTR [EBP-4] + MOV EDI, 4 + CALL _printf + ADD ESP,8 +L_31: + CALL _menu +L_32: + MOV EAX,1 + AND EAX,EAX + JZ L_33 + PUSH _AnExch + PUSH OFFSET _Message + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_34 + MOV ESI,OFFSET _Message + MOV EAX,DWORD PTR [ESI] + CMP EAX,_rqHndlK + SETE AL + AND AL,AL + JZ L_35 + MOV EAX,_keycode + AND EAX,127 + MOV BYTE PTR [EBP-13], AL + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + JMP L_37 +L_38: + XOR EAX,EAX + MOV _fToFile, AL + PUSH OFFSET L_lit+469 + MOV EDI, 0 + CALL _printf + ADD ESP,4 + PUSH OFFSET _Filename + PUSH OFFSET L_lit+511 + CALL _strcpy + MOV EAX,3 + MOV _cbFilename, EAX + JMP L_36 +L_39: + PUSH OFFSET L_lit+515 + MOV EDI, 0 + CALL _printf + ADD ESP,4 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL FWORD PTR _GetXY + PUSH OFFSET _Filename + PUSH _cbFilename + PUSH 50 + PUSH OFFSET _cbFilename + LEA EAX,BYTE PTR [EBP-14] + PUSH EAX + PUSH 112 + CALL FWORD PTR _EditLine + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-14] + CMP EAX,13 + SETE AL + AND AL,AL + JZ L_40 + MOV EAX,_cbFilename +L_40: + AND EAX,EAX + JZ L_41 + MOV EAX,_cbFilename + MOV ESI,OFFSET _Filename + ADD ESI,EAX + XOR EAX,EAX + MOV BYTE PTR [ESI], AL + MOV EAX,1 + MOV _fToFile, AL + JMP L_42 +L_41: + XOR EAX,EAX + MOV _fToFile, AL +L_42: + PUSH OFFSET L_lit+546 + MOV EDI, 0 + CALL _printf + ADD ESP,4 + JMP L_36 +L_43: + PUSH OFFSET L_lit+549 + PUSH 3 + PUSH _AnExch + PUSH OFFSET _rqHndlG + 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 _ourJob + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + PUSH _AnExch + PUSH OFFSET _Message + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX + PUSH _AnExch + CALL FWORD PTR _DeAllocExch + XOR EAX,EAX + PUSH EAX + CALL _exit + JMP L_36 +L_37: + CMP EAX,51 + JE L_43 + CMP EAX,50 + JE L_39 + CMP EAX,49 + JE L_38 +L_36: + PUSH OFFSET L_lit+558 + PUSH 1 + PUSH _AnExch + PUSH OFFSET _rqHndlK + XOR EAX,EAX + PUSH EAX + PUSH OFFSET _keycode + 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 + CALL _menu + JMP L_44 +L_35: + MOV ESI,OFFSET _Message + MOV EAX,DWORD PTR [ESI] + CMP EAX,_rqHndlG + SETE AL + AND AL,AL + JZ L_45 + MOV EAX,_keycodeG + AND EAX,255 + CMP EAX,28 + SETE AL + AND AL,AL + JZ L_46 + CALL _CaptureScreen + CALL _ProcessScreen + MOVSX EAX,_fToFile + AND EAX,EAX + JZ L_47 + PUSH OFFSET _Filename + PUSH OFFSET L_lit+567 + CALL _fopen + MOV _fh, EAX + MOV EAX,_fh + AND EAX,EAX + JZ L_48 + PUSH _fh + CALL _ScreenToFile + PUSH _fh + CALL _fclose + JMP L_49 +L_48: + PUSH OFFSET L_lit+569 + PUSH OFFSET _Filename + MOV EDI, 4 + CALL _printf + ADD ESP,8 +L_49: + JMP L_50 +L_47: + CALL _ScreenToLPT +L_50: + PUSH OFFSET _printJob + CALL FWORD PTR _GetVidOwner + MOVSX EAX,_fToFile + AND EAX,EAX + JZ L_51 + PUSH OFFSET L_lit+591 + PUSH OFFSET _Filename + PUSH _printJob + MOV EDI, 8 + CALL _printf + ADD ESP,12 + JMP L_52 +L_51: + PUSH OFFSET L_lit+629 + PUSH _printJob + MOV EDI, 4 + CALL _printf + ADD ESP,8 +L_52: + CALL _menu +L_46: + PUSH OFFSET L_lit+669 + PUSH 2 + PUSH _AnExch + PUSH OFFSET _rqHndlG + XOR EAX,EAX + PUSH EAX + PUSH OFFSET _keycodeG + 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_45: +L_44: + JMP L_53 +L_34: + PUSH OFFSET L_lit+678 + PUSH DWORD PTR [EBP-4] + MOV EDI, 4 + CALL _printf + ADD ESP,8 +L_53: + JMP L_32 +L_33: + MOV ESP,EBP + POP EBP + RETN 8