Annotation of pmsdk/samples/newcard/windiff1.asm, revision 1.1.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.