Search for 'm4 wristband' and you should find them (there's also an affiliate link in the Youtube description). Bear in mind that there are several very nearly identical ones, based on different architectures, so it's possible you won't get the same one as mine.
HN user
david-given
http://cowlark.com
Aquafaba
Hello --- I made this! Thank you for the kind words.
I have, BTW, just received a $6.50 watch with touchscreen, microphone and speaker, much better build quality, BT 3, 4.2 and 5, plus the traditional fake heart rate sensor and a bigger battery with an actual label on it. It's powered by a YC1133 which contains an ARM Cortex M0 with 56kB RAM and 4MB flash. This would be an awesome device for hacking if there was any information about it whatsoever.
Weirdly, it runs a more complex version of what's clearly the same software stack as the LT716!
Disclaimer I said, and disclaimer I meant. That was a warning.
Adding Whisper subtitles was really easy and they're dramatically better than the automatic Google ones (I did it via https://github.com/abdeladim-s/subsai, which was trivial to use). So there is now a reasonably good transcript available in the video comments.
Ironically enough, I agree. I loathe trying to get information out of videos. To pick an example _completely at random_: trying to get information on how to do video editing stuff with DaVinci Resolve invariably leads to a video, which is guaranteed to increase my blood pressure at a time when I'm already annoyed.
There is not, because none of it was scripted and any semblance of narrative flow was crudely faked in editing. But it's a reasonable request. I'll try pushing the audio through Whisper and see what comes out. Google will, eventually, do it's own speech recognition but historically it hates my accent.
<angry upvote>
Disclaimer: I made this.
Now I think of it...
On the Master I could fairly easily extend the TPA up into the sideways RAM area, adding another 16kB, for a total of probably about 45kB. The difficulty is that filesystems in Acorn's MOS can't access sideways RAM directly, as that's where the filesystem module itself lives, so all I/O would have to be done by copying the data to low memory, calling MOS, then switching the sideways RAM back in again afterwards. There may also be subtleties in catching interrupts and things which might try to change sideways RAM pages. But it should totally work.
For the _really_ advanced version, it could run bare metal and reuse the OS workspace at 0xc000 all the way up to 0xe000. But that would lost all MOS services, so would have to reimplement things like screen redrawing and floppy disk handling.
Hello --- author here; thanks for the kind words!
Responding to a few random things posted here:
- yes, that 8080 emulator ought to work fine. Not sure what the performance would be like but it's certainly worth a try. Sadly, unless the author shows up and relicenses it I can't use that one ('may not be redistributed without express written permission of the author').
- llvm-mos: the only bits in C are some of the utilities, and that's only because I happened to have (buggy) C versions from one of my other CP/M projects. What I'd actually like to do is to write a PL/M compiler with LLVM and try and compile the original Digital Research code for the 8080 with it.
- re porting: should be trivial to do! The only thing you need is a BIOS, with console I/O and sector read/write. Everything else is the same. You can even use the same binaries. But the documentation is trivial, so if you're interested file a github issue and I'll try to assist.
Also, I _really_ want some software for this thing, primarily programming languages. I do plan to port Microsoft's BASIC (now open source), but I need an assembler. If anyone knows any suitable 6502 assemblers from back in the day _which have actual licenses_ please let me know.
Sadly they're only available in the US, and it would triple the cost to get one sent to me in Switzerland! Fuzix would suffer from the same address space problem, however, but as there's no existing software for it it's less of an issue...
Yes but no; yes in that you _can_ do that, no in that all available software has been built to assume that the base of memory at 0x0000. It can be done but there's probably not much point. Which is a shame as it's a really nice-looking machine...
I've got a video here demonstrating seven different programming languages on a CP/M machine: https://www.youtube.com/watch?v=FGWshrMZcCc
You might be interested in the TLCS90, which is an almost-unheard-of regularised Z80 with different and much more orthogonal instruction set. It's mostly source compatible with the Z80, although not binary compatible. If you want a modern Z80-on-an-FPGA this is a far better choice than a real Z80. https://www.youtube.com/watch?v=4-0I2NpqS9c
8080 compiler, actually, and I'm only using the ACK because there are no other 8080 C compilers. If you know of any others, please tell me!
Hello, author here. Thanks for the interest. If anyone has a candidate machine they want to port it to, please file a Github issue and I'll try and support you --- it's supposed to be easy to port, with a turnkey build system which will build all the user programs, the CCP and BDOS, link everything together into a bootable image, etc.
I'm particularly interested in anyone who has actual open source CP/M software, or has non-open-source software they're willing to relicense. (I successfully persuaded R.T. Russell to open source his superb BBC Basic port, which is now included!) Most CP/M software predates the era when licenses were considered important, and generally has invalid or unusable licensing: you see the phrase 'public domain for non-commercial use' a lot... It's now old enough that the license holders are beginning to actually _die_, and great swathes of useful software and history are just vanishing. I'd love to preserve this stuff. Especially, I'd love to get my hands on an open source CP/M 3 clone: ZSDOS, which is what I currently have, is only CP/M 2.2 compatible and is missing several important features (such as the ability to change serial baud rate!).
Yup. As it stands, the license only allows that one site to distribute Digital Research code. That was almost certainly a mistake when drafting the license... but finding out who the current license holder is, and then locating someone willing to change it, is likely to be almost impossible.
I have a PX-8. It does work with tape, but very badly --- it's slow even for tape and painfully limited. It emulated a disk on tape, with automatic winding for access to multiple files, and required mounting/dismounting tapes or else you lost data. It was just about good enough for loading and saving Basic programs, but only just. Using it with CP/M is an exercise in frustration.
BTW, I have a branch of the FluxEngine client library which can also talk to a Greaseweazle, so if you have one of those you should --- soon, I hope --- be able to use the FluxEngine client to write Mac disks on a Greaseweazle.
Hello --- I wrote this. If you have any questions, stick 'em here.
Old-school IBM daisywheels actually have an exposed port for controlling them remotely. You can drive one with an Arduino and with sufficient lateral thinking you can draw graphics by microstepping and printing full stops. The protocol's funky, though, and the ribbons aren't cheap.
They did add instructions when the programmers asked for them --- such as the famous EDRUPT instruction (whose use is still a bit of a mystery).
I've updated the post on cowlark.com which a decent writeup on the machine's more interesting quirks.
My writing-a-vi video is longer (by about ten minutes).
Hello, author here.
It's a surprisingly modern-ish system, in many ways, and surprisingly weird in lots of other ways. One thing which really surprised me was a complete lack of pointer support: I managed to bodge the look-up-table instruction (which evaluates its argument and adds the result to the next instruction to be executed) to do pointer dereferences instead (INDEX ptr; TC 0). And, luckily, I found a way to make the assembler emit an address as a literal value, which it really didn't want to do.
It's a shame the address space is so small (only 12 bits!) or you could totally port real software to this...
So they were. That explains why the only compilers on their web site are Microchip ones... oh well, worth an email to them asking what happened; maybe they'd be willing to open source the CP/M compiler!
Those are _good_ days.
Fuzix is amazing. I did a port to the MSP430, a Texas Instruments single-board computer with 66kB of RAM; it feels just like a Unix, despite having no MMU and no multitasking... http://cowlark.com/2015-10-27-fuzix
I find CP/M interesting because it's provably the minimum viable product for an operating system. It was the personal computer desktop operating system that really worked. It came with full documentation, a full development systems (an assembler and a debugger), and a full set of tooling to allow you to port CP/M to new systems. It was portable, too, and you could run the same program unmodified on nearly any hardware which supported CP/M. So it was this great open-ended system, cheap enough to get into the hands of ordinary people, simple enough that you could understand it all, and yet sophisticated enough that, with enough time, you could achieve _anything_ on it...
The CP/M kernel is 3.5kB of 8080 machine code. I think each frame of that video consumed more space than that.
Thanks very much! But someone else worked out the maths and the base kernel --- I just did the implementation (and loads of other people chimed in on microoptimisations). I _do_ think it may be the fastest 8-bit Mandelbrot in the world, although some of the stuff the C64 people have done is completely insane, so I'd want to check there first.
This is all mine, though: http://cowlark.com/2013-10-19-insane-make
There are a couple of short (a few seconds only) edits where I just zoned out thinking about something, but the big breaks are clearly labelled. Also, check out the clock at the bottom right corner!
I started this at about 14:00 and finished at about 01:30, so about eleven to twelve hours wall clock time. And yes, if I hadn't been doing the recording I'd have given up and gone to bed. Also I, er, had to get up at 07:00 the next morning to go hiking.