"Display operations" "Get/set x/y position, width, height" )) #DECL ((CHANNEL) CHANNEL (NEW) FIX (DATA) TTY-CHANNEL) > ) (T )>) (<==? .OPER PAGE-HEIGHT> > ) (T )>) (<==? .OPER PAGE-X> > ) (T >)>) (<==? .OPER PAGE-Y> > ) (T >)>)>) (0)>> ; "Anything that is simple (perhaps change cursor position, and output some string) is handled by DO-TTY-OP." > > > ) (TTY )) #DECL ((N) FIX (CHANNEL) CHANNEL (DATA) TTY-CHANNEL (TTY) TTY) > >)> > 0> )>>)>> > ) H) #DECL ((CHANNEL) CHANNEL (DATA) TTY-CHANNEL) >> 1>>>) (T )>> > .NEW>> > ) (TTY )) #DECL ((CHANNEL) CHANNEL (DATA) TTY-CHANNEL (TTY) TTY) > >> ) (TTY )) #DECL ((CHANNEL) CHANNEL (DATA) TTY-CHANNEL (TTY) TTY) >)>> ) (TTY ) (CURX ) TD WIDTH HEIGHT CURY NEWX NEWY) #DECL ((CHANNEL) CHANNEL (N CURX WIDTH HEIGHT CURY NEWX NEWY) FIX (TC) TTY-CHANNEL (TTY) TTY) >) ( >>> >)>) (T > > > > > > > )>> >)> ) (T )>)>> ) (TTY ) (CURX ) (TD ) (WIDTH ) HEIGHT CURY NEWX NEWY) #DECL ((CHANNEL) CHANNEL (N CURX WIDTH HEIGHT CURY NEWX NEWY) FIX (TC) TTY-CHANNEL (TTY) TTY (TD) TTY-DESC) >) (> .WIDTH> >>> )>) (T > > >> >> >)> )>> ) (TTY ) (TD ) (CURY ) (HEIGHT )) #DECL ((CHANNEL) CHANNEL (TC) TTY-CHANNEL (TTY) TTY (TD) TTY-DESC (CURY HEIGHT N) FIX) >) (> 0> .CURY>>> .CURY>)>) (T > .CURY>)>> ) (TTY ) (TD ) (CURY ) (HEIGHT )) #DECL ((CHANNEL) CHANNEL (TC) TTY-CHANNEL (TTY) TTY (TD) TTY-DESC (CURY HEIGHT N) FIX) >) (> .HEIGHT> <0? >> ; "Output a linefeed where possible." >) ( .CURY>>> .CURY>)>) (T > .CURY>)>> > ) (TTY ) (X )) #DECL ((CHANNEL) CHANNEL (N X) FIX (TC) TTY-CHANNEL (TTY) TTY) )) #DECL ((NX) FIX) >) (T > )> ; "Avoid absolute cursor position where possible on rubouts" > ) (<1? <- .X .NX>> ) (T )> )> > 0> > 1>>)> > 1>>) ()>>)>> "More operations--line and char i&d" ) (BOT <>) "AUX" (TC ) (TTY ) (TD ) (RBOT <- 1>) TEMP (SAVX ) (SAVY )) #DECL ((CHANNEL) CHANNEL (N) FIX (TOP BOT) (TC) TTY-CHANNEL (TTY) TTY (TD) TTY-DESC (TEMP RBOT) FIX) )> )> )> >> > > ; "Try defining a scrolling region, making things much simpler" ; "Deleting lines" >> )>>) (T >> )>>)> >) (<==? .BOT .RBOT> ; "Straight line insert/delete" ) ()> > >> )>>>) (T ; "Simulated scrolling region" >> >> > ) (T >> > >)>)> )>> ) (RIGHT <>) "AUX" (TC ) (TTY ) (TD ) (RRIGHT <- 1>) (SAVX ) TEMP) #DECL ((CHANNEL) CHANNEL (N RRIGHT SAVX) FIX (LEFT RIGHT) (TC) TTY-CHANNEL (TTY) TTY (TD) TTY-DESC) )> )> )> >> >)>>