home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
PROGRAM
/
SPAWNO40.ZIP
/
SOURCE.ZIP
/
SPAWNO.INC
< prev
next >
Wrap
Text File
|
1991-11-17
|
2KB
|
82 lines
;-----------------------------------
; (c) Copyright 1991 Ralf Brown All Rights Reserved
;
; SPAWNVO
; Overlaying spawnv()
;
; File: SPAWNO.INC
;-----------------------------------
;-----------------------------------------------------------
; describe a dummy structure to hold all the swap device-specific
; routines
_spawn_funcs struc
?sf_init dw ? ; called to determine whether to swap to a given device
?sf_write dw ? ; called to write out memory
?sf_swapdone dw ? ; called when all memory written out
?sf_swapin dw ? ; called when ready to read back memory
?sf_read dw ? ; called to read back a section of memory
?sf_finish dw ? ; called to clean up at very end of swap
?sf_codeaddr dw ? ; address of code to append to resident stub
?sf_codesize dw ? ; total size of code to be appended
?sf_resident dw ? ; number of bytes which must stay resident
_spawn_funcs ends
;-----------------------------------------------------------
; define manifest constants
StackSize equ 160h ; 352 bytes
StackSizePara equ (StackSize+15)/16
DefStackPara equ 4 ; default stack size (in para)
MinStackPara equ 2 ; absolute minimum stack while spawned
ENOENT equ 2 ; file not found
ENOPATH equ 3 ; path not found
EMFILE equ 4 ; too many open files
EACCESS equ 5 ; access denied
EBADF equ 6 ; invalid file handle
ECONTR equ 7 ; memory control blocks destroyed
ENOMEM equ 8 ; out of memory
EINVDAT equ 13 ; invalid data
ENODEV equ 15 ; invalid drive / device
EINVAL equ 19 ; invalid argument
E2BIG equ 20 ; environment too big
EWRITEFAULT equ 29 ; write error
;-----------------------------------------------------------
; define constants needed by swapin code which can't be made
; into ABS externals
;
abort_offset equ 26
overlay_size equ 3Eh
finish_overlay_size equ 5
resident_addr equ 70h
;-----------------------------------------------------------
; define useful macros
ifdef __TINY__
MOV_ES_PSP macro
push cs
pop es
endm
else
MOV_ES_PSP macro
mov es,_psp@
endm
endif ;__TINY__
COALESCE_MEMORY macro
mov ah,48h
mov bx,0FFFFh ; force DOS to coalesce free blocks
int 21h ; by attempting to allocate 1MB-16
endm
;-----------------------------------------------------------
;*************
;*END OF FILE*
;*************