home *** CD-ROM | disk | FTP | other *** search
- ;
- ; Message Base Reply Chain Linker
- ;
- ; This module was originally written by Bob Hartman
- ; Sysop of FidoNet node 1:132/101
- ;
- ; Spark Software, 427-3 Amherst St, CS 2032, Suite 232, Nashua, NH 03061
- ;
- ; This program source code is being released with the following provisions:
- ;
- ; 1. You are free to make changes to this source code for use on your own
- ; machine, however, altered source files may not be distributed without the
- ; consent of Spark Software.
- ;
- ; 2. You may distribute "patches" or "diff" files for any changes that you
- ; have made, provided that the "patch" or "diff" files are also sent to Spark
- ; Software for inclusion in future releases of the entire package. A "diff"
- ; file for the source archives may also contain a compiled version, provided
- ; it is clearly marked as not being created from the original source code.
- ; No other executable versions may be distributed without the consent of
- ; Spark Software.
- ;
- ; 3. You are free to include portions of this source code in any program you
- ; develop, providing: a) Credit is given to Spark Software for any code that
- ; may is used, and b) The resulting program is free to anyone wanting to use
- ; it, including commercial and government users.
- ;
- ; 4. There is NO technical support available for dealing with this source
- ; code, or the accompanying executable files. This source code is provided
- ; as is, with no warranty expressed or implied (I hate legalease). In other
- ; words, if you don't know what to do with it, don't use it, and if you are
- ; brave enough to use it, you're on your own.
- ;
- ; Spark Software may be contacted by modem at (603) 888-8179 (node 1:132/101)
- ; on the public FidoNet network, or at the address given above.
- ;
-
- .xlist
- page 64,132
-
- title LowLevel
- subttl by Bob Hartman
-
- name LowLevel
- ;
- ;
- ;
- ; The following macro files come with the MicroSoft "C" compiler
- ;
- include version.inc
- include msdos.inc
- include cmacros.inc
-
- .sall
- .list
- ;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- sBegin code
-
- assumes cs,code
- assumes ds,data
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- cProc fast_open,<PUBLIC>
-
- parmDP fname
- parmB mode
-
- cBegin
-
- ; Set-up for the DOS open file call
- mov dx,fname
- mov al,mode
- callos open
- jnc fo_no_err
-
-
- test BYTE PTR mode,1
- jne fo_creat
- test BYTE PTR mode,2
- je fo_err
-
- fo_creat:
- mov dx,fname
- sub cx,cx
- callos create
- jnc fo_no_err
-
- fo_err:
- mov ax,-1
-
- fo_no_err:
-
- cEnd
-
- cProc fast_close,<PUBLIC>
-
- parmW handle
-
- cBegin
-
- mov bx,handle
- callos close
- jnc fc_no_err
- mov ax,-1
- jmp SHORT fc_out
-
- fc_no_err:
- sub ax,ax
-
- fc_out:
-
- cEnd
-
- cProc fast_read,<PUBLIC>
-
- parmW handle
- parmDP string
- parmW length
-
- cBegin
-
- mov bx,handle
- mov dx,string
- mov cx,length
- callos read
- jnc fr_no_err
- mov ax,-1
-
- fr_no_err:
-
- cEnd
-
- cProc fast_write,<PUBLIC>
-
- parmW handle
- parmDP string
- parmW length
-
- cBegin
-
- mov bx,handle
- mov dx,string
- mov cx,length
- callos write
- jnc fw_no_err
- mov ax,-1
-
- fw_no_err:
-
- cEnd
-
- cProc fast_lseek,<PUBLIC>
-
- parmW handle
- parmW offset1
- parmW offset2
- parmW where
-
- cBegin
-
- mov ax,where
- mov bx,handle
- mov dx,offset1
- mov cx,offset2
- callos lseek
- jnc fl_no_err
- mov ax,-1
- mov dx,-1
-
- fl_no_err:
-
- cEnd
-
- cProc rename,<PUBLIC>,<es,di>
-
- parmDP oldname
- parmDP newname
-
- cBegin
-
- mov ax,ds
- mov es,ax
- mov dx,oldname
- mov di,newname
- callos rename
- jc ren_exit
- xor ax,ax
-
- ren_exit:
-
- cEnd
-
- cProc unlink,<PUBLIC>
-
- parmDP fname
-
- cBegin
-
- mov dx,fname
- callos delete
- jc unl_exit
- xor ax,ax
-
- unl_exit:
-
- cEnd
-
- cProc match_byte,<PUBLIC>,<di>
-
- parmDP string
- parmW matcher
- parmW length
-
- cBegin
- mov di,string
- mov ax,matcher
- mov cx,length
- repne scasb
- dec di
- cmp BYTE PTR [di],al
- mov ax,di
- je get_out
- mov ax,0
- get_out:
-
- cEnd
-
- cProc chdir,<PUBLIC>
-
- parmDP dir
-
- cBegin
-
- mov dx,dir
- callos chdir
- jc c_exit
- sub ax,ax
- c_exit:
-
- cEnd
-
- cProc change_disk,<PUBLIC>
-
- parmW disknum
-
- cBegin
-
- mov dx,disknum
- callos selectdisk
-
- cEnd
-
- sEnd
- end