#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/io.scm,v 14.6 1990/06/20 20:29:20 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/io.scm,v 14.7 1990/06/21 22:11:38 cph Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
((ucode-primitive file-set-position 2) (channel-descriptor channel)
position))
-(define (terminal-read-char channel)
- ((ucode-primitive terminal-read-char 1) (channel-descriptor channel)))
-
-(define (terminal-char-ready? channel delay)
- ((ucode-primitive terminal-char-ready? 2) (channel-descriptor channel)
- delay))
-
(define (terminal-buffered? channel)
((ucode-primitive terminal-buffered? 1) (channel-descriptor channel)))
(and (not (negative? n))
(+ (input-buffer/chars-available buffer) n))))))
-(define (input-buffer/char-ready? buffer)
- (char-ready? buffer
- (lambda (buffer)
- (case (channel-blocking? (input-buffer/channel buffer))
- ((#F)
- (input-buffer/fill buffer))
- ((#T)
- (with-channel-blocking (input-buffer/channel buffer)
- false
- (lambda () (input-buffer/fill buffer))))
- (else false)))))
+(define (input-buffer/char-ready? buffer interval)
+ (let ((fill
+ (if (positive? interval)
+ (lambda ()
+ (let ((timeout (+ (real-time-clock) interval)))
+ (let loop ()
+ (cond ((input-buffer/fill buffer) true)
+ ((< (real-time-clock) timeout) (loop))
+ (else false)))))
+ (lambda ()
+ (input-buffer/fill buffer)))))
+ (char-ready? buffer
+ (lambda (buffer)
+ (let ((channel (input-buffer/channel buffer)))
+ (case (channel-blocking? channel)
+ ((#F) (fill))
+ ((#T) (with-channel-blocking channel false fill))
+ (else false)))))))
(define (char-ready? buffer fill)
(let ((end-index (input-buffer/end-index buffer)))
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.67 1990/06/20 20:29:56 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.68 1990/06/21 22:11:42 cph Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
output-buffer/write-string-block
tty-output-channel)
(export (runtime console-input)
+ channel-type=file?
channel-type=terminal?
+ input-buffer/channel
input-buffer/char-ready?
+ input-buffer/peek-char
input-buffer/read-char
make-input-buffer
terminal-buffered
terminal-buffered?
- terminal-char-ready?
terminal-nonbuffered
- terminal-read-char
tty-input-channel)
(initialization (initialize-package!)))
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.82 1990/06/20 20:37:44 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.83 1990/06/21 22:11:52 cph Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
'()))
(add-system! microcode-system)
(add-event-receiver! event:after-restore snarf-microcode-version!)
- (add-identification! "Runtime" 14 82))
+ (add-identification! "Runtime" 14 83))
(define microcode-system)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.67 1990/06/20 20:29:56 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.68 1990/06/21 22:11:42 cph Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
output-buffer/write-string-block
tty-output-channel)
(export (runtime console-input)
+ channel-type=file?
channel-type=terminal?
+ input-buffer/channel
input-buffer/char-ready?
+ input-buffer/peek-char
input-buffer/read-char
make-input-buffer
terminal-buffered
terminal-buffered?
- terminal-char-ready?
terminal-nonbuffered
- terminal-read-char
tty-input-channel)
(initialization (initialize-package!)))