home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 June
/
SIMTEL_0692.cdr
/
msdos
/
forth
/
uniforth.arc
/
VEDITOR.FTH
< prev
next >
Wrap
Text File
|
1980-01-01
|
10KB
|
1 lines
*********** CUSTOMIZATION SCREENS FOR VIDEO EDITOR ************* The video editor is preconfigured for the IBM-PC. We've included customize screens for three popular terminal types. One should match your terminal closely enough that you can customize the editor. The cursor key/menu screens enable you to use any key pattern you wish with the editor (for example, set it up ala Wordstar or to use function keys). Example: customize for VT-100, change menu. 3 LOAD 6 LOAD try it, then sysgen. ( Terminal dependent characteristics -- ADM5) EDITOR DEFINITIONS : (HOME) ( -- ..move cursor to upleft) 30 EMIT ; : (PAGE) ( -- ..clear screen) 26 EMIT ; : (BRIT) ( norm video intensity) 27 EMIT 40 EMIT ; : (DIM) ( half intensity) 27 EMIT 41 EMIT ; : (GOTO) ( xval yval --- ...goto x,y wrt upper left) 27 EMIT 61 EMIT 0 MAX 23 MIN 32 + EMIT 0 MAX 79 MIN 32 + EMIT ; ' (PAGE) $PAGE ! ' (GOTO) $GOTO ! ' (HOME) $HOME ! ' (BRIT) $BRIT ! ' (DIM) $DIM ! ' NOOP $INIT ! FORTH DEFINITIONS ;S ( Terminal dependent characteristics -- H-19) EDITOR DEFINITIONS : (HOME) ( -- move cursor to upper left) 27 EMIT 72 EMIT ; : (PAGE) ( -- clear screen) 27 EMIT 69 EMIT ; : (GOTO) ( xval yval --- ...goto x,y wrt upper left) 27 EMIT 89 EMIT 0 MAX 23 MIN 32 + EMIT 0 MAX 79 MIN 32 + EMIT ; ' (PAGE) $PAGE ! ' (GOTO) $GOTO ! ' (HOME) $HOME ! ' NOOP $BRIT ! ' NOOP $DIM ! ' NOOP $INIT ! FORTH DEFINITIONS ;S ( Terminal dependent characteristics -- VT-100) EDITOR DEFINITIONS : Z.R ( n1 n2 --- ...print n1 in n2 fields, zero filled) >R S->D SWAP OVER DABS <# R> 0 DO # LOOP SIGN #> TYPE ; : CSI ( control sequence introducter, ESC [) 27 EMIT 91 EMIT ; : (HOME) ( -- move to upper left) CSI 72 EMIT ; : (PAGE) ( -- clear screen) CSI 50 EMIT 74 EMIT ; : (BRIT) ( -- full intensity) CSI 49 EMIT 109 EMIT ; : (DIM) ( -- half intensity) CSI 48 EMIT 109 EMIT ; : (GOTO) ( xval yval --- ...goto x,y wrt upper left) CSI 1+ 2 Z.R 59 EMIT 1+ 2 Z.R 72 EMIT ; --> ( Terminal dependent characteristics -- VT-100 cont'd) ' (PAGE) $PAGE ! ' (GOTO) $GOTO ! ' (HOME) $HOME ! ' NOOP $BRIT ! ' NOOP $DIM ! ' NOOP $INIT ! FORTH DEFINITIONS ;S ;S ( UNIFORTH-style cursor control keys -- 1 123183 aah) HEX EDITOR 1B ' V.FLSH >BODY ! ( end edit with flush) 18 ' V.ABRT >BODY ! ( end edit w/abort, loose last block) 0E ' V.NEXT >BODY ! ( next block) 10 ' V.OLD >BODY ! ( old block) 0A ' V.JMP >BODY ! ( jump block) 09 ' V.INS >BODY ! ( insert toggle) 02 ' V.BAK >BODY ! ( backward 1 word) 06 ' V.FWD >BODY ! ( forward 1 word) 7F ' V.B4 >BODY ! ( del char b4 cursor) 11 ' V.AT >BODY ! ( del char at cursor) 13 ' V.STR >BODY ! ( string mode) 17 ' V.BL >BODY ! ( insert blank) 1A ' V.DELW >BODY ! ( delete word) DECIMAL --> ( UNIFORTH-style cursor control keys -- 2 123183 aah) HEX 01 ' V.ADDL >BODY ! ( add blank line) 0B ' V.DELL >BODY ! ( delete line) 14 ' V.TRAN >BODY ! ( trans line to stack) 19 ' V.YANK >BODY ! ( yank line from stack) 16 ' V.CEOL >BODY ! ( clear to end-of-line) 0C ' V.CURL >BODY ! ( cursor left) 08 ' V.CURLA >BODY ! ( also cursor left) 12 ' V.CURR >BODY ! ( cursor right) 04 ' V.CURD >BODY ! ( cursor down) 15 ' V.CURU >BODY ! ( cursor up) 0D ' V.NEWL >BODY ! ( move to new line) 07 ' V.HOME >BODY ! ( home cursor) 05 ' V.EOL >BODY ! ( move to end-of-line) 0F ' V.PREV >BODY ! ( move to previous line) DECIMAL --> ( UNIFORTH-syle menu 123183 aah) BLK @ BLOCK 128 + MENARR 5 64 * CMOVE FORTH ;S fill menu array ^G=gohome ^L=left ^R=right ^U=up ^D=down ^F=fwd, ^B=bak tab ^O=old line ^E=end line CR=nxt line ^V=void->EOL ^W=wrt blank^K=kill line ^A=add line ^T=trans to, ^Y=yank from line stack DEL=del b4, ^Q=del at curs ^Z=zap wd ^I=insert, ^S=string modesExits: ESC=flush, ^X=noflush Block: ^P=prev, ^N=next ^J=jump ;S