Software development projects and more.

Update: PET/CBM Musical Keyboard v1.2

leave a comment »

RhinoDevel’s Musical Keyboard v1.2 for PET/CBM.

RhinoDevel’s Musical Keyboard for Commodore PET/CBM 8-bit machines got updated to Version 1.2!

Read more about it in the README.

Download the PRG files for your BASIC v1, v2 or v4 machine here!

Enjoy making music with your Commodore machines!

Marcel @ RhinoDevel

Written by RhinoDevel

8. November 2020 at 13:08

Posted in commodore, retro

Tagged with , , , , , , ,

Musical Keyboard PRG for your CBM/PET

leave a comment »


RhinoDevel’s Musical Keyboard.

My musical keyboard for your Commodore 8-bit CBM/PET machine is out now!

Play, record (!), save and load melodies with your CBM 3032, 4016, 8032, etc.!

Read more and find the download of v1.0 at Github: https://github.com/RhinoDevel/keyboard/blob/master/README.md

Enjoy and stay creative!

Marc @ RhinoDevel

Written by RhinoDevel

18. May 2020 at 22:04

Posted in commodore, General, retro

Tagged with , , , , ,

CBM Tape Pi v1.6.0 with direct SD card access

with 4 comments


CBM Tape Pi v1.6.0 finally supports direct Raspberry Pi SD card access (the additional serial connection to a PC is no longer necessary)!

Watch the video (demoing with a Commodore CBM 3032)!

Please use the more recent version CBM Tape Pi v1.6.1!

Read all about it at GitHub project page.

Written by RhinoDevel

11. December 2019 at 21:48

CBM Tape Pi v1.5.1 with SAVE feature

leave a comment »

CBM Tape Pi v1.5.1 supports Commodore machine datassette SAVE command!

Read everything about the updated Commodore 8-bit datassette emulator using a Raspberry Pi at GitHub.

Written by RhinoDevel

1. September 2019 at 11:50

CBM Tape Pi – Datassette emulator

leave a comment »

Send your PRG files via serial interface connected to a Raspberry Pi (emulating a datassette/tape drive) to your Commodore machine with my solution called CBM Tape Pi!

CBM Tape Pi (Raspberry Pi 2)

More details at the CBM Tape Pi GitHub page:

README (includes how-to)

Release 1.0 for Raspberry Pi 1 and Raspberry Pi 2

Have fun with your retro hardware!

Marc @ RhinoDevel

Written by RhinoDevel

14. January 2019 at 14:08


leave a comment »


Der ImmoAnnuRechner in Aktion.

Um die tatsächlichen Kosten einer Immobilienfinanzierung per Annuitätendarlehen berechnen zu können, habe ich einen extrem einfach gehaltenen Rechner implementiert, den Ihr per Browser aufrufen könnt:

ImmoAnnuRechner – Website

Der Rechner funktioniert folgendermaßen:

Veränderbare Eingaben sind:

  • Kaufpreis.
  • Diverse Nebenkosten (%).
  • Eigenkapital.

=> Damit wird das benötigte Fremdkapital berechnet.

  • Zinssatz (%).
  • Anfangstilgung (%).

=> Dadurch werden dann die restlichen Ergebnisse berechnet, u.a.:

  • Monatliche Rate.
  • Laufzeit.
  • Gesamtzinsen.

“Klickt” man sich aus einem Eingabefeld “heraus”, werden alle Werte automatisch erneut berechnet (also aktualisiert).

Die aktuellste Beschreibung und den kompletten Source Code findet Ihr unter:

ImmoAnnuRechner bei GitHub

Viel Erfolg beim Immobilienkauf

Marc @ RhinoDevel

Written by RhinoDevel

1. December 2018 at 12:08

Commodore PET/CBM 4032-32N

leave a comment »

Enjoy these images of my Commodore PET/CBM 4032-32N mainboard! It is a 8032090 type of board, you can find the schematics and further documentation here.

Written by RhinoDevel

20. November 2017 at 13:50

Posted in commodore, Hardware, retro

Tagged with ,

JavaScript: Convert number to binary (string)

with 2 comments

Create a string holding the binary representation of a number (that is initially converted to a positive integer) with JavaScript:

var decToBinStr = function(n)
    var s, i;

        return String(0);

    i = ~~Math.abs(n); // Positive integer wanted.
    s = '';
        s = i%2 + s;
        i = ~~(i/2); // Integer division.
    return s;

The function above creates the binary representation as one would do it with pen and paper.

I implemented it this way to show how you can do it in any programming language.

But if you are interested in a “better” way to do this with JavaScript:

You may also use the >>> (zero-fill right shift) operator to achieve this (or something almost similar..) with less code. See Mozilla and stackoverflow.com.

Written by RhinoDevel

27. June 2017 at 11:03

Posted in Development, JavaScript

Tagged with ,

Atom cheat sheet

leave a comment »

I recommend the open source Atom editor – especially for software developers.

Here comes my Atom cheat sheet that should be useful for everybody who is already accustomed to standard text editor controls, but starts using Atom (the shortcuts may be a little bit different, if you are not using Windows, but Linux or MacOS):

CTRL+SHIFT+P = Command Palette

CTRL+T = Fuzzy Finder

CTRL+B = Fuzzy Finder in buffers.

CTRL+, = Settings View

CTRL+TAB / CTRL+SHIFT+TAB = Cycle through panes.
CTRL+K -> UP/DOWN/LEFT/RIGHT = Split panes in some direction.
CTRL+K -> CTRL+UP/DOWN/LEFT/RIGHT = Move through panes in some direction.

CTRL+W = Close pane item (tab) / empty pane / window.

CTRL+LEFT = To beginning of word.
CTRL+RIGHT = To end of word.
CTRL+HOME = To top of file.
CTRL+END = To end of file.
CTRL+G = Move to row (and column).
CTRL+R = Move to a symbol in current file (e.g. a method definition).
CTRL+M = Jump to the bracket matching the one adjacent to the cursor.
It jumps to the nearest enclosing bracket when there's no adjacent bracket.

CTRL+ALT+F2 = Set/unset bookmark at current line.
F2 / SHIFT+F2 = Cycle forwards and backwards through bookmarks in current file.
CTRL+F2 = Move to a bookmark in project.

CTRL+SHIFT+LEFT = Select to beginning of word.
CTRL+SHIFT+RIGHT = Select to end of word.
CTRL+L = Select entire line.
CTRL+ALT+M = Select all the text inside the current brackets.

CTRL+J = Join the next line to the end of the current line.
CTRL+UP / CTRL+DOWN = Move the current line up or down.
CTRL+SHIFT+D = Duplicate current line.
CTRL+SHIFT+K = Delete current line.
CTRL+BACKSPACE = Delete to beginning of word.
CTRL+DEL = Delete to end of word.

The original source for all the shortcuts above is the Atom Flight Manual.

Written by RhinoDevel

21. October 2016 at 16:34

Posted in Development

Tagged with

pib – Portable Incremental Backup

leave a comment »

pib (for Portable Incremental Backup) is a free backup tool I wrote.

As there already are zillions of backup utilities – what makes this one special?

  • Simple: It is just a commandline tool with four different functions: Backup, verify, (re-)create and info.
  • Portable: It does not use any external source code or libraries and is written in C (C11). So far it was tested with Linux and Windows, but getting it running on other plattforms shouldn’t be very hard.
  • Does exactly what I need (and maybe you like it, too): I never used any backup tools, because they always seemed too complex for the simple task I wanted them to do: Just keep two folders in sync. I am pretty sure you can do that with a lot of tools (like rsync), but I wanted to know exactly how the backup tool works and writing it was fun.

You can get a Windows binary and the source code for free at my GitHub page, there is also a complete description about its functionality.

Additionally to the content at GitHub, here is a little usage example:


1. Create a backup folder somewhere (e.g. on an external drive).


2. Start the initial backup. pib will always tell you what it is doing.


3. Over time, the content of the folder you backed up will change. These are some examples.


4. Next backup: pib tells you, what has changed since last time. You decide, if pib shall proceed and update the backup folder contents to match the source folder (again).


5. Info feature: pib can tell you the files & folders and byte count of any directory.

Hope you like it and maybe it is even useful to you!


Written by RhinoDevel

30. September 2016 at 18:46

Posted in pib

Tagged with , , , , ,

%d bloggers like this: