Trailing-Edge
-
PDP-10 Archives
-
BB-M836A-BM
-
tools/sed/sedd30.mac
There are 2 other files named sedd30.mac in the archive. Click here to see a list.
TITLE SEDD30 - DATAMEDIA 3000 TERMINAL DEFINITIONS FOR THE EDITOR
SUBTTL A CHRISTOPHER HALL FECIT
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1981 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;LOAD THE EDITOR BY: .COMP SED,SEDD30
; .LOAD/RE SEDD30,SED
; .SS SED
SEARCH SEDSYM
IFE TOPS10,<SEARCH MONSYM>
EXTERN CPOPJ,PUTTYP,PUTSTG,PUTSQ1,PUTNUM,TRMNAM,TYPBUF
EXTERN CHOME,CDOWN,CRIGHT
INTERN TERMNL
FTFAST==0 ;SET THIS IF TERMINAL SENDS OUT XON-XOFF'S
TERMNL: OTABLE ;ADDRESS OF THE TERMINAL TABLE TO USE
;TERMINAL OUTPUT TABLE - SEQUENCES TO MAKE THE TERMINAL DO SPECIAL THINGS
;FILL IN WITH THE CODES FOR YOUR TERMINAL
OTABLE: BYTE (7) 33,"A" ;CURSOR UP
BYTE (7) 12 ; DOWN
BYTE (7) 33,"C" ; RIGHT
BYTE (7) 10 ; LEFT
BYTE (7) 33,"H" ; HOME
BYTE (7) 33,"J" ;CLEAR TO END OF PAGE
BYTE (7) 33,"K" ;CLEAR TO END OF LINE
BYTE (7) 12 ;ROLL UP AND CLEAR LINE
BYTE (7) 0 ;ROLL DOWN AND CLEAR LINE
BYTE (7) 33,"O" ;PROTECT ON (CPOPJ IF NONE)
BYTE (7) 33,"N" ;PROTECT OFF (CPOPJ IF NONE)
BYTE (7) 0 ;INSERT LINE (0 IF NONE)
BYTE (7) 33,"R" ;INSERT SPACE (0 IF NONE)
BYTE (7) 0 ;DELETE LINE (0 IF NONE)
BYTE (7) 0 ;DELETE SPACE (0 IF NONE)
BYTE (7) 33,"Y"," ","7" ;MOVE TO BOTTOM
BYTE (7) 33,"H",33,"J" ;HOME AND CLEAR ENTIRE PAGE
POSCUR ;ROUTINE TO POSITION TO CHARACTER
POSLIN ;ROUTINE TO POSITION TO START OF LINE
^D24 ;LINES PER PAGE
^D80 ;CHARACTERS PER LINE
IFE FTFAST,<
LSD!WRP ;TERMINAL-DEPENDENT FLAGS
>
IFN FTFAST,<
LSD!WRP!NPG ;TERMINAL-DEPENDENT FLAGS (KEEP TTY PAGE)
>
CPOPJ ;ROUTINE TO CALL ON ENTRY
CPOPJ ;ROUTINE TO CALL ON EXIT
0,,0 ;NUMBER OF NULLS TO OUTPUT,,NULL CHARACTER
ITABLE ;ADDRESS OF INPUT CHARACTER TABLE
0 ;MARK TO DISPLAY ON ENTER (OMIT IF MRK NOT SET)
;TERMINAL INPUT TABLE - TELLS WHAT CONTROL CHARACTERS OR SEQUENCES
;INVOKE WHICH COMMANDS
;NOTE: D3000 KEYS NOT USED: PF10=$y<CR> XMIT=$L XMIT-LINE=$T MR=$M
; PRINT=$] ROLL=$V INS-CHAR=$P
IFE FTFAST,<
0 ;CODE FOR RUBOUT (0==RESET)
ITABLE: EXP 40, 1, 2, 3, 4, 5, 6, 7 ;NOTHING SPECIAL
EXP 10,11,12,13,14,15,16,17
EXP 20,21,22,23,24,25,26,27
EXP 30,31,32
-SIZ.IS,,ISUBTB ;ESCAPE NEEDS A SUBTABLE
EXP 35,33,37,36 ;ENTER==CONTROL-]
>
IFN FTFAST,<
;THIS TABLE SETS UP THE KEYBOARD ARRANGEMENT FOR WHEN YOU NEED TO KEEP
;TTY PAGE IN EFFECT BECAUSE THE TERMINAL SENDS OUT ITS OWN CONTROL S AND Q'S
;THOSE TWO CHARACTERS CANNOT BE COMMANDS SINCE SED DOES NOT KNOW WHETHER THE
;USER HAS TYPED THEM OR THEY WERE SENT BY THE TERMINAL.
;SO Q GOES TO A, A AND S GO TO K AND L, K TO ESCAPE-L, AND L TO ESCAPE-T.
0 ;COMMAND FOR RUBOUT (RESET)
ITABLE: EXP 40,21, 2, 3, 4, 5, 6, 7 ;NOTHING SPECIAL
EXP 10,11,12, 1,23,15,16,17
EXP 20, 0,22, 0,24,25,26,27
EXP 30,31,32
-SIZ.IS,,ISUBTB
EXP 35,33,37,36 ;ENTER==CONTROL-]
>
;SUBTABLE. PUT THE MOST FREQUENTLY-USED SEQUENCES FIRST
;ENTER IS PROBABLY THE MOST COMMON OF ALL
ISUBTB: D3PF1,,"p" ;PF1 == ENTER
35,,"C" ;ESCAPE C == CURSOR-RIGHT
36,,"A" ;ESCAPE A == CURSOR-UP
D3PF2,,"q" ;PF2 == RECALL
D3PF3,,"r" ;PF3 == INSERT-MODE
D3PF4,,"s" ;PF4 == MARK
D3PF5,,"t" ;PF5 == TAB
D3PF6,,"u" ;PF6 == LINE
D3PF7,,"v" ;PF7 == CASE
D3PF8,,"w" ;PF8 == ERASE-CHAR
D3PF9,,"x" ;PF9 == HOME
33,,"E" ;ESCAPE E == ENTER
33,,"e"
41,,"I" ;ESCAPE I == INSERT-MODE
41,,"i"
44,,"M" ;ESCAPE M == MARK
44,,"m"
50,,"K" ;ESCAPE K == ERASE-LINE
50,,"k"
47,,"W" ;ESCAPE W == WINDOW
47,,"w"
IFN FTFAST,<
13,,"L" ;ESCAPE L == SLIDE-LEFT
14,,"R" ;ESCAPE R == SLIDE-RIGHT
13,,"l" ;ESCAPE l == SLIDE-LEFT
14,,"r" ;ESCAPE r == SLIDE-RIGHT
>
SIZ.IS=.-ISUBTB
D3PF1: 33,,0
D3PF2: 40,,0
D3PF3: 41,,0
D3PF4: 44,,0
D3PF5: 43,,0
D3PF6: 45,,0
D3PF7: 46,,0
D3PF8: 42,,0
D3PF9: 37,,0
;SUBROUTINE TO MOVE TO ROW (RW), COLUMN (CM)
POSCUR: MOVE T1,[BYTE (7) 33,"Y"]
PUSHJ P,PUTSQ1 ;START IT OFF
MOVEI T1,40(CM) ;GET COLUMN POSITION
IDPB T1,TY
MOVEI T1,40(RW) ;GET ROW POSITION
IDPB T1,TY
POPJ P, ;DONE
;SUBROUTINE TO MOVE TO START OF LINE (T4)
POSLIN: MOVE T1,[BYTE (7) 33,"Y"]
PUSHJ P,PUTSQ1 ;START IT OFF
MOVEI T1,40 ;MOVE TO COLUMN ZERO
IDPB T1,TY
MOVEI T1,40(T4) ;GET ROW POSITION
IDPB T1,TY
POPJ P,
END