1*0Sstevel@tonic-gate# 2*0Sstevel@tonic-gate# CDDL HEADER START 3*0Sstevel@tonic-gate# 4*0Sstevel@tonic-gate# The contents of this file are subject to the terms of the 5*0Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only 6*0Sstevel@tonic-gate# (the "License"). You may not use this file except in compliance 7*0Sstevel@tonic-gate# with the License. 8*0Sstevel@tonic-gate# 9*0Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*0Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing. 11*0Sstevel@tonic-gate# See the License for the specific language governing permissions 12*0Sstevel@tonic-gate# and limitations under the License. 13*0Sstevel@tonic-gate# 14*0Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each 15*0Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*0Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the 17*0Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying 18*0Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner] 19*0Sstevel@tonic-gate# 20*0Sstevel@tonic-gate# CDDL HEADER END 21*0Sstevel@tonic-gate# 22*0Sstevel@tonic-gate# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T 23*0Sstevel@tonic-gate# All Rights Reserved 24*0Sstevel@tonic-gate 25*0Sstevel@tonic-gate 26*0Sstevel@tonic-gate#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.6 */ 27*0Sstevel@tonic-gate# # -------------------------------- 28*0Sstevel@tonic-gate# 29*0Sstevel@tonic-gate# heath: HEATHKIT and ZENITH 30*0Sstevel@tonic-gate# 31*0Sstevel@tonic-gate# Manufacturer: HEATHKIT and ZENITH 32*0Sstevel@tonic-gate# Class: I 33*0Sstevel@tonic-gateh19-a|heath-ansi|heathkit-a|heathkit h19 ansi mode, 34*0Sstevel@tonic-gate cr=^M, cud1=^J, ind=^J, bel=^G, il1=\E[1L$<1*>, am, cub1=^H, ed=\E[J, 35*0Sstevel@tonic-gate el=\E[K, clear=\E[2J, cup=\E[%i%p1%d;%p2%dH, cols#80, 36*0Sstevel@tonic-gate dch1=\E[1P, dl1=\E[1M$<1*>, cud1=\E[1B, 37*0Sstevel@tonic-gate rmir=\E[4l, home=\E[H, smir=\E[4h, lines#24, mir, 38*0Sstevel@tonic-gate cuf1=\E[1C, smacs=\E[10m, rmacs=\E[11m, msgr, ht=^I, it#8, 39*0Sstevel@tonic-gate rmso=\E[0m, smso=\E[7m, cuu1=\E[1A, cvvis=\E[>4h, cnorm=\E[>4l, 40*0Sstevel@tonic-gate kbs=^h, kcuu1=\E[1A, kcud1=\E[1B, kcub1=\E[1D, kcuf1=\E[1C, 41*0Sstevel@tonic-gate khome=\E[H, 42*0Sstevel@tonic-gate kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, lf6=blue, 43*0Sstevel@tonic-gate lf7=red, lf8=white, kf6=\EOP, kf7=\EOQ, kf8=\EOR, 44*0Sstevel@tonic-gate ri=\EM, is2=\E<\E[>1;2;3;4;5;6;7;8;9l\E[0m\E[11m\E[?7h, 45*0Sstevel@tonic-gateh19-bs|heathkit w/keypad shifted, 46*0Sstevel@tonic-gate smkx=\Et, rmkx=\Eu, use=h19-b, 47*0Sstevel@tonic-gateh19-smul|heathkit w/keypad shifted/underscore cursor, 48*0Sstevel@tonic-gate smkx=\Et, rmkx=\Eu, use=h19-u, 49*0Sstevel@tonic-gateh19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19, 50*0Sstevel@tonic-gate cr=^M, cud1=^J, ind=^J, bel=^G, il1=\EL$<1*>, am, cub1=^H, 51*0Sstevel@tonic-gate ed=\EJ, el=\EK, clear=\EE, cup=\EY%p1%' '%+%c%p2%' '%+%c, cols#80, 52*0Sstevel@tonic-gate dch1=\EN, dl1=\EM$<1*>, cud1=\EB, rmir=\EO, home=\EH, smir=\E@, 53*0Sstevel@tonic-gate lines#24, mir, cuf1=\EC, smacs=\EF, rmacs=\EG, msgr, ht=^I, it#8, 54*0Sstevel@tonic-gate ri=\EI, rmso=\Eq, smso=\Ep, cuu1=\EA, cvvis=\Ex4, cnorm=\Ey4, 55*0Sstevel@tonic-gate kbs=^h, kcuu1=\EA, kcud1=\EB, kcub1=\ED, kcuf1=\EC, khome=\EH, 56*0Sstevel@tonic-gate kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, 57*0Sstevel@tonic-gate lf6=blue, lf7=red, lf8=white, kf6=\EP, kf7=\EQ, kf8=\ER, 58*0Sstevel@tonic-gate hs, eslok, tsl=\Ej\Ex5\EY8%p1%' '%+%c\Eo\Eo, fsl=\Ek\Ey5, 59*0Sstevel@tonic-gateh19-u|heathkit with underscore cursor, 60*0Sstevel@tonic-gate cvvis@, cnorm@, use=h19-b, 61*0Sstevel@tonic-gate# Info: 62*0Sstevel@tonic-gate# This still doesn't work right - something funny is going on 63*0Sstevel@tonic-gate# with return # and linefeed in the reach program. Apparently 64*0Sstevel@tonic-gate# cr acts like crlf and lf is ignored. There is a "literal end 65*0Sstevel@tonic-gate# of line mode" which works right, but this will cause cr's to 66*0Sstevel@tonic-gate# appear in files that are spooled. This description assumes 67*0Sstevel@tonic-gate# "normal end of line mode". 68*0Sstevel@tonic-gate# 69*0Sstevel@tonic-gatereach|h89|h89 running reach, 70*0Sstevel@tonic-gate cr@, cud1=\EB, ind=\r\l, is2=\Ey3\Ev, use=h19-b, 71*0Sstevel@tonic-gatealto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19, 72*0Sstevel@tonic-gate lines#60, il1=\EL, dl1=\EM, use=h19, 73*0Sstevel@tonic-gate# Info: 74*0Sstevel@tonic-gate# The major problem with the Z29 is that it requires more 75*0Sstevel@tonic-gate# padding than the Z19. Once again, here's a little termcap 76*0Sstevel@tonic-gate# entry for it that will do the trick. 77*0Sstevel@tonic-gate# 78*0Sstevel@tonic-gate# The problem declaring an H19 to be synonomous with a Z29 is that 79*0Sstevel@tonic-gate# it needs more padding. It especially loses if a program attempts 80*0Sstevel@tonic-gate# to put the Z29 into insert mode and insert text at 9600 baud. It 81*0Sstevel@tonic-gate# even loses worse if the program attempts to insert tabs at 9600 82*0Sstevel@tonic-gate# baud. Adding padding to text that is inserted loses because in 83*0Sstevel@tonic-gate# order to make the Z29 not die, one must add so much padding that 84*0Sstevel@tonic-gate# whenever the program tries to use insert mode, the effective 85*0Sstevel@tonic-gate# rate is about 110 baud. 86*0Sstevel@tonic-gate# 87*0Sstevel@tonic-gate# What program would want to put the terminal into insert mode 88*0Sstevel@tonic-gate# and shove stuff at it at 9600 baud you ask? 89*0Sstevel@tonic-gate# 90*0Sstevel@tonic-gate# Emacs. Emacs seems to want to do the mathematically optimal 91*0Sstevel@tonic-gate# thing in doing a redisplay rather than the practical thing. 92*0Sstevel@tonic-gate# When it is about to output a line on top of a line that is 93*0Sstevel@tonic-gate# already on the screen, instead of just killing to the end of 94*0Sstevel@tonic-gate# the line and outputing the new line, it compares the old line 95*0Sstevel@tonic-gate# and the new line and if there are any similarities, it 96*0Sstevel@tonic-gate# constructs the new line by deleting the text on the old line 97*0Sstevel@tonic-gate# on the terminal that is already there and then inserting new 98*0Sstevel@tonic-gate# text into the line to transform it into the new line that is 99*0Sstevel@tonic-gate# to be displayed. The Z29 does not act kindly to this. 100*0Sstevel@tonic-gate# 101*0Sstevel@tonic-gate# But don't cry for too long.... There is a solution. You can make 102*0Sstevel@tonic-gate# a termcap entry for the Z29 that says the Z29 has no insert mode. 103*0Sstevel@tonic-gate# Then Emacs cannot use it. "Oh, no, but now inserting into a 104*0Sstevel@tonic-gate# line will be really slow", you say. Well there is a sort of a 105*0Sstevel@tonic-gate# solution to that too. There is an insert character option on 106*0Sstevel@tonic-gate# the Z29 that will insert one character. Unfortunately, it 107*0Sstevel@tonic-gate# involves putting the terminal into ansi mode, inserting the 108*0Sstevel@tonic-gate# character, and changing it back to H19 mode. All this takes 12 109*0Sstevel@tonic-gate# characters. Pretty expensive to insert one character, but it 110*0Sstevel@tonic-gate# works. Either Emacs doesn't try to use its inserting hack when 111*0Sstevel@tonic-gate# it's only given an insert character ability or the Z29 doesn't 112*0Sstevel@tonic-gate# require padding with this (the former is probably more likely, 113*0Sstevel@tonic-gate# but I haven't checked it out). 114*0Sstevel@tonic-gate# 115*0Sstevel@tonic-gatez29|zenith29|z29b|, 116*0Sstevel@tonic-gate cr=^M, cud1=^J, ind=^J, bel=^G, is2=\E<\E[?2h\Ev, il1=\EL$<1>, am, 117*0Sstevel@tonic-gate cub1=^H, ed=\EJ$<14>, el=\EK$<1>, clear=\EE$<14>, 118*0Sstevel@tonic-gate cup=\EY%p1%' '%+%c%p2%' '%+%c, 119*0Sstevel@tonic-gate cols#80, dch1=\EN$<0.1*>, dl1=\EM$<1>, cud1=\EB, home=\EH, 120*0Sstevel@tonic-gate ich1=\E<\E[1@\E[?2h$<1>, lines#24, cuf1=\EC, 121*0Sstevel@tonic-gate rmacs=\EF, smacs=\EG, ind=\n$<2>, msgr, ht=^I, ri=\EI$<2>, rmso=\Eq, 122*0Sstevel@tonic-gate smso=\Ep, cuu1=\E$<1>A, cvvis=\Ex4, cnorm=\Ey4, kbs=^h, kcuu1=\EA, 123*0Sstevel@tonic-gate kcud1=\EB, kcub1=\ED, kcuf1=\EC, khome=\EH, kf1=\ES, 124*0Sstevel@tonic-gate kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, 125*0Sstevel@tonic-gate kf9=\E0I, kf0=\E~, lf0=home, 126*0Sstevel@tonic-gate cbt=\E-, smul=\Es8, rmul=\Es0, 127