From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id a6b4ca47 for ; Sat, 19 Oct 2019 20:13:08 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id 50D6093D9F; Sun, 20 Oct 2019 06:13:07 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 9F34D93D6E; Sun, 20 Oct 2019 06:12:51 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id 8F8F293D6E; Sun, 20 Oct 2019 06:12:49 +1000 (AEST) Received: from ste-pvt-msa1.bahnhof.se (ste-pvt-msa1.bahnhof.se [213.80.101.70]) by minnie.tuhs.org (Postfix) with ESMTPS id AEC0793D31 for ; Sun, 20 Oct 2019 06:12:48 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by ste-pvt-msa1.bahnhof.se (Postfix) with ESMTP id 9C2043F8C0 for ; Sat, 19 Oct 2019 22:12:46 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at bahnhof.se Received: from ste-pvt-msa1.bahnhof.se ([127.0.0.1]) by localhost (ste-pvt-msa1.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JrbhlBE8RM3g for ; Sat, 19 Oct 2019 22:12:45 +0200 (CEST) Received: from localhost (unknown [85.24.253.59]) (Authenticated sender: mc469656) by ste-pvt-msa1.bahnhof.se (Postfix) with ESMTPA id 942233F835 for ; Sat, 19 Oct 2019 22:12:45 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by localhost (Postfix) with ESMTPS id D16022E02CC for ; Sat, 19 Oct 2019 22:12:44 +0200 (CEST) Date: Sat, 19 Oct 2019 20:12:43 +0000 From: Michael =?utf-8?B?S2rDtnJsaW5n?= To: tuhs@tuhs.org Message-ID: References: <201910191440.x9JEe8PB035921@tahoe.cs.Dartmouth.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" On 20 Oct 2019 00:02 +0530, from abhinavrajagopalan@gmail.com (Abhinav Rajagopalan): > Forgive me for both hijacking this thread, and to address my amateurish > gnawing concern, but how was it be possible to write differential/integral > equations at an assembly/machine level at the time, especially in machines > such as the PDP-7 and such which had IIRC just 16 instructions and operated > on the basis of mere words, especially the floating point math being done. As long as you have the basic instructions (which pretty much any computer capable of doing useful arithemtic calculations will need anyway), you can implement the rest of what you need using those building blocks. Specific _hardware_ support for floating point calculations is not needed. If nothing else, you can always implement your own routines to do fixed-point multi-word arithmetic. Really about all you need for that is the basic arithmetic and binary operations, the concept of a carry or overflow flag, and conditional and unconditional jumps. With the _possible_ exception of a carry flag of some kind, a digital computer really wouldn't be very useful without those! >From there to emulating floating-point instead is not a huge leap. Given that, the kind of equations you can use the computer to solve is just a matter of how fast you need to have the answers. Emulation might be slow, and implementing your own might not be pretty by today's standards where we're taught to rely on standard libraries, but it definitely can get the job done. If you want an example that might perhaps be easier to relate to, on the IBM PC, it wasn't until the Pentium that you could actually count on having a floating-point unit available. The 8086/8088, 80186, 80286, 80386 and 80486 all either didn't ever include a FPU on-die, or only some variants included a FPU. (In the IBM PC world, that's pretty much from 1981 to the late 1990s.) On some systems, and with some of those CPUs, a FPU was an extra chip the user would install, or have someone install, on the motherboard; with others, the user could choose to purchase variants with or without a FPU. As a result, for the better part of two decades, PC software that needed the ability to do floating-point calculations but couldn't require a separate hardware FPU shipped with support for emulating floating point in software. Again, the emulation was slower, but it got the job done, and it allowed running the software on a huge portion of the hardware base which otherwise wouldn't have been able to do so. -- Michael Kjörling • https://michael.kjorling.se • michael@kjorling.se “The most dangerous thought that you can have as a creative person is to think you know what you’re doing.” (Bret Victor)