X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;ds=sidebyside;f=mim%2Fdevelopment%2Fmim%2Fvax%2Ftty%2Fttymisc.mud;fp=mim%2Fdevelopment%2Fmim%2Fvax%2Ftty%2Fttymisc.mud;h=c180da1505ff14eb6aec13acd73016972899f741;hb=d73ace3f3292e320b461b8fcd2e9f5dc5d9684d7;hp=0000000000000000000000000000000000000000;hpb=d530283ea60fb0ddcc28e9c5bd072456afe06e07;p=pdp10-muddle.git diff --git a/mim/development/mim/vax/tty/ttymisc.mud b/mim/development/mim/vax/tty/ttymisc.mud new file mode 100644 index 0000000..c180da1 --- /dev/null +++ b/mim/development/mim/vax/tty/ttymisc.mud @@ -0,0 +1,591 @@ +"Routines to create and reset tty channels--OPEN and RESET operations" + +) (MODE "") (BSZ "") + OBUF? IBUF? + "AUX" OJFN IJFN ERR VAL (TBUF <>) TC) + #DECL ((OJFN IJFN ERR) (TC) TTY-CHANNEL) + > + + ) + ()>)> + > + + ) + ()>)> + + + ) + ()> + + <> + <> + <> + ,BS-ASCII> + .OJFN + >)> + .TBUF + 0 + >) + (>)> + .TBUF + 0 + <> + 0 + ,TM-DEFAULT + ,TM-DEFAULT + <>] TTY-CHANNEL>> + ,TERMNAME> + + .TC) + (.TC)>> + +> + + + +; "NEW? arg is true when muddle is starting up (after save, for example)." +) "AUX" TN + CH TD DATA TT TCHARS + LTCHARS SGTTY LMODE JFN + OSPEED SPEC-CHARS OSTATE NSTATE FLAGS L) + #DECL ((CHANNEL) (NEW?) (TN) STRING + (TD) TTY-DESC (DATA) TTY-CHANNEL (TT) TTY (JFN) FIX + (TT) TTY (TCHARS LTCHARS SGTTY) STRING (LMODE) UVECTOR + (OSPEED) FIX (OSTATE NSTATE) TTSTATE (SPEC-CHARS) STRING + (FLAGS) FIX) + >) + ()> + > + + ,TTY-LIST>>> + >)> + >>> + ; "Read in descriptor file for this terminal" + ,TERMNAME> + ) + ( .TR>)> + + "READ" "ASCII">> + >) + (T + 80 0 0 []] TTY-DESC>>)> + + ) TS) + #DECL ((ESTR) ) + > + > + 1>>)> + > + > + >)>)>>)> + ; "Get speed &c" + >> + > + > + > + > + ; "Get normal tty state from kernel, if it knows; otherwise from + system" + > + + <>>)> + + + )> + > + >> + > + ] TTSTATE>> + ; "Get editing chars, as defined by loser" + + + + + >> + ; "Lookup speed" + >>>> + ; "Change interrupt and quit chars in new state" + ;"Char Bell"> + ;"Char Cntl-A"> + ;"Char Cntl-Q"> + ;"Char Cntl-S"> + ; "Get flags out of SGTTY" + > 8> + >> + ; "Turn on CBREAK, turn off ECHO." + % FIX>>> + ; "Make sure the system doesn't screw around with tabs" + FIX>>> + ; "Stuff flags back into SGTTY" + CHARACTER>> + CHARACTER>> + ; "Turn off output processing in local mode" + <1 .LMODE ,LLITOUT>> + ; "Build the TTY object" + > + + .SPEC-CHARS + .OSPEED + 0 + 0 + <> + <> + 0 + 0 + .TD + ,MORE-TYPE-LIMIT] TTY>> + > + )> + .TT !,TTY-LIST)> + ) + (T + > + + + + + + + + + + + )> + ; "Mung the state of the world" + > + .NSTATE> + + )> + .TT) + (T + ; "If not new, just make sure system knows about us" + >> + > + + + > T>)> + ; "Normal reset stuff--clear buffers, set modes to normal muddle stuff." + + > + + + STRING> + >>) + (>)> + > + > + ,TM-BADPOS>>)> + 0> + .CHANNEL> + + )> + >> + > + >> + )> + <- >>> + >>> + + + + + + + + + + + + + +) (TTY ) + (OS ) (NS ) + (SPEC-CHARS ) + (LTCHARS ) (JFN ) + (TCHARS ) (SGTTY ) + DEFSTR RSTR) + #DECL ((CHAN) (WHICH) ATOM (CHAR) + (TC) TTY-CHANNEL (DEFSTR RSTR SPEC-CHARS LTCHARS TCHARS SGTTY) STRING + (OS NS) TTSTATE (OFFS) FIX) + + + ) + ( + + ) + ( + + ) + (T + .ACT>)> + >> + >) + (T + + >) + ( + >)> + > + + + ) + (<==? .WHICH CHAR-LINE-ERASE> + ) + (<==? .WHICH CHAR-WORD-ERASE> + ) + (<==? .WHICH CHAR-LITERAL-NEXT> + )> + + >)>)> + .OLD> + +) + (TTY ) (NS ) + (OS ) (ST )) + #DECL ((CHAN) CHANNEL (ON?) (TC) TTY-CHANNEL) + ;"Char Cntl-Q"> + ;"Char Cntl-S">) + (T + > + >)> + + .NS <>> + .ON?> + +) + (TTY )) + #DECL ((CHAN) CHANNEL (TC) TTY-CHANNEL (TTY) TTY) + + > + + >)>> + +)) + #DECL ((CHAN) CHANNEL (TC) TTY-CHANNEL) + >> + +) + (TTY )) + #DECL ((CHAN) CHANNEL (TC) TTY-CHANNEL (TTY) TTY) + > + + > + >)>> + +) (TTY )) + #DECL ((CHAN) CHANNEL (TC) TTY-CHANNEL (TTY) TTY) + + > + + > + T)>> + +)) + #DECL ((JFN) FIX (TTSTATE) TTSTATE) + + > + > + > + >> + +"Interfaces for reading and writing--FILL-READ-BUFFER, WRITE-BUFFER, + WRITE-BYTE, READ-BYTE, BUFOUT, BUFLEN" +)) + #DECL ((CHANNEL) CHANNEL (TC) TTY-CHANNEL (NEW) FIX) + + + .NEW) + (T + )>> + +)) + #DECL ((CHANNEL) CHANNEL (TC) TTY-CHANNEL (NEW) STRING) + + + .NEW) + (T + )>> + +) + "TUPLE" MORE "AUX" (TC )) + #DECL ((CHANNEL) CHANNEL (CHRS) + (LENGTH) (TC) TTY-CHANNEL + (MORE) ]>) + + ) + ( + >)> + + + >) + (T + >)>> + .MORE>> + +)) + #DECL ((CHANNEL) CHANNEL (CHAR) CHARACTER (DATA) TTY-CHANNEL) + + .CHAR> + +) CHR + (IB ) (IC ) TMP MODE) + #DECL ((CHANNEL) CHANNEL (DATA) TTY-CHANNEL (IB) (IC) FIX + (TMP) (MODE) FIX) + > + > + > + > + .CHR)>) + (> + > + + )> + .MODE> + <1 ,BUF1>)>> + + FIX>) + >> + ,BUF1 1>> + > + >) + (> + <==? <1 .TEMP> 4>> + ; "Handle interrupted system call" + )>>)> + .CHR> + +) CHR CT) + #DECL ((TC) TTY-CHANNEL (Q) (CT) FIX) + >> + <>) + ( + > + > + > + .CHR) + (T + + > + .Q)>> + +) NQ CT) + #DECL ((TC) TTY-CHANNEL (CHAR) CHARACTER (Q) + (CT) FIX) + + + ) + ( + > + <1 .NQ .Q> + <2 .NQ .CHAR> + + ) + (<==? > > + > .Q> + > + > .CHAR> + + ) + (T + .NQ> + > .CHAR> + + )>) + (T + > .CHAR> + )>> + +) + (QUEUE? T) "AUX" (TC ) + (ECHO? >) (CHR <>) VAL) + #DECL ((CHANNEL) CHANNEL (NOWAIT? QUEUE? ECHO?) + (TC) TTY-CHANNEL (VAL) FIX>) + + >> + + ,FIONREAD ,UV1> + 0>>> + + ,BUF1 1>> + > + >) + (> + <==? <1 .VAL> 4>> + )>>)>> + + )> + .CHR)>> + +) VAL) + #DECL ((CHANNEL) CHANNEL (TC) TTY-CHANNEL (VAL) ) + <1 ,UV1 0> + ,FIONREAD ,UV1>> + >> 0> + .VAL)>)>> + +> +> + ;"Char Alt">> +) + END (NOMORE <>) + "AUX" (TC ) (TTY ) + (BB ) (BBUF ) CT + (PROMPT <>) TS) + #DECL ((CHANNEL) CHANNEL (CONT) FIX (RBUF) + (END) (NOMORE) (TC) TTY-CHANNEL + (BB BBUF) STRING (CT) FIX) + > + > + + STRING>> + ) + (T )>)> + >) + (<0? > + > + > + + .BBUF>)>)>) + ()> + + STRING>> + )> + + .PROMPT> + )> + > + <==? .CT >> + 320>>> + > + + >> + .BBUF > + > + + )>> + + + )> + .CT> + +) + (JFN ) (BC ) + (BUF )) + #DECL ((CHANNEL) CHANNEL (TC) TTY-CHANNEL (JFN) + (BC) FIX (BUF) (FORCE?) ) + > + )> + ; "Doesn't seem to be any way to force output" + T)>> + +)) + #DECL ((CHANNEL) CHANNEL (BYTE) CHARACTER (TC) TTY-CHANNEL) + + ) + ()>> + +) + "AUX" (TC )) + #DECL ((CHANNEL) CHANNEL (BYTES) STRING (LEN) FIX (TC) TTY-CHANNEL) + + ) + ()>> + +"Miscellaneous operations" + +)) + #DECL ((CHANNEL) CHANNEL (BIT) FIX (DATA) TTY-CHANNEL) + + T)>)>> + +) + (OPS >>)) + #DECL ((CHANNEL) CHANNEL (TC) TTY-CHANNEL (OPS) VECTOR) + ,TTY-MOV> + >> + +)) + #DECL ((CHANNEL) CHANNEL (DATA) TTY-CHANNEL) + >>> + +)) + #DECL ((CHANNEL) CHANNEL (AMT) FIX (TC) TTY-CHANNEL) + > .AMT>> + +)) + #DECL ((CHANNEL) CHANNEL (ON?) (TC) TTY-CHANNEL) + ,TM-IMAGE>) + (T + % + FIX>>)>>> + +)) + #DECL ((CHANNEL) CHANNEL (ON?) (TC) TTY-CHANNEL) + ,TM-ECHO>) + (T + % + FIX>>)>>> + +> + +) + TS) + #DECL ((CHANNEL) CHANNEL (TC) TTY-CHANNEL (TS) ) + + + ,STDIN> ) + (T >)> + + + >>>)> + > + + >> + + > + + >)> + > + + >> + + > + + >)> + >