X-Git-Url: https://jxself.org/git/?p=pdp10-muddle.git;a=blobdiff_plain;f=mim%2Fdevelopment%2Fmim%2F20%2Ftty.mud;fp=mim%2Fdevelopment%2Fmim%2F20%2Ftty.mud;h=3f53d162b2a5dbf04bf7ef2d444f7efb3dcc47db;hp=0000000000000000000000000000000000000000;hb=d73ace3f3292e320b461b8fcd2e9f5dc5d9684d7;hpb=d530283ea60fb0ddcc28e9c5bd072456afe06e07 diff --git a/mim/development/mim/20/tty.mud b/mim/development/mim/20/tty.mud new file mode 100644 index 0000000..3f53d16 --- /dev/null +++ b/mim/development/mim/20/tty.mud @@ -0,0 +1,713 @@ + + + + + + +%TTYDEFS.MUD"> + + + +"This must be patterned according to the definition of TWAY-CHANNEL, so the +TWAY code will work when it's wanted." + + + TT-RBC FIX + TT-WJFN FIX + TT-WBUF + TT-WBC FIX + TT-RFSAV FIX ;"Saved RFMOD" + TT-RFCUR FIX ;"Current setting of RFMOD" + TT-QUEUE + TT-QCT FIX> + + .X > + >>> + +
+ <1 .X>>>) + ()>)>)> + .Y > + >>> + + + <1 .Y>>>) + ()> !.L)>)> + > + )) + !.L)>>)>> + + + >>> + )> + > + .OPR>) + (> + + .ARG1>) + (T + + > .ARG1 .ARG2>)>>> + +)) + + + ) + (T + )>) + (<==? .OPER PAGE-HEIGHT> + + ) + (T + )>) + ( <==? .OPER PAGE-Y>> + > + + >) + (<==? .OPER PAGE-Y> + >)>) + (T + ) + (RN .NEW)) + + + + ''(RETURN 2)>) + (T + '.RN> + + ''(RETURN 2)>)>>)>)>> + + + + +) + (VEC ,TYPE-NAMES) NUM) + #DECL ((CHANNEL) CHANNEL (DATA) TTY-CHANNEL (VEC) + (NUM) FIX) + '(RETURN 2)>> + > + "UNKNOWN") + ()>)>> + +) VAL + (QC )) + #DECL ((CHANNEL) CHANNEL (DATA) TTY-CHANNEL (VAL) ) + '(RETURN 2)>> + >> + <+ .VAL .QC>) + ( .QC)>> + + <>) + "AUX" (DATA:TTY-CHANNEL ) + VAL: + (ECHO?:> + + ,TT-ECO>>>) + (IMAGE?:> + <0? + ,TT-DAM>>) + (CHR 0) + "VALUE" ) + + > + .ECHO?> + >)> + .CHR) + ( + '(RETURN 2)>> + >>> + + >)> + '(RETURN 2)>> + >) + (<==? <1 .TC> *600220*> ; "IOX4" + ; "Come here when interrupted during the BIN. We'll + just try again, but maybe the interrupt handler + did something odd." + ) + (T + >)> + + > + > + + >)>)> + + ) + ( + <>) + (T + .CHR)>)>> + + >)>>> + +)) + #DECL ((CHANNEL) CHANNEL (DATA) TTY-CHANNEL) + + <0? >> + <>) + ()>> + +) + (CONT 0) "AUX" (DATA )) + #DECL ((TTY) CHANNEL (BUF) STRING (LEN CONT) FIX (DATA) TTY-CHANNEL) + + ) + (T + .BUF > .CONT>)>> + +)) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL (NEW) STRING) + + + .NEW) + (T + )>> + +)) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL (NEW) FIX) + + + .NEW) + (T + )>> + +) (END <>) + (NOMORE <>) + "AUX" (DATA ) + (OB ) (BUF ) CT + TS + (SPROMPT + + STRING>> + .TS)>) + (PROMPT + >>) + TTAB:BYTES) + #DECL ((DATA) TTY-CHANNEL (TTY) CHANNEL (BUF OB) STRING (CONT) FIX + (RBUF END) (NOMORE) + (SPROMPT PROMPT) ) + >)> + + + STRING>> + .TS)>>)> + >) + (<0? > + > + > + + + >> + .OB .BUF>)>)>) + ()> + + .PROMPT> + 1>>)> + ; "Eat and echo queued chars" + )) + > + <1 .TB .CHR> + > + > + ) + (T + )>> + + .BUF .CONT + >> + <==? .CT >> + 320>>> + + >> + .BUF > + > + + )> + .CT> + + + )> + .CT> + +)) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL) + '(RETURN 2)> + ,TC-MOV>>>> + +) + "AUX" (DATA )) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL + (CHRS) ) + > + + )>>) + (T )>> + +) "TUPLE" MORE + "AUX" (DATA )) + #DECL ((LENGTH) (TTY) CHANNEL (DATA) TTY-CHANNEL + (CHRS) + (MORE) ]>) + + <+ + >> + .MORE>>> + +> + +)) + #DECL ((TTY) CHANNEL (CHRS) + (LENGTH) (BS) STRING (VALUE) ) + + )>>) + ( + + 1) + (T + >> + + + >)> + )) + #DECL ((REM) FIX (ANY?) ) + + + > + <1 .BS !\0>) + (.NEG? + > + <1 .BS !\->)> + > + >)> + > + > + <1 > >>> + >)>> + +) (MODE "") (BSZ "") + OBUF? IBUF? + "AUX" OJFN IJFN ERR VAL) + #DECL ((OJFN IJFN ERR) ) + > + + ) + ()>)> + > + + >) + ()>)> + + + ) + ( FIX> + 7 <>>> + ) + (T )> + > + )> + 0 + .OJFN + )> + 0 + .VAL + .VAL + <> + 0 + <> + <>] + TTY-CHANNEL>> + +) + (CURMOD + ,TT-ECO>>>)) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL (ON? CURMOD) ) + + ,TT-ECO>> + >)> + .TTY> + +) + (CURMOD + <0? ,TT-DAM>>)) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL (ON? CURMOD) ) + + > + + -1>)> + % + FIX>>) + (T + + >>)>> + >)> + .TTY> + +\ + +) (FLUSH? T) + "AUX" (DATA )) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL (FLUSH?) ) + + '(RETURN 2)>> + ; "Make sure not in image mode" + > + ; "Make sure echoing on" + + ; "Save this for future resets" + >) + (T + > + > + >)> + ; "Throw away typeahead" + >)>)> + + + >>)> + + + >>)> + + .TTY> + +)) + #DECL ((CHANNEL) CHANNEL (BIT) FIX (DATA) TTY-CHANNEL) + + T)>)>> + +\ + +)) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL (X Y) FIX) + + > + T> + +)) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL (OPER) ATOM (NEW) FIX) + + + ) + (T + )>) + (<==? .OPER PAGE-HEIGHT> + + ) + (T + )>) + (<==? .OPER PAGE-X> + + ) + (T + )>) + (<==? .OPER PAGE-Y> + + ) + (T + )>)>> + +\ + +) (BOT <>) + "AUX" (DATA )) + #DECL ((TTY) CHANNEL (N) FIX (TOP BOT) + (DATA) TTY-CHANNEL) + T) + (> ) + (T + >)> + + 1>>)> + >>)>> + +) (RIGHT <>) + "AUX" (DATA )) + #DECL ((TTY) CHANNEL (N) FIX (LEFT RIGHT) ) + > ) + (T + >)> + + 1>>)> + .LEFT>>)>> + +\ + + + ,/VTCLR>> + + ,/VTCEL>> + + ,/VTCEW>> + + + ,/VTADV .N>> + + ,/VTERA>> + +)) + #DECL ((TTY) CHANNEL (N) FIX) + )> + ,/VTBEC .N>> + +\ + +"SUBTITLE Cursor movement of various sorts" + + + ,/VTHOM>> + + + ,/VTHMD>> + + + ,/VTHRZ .X>> + + .Y> + ,/VTVRT .Y>> + +)) + #DECL ((TTY) CHANNEL (CD) TTY-CHANNEL) + + ; "Caused by tops-20 bug with binary output" + -1> + >>> + +)> + ,/VTBCK .N>> + + (.N)> + ,/VTDWN .N>> + + (<- .N>)> + ,/VTUP .N>> + + + ,/VTFWD .N>> + +\ + + ,/VTSAV>> + + ,/VTRES>> + +) + SPD) + #DECL ((TTY) CHANNEL (AMT) FIX (DATA) TTY-CHANNEL (SPD) ) + *27* '(RETURN 3)>>> + <==? .SPD -1>> + )> + > + > 7000.0>>> + + + + >>)> + )> + + + )> + <1 .BS > + > + >>> + +) + (Q ) (QC )) + #DECL ((CHANNEL) CHANNEL (CHAR) CHARACTER (DATA) TTY-CHANNEL) + + + ) + ( + >> + ) + (<==? .QC > + > + >) + (T + > .CHAR> + )> + .CHAR> + +> 0> + >> + > CHARACTER> + >) + (T + > + >>) + (>>)>)> + .CHR)>> + +\ + +) + TS) + #DECL ((TTY) CHANNEL (DATA) TTY-CHANNEL (TS) ) + + + ,/PRIIN> ) + (T >)> + > + + >> + + > + + >)> + > + + >> + + > + + >)> + + > + > + + \ No newline at end of file