Over the last couple of months, I’ve been playing with writing an operating system. This post is only peripherally about that, though. I had to do quite a bit of investigating to work out how to get my nascent OS to boot. It’s hard to work it out from the available documentation: almost everything’s about how to make existing OSes work, and they’ve mostly hidden the details…
Go to the first post in this series.
Introduction In the first two parts of this series, I talked about picking the instruction set for my trivial processor. So far, however, I haven’t mentioned how the processor actually works to execute those instructions. In the next few posts, I’m going to talk about the design and control of the circuitry in the processor.
The Loop As I…
Go to the first post in this series. 
 Introduction 
 I’m designing a small CPU. In the last post, I picked (fairly
arbitrarily) bit-size, registers, addressing modes, and an instruction
set. To recap, that’s: 8 bits; four registers ( x , y , i and j );
four additional indirect modes ( (i) , (j) , k and (k) ), where
 k is an 8-bit constant.
What’s this about? I’m about 45 years into my computer-fondling journey, and I’ve been wondering how these wonderful things actually work. Like, down to the transistor level sort of thing.
In the past, when I’ve tried reading books on the subject (OK, maybe not the right books, but I run with what I can find in Hay-on-Wye), the book chapters go something like…
[Castle Carfax. Clouds threaten the castle, dropping a light but persistent rain. The small dining room is decorated with roses and hearts.] [Ewww -Ed.]
Igor? Where are you, man?
Here, marthter!
Do you know what day it is today, Igor?
Ummm… your birthday, thir?
No, you fool, that’s not for months yet!
Ith it my birthday, thir?"
Even more wrong. No,…
[Castle Carfax. A thick mist roils above the moat. A solitary window in the pinnacle of the highest, 21A-covered, tower glows with candlelight. Within, the castle’s master summons his ramshackle henchman…]
Igor! IGOR! Ah, there you are. What kept you?
Thorry, thir. I wath converthing with the village’th patiththier.
Ah, yes. Ordering crumpets for tomorrow’s…
Note: this tale was posted in response to the story of Cuttleson and its subsequent demolition. The tale itself was then removed.
[Scene: A ramshackle castle, perched on a steep and windswept mountainside. From this chill 4D, the slopes descend precipitously to a warm and pleasant bay, surrounded by white sand beaches on an azure sea, sparkling in the morning sun. A suspiciously new and…
[The scene: Castle Carfax. The drawing room, late at night. Candles gutter fitfully in sconces on the walls. An eerie melody swirls up from the organola† in the chapel across the courtyard. The castle’s dread master summons his twisted servant.]
Igor!
Yeth, marthter?
One of our experimental subjects has taken action to fend off our usual methods!
The orbital mind-control…
Once upon a time, there was a magical kingdom called btrfs, with many CoWs in it. In this kingdom was a castle, called Castle Carfax. One of the most important people living in Castle Carfax was called Amelia, and in the castle she kept eight circles of adamant. These hard disks, as they were called, held all the important knowledge of the castle.
One day, Amelia’s grand wizard used some…
Hadoop’s MapReduce subsystem runs tasks, where each task may be composed of one or more jobs. A job is a MapReduce run of a single map phase and a single reduce phase. A large amount of the complexity in Hadoop is the (very poorly documented) set up and configuration for jobs and tasks.
The ToolRunner is a helper class which contains code to parse the command line of a MapReduce job…
[A lecture theatre. A selection of young faces, many still showing the after-effects of a long Freshers’ week dissipation, gaze down at the lectern in a mixture of boredom and mild panic. Notes are frantically scribbled, some on paper, some on newly-purchased eyePads. The lecturer is in full flow.]
… and finally, we add the tincture of saffron blended with the trace amounts of…
[Note nailed to the sally port of Castle Carfax]
Message to couriers:
Please ring and wait for up to 10 minutes, to give Igor enough time to hack his way back out of the conservatory. If there is no reponse, DO NOT leave deliveries with the neighbours, as they will only use them to create their own unspeakable horrors. Instead, kindly leave your parcel by throwing it over the castle walls.
[The Small Experiment Hall, Castle Carfax. Mysterious organic objects lurk in jars of discoloured fluid. Three-phase power sockets feed glowing machines, into which complex pieces of chemical glassware drip slowly. Approximately three ferrets cower in a cage on the central table, guessing their fate. A door on the far side of the hall slams open, and a short twisted figure shambles in at…
[Castle Carfax. Morning. The castle juts proud (and slightly lop-sided) from the mists of the mountain, slowly burning off in the hazy sunlight. Below in the valley, the village is quiet in the remaining fog, save for the occasional goat-bell. From a tall central tower, comes a deep and unearthly moaning.]
Mrrrgh.
Rithe and thine!
Mrrrrrrgh!
Marthter?
MMMMRRRRRAAAAGH!
Your…
Igor!
Yeth, marthter?
Must you do that?
Thorry, marthter, induthtrial ackthident.
I did tell you not to drink the green one. Anyway, how did the brain do with this morning’s crossword?
Here’th the report from the gnometh in the thellar levelth of the carthle, marthter.
Ah, smooth running, I see. Good. It spotted 21 as an old friend, good, so the…
Last night, I went down to Cow Lane, not far from where I live, to see the first phase of the new rail bridges put in place. Railtrack are spending £850m on upgrading the station and tracks around Reading over the next few years, including two new platforms at the station itself, new lines, and an overhead section so that freight trains can bypass the station without getting in the way of the…
On Tuesday, I took delivery of the first set of parts for my RepRap from the local user group. I manfully held off from doing anything with it until today, when I settled down and built the frame. Sadly, the group wasn’t able to print all of the frame parts that they’d intended to do, so it’s a bit basic right now, but at least I know how much space it’ll take up on my…
Here’s the email I sent to the btrfs mailing list a few moments ago:
Over the last few weeks, I’ve been playing with a foolish idea, mostly triggered by a cluster of people being confused by btrfs’s free space reporting (df vs btrfs fi df vs btrfs fi show). I also wanted an excuse, and some code, to mess around in the depths of the FS data structures.
Like all silly…
The usage display shows, graphically, what space has been allocated and used. The topmost box by default shows only what has been allocated by the filesystem – this may be only a fraction of the total space available. Where data is replicated (RAID-1, RAID-10 or DUP), only the size of the actual data is shown, not the total of all copies of it. (i.e. 10GiB of RAID-1 data is shown as 10GiB,…
I’ve just got my hands on another arts and humanities data set. This one’s smaller than most of the others I’ve been looking at, and it’s been put together in an MS Access application. Fortunately, the owners are aware that that’s not a maintainable approach, and want a method of publishing it on the Web. Also, rather nicely, they’ve been aware of a number of…
… last seen being used by the person we paid to build our database. They’ve now gone away, and they don’t appear to know what it is any more. And, of course, nobody seems to have handed it over. This has prevented the database from being updated for some time. It also means that I can’t access the relevant bits of the DB server configuration to enable the JDBC interface…
One of the major problems with building a distributed system is that it’s distributed. This means that the parts of the system need to talk to each other. Of course, these days, networks are viewed by most large network operators (e.g. universities) as hostile environments, where anything even remotely risky is split out, preferably into its own little subnet.
These two facts make it…
I took a good deep look at one of the datasets I’m meant to be linking up today. Actually, it’s four separate datasets, but all held within the same database. I poked around a bit, and found this:
Yes, that’s precisely one table, with 158 fields and over 17500 records. Of those 158 fields, 52 are computed fields (mostly containing logic to return “No information…
Last night, I went to the Farnham Beerex — one of the country’s longest-running beer festivals.
I went with Alan. And Alan. And Alan. Too many Alans for sanity, in fact:
That’s Mr Bell, Mr Lord, and Mr Pope. Beer, perry and cider were tested and pronounced upon. Popey even tweeted brief beer reviews (and a couple of music reviews). Sadly, I wasn’t able to attend the curry…
I’m currently at this year’s dev8D. So far, I’ve spent a morning learning about the other projects in the JISC’s VRE programme (of which I’m a part), learned about RDF support in Drupal, persuaded someone that they should be using Tycho in their project and pitched it to someone else, played a cool metagame guessing the rules of the game, learned the basics of Clojure…
When we started this project many moons ago, we started with 10 identified repositories that we wanted to work with. Of those, two were new systems, being planned or put in. And therein lies the rub… It’s hard to write and test code against something that doesn’t exist yet (or which is partly set-up and has little data in it). It’s even harder to do when the configuration changes…
Calliope is a video recorder for DVB systems. It currently features a simple AJAX web-based UI, and supports TV tuners placed on arbitrary machines on the local network.
At the moment, it’s in a very rough state, but appears to be functional for the purposes of making recordings. There’s little or no documentation on how to set it up – if you want to try it out and…
Ever since I started playing with digital TV on my computer(s) 5-6 years ago, I’ve been intermittently messing around with the idea of writing a video recorder. Until now, I’ve mostly been using a set of perl scripts I hacked together in the early days. They Worked For Me, but there were several things they didn’t do well:
(Before anyone asks, I’ve looked at MythTV, and…
After a project meeting today, it was suggested that I keep a note of all of the “interesting” issues that I encounter with the various data repositories I encounter on the project. So, here’s the first of them.
At least two of our repositories consist of custom-built applications. One of them is a fairly large piece of PHP, backed by a MySQL database. The PHP for this…
After some struggling over the last couple of days to sort out tag-based blog aggregator filtering in Drupal, here’s how I did it, with the extra patches and sub-modules I needed to make it work.
First, install the Views, FeedAPI and FeedAPI Item Filter modules for Drupal. Apply the patch from the bottom of this page to fix some issues with using multiple filters in the FeedAPI Item…
… the sound of blog filtering through the percolator.
I’ve been putting together a website for my current work project, in Drupal, and wanted to aggregate items from many blogs, filtered by keyword on the item’s tags. Now, Drupal’s default Aggregator module doesn’t do this. The News Page module seems to offer the feature, but I couldn’t get it to display…
I’m playing with Drupal, to see how I can aggregate RSS news items with particular tag keywords from several sources into a single place. It seems that the Drupal Aggregator module doesn’t do that, but that the News Item plugin can be used to make it work.
This post is more of a test of that mechanism, than actually saying anything interesting. :)
When I agreed to review this book, through the auspices of HantsLUG, I had almost no experience of using Git. However, I’m an experienced developer, and have used several revision control systems in the past (CVS, Subversion, Monotone). I originally expected the book to be “the pro bits of Git”, covering the advanced uses and leaving out the basic parts, so I was prepared to have…
Ontomedia is an academic project to develop ontologies and tools for describing media and narratives using Semantic Web technologies such as RDF and OWL. For more information, see the Ontomedia website.
From our reporter in the Department of Vague Stuff.
I have an evil plan. It’s been brewing for a while (subversion tells me since April 13th). With a few trusted Persons of Hench in the know, we’ve been working at a slow but steady rate on some code:
Still working on the core code, which is a pain to deal with (I’m writing the vast majority of it, so progress is slow, but…
I’ve recently re-encoded a whole load of MPEG2 video I’ve got into MPEG4 (using H.264). I thought that I’d put it all in MKV containers. Sadly, this turns out not to be the case: HandBrake’s presets explicitly set the output container — mostly to MP4. So I’m now left with a large number of videos in a format that I didn’t intend. What’s worse, I…
I export a bunch of directories over NFS. One of those is the filesystem I record TV onto. At the moment, the recording machine is working on two separate channels, all streaming to the NFS filesystem.
My server just crashed. I rebooted it.
The recording machine is still quite happily going. I don’t know if there’s any lost data, but I doubt it. More news after those files get…
After a couple of delays, my replacement Edge10 DAS 501t has arrived. Why a replacement? The first one refused to power on.
I eagerly unpacked it, plugged it in, pressed the power switch… and got nothing. Again. This was exactly the same fault as last time. In a state of bemusement (and a little irritation), I phoned up the supplier, who also expressed their confusion over the state of…
On several of my machines, I’ve moved over to using xfce4-terminal instead of xterm. However, my one gripe with it has been that on some machines, I can configure it to use the “fixed” font, and on others, I can’t. The “fixed” font is an antique bitmapped font, but at the right size, it’s absolutely ideal for text editing – I write all my code using…
This morning, I took delivery of an Edge10 DAS 501t storage box. It’s an external eSATA box with room for 5 drives, running with a port multiplier. Thus, it only needs a single eSATA connector to join all 5 drives to the host machine.
Coming out of the box, it feels well-built. The front door of the unit is black ABS, which clicks shut. It has little flex in it, and probably won’t…
The King William’s College Quiz is out. Here’s my effort. (It’s locked in a bid to stop spammers and search engines – use fishooks for the guest account.)
† For me, that’s an aesthetic bonus, both from the appearance of the application, and from the point of view that it’s not massively reinventing the wheel.
‡Not archived, so no link to the thread. Sorry.
Four months after I got my job at Reading University, I’ve finally found somewhere to live in Reading, bought it, and moved in. A week after moving day, I’m surrounded by cardboard boxes, and my sitting room and office are still covered in assorted computer cables, but at least I have a kitchen I can (just) cook in*, a bed I can sleep in, and a sofa I can sit on.
I’ve just had to generate a new self-signed X.509 certificate for an internal website at work, and I thought I’d generate a certificate with multiple names, so we can refer to it as “www.foo.org”, and “foo.org”, and “machine.foo.org”, and all of the other variants that people are likely to generate.
It wasn’t easy to find the exact…
I found this site the other day: http://autoconf-archive.cryp.to/index.html. It’s an archive of autoconf macro definitions for detecting any number of different languages, libraries, and system features. It’s useful for those occasions when you want to detect comething in your autoconf script, but the author of the library didn’t write one (and didn’t supply a pkg-config…
I’ve been trying to work out how to get a copy of Windows XP to run in a VM at work – not that I actually want one as such, but it’s useful to have for those Word documents that OpenOffice won’t open, and for the occasional website that requires IE. The machine I’m using was supplied with Windows, and has an XP license sticker on it, with a license key.