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

diff --git a/msamples/service/service.asm b/msamples/service/service.asm
new file mode 100644 (file)
index 0000000..f4de558
--- /dev/null
@@ -0,0 +1,238 @@
+\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
+PUBLIC _NextNumber DD 0\r
+L_lit DB 78,85,77,66,69,82,83,32,0,78,85,77,66,69,82,83\r
+ DB 32,83,101,114,118,105,99,101,32,73,110,115,116,97,108,108\r
+ DB 101,100,46,13,10,0,65,78,89,32,118,97,108,105,100,32\r
+ DB 107,101,121,115,116,114,111,107,101,32,119,105,108,108,32,116\r
+ DB 101,114,109,105,110,97,116,101,32,116,104,101,32,115,101,114\r
+ DB 118,105,99,101,46,13,10,0,75,69,89,66,79,65,82,68\r
+ DB 0,69,114,114,111,114,32,111,110,32,75,101,121,98,111,97\r
+ DB 114,100,32,82,101,113,117,101,115,116,58,13,10,0,78,85\r
+ DB 77,66,69,82,83,32,0,78,85,77,66,69,82,83,32,83\r
+ DB 101,114,118,105,99,101,32,103,97,118,101,32,111,117,116,32\r
+ DB 110,117,109,98,101,114,58,32,37,100,46,13,10,0\r
+PUBLIC _pRqBlk DD 0h\r
+PUBLIC _MainExch DD 0h\r
+PUBLIC _Message DD 2 DUP(0)\r
+PUBLIC _rqHndl DD 0h\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,16\r
+       PUSH OFFSET _MainExch\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 DWORD PTR [EBP-4]\r
+       CALL FWORD PTR _ExitJob\r
+L_1:\r
+       PUSH OFFSET L_lit+0\r
+       PUSH _MainExch\r
+       CALL FWORD PTR _RegisterSvc\r
+       MOV DWORD PTR [EBP-4], EAX\r
+       MOV EAX,DWORD PTR [EBP-4]\r
+       AND EAX,EAX\r
+       JZ L_2\r
+       PUSH DWORD PTR [EBP-4]\r
+       CALL FWORD PTR _ExitJob\r
+L_2:\r
+       PUSH 7\r
+       CALL FWORD PTR _SetNormVid\r
+       CALL FWORD PTR _ClrScr\r
+       PUSH OFFSET L_lit+9\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH OFFSET L_lit+38\r
+       MOV EDI, 0\r
+       CALL _printf\r
+       ADD ESP,4\r
+       PUSH OFFSET L_lit+88\r
+       PUSH 1\r
+       PUSH _MainExch\r
+       PUSH OFFSET _rqHndl\r
+       XOR EAX,EAX\r
+       PUSH EAX\r
+       LEA EAX,DWORD PTR [EBP-12]\r
+       PUSH EAX\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_3\r
+       PUSH OFFSET L_lit+97\r
+       PUSH DWORD PTR [EBP-4]\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+L_3:\r
+L_4:\r
+       MOV EAX,1\r
+       AND EAX,EAX\r
+       JZ L_5\r
+       PUSH _MainExch\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_6\r
+       MOV ESI,OFFSET _Message\r
+       MOV EAX,DWORD PTR [ESI]\r
+       CMP EAX,_rqHndl\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_7\r
+       PUSH OFFSET L_lit+126\r
+       CALL FWORD PTR _UnRegisterSvc\r
+L_8:\r
+       PUSH _MainExch\r
+       PUSH OFFSET _Message\r
+       CALL FWORD PTR _CheckMsg\r
+       AND EAX,EAX\r
+       JNZ L_9\r
+       MOV ESI,OFFSET _Message\r
+       MOV EAX,DWORD PTR [ESI]\r
+       MOV _pRqBlk, EAX\r
+       PUSH _pRqBlk\r
+       PUSH 30\r
+       CALL FWORD PTR _Respond\r
+       JMP L_8\r
+L_9:\r
+       PUSH _MainExch\r
+       CALL FWORD PTR _DeAllocExch\r
+       PUSH 4\r
+       CALL FWORD PTR _ExitJob\r
+L_7:\r
+       MOV ESI,OFFSET _Message\r
+       MOV EAX,DWORD PTR [ESI]\r
+       MOV _pRqBlk, EAX\r
+       MOV ESI,_pRqBlk\r
+       MOVSX EAX,WORD PTR [ESI+32]\r
+       XOR ECX,ECX\r
+       CMP EAX,ECX\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_10\r
+       XOR EAX,EAX\r
+       MOV DWORD PTR [EBP-8], EAX\r
+       JMP L_11\r
+L_10:\r
+       MOV ESI,_pRqBlk\r
+       MOVSX EAX,WORD PTR [ESI+32]\r
+       CMP EAX,1\r
+       SETE AL\r
+       AND AL,AL\r
+       JZ L_12\r
+       MOV ESI,_pRqBlk\r
+       MOV EAX,DWORD PTR [ESI+36]\r
+       MOV DWORD PTR [EBP-16], EAX\r
+       MOV ESI,DWORD PTR [EBP-16]\r
+       MOV EAX,_NextNumber\r
+       INC _NextNumber\r
+       MOV DWORD PTR [ESI], EAX\r
+       XOR EAX,EAX\r
+       MOV DWORD PTR [EBP-8], EAX\r
+       PUSH OFFSET L_lit+135\r
+       MOV EAX,_NextNumber\r
+       SUB EAX,1\r
+       PUSH EAX\r
+       MOV EDI, 4\r
+       CALL _printf\r
+       ADD ESP,8\r
+       JMP L_13\r
+L_12:\r
+       MOV EAX,32\r
+       MOV DWORD PTR [EBP-8], EAX\r
+L_13:\r
+L_11:\r
+       PUSH _pRqBlk\r
+       PUSH DWORD PTR [EBP-8]\r
+       CALL FWORD PTR _Respond\r
+       MOV DWORD PTR [EBP-4], EAX\r
+L_6:\r
+       JMP L_4\r
+L_5:\r
+       MOV ESP,EBP\r
+       POP EBP\r
+       RETN\r