FreeBSD termcap has:
dm2500|datamedia2500|2500|datamedia 2500:\
:do=^J:al=15^P\n^X^]^X^]:le=^H:bs:ce=^W:cl=^^^^\177:\
:cm=^L%r%n%.%.:co#80:dc=10*^P\b^X^]:dl=10*^P^Z^X^]:\
:dm=^P:ed=^X^]:ei=10\377\377^X^]:ho=^B:ic=10*^P^\^X^]:\
:im=^P:li#24:nc:nd=^\:pc=\377:so@=^N:se=^X^]:up=^Z:
(whatever THAT means!)
And in english (from an old copy of ITS TECO):
IFN DM2500,[
SUBTTL DM2500
DM25TB: 2000+24.,,79.
(%TOERS+%TOMVB+%TOMVU+%TOLWR+%TOLID+%TOCID+%TOFCI)
CALL DMCPS
CALL DMCEOL
CALL DMCEOL ;CLOSEST WE CAN COME
CALL DMCLRS
REPEAT 3, NOP
CALL DMINSL
CALL DMDELL
CALL DMINSC
CALL DMDELC
CALL DMRST
DMCPS: JUMPE B,[MOVEI A,^B ;HOME IS EASY
PBOUT
RET]
MOVEI A,^L ;ELSE ^L<HPOS#140><VPOS#140>
PBOUT
HRRZ A,B
XORI A,"`
PBOUT
HLRZ A,B
XORI A,"`
DMCP2: PBOUT
RET
DMCEOL: MOVEI A,^W
JRST DMCP2
DMCLRS: MOVEI A,^^
PBOUT ;[
DMRST: MOVEI A,^] ;RESTORE ROLL MODE
JRST DMCP2
DMINSL: SAVE C
SAVE B
CALL DMINS1 ;POSITION RIGHT AND ENTER I/D MODE
MOVEI A,30. ;COMPUTE AMOUNT OF FILL NEEDED
SUBI A,(BP) ;((30.-(BP))*OSPEED-2400.)/14400.
SKIPN B,OSPEED ;SPEED OF OUTPUT
MOVEI B,9600. ;ASSUME MAX IF UNKNOWN
IMULI B,(A)
SUBI B,2400.
IDIVI B,14400. ;MAGIC NUMBER IN B
DMINS2: MOVEI A,^J ;INSERT A LINE
PBOUT
MOVEI A,177 ;FILL CHARACTER
SKIPE C,B ;GET NUMBER OF FILL CHARS NEEDED
PBOUT
SOJG C,.-1 ;OUTPUT THAT MANY
SOJG Q,DMINS2 ;REPEAT FOR NUMBER OF LINES REQUESTED
REST B
DMINS3: REST C
MOVEI A,^X
JRST DMCP2
DMDELL: SAVE C
CALL DMINS1
DMDEL2: MOVEI A,^Z ;DELETE A LINE
PBOUT
MOVEI A,177 ;ONE FILL CHAR
SKIPE C,OSPEED
CAIL C,9600.
PBOUT ;ONLY FOR 9600 BAUD OR MORE THOUGH
SOJG Q,DMDEL2
JRST DMINS3
DMINS1: HRROI A,[.BYTE 7 ? ^L ? "` ? 0]
PSOUT
MOVEI A,140(BP)
PBOUT
MOVEI A,^P
PBOUT
RET
DMINSC: SAVE C
HRROI A,[.BYTE 7 ? ^P ? ^\ ? ^X ? 0]
SKIPE C,OSPEED
CAIL C,9600. ;IF AT 9600 OR MORE,
HRROI A,[.BYTE 7 ? ^P ? 40 ? 177 ? ^X ? ^H ? 40 ? ^H] ;USE HAIRY ONE
PSOUT
REST C
SOJG Q,DMINSC
RET
DMDELC: HRROI A,[.BYTE 7 ? ^P ? ^H ? 0]
PSOUT
SAVE C
MOVEI A,177
SKIPE C,OSPEED
CAIL C,9600. ;IF AT 9600 OR MORE,
PBOUT ;NEED ONE FILL CHAR
JRST DMINS3
] ;DM2500