File:  [OS/2 SDKs] / pmsdk / samples / newcard / windiff1.asm
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 12:28:12 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: pmsdk-1988, HEAD
Microsoft OS/2 SDK PM 08-08-1988

        title   windiff1.asm

;****************************************************************/
;*                                                              */
;*  Windows Cardfile						*/
;*  (c) Copyright Microsoft Corp. 1985 - All Rights Reserved    */
;*                                                              */
;****************************************************************/

.xlist
include cmacros.inc

.list

createSeg   _FILE,nrdiff,byte,public,CODE

sBegin  DATA
sEnd    DATA

sBegin  nrdiff

assumes CS,nrdiff
assumes DS,DATA

cProc   Frename,<PUBLIC,NEAR>,<di>
    parmW src
    parmW dst
cBegin
        mov     dx,src
        push    ds
        pop     es
        mov     di,dst
        mov     ah,56h
        int     21h
        jc      renexit
        xor     ax,ax
renexit:
cEnd

;
; Fdelete (pch) - delete a file
;   returns 0 or -1
;

cProc   Fdelete,<PUBLIC,FAR>
    parmW src
cBegin
        mov     dx,src
        mov     ah,41h
        int     21h
        jc      rmexit
        xor     ax,ax
rmexit:
cEnd

cProc mylread,<PUBLIC,NEAR>
    parmW fh
    parmD lpbuf
    parmW count
cBegin
    push    ds
    mov     bx,fh
    lds     dx,lpbuf
    mov     ah,3fh
    mov     cx,count
    int     21h
    jnc     lreaddone
    xor     ax,ax
lreaddone:
    pop     ds
cEnd

cProc myread,<PUBLIC,NEAR>
    parmW fh
    parmW buf
    parmW count
cBegin
    mov     bx,fh
    mov     dx,buf
    mov     ah,3fh
    mov     cx,count
    int     21h
    jnc     readdone
    xor     ax,ax
readdone:
cEnd

cProc mylwrite,<PUBLIC,NEAR>
    parmW   fh
    parmD   lpbuf
    parmW   count
cBegin
    push    ds
    mov     bx,fh
    lds     dx,lpbuf
    mov     ah,40h
    mov     cx,count
    int     21h
    jnc     lwritedone
    xor     ax,ax
lwritedone:
    pop     ds
cEnd

cProc mywrite,<PUBLIC,NEAR>
    parmW   fh
    parmW   buf
    parmW   count
cBegin
    mov     bx,fh
    mov     dx,buf
    mov     ah,40h
    mov     cx,count
    int     21h
    jnc     writedone
    xor     ax,ax
writedone:

cEnd

cProc   MyOpen,<PUBLIC,FAR>
        parmD   lpFilename
        parmB   mode
cBegin
        push    ds
        lds     dx,lpFilename
        mov     al,mode
        mov     ah,3Dh
        int     21h
        pop     ds
        jnc     MyOpen_ok
        mov     ax,-1
MyOpen_ok:
cEnd


cProc   MyClose,<PUBLIC,FAR>
        parmW   fd
cBegin
        mov     bx,fd
        mov     ah,3Eh              ; DOS file close function
        int     21h
        mov     ax,-1
        jc      MyClose_end
        inc     ax
MyClose_end:
cEnd

cProc   MyLseek,<PUBLIC,FAR>
    parmW   fh
    parmD   fileOffset
    parmW   mode
cBegin
        mov     dx,off_fileOffset
        mov     cx,seg_fileOffset
        mov     ax,mode
        mov     bx,fh
        mov     ah,42h
        int     21h
        jnc     MyLseek_ok
        mov     ax,-1
        cwd                         ; must return a long
MyLseek_ok:
cEnd


sEnd    nrdiff

end


unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.