Annotation of pmsdk/samples/newcard/windiff1.asm, revision 1.1

1.1     ! root        1:         title   windiff1.asm
        !             2: 
        !             3: ;****************************************************************/
        !             4: ;*                                                              */
        !             5: ;*  Windows Cardfile                                           */
        !             6: ;*  (c) Copyright Microsoft Corp. 1985 - All Rights Reserved    */
        !             7: ;*                                                              */
        !             8: ;****************************************************************/
        !             9: 
        !            10: .xlist
        !            11: include cmacros.inc
        !            12: 
        !            13: .list
        !            14: 
        !            15: createSeg   _FILE,nrdiff,byte,public,CODE
        !            16: 
        !            17: sBegin  DATA
        !            18: sEnd    DATA
        !            19: 
        !            20: sBegin  nrdiff
        !            21: 
        !            22: assumes CS,nrdiff
        !            23: assumes DS,DATA
        !            24: 
        !            25: cProc   Frename,<PUBLIC,NEAR>,<di>
        !            26:     parmW src
        !            27:     parmW dst
        !            28: cBegin
        !            29:         mov     dx,src
        !            30:         push    ds
        !            31:         pop     es
        !            32:         mov     di,dst
        !            33:         mov     ah,56h
        !            34:         int     21h
        !            35:         jc      renexit
        !            36:         xor     ax,ax
        !            37: renexit:
        !            38: cEnd
        !            39: 
        !            40: ;
        !            41: ; Fdelete (pch) - delete a file
        !            42: ;   returns 0 or -1
        !            43: ;
        !            44: 
        !            45: cProc   Fdelete,<PUBLIC,FAR>
        !            46:     parmW src
        !            47: cBegin
        !            48:         mov     dx,src
        !            49:         mov     ah,41h
        !            50:         int     21h
        !            51:         jc      rmexit
        !            52:         xor     ax,ax
        !            53: rmexit:
        !            54: cEnd
        !            55: 
        !            56: cProc mylread,<PUBLIC,NEAR>
        !            57:     parmW fh
        !            58:     parmD lpbuf
        !            59:     parmW count
        !            60: cBegin
        !            61:     push    ds
        !            62:     mov     bx,fh
        !            63:     lds     dx,lpbuf
        !            64:     mov     ah,3fh
        !            65:     mov     cx,count
        !            66:     int     21h
        !            67:     jnc     lreaddone
        !            68:     xor     ax,ax
        !            69: lreaddone:
        !            70:     pop     ds
        !            71: cEnd
        !            72: 
        !            73: cProc myread,<PUBLIC,NEAR>
        !            74:     parmW fh
        !            75:     parmW buf
        !            76:     parmW count
        !            77: cBegin
        !            78:     mov     bx,fh
        !            79:     mov     dx,buf
        !            80:     mov     ah,3fh
        !            81:     mov     cx,count
        !            82:     int     21h
        !            83:     jnc     readdone
        !            84:     xor     ax,ax
        !            85: readdone:
        !            86: cEnd
        !            87: 
        !            88: cProc mylwrite,<PUBLIC,NEAR>
        !            89:     parmW   fh
        !            90:     parmD   lpbuf
        !            91:     parmW   count
        !            92: cBegin
        !            93:     push    ds
        !            94:     mov     bx,fh
        !            95:     lds     dx,lpbuf
        !            96:     mov     ah,40h
        !            97:     mov     cx,count
        !            98:     int     21h
        !            99:     jnc     lwritedone
        !           100:     xor     ax,ax
        !           101: lwritedone:
        !           102:     pop     ds
        !           103: cEnd
        !           104: 
        !           105: cProc mywrite,<PUBLIC,NEAR>
        !           106:     parmW   fh
        !           107:     parmW   buf
        !           108:     parmW   count
        !           109: cBegin
        !           110:     mov     bx,fh
        !           111:     mov     dx,buf
        !           112:     mov     ah,40h
        !           113:     mov     cx,count
        !           114:     int     21h
        !           115:     jnc     writedone
        !           116:     xor     ax,ax
        !           117: writedone:
        !           118: 
        !           119: cEnd
        !           120: 
        !           121: cProc   MyOpen,<PUBLIC,FAR>
        !           122:         parmD   lpFilename
        !           123:         parmB   mode
        !           124: cBegin
        !           125:         push    ds
        !           126:         lds     dx,lpFilename
        !           127:         mov     al,mode
        !           128:         mov     ah,3Dh
        !           129:         int     21h
        !           130:         pop     ds
        !           131:         jnc     MyOpen_ok
        !           132:         mov     ax,-1
        !           133: MyOpen_ok:
        !           134: cEnd
        !           135: 
        !           136: 
        !           137: cProc   MyClose,<PUBLIC,FAR>
        !           138:         parmW   fd
        !           139: cBegin
        !           140:         mov     bx,fd
        !           141:         mov     ah,3Eh              ; DOS file close function
        !           142:         int     21h
        !           143:         mov     ax,-1
        !           144:         jc      MyClose_end
        !           145:         inc     ax
        !           146: MyClose_end:
        !           147: cEnd
        !           148: 
        !           149: cProc   MyLseek,<PUBLIC,FAR>
        !           150:     parmW   fh
        !           151:     parmD   fileOffset
        !           152:     parmW   mode
        !           153: cBegin
        !           154:         mov     dx,off_fileOffset
        !           155:         mov     cx,seg_fileOffset
        !           156:         mov     ax,mode
        !           157:         mov     bx,fh
        !           158:         mov     ah,42h
        !           159:         int     21h
        !           160:         jnc     MyLseek_ok
        !           161:         mov     ax,-1
        !           162:         cwd                         ; must return a long
        !           163: MyLseek_ok:
        !           164: cEnd
        !           165: 
        !           166: 
        !           167: sEnd    nrdiff
        !           168: 
        !           169: end
        !           170: 

unix.superglobalmegacorp.com

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