diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-07-14 12:43:50 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-07-14 12:43:50 -0700 |
commit | 37173ab394082a5102d04f78ca1b920a9f34b265 (patch) | |
tree | dbef2eb85352509a9be962cafbe2ad53b7023b93 | |
parent | 739265499ec8fa1fde1e7ad56ec1e1f01b6a630d (diff) | |
download | syslinux-37173ab394082a5102d04f78ca1b920a9f34b265.tar.gz |
getc: add "readc" function to do block reads
Add "readc" function to do block reads. Currently it just does a loop
around "call getc/stosb".
-rw-r--r-- | core/getc.inc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/core/getc.inc b/core/getc.inc index b36115ca..ec8dab2a 100644 --- a/core/getc.inc +++ b/core/getc.inc @@ -151,6 +151,26 @@ getc: stc jmp .ret +; +; This is similar to getc, except that we read up to CX bytes and +; store them in ES:DI. Eventually this could get optimized... +; +; On return, CX and DI are adjusted by the number of bytes actually read. +; +readc: + push ax +.loop: + call getc + jc .out + stosb + loop .loop +.out: + pop ax + ret + +; +; close: close the top of the getc stack +; close: push bx push si |