Difference between revisions of "Running an LSI-11 from UNIX V6"
(+ parity on output) |
(+ output delay codes) |
||
Line 1: | Line 1: | ||
− | It is relatively easy to run a hardware [[LSI-11]] (or [[PDP-11/23]], [[PDP-11/73]], etc, although this article will use the term 'LSI-11') from a [[PDP-11]] (either real or simulated) running [[UNIX Sixth Edition|Unix V6]]. | + | It is relatively easy to run a hardware [[LSI-11]] (or [[PDP-11/23]], [[PDP-11/73]], etc, although this article will use the term 'LSI-11' for all of them) from a [[PDP-11]] (either real or simulated) running [[UNIX Sixth Edition|Unix V6]]. |
If one connects the LSI-11's [[asynchronous serial line]] console to a serial line on the Unix V6 machine (either real or simulated), a program ('ttytalk', see below) exists to allow a user logged into the Unix machine to talk to the console, load programs into it, etc. | If one connects the LSI-11's [[asynchronous serial line]] console to a serial line on the Unix V6 machine (either real or simulated), a program ('ttytalk', see below) exists to allow a user logged into the Unix machine to talk to the console, load programs into it, etc. | ||
− | One issue | + | One issue with doing so on Unix 'vanilla' V6 is that it insists on sending a [[parity]] bit on all output characters to a serial line, and there is no way to disable that. Also, the user-called top end of the serial line [[device driver]] output code inserts bytes with the high bit set into the output queue, to indicate the inter-character delays which some (e.g. 'carriage return') needed after some characters to support the [[printing terminal]]s of the day. Finally, probably to support all the above, it explicitly does not allow 8-bit output on serial lines; this capability is needed to load binary files into the LSI-11. Several small change to the shared serial line driver, dmr/tty.c, fix these issues. |
Since the mode word in stty/gtty is already full, one has to extend the device interface to support setting and clearing 8-bit output support. One can either add ioctl() or do an upward-compatible extension to stty/gtty (see external link below); the code below takes the latter tack. | Since the mode word in stty/gtty is already full, one has to extend the device interface to support setting and clearing 8-bit output support. One can either add ioctl() or do an upward-compatible extension to stty/gtty (see external link below); the code below takes the latter tack. |
Revision as of 12:50, 14 September 2020
It is relatively easy to run a hardware LSI-11 (or PDP-11/23, PDP-11/73, etc, although this article will use the term 'LSI-11' for all of them) from a PDP-11 (either real or simulated) running Unix V6.
If one connects the LSI-11's asynchronous serial line console to a serial line on the Unix V6 machine (either real or simulated), a program ('ttytalk', see below) exists to allow a user logged into the Unix machine to talk to the console, load programs into it, etc.
One issue with doing so on Unix 'vanilla' V6 is that it insists on sending a parity bit on all output characters to a serial line, and there is no way to disable that. Also, the user-called top end of the serial line device driver output code inserts bytes with the high bit set into the output queue, to indicate the inter-character delays which some (e.g. 'carriage return') needed after some characters to support the printing terminals of the day. Finally, probably to support all the above, it explicitly does not allow 8-bit output on serial lines; this capability is needed to load binary files into the LSI-11. Several small change to the shared serial line driver, dmr/tty.c, fix these issues.
Since the mode word in stty/gtty is already full, one has to extend the device interface to support setting and clearing 8-bit output support. One can either add ioctl() or do an upward-compatible extension to stty/gtty (see external link below); the code below takes the latter tack.
The same interface is used to send a BREAK down the serial line to the LSI-11's console (used to halt the machine, e.g. when it is in a tight loop).
The current code is somewhat inelegant, since the generic code to recognize the extended interface is currently in the serial line driver (dl.c), and not in the stty() system call code (since moving it there would mean adding entries in cdevsw[], and it was desired to minimize the number of modules that were changed).
See also
- UNIX V6 internals
- Unix V6 kernel memory layout
- Installing UNIX Sixth Edition
- Installing Unix v6 (PDP-11) on SIMH
- Installing UNIX Sixth Edition on Ersatz-11
External links
v • d • e PDP-11 Computers and Peripherals |
---|
UNIBUS PDP-11s - PDP-11/20 • PDP-11/15 • PDP-11/35 • PDP-11/40 • PDP-11/45 • PDP-11/50 • PDP-11/55 • PDP-11/70 PDP-11/05 • PDP-11/10 • PDP-11/04 • PDP-11/34 • PDP-11/60 • PDP-11/44 • PDP-11/24 • PDP-11/84 • PDP-11/94 QBUS PDP-11s - PDP-11/03 • PDP-11/23 • PDP-11/23+ • MicroPDP-11/73 • MicroPDP-11/53 • MicroPDP-11/83 • MicroPDP-11/93 QBUS CPUs: LSI-11 • LSI-11/2 • KDF11-A • KDF11-B • KDJ11-A • KDJ11-B • KDJ11-D • KDJ11-E Buses: UNIBUS • UNIBUS map • SPC • MUD • EUB • QBUS • CD interconnect • PMI Also: PDP-11 architecture • PDP-11 Extended Instruction Set • FP11 floating point • PDP-11 Memory Management |
UNIBUS CPUs: KA11 • KC11 • KB11-A • KB11-B • KB11-C • KB11-D • KD11-A • KD11-B • KD11-D • KD11-E • KD11-EA • KD11-K • KD11-Z • KDF11-U
Co-processors: FP11-A • FP11-B • FP11-C • FP11-E • FP11-F • KE44-A • FPF11 Chips: LSI-11 • KEV11-A • KEV11-B • KEV11-C • F-11 • KEF11-A • KTF11-A • T-11 • J-11 • FPJ11 CPU options: KE11-E • KE11-F • KJ11-A • KT11-C • KT11-D • KK11-A • KK11-B • KT24 • KTJ11-B Rare CPU options: KS11 Memory Protection and Relocation option • KT11-B Paging Option • KUV11 Writeable Control Store Front panels: KY11-A • KY11-D • KY11-J • KY11-LA • KY11-LB • KY11-P More on buses: UNIBUS and QBUS termination • Bus Arbitration on the Unibus and QBUS • CTI BUS PDT-11s - PDT-11/110 • PDT-11/130 • PDT-11/150 CTI PDP-11s - PRO-325 • PRO-350 • PRO-380 Other: FIS floating point • PDP-11 Commercial Instruction Set • PDP-11 stacks • PDP-11 family differences |