ralf@b.gp.cs.cmu.edu (Ralf Brown) (03/18/87)
Earlier today I promised to post programs to put the console in raw mode and back into cooked mode. Here they are; I think I originally got them from the INFO-IBMPC lending library. The following shell archive contains four files: source code--SETRAW.ASM source code--SETCOOKD.ASM uuencoded SETRAW.COM uuencoded SETCOOKD.COM Cut at the line below, run the file through /bin/sh, and then run the resulting setraw.uu and setcookd.uu through uudecode. Download the final result of setraw.com and setcookd.com with a binary file transfer protocol. Usage: setraw place CON in raw mode, disabling ^S, ^C, and ^P checks on every character setcookd place CON in cooked mode, enables ^S, ^C, and ^P ---------------CUT---CUT---CUT---CUT---CUT---------------------- # # type sh setraw.shar to unpack this archive. # echo extracting setcookd.uu... cat >setcookd.uu <<'!E!O!F!' begin 644 setcookd.com HM##-(3P"<AZ[ 0"P +1$S2%R#_;"@'0*@>+/ + !M$3-(;1,S2'-(.SD end !E!O!F! # # type sh /usre3/ralf/upload/setraw.shar to unpack this archive. # echo extracting setraw.uu... cat >setraw.uu <<'!E!O!F!' begin 644 setraw.com LM##-(3P"<B*[ 0"P +1$S2%R$_;"@'0.@>+/ ('*( "P ;1$S2&T3,TAS2"T end !E!O!F! # # type sh /usre3/ralf/upload/setraw.shar to unpack this archive. # echo extracting setcookd.asm... cat >setcookd.asm <<'!E!O!F!' ;----- dos ---------------------- ; Call DOS function # n. dos macro fn mov ah, fn int 21h endm code segment para public 'CODE' assume cs:code org 100h ;----- Setraw ------------------------------------------- ; Sets Cooked state of stdout if it is a device. ; Returns errorcode in AX if DOS error. setcookd proc near DOS 30h cmp al,2 jb dos1_exit mov bx,1 mov al, 0 DOS 44h jc sc_exit test dl, 80h ; It it a device? jz sc_exit ; nope- do nothing. ; Current mode in DX and dx, 00cfh ; clear old raw bit and hi byte, mov al, 1 DOS 44h sc_exit: DOS 4Ch dos1_exit: int 20h setcookd endp code ends end setcookd !E!O!F! # # type sh /usre3/ralf/upload/setraw.shar to unpack this archive. # echo extracting setraw.asm... cat >setraw.asm <<'!E!O!F!' ;----- dos ---------------------- ; Call DOS function # n. dos macro fn mov ah, fn int 21h endm code segment para public 'CODE' assume cs:code org 100h ;----- Setraw ------------------------------------------- ; Sets Raw state of stdout if it is a device. ; Returns errorcode in AX if DOS error. setraw proc near DOS 30h cmp al,2 jb dos1_exit mov bx,1 mov al, 0 DOS 44h jc sr_exit test dl, 80h ; It it a device? jz sr_exit ; nope- do nothing. ; Current mode in DX and dx, 00cfh ; clear old raw bit and hi byte, or dx, 20h ; set RAW bit mov al, 1 DOS 44h sr_exit: DOS 4Ch dos1_exit: int 20h setraw endp code ends end setraw !E!O!F! -- +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+ | ARPA: RALF@B.GP.CS.CMU.EDU "Teaching COBOL ought to be | | AT&T: (412) 268-3053 (school) regarded as a criminal act" | | Snail: Ralf Brown --- Edsger Dijkstra | | Computer Science Department | | Carnegie-Mellon University DISCLAIMER? Who ever said I claimed | | Pittsburgh, PA 15213 anything? | +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+