V-ExDB.asm
上传用户:santakups8
上传日期:2021-03-23
资源大小:544k
文件大小:3k
源码类别:

模拟服务器

开发平台:

Asm

  1. ;EasyCodeName=Module1,1
  2. ;-----------------------------------------------------------------------------------
  3. ;    VeMU
  4. ;    Its a package that allows the user to set his own server of the game
  5. ;    "MuOnline", this is not an emulator since i am not "emulating"
  6. ;    what the actual games does, i am "creating" a method for set a Server
  7. ;    of this Game.
  8. ;
  9. ;    Copyright (C) 2010  Felipe Ya馿z
  10. ;
  11. ;    This program is free software: you can redistribute it and/or modify
  12. ;    it under the terms of the GNU General Public License as published by
  13. ;    the Free Software Foundation, either version 3 of the License, or
  14. ;    (at your option) any later version.
  15. ;
  16. ;    This program is distributed in the hope that it will be useful,
  17. ;    but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. ;    GNU General Public License for more details.
  20. ;
  21. ;    You should have received a copy of the GNU General Public License
  22. ;    along with this program.  If not, see http://www.gnu.org/licenses/.
  23. ;-----------------------------------------------------------------------------------
  24. ;-----------------------------------------------------------------------------------
  25. ;                        -----------------
  26. ;                             Coded     /
  27. ;                              By      /
  28. ;                           -={FeN$x)=-
  29. ;                         /  Felipe Y.  
  30. ;                        /               
  31. ;                        -----------------
  32. ; Programming Lang: ASM
  33. ; Country: Chile
  34. ;              My respect for all those who lost their lifes
  35. ;              In the earthquake of my country...
  36. ;              Let god take their spirits home...
  37. ;-----------------------------------------------------------------------------------
  38. V_ExDB_ProtocolCore Proto :Dword, :Dword, :Dword
  39. .Const
  40. .Data?
  41. .Data
  42. .Code
  43. V_ExDB_ProtocolCore Proc PacketHeader:DWord, pRecvBuffer:DWord, PacketLength:DWord
  44. .const
  45. ExDBProto_MaxHeader Equ 7BH
  46. .Data
  47. ;===========
  48. ;Case Code
  49. ;===========
  50.   ExDBCaseCode Byte 2 Dup (0, 1)
  51. ;===========
  52. ;jump table
  53. ;===========
  54.  Align 4
  55. ExDBjmpTable DD Offset ExDBCase0
  56.              DD Offset ExDBCase1
  57. .Code
  58. Mov Eax, PacketHeader
  59. .If (Eax > ExDBProto_MaxHeader)
  60. .else
  61.   Xor Ecx, Ecx
  62.   Mov Cl, Byte Ptr [Eax + ExDBCaseCode]
  63.   Jmp DWord Ptr [Ecx * 4 + ExDBjmpTable] ;Jump table optimised C++
  64. ExDBCase0: ;Invalid case, i dont like Case 00
  65.   Jmp ExEndProcedure
  66. ExDBCase1: ;SubHeader 01
  67.   Jmp ExEndProcedure
  68. .endif
  69. ExEndProcedure:
  70.  Ret
  71. V_ExDB_ProtocolCore EndP