home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
forth
/
compiler
/
fpc
/
source
/
wyse50.seq
< prev
next >
Wrap
Text File
|
1988-02-08
|
3KB
|
83 lines
\ WYSE50.BLK A terminal emulator for the WYSE 50 by Tom Zimmer
comment:
A terminal driver for the WYSE model 50 terminal
This allows wyse escape sequences to be EMITed, and they will be
interpreted properly. In a limited manner, of course. Only those
implimented will be performed.
comment;
VARIABLE ESCFLG VARIABLE CVAL VARIABLE RVAL
VARIABLE ACCUM VARIABLE ATFLG
: ?AT ( C1 --- )
DUP ASCII a = ESCFLG @ AND
IF DROP ACCUM OFF ATFLG ON R> DROP
THEN ;
: ?# ( C1 --- )
DUP ASCII 9 <= OVER ASCII 0 >= AND ESCFLG @ AND
IF 48 - ACCUM @ 10 * + ACCUM ! R> DROP
THEN ;
: ?ROW ( C1 --- )
DUP ASCII R = ESCFLG @ AND ATFLG @ AND
IF DROP ACCUM @ RVAL ! ACCUM OFF R> DROP
THEN ;
: ?COL ( C1 --- )
DUP ASCII C = ESCFLG @ AND
IF DROP ACCUM @ CVAL ! ACCUM OFF
CVAL @ 1- RVAL @ 1- IBM-AT
#LINE OFF #OUT OFF ATFLG OFF
ESCFLG OFF R> DROP
THEN ;
: ?-LINE ( C1 --- )
DUP ASCII R = ESCFLG @ AND
IF DROP ESCFLG OFF IBM--LINE R> DROP THEN ;
\ NOT supporting BLOT on this system for now. ************
\ : ?BLOT ( C1 --- )
\ DUP ASCII t = ESCFLG @ AND
\ IF DROP ESCFLG OFF 0 IBM-BLOT R> DROP
\ THEN ;
: ?EMIT ( C1 --- )
ESCFLG @ 0=
IF (EMIT) R> DROP THEN ;
: <W50CR> ( --- )
13 (CONSOLE) 10 (CONSOLE)
#OUT OFF
#LINE DUP @ 1+ 24 MIN SWAP ! ;
DEFER W50CR ' <W50CR> IS W50CR
: ?DOCR ( C1 --- )
\ Ignore Line feed
DUP CONTROL J = IF DROP R> DROP EXIT THEN
\ pass Carraige Return to CR
DUP CONTROL M = IF DROP W50CR R> DROP THEN ;
: ?ESC ( C1 --- )
DUP 27 = IF DROP ESCFLG ON R> DROP THEN ;
: ?DARK ( C1 --- )
DUP CONTROL Z = IF DROP IBM-DARK
#LINE OFF #OUT OFF 0 0 IBM-AT R> DROP THEN ;
: W50-IBM.EMIT ( C1 --- )
?ESC ?DARK ?DOCR ?EMIT ?AT ?ROW
?COL ?# ( ?BLOT ) ?-LINE
ESCFLG OFF ;
: W50-IBM ['] W50-IBM.EMIT IS EMIT
['] (TYPE) IS TYPE ;