Update: PET/CBM Musical Keyboard v1.2
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
Musical Keyboard PRG for your CBM/PET

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
ImmoAnnuRechner

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:
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:
Viel Erfolg beim Immobilienkauf
Marc @ RhinoDevel
Commodore PET/CBM 4032-32N
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.




JavaScript: Convert number to binary (string)
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; if(n===0.0) { return String(0); } i = ~~Math.abs(n); // Positive integer wanted. s = ''; do { s = i%2 + s; i = ~~(i/2); // Integer division. }while(i>0); 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.
Atom cheat sheet
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.
pib – Portable Incremental Backup
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!