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