]> pd.if.org Git - mmurtl/commitdiff
autocommit for file dated 1995-02-09 16:39:02
authorRichard Burgess <>
Thu, 9 Feb 1995 16:39:02 +0000 (16:39 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Mon, 17 Oct 2016 14:03:48 +0000 (14:03 +0000)
msamples/scrnprnt/scrnprnt.asm [new file with mode: 0644]

diff --git a/msamples/scrnprnt/scrnprnt.asm b/msamples/scrnprnt/scrnprnt.asm
new file mode 100644 (file)
index 0000000..9d9a430
--- /dev/null
@@ -0,0 +1,770 @@
+\r
+.DATA\r
+EXTRN _AllocExch FWORD\r
+EXTRN _DeAllocExch FWORD\r
+EXTRN _GetTSSExch FWORD\r
+EXTRN _SetPriority FWORD\r
+EXTRN _NewTask FWORD\r
+EXTRN _SpawnTask FWORD\r
+EXTRN _SendMsg FWORD\r
+EXTRN _ISendMsg FWORD\r
+EXTRN _WaitMsg FWORD\r
+EXTRN _CheckMsg FWORD\r
+EXTRN _Request FWORD\r
+EXTRN _MoveRequest FWORD\r
+EXTRN _Respond 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 _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
+EXTRN _CopyData FWORD\r
+EXTRN _FillData FWORD\r
+EXTRN _CompareNCS FWORD\r
+EXTRN _Compare FWORD\r
+EXTRN _OutByte FWORD\r
+EXTRN _OutWord FWORD\r
+EXTRN _InByte FWORD\r
+EXTRN _InWord FWORD\r
+EXTRN _ReadCMOS 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 _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
+PUBLIC _fToFile DB 0\r
+L_lit DB 79,112,101,110,76,80,84,32,69,82,82,79,82,58,32,37\r
+ DB 100,32,13,10,0,13,0,10,0,12,0,67,97,110,39,116\r
+ DB 32,119,114,105,116,101,32,116,111,32,76,80,84,46,32,69\r
+ DB 114,114,111,114,58,32,37,100,13,10,0,67,97,110,39,116\r
+ DB 32,99,108,111,115,101,32,76,80,84,46,32,69,114,114,111\r
+ DB 114,58,32,37,100,13,10,0,67,84,82,76,45,65,76,84\r
+ DB 45,80,114,105,110,116,83,99,114,110,32,119,105,108,108,32\r
+ DB 112,114,105,110,116,32,116,104,101,32,115,99,114,101,101,110\r
+ DB 32,102,114,111,109,32,97,110,121,32,106,111,98,32,121,111\r
+ DB 117,39,114,101,32,118,105,101,119,105,110,103,46,13,10,0\r
+ DB 80,114,101,115,115,58,13,10,0,32,32,32,49,41,32,84\r
+ DB 111,32,100,105,114,101,99,116,32,115,99,114,101,101,110,32\r
+ DB 112,114,105,110,116,115,32,116,111,32,76,80,84,49,47,80\r
+ DB 114,105,110,116,101,114,32,40,100,101,102,97,117,108,116,41\r
+ DB 46,13,10,0,32,32,32,50,41,32,84,111,32,100,105,114\r
+ DB 101,99,116,32,115,99,114,101,101,110,32,112,114,105,110,116\r
+ DB 115,32,116,111,32,97,32,102,105,108,101,46,13,10,0,32\r
+ DB 32,32,51,41,32,84,111,32,116,101,114,109,105,110,116,101\r
+ DB 32,116,104,101,32,115,99,114,101,101,110,32,112,114,105,110\r
+ DB 116,32,117,116,105,108,105,116,121,46,13,10,10,0,83,99\r
+ DB 114,101,101,110,80,114,105,110,116,0,83,99,114,101,101,110\r
+ DB 32,80,114,105,110,116,32,85,116,105,108,105,116,121,32,105\r
+ DB 110,115,116,97,108,108,101,100,32,97,115,32,106,111,98,32\r
+ DB 110,117,109,98,101,114,58,32,37,100,46,13,10,10,0,75\r
+ DB 69,89,66,79,65,82,68,0,69,114,114,111,114,32,37,100\r
+ DB 32,111,110,32,71,108,111,98,97,108,32,75,101,121,98,111\r
+ DB 97,114,100,32,82,101,113,117,101,115,116,13,10,0,75,69\r
+ DB 89,66,79,65,82,68,0,69,114,114,111,114,32,37,100,32\r
+ DB 111,110,32,82,101,97,100,75,101,121,32,82,101,113,117,101\r
+ DB 115,116,13,10,0,83,99,114,101,101,110,32,112,114,105,110\r
+ DB 116,32,100,105,114,101,99,116,101,100,32,116,111,32,112,114\r
+ DB 105,110,116,101,114,32,40,76,80,84,49,41,13,10,0,76\r
+ DB 80,84,0,13,10,69,110,116,101,114,32,102,105,108,101,110\r
+ DB 97,109,101,32,116,111,32,112,114,105,110,116,32,116,111,58\r
+ DB 32,0,13,10,0,75,69,89,66,79,65,82,68,0,75,69\r
+ DB 89,66,79,65,82,68,0,97,0,67,97,110,39,116,32,111\r
+ DB 112,101,110,32,102,105,108,101,58,32,37,115,13,10,0,83\r
+ DB 99,114,101,101,110,32,112,114,105,110,116,32,115,101,110,116\r
+ DB 32,116,111,32,37,115,32,102,111,114,32,106,111,98,32,37\r
+ DB 100,13,10,10,0,83,99,114,101,101,110,32,112,114,105,110\r
+ DB 116,32,115,101,110,116,32,116,111,32,76,80,84,49,32,102\r
+ DB 111,114,32,106,111,98,32,37,100,13,10,10,0,75,69,89\r
+ DB 66,79,65,82,68,0,69,114,114,111,114,32,37,100,32,111\r
+ DB 110,32,87,97,105,116,77,115,103,32,102,114,111,109,32,107\r
+ DB 101,114,110,101,108,13,10,0\r
+PUBLIC _pRqBlk DD 0h\r
+PUBLIC _AnExch DD 0h\r
+PUBLIC _Message DD 2 DUP(0)\r
+PUBLIC _rqHndlG DD 0h\r
+PUBLIC _rqHndlK DD 0h\r
+PUBLIC _cbFilename DD 0h\r
+PUBLIC _Filename DB 80 DUP(0)\r
+PUBLIC _ourJob DD 0h\r
+PUBLIC _printJob DD 0h\r
+PUBLIC _fh DD 0h\r
+PUBLIC _keycode DD 0h\r
+PUBLIC _keycodeG DD 0h\r
+PUBLIC _buf DB 4160 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 _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 _CaptureScreen:\r
+       PUSH EBP\r
+       MOV EBP,ESP\r
+       PUSH 753664\r
+       PUSH OFFSET _buf\r
+       PUSH 4000\r
+       CALL FWORD PTR _CopyData\r
+       PUSH 1000\r
+       PUSH 15\r
+       CALL FWORD PTR _Tone\r
+       PUSH 300\r
+       PUSH 15\r
+       CALL FWORD PTR _Tone\r
+       POP EBP\r
+       RETN\r
+PUBLIC _ProcessScreen:\r
+       PUSH EBP\r
+       MOV EBP,ESP\r
+       SUB ESP,4\r
+       XOR EAX,EAX\r
+       MOV DWORD PTR [EBP-4], EAX\r
+L_1:\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       CMP EAX,4000\r
+       SETL AL\r
+       AND AL,AL\r
+       JZ L_2\r
+       JMP SHORT L_3\r
+L_4:\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       ADD EAX,2\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       JMP SHORT L_1\r
+L_3:\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       MOV ESI,OFFSET _buf\r
+       ADD ESI,EAX\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [ESI]\r
+       CMP EAX,32\r
+       SETB AL\r
+       AND AL,AL\r
+       JNZ L_5\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       MOV ESI,OFFSET _buf\r
+       ADD ESI,EAX\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [ESI]\r
+       CMP EAX,126\r
+       SETA AL\r
+       AND AL,AL\r
+L_5:\r
+       JZ L_6\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       MOV ESI,OFFSET _buf\r
+       ADD ESI,EAX\r
+       MOV EAX,32\r
+       MOV BYTE PTR [ESI], AL\r
+L_6:\r
+       JMP L_4\r
+L_2:\r
+       MOV ESP,EBP\r
+       POP EBP\r
+       RETN\r
+PUBLIC _ScreenToFile:\r
+       PUSH EBP\r
+       MOV EBP,ESP\r
+       SUB ESP,8\r
+       XOR EAX,EAX\r
+       MOV DWORD PTR [EBP-4], EAX\r
+L_7:\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       CMP EAX,25\r
+       SETL AL\r
+       AND AL,AL\r
+       JZ L_8\r
+       JMP SHORT L_9\r
+L_10:\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       INC DWORD PTR [EBP-4]\r
+       JMP SHORT L_7\r
+L_9:\r
+       XOR EAX,EAX\r
+       MOV DWORD PTR [EBP-8], EAX\r
+L_11:\r
+       MOV EAX,DWORD PTR [EBP-8]\r
+       CMP EAX,160\r
+       SETL AL\r
+       AND AL,AL\r
+       JZ L_12\r
+       JMP SHORT L_13\r
+L_14:\r
+       MOV EAX,DWORD PTR [EBP-8]\r
+       ADD EAX,2\r
+       MOV DWORD PTR [EBP-8], EAX\r
+       JMP SHORT L_11\r
+L_13:\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       MOV ECX,160\r
+       IMUL ECX\r
+       ADD EAX,DWORD PTR [EBP-8]\r
+       MOV ESI,OFFSET _buf\r
+       ADD ESI,EAX\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [ESI]\r
+       PUSH EAX\r
+       PUSH DWORD PTR [EBP+8]\r
+       CALL _fputc\r
+       JMP L_14\r
+L_12:\r
+       PUSH 10\r
+       PUSH DWORD PTR [EBP+8]\r
+       CALL _fputc\r
+       JMP L_10\r
+L_8:\r
+       MOV ESP,EBP\r
+       POP EBP\r
+       RETN 4\r
+PUBLIC _ScreenToLPT:\r
+       PUSH EBP\r
+       MOV EBP,ESP\r
+       SUB ESP,12\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-8]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_15\r
+       PUSH OFFSET L_lit+0\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+       JMP L_16\r
+L_15:\r
+       XOR EAX,EAX\r
+       MOV DWORD PTR [EBP-8], EAX\r
+L_17:\r
+       MOV EAX,DWORD PTR [EBP-8]\r
+       CMP EAX,25\r
+       SETL AL\r
+       AND AL,AL\r
+       JZ L_18\r
+       JMP SHORT L_19\r
+L_20:\r
+       MOV EAX,DWORD PTR [EBP-8]\r
+       INC DWORD PTR [EBP-8]\r
+       JMP SHORT L_17\r
+L_19:\r
+       XOR EAX,EAX\r
+       MOV DWORD PTR [EBP-12], EAX\r
+L_21:\r
+       MOV EAX,DWORD PTR [EBP-12]\r
+       CMP EAX,160\r
+       SETL AL\r
+       AND AL,AL\r
+       JZ L_22\r
+       JMP SHORT L_23\r
+L_24:\r
+       MOV EAX,DWORD PTR [EBP-12]\r
+       ADD EAX,2\r
+       MOV DWORD PTR [EBP-12], EAX\r
+       JMP SHORT L_21\r
+L_23:\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       MOV EAX,DWORD PTR [EBP-8]\r
+       MOV ECX,160\r
+       IMUL ECX\r
+       ADD EAX,DWORD PTR [EBP-12]\r
+       MOV ESI,OFFSET _buf\r
+       ADD ESI,EAX\r
+       PUSH ESI\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JNZ L_22\r
+       JMP L_24\r
+L_22:\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       PUSH OFFSET L_lit+21\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       PUSH OFFSET L_lit+23\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JNZ L_18\r
+       JMP L_20\r
+L_18:\r
+       PUSH 3\r
+       PUSH 32\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       PUSH OFFSET L_lit+25\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_27\r
+       PUSH OFFSET L_lit+27\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_27:\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-8]\r
+       PUSH EAX\r
+       CALL FWORD PTR _DeviceOp\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_28\r
+       PUSH OFFSET L_lit+59\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_28:\r
+L_16:\r
+       MOV ESP,EBP\r
+       POP EBP\r
+       RETN\r
+PUBLIC _menu:\r
+       PUSH EBP\r
+       MOV EBP,ESP\r
+       PUSH OFFSET L_lit+88\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH OFFSET L_lit+160\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH OFFSET L_lit+169\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH OFFSET L_lit+228\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH OFFSET L_lit+271\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       POP EBP\r
+       RETN\r
+PUBLIC _main:\r
+       PUSH EBP\r
+       MOV EBP,ESP\r
+       SUB ESP,14\r
+       PUSH OFFSET _ourJob\r
+       CALL FWORD PTR _GetJobNum\r
+       PUSH OFFSET L_lit+318\r
+       PUSH 11\r
+       CALL FWORD PTR _SetJobName\r
+       PUSH OFFSET _Filename\r
+       PUSH 80\r
+       PUSH 32\r
+       CALL FWORD PTR _FillData\r
+       XOR EAX,EAX\r
+       MOV _cbFilename, EAX\r
+       XOR EAX,EAX\r
+       MOV _fToFile, AL\r
+       PUSH OFFSET _AnExch\r
+       CALL FWORD PTR _AllocExch\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_29\r
+       PUSH DWORD PTR [EBP-4]\r
+       CALL FWORD PTR _ExitJob\r
+L_29:\r
+       PUSH 7\r
+       CALL FWORD PTR _SetNormVid\r
+       CALL FWORD PTR _ClrScr\r
+       PUSH OFFSET L_lit+330\r
+       PUSH _ourJob\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+       PUSH OFFSET L_lit+383\r
+       PUSH 2\r
+       PUSH _AnExch\r
+       PUSH OFFSET _rqHndlG\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH OFFSET _keycodeG\r
+       PUSH 4\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       CALL FWORD PTR _Request\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_30\r
+       PUSH OFFSET L_lit+392\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_30:\r
+       PUSH OFFSET L_lit+430\r
+       PUSH 1\r
+       PUSH _AnExch\r
+       PUSH OFFSET _rqHndlK\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH OFFSET _keycode\r
+       PUSH 4\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       CALL FWORD PTR _Request\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_31\r
+       PUSH OFFSET L_lit+439\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_31:\r
+       CALL _menu\r
+L_32:\r
+       MOV EAX,1\r
+       AND EAX,EAX\r
+       JZ L_33\r
+       PUSH _AnExch\r
+       PUSH OFFSET _Message\r
+       CALL FWORD PTR _WaitMsg\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JNZ L_34\r
+       MOV ESI,OFFSET _Message\r
+       MOV EAX,DWORD PTR [ESI]\r
+       CMP EAX,_rqHndlK\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_35\r
+       MOV EAX,_keycode\r
+       AND EAX,127\r
+       MOV BYTE PTR [EBP-13], AL\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [EBP-13]\r
+       JMP L_37\r
+L_38:\r
+       XOR EAX,EAX\r
+       MOV _fToFile, AL\r
+       PUSH OFFSET L_lit+469\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH OFFSET _Filename\r
+       PUSH OFFSET L_lit+511\r
+       CALL _strcpy\r
+       MOV EAX,3\r
+       MOV _cbFilename, EAX\r
+       JMP L_36\r
+L_39:\r
+       PUSH OFFSET L_lit+515\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       LEA EAX,DWORD PTR [EBP-8]\r
+       PUSH EAX\r
+       LEA EAX,DWORD PTR [EBP-12]\r
+       PUSH EAX\r
+       CALL FWORD PTR _GetXY\r
+       PUSH OFFSET _Filename\r
+       PUSH _cbFilename\r
+       PUSH 50\r
+       PUSH OFFSET _cbFilename\r
+       LEA EAX,BYTE PTR [EBP-14]\r
+       PUSH EAX\r
+       PUSH 112\r
+       CALL FWORD PTR _EditLine\r
+       XOR EAX,EAX\r
+       MOV AL,BYTE PTR [EBP-14]\r
+       CMP EAX,13\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_40\r
+       MOV EAX,_cbFilename\r
+L_40:\r
+       AND EAX,EAX\r
+       JZ L_41\r
+       MOV EAX,_cbFilename\r
+       MOV ESI,OFFSET _Filename\r
+       ADD ESI,EAX\r
+       XOR EAX,EAX\r
+       MOV BYTE PTR [ESI], AL\r
+       MOV EAX,1\r
+       MOV _fToFile, AL\r
+       JMP L_42\r
+L_41:\r
+       XOR EAX,EAX\r
+       MOV _fToFile, AL\r
+L_42:\r
+       PUSH OFFSET L_lit+546\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       JMP L_36\r
+L_43:\r
+       PUSH OFFSET L_lit+549\r
+       PUSH 3\r
+       PUSH _AnExch\r
+       PUSH OFFSET _rqHndlG\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH _ourJob\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       CALL FWORD PTR _Request\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       PUSH _AnExch\r
+       PUSH OFFSET _Message\r
+       CALL FWORD PTR _WaitMsg\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       PUSH _AnExch\r
+       CALL FWORD PTR _DeAllocExch\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       CALL _exit\r
+       JMP L_36\r
+L_37:\r
+       CMP EAX,51\r
+       JE L_43\r
+       CMP EAX,50\r
+       JE L_39\r
+       CMP EAX,49\r
+       JE L_38\r
+L_36:\r
+       PUSH OFFSET L_lit+558\r
+       PUSH 1\r
+       PUSH _AnExch\r
+       PUSH OFFSET _rqHndlK\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH OFFSET _keycode\r
+       PUSH 4\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH 1\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       CALL FWORD PTR _Request\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       CALL _menu\r
+       JMP L_44\r
+L_35:\r
+       MOV ESI,OFFSET _Message\r
+       MOV EAX,DWORD PTR [ESI]\r
+       CMP EAX,_rqHndlG\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_45\r
+       MOV EAX,_keycodeG\r
+       AND EAX,255\r
+       CMP EAX,28\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_46\r
+       CALL _CaptureScreen\r
+       CALL _ProcessScreen\r
+       MOVSX EAX,_fToFile\r
+       AND EAX,EAX\r
+       JZ L_47\r
+       PUSH OFFSET _Filename\r
+       PUSH OFFSET L_lit+567\r
+       CALL _fopen\r
+       MOV _fh, EAX\r
+       MOV EAX,_fh\r
+       AND EAX,EAX\r
+       JZ L_48\r
+       PUSH _fh\r
+       CALL _ScreenToFile\r
+       PUSH _fh\r
+       CALL _fclose\r
+       JMP L_49\r
+L_48:\r
+       PUSH OFFSET L_lit+569\r
+       PUSH OFFSET _Filename\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_49:\r
+       JMP L_50\r
+L_47:\r
+       CALL _ScreenToLPT\r
+L_50:\r
+       PUSH OFFSET _printJob\r
+       CALL FWORD PTR _GetVidOwner\r
+       MOVSX EAX,_fToFile\r
+       AND EAX,EAX\r
+       JZ L_51\r
+       PUSH OFFSET L_lit+591\r
+       PUSH OFFSET _Filename\r
+       PUSH _printJob\r
+       MOV EDI, 8\r
+       CALL _printf\r
+       ADD ESP,12\r
+       JMP L_52\r
+L_51:\r
+       PUSH OFFSET L_lit+629\r
+       PUSH _printJob\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_52:\r
+       CALL _menu\r
+L_46:\r
+       PUSH OFFSET L_lit+669\r
+       PUSH 2\r
+       PUSH _AnExch\r
+       PUSH OFFSET _rqHndlG\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       PUSH OFFSET _keycodeG\r
+       PUSH 4\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       CALL FWORD PTR _Request\r
+       MOV DWORD PTR [EBP-4], EAX\r
+L_45:\r
+L_44:\r
+       JMP L_53\r
+L_34:\r
+       PUSH OFFSET L_lit+678\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_53:\r
+       JMP L_32\r
+L_33:\r
+       MOV ESP,EBP\r
+       POP EBP\r
+       RETN 8\r