home *** CD-ROM | disk | FTP | other *** search
- ;*****************************************************************************
- ;*
- ;* Program Name: VAP_PRIMITIVES
- ;*
- ;* Filename: vap.asm (SVAP.LIB)
- ;*
- ;* Version: 1.0
- ;*
- ;* Programmers: Bryan Sparks
- ;*
- ;* Comments: This file is a library of calls defined for the VAP
- ;* interface. Written in MASM 4.0 and assuming SMALL
- ;* MSC 4.0 C code (or MSC 5.0).
- ;*
- ;*****************************************************************************
- name VAPLibraryModule
-
- PGroup group _TEXT
- assume cs: PGroup
-
- _TEXT segment public 'CODE'
-
- public _VAllocateSegment
- public _VChangeToDataSegment
- public _VSpawnProcess
- public _VInitializationComplete
- public _VKillProcess
- public _VChangeProcess
- public _VDelayProcess
- public _VSleepProcess
- public _VWakeUpProcess
- public _VConsoleError
- public _VGetProcessID
- public _SetEStoDS
- public _VAPAttachToFileServer
-
- extrn ProcessControlServices: dword
-
- AllocateSegment equ 0
- ChangeToDataSegment equ 1
- ChangeSegmentToCode equ 2
- DeclareSegmentAsData equ 3
- DeclareExtendedSegment equ 4
- SpawnProcess equ 5
- SetPassThroughShellMode equ 6
- InitializationComplete equ 7
- KillProcess equ 8
- ChangeProcess equ 9
- DelayProcess equ 10
- GetProcessID equ 11
- SleepProcess equ 12
- WakeUpProcess equ 13
- SetHardwareInterruptVector equ 14
- GetInterruptVector equ 15
- SetInterruptVector equ 16
- CalculateAbsoluteAddress equ 17
- SetExtendedProcessorError equ 18
- ConsoleError equ 19
- GetFileServerName equ 20
- AttachToFileServer equ 21
- MapFileServerNameToNumber equ 22
-
-
- _VAllocateSegment:
- push bp
- mov bp, sp
- mov ax, [bp + 2 + 2] ; paragraph amount
- mov di, AllocateSegment
- push es
- jmp ProcessControlServicesCALL
-
- _VChangeToDataSegment:
- push bp
- mov bp, sp
- mov ax, [bp + 2 + 2] ; segment value
- mov di, ChangeToDataSegment
- push es
- jmp ProcessControlServicesCALL
-
- _VSpawnProcess:
- push bp
- mov bp, sp
- mov cx, [bp + 2 + 2] ; process entry
- mov dx, ds ; process data segment
- mov bx, cs ; assume near
- mov bp, cs
- mov di, SpawnProcess
- push es
- jmp ProcessControlServicesCALL
-
- _VInitializationComplete:
- push bp
- mov di, InitializationComplete
- push es
- jmp ProcessControlServicesCALL
-
- _VKillProcess:
- push bp
- mov di, KillProcess
- push es
- jmp ProcessControlServicesCALL
-
- _VChangeProcess:
- push bp
- mov di, ChangeProcess
- push es
- jmp ProcessControlServicesCALL
-
- _VDelayProcess:
- push bp
- mov bp, sp
- mov dx, [bp + 2 + 2] ;delay amount
- mov di, DelayProcess
- push es
- jmp ProcessControlServicesCALL
-
- _VSleepProcess:
- push bp
- mov di, SleepProcess
- push es
- jmp ProcessControlServicesCALL
-
- _VWakeUpProcess:
- push bp
- mov bp, sp
- mov bx, [bp + 2 + 2] ; sleeping process ID
- mov di, WakeUpProcess
- push es
- jmp ProcessControlServicesCALL
-
- _VConsoleError:
- push bp
- mov bp, sp
- mov si, [bp + 2 + 2] ; display error on console
- mov di, ConsoleError
- push es
- jmp ProcessControlServicesCALL
-
-
- _VGetProcessID:
- push bp
- push es
- mov di, GetProcessID
-
- ProcessControlServicesCALL proc near
- call dword ptr cs:ProcessControlServices
- pop es
- pop bp
- ret
- ProcessControlServicesCALL endp
-
- _VAPAttachToFileServer proc near
- push bp
- mov bp, sp
-
- mov ax, [bp+4]
- mov si, ax
- mov di, 15h
- call dword ptr cs:ProcessControlServices
- xor ah, ah
- xor dh, dh
- mov si, [bp+6]
- mov [si], dx
-
- pop bp
- ret
- _VAPAttachToFileServer endp
-
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; ConsoleControlServices Calls
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- public _VClearScreen
- public _VPrintString
- public _VReadKeyboard
- public _Interrupt3
- extrn ConsoleControlServices: dword
-
- _Interrupt3 proc near
- int 3
- _Interrupt3 endp
-
- _VClearScreen proc near
- push bp
- mov bp, sp
- mov di, 0 ;0 is ClearScreen
- call dword ptr cs:ConsoleControlServices
- pop bp
- ret
- _VClearScreen endp
-
- _VPrintString proc near
- push bp
- mov bp, sp
- mov ax, [bp + 2 + 8]
- push ax
- push ds
- mov ax, [bp + 2 + 6]
- push ax
- mov ax, [bp + 2 + 4]
- push ax
- mov ax, [bp + 2 + 2]
- push ax
- mov di, 1
- call dword ptr cs:ConsoleControlServices
- mov sp, bp
- pop bp
- ret
- _VPrintString endp
-
- _VReadKeyboard proc near
- push bp
- mov bp, sp
- mov ax, [bp + 2 + 4]
- push ax
- push ds
- mov ax, [bp + 2 + 2]
- push ax
- mov di, 2
-
- call dword ptr cs:ConsoleControlServices
- mov sp, bp
- pop bp
- ret
-
- _VReadKeyboard endp
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Misc Calls
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- _SetEStoDS proc near
- push ds
- pop es
- ret
- _SetEStoDS endp
-
- _TEXT ends
- end
-