HN user

david-given

7,108 karma

http://cowlark.com

Posts23
Comments1,554
View on HN
www.youtube.com 2y ago

Porting CP/M to the Brother SuperPowerNote Z80 laptop thing [video]

david-given
70pts23
cowlark.com 5y ago

OBP Spacecraft Computer

david-given
2pts0
aquafaba.com 5y ago

Aquafaba

david-given
586pts295
cowlark.com 7y ago

Writing a lunar lander game for an actual lunar lander

david-given
151pts16
cowlark.com 7y ago

Live coding an 8080 compiler almost from scratch

david-given
3pts0
github.com 8y ago

GitHub Windows Edition: User Style Transforming GitHub into Windows 9x

david-given
2pts0
aquafaba.com 9y ago

Aquafaba

david-given
2pts0
genode.org 9y ago

Release Notes for the Genode OS Framework 17.02

david-given
2pts0
arstechnica.com 9y ago

New malaria vaccine is fully effective in very small clinical trial

david-given
6pts0
blog.getpebble.com 9y ago

Pebble's next step

david-given
529pts442
genode.org 9y ago

Genode OS 16.08 release notes

david-given
2pts0
neverssl.com 9y ago

NeverSSL

david-given
4pts2
www.theregister.co.uk 9y ago

The Barton Swing Aqueduct: the world's only moving aqueduct

david-given
13pts0
www.youtube.com 9y ago

Mr. Plinkett's The Force Awakens review (1h45 video)

david-given
2pts0
www.natgeomaps.com 9y ago

Printable 1:24000 topographic maps for the entire US

david-given
141pts37
arstechnica.com 10y ago

Reaction Engines unlocks funds for single-stage-to-orbit SABRE engine

david-given
5pts0
blogs.nasa.gov 10y ago

BEAM fully expanded and pressurised

david-given
4pts0
arstechnica.com 10y ago

The little-known Soviet mission to rescue a dead space station (2014)

david-given
73pts10
blog.0branch.com 10y ago

Tail call optimisation in (g)awk

david-given
4pts0
www.strongtalk.org 10y ago

Strongtalk: A high-speed Smalltalk with incremental, optional strong typing

david-given
58pts5
www.centauri-dreams.org 11y ago

Fuelless space travel using the Yarkovsky/YORP effects

david-given
1pts0
genode.org 11y ago

Genode OS 15.05 release notes

david-given
1pts0
www.spinics.net 11y ago

After years of work, Linux 0.2.0 is finally released

david-given
2pts1

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.

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!

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.

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.

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, 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!

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.