.title GETCHAR -- returns a single character to caller ; noecho, and upper-case only. ; ; Pascal calling sequence - ; ; Function Getchar : char; extern; ; ; Author: Mark Resmer ; Vassar College ; Poughkeepsie ; NY 12601 ; .PSECT GETCHAR$DATA, RD, WRT, NOEXE ; ; ttname: .ascid /SYS$INPUT:/ ; ttchan: .blkw 1 ; for SYS$INPUT channel ttiosb: .blkq 1 ; define I/O status buffer retbuf: .blkl 1 ; character buffer ; ; ; .PSECT GETCHAR$CODE, RD, WRT, EXE ; ; .ENTRY GETCHAR,0 10$: $assign_s - devnam=ttname, - chan=ttchan ; get a channel bsbw error ; check for errors ; $qiow_s func=#io$_readvblk!io$m_cvtlow!io$m_nofiltr!io$m_noecho - chan=ttchan, - iosb=ttiosb, - P1=retbuf, - P2=#1 ; qiow system service to get char bsbw error ; check for errors ; $dassgn_s - chan=ttchan ; give back our channel bsbw error ; error check movl retbuf,r0 ; set function result ret ; and return ; error: ; error check subroutine blbs r0,10$ ; check for an error $exit_s r0 ; die ungracefully if system ; services dont work... 10$: rsb ; else return to GETCHAR ; .end