diff options
Diffstat (limited to 'newlib/libc/sys/rdos/rdos.S')
-rw-r--r-- | newlib/libc/sys/rdos/rdos.S | 7528 |
1 files changed, 0 insertions, 7528 deletions
diff --git a/newlib/libc/sys/rdos/rdos.S b/newlib/libc/sys/rdos/rdos.S deleted file mode 100644 index d99be7345..000000000 --- a/newlib/libc/sys/rdos/rdos.S +++ /dev/null @@ -1,7528 +0,0 @@ -/*####################################################################### -# RDOS operating system -# Copyright (C) 1988-2006, Leif Ekblad -# -# This library is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation; either version 2.1 of the License, or -# (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# The author of this program may be contacted at leif@rdos.net -# -# rdos.S -# GCC based interface to RDOS kernel -# -##########################################################################*/ - -#include "user.def" - - .macro UserGate nr - .byte 0x9A - .long \nr - .word 2 - .endm - -/*########################################################################## -# -# Name : RdosSwapShort -# -# Purpose....: Byte reverse a short int -# -# Returns....: Result -# -##########################################################################*/ - - .global RdosSwapShort - -RdosSwapShort: - pushl %ebp - movl %esp,%ebp - movw 8(%ebp),%ax - xchgb %ah,%al - leave - ret - - -/*########################################################################## -# -# Name : RdosSwapLong -# -# Purpose....: Byte reverse a long int -# -# Returns....: Result -# -##########################################################################*/ - - .global RdosSwapLong - -RdosSwapLong: - pushl %ebp - movl %esp,%ebp - movl 8(%ebp),%eax - xchgb %ah,%al - roll $16,%eax - xchgb %ah,%al - leave - ret - - -/*########################################################################## -# -# Name : LocalToNetworkLong -# -# Purpose....: Convert a local long to network format -# -# Returns....: Network format -# -##########################################################################*/ - - .global LocalToNetworkLong - -LocalToNetworkLong: - pushl %ebp - movl %esp,%ebp - movl 8(%ebp),%eax - xchgb %ah,%al - roll $16,%eax - xchgb %ah,%al - leave - ret - -/*########################################################################## -# -# Name : NetworkToLocalLong -# -# Purpose....: Convert a network long to local format -# -# Returns....: Local format -# -##########################################################################*/ - - .global NetworkToLocalLong - -NetworkToLocalLong: - pushl %ebp - movl %esp,%ebp - movl 8(%ebp),%eax - xchgb %ah,%al - roll $16,%eax - xchgb %ah,%al - leave - ret - -/*########################################################################## -# -# Name : RdosGetThreadHandle -# -# Purpose....: Get current thread handle -# -# Returns....: Thread ID -# -##########################################################################*/ - - .global RdosGetThreadHandle - -RdosGetThreadHandle: - pushl %ebp - movl %esp,%ebp - UserGate get_thread_nr - movzx %ax,%eax - leave - ret - -/*########################################################################## -# -# Name : RdosGetThreadState -# -# Purpose....: Get thread state -# -# Parameters.: Thread # -# State buffer -# -##########################################################################*/ - - .global RdosGetThreadState - -RdosGetThreadState: - pushl %ebp - movl %esp,%ebp - push %edi - - movl 8(%ebp),%eax - movl 12(%ebp),%edx - UserGate get_thread_state_nr - jc rgtsFail - - movl $1,%eax - jmp rgtsDone - -rgtsFail: - xorl %eax,%eax - -rgtsDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosSuspendThread -# -# Purpose....: Suspend thread -# -# Parameters.: Thread # -# -##########################################################################*/ - - .global RdosSuspendThread - -RdosSuspendThread: - pushl %ebp - movl %esp,%ebp - - movl 8(%ebp),%eax - UserGate suspend_thread_nr - jc rsfFail - - movl $1,%eax - jmp rsfDone - -rsfFail: - xorl %eax,%eax - -rsfDone: - leave - ret - - -/*########################################################################## -# -# Name : RdosExec -# -# Purpose....: Execute a program -# -# Parameters.: Program -# Commandline -# -##########################################################################*/ - - .global RdosExec - -RdosExec: - pushl %ebp - movl %esp,%ebp - pushl %esi - pushl %edi - - movl 8(%ebp),%esi - movl 12(%ebp),%edi - - UserGate load_exe_nr - UserGate get_exit_code_nr - - popl %edi - popl %esi - leave - ret - -/*########################################################################## -# -# Name : RdosSpawn -# -# Purpose....: Create new process and run a program -# -# Parameters.: Program -# Commandline -# StartDir -# -##########################################################################*/ - - .global RdosSpawn - -RdosSpawn: - pushl %ebp - movl %esp,%ebp - pushl %fs - pushl %ebx - pushl %edx - pushl %esi - pushl %edi - - movw %ds,%dx - movw %dx,%fs - xorl %edx,%edx - movl 8(%ebp),%esi - movl 12(%ebp),%edi - movl 16(%ebp),%ebx - UserGate spawn_exe_nr - jc rsFail - - movzx %dx,%eax - jmp rsDone - -rsFail: - xorl %eax,%eax - -rsDone: - popl %edi - popl %esi - popl %edx - popl %ebx - popw %fs - leave - ret - -/*########################################################################## -# -# Name : RdosCpuReset -# -# Purpose....: Cpu reset -# -##########################################################################*/ - - .global RdosCpuReset - -RdosCpuReset: - pushl %ebp - movl %esp,%ebp - UserGate cpu_reset_nr - leave - ret - -/*########################################################################## -# -# Name : RdosGetVersion -# -# Purpose....: Get RDOS version -# -# Parameters.: &major -# &minor -# &release -# -##########################################################################*/ - - .global RdosGetVersion - -RdosGetVersion: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ecx - pushl %edx - pushl %edi - - UserGate get_version_nr - - movzx %dx,%edx - movl 8(%ebp),%edi - movl %edx,(%edi) - - movzx %ax,%eax - movl 12(%ebp),%edi - movl %eax,(%edi) - - movzx %cx,%eax - movl 16(%ebp),%edi - movl %eax,(%edi) - - popl %edi - popl %edx - popl %ecx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosAllocateMem -# -# Purpose....: Allocate memory -# -# Parameters.: Bytes to allocate -# -# Returns....: Memory pointer -# -##########################################################################*/ - - .global RdosAllocateMem - -RdosAllocateMem: - pushl %ebp - movl %esp,%ebp - pushl %edx - - movl 8(%ebp),%eax - UserGate allocate_app_mem_nr - movl %edx,%eax - - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosFreeMem -# -# Purpose....: Free memory -# -# Parameters.: Memory pointer -# -##########################################################################*/ - - .global RdosFreeMem - -RdosFreeMem: - pushl %ebp - movl %esp,%ebp - pushl %edx - - movl 8(%ebp),%edx - UserGate free_app_mem_nr - - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosAppDebug -# -# Purpose....: App debug -# -##########################################################################*/ - - .global RdosAppDebug - -RdosAppDebug: - pushl %ebp - movl %esp,%ebp - UserGate app_debug_nr - leave - ret - -/*########################################################################## -# -# Name : RdosWaitMilli -# -# Purpose....: Wait a number of milliseconds -# -# Parameters.: Milliseconds to wait -# -##########################################################################*/ - - .global RdosWaitMilli - -RdosWaitMilli: - pushl %ebp - movl %esp,%ebp - pushl %eax - - movl 8(%ebp),%eax - UserGate wait_milli_nr - - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosCreateSection -# -# Purpose....: Create section -# -# Returns....: Section handle -# -##########################################################################*/ - - .global RdosCreateSection - -RdosCreateSection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - UserGate create_user_section_nr - movzx %bx,%eax - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDeleteSection -# -# Purpose....: Delete section -# -# Parameters.: Section handle -# -##########################################################################*/ - - .global RdosDeleteSection - -RdosDeleteSection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate delete_user_section_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosEnterSection -# -# Purpose....: Enter section -# -# Parameters.: Section handle -# -##########################################################################*/ - - .global RdosEnterSection - -RdosEnterSection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate enter_user_section_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosLeaveSection -# -# Purpose....: Leave section -# -# Parameters.: Section handle -# -##########################################################################*/ - - .global RdosLeaveSection - -RdosLeaveSection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate leave_user_section_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateWait -# -# Purpose....: Create wait object -# -# Returns....: Wait handle -# -##########################################################################*/ - - .global RdosCreateWait - -RdosCreateWait: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - UserGate create_wait_nr - movzx %bx,%eax - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseWait -# -# Purpose....: Close wait -# -# Parameters.: Wait handle -# -##########################################################################*/ - - .global RdosCloseWait - -RdosCloseWait: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_wait_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCheckWait -# -# Purpose....: Check wait state -# -# Parameters.: Wait handle -# -# Returns....: Signalled ID or 0 -# -##########################################################################*/ - - .global RdosCheckWait - -RdosCheckWait: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - UserGate is_wait_idle_nr - movl %ecx,%eax - - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosWaitForever -# -# Purpose....: Wait forever -# -# Parameters.: Wait handle -# -# Returns....: Signalled ID or 0 -# -##########################################################################*/ - - .global RdosWaitForever - -RdosWaitForever: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - UserGate wait_no_timeout_nr - jc rwfFail - - movl %ecx,%eax - jmp rwfDone - -rwfFail: - xorl %eax,%eax - -rwfDone: - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosWaitTimeout -# -# Purpose....: Wait with timeout -# -# Parameters.: Wait handle -# Timeout in ms -# -# Returns....: Signalled ID or 0 -# -##########################################################################*/ - - .global RdosWaitTimeout - -RdosWaitTimeout: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movl 12(%ebp),%eax - movl $1193,%edx - mull %edx - pushl %edx - pushl %eax - UserGate get_system_time_nr - popl %ebx - addl %ebx,%eax - popl %ebx - adcl %ebx,%edx - movw 8(%ebp),%bx - UserGate wait_timeout_nr - jc rwtFail - - movl %ecx,%eax - jmp rwtDone - -rwtFail: - xorl %eax,%eax - -rwtDone: - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosStopWait -# -# Purpose....: Stop wait -# -# Parameters.: Wait handle -# -##########################################################################*/ - - .global RdosStopWait - -RdosStopWait: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate stop_wait_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosRemoveWait -# -# Purpose....: Remove wait object from wait handle -# -# Parameters.: Wait handle -# ID -# -##########################################################################*/ - - .global RdosRemoveWait - -RdosRemoveWait: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - movl 12(%ebp),%ecx - UserGate remove_wait_nr - - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateSignal -# -# Purpose....: Create signal object -# -# Returns....: Signal handle -# -##########################################################################*/ - - .global RdosCreateSignal - -RdosCreateSignal: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - UserGate create_signal_nr - movzx %bx,%eax - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosResetSignal -# -# Purpose....: Reset signal -# -# Parameters.: Signal handle -# -##########################################################################*/ - - .global RdosResetSignal - -RdosResetSignal: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate reset_signal_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosIsSignalled -# -# Purpose....: Check if signalled -# -# Parameters.: Signal handle -# -# Returns....: TRUE if signalled -# -##########################################################################*/ - - .global RdosIsSignalled - -RdosIsSignalled: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate is_signalled_nr - jc risdFree - - movl $1,%eax - jmp risdDone - -risdFree: - xorl %eax,%eax - -risdDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetSignal -# -# Purpose....: Set signal -# -# Parameters.: Signal handle -# -##########################################################################*/ - - .global RdosSetSignal - -RdosSetSignal: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate set_signal_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosFreeSignal -# -# Purpose....: Free signal handle -# -# Parameters.: Signal handle -# -##########################################################################*/ - - .global RdosFreeSignal - -RdosFreeSignal: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate free_signal_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddWaitForSignal -# -# Purpose....: Add signal object to wait handle -# -# Parameters.: Wait handle -# Signal handle -# ID -# -##########################################################################*/ - - .global RdosAddWaitForSignal - -RdosAddWaitForSignal: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - movw 12(%ebp),%ax - movl 16(%ebp),%ecx - UserGate add_wait_for_signal_nr - - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddWaitForKeyboard -# -# Purpose....: Add keyboard to wait handle -# -# Parameters.: Wait handle -# ID -# -##########################################################################*/ - - .global RdosAddWaitForKeyboard - -RdosAddWaitForKeyboard: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - movl 12(%ebp),%ecx - UserGate add_wait_for_keyboard_nr - - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddWaitForMouse -# -# Purpose....: Add mouse to wait handle -# -# Parameters.: Wait handle -# ID -# -##########################################################################*/ - - .global RdosAddWaitForMouse - -RdosAddWaitForMouse: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - movl 12(%ebp),%ecx - UserGate add_wait_for_mouse_nr - - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddWaitForCom -# -# Purpose....: Add com object to wait handle -# -# Parameters.: Wait handle -# Com handle -# ID -# -##########################################################################*/ - - .global RdosAddWaitForCom - -RdosAddWaitForCom: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - movw 12(%ebp),%ax - movl 16(%ebp),%ecx - UserGate add_wait_for_com_nr - - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddWaitForAdc -# -# Purpose....: Add ADC object to wait handle -# -# Parameters.: Wait handle -# Adc handle -# ID -# -##########################################################################*/ - - .global RdosAddWaitForAdc - -RdosAddWaitForAdc: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - movw 12(%ebp),%ax - movl 16(%ebp),%ecx - UserGate add_wait_for_adc_nr - - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetTextMode -# -# Purpose....: Set text mode -# -##########################################################################*/ - - .global RdosSetTextMode - -RdosSetTextMode: - pushl %ebp - movl %esp,%ebp - - movw $3,%ax - UserGate set_video_mode_nr - - leave - ret - -/*########################################################################## -# -# Name : RdosSetVideoMode -# -# Purpose....: Set video mode -# -# Parameters.: &xres -# &yres -# &linesize -# &LFB -# -# Returns....: Bitmap handle -# -##########################################################################*/ - - .global RdosSetVideoMode - -RdosSetVideoMode: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - - movl 8(%ebp),%edi - movw (%edi),%ax - - movl 12(%ebp),%edi - movw (%edi),%cx - - movl 16(%ebp),%edi - movw (%edi),%dx - - UserGate get_video_mode_nr - jc set_video_fail - - UserGate set_video_mode_nr - jc set_video_fail - - pushl %edi - movl 8(%ebp),%edi - movzx %ax,%eax - movl %eax,(%edi) - - movl 12(%ebp),%edi - movzx %cx,%ecx - movl %ecx,(%edi) - - movl 16(%ebp),%edi - movzx %dx,%edx - movl %edx,(%edi) - - movl 20(%ebp),%edi - movzx %si,%esi - movl %esi,(%edi) - popl %edi - - movl 24(%ebp),%eax - movl %edi,(%eax) - - movzx %bx,%eax - jmp set_video_done - -set_video_fail: - xorl %eax,%eax - movl 8(%ebp),%edi - movl %eax,(%edi) - movl 12(%ebp),%edi - movl %eax,(%edi) - movl 16(%ebp),%edi - movl %eax,(%edi) - movl 20(%ebp),%edi - movl %eax,(%edi) - movl 24(%ebp),%edi - movl %eax,(%edi) - -set_video_done: - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetClipRect -# -# Purpose....: Set clip rectangle -# -# Parameters.: Bitmap handle -# xmin, xmax, ymin, ymax -# -##########################################################################*/ - - .global RdosSetClipRect - -RdosSetClipRect: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - movw 20(%ebp),%si - movw 24(%ebp),%di - UserGate set_clip_rect_nr - - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosClearClipRect -# -# Purpose....: Clear clip rectangle -# -# Parameters.: Bitmap handle -# -##########################################################################*/ - - .global RdosClearClipRect - -RdosClearClipRect: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate clear_clip_rect_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetDrawColor -# -# Purpose....: Set draw color -# -# Parameters.: Bitmap handle -# Color -# -##########################################################################*/ - - .global RdosSetDrawColor - -RdosSetDrawColor: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - - movw 8(%ebp),%bx - movl 12(%ebp),%eax - UserGate set_drawcolor_nr - - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosSetLGOP -# -# Purpose....: Set draw color -# -# Parameters.: Bitmap handle -# LGOP -# -##########################################################################*/ - - .global RdosSetLGOP - -RdosSetLGOP: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - - movw 8(%ebp),%bx - movw 12(%ebp),%ax - UserGate set_lgop_nr - - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosSetHollowStyle -# -# Purpose....: Set hollow fill style -# -# Parameters.: Bitmap handle -# -##########################################################################*/ - - .global RdosSetHollowStyle - -RdosSetHollowStyle: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate set_hollow_style_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetFilledStyle -# -# Purpose....: Set filled fill style -# -# Parameters.: Bitmap handle -# -##########################################################################*/ - - .global RdosSetFilledStyle - -RdosSetFilledStyle: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate set_filled_style_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenFont -# -# Purpose....: Open a font -# -# Parameters.: height -# -# Returns....: Font handle -# -##########################################################################*/ - - .global RdosOpenFont - -RdosOpenFont: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%ax - UserGate open_font_nr - movzx %bx,%eax - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseFont -# -# Purpose....: Close font handle -# -# Parameters.: Font handle -# -##########################################################################*/ - - .global RdosCloseFont - -RdosCloseFont: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_font_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetStringMetrics -# -# Purpose....: Get string metrics for text using font -# -# Parameters.: Font handle -# String -# &width -# &height -# -##########################################################################*/ - - .global RdosGetStringMetrics - -RdosGetStringMetrics: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %edi - - movw 8(%ebp),%bx - movl 12(%ebp),%edi - UserGate get_string_metrics_nr - - movl 16(%ebp),%edi - movzx %cx,%ecx - movl %ecx,(%edi) - - movl 20(%ebp),%edi - movzx %dx,%edx - movl %edx,(%edi) - - popl %edi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetFont -# -# Purpose....: Set font -# -# Parameters.: Bitmap handle -# Font handle -# -##########################################################################*/ - - .global RdosSetFont - -RdosSetFont: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - - movw 8(%ebp),%bx - movw 12(%ebp),%ax - UserGate set_font_nr - - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosGetPixel -# -# Purpose....: Get pixel -# -# Parameters.: Bitmap handle -# x, y -# -##########################################################################*/ - - .global RdosGetPixel - -RdosGetPixel: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - UserGate get_pixel_nr - - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetPixel -# -# Purpose....: Set pixel -# -# Parameters.: Bitmap handle -# x, y -# -##########################################################################*/ - - .global RdosSetPixel - -RdosSetPixel: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - UserGate set_pixel_nr - - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosBlit -# -# Purpose....: Blit -# -# Parameters.: SrcHandle -# DestHandle -# width, height -# SrcX, SrcY -# DestX, DestY -# -##########################################################################*/ - - .global RdosBlit - -RdosBlit: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi -; - movw 8(%ebp),%ax - movw 12(%ebp),%bx - movw 16(%ebp),%cx - movw 20(%ebp),%dx - movw 28(%ebp),%si - shll $16,%esi - movw 24(%ebp),%si - movw 36(%ebp),%di - shll $16,%edi - movw 32(%ebp),%di - UserGate blit_nr - - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosDrawMask -# -# Purpose....: Draw mask -# -# Parameters.: Bitmap handle -# mask -# RowSize -# width, height -# SrcX, SrcY -# DestX, DestY -# -##########################################################################*/ - - .global RdosDrawMask - -RdosDrawMask: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi -; - movw 8(%ebp),%bx - movl 12(%ebp),%edi - movw 16(%ebp),%ax - movw 24(%ebp),%si - shll $16,%esi - movw 20(%ebp),%si - movw 32(%ebp),%cx - shll $16,%ecx - movw 28(%ebp),%cx - movw 40(%ebp),%dx - shll $16,%edx - movw 36(%ebp),%dx - UserGate draw_mask_nr - - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosDrawLine -# -# Purpose....: Draw a line -# -# Parameters.: Bitmap handle -# x1, y1 -# x2, y2 -# -##########################################################################*/ - - .global RdosDrawLine - -RdosDrawLine: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi -; - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - movw 20(%ebp),%si - movw 24(%ebp),%di - UserGate draw_line_nr - - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDrawString -# -# Purpose....: Draw a string -# -# Parameters.: Bitmap handle -# x, y -# string -# -##########################################################################*/ - - .global RdosDrawString - -RdosDrawString: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %edi -; - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - movl 20(%ebp),%edi - UserGate draw_string_nr - - popl %edi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDrawRect -# -# Purpose....: Draw a rect -# -# Parameters.: Bitmap handle -# x, y -# width, height -# -##########################################################################*/ - - .global RdosDrawRect - -RdosDrawRect: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - movw 20(%ebp),%si - movw 24(%ebp),%di - UserGate draw_rect_nr - - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDrawEllipse -# -# Purpose....: Draw an ellipse -# -# Parameters.: Bitmap handle -# x, y -# width, height -# -##########################################################################*/ - - .global RdosDrawEllipse - -RdosDrawEllipse: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - movw 20(%ebp),%si - movw 24(%ebp),%di - UserGate draw_ellipse_nr - - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateBitmap -# -# Purpose....: Create a bitmap -# -# Parameters.: BitsPerPixel -# width, height -# -# Returns....: Bitmap handle -# -##########################################################################*/ - - .global RdosCreateBitmap - -RdosCreateBitmap: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movw 8(%ebp),%ax - movw 12(%ebp),%cx - movw 16(%ebp),%dx - UserGate create_bitmap_nr - movzx %bx,%eax -; - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDuplicateBitmapHandle -# -# Purpose....: Duplicate bitmap handle for use in another thread / object -# -# Parameters.: Bitmap handle -# -# Returns....: Bitmap handle -# -##########################################################################*/ - - .global RdosDuplicateBitmapHandle - -RdosDuplicateBitmapHandle: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate dup_bitmap_handle_nr - movzx %bx,%eax - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseBitmap -# -# Purpose....: Close bitmap handle -# -# Parameters.: Bitmap handle -# -##########################################################################*/ - - .global RdosCloseBitmap - -RdosCloseBitmap: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_bitmap_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateStringBitmap -# -# Purpose....: Create bitmap from string & font -# -# Parameters.: Font -# string -# -# Returns....: Bitmap handle -# -##########################################################################*/ - - .global RdosCreateStringBitmap - -RdosCreateStringBitmap: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movw 8(%ebp),%bx - movl 12(%ebp),%edi - UserGate create_string_bitmap_nr - movzx %bx,%eax -; - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetBitmapInfo -# -# Purpose....: Get info about bitmap -# -# Parameters.: Bitmap handle -# &BitsPerPixel -# &width, &height -# &linesize -# &LFB -# -##########################################################################*/ - - .global RdosGetBitmapInfo - -RdosGetBitmapInfo: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - - movw 8(%ebp),%bx - UserGate get_bitmap_info_nr - jc gbiFail - - pushl %edi - movl 12(%ebp),%edi - movzx %al,%eax - movl %eax,(%edi) - - movl 16(%ebp),%edi - movzx %cx,%ecx - movl %ecx,(%edi) - - movl 20(%ebp),%edi - movzx %dx,%edx - movl %edx,(%edi) - - movl 24(%ebp),%edi - movzx %si,%esi - movl %esi,(%edi) - popl %edi - - movl 28(%ebp),%eax - movl %edi,(%eax) - jmp gbiDone - -gbiFail: - xorl %eax,%eax - movl 12(%ebp),%edi - movl %eax,(%edi) - - movl 16(%ebp),%edi - movl %eax,(%edi) - - movl 20(%ebp),%edi - movl %eax,(%edi) - - movl 24(%ebp),%edi - movl %eax,(%edi) - - movl 28(%ebp),%edi - movl %eax,(%edi) - -gbiDone: - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosCreateSprite -# -# Purpose....: Create a sprite -# -# Parameters.: dest -# bitmap -# mask -# LGOP -# -# Returns....: Sprite handle -# -##########################################################################*/ - - .global RdosCreateSprite - -RdosCreateSprite: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - movw 20(%ebp),%ax - UserGate create_sprite_nr - movzx %bx,%eax - - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseSprite -# -# Purpose....: Close sprite handle -# -# Parameters.: Sprite handle -# -##########################################################################*/ - - .global RdosCloseSprite - -RdosCloseSprite: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_sprite_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosShowSprite -# -# Purpose....: Show sprite -# -# Parameters.: Sprite handle -# -##########################################################################*/ - - .global RdosShowSprite - -RdosShowSprite: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate show_sprite_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosHideSprite -# -# Purpose....: Hide sprite -# -# Parameters.: Sprite handle -# -##########################################################################*/ - - .global RdosHideSprite - -RdosHideSprite: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate hide_sprite_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosMoveSprite -# -# Purpose....: Move sprite -# -# Parameters.: Sprite handle -# x, y -# -##########################################################################*/ - - .global RdosMoveSprite - -RdosMoveSprite: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movw 8(%ebp),%bx - movw 12(%ebp),%cx - movw 16(%ebp),%dx - UserGate move_sprite_nr - - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetForeColor -# -# Purpose....: Set text-mode fore color -# -# Parameters.: palette index -# -##########################################################################*/ - - .global RdosSetForeColor - -RdosSetForeColor: - pushl %ebp - movl %esp,%ebp - pushl %eax - - movb 8(%ebp),%al - UserGate set_forecolor_nr - - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosSetBackColor -# -# Purpose....: Set text-mode back color -# -# Parameters.: palette index -# -##########################################################################*/ - - .global RdosSetBackColor - -RdosSetBackColor: - pushl %ebp - movl %esp,%ebp - pushl %eax - - movb 8(%ebp),%al - UserGate set_backcolor_nr - - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosGetSysTime -# -# Purpose....: Get system time -# -# Parameters.: &year, &month, &day -# &hour, &min, &sec, &ms -# -##########################################################################*/ - - .global RdosGetSysTime - -RdosGetSysTime: - pushl %ebp - movl %esp,%ebp - pushal - - UserGate get_system_time_nr - pushl %eax - UserGate binary_to_time_nr - pushl %edx - - movl 8(%ebp),%esi - movzx %dx,%edx - movl %edx,(%esi) - - movl 12(%ebp),%esi - movzx %ch,%edx - movl %edx,(%esi) - - movl 16(%ebp),%esi - movzx %cl,%edx - movl %edx,(%esi) - - movl 20(%ebp),%esi - movzx %bh,%edx - movl %edx,(%esi) - - movl 24(%ebp),%esi - movzx %bl,%edx - movl %edx,(%esi) - - movl 28(%ebp),%esi - movzx %ah,%edx - movl %edx,(%esi) - - popl %edx - UserGate time_to_binary_nr - movl %eax,%ebx - popl %eax - subl %ebx,%eax - xorl %edx,%edx - movl $1192,%ebx - divl %ebx - - movl 32(%ebp),%esi - movzx %ax,%eax - movl %eax,(%esi) - - popal - leave - ret - -/*########################################################################## -# -# Name : RdosGetTime -# -# Purpose....: Get time -# -# Parameters.: &year, &month, &day -# &hour, &min, &sec, &ms -# -##########################################################################*/ - - .global RdosGetTime - -RdosGetTime: - pushl %ebp - movl %esp,%ebp - pushal - - UserGate get_time_nr - pushl %eax - UserGate binary_to_time_nr - pushl %edx - - movl 8(%ebp),%esi - movzx %dx,%edx - movl %edx,(%esi) - - movl 12(%ebp),%esi - movzx %ch,%edx - movl %edx,(%esi) - - movl 16(%ebp),%esi - movzx %cl,%edx - movl %edx,(%esi) - - movl 20(%ebp),%esi - movzx %bh,%edx - movl %edx,(%esi) - - movl 24(%ebp),%esi - movzx %bl,%edx - movl %edx,(%esi) - - movl 28(%ebp),%esi - movzx %ah,%edx - movl %edx,(%esi) - - popl %edx - UserGate time_to_binary_nr - movl %eax,%ebx - popl %eax - subl %ebx,%eax - xorl %edx,%edx - movl $1192,%ebx - divl %ebx - - movl 32(%ebp),%esi - movzx %ax,%eax - movl %eax,(%esi) - - popal - leave - ret - -/*########################################################################## -# -# Name : RdosSetTime -# -# Purpose....: Set time -# -# Parameters.: year, month, day -# hour, min, sec, ms -# -##########################################################################*/ - - .global RdosSetTime - -RdosSetTime: - pushl %ebp - movl %esp,%ebp - pushal - - movw 8(%ebp),%dx - movb 12(%ebp),%ch - movb 16(%ebp),%cl - movb 20(%ebp),%bh - movb 24(%ebp),%bl - movb 28(%ebp),%ah - UserGate time_to_binary_nr - - movl %edx,%edi - movl %eax,%esi - - movl 32(%ebp),%eax - movl $1192,%edx - mull %edx - addl %eax,%esi - adcl $0,%edi - - UserGate get_system_time_nr - subl %eax,%esi - sbbl %edx,%edi - movl %esi,%eax - movl %edi,%edx - UserGate update_time_nr - - popal - leave - ret - -/*########################################################################## -# -# Name : RdosTicsToRecord -# -# Purpose....: Convert tics to record format -# -# Parameters.: MSB, LSB -# &year, &month, &day -# &hour, &min, &sec, &ms -# -##########################################################################*/ - - .global RdosTicsToRecord - -RdosTicsToRecord: - pushl %ebp - movl %esp,%ebp - pushal - - movl 8(%ebp),%edx - movl 12(%ebp),%eax - addl $596,%eax - adcl $0,%edx - UserGate binary_to_time_nr - pushl %edx - - movl 16(%ebp),%esi - movzx %dx,%edx - movl %edx,(%esi) - - movl 20(%ebp),%esi - movzx %ch,%edx - movl %edx,(%esi) - - movl 24(%ebp),%esi - movzx %cl,%edx - movl %edx,(%esi) - - movl 28(%ebp),%esi - movzx %bh,%edx - movl %edx,(%esi) - - movl 32(%ebp),%esi - movzx %bl,%edx - movl %edx,(%esi) - - movl 36(%ebp),%esi - movzx %ah,%edx - movl %edx,(%esi) - - popl %edx - UserGate time_to_binary_nr - movl %eax,%ebx - movl 12(%ebp),%eax - subl %edx,%eax - xorl %edx,%edx - movl $1192,%ebx - divl %ebx - - movl 40(%ebp),%esi - cmpw %ax,1000 - jne rttrSaveMs - - decw %ax - -rttrSaveMs: - movzx %ax,%eax - movl %eax,(%esi) - - popal - leave - ret - -/*########################################################################## -# -# Name : RdosRecordToTics -# -# Purpose....: Convert from record format to tics -# -# Parameters.: &MSB, &LSB -# year, month, day -# hour, min, sec, ms -# -##########################################################################*/ - - .global RdosRecordToTics - -RdosRecordToTics: - pushl %ebp - movl %esp,%ebp - pushal - - movl 40(%ebp),%eax - movl $1192,%edx - mull %edx - pushl %eax - movw 16(%ebp),%dx - movb 20(%ebp),%ch - movb 24(%ebp),%cl - movb 28(%ebp),%bh - movb 32(%ebp),%bl - movb 36(%ebp),%ah - UserGate time_to_binary_nr - popl %ebx - addl %ebx,%eax - adcl $0,%edx - - movl 8(%ebp),%esi - movl %edx,(%esi) - - movl 12(%ebp),%esi - movl %eax,(%esi) - - popal - leave - ret - -/*########################################################################## -# -# Name : RdosDecodeMsbTics -# -# Purpose....: Decode MSB tics -# -# Parameters.: MSB -# &day, &hour -# -##########################################################################*/ - - .global RdosDecodeMsbTics - -RdosDecodeMsbTics: - pushl %ebp - movl %esp,%ebp - pushal - - movl 8(%ebp),%eax - xorl %edx,%edx - movl $24,%ecx - divl %ecx - - movl 12(%ebp),%ebx - movl %eax,(%ebx) - - movl 16(%ebp),%ebx - movl %edx,(%ebx) - - popal - leave - ret - -/*########################################################################## -# -# Name : RdosDecodeLsbTics -# -# Purpose....: Decode LSB tics -# -# Parameters.: LSB -# &min, &sec, &ms, &us -# -##########################################################################*/ - - .global RdosDecodeLsbTics - -RdosDecodeLsbTics: - pushl %ebp - movl %esp,%ebp - pushal - - movl 8(%ebp),%eax - movl $60,%edx - mull %edx - movl 12(%ebp),%ebx - movl %edx,(%ebx) - - movl $60,%edx - mull %edx - movl 16(%ebp),%ebx - movl %edx,(%ebx) - - movl $1000,%edx - mull %edx - movl 20(%ebp),%ebx - movl %edx,(%ebx) - - movl $1000,%edx - mull %edx - movl 24(%ebp),%ebx - movl %edx,(%ebx) - - popal - leave - ret - -/*########################################################################## -# -# Name : RdosDayOfWeek -# -# Purpose....: Get day of week -# -# Parameters.: year, month, day -# -# Returns....: day of week -# -##########################################################################*/ - - .global RdosDayOfWeek - -RdosDayOfWeek: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movl 8(%ebp),%edx - movb 12(%ebp),%ch - movb 16(%ebp),%cl - xorw %bx,%bx - xorb %ah,%ah - UserGate adjust_time_nr - pushw %dx - movl $365,%eax - imulw %dx - pushw %dx - pushw %ax - popl %ebx - popw %dx - UserGate passed_days_nr - decw %dx - shrw $2,%dx - incw %dx - addw %dx,%ax - addl %ebx,%eax - xorl %edx,%edx - addl $5,%eax - movl $7,%ebx - divl %ebx - movzx %dl,%eax - - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetTics -# -# Purpose....: Get system tics -# -# Parameters.: &MSB, &LSB -# -##########################################################################*/ - - .global RdosGetTics - -RdosGetTics: - pushl %ebp - movl %esp,%ebp - pushl %edx - pushl %esi - - UserGate get_time_nr - movl 8(%ebp),%esi - movl %edx,(%esi) - movl 12(%ebp),%esi - movl %eax,(%esi) - - popl %esi - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosAddTics -# -# Purpose....: Add tics to binary time -# -# Parameters.: &MSB, &LSB -# tics -# -##########################################################################*/ - - .global RdosAddTics - -RdosAddTics: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 16(%ebp),%eax - movl 12(%ebp),%ebx - addl %eax,(%ebx) - movl 8(%ebp),%ebx - adcl $0,(%ebx) - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddMilli -# -# Purpose....: Add milliseconds to binary time -# -# Parameters.: &MSB, &LSB -# milli -# -##########################################################################*/ - - .global RdosAddMilli - -RdosAddMilli: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 16(%ebp),%eax - movl $1193,%edx - mull %edx - movl 12(%ebp),%ebx - addl %eax,(%ebx) - movl 8(%ebp),%ebx - adcl %edx,(%ebx) - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddSec -# -# Purpose....: Add milliseconds to binary time -# -# Parameters.: &MSB, &LSB -# sec -# -##########################################################################*/ - - .global RdosAddSec - -RdosAddSec: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 16(%ebp),%eax - movl $1193000,%edx - mull %edx - movl 12(%ebp),%ebx - addl %eax,(%ebx) - movl 8(%ebp),%ebx - adcl %edx,(%ebx) - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddMin -# -# Purpose....: Add minutes to binary time -# -# Parameters.: &MSB, &LSB -# min -# -##########################################################################*/ - - .global RdosAddMin - -RdosAddMin: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 16(%ebp),%eax - movl $71582760,%edx - mull %edx - movl 12(%ebp),%ebx - addl %eax,(%ebx) - movl 8(%ebp),%ebx - adcl %edx,(%ebx) - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddHour -# -# Purpose....: Add hour to binary time -# -# Parameters.: &MSB, &LSB -# hour -# -##########################################################################*/ - - .global RdosAddHour - -RdosAddHour: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 16(%ebp),%eax - movl 8(%ebp),%ebx - adc %eax,(%ebx) - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddDay -# -# Purpose....: Add days to binary time -# -# Parameters.: &MSB, &LSB -# days -# -##########################################################################*/ - - .global RdosAddDay - -RdosAddDay: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 16(%ebp),%eax - movl $24,%edx - mull %edx - movl 8(%ebp),%ebx - adc %eax,(%ebx) - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSyncTime -# -# Purpose....: Synchronize time with NTP -# -# Parameters.: IP -# -##########################################################################*/ - - .global RdosSyncTime - -RdosSyncTime: - pushl %ebp - movl %esp,%ebp - pushal - - movl 8(%ebp),%edx - UserGate sync_time_nr - jc RdosSyncTimeFail - - movl $1,%eax - jmp RdosSyncTimeDone - -RdosSyncTimeFail: - xorl %eax,%eax - -RdosSyncTimeDone: - popal - leave - ret - -/*########################################################################## -# -# Name : RdosOpenCom -# -# Purpose....: Open com-port -# -# Parameters.: ID -# baudrate -# parity -# data bits -# stop bits -# SendBufferSize -# RecBufferSize -# -# Returns...: Com handle -# -##########################################################################*/ - - .global RdosOpenCom - -RdosOpenCom: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - - movb 8(%ebp),%al - movb 20(%ebp),%ah - movb 24(%ebp),%bl - movb 16(%ebp),%bh - movl 12(%ebp),%ecx - movw 28(%ebp),%si - movw 32(%ebp),%di - UserGate open_com_nr - movzx %bx,%eax - - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseCom -# -# Purpose....: Close com-port -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosCloseCom - -RdosCloseCom: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_com_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosFlushCom -# -# Purpose....: Flush com-port -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosFlushCom - -RdosFlushCom: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate flush_com_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosReadCom -# -# Purpose....: Read com-port -# -# Parameters.: Com handle -# -# Returns....: Character -# -##########################################################################*/ - - .global RdosReadCom - -RdosReadCom: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate read_com_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteCom -# -# Purpose....: Write com-port -# -# Parameters.: Com handle -# char -# -# Returns....: 0 for success -# -##########################################################################*/ - - .global RdosWriteCom - -RdosWriteCom: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - movb 12(%ebp),%al - UserGate write_com_nr - movzx %al,%eax - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosWaitForSendCompletedCom -# -# Purpose....: Wait until send buffer is empty -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosWaitForSendCompletedCom - -RdosWaitForSendCompletedCom: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate wait_for_send_completed_com_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosEnableCts -# -# Purpose....: Enable CTS signal -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosEnableCts - -RdosEnableCts: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate enable_cts_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDisableCts -# -# Purpose....: Disable CTS signal -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosDisableCts - -RdosDisableCts: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate disable_cts_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosEnableAutoRts -# -# Purpose....: Enable auto RTS signal generation for RS485 -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosEnableAutoRts - -RdosEnableAutoRts: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate enable_auto_rts_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDisableAutoRts -# -# Purpose....: Disable auto RTS signal generation for RS485 -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosDisableAutoRts - -RdosDisableAutoRts: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate disable_auto_rts_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetDtr -# -# Purpose....: Set DTR active -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosSetDtr - -RdosSetDtr: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate set_dtr_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosResetDtr -# -# Purpose....: Set DTR inactive -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosResetDtr - -RdosResetDtr: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate reset_dtr_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetRts -# -# Purpose....: Set RTS active -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosSetRts - -RdosSetRts: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate set_rts_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosResetRts -# -# Purpose....: Set RTS inactive -# -# Parameters.: Com handle -# -##########################################################################*/ - - .global RdosResetRts - -RdosResetRts: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate reset_rts_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetReceiveBufferSpace -# -# Purpose....: Get receive buffer free space -# -# Parameters.: Com handle -# -# Returns....: Free bytes -# -##########################################################################*/ - - .global RdosGetReceiveBufferSpace - -RdosGetReceiveBufferSpace: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_com_receive_space_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetSendBufferSpace -# -# Purpose....: Get send buffer free space -# -# Parameters.: Com handle -# -# Returns....: Free bytes -# -##########################################################################*/ - - .global RdosGetSendBufferSpace - -RdosGetSendBufferSpace: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_com_send_space_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenFile -# -# Purpose....: Open file -# -# Parameters.: Filename -# Access -# -# Returns...: File handle -# -##########################################################################*/ - - .global RdosOpenFile - -RdosOpenFile: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - movb 12(%ebp),%cl - UserGate open_file_nr - jc OpenFileFailed - - movzx %bx,%eax - jmp OpenFileDone - -OpenFileFailed: - xorl %eax,%eax - -OpenFileDone: - popl %edi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateFile -# -# Purpose....: Create file -# -# Parameters.: Filename -# Attribute -# -# Returns...: File handle -# -##########################################################################*/ - - .global RdosCreateFile - -RdosCreateFile: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - movw 12(%ebp),%cx - UserGate create_file_nr - jc CreateFileFailed - - movzx %bx,%eax - jmp CreateFileDone - -CreateFileFailed: - xorl %eax,%eax - -CreateFileDone: - popl %edi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseFile -# -# Purpose....: Close file -# -# Parameters.: File handle -# -##########################################################################*/ - - .global RdosCloseFile - -RdosCloseFile: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_file_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosIsDevice -# -# Purpose....: Check if file is device -# -# Parameters.: TRUE if device -# -##########################################################################*/ - - .global RdosIsDevice - -RdosIsDevice: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_ioctl_data_nr - testw $0x8000,%dx - jz ridFail - - movl $1,%eax - jmp ridDone - -ridFail: - xorl %eax,%eax - -ridDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDuplFile -# -# Purpose....: Duplicate file handle -# -# Parameters.: File handle -# -# Returns....: File handle -# -##########################################################################*/ - - .global RdosDuplFile - -RdosDuplFile: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate dupl_file_nr - jc DuplFileFailed - - movzx %bx,%eax - jmp DuplFileDone - -DuplFileFailed: - xorl %eax,%eax - -DuplFileDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetFileSize -# -# Purpose....: Get file size -# -# Parameters.: File handle -# -# Returns....: Size -# -##########################################################################*/ - - .global RdosGetFileSize - -RdosGetFileSize: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_file_size_nr - jnc GetFileSizeDone - -GetFileSizeFail: - xorl %eax,%eax - -GetFileSizeDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetFileSize -# -# Purpose....: Set file size -# -# Parameters.: File handle -# Size -# -##########################################################################*/ - - .global RdosSetFileSize - -RdosSetFileSize: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - - movw 8(%ebp),%bx - movl 12(%ebp),%eax - UserGate set_file_size_nr - - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosGetFilePos -# -# Purpose....: Get file position -# -# Parameters.: File handle -# -# Returns....: Position -# -##########################################################################*/ - - .global RdosGetFilePos - -RdosGetFilePos: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_file_pos_nr - jnc GetFilePosDone - -GetFilePosFail: - xorl %eax,%eax - -GetFilePosDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetFilePos -# -# Purpose....: Set file position -# -# Parameters.: File handle -# Position -# -##########################################################################*/ - - .global RdosSetFilePos - -RdosSetFilePos: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - - movw 8(%ebp),%bx - movl 12(%ebp),%eax - UserGate set_file_pos_nr - - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosGetFileTime -# -# Purpose....: Get file time & date -# -# Parameters.: File handle -# &MSB, &LSB -# -##########################################################################*/ - - .global RdosGetFileTime - -RdosGetFileTime: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movw 8(%ebp),%bx - UserGate get_file_time_nr - jc GetFileTimeDone - - movl 12(%ebp),%edi - movl %edx,(%edi) - - movl 16(%ebp),%edi - movl %eax,(%edi) - -GetFileTimeDone: - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetFileTime -# -# Purpose....: Set file time & date -# -# Parameters.: File handle -# MSB, LSB -# -##########################################################################*/ - - .global RdosSetFileTime - -RdosSetFileTime: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - pushl %edx - - movw 8(%ebp),%bx - movl 12(%ebp),%edx - movl 16(%ebp),%eax - UserGate set_file_time_nr - - popl %edx - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosReadFile -# -# Purpose....: Read from file -# -# Parameters.: File handle -# buffer -# count -# -# Returns....: Read count -# -##########################################################################*/ - - .global RdosReadFile - -RdosReadFile: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edi - - movw 8(%ebp),%bx - movl 12(%ebp),%edi - movl 16(%ebp),%ecx - UserGate read_file_nr - - popl %edi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteFile -# -# Purpose....: Write to file -# -# Parameters.: File handle -# buffer -# count -# -# Returns....: Written count -# -##########################################################################*/ - - .global RdosWriteFile - -RdosWriteFile: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edi - - movw 8(%ebp),%bx - movl 12(%ebp),%edi - movl 16(%ebp),%ecx - UserGate write_file_nr - - popl %edi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateMapping -# -# Purpose....: Create file mapping -# -# Parameters.: Size -# -# Returns...: Filemap handle -# -##########################################################################*/ - - .global RdosCreateMapping - -RdosCreateMapping: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 8(%ebp),%eax - UserGate create_mapping_nr - movzx %bx,%eax - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateNamedMapping -# -# Purpose....: Create named file mapping -# -# Parameters.: Name -# Size -# -# Returns...: Filemap handle -# -##########################################################################*/ - - .global RdosCreateNamedMapping - -RdosCreateNamedMapping: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movl 8(%ebp),%edi - movl 12(%ebp),%eax - UserGate create_named_mapping_nr - movzx %bx,%eax - - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateNamedFileMapping -# -# Purpose....: Create file named file mapping -# -# Parameters.: Name -# Size -# File handle -# -# Returns...: Filemap handle -# -##########################################################################*/ - - .global RdosCreateNamedFileMapping - -RdosCreateNamedFileMapping: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movl 8(%ebp),%edi - movl 12(%ebp),%eax - movw 16(%ebp),%bx - UserGate create_named_file_mapping_nr - movzx %bx,%eax - - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenNamedMapping -# -# Purpose....: Open named file mapping -# -# Parameters.: Name -# -# Returns...: Filemap handle -# -##########################################################################*/ - - .global RdosOpenNamedMapping - -RdosOpenNamedMapping: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movl 8(%ebp),%edi - UserGate open_named_mapping_nr - movzx %bx,%eax - - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSyncMapping -# -# Purpose....: Sync file mapping -# -# Parameters.: Filemap handle -# -##########################################################################*/ - - .global RdosSyncMapping - -RdosSyncMapping: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate sync_mapping_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseMapping -# -# Purpose....: Close file mapping -# -# Parameters.: Filemap handle -# -##########################################################################*/ - - .global RdosCloseMapping - -RdosCloseMapping: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_mapping_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosMapView -# -# Purpose....: Map view of file into memory -# -# Parameters.: Filemap handle -# Offset -# Address -# Size -# -##########################################################################*/ - - .global RdosMapView - -RdosMapView: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edi - - movw 8(%ebp),%bx - movl 12(%ebp),%eax - movl 16(%ebp),%edi - movl 20(%ebp),%ecx - UserGate map_view_nr - - popl %edi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosUnmapView -# -# Purpose....: Unmap view of file -# -# Parameters.: Filemap handle -# -##########################################################################*/ - - .global RdosUnmapView - -RdosUnmapView: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate unmap_view_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetCurDrive -# -# Purpose....: Set current drive -# -# Parameters.: Drive -# -##########################################################################*/ - - .global RdosSetCurDrive - -RdosSetCurDrive: - pushl %ebp - movl %esp,%ebp - - movb 8(%ebp),%al - UserGate set_cur_drive_nr - jc rscdrFail - - movl $1,%eax - jmp rscdrDone - -rscdrFail: - xorl %eax,%eax - -rscdrDone: - leave - ret - -/*########################################################################## -# -# Name : RdosGetCurDrive -# -# Purpose....: Get current drive -# -# Returns....: Drive -# -##########################################################################*/ - - .global RdosGetCurDrive - -RdosGetCurDrive: - pushl %ebp - movl %esp,%ebp - - xorl %eax,%eax - UserGate get_cur_drive_nr - movzx %al,%eax - - leave - ret - -/*########################################################################## -# -# Name : RdosSetCurDir -# -# Purpose....: Set current directory -# -# Parameters.: Pathname -# -##########################################################################*/ - - .global RdosSetCurDir - -RdosSetCurDir: - pushl %ebp - movl %esp,%ebp - pushl %edi - - movl 8(%ebp),%edi - UserGate set_cur_dir_nr - jc rscdFail - - movl $1,%eax - jmp rscdDone - -rscdFail: - xorl %eax,%eax - -rscdDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosGetCurDir -# -# Purpose....: Get current directory -# -# Parameters.: Drive -# Pathname -# -##########################################################################*/ - - .global RdosGetCurDir - -RdosGetCurDir: - pushl %ebp - movl %esp,%ebp - pushl %edi - - movb 8(%ebp),%al - movl 12(%ebp),%edi - UserGate get_cur_dir_nr - jc rgcdFail - - movl $1,%eax - jmp rgcdDone - -rgcdFail: - xorl %eax,%eax - -rgcdDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosMakeDir -# -# Purpose....: Create directory -# -# Parameters.: Pathname -# -##########################################################################*/ - - .global RdosMakeDir - -RdosMakeDir: - pushl %ebp - movl %esp,%ebp - pushl %edi - - movl 8(%ebp),%edi - UserGate make_dir_nr - jc mdFail - - movl $1,%eax - jmp mdDone - -mdFail: - xorl %eax,%eax - -mdDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosRemoveDir -# -# Purpose....: Remove directory -# -# Parameters.: Pathname -# -##########################################################################*/ - - .global RdosRemoveDir - -RdosRemoveDir: - pushl %ebp - movl %esp,%ebp - pushl %edi - - movl 8(%ebp),%edi - UserGate remove_dir_nr - jc rdFail - - movl $1,%eax - jmp rdDone - -rdFail: - xorl %eax,%eax - -rdDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosRenameFile -# -# Purpose....: Rename file -# -# Parameters.: ToName -# FromName -# -##########################################################################*/ - - .global RdosRenameFile - -RdosRenameFile: - pushl %ebp - movl %esp,%ebp - pushl %esi - pushl %edi - - movl 8(%ebp),%edi - movl 12(%ebp),%esi - UserGate rename_file_nr - jc rfFail - - mov $1,%eax - jmp rfDone - -rfFail: - xorl %eax,%eax - -rfDone: - popl %edi - popl %esi - leave - ret - -/*########################################################################## -# -# Name : RdosDeleteFile -# -# Purpose....: Delete file -# -# Parameters.: Pathname -# -##########################################################################*/ - - .global RdosDeleteFile - -RdosDeleteFile: - pushl %ebp - movl %esp,%ebp - pushl %edi - - movl 8(%ebp),%edi - UserGate delete_file_nr - jc dfFail - - mov $1,%eax - jmp dfDone - -dfFail: - xorl %eax,%eax - -dfDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosGetFileAttribute -# -# Purpose....: Get file attribute -# -# Parameters.: Pathname -# &Attrib -# -##########################################################################*/ - - .global RdosGetFileAttribute - -RdosGetFileAttribute: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - UserGate get_file_attribute_nr - jc gfaFail - - movl 12(%ebp),%edi - movzx %cx,%ecx - movl %ecx,(%edi) - movl $1,%eax - jmp gfaDone - -gfaFail: - xorl %eax,%eax - -gfaDone: - popl %edi - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosSetFileAttribute -# -# Purpose....: Set file attribute -# -# Parameters.: Pathname -# Attrib -# -##########################################################################*/ - - .global RdosSetFileAttribute - -RdosSetFileAttribute: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - movw 12(%ebp),%cx - UserGate set_file_attribute_nr - jc sfaFail - - movl $1,%eax - jmp sfaDone - -sfaFail: - xorl %eax,%eax - -sfaDone: - popl %edi - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenDir -# -# Purpose....: Open directory -# -# Parameters.: Pathname -# -# Returns....: Dir handle -# -##########################################################################*/ - - .global RdosOpenDir - -RdosOpenDir: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movl 8(%ebp),%edi - UserGate open_dir_nr - jc odFail - - movzx %bx,%eax - jmp odDone - -odFail: - xorl %eax,%eax - -odDone: - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseDir -# -# Purpose....: Close directory -# -# Parameters.: Dir handle -# -##########################################################################*/ - - .global RdosCloseDir - -RdosCloseDir: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_dir_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosReadDir -# -# Purpose....: Read directory entry -# -# Parameters.: Dir handle -# Entry # -# MaxNameSize -# Name buffer -# &FileSize -# &Attribute -# &Msb time -# &Lsb time -# -##########################################################################*/ - - .global RdosReadDir - -RdosReadDir: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edi - - movw 8(%ebp),%bx - movw 12(%ebp),%dx - movw 16(%ebp),%cx - movl 20(%ebp),%edi - UserGate read_dir_nr - jc rdiFail - - movl 24(%ebp),%edi - movl %ecx,(%edi) - - movl 28(%ebp),%edi - movzx %bx,%ebx - movl %ebx,(%edi) - - movl 32(%ebp),%edi - movl %edx,(%edi) - - movl 36(%ebp),%edi - movl %eax,(%edi) - - movl $1,%eax - jmp rdiDone - -rdiFail: - xorl %eax,%eax - -rdiDone: - popl %edi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetFocus -# -# Purpose....: Set input focus -# -# Parameters.: Focus handle -# -##########################################################################*/ - - .global RdosSetFocus - -RdosSetFocus: - pushl %ebp - movl %esp,%ebp - - movl 8(%ebp),%eax - UserGate set_focus_nr - - leave - ret - -/*########################################################################## -# -# Name : RdosGetFocus -# -# Purpose....: Get input focus -# -# Returns....: Focus handle -# -##########################################################################*/ - - .global RdosGetFocus - -RdosGetFocus: - pushl %ebp - movl %esp,%ebp - - UserGate get_focus_nr - - leave - ret - -/*########################################################################## -# -# Name : RdosClearKeyboard -# -# Purpose....: Clear keyboard buffer -# -##########################################################################*/ - - .global RdosClearKeyboard - -RdosClearKeyboard: - pushl %ebp - movl %esp,%ebp - - UserGate flush_keyboard_nr - - leave - ret - -/*########################################################################## -# -# Name : RdosPollKeyboard -# -# Purpose....: Poll keyboard buffer -# -# Returns....: TRUE if non-empty -# -##########################################################################*/ - - .global RdosPollKeyboard - -RdosPollKeyboard: - pushl %ebp - movl %esp,%ebp - - UserGate poll_keyboard_nr - jc rpkEmpty - - mov $1,%eax - jmp rpkDone - -rpkEmpty: - xorl %eax,%eax - -rpkDone: - leave - ret - -/*########################################################################## -# -# Name : RdosReadKeyboard -# -# Purpose....: Read keyboard buffer -# -# Returns....: Scan code -# -##########################################################################*/ - - .global RdosReadKeyboard - -RdosReadKeyboard: - pushl %ebp - movl %esp,%ebp - - UserGate read_keyboard_nr - movzx %ax,%eax - - leave - ret - -/*########################################################################## -# -# Name : RdosGetKeyboardState -# -# Purpose....: Get keyboard buffer -# -# Returns....: Keyboard state -# -##########################################################################*/ - - .global RdosGetKeyboardState - -RdosGetKeyboardState: - pushl %ebp - movl %esp,%ebp - - UserGate get_keyboard_state_nr - movzx %ax,%eax - - leave - ret - -/*########################################################################## -# -# Name : RdosPutKeyboard -# -# Purpose....: Put scancode in keyboard buffer -# -##########################################################################*/ - - .global RdosPutKeyboard - -RdosPutKeyboard: - pushl %ebp - movl %esp,%ebp - pushl %edx - - movw 8(%ebp),%ax - movb 12(%ebp),%dl - movb 16(%ebp),%dh - UserGate put_keyboard_code_nr - - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosPeekKeyEvent -# -# Purpose....: Peek keyboard event -# -##########################################################################*/ - - .global RdosPeekKeyEvent - -RdosPeekKeyEvent: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - pushl %edi - - UserGate peek_key_event_nr - jc rpeFail - - movl 8(%ebp),%edi - movzx %ax,%eax - movl %eax,(%edi) - - movl 12(%ebp),%edi - movzx %cx,%eax - movl %eax,(%edi) - - movl 16(%ebp),%edi - movzx %dl,%eax - movl %eax,(%edi) - - movl 20(%ebp),%edi - movzx %dh,%eax - movl %eax,(%edi) - - movl $1,%eax - jmp rpeDone - -rpeFail: - xorl %eax,%eax - -rpeDone: - popl %edi - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosReadKeyEvent -# -# Purpose....: Read keyboard event -# -##########################################################################*/ - - .global RdosReadKeyEvent - -RdosReadKeyEvent: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - pushl %edi - - UserGate read_key_event_nr - jc rkeFail - - movl 8(%ebp),%edi - movzx %ax,%eax - movl %eax,(%edi) - - movl 12(%ebp),%edi - movzx %cx,%eax - movl %eax,(%edi) - - movl 16(%ebp),%edi - movzx %dl,%eax - movl %eax,(%edi) - - movl 20(%ebp),%edi - movzx %dh,%eax - movl %eax,(%edi) - - movl $1,%eax - jmp rkeDone - -rkeFail: - xorl %eax,%eax - -rkeDone: - popl %edi - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosHideMouse -# -# Purpose....: Hide mouse cursor -# -##########################################################################*/ - - .global RdosHideMouse - -RdosHideMouse: - pushl %ebp - movl %esp,%ebp - - UserGate hide_mouse_nr - - leave - ret - -/*########################################################################## -# -# Name : RdosShowMouse -# -# Purpose....: Show mouse cursor -# -##########################################################################*/ - - .global RdosShowMouse - -RdosShowMouse: - pushl %ebp - movl %esp,%ebp - - UserGate show_mouse_nr - - leave - ret - -/*########################################################################## -# -# Name : RdosGetMousePosition -# -# Purpose....: Get mouse position -# -# Parameters.: &x, &y -# -##########################################################################*/ - - .global RdosGetMousePosition - -RdosGetMousePosition: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - - UserGate get_mouse_position_nr - - movl 8(%ebp),%eax - movzx %cx,%ecx - movl %ecx,(%eax) - - movl 12(%ebp),%eax - movzx %dx,%edx - movl %edx,(%eax) - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosSetMousePosition -# -# Purpose....: Set mouse position -# -# Parameters.: x, y -# -##########################################################################*/ - - .global RdosSetMousePosition - -RdosSetMousePosition: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - - movw 8(%ebp),%cx - movw 12(%ebp),%dx - UserGate set_mouse_position_nr - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosSetMouseWindow -# -# Purpose....: Set mouse window -# -# Parameters.: start x, start y -# end x, end y -# -##########################################################################*/ - - .global RdosSetMouseWindow - -RdosSetMouseWindow: - pushl %ebp - movl %esp,%ebp - pushl %eax - pushl %ebx - pushl %ecx - pushl %edx - - movw 8(%ebp),%ax - movw 12(%ebp),%bx - movw 16(%ebp),%cx - movw 20(%ebp),%dx - UserGate set_mouse_window_nr - - popl %edx - popl %ecx - popl %ebx - popl %eax - leave - ret - -/*########################################################################## -# -# Name : RdosSetMouseMickey -# -# Purpose....: Set mouse mickey -# -# Parameters.: x, y -# -##########################################################################*/ - - .global RdosSetMouseMickey - -RdosSetMouseMickey: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - - movw 8(%ebp),%cx - movw 12(%ebp),%dx - UserGate set_mouse_mickey_nr - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosGetCursorPosition -# -# Purpose....: Get cursor position -# -# Parameters.: &x, &y -# -##########################################################################*/ - - .global RdosGetCursorPosition - -RdosGetCursorPosition: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - - UserGate get_cursor_position_nr - - movl 8(%ebp),%eax - movzx %cx,%ecx - movl %ecx,(%eax) - - movl 12(%ebp),%eax - movzx %dx,%edx - movl %edx,(%eax) - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosSetCursorPosition -# -# Purpose....: Set cursor position -# -# Parameters.: x, y -# -##########################################################################*/ - - .global RdosSetCursorPosition - -RdosSetCursorPosition: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - - movw 8(%ebp),%cx - movw 12(%ebp),%dx - UserGate set_cursor_position_nr - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosGetLeftButton -# -# Purpose....: Check if left button is pressed -# -# Returns....: TRUE if pressed -# -##########################################################################*/ - - .global RdosGetLeftButton - -RdosGetLeftButton: - pushl %ebp - movl %esp,%ebp - - UserGate get_left_button_nr - jc get_left_rel - - mov $1,%eax - jmp get_left_done - -get_left_rel: - xorl %eax,%eax - -get_left_done: - leave - ret - -/*########################################################################## -# -# Name : RdosGetRightButton -# -# Purpose....: Check if right button is pressed -# -# Returns....: TRUE if pressed -# -##########################################################################*/ - - .global RdosGetRightButton - -RdosGetRightButton: - pushl %ebp - movl %esp,%ebp - - UserGate get_right_button_nr - jc get_right_rel - - mov $1,%eax - jmp get_right_done - -get_right_rel: - xorl %eax,%eax - -get_right_done: - leave - ret - -/*########################################################################## -# -# Name : RdosGetLeftButtonPressPosition -# -# Purpose....: Get left button press position -# -# Parameters.: &x, &y -# -##########################################################################*/ - - .global RdosGetLeftButtonPressPosition - -RdosGetLeftButtonPressPosition: - pushl %ebp - movl %esp,%ebp - - pushl %ecx - pushl %edx - - UserGate get_left_button_press_position_nr - - movl 8(%ebp),%eax - movzx %cx,%ecx - movl %ecx,(%eax) - - movl 12(%ebp),%eax - movzx %dx,%edx - movl %edx,(%eax) - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosGetRightButtonPressPosition -# -# Purpose....: Get right button press position -# -# Parameters.: &x, &y -# -##########################################################################*/ - - .global RdosGetRightButtonPressPosition - -RdosGetRightButtonPressPosition: - pushl %ebp - movl %esp,%ebp - - pushl %ecx - pushl %edx - - UserGate get_right_button_press_position_nr - - movl 8(%ebp),%eax - movzx %cx,%ecx - movl %ecx,(%eax) - - movl 12(%ebp),%eax - movzx %dx,%edx - movl %edx,(%eax) - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosGetLeftButtonReleasePosition -# -# Purpose....: Get left button release position -# -# Parameters.: &x, &y -# -##########################################################################*/ - - .global RdosGetLeftButtonReleasePosition - -RdosGetLeftButtonReleasePosition: - pushl %ebp - movl %esp,%ebp - - pushl %ecx - pushl %edx - - UserGate get_left_button_release_position_nr - - movl 8(%ebp),%eax - movzx %cx,%ecx - movl %ecx,(%eax) - - movl 12(%ebp),%eax - movzx %dx,%edx - movl %edx,(%eax) - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosGetRightButtonReleasePosition -# -# Purpose....: Get right button release position -# -# Parameters.: &x, &y -# -##########################################################################*/ - - .global RdosGetRightButtonReleasePosition - -RdosGetRightButtonReleasePosition: - pushl %ebp - movl %esp,%ebp - - pushl %ecx - pushl %edx - - UserGate get_right_button_release_position_nr - - movl 8(%ebp),%eax - movzx %cx,%ecx - movl %ecx,(%eax) - - movl 12(%ebp),%eax - movzx %dx,%edx - movl %edx,(%eax) - - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosReadLine -# -# Purpose....: Read a line from keyboard -# -# Parameters.: Buffer -# Size -# -# Returns....: Read count -# -##########################################################################*/ - - .global RdosReadLine - -RdosReadLine: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - movl 12(%ebp),%ecx - UserGate read_con_nr - - popl %edi - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteChar -# -# Purpose....: Write a character to screen -# -# Parameters.: Char -# -##########################################################################*/ - - .global RdosWriteChar - -RdosWriteChar: - pushl %ebp - movl %esp,%ebp - - movb 8(%ebp),%al - UserGate write_char_nr - - leave - ret - -/*########################################################################## -# -# Name : RdosWriteSizeString -# -# Purpose....: Write a fixed number of characters to screen -# -# Parameters.: String -# Count -# -##########################################################################*/ - - .global RdosWriteSizeString - -RdosWriteSizeString: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - movl 12(%ebp),%ecx - UserGate write_size_string_nr - - popl %edi - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteString -# -# Purpose....: Write a string to screen -# -# Parameters.: String -# -##########################################################################*/ - - .global RdosWriteString - -RdosWriteString: - pushl %ebp - movl %esp,%ebp - pushl %edi - - movl 8(%ebp),%edi - UserGate write_asciiz_nr - - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosNameToIp -# -# Purpose....: Convert host name to IP address -# -# Parameters.: Name -# -# Returns....: IP -# -##########################################################################*/ - - .global RdosNameToIp - -RdosNameToIp: - pushl %ebp - movl %esp,%ebp - pushl %edi - - movl 8(%ebp),%edi - UserGate name_to_ip_nr - jc rntiFail - - movl %edx,%eax - jmp rntiDone - -rntiFail: - xorl %eax,%eax - -rntiDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosGetIp -# -# Purpose....: Get my IP -# -# Returns....: IP -# -##########################################################################*/ - - .global RdosGetIp - -RdosGetIp: - pushl %ebp - movl %esp,%ebp - - UserGate get_ip_address_nr - movl %edx,%eax - - leave - ret - -/*########################################################################## -# -# Name : RdosIpToName -# -# Purpose....: Convert IP address to host name -# -# Parameters.: IP -# Name -# Size -# -##########################################################################*/ - - .global RdosIpToName - -RdosIpToName: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - pushl %edi -; - movl 8(%ebp),%edx - movl 12(%ebp),%edi - movl 16(%ebp),%ecx - UserGate ip_to_name_nr - jnc ritnDone - -ritnFail: - xorl %eax,%eax - -ritnDone: - popl %edi - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosPing -# -# Purpose....: Ping node -# -# Parameters.: IP -# Timeout -# -##########################################################################*/ - - .global RdosPing - -RdosPing: - pushl %ebp - movl %esp,%ebp - pushl %edx -; - movl 8(%ebp),%edx - movl 12(%ebp),%eax - UserGate ping_nr - jc ping_failed - - movl $1,%eax - jmp ping_done - -ping_failed: - xorl %eax,%eax - -ping_done: - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenTcpConnection -# -# Purpose....: Open an active connection over TCP -# -# Parameters.: RemoteIp -# LocalPort -# RemotePort -# Timeout in ms -# BufferSize -# -# Returns....: Conn handle -# -##########################################################################*/ - - .global RdosOpenTcpConnection - -RdosOpenTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - pushl %edi - - movl 8(%ebp),%edx - movw 12(%ebp),%si - movw 16(%ebp),%di - movl 20(%ebp),%eax - movl 24(%ebp),%ecx - UserGate open_tcp_connection_nr - mov $0,%eax - jc rotcDone - - movl %ebx,%eax - -rotcDone: - popl %edi - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateTcpListen -# -# Purpose....: Create listen handle -# -# Parameters.: Port -# MaxConnections -# BufferSize -# -# Returns....: Listen handle -# -##########################################################################*/ - - .global RdosCreateTcpListen - -RdosCreateTcpListen: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - - movw 8(%ebp),%si - movw 12(%ebp),%ax - movl 16(%ebp),%ecx - UserGate create_tcp_listen_nr - movzx %bx,%eax - jnc ctlDone - - xorl %eax,%eax - -ctlDone: - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetTcpListen -# -# Purpose....: Get connection from listen -# -# Parameters.: Listen handle -# -# Returns....: Conn handle -# -##########################################################################*/ - - .global RdosGetTcpListen - -RdosGetTcpListen: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_tcp_listen_nr - movzx %ax,%eax - jnc gtlDone - - xorl %eax,%eax - -gtlDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseTcpListen -# -# Purpose....: Close TCP listen -# -# Parameters.: Listen handle -# -##########################################################################*/ - - .global RdosCloseTcpListen - -RdosCloseTcpListen: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_tcp_listen_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddWaitForTcpListen -# -# Purpose....: Add wait object to tcp listen -# -# Parameters.: Wait handle -# Listen handle -# ID -# -##########################################################################*/ - - .global RdosAddWaitForTcpListen - -RdosAddWaitForTcpListen: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - movw 12(%ebp),%ax - movl 16(%ebp),%ecx - UserGate add_wait_for_tcp_listen_nr - movl $1,%eax - jnc awftlDone - - xorl %eax,%eax - -awftlDone: - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosWaitForTcpConnection -# -# Purpose....: Wait for Tcp connection to be established -# -# Parameters.: Conn handle -# Timeout ms -# -##########################################################################*/ - - .global RdosWaitForTcpConnection - -RdosWaitForTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - movl 12(%ebp),%eax - UserGate wait_for_tcp_connection_nr - movl $1,%eax - jnc wftcDone - - xorl %eax,%eax - -wftcDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddWaitForTcpConnection -# -# Purpose....: Add wait object to tcp connection -# -# Parameters.: Wait handle -# Conn handle -# ID -# -##########################################################################*/ - - .global RdosAddWaitForTcpConnection - -RdosAddWaitForTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - - movw 8(%ebp),%bx - movw 12(%ebp),%ax - movl 16(%ebp),%ecx - UserGate add_wait_for_tcp_connection_nr - movl $1,%eax - jnc awftcDone - - xorl %eax,%eax - -awftcDone: - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseTcpConnection -# -# Purpose....: Close Tcp connection -# -# Parameters.: Conn handle -# -##########################################################################*/ - - .global RdosCloseTcpConnection - -RdosCloseTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate close_tcp_connection_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDeleteTcpConnection -# -# Purpose....: Delete Tcp connection -# -# Parameters.: Conn handle -# -##########################################################################*/ - - .global RdosDeleteTcpConnection - -RdosDeleteTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate delete_tcp_connection_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAbortTcpConnection -# -# Purpose....: Abort Tcp connection -# -# Parameters.: Conn handle -# -##########################################################################*/ - - .global RdosAbortTcpConnection - -RdosAbortTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate abort_tcp_connection_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosPushTcpConnection -# -# Purpose....: Push Tcp connection -# -# Parameters.: Conn handle -# -##########################################################################*/ - - .global RdosPushTcpConnection - -RdosPushTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate push_tcp_connection_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosPollTcpConnection -# -# Purpose....: Poll Tcp connection -# -# Parameters.: Conn handle -# -# Returns....: Available bytes in receive buffer -# -##########################################################################*/ - - .global RdosPollTcpConnection - -RdosPollTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate poll_tcp_connection_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosIsTcpConnectionClosed -# -# Purpose....: Check if connection is closed -# -# Parameters.: Conn handle -# -# Returns....: TRUE if closed -# -##########################################################################*/ - - .global RdosIsTcpConnectionClosed - -RdosIsTcpConnectionClosed: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate is_tcp_connection_closed_nr - jc rptcClosed - - xorl %eax,%eax - jmp rptcDone - -rptcClosed: - movl $1,%eax - -rptcDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetRemoteTcpConnectionIp -# -# Purpose....: Get remote IP -# -# Parameters.: Conn handle -# -# Returns....: IP -# -##########################################################################*/ - - .global RdosGetRemoteTcpConnectionIp - -RdosGetRemoteTcpConnectionIp: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_remote_tcp_connection_ip_nr - jnc grtciDone - - movl $0xFFFFFFFF,%eax - -grtciDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetRemoteTcpConnectionPort -# -# Purpose....: Get remote port -# -# Parameters.: Conn handle -# -# Returns....: Port -# -##########################################################################*/ - - .global RdosGetRemoteTcpConnectionPort - -RdosGetRemoteTcpConnectionPort: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_remote_tcp_connection_port_nr - jnc grtcpDone - - movl $0,%eax - -grtcpDone: - movzx %ax,%eax - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetLocalTcpConnectionPort -# -# Purpose....: Get local port -# -# Parameters.: Conn handle -# -# Returns....: Port -# -##########################################################################*/ - - .global RdosGetLocalTcpConnectionPort - -RdosGetLocalTcpConnectionPort: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movw 8(%ebp),%bx - UserGate get_local_tcp_connection_port_nr - jnc gltcpDone - - movl $0,%eax - -gltcpDone: - movzx %ax,%eax - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosReadTcpConnection -# -# Purpose....: Read data from connection -# -# Parameters.: Conn handle -# Buffer -# Size -# -# Returns....: Read bytes -# -##########################################################################*/ - - .global RdosReadTcpConnection - -RdosReadTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edi - - movw 8(%ebp),%bx - movl 12(%ebp),%edi - movl 16(%ebp),%ecx - UserGate read_tcp_connection_nr - - popl %edi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteTcpConnection -# -# Purpose....: Write data fto connection -# -# Parameters.: Conn handle -# Buffer -# Size -# -# Returns....: Written bytes -# -##########################################################################*/ - - .global RdosWriteTcpConnection - -RdosWriteTcpConnection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edi - - movw 8(%ebp),%bx - movl 12(%ebp),%edi - movl 16(%ebp),%ecx - UserGate write_tcp_connection_nr - - popl %edi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetLocalMailslot -# -# Purpose....: Get local mailslot from name -# -# Parameters.: Name -# -# Returns....: Mailslot handle -# -##########################################################################*/ - - .global RdosGetLocalMailslot - -RdosGetLocalMailslot: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movl 8(%ebp),%edi - UserGate get_local_mailslot_nr - jc rglmFail - - movzx %bx,%eax - jmp rglmDone - -rglmFail: - xorl %eax,%eax - -rglmDone: - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetRemoteMailslot -# -# Purpose....: Get remote mailslot from name -# -# Parameters.: IP -# Name -# -# Returns....: Mailslot handle -# -##########################################################################*/ - - .global RdosGetRemoteMailslot - -RdosGetRemoteMailslot: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edx - pushl %edi - - movl 8(%ebp),%edx - movl 12(%ebp),%edi - UserGate get_remote_mailslot_nr - jc rgrmFail - - movzx %bx,%eax - jmp rgrmDone - -rgrmFail: - xorl %eax,%eax - -rgrmDone: - popl %edi - popl %edx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosFreeMailslot -# -# Purpose....: Free mailslot -# -# Parameters.: Mailslot handle -# -##########################################################################*/ - - .global RdosFreeMailslot - -RdosFreeMailslot: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 8(%ebp),%ebx - UserGate free_mailslot_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSendMailslot -# -# Purpose....: Send mailslot -# -# Parameters.: Mailslot handle -# Msg -# Size -# ReplyBuf -# MaxReplySize -# -# Returns....: Size of reply -# -##########################################################################*/ - - .global RdosSendMailslot - -RdosSendMailslot: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - pushl %edi - - movw 8(%ebp),%bx - movl 12(%ebp),%esi - movl 16(%ebp),%ecx - movl 20(%ebp),%edi - movl 24(%ebp),%eax - UserGate send_mailslot_nr - jc smFail - - movl %ecx,%eax - jmp smDone - -smFail: - movl $0xFFFFFFFF,%eax - -smDone: - popl %edi - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDefineMailslot -# -# Purpose....: Define mailslot -# -# Parameters.: Name -# Max msg size -# -##########################################################################*/ - - .global RdosDefineMailslot - -RdosDefineMailslot: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - movl 12(%ebp),%ecx - UserGate define_mailslot_nr - - popl %edi - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosReceiveMailslot -# -# Purpose....: Receive from mailslot -# -# Parameters.: Msg buffer -# -# Returns....: Msg size -# -##########################################################################*/ - - .global RdosReceiveMailslot - -RdosReceiveMailslot: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - UserGate receive_mailslot_nr - movl %ecx,%eax - - popl %edi - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosReplyMailslot -# -# Purpose....: Reply to mailslot -# -# Parameters.: Msg buffer -# Msg size -# -##########################################################################*/ - - .global RdosReplyMailslot - -RdosReplyMailslot: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edi - - movl 8(%ebp),%edi - movl 12(%ebp),%ecx - UserGate reply_mailslot_nr - - popl %edi - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosGetIdeDisc -# -# Purpose....: Get IDE disc -# -# Parameters.: Unit # -# -# Returns....: Disc # -# -##########################################################################*/ - - .global RdosGetIdeDisc - -RdosGetIdeDisc: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movb 8(%ebp),%bl - UserGate get_ide_disc_nr - jc get_ide_disc_fail - - movzx %al,%eax - jmp get_ide_disc_done - -get_ide_disc_fail: - movl $0xFFFFFFFF,%eax - -get_ide_disc_done: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetFloppyDisc -# -# Purpose....: Get floppy disc -# -# Parameters.: Unit # -# -# Returns....: Disc # -# -##########################################################################*/ - - .global RdosGetFloppyDisc - -RdosGetFloppyDisc: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movb 8(%ebp),%bl - UserGate get_floppy_disc_nr - jc get_floppy_disc_fail - - movzx %al,%eax - jmp get_floppy_disc_done - -get_floppy_disc_fail: - movl $0xFFFFFFFF,%eax - -get_floppy_disc_done: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetDiscInfo -# -# Purpose....: Get disc info -# -# Parameters.: Disc # -# Bytes / sector -# Total sectors -# BIOS sectors / cyl -# BIOS heads -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosGetDiscInfo - -RdosGetDiscInfo: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - - movb 8(%ebp),%al - UserGate get_disc_info_nr - jc get_disc_info_fail - - movl 12(%ebp),%ebx - movzx %cx,%ecx - movl %ecx,(%ebx) - - movl 16(%ebp),%ebx - movl %edx,(%ebx) - - movl 20(%ebp),%ebx - movzx %si,%esi - movl %esi,(%ebx) - - movl 24(%ebp),%ebx - movzx %di,%edi - movl %edi,(%ebx) - - movl $1,%eax - jmp get_disc_info_done - -get_disc_info_fail: - xorl %eax,%eax - -get_disc_info_done: - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetDiscInfo -# -# Purpose....: Set disc info -# -# Parameters.: Disc # -# Bytes / sector -# Total sectors -# BIOS sectors / cyl -# BIOS heads -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosSetDiscInfo - -RdosSetDiscInfo: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - pushl %esi - pushl %edi - - movb 8(%ebp),%al - movl 12(%ebp),%ecx - movl 16(%ebp),%edx - movl 20(%ebp),%esi - movl 24(%ebp),%edi - UserGate set_disc_info_nr - jc set_disc_info_fail - - movl $1,%eax - jmp set_disc_info_done - -set_disc_info_fail: - xorl %eax,%eax - -set_disc_info_done: - popl %edi - popl %esi - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosReadDisc -# -# Purpose....: Read from disc -# -# Parameters.: Disc # -# Sector # -# Buffer -# Size -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosReadDisc - -RdosReadDisc: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - pushl %edi - - movb 8(%ebp),%al - movl 12(%ebp),%edx - movl 16(%ebp),%edi - movl 20(%ebp),%ecx - UserGate read_disc_nr - jc read_disc_fail - - movl $1,%eax - jmp read_disc_done - -read_disc_fail: - xorl %eax,%eax - -read_disc_done: - popl %edi - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteDisc -# -# Purpose....: Write to disc -# -# Parameters.: Disc # -# Sector # -# Buffer -# Size -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosWriteDisc - -RdosWriteDisc: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - pushl %edi - - movb 8(%ebp),%al - movl 12(%ebp),%edx - movl 16(%ebp),%edi - movl 20(%ebp),%ecx - UserGate write_disc_nr - jc write_disc_fail - - movl $1,%eax - jmp write_disc_done - -write_disc_fail: - xorl %eax,%eax - -write_disc_done: - popl %edi - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosAllocateFixedDrive -# -# Purpose....: Allocate fixed drive -# -# Parameters.: Drive # -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosAllocateFixedDrive - -RdosAllocateFixedDrive: - pushl %ebp - movl %esp,%ebp - - movb 8(%ebp),%al - UserGate allocate_fixed_drive_nr - jc allocate_fixed_drive_fail - - movl $1,%eax - jmp allocate_fixed_drive_done - -allocate_fixed_drive_fail: - xorl %eax,%eax - -allocate_fixed_drive_done: - leave - ret - -/*########################################################################## -# -# Name : RdosAllocateStaticDrive -# -# Purpose....: Allocate static drive -# -# Returns....: Drive # -# -##########################################################################*/ - - .global RdosAllocateStaticDrive - -RdosAllocateStaticDrive: - pushl %ebp - movl %esp,%ebp - - UserGate allocate_static_drive_nr - jc allocate_static_drive_fail - - movzx %al,%eax - jmp allocate_static_drive_done - -allocate_static_drive_fail: - xorl %eax,%eax - -allocate_static_drive_done: - leave - ret - -/*########################################################################## -# -# Name : RdosAllocateDynamicDrive -# -# Purpose....: Allocate dynamic drive -# -# Returns....: Drive # -# -##########################################################################*/ - - .global RdosAllocateDynamicDrive - -RdosAllocateDynamicDrive: - pushl %ebp - movl %esp,%ebp - - UserGate allocate_dynamic_drive_nr - jc allocate_dynamic_drive_fail - - movzx %al,%eax - jmp allocate_dynamic_drive_done - -allocate_dynamic_drive_fail: - xorl %eax,%eax - -allocate_dynamic_drive_done: - leave - ret - -/*########################################################################## -# -# Name : RdosGetRdfsInfo -# -# Purpose....: Get rdfs info -# -# Parameters.: Crypt tab -# Key tab -# Extent size tab -# -##########################################################################*/ - - .global RdosGetRdfsInfo - -RdosGetRdfsInfo: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - pushl %edi - - movl 8(%ebp),%esi - movl 12(%ebp),%edi - movl 16(%ebp),%ebx - UserGate get_rdfs_info_nr - - popl %edi - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetDriveInfo -# -# Purpose....: Get drive info -# -# Parameters.: Drive # -# Free units -# Bytes per unit -# Total units -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosGetDriveInfo - -RdosGetDriveInfo: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movb 8(%ebp),%al - UserGate get_drive_info_nr - jc get_drive_info_fail - - movl 12(%ebp),%ebx - movl %eax,(%ebx) - - movl 16(%ebp),%ebx - movzx %cx,%ecx - movl %ecx,(%ebx) - - movl 20(%ebp),%ebx - movl %edx,(%ebx) - - movl $1,%eax - jmp get_drive_info_done - -get_drive_info_fail: - xorl %eax,%eax - -get_drive_info_done: - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDemandLoadDrive -# -# Purpose....: Demand load drive -# -# Parameters.: Drive # -# -##########################################################################*/ - - .global RdosDemandLoadDrive - -RdosDemandLoadDrive: - pushl %ebp - movl %esp,%ebp - - movb 8(%ebp),%al - UserGate demand_load_drive_nr - - leave - ret - -/*########################################################################## -# -# Name : RdosGetDriveDiscParam -# -# Purpose....: Get drive disc parameters -# -# Parameters.: Drive # -# Disc # -# Start sector -# Total sectors -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosGetDriveDiscParam - -RdosGetDriveDiscParam: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %edx - - movb 8(%ebp),%al - UserGate get_drive_disc_param_nr - jc get_drive_disc_param_fail - - movl 12(%ebp),%ebx - movzx %al,%eax - movl %eax,(%ebx) - - movl 16(%ebp),%ebx - movl %edx,(%ebx) - - movl 20(%ebp),%ebx - movl %ecx,(%ebx) - - movl $1,%eax - jmp get_drive_disc_param_done - -get_drive_disc_param_fail: - xorl %eax,%eax - -get_drive_disc_param_done: - popl %edx - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosFormatDrive -# -# Purpose....: Format drive -# -# Parameters.: Disc # -# Start sector -# Sectors -# FS name -# -# Returns....: Drive # -# -##########################################################################*/ - - .global RdosFormatDrive - -RdosFormatDrive: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %edx - pushl %edi - - movb 8(%ebp),%al - movl 12(%ebp),%edx - movl 16(%ebp),%ecx - movl 20(%ebp),%edi - UserGate format_drive_nr - jc rfdFail - - movzx %al,%eax - jmp rfdDone - -rfdFail: - xorl %eax,%eax - -rfdDone: - popl %edi - popl %edx - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosGetExeName -# -# Purpose....: Get name of executable file -# -# Returns....: Exe pathname -# -##########################################################################*/ - - .global RdosGetExeName - -RdosGetExeName: - pushl %ebp - movl %esp,%ebp - pushl %edi - - UserGate get_exe_name_nr - jc rgenFail - - movl %edi,%eax - jmp rgenDone - -rgenFail: - xorl %eax,%eax - -rgenDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosOpenAdc -# -# Purpose....: Open handle to ADC channel -# -# Parameters.: Channel # -# -# Returns....: Adc handle -# -##########################################################################*/ - - .global RdosOpenAdc - -RdosOpenAdc: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 8(%ebp),%eax - UserGate open_adc_nr - movw %bx,%ax - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseAdc -# -# Purpose....: Close ADC handle -# -# Parameters.: Adc handle -# -##########################################################################*/ - - .global RdosCloseAdc - -RdosCloseAdc: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 8(%ebp),%ebx - UserGate close_adc_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDefineAdcTime -# -# Purpose....: Define time of next conversion -# -# Parameters.: Adc handle -# MSB time -# LSB time -# -##########################################################################*/ - - .global RdosDefineAdcTime - -RdosDefineAdcTime: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edx - - movl 8(%ebp),%ebx - movl 12(%ebp),%edx - movl 16(%ebp),%eax - UserGate define_adc_time_nr - - popl %edx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosReadAdc -# -# Purpose....: Read ADC -# -# Parameters.: Adc handle -# -# Returns....: Value -# -##########################################################################*/ - - .global RdosReadAdc - -RdosReadAdc: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 8(%ebp),%ebx - UserGate read_adc_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosReadSerialLines -# -# Purpose....: Read serial lines -# -# Parameters.: Device -# &Value -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosReadSerialLines - -RdosReadSerialLines: - pushl %ebp - movl %esp,%ebp - pushl %edx - pushl %esi - - movb 8(%ebp),%dh - UserGate read_serial_lines_nr - jc rdsFail - - movzx %al,%eax - movl 12(%ebp),%esi - movl %eax,(%esi) - movl $1,%eax - jmp rdsDone - -rdsFail: - xorl %eax,%eax - -rdsDone: - popl %esi - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosToggleSerialLine -# -# Purpose....: Toggle serial line -# -# Parameters.: Device -# Line -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosToggleSerialLine - -RdosToggleSerialLine: - pushl %ebp - movl %esp,%ebp - pushl %edx - - movb 8(%ebp),%dh - movb 12(%ebp),%dl - UserGate toggle_serial_line_nr - jc rtsFail - - movl $1,%eax - jmp rtsDone - -rtsFail: - xorl %eax,%eax - -rtsDone: - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosReadSerialVal -# -# Purpose....: Read serial value -# -# Parameters.: Device -# Line -# &Val -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosReadSerialVal - -RdosReadSerialVal: - pushl %ebp - movl %esp,%ebp - pushl %edx - pushl %esi - - movb 8(%ebp),%dh - movb 12(%ebp),%dl - UserGate read_serial_val_nr - - pushfw - shll $8,%eax - movl 16(%ebp),%esi - movl %eax,(%esi) - popfw - jc rdvFail - - movl $1,%eax - jmp rdvDone - -rdvFail: - xorl %eax,%eax - -rdvDone: - popl %esi - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteSerialVal -# -# Purpose....: Write serial value -# -# Parameters.: Device -# Line -# Val -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosWriteSerialVal - -RdosWriteSerialVal: - pushl %ebp - movl %esp,%ebp - pushl %edx - - movb 8(%ebp),%dh - movb 12(%ebp),%dl - movl 16(%ebp),%eax - sarl $8,%eax - UserGate write_serial_val_nr - jc rwvFail - - movl $1,%eax - jmp rwvDone - -rwvFail: - xorl %eax,%eax - -rwvDone: - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosReadSerialRaw -# -# Purpose....: Read serial raw value -# -# Parameters.: Device -# Line -# &Val -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosReadSerialRaw - -RdosReadSerialRaw: - pushl %ebp - movl %esp,%ebp - pushl %edx - pushl %esi - - movb 8(%ebp),%dh - movb 12(%ebp),%dl - UserGate read_serial_val_nr - - pushfw - movl 16(%ebp),%esi - movl %eax,(%esi) - popfw - jc rdrFail - - movl $1,%eax - jmp rdrDone - -rdrFail: - xorl %eax,%eax - -rdrDone: - popl %esi - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteSerialRaw -# -# Purpose....: Write serial raw value -# -# Parameters.: Device -# Line -# Val -# -# Returns....: TRUE if ok -# -##########################################################################*/ - - .global RdosWriteSerialRaw - -RdosWriteSerialRaw: - pushl %ebp - movl %esp,%ebp - pushl %edx - - movb 8(%ebp),%dh - movb 12(%ebp),%dl - movl 16(%ebp),%eax - UserGate write_serial_val_nr - jc rwrFail - - movl $1,%eax - jmp rwrDone - -rwrFail: - xorl %eax,%eax - -rwrDone: - popl %edx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenSysEnv -# -# Purpose....: Open system environment -# -# Returns....: Env handle -# -##########################################################################*/ - - .global RdosOpenSysEnv - -RdosOpenSysEnv: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - UserGate open_sys_env_nr - jc oseFail - - movzx %bx,%eax - jmp oseDone - -oseFail: - xorl %eax,%eax - -oseDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenProcessEnv -# -# Purpose....: Open process environment -# -# Returns....: Env handle -# -##########################################################################*/ - - .global RdosOpenProcessEnv - -RdosOpenProcessEnv: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - UserGate open_proc_env_nr - jc opeFail - - movzx %bx,%eax - jmp opeDone - -opeFail: - xorl %eax,%eax - -opeDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseEnv -# -# Purpose....: Close environment -# -# Parameters.: Env handle -# -##########################################################################*/ - - .global RdosCloseEnv - -RdosCloseEnv: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 8(%ebp),%ebx - UserGate close_env_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosAddEnvVar -# -# Purpose....: Add environment variable -# -# Parameters.: Env handle -# var -# data -# -##########################################################################*/ - - .global RdosAddEnvVar - -RdosAddEnvVar: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - pushl %edi - - movl 8(%ebp),%ebx - movl 12(%ebp),%esi - movl 16(%ebp),%edi - UserGate add_env_var_nr - - popl %edi - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDeleteEnvVar -# -# Purpose....: Delete environment variable -# -# Parameters.: Env handle -# var -# -##########################################################################*/ - - .global RdosDeleteEnvVar - -RdosDeleteEnvVar: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - - movl 8(%ebp),%ebx - movl 12(%ebp),%esi - UserGate delete_env_var_nr - - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosFindEnvVar -# -# Purpose....: Find environment variable -# -# Parameters.: Env handle -# var -# data -# -##########################################################################*/ - - .global RdosFindEnvVar - -RdosFindEnvVar: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - pushl %edi - - movl 8(%ebp),%ebx - movl 12(%ebp),%esi - movl 16(%ebp),%edi - UserGate find_env_var_nr - jc fevFail - - movl $1,%eax - jmp fevDone - -fevFail: - xorl %eax,%eax - -fevDone: - popl %edi - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGetEnvData -# -# Purpose....: Get raw environment data -# -# Parameters.: Env handle -# data -# -##########################################################################*/ - - .global RdosGetEnvData - -RdosGetEnvData: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movl 8(%ebp),%ebx - movl 12(%ebp),%edi - UserGate get_env_data_nr - jnc gedDone - - xorw %ax,%ax - stosw - -gedDone: - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosSetEnvData -# -# Purpose....: Set raw environment data -# -# Parameters.: Env handle -# data -# -##########################################################################*/ - - .global RdosSetEnvData - -RdosSetEnvData: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movl 8(%ebp),%ebx - movl 12(%ebp),%edi - UserGate set_env_data_nr - - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenSysIni -# -# Purpose....: Open system ini-file -# -# Returns....: Ini handle -# -##########################################################################*/ - - .global RdosOpenSysIni - -RdosOpenSysIni: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - UserGate open_sys_ini_nr - jc osiFail - - movzx %bx,%eax - jmp osiDone - -osiFail: - xorl %eax,%eax - -osiDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCloseIni -# -# Purpose....: Close ini-file -# -# Parameters.: Ini handle -# -##########################################################################*/ - - .global RdosCloseIni - -RdosCloseIni: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 8(%ebp),%ebx - UserGate close_ini_nr - - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosGotoIniSection -# -# Purpose....: Goto ini section -# -# Parameters.: Ini handle -# SectionName -# -##########################################################################*/ - - .global RdosGotoIniSection - -RdosGotoIniSection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %edi - - movl 8(%ebp),%ebx - movl 12(%ebp),%edi - UserGate goto_ini_section_nr - jc gisFail - - movl $1,%eax - jmp gisDone - -gisFail: - xorl %eax,%eax - -gisDone: - popl %edi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosRemoveIniSection -# -# Purpose....: Remove current ini section -# -# Parameters.: Ini handle -# -##########################################################################*/ - - .global RdosRemoveIniSection - -RdosRemoveIniSection: - pushl %ebp - movl %esp,%ebp - pushl %ebx - - movl 8(%ebp),%ebx - UserGate remove_ini_section_nr - jc risFail - - movl $1,%eax - jmp risDone - -risFail: - xorl %eax,%eax - -risDone: - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosReadIni -# -# Purpose....: Read ini var in current section -# -# Parameters.: Ini handle -# VarName -# Data -# MaxSize -# -##########################################################################*/ - - .global RdosReadIni - -RdosReadIni: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %ecx - pushl %esi - pushl %edi - - movl 8(%ebp),%ebx - movl 12(%ebp),%esi - movl 16(%ebp),%edi - movl 20(%ebp),%ecx - UserGate read_ini_nr - jc riFail - - movl $1,%eax - jmp riDone - -riFail: - xorl %eax,%eax - -riDone: - popl %edi - popl %esi - popl %ecx - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosWriteIni -# -# Purpose....: Write ini var in current section -# -# Parameters.: Ini handle -# VarName -# Data -# -##########################################################################*/ - - .global RdosWriteIni - -RdosWriteIni: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - pushl %edi - - movl 8(%ebp),%ebx - movl 12(%ebp),%esi - movl 16(%ebp),%edi - UserGate write_ini_nr - jc wiFail - - movl $1,%eax - jmp wiDone - -wiFail: - xorl %eax,%eax - -wiDone: - popl %edi - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosDeleteIni -# -# Purpose....: Delete ini var in current section -# -# Parameters.: Ini handle -# VarName -# -##########################################################################*/ - - .global RdosDeleteIni - -RdosDeleteIni: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - - movl 8(%ebp),%ebx - movl 12(%ebp),%esi - UserGate delete_ini_nr - jc diFail - - movl $1,%eax - jmp diDone - -diFail: - xorl %eax,%eax - -diDone: - popl %esi - popl %ebx - leave - ret - -/*########################################################################## -# -# Name : RdosCreateFileDrive -# -# Purpose....: Create a new file-drive -# -# Parameters.: Drive -# Size -# FS name -# Filename -# -##########################################################################*/ - - .global RdosCreateFileDrive - -RdosCreateFileDrive: - pushl %ebp - movl %esp,%ebp - pushl %ecx - pushl %esi - pushl %edi - - movb 8(%ebp),%al - movl 12(%ebp),%ecx - movl 16(%ebp),%esi - movl 20(%ebp),%edi - UserGate create_file_drive_nr - jnc cfdOk - - xorl %eax,%eax - jmp cfdDone - -cfdOk: - movl $1,%eax - -cfdDone: - popl %edi - popl %esi - popl %ecx - leave - ret - -/*########################################################################## -# -# Name : RdosOpenFileDrive -# -# Purpose....: Open a new file-drive -# -# Parameters.: Drive -# Filename -# -##########################################################################*/ - - .global RdosOpenFileDrive - -RdosOpenFileDrive: - pushl %ebp - movl %esp,%ebp - pushl %edi - - movb 8(%ebp),%al - movl 12(%ebp),%edi - UserGate open_file_drive_nr - jnc ofdOk - - xorl %eax,%eax - jmp ofdDone - -ofdOk: - movl $1,%eax - -ofdDone: - popl %edi - leave - ret - -/*########################################################################## -# -# Name : RdosEnableStatusLed -# -# Purpose....: Enable status LED -# -##########################################################################*/ - - .global RdosEnableStatusLed - -RdosEnableStatusLed: - pushl %ebp - movl %esp,%ebp - UserGate enable_status_led_nr - leave - ret - -/*########################################################################## -# -# Name : RdosDisableStatusLed -# -# Purpose....: Disable status LED -# -##########################################################################*/ - - .global RdosDisableStatusLed - -RdosDisableStatusLed: - pushl %ebp - movl %esp,%ebp - UserGate disable_status_led_nr - leave - ret - -/*########################################################################## -# -# Name : RdosStartWatchdog -# -# Purpose....: Start watchdog -# -# Parameters.: Timeout, ms -# -##########################################################################*/ - - .global RdosStartWatchdog - -RdosStartWatchdog: - pushl %ebp - movl %esp,%ebp -; - movl 8(%ebp),%eax - UserGate start_watchdog_nr -; - leave - ret - -/*########################################################################## -# -# Name : RdosKickWatchdog -# -# Purpose....: Kick watchdog -# -##########################################################################*/ - - .global RdosKickWatchdog - -RdosKickWatchdog: - pushl %ebp - movl %esp,%ebp - UserGate kick_watchdog_nr - leave - ret - |