ken@hpcvlo (07/02/86)
Yes there is a VT100 terminal emulator sold for the IPC by P2i. I hope I have this address correct, I talked with John Palley often during the development of this product, but have had no recent contact. The address on on our data sheet says: P2/i Incorporated 8205 Spain NE, Suite 111 Albuquerque, NM 87109 (505) 245-6585 However the address on an old demo copy of the software says: P2/i Incorporated 1704 Moon N.E. Suite #3 Albuquerque, NM 87112 ****** Datacomm unusable?? Heck I use it all the time as do many people around here. Do you have any specific questions? I'll be more than glad to help. ****** Other alternatives, we can supply a version of kermit. kermit's big advantage is that it runs on almost all machines and is thus very useful for file xfer. We also have a tiny (~100 lines of code) terminal emulator that is so simple that I could be convinced to supply source and then you could have complete control. ****** By the way this response is in no way an advertisement or endorsement for these products. I am merely providing information at the request of the initial note. -Ken Bronstein {hplabs,hpfcla}!hp-pcd!ken (503) 757-2000 X4133
hurf@batcomputer.TN.CORNELL.EDU (Hurf Sheldon) (07/09/86)
Ken, Thanks for the info - my complaint about datacom was with regard to the specific characteristics of the emulator (what terminal does it look like, what character string does what, etc). I am willing to be humble but the documentation is bad , especially for HP. We would very much like to coerce your emulator from you just for kicks. The more we can do to make the IPC productive for us the better. We would like to be able to run emacs (from the host) , vi & some other terminal dependent routines with it. (we are looking for system compatibility) .I enjoy seeing many different types of computers able to access our system effectively. To that end we hope to find a 4010 emulator for it as well. Hurf Sheldon Arpa.css: Hurf@ionvax.tn.cornell.edu Lab of Plasma Studies 369 Upson Hall phone: 607 255 7267 Cornell University Ithaca, N.Y. 14853
ken@hp-pcd.UUCP (07/15/86)
The Datacomm package uses a standard terminal window type on the IPC, which emulates an HP2622 terminal. The specific implementation of the HP2622 terminal is called term0. It is documented in the Integral Personal Computer Programmer's Guide; HP part #82865J. The programmer's guide is very valuable if you plan to do any programming of the IPC. The chapter's cover: General Programming info (alot of good stuff with real examples) Window Manager Reference Term0 Reference HP-GL Reference (for graphics windows that emulate HP plotters) Alpha/Graphics Windows (for high speed Graphics with Alpha capability) You will find that HP terminals tend to share a fair number of features. Thus if you have a description of any HP terminal (HP2648, HP2622, etc.) then you have at least a close description of what Term0 is about. The minimal terminal emulator code that I mentioned really does nothing more than read characters coming into the serial card, and write keys typed out to the serial card. There are many versions of this program running around here. Some are quite nice. But if you want it to do anything fancy, like graphics, or VT100, then you will probably need the help from the Programmmer's guide. Note that the default window created on the IPC is a Term0 window. You can create a Term0 window by typing 'echo' into PAM. You could then type in escape sequences (laborious) and the Term0 driver in ROM will interpret those sequences for you. Thus the dumb terminal emultor which I will also post does NO work to also implement Term0, and thus by default looks like an HP terminal. Note also if you want to 'see' escape sequences being parsed by the Term0 driver then use the 'alpha' function key to turn on 'Display Functions' mode. I hope I am being helpful. We really do not want information about our machine to be a secret. I must also share with you that a number of people here (HP-Corvallis, OR.) got a kick out of your description of our machine as running a UN*X like OS. The OS is SYS V, of course with HP enhancements 8-). I will gladly try to help you with any further questions. Regards, Ken Bronstein hp-pcd!ken (503) 757-2000 X4133
ken@hp-pcd.UUCP (07/15/86)
/* * Minimal Terminal Emulator for the IPC * * This code is NOT a supported HP program. * We make no warranty of any kind with regard to this material. */ #include <stdio.h> #include <fcntl.h> #include <termio.h> #include <signal.h> #include <extty.h> #define ENQ '\005' #define ACK "\006" /******************************************************************* Quick terminal program *******************************************************************/ int done(); char conbuf[100], fdbuf[100]; int fd, tty, i, j, sig_rec, child; struct ocio o; struct termio t, con, old_con; h_break() { signal(SIGINT, SIG_IGN); sig_rec = 1; } send_break() { ioctl(fd, TCSBRK, 0); for(i = 0; i < 25000; i++) ; while( signal(SIGINT, h_break) < 0) ; return; } main(argc, argv) int argc; char *argv[]; { if(argc == 1) fd = open("/dev/cul00", O_RDWR | O_NDELAY); else fd = open(argv[1], O_RDWR | O_NDELAY); if(fd < 0) { puts("Unable to open device, bye..."); exit(1); } ioctl(fd, TCGETA, &t); t.c_lflag &= ~ICANON; t.c_cc[VMIN] = 1; t.c_cc[VTIME] = 0; t.c_iflag = IXON | IXOFF | ISTRIP; t.c_oflag = OPOST | ONLCR; t.c_cflag = B9600 | CS8 | CREAD | CLOCAL; ioctl(fd, TCSETA, &t); /* * hey this looks like real UN*X to me! */ ioctl(fd, GETCTLBITS, &o); o.cntl_bits |= ENQACKON; ioctl(fd, SETCTLBITS, &o); fcntl(fd, F_SETFL, O_RDWR); tty = open("/dev/tty", O_RDWR); ioctl(tty, TCGETA, &con); old_con = con; con.c_iflag |= INLCR; con.c_iflag &= ~ICRNL; con.c_lflag &= ~ICANON & ~ECHO; con.c_cc[VMIN] = 1; con.c_cc[VTIME] = 0; ioctl(tty, TCSETA, &con); puts("Ready..."); if(child = fork()) { /* read console and write to serial */ signal(SIGINT, h_break); signal(SIGQUIT, done); while(1) { i = read(tty, conbuf, 100); if(sig_rec) { sig_rec = 0; ioctl(tty, TCGETA, &con); con.c_cc[VMIN] = 0; con.c_cc[VTIME] = 0; ioctl(tty, TCSETA, &con); send_break(); ioctl(tty, TCGETA, &con); con.c_cc[VMIN] = 1; con.c_cc[VTIME] = 0; ioctl(tty, TCSETA, &con); continue; } write(fd, conbuf, i); } } else { /* read serial and write to console */ signal(SIGINT, SIG_IGN); while(1) { i = read(fd, fdbuf, 100); write(tty, fdbuf, i); } } } done() { ioctl(tty, TCSETA, &old_con); kill(child, 9); write(tty, "\nBye...\n", 8); exit(0); }