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=-0.8 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24818 invoked from network); 30 Dec 2021 23:50:46 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 30 Dec 2021 23:50:46 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 40AE09D038; Fri, 31 Dec 2021 09:50:43 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id F07019D004; Fri, 31 Dec 2021 09:50:11 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="krsWb5Zb"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 1FE3B9D004; Fri, 31 Dec 2021 09:50:09 +1000 (AEST) Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by minnie.tuhs.org (Postfix) with ESMTPS id 562159D002 for ; Fri, 31 Dec 2021 09:50:06 +1000 (AEST) Received: by mail-oi1-f180.google.com with SMTP id t19so42230557oij.1 for ; Thu, 30 Dec 2021 15:50:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:content-language:to:from :subject; bh=fdIfNzcet5k/ZLDWcWjl8QBtBJSK0qJwKNc+WuCJe7c=; b=krsWb5ZbZdkpnV0Y7IIu+lm7tor4uL5JbNE+Qd8z1wd93/gflwvfLuWSOp+h1YirDX vR5gbLmMe8fm4xdaAw1H9CuafgonABsUIvhowETOrSPR1+5Z0OmY39rRyVFgbS1HLUYd +pogS33YLPXiBFkcw0/mtmWgm9w+Dnqh+2mBxoLqXBT3j2Ka+DRDOYx8vcO2fAG4EQ4F NqYI7p/VFj7quD476jABy+L0L9FKle8AmFo+CA3trnjsARPjhnNezHl0n6Vzeu1i/Tux 3jFfDJQyRzOamNF5lVcXPEsRYDYSGxGrK3S4zaauepA4Er9LCcrPrvuwrtzmaeHcpRJR WfbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:to:from:subject; bh=fdIfNzcet5k/ZLDWcWjl8QBtBJSK0qJwKNc+WuCJe7c=; b=dRouY8xHe/2LFw3H3PcqlY/N6UkonRzGABvtcji8xhTSTW9IbFlCjURQtkaG+jNWVt 6483kEfoI/ICDKQ42bX9iusF8PTedtNfAjQmrl2eznhVciCHwShJCRJrdMpU9Z1LeCgX 22VI9oaquG92WseSXL8d7pVzFOELeI3Rbm0lBr18w66HK+2jjNKAwUDnIIh1gGElcwXO +z1KZnR7caLVHBK98LqyYP018TZ/Zub1v7kZq+wJaa2RRWkxGaTeB9yxkIx15AQKT7B3 XSJD2hpQVXumq/9XUoM9OoAV28/k1qulBlPf2Wu8PCxu7t6Wx4FgPEtWsqhYZHOTOev2 dQCQ== X-Gm-Message-State: AOAM531B8ThDnidDUNSkev3ub9bzN7Ii33c/2p5PLqd3J6DrRxzUmWca RCdOTmn8l1UCZezlsUYuslLhFXDcX4Azrg== X-Google-Smtp-Source: ABdhPJw/fWi1tCv9gEQ3Tdx265LczNYyrfuGVg4zihCUUjBu8cVwTpiVBqyKz9FkhGsM4qUhcXIYgg== X-Received: by 2002:a05:6808:1885:: with SMTP id bi5mr27133813oib.54.1640908205206; Thu, 30 Dec 2021 15:50:05 -0800 (PST) Received: from [10.8.0.7] ([2.56.190.93]) by smtp.gmail.com with ESMTPSA id g61sm5321840otg.43.2021.12.30.15.50.04 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Dec 2021 15:50:04 -0800 (PST) Content-Type: multipart/alternative; boundary="------------UIGAHchzQ0nb1if15l3chgmR" Message-ID: Date: Thu, 30 Dec 2021 17:50:03 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Content-Language: en-US To: TUHS main list From: Will Senn Subject: [TUHS] v7 bas - "Ken Thompson's BASIC" 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" This is a multi-part message in MIME format. --------------UIGAHchzQ0nb1if15l3chgmR Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit So, I was bemoaning the fact that I couldn't really make sense of the bas command in v7. In sysv2, it works and is similar enough to modern dialects that I was able to get a simple example working, but with v7, the best I was able to do was use it interactively, as a calculator. Then I went looking for v7 videos on youtube and came across this Dr. Dave's Diversions video: https://www.youtube.com/watch?v=LZUMNZTUJos In it Dr. Dave demos a few simple versions of 99 bottles of beer in v7. Wow! I wondered how he'd glommed the inner workings of bas - did he read a book, just know it naturally, phone a friend, or what? Well, as it turned out, he... wait for it... read the bas(1) man page! Wha?! Ridiculous. So, I pulled out my v7 phone book and read the bas(1) man page and sure enough, it was all there... how '_' is used for negation, how those arcane for loops work, arrays?!, function calls?!, etc and so on, all in 3 short pages. So, two observations: 1. Those man pages from back in the day - wow. So terse, yet so well written. With a little help from a friend (thanks, Dr Dave), they're really all you need, sometimes. 2. Those early apps - wow. So obscure these days, but so ahead of their time, too (thanks, Ken for making Dec 2021 interesting by doing what you did back in the early 70's). And a question (you knew it was coming): Besides the bas(1) page, is there anything else written on Ken's basic out there in the wild? Oh, and a bonus question, draw and erase from v5 appear to still be around in v7, but not documented in the man page. Did it work and has anyone written a Tektronix 611 emulator that works with v7? Thanks, Will --------------UIGAHchzQ0nb1if15l3chgmR Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit So, I was bemoaning the fact that I couldn't really make sense of the bas command in v7. In sysv2, it works and is similar enough to modern dialects that I was able to get a simple example working, but with v7, the best I was able to do was use it interactively, as a calculator. Then I went looking for v7 videos on youtube and came across this Dr. Dave's Diversions video: https://www.youtube.com/watch?v=LZUMNZTUJos

In it Dr. Dave demos a few simple versions of 99 bottles of beer in v7. Wow! I wondered how he'd glommed the inner workings of bas - did he read a book, just know it naturally, phone a friend, or what? Well, as it turned out, he... wait for it... read the bas(1) man page! Wha?! Ridiculous. So, I pulled out my v7 phone book and read the bas(1) man page and sure enough, it was all there... how '_' is used for negation, how those arcane for loops work, arrays?!, function calls?!, etc and so on, all in 3 short pages.

So, two observations:

1. Those man pages from back in the day - wow. So terse, yet so well written. With a little help from a friend (thanks, Dr Dave), they're really all you need, sometimes.

2. Those early apps - wow. So obscure these days, but so ahead of their time, too (thanks, Ken for making Dec 2021 interesting by doing what you did back in the early 70's).


And a question (you knew it was coming): Besides the bas(1) page, is there anything else written on Ken's basic out there in the wild? Oh, and a bonus question, draw and erase from v5 appear to still be around in v7, but not documented in the man page. Did it work and has anyone written a Tektronix 611 emulator that works with v7?

Thanks,

Will
--------------UIGAHchzQ0nb1if15l3chgmR--