A second installment in the UPNOD series, this time we'll take a look into the reset circuitry of the telco card.


As the title implies, this circuit is responsible for generating a proper Z80' reset sequence. Z80, being a rather dumb piece of clever electronics, may boot up in an undesirable undefined state and requires a few cycles of special treatment to properly initialize internal register values. This circuit does just that - it generates the initial reset pulse and handles reset signals coming from other parts of the board, all while maintaining proper synchronization.

Continue reading

Cranking out another post took me way longer than I had anticipated when I rebooted this blog, but I got sidetracked by another quick hardware project that turned out to be way more involved and equally more fun than I originally thought...


I've designed an Atari 400/800/XL/XE standard cartridge compatible board that can hold up to 127 different standard 8KB and 16KB game ROMs at the same time. It's memory chip agnostic and features software game selection & a few neat hacks.

Continue reading

Since my last actual post on this blog I have acquired a new class of hobbies - electronics. Most recently, reverse engineering of really old computers. This series of posts will be about a vintage eighties TelCo computer-card-thing marked UPNOD CARD0117 TN64 I bought on a local auction:


All my findings will be posted on this blog and the accompanying data will be gathered in this GitHub repository.

Continue reading

Blog reboot!

Posted on by Idorobots


Finally got around to rebooting my old dev-blog! This time instead of fighting my way against some new unforgiving piece of blogging software I've decided to write my own piece of even less forgiving blogging software.

Let's see how it goes this time...


In case you are wondering, here are some questions & answers regarding λ-blog:

Continue reading

Lately I've been banging around a lot in order to get up to speed with Erlang/OTP and its various web-server libraries, and I figured I could share some of my findings here for future reference and in general for The Greater Good.

Test server

As you might have already noticed, this benchmark concerns two of the most well knows Erlang web-server libraries, MochiWeb and Cowboy, and it aims to explore their behaviour under some considerable load.

The server in question uses two communication protocols, HTTP and WebSocket, so as an added benefit we'll see how these two compare. Unfortunately, MochiWeb doesn't have a built-in support for WebSocket, so an external library was needed. The rather simple client API is defined as:

  • ht​tp://host/poll/N - an HTTP chunked reply with one chunk of data sent every N seconds,
  • ws://host/wspoll/N - a WebSocket connection with one chunk sent every N seconds.
Continue reading

With Google Reader being discontinued and everyone looking for alternatives I've decided to look for a little less "standard" solution, and hey, it turns out Emacs can be a pretty powerful RSS reader.


News Ticker is a built-in Emacs feed reader that doesn't get much attention for some reason. It is feature-rich, handles both RSS 2.0 and Atom feeds and has quite a bunch of tweakable options. Here's a simple setup to start with:

(require 'newsticker)

; W3M HTML renderer isn't essential, but it's pretty useful.
(require 'w3m)
(setq newsticker-html-renderer 'w3m-region)

; We want our feeds pulled every 10 minutes.
(setq newsticker-retrieval-interval 600)

; Setup the feeds. We'll have a look at these in just a second.
(setq newsticker-url-list-defaults nil)
(setq newsticker-url-list '("..."))

; Optionally bind a shortcut for your new RSS reader.
(global-set-key (kbd "C-c r") 'newsticker-treeview)

; Don't forget to start it!

Continue reading

This is a follow-up post to Gamification showing how I use it and what purpose does it serve me.

In summary, I'm a kind of control freak who likes all sorts of stats (such as my systems stats or a projects repo stats) displayed neatly all over the place, and it was only a matter of time before I started monitoring myself, and so I wrote a tiny tool, Gamify, that integrates with Emacs' Org-Mode and tracks my skills, their dependencies and their development.

Welcome to the Shameless Self-plug City, where the graphs are green and the girls are... Well, absent...

Continue reading

Finals are comming, so I might as well hack around a bit with ASM...

It's been a while since the last status update and I hate to admit it, but not much has changed in ASM repo. I was messing around with combinators in an attempt to simplify ASM' environments, and I was experimenting with new immutability semantics, since at the moment it's pretty much a one big copy-vs-alias mess. There are still a bunch of unresolved issues here and there concerning efficiency mainly, but if ASM is to be relevant in 100 years of time I'd much rather sacrifice efficiency for simpler semantics and expressive power.

Lastly, I was thinking about a way of exposing as much of ASM' semantics as possible and allowing their run-time overriding, using a Metaobject protocol:

Tiny... MOP...

(import 'samples.tinyclos)

(defmethod apply ((v Vector) n)
  (write "Applying a vector to something? Are you " n "?"))

(apply '[1 2 3 4] '(nuts))

Continue reading


According to the Oxford Dictionary...

Gamification (ˌɡeɪmɪfɪˈkeɪʃ(ə)n) is the application of typical elements of game playing (e.g. point scoring, competition with others, rules of play) to other areas of activity, typically as an online marketing technique to encourage engagement with a product or service: gamification is exciting because it promises to make the hard stuff in life fun.

Let's see how to apply it to optimize performing daily activities and get some useful statistics out of it...


Continue reading

Resistance is futile...

As we all know Emacs is a great operating system and a decent editor, and as such it has been serving me really well - I find myself assimilating more and more of my tools and daily activities into the Emacs collective. Recently I realised that Conky just wouldn't cut it anymore...

First of all, I barely look at my desktop. There's just no reason to do that other than checking some of the system stats such as memory usage or CPU load when I'm hacking arround and testing stuff.

For this particular use-case I figured the Emacs mode-line would be perfect to display all the relevant statistics directly in Emacs in such a way that I could glance through them without interrupting my workflow - giving me real-time feedback with minimal distraction.

Continue reading