From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 4513 invoked from network); 1 Jul 2022 19:23:13 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 1 Jul 2022 19:23:13 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 0CCC640D0B; Sat, 2 Jul 2022 05:22:48 +1000 (AEST) Received: from mail.ultimate.com (mail.ultimate.com [104.225.1.121]) by minnie.tuhs.org (Postfix) with ESMTPS id B9BDB4095C for ; Sat, 2 Jul 2022 05:22:42 +1000 (AEST) Received: from ultimate.com (localhost [127.0.0.1]) by mail.ultimate.com (8.16.1/8.16.1) with ESMTPS id 261JMOkZ092698 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Fri, 1 Jul 2022 15:22:24 -0400 (EDT) (envelope-from phil@ultimate.com) Received: (from phil@localhost) by ultimate.com (8.16.1/8.16.1/Submit) id 261JMOwq092697; Fri, 1 Jul 2022 15:22:24 -0400 (EDT) (envelope-from phil) From: Phil Budne Message-Id: <202207011922.261JMOwq092697@ultimate.com> Date: Fri, 01 Jul 2022 15:22:24 -0400 To: tuhs@tuhs.org References: In-Reply-To: User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID-Hash: AVK4Z3UPYP3X3BDUFPVNIGDADDUG76QC X-Message-ID-Hash: AVK4Z3UPYP3X3BDUFPVNIGDADDUG76QC X-MailFrom: phil@ultimate.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tuhs.tuhs.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: "9 skills our grandkids won't have" - Is this a TUHS topic? List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Early use of ASCII control characters was ALL over the map. I remember typing in a BASIC program to approximate PI during a college tour in the late 70's, and whatever system they had (maybe Univac?? there was an unplugged RCA Spectra in the hallway) required typing Control C (ASCII ETX) instead of RETurn on the teletype. *THAT* was a mind-f*ck! Clem Cole wrote: > Steve - The social disease spread of DOS-11, RT-11, CP/M, and MS/PS-DOS > used ^Z as an EOF character in their text file format. The key is that > they stored a block count, not a byte count in the META. Thus the last > byte needs a marker to tell the OS to stop reading. [Early DEC OS's may > have done that also, but I never looked at their FS formats]. I TEND to think of the DEC ASCII traditions as coming out of the PDP-6 Monitor (later TOPS-10), which probably dates to c. 1964, and modern Unix/Linux systems are almost fully infected with DEC conventions (DELETE, CTRL/U, CTRL/C vs @/#/DELETE for example), except for ^M and ^Z. The earliest version I have on hand is version 3.19, which includes PDP-10 (KA10) support (c.1968). The scheduler (CLKCSS) has Tom Hastings name on it, dated 6 SEP 67. Tom wrote the MIT CTSS (timesharing on IBM 709/7090) scheduler, and the DEC T/S system mirrors CTSS in many ways (project/programmer numbers). CTSS used ASCII, and it would be interesting to know what conventions were used there!! On topic: Ken might know. @/# seem to have been used on Multics. The full duplex terminal code (SCNSRF) with Robert Clemmens name on it, dated "27 NOV 68" has the following conventions: Use of "^Q" as a convention for control characters. CR ^M return to column zero (used alone in files for overstrike) LF ^J line feed: line terminator HT ^I horizontal tab VT ^K vertical tab (n line feeds on a TTY) FF ^L form feed XON ^Q start TTY paper tape reader XOFF ^S sent by TTY PTR on end of tape? ^U clear input line ^Z EOF 0177 DEL delete a character 033,0175,0176 "ALTMODE" -- used in DDT (& TECO), echoes as "$" I don't have a set of Commonly Used System Programs (CUSPs) from that era, so I can't see how they handle ^Z if they see it in a file. I don't remember seeing ^Z in disk files on TOPS-10. A quick look at the 3.19 code (I rescued it from six DECtapes while at DEC; three each for full & half duplex versions of the code!) and didn't spot the on disk/DECtape metadata formats, but I suspect they were just block counts. There ARE files I've pulled off of tape with embedded NULs, so I suspect code was written to ignore NULs whereever they appeared. "Dump Mode" I/O, where you passed IOWDs -COUNT and WORD_POINTER in halfwords, rather than transferring character at a time into a buffer, was a way to speed up disk I/O, which would easily result in multiple embedded NULs. My recall is that we thought of disk files as made up of blocks, and not characters. MIT AI's Incompatible Timesharing System (ITS), a dig at CTSS (and DEC as well?) used ^C instead of ^Z for EOF, appearing (in triplicate?) inside of (older) files. And ^Z stop a (sub)job and drop into DDT (the debugger *AND* command interpreter), which could be examined, continued, or killed (ALT CTRL/X). I've always assumed BSD used ^Z as the suspend character for this reason. TOPS-20 (and perhaps later day TOPS-10) had file metadata indicating file byte counts, and byte sizes (1-36 bits), but TOPS-20 ALSO only allocated file storage on a page basis (512 36-bit words instead of the TOPS-10 256W block size). The PDP-7 unix inode stores a word count, rather than a byte count, and ISTR programs ignore NULs for the same reason. > Unix, of course, never made any distinction to the core OS WRT to 'type' > [other than Regular/Directory/Special] and Ken stored a character count. > So there was no need to signal EOF with a markered stored on disk.. > > A pipe or the shell on the other hand does have a need to signal the end of > a transaction, and 'End of Transmission,' as Nelson points out, is the > ASCII character reserved for the same. I don't know the rationale for DEC's use of ^Z for EOF, but as I pointed out above, use of ASCII control characters wasn't widely standardized in the 70's (is it today?) To pull the thread back to the list topic 1. Remember which of @ and # deletes a single character. 2. Fix a filesystem without fsck. 3a. Buy a controller card to be able to use a disk 3b. Write a driver for a third party controller. 4. Edit a driver and recompile the kernel to change partition sizes. 5. Use dd to convert a mainframe tape to variable line length ASCII. 6. Wonder whether something with a serial port is a DTE or a DCE. 7. Figure out the serial port settings for a terminal/modem: data bits, parity, stop bits. 8. Adjust jumpers on a peripheral 9. Insert or remove wires for IRQ bus continuity Non-UNIX related: Punch job control cards..... Burst fanfold paper by flicking their finger, to get your printout. Spread out fanfold paper on the floor to get a "big view" .......