Macro, constant or function | 32-bit meaning | 64-bit meaning |
is64 | -- | Makes it possible to use "if used is64" macro to enter specific x64 code. |
is32 | Makes it possible to use "if used is32" macro to enter specific x86 code. | -- |
StartProc | -- | Writes parameters passed through a function, called with the Windows/Linux calling convention x64, on stack. |
EndProc | -- | Removes parameters set on stack by StartProc, only functional on Linux x64. |
MakeStack | -- | Creates free space on stack and rounds stack up to 16 bytes to be able to call a function with the Windows calling convention x64. |
ppush | Simply pushes a pointer on stack in Windows. On Linux it first writes the pointer to register EAX and then pushes it on stack. The register is restored after the operation. | Simply pushes a pointer on stack in Windows. On Linux it first writes the pointer to register RAX and then pushes it on stack. The register is restored after the operation. |
pmov | Simply moves a pointer to a memory location on Windows. On Linux it first writes the pointer to register EAX and then writes it to a memory location. The register is restored after the operation. | Simply moves a pointer to a memory location on Windows. On Linux it first writes the pointer to register RAX and then writes it to a memory location. The register is restored after the operation. |
p2mov | Same as pmov, except that you can now chose the register to move the pointer to the memory location in Linux. This is necessary is the pointer is calculated using the value on EAX. | Same as pmov, except that you can now chose the register to move the pointer to the memory location in Linux. This is necessary is the pointer is calculated using the value on RAX. |
argpush | Pushes parameters on stack to be able to call a function with the Windows/Linux calling convention x86. | Writes a parameter to register or on stack to be able to call a function with the Windows/Linux calling convention x64. |
argpushsys | Sets arguments on registers for a Linux syscall. Only used in folder 'linux'. | Sets arguments on registers for a Linux syscall. Only used in folder 'linux'. |
linuxCall | Set Linux syscall number on EAX and calls int 0x80. | Set Linux syscall number on RAX and calls syscall. |
denter | This is a function and is used to start an internal function, it saves the following registers on stack: ESP, EDI, ESI, EBX, EDX, ECX en EBP and moves esp to ebp after one push (first parameter on stack will be on EBP+0x8). | This is an internal function and is used to start an function, it saves the following registers on stack: RSP, RDI, RSI, RBX, RDX, RCX, R12, R13, R14, R15 and RBP and moves rsp to rbp after one push (first parameter on stack will be on RBP+0x10). |
dleave | This is a function and restores the registers pushed on stack by denter. | This is a function and restores the registers pushed on stack by denter. |
lodsp, stosp, movsp, scasp and jpcxz | Will be replaced with instructions: lodsd, stosd, movsd, scasd and jecxz. | Will be replaced with instruction lodsq, stosq, movsq, scasq, jrcxz. |
peax, pecx, pebx, pedx, pedi, pesi, pesi, pebp and pesp | Will be replaced with registers: eax, ecx, ebx, edx, edi, esi, esi, ebp and esp. | Will be replaced with registers: rax, rcx, rbx, rdx, rdi, rsi, rsi, rbp and rsp. |
ClearSpaceForAPI | 0 | The size used on stack by macro MakeStack, which is 8*16 bytes. |
UsedSizeBydEnter | The size used by function denter to place the registers on stack. This is 20 bytes. | The size used by function denter to place the registers on stack. This is 72 bytes. |
FunctionReturnFactor | The size that need to be cleared from stack when returning a Windows/Linux calling convention x86 function. This is 4 bytes per parameter on Windows, 0 bytes on Linux. | The size that need to be cleared from stack when returning a Windows/Linux calling convention x64 function. This is 0 bytes per parameter. |
psize | The size of a pointer, 4 bytes. | The size of a pointer, 8 bytes. |
pointer | The name in fasm to create a dword (4 bytes), 'dd'. | The name in fasm to create a qword (8 bytes), 'dq'. |
pdword | The name in fasm to identify a dword, 'dword'. | The name in fasm to identify a qword, 'qword'. |
Folder | Contents |
. | Contains assembly files from TV's server and it's plugin's, compiled files and an install and uninstall script. |
windows | Contains source that calls and uses Windows API. |
linux | Contains source that calls and uses Linux API. |
test protocols | Plug-ins that where build to test the functionality of TV's server. Run "register_x86.reg" or "register_x64.reg" to register these plug-ins (edit the correct path in these files before running). |
include_tvs_server_plugin_tcp_protocol | Assembly files for the TCP/IP protocol, included by the tvs_server_plugin_tcp_protocol_x**.asm file. |
include_tvs_server_plugin_http | Assembly files for the HTTP protocol, included by the tvs_server_plugin_http_x**.asm file. |
include_tvs_server_plugin_control_panel | Assembly files for Control panel protocol, included by the tvs_server_plugin_control_panel_x**.asm file. |
include_plugin_general | Assembly files included by all plug-ins. |
include_http_protocol | Assembly files included by the http protocol DLL used by the control panel and HTTP plugin-protocol. |
include | Assembly files included mostly by the base and some files are also included by some protocols. |
controlpanel | Html pages that are used by the control panel plugin to build the user interface. |