The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (FreeBSD)
File Line Function
/showthread.php 795 errorHandler->error





Post Reply 
Blue Skying - A 71B Today
06-26-2014, 02:44 PM
Post: #1
Blue Skying - A 71B Today
I've been playing around with the 71B and its lovely implementation of BASIC. Well, lovely if you ignore the need for line numbers to keep lines in order. And the fact that it's BASIC. Still, the machine was a powerhouse of its time - highly expandable, with its four ports plus HP-IL and card reader, and a commendably open architecture, yet small enough to fit in a jacket pocket.

And it led me to wonder, what would I put in a 71B today? I'd keep the hardware form factor, perhaps slimmed down (although a multi-line display would be nice); the QWERTY keyboard layout with shifted keywords and separate numeric pad is ideal, and I expect we'd all agree the keyboard quality is of prime importance. Rather, I'd just focus on the software (and maybe the processor - we can certainly improve on the Saturn today).

It strikes me that a handheld Python machine would be the way to go. Python has already established itself as the dominant language for non-performance critical scientific and mathematical computing, i.e. code that doesn't have to be compiled and run on a supercomputer. It's embeddable and extensible - see https://docs.python.org/3.4/extending/ - so that the capabilities of LEX files could be provided.

The math module provides all the basic mathematical functions (logs, exponents, trig, hyperbolics) and the cmath module extends this to complex numbers. The syntax isn't quite as natural as we're used to - math.pow(x,y) rather than x^y, for example, but I could live with that (or take non-standard liberties with the language). There's also support for decimal numbers, fractions and pseudo-random numbers.

Add the numpy library and you'd have n-dimensional arrays, linear algebra and Fourier transforms. Scipy gives numerical integration. Sympy could provide a CAS for symbolic maths.

The Python language has all the expected flow control statements, but also supports both object-oriented and functional programming paradigms (lambda, map, reduce, etc.).

Not much of an OS would be required - just a stripped-down Linux kernel. It wouldn't be too difficult to work up a RAM filesystem like that of the 71B, and there probably wouldn't be a need for expansion ports, since everything could be loadable in RAM, probably via USB. Python already has an interactive prompt, but it should be possible to expand it into something like the 71B's CALC mode.

If I had plenty of time and budget, I'd stick an 802.11ac chipset in there (or LTE) and allow access to https://, WebDAV and maybe some form of RPC to other Python apps running on external servers or in the cloud (e.g. Google App Engine). This would allow access to external data sets, possibly in CSV, XML or JSON formats. In fact, the more I think about it, the more I like 802.11 as a way of replacing HP-IL or USB - for example, printing could be done using Google Cloud Print or similar, as could mass storage (but perhaps not data acquisition). Conversely, the calculator could run as a server, allowing use of a full-size screen and keyboard for editing and development, which would also open up the possibility of graphics.

What would you do, in 2014, with a 71B-style form factor? Is Python the language, or would you use JavaScript, ML or something else? And what would you do for I/O?

--- Les
[http://www.lesbell.com.au]
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Blue Skying - A 71B Today - Les Bell - 06-26-2014 02:44 PM
RE: Blue Skying - A 71B Today - Les Bell - 06-26-2014, 10:55 PM
RE: Blue Skying - A 71B Today - Les Bell - 06-26-2014, 10:57 PM
RE: Blue Skying - A 71B Today - Les Bell - 06-26-2014, 11:11 PM



User(s) browsing this thread: 1 Guest(s)