News

Ideen & Entwicklungsschritte

🇩🇪 · HacKNology

1. Erstmal ein ISA-Spec! Bevor man loslegt, sollte man einen Plan haben (und am besten schriftlich fixieren), wohin die Reise gehen soll! Wenn man erstmal anfängt zu definieren, stellt man schnell fest, was noch so alles fehlt. Zunächst habe ich eine Spezifikation der neuen 32-Bit “Instruction Set Architecture” (ISA) erstellt. Im Laufe der Zeit habe ich diese immer wieder erweitert, je nach Erfordernis. Irgendwann passten dann die Bitmasken nicht mehr so richtig (es war halt nix mehr frei) und das einfache Ausgangsschema musste verlassen werden (die blau & dunkelgrün hinterlegten Befehle) - 🗣“beim nächsten Mal wird alles 64-Bit & viel viel besser …”

Tutorial 3 - The HV2 Platform Emulator

🇩🇪 · HacKNology

Applications compiled for the HV2 target platform may be run on the HV2 emulator “hv2e32”. The emulator may run immediately via the “- -Run” command line option or started manually with the [F5] key. 1. Boot Sequence The operating system “HV2OS” is loaded from its image file “HV2OS.hv2” into program memory & started at address offset #0 (it is possible, to supply a different image - if it is compiled non-relocatable for address zero …).

Tutorial 1 - Hello World

🇩🇪 · HacKNology

We start with a simple console “HelloWorld” program. Now we run it with the HV2 emulator. From B/W we switch to colour! And now the HV2 device emulation for the AMD64 platform …

Tutorial 4 - The HV2 Operating System

🇩🇪 · HacKNology

NOTE: All examples are multi-platform, HV2 with the “hv2e32” emulator, native Linux “AMD64” with the “hv2e64” HV2 platform emulator. A Game Demo A simple game, showing the capabilites of the HV2 devices as well as their emulation on the (native Linux) AMD64 target platform. See “CGDGame” sources for details. Multitasking A simple multitasking example. System Module Programming A simple HV2OS integrable module, showing gamepad usage.

Tutorial 2 - The XJack (eXtended Jack) Language

🇩🇪 · HacKNology

We start with basic XJack stuff. Jack adepts will have noticed: For void functions, no value return is required. … as is the return statement itself required! The function attribute “public” indicates the “global” scope (but is optional - and yes, there is a “private” attribute as well now!) XJack Extensions Here is a list of most of the extensions (compared to standard Jack). Exception handling Yes, we support exception handling now!

XJack (One Step Beyond) ... (The NAND2TETRIS Experience / Part II)

🇩🇪 · HacKNology

“Ein kleiner Schritt für die Menschheit, ein großer Sprung für …” Motivation Selbst der HE32 Emulator aus Teil 1 läuft noch relativ gemächlich, Geschwindigkeit geht anders. Wenn man nach den Ursachen forscht, kommt dann Grundsätzliches zu Tage. Die verwendete CPU kennt nur jeweils ein Daten- und ein Adressregister (sowie den Programmzähler). Was die Hardware vereinfacht, erschwert der Software die Arbeit. Praktisch alle vom VM-Code geforderten Aktivitäten arten in regelrechte Stackoperationsorgien aus.