--- /dev/null
+\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
+L_lit DB 69,114,114,111,114,32,37,100,32,97,108,108,111,99,97,116\r
+ DB 105,110,103,32,69,120,99,104,97,110,103,101,46,13,10,0\r
+ DB 78,85,77,66,69,82,83,32,0,69,114,114,111,114,32,37\r
+ DB 100,32,102,114,111,109,32,82,101,113,117,101,115,116,46,13\r
+ DB 10,0,69,114,114,111,114,32,37,100,32,102,114,111,109,32\r
+ DB 87,97,105,116,77,115,103,46,13,10,0,69,114,114,111,114\r
+ DB 32,37,100,32,102,114,111,109,32,78,85,77,66,69,82,83\r
+ DB 32,83,101,114,118,105,99,101,46,13,10,0,78,85,77,66\r
+ DB 69,82,83,32,83,101,114,118,105,99,101,32,103,97,118,101\r
+ DB 32,111,117,116,32,110,117,109,98,101,114,58,32,37,100,46\r
+ DB 13,10,0\r
+PUBLIC _Number DD 0h\r
+PUBLIC _Exch DD 0h\r
+PUBLIC _Message DD 2 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
+PUBLIC _main:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,8\r
+ PUSH OFFSET _Exch\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_1\r
+ PUSH OFFSET L_lit+0\r
+ PUSH DWORD PTR [EBP-4]\r
+ MOV EDI, 4\r
+ CALL _printf\r
+ ADD ESP,8\r
+L_1:\r
+ PUSH OFFSET L_lit+32\r
+ PUSH 1\r
+ PUSH _Exch\r
+ LEA EAX,DWORD PTR [EBP-8]\r
+ PUSH EAX\r
+ XOR EAX,EAX\r
+ PUSH EAX\r
+ PUSH OFFSET _Number\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_2\r
+ PUSH OFFSET L_lit+41\r
+ PUSH DWORD PTR [EBP-4]\r
+ MOV EDI, 4\r
+ CALL _printf\r
+ ADD ESP,8\r
+L_2:\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ AND EAX,EAX\r
+ JNZ L_3\r
+ PUSH _Exch\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
+ JZ L_4\r
+ PUSH OFFSET L_lit+66\r
+ PUSH DWORD PTR [EBP-4]\r
+ MOV EDI, 4\r
+ CALL _printf\r
+ ADD ESP,8\r
+ JMP L_5\r
+L_4:\r
+ MOV EAX,4\r
+ MOV ESI,OFFSET _Message\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ JZ L_6\r
+ PUSH OFFSET L_lit+91\r
+ MOV EAX,4\r
+ MOV ESI,OFFSET _Message\r
+ ADD ESI,EAX\r
+ PUSH DWORD PTR [ESI]\r
+ MOV EDI, 4\r
+ CALL _printf\r
+ ADD ESP,8\r
+ JMP L_7\r
+L_6:\r
+ PUSH OFFSET L_lit+124\r
+ PUSH _Number\r
+ MOV EDI, 4\r
+ CALL _printf\r
+ ADD ESP,8\r
+L_7:\r
+L_5:\r
+L_3:\r
+ PUSH _Exch\r
+ CALL FWORD PTR _DeAllocExch\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN\r