home *** CD-ROM | disk | FTP | other *** search
- ; ************
- ; * PEEK.asm *
- ; *******************************************
- ; * Copyright TimeSlice, Inc. 1985, 86, 87. *
- ; *******************************************
- ;
- ;
- include ts.inc
- ;
- start_data
- end_data
- ;
- start_code
- ;
- start_struct
- mbr pkbp d_int
- mbr pkret d_ret
- mbr pkseg d_int
- mbr pkoff d_int
- mbr pkbuf d_ptr
- mbr pklen d_int
- end_struct pkstk
- ;
- ;****
- ;* PEEK( SEG, OFFSET, BUF, LEN )
- ;****
- routine peek
- push bp ;save bp, si, di, ds
- mov bp,sp ;reset base pointer
- push_sdi
- push ds
- push es
- cld
- ldint ds,[bp].pkseg ;load source segment
- ldint si,[bp].pkoff ;load source offset
- ldptr es,di,[bp].pkbuf,d ;load destination offset (in DGROUP)
- ldint cx,[bp].pklen ;load length (in bytes)
- test cx,1 ;odd number of bytes to move???
- jz peek0 ;if yes move 1 byte alone
- movsb
- peek0: shr cx,1 ;compute LEN in number of words
- repz movsw ;move LEN words
- pop es
- pop ds ;restore ds, si, di, bp
- pop_sdi
- pop bp
- return peek
- ;
- end_code
-