Steambox im Eigenbau – Teil 2

Im ersten Teil habe ich über mein neues Steamboxprojekt berichtet.
Die Festplattenlöschung war problemlos nach ca 4,5h fertig, bei einer 320GB Platte. In dem Zuge wurden auch keine Fehler wie defekte Sektoren gefunden. Auch memtest86 lief gut durch, die Kiste sollte prinzipiell also immer noch gut laufen. Hier musste ich allerdings die ältere Version 4 benutzen, die noch ein klassisches BIOS unterstützt. Der Acer hat noch kein UEFI.

Als nächsten Schritt habe ich dann mit der Installation von Windows 10 begonnen. Ich hatte zunächst eine gute alte DVD mit dem Medienerstellertool von Microsoft erzeugt.

Der Acer PC startete diese DVD auch, aber dann blieb der Bootvorgang mit Windowslogo und drehendem Rädchen für über 10min hängen. Schließlich wurde mir eine obskure Fehlermeldung gezeigt, wonach Geräte nicht ansprechbar waren.

Ich probierte es dann noch 2 oder 3mal aus, hatte aber keinen Erfolg. Als Plan B habe ich dann eine SD Karte als Installationsmedium erstellt, falls das DVD Laufwerk eine Macke hatte. Auch der eingebaute SD Kartenleser war mir suspekt, da war schon vor Jahren etwas kaputtgegangen.

Mit einem externen Kartenleser habe ich dann von USB gebootet und damit lief die Installation schließlich ohne Probleme los.

Auf die Frage nach einem Lizenzschlüssel hin habe ich meinen entsprechenden alten Windows 7 Home Schlüssel aus den Unterlagen vom Acer PC angegeben. Und tatsächlich, die Installation hat ihn akzeptiert und problemlos weiter gemacht.

Hätte dies nicht funktioniert, dann hätte ich vermutlich vorerst das Projekt ohne Aktivierung von Windows 10 fortgesetzt. Dann hätte ich später immer noch einen Lizenzschlüssel kaufen können.

Nach ca 45min hatte ich dann ein Windows 10 installiert, bei dem ich erstmal viele invasive Fragen mit nein beantwortet hatte. Passend zu meiner Windows 7 Lizenz bekam ich so also ein Windows 10 Home Edition installiert.

Zunächst hatte ich Angst, ob dies vielleicht nur einen einzigen User erlauben würde, aber man kann definitiv weitere Accounts hinzufügen.

Windows Hello habe ich gleich in der Systemsteuerung abgeklemmt, ich logge mich lieber mit einem ordentlichen Passwort ein, und nicht mit einer Pin.

Für die Benutzung als Steambox brauche ich in Zukunft natürlich Controlerunterstützung. Der Empfänger für meinen wireless Xbox 360 Controller wurde gleich erkannt und der Treiber kommentarlos installiert.

Danach habe ich erstmal 2-3 Stunden investiert, um eine grundlegende Auswahl an Programmen zu installieren. Auch auf einer Steambox will ich die gängigsten Dateiformate zumindest ansehen können.

Ich installierte folgende Programme:

  • 7-Zip (Ein- und Auspacken von Dateiarchiven ist ein Muss)
  • Daemon Tools Lite (bei dem ggfs defekten DVD Laufwerk will ich notfalls CD/DVD Images verwenden können, Stand März 2020 gibt immer noch eine freie Version ohne Zahlungszwang)
  • Notepad++ (denn ohne einen ordentlichen Texteditor geht nichts)
  • LibreOffice (Officedokumente will man zumindest Lesen und notfalls auch schnell schreiben können)
  • Acrobat Reader (PDFs tauchen doch regelmäßig mal wieder auf)
  • CDBurnerXP (falls man doch mal ISOs erstellen oder zumindest wegbrennen will

Danach habe ich dann noch einen weiteren Benutzeraccount angelegt, unter dem später Steam direkt gestartet werden soll. Mehr dazu in einem Folgeartikel

Ein paar Dinge liefen nicht auf Anhieb. Für meine PCIe-Karte mit COM Port fehlt mir noch ein Treiber für Windows 10. Diese Schnittstelle ist aber nicht lebenswichtig für eine Steambox.

Das lokale Netzwerk musste ich zum Filesharing über SMB erstmal aktivieren, aber da ist mir eine gezielte bewusste Aktivierung lieber wie komische Magie.

Einloggen über Remotedesktop ist bei der Home Edition nicht möglich. Ich probierte Teamviewer aus, das war aber irgendwie ruckelig und laggte rum, sodas ich dann noch lieber live vor dem Gerät sitzen wollte.

Als Virenschutz habe ich erstmal Windows Defender belassen. Ob ich da noch mehr installiere, weiß ich jetzt noch nicht.

Insgesamt bin ich überrascht, der alte Athlon Dualcore mit 3GB RAM läuft unter Windows 10 gefühlt zügiger als unter Windows 7. Auch bootet Windows 10 erstaunlich gut. Hat Microsoft nach 20 Jahren endlich mal dazugelernt?

Und Steam OS? Ich glaube, ich hätte für die Installation weniger wie die Hälfte der Zeit gebraucht, es würde auch funktionieren und ich hätte sofort Steam im Zugriff gehabt. Allerdings wäre dort dann die Spieleauswahl stark reduziert, vorallem ein paar Capcom und Konamipacks laufen derzeit nur unter Windows 10, aber nicht unter Windows 8. Und die möchte ich mal anzocken, bevor ich auch der Alienware ein Update auf Windows 10 installiere.

Steambox im Eigenbau – Teil 1

Ich habe schon vor 2,5 Jahren einen neuen kleinen, leisen, lüfterlosen Arbeitsrechner gekauft. Da ich zum Spielen mittlerweile meine Alienware Alpha benutze, ist der Arbeitsrechner nicht mehr dualbootfähig und rennt nur noch unter Xubuntu, derzeit noch mit 18.04LTS.

Steam Logo

Seit diesem Neukauf stand auch mein alter Arbeitsrechner, der Acer AS X1301-3, den ich im Mai 2010 gekauft habe, nur noch rum.

Ich hatte schon länger die Idee, mal eine eigene Steambox von Grund auf selber aufzusetzen. Für dieses Projekt hatte ich schon immer den ungenutzten Acer PC im Sinne, und er sollte zumindest die Retromäßigen Titel (z.B. die neuen Capcom Releases bei Steam) alle abkönnen. Eine neuere Grafikkarte wäre vielleicht mal sinnvoll, das hat aber aktuell keine Priorität.

Geliefert wurde der Acer damals mit Windows 7 Home. Ich werde ausprobieren, ob ich Windows 10 mit dem alten Key als Professional Version installiert bekomme. Davon werde ich in einem Folgebeitrag berichten. Eine Zeitlang hätte ich auch Steam OS genommen, aber für Windows ist die Kompatibilität besser und da ich ja eigentlich einen Key für den PC habe, auch kein Hinderungsgrund.

Eine Datensicherung habe ich damals 2017 gemacht und den Rechner nicht wieder angefasst. Daher kann auch alles weg, was da noch so drauf ist. Ich könnte auch die Wiederherstellungs DVDs nehmen, aber mir ist eine Installation von Grund auf neu lieber. Außerdem ist das einem Neuprojekt mit einem alten Rechner sicherlich immer gut.

Nachdem ich aktuell endlich mal wieder Lust auf Basteln habe, habe ich heute den alten Acer hergenommen und mit Darik‘s Boot and Nuke Boot CD gestartet, denn ich wollte die Gelegenheit nutzen, mal ein Tool zur Festplattenlöschung auszuprobieren. Näheres unter https://dban.org/

Allerdings wollte meine Kiste zunächst nicht starten. Es ging dann mit einem anderen Kaltgerätekabel, aber eigentlich müsste das zuerst von mir probierte Kabel genau dasjenige gewesen, welches ich damals 7 Jahre lang mit dem Acer PC benutzt habe.

Anders Kabel, neues Glück. Der PC startete dann und ich erinnerte mich sofort, warum ich damals einen neuen PC angeschaffte habe. Die Lüfter rasselten ab und an beim Systemstart derbe laut, auch hatte ich das Gerät ein paar Mal beim Spielen von „Red Orchestra“ in eine hitzebedingte Notabschaltung gefahren (jaja, der Rechner vertrug nicht alle Games von 2007)

Die CMOS Batterie war erstmal leer, aber ich habe im BIOS wieder die Defaults eingetragen und dann startete auch die Boot CD zum Löschen der Festplatte. Ich hoffe, die Batterie ist gepuffert und das CMOS bleibt erhalten, wenn der Rechner ab und an mal wieder gestartet wird.

Im Moment läuft immer noch die Festplattenlöschung, schon seit über einer Stunde, und die geschätzte Abschlußzeit ist erst in 4,5 Stunden. Heute passiert jedenfalls nicht mehr viel damit.

Aber ein Anfang zum Projekt ist gemacht.

STM32 HAL Library für die “Blue pill”

Seit einiger Zeit kann man die sogenannte “Blue Pill” kaufen. Dies sind Mikrocontroller aus der STM32 Familie mit Cortex Kern, konkret STM32F103C8 mit Cortex M3, die auf einem schönen klassischen DIL-Träger aufgelötet sind mit Pinheader und Micro-USB zur Stromversorgung ausgerüstet sind. Dadurch passt alles in ein Steckbrett und kann auch als Arduino betrieben werden.

Ich habe mir ein paar Exemplare beschafft und möchte diese natürlich mehr oder minder “bare metal” benutzen, ähnlich wie ich das im Beruf auch tue. Dort arbeite ich seit gut 7 Jahren ebenfalls mit STM32 Controllern.

ST Microelectronics stellt eine recht gute Bibliothek zum Ansprechen der Controllerperipherie zur Verfügung. Damit man diese nicht immer mit jedem noch so kleinen Projekt von Null auf übersetzen muss, habe ich mir mit CMake ein kleines Framework geschrieben, welches die Library für den konkreten Controller der “Blue Pill” als Binary übersetzt.

Ausprobiert habe ich die Library noch nicht, aber es baut und linkt. Eigentlich müsste das schon reichen, das .a File wird im neuen Projekt referenziert und der Includepfade zu der Headern der HAL Library mitangegeben.

Der Anwender muss ggfs. die STM32 Header für den Controller in seinem Projekt referenzieren, denn einige Headerfiles der HAL Library ziehen die controllerspezifischen Header nochmal rein.

Näheres und technische Updates gibt es auf der Projektablage bei Github:
https://github.com/simonsunnyboy/stm32hal_bluepill

Ich habe den heute aktuellen Stand der HAL Library eingebunden, speziell den vom CubeMX angelegten, STM32Cube_FW_F1_V1.8.0.

WordPress 5 und der klassische Editor

Mit WordPress 5 und neuer wurde ein neuer Editor eingeführt. Der gefällt mir irgendwie überhaupt nicht.

Glücklicherweise kann man auf den klassischen Editor zurück. Dazu muss man nur unter “Plugins” den “Classic Editor” installieren.
Und schon sieht es wieder besser aus und Beiträge können wieder lesbar erstellt werden.

Binary to Wozmon

(c) 2019 by Matthias Arndt <marndt@asmsoftware.de>
The MIT License applies to this project.

Abstract

This is a little file tool to dump a binary file in the format used by the
Wozmon monitor software used by the Apple 1.

The output can directly be fed into a serial link if necessary.

System requirements

  • C99 compliant compiler and runtime environment

Usage


$ bin2woz <loading address> <input file>

The loading address is given in 4 hexadecimal digits without prefix.
The output is dumped to stdout including CR/LF for Wozmon.

Example


$ bin2woz 0280 my_program.bin

Download

The project can be found for download at https://github.com/simonsunnyboy/bin2woz

Apple 1 Emulation von Peter Sieg ausprobiert

Ich habe im Laufe der Woche mal die Apple 1 Emulation auf Arduino Basis von Peter Sieg ausprobiert.
(vgl. https://github.com/petersieg/arduino/tree/master/arduino_6502_apple1)
Den Anstoß gab mir ein kleiner Artikel in Load #5.

Bis auf die RAM Beschränkung auf 1,5K läuft das Projekt auf Anhieb auf einem Arduino Nano.

Apple 1 Emulation auf Arduino Nano

Vielleicht baue ich den Ansatz noch aus, mir gefällt der sich magisch compilierende Sketch nicht. Es werden keine sauberen Headerdateien verwendet. Ich würde ausserdem noch das AVR interne EEPROM als Programmspeicher für den emulierten Apple aktivieren.

Kleine Testprogramme habe ich bisher mit dem Acme Assembler erstellt, mit dem man z.B. auch für den C64 Programme erstellen kann.

Um die Programme auch in den Wozmon vom Apple 1 eingeben zu können, habe ich mir eine kleines Hilfsprogramm geschrieben. Dieses konvertiert die Binärdaten in einen Hexdump, den man direkt in den Wozmon über UART hochladen kann.

Vgl. https://github.com/simonsunnyboy/bin2woz

Das Testprogramm oben füllt nur 16 Bytes innerhalb der Zeropage auf 0x41.

		*=$0280

fill 	= $41    ; fill bytes
dest	= $0080  ; start address of destination

		ldx #0
		
loop:		
		lda #fill
		sta dest,x
		inx
		cpx #$10
bne     loop

		jmp $ff00  ; back to wozmon
		
		; acme -o fill.bin fill.S

Rezept für Biryani Masala Gewürzmischung

Biryani Masala

Gewürzmischung

für 1 kleine Dose

Zutaten:

  • 1 Lorbeerblatt
  • 1 1/2 TL Fenchelsamen
  • 2 Sternanis
  • 10-12 Kapseln Grüner Kardamon
  • 1 TL schwarzer Pfeffer
  • 1 TL Gewürznelken
  • 4 TL Koriander
  • 2 TL Kreuzkümmel
  • 1/2 TL Muskatnuss
  1. Alle Zutaten in einer stabilen Gewürzmühle zu feinem Pulver mahlen
  2. Luftdicht in einer Streudose verschliessen

Verwendung für Currys mit Hühnchen oder Fisch.

Guten Appetit!

Rezept für Hamburger Apfelkuchen

Ein schöner einfach zu backender Apfelkuchen vom Blech.
Aus einem ÜNH Rezeptbuch von Anfang der 90er Jahre

  • 250 g Fett
  • 250 g Zucker
  • 1 Päckchen Vanillezucker
  • 4 Eier
  • 125 g gemahlene Mandeln
  • 250 g Mehl
  • 8 – 10 kleine Äpfel
  • Zimt

“Ihr vermischt Fett, Zucker, Vanillezucker, Eier, Mehl und Mandeln in einer Rührschüssel und stellt einen Rührteig her. Diesen gebt ihr auf ein gefettetes Blech. Schneidet die Äpfel in Viertel und steckt sie in den Teig. Nach dem Abbacken sofort schneiden und mit Zimt bestreuen.”

Backtemperatur: 200 Grad Ober und Unterhitze , bei Umluft etwa 180 Grad
Einsetzen: Mittlere Schiene
Backzeit: ca. 30 Min.

Rezept für Eiweißbrot mit Kleie und Quark

Seit ein paar Jahren backt Janina ihr Brot selber. Ich esse aus Gewohnheit wochentags auch davon, ein Brot ohne Mehl. Es kommt auf die Würzung und den Salzgehalt an. Es kann sehr gut gelingen und es schmeckt bei richtiger Würzung auch komplett ohne Butter und Belag.

Eiweißbrot mit Kleie und Quark

ein herzhaftes Brot ohne Mehl

für 1 Laib

Zutaten:

  • 6 Eier
  • 500g Magerquark
  • 1,5 Päckchen Trockenhefe
  • 1 Päckchen Backpulver
  • 75ml warmes Wasser
  • eine Prise Zucker
  • Salz
  • 250g Haferkleie
  • 50g Weizenkleie
  • 50g Leinsamen
  • 50g Sonnenblumenkerne
  • Brotgewürz nach Belieben, z.B. Anis, Kümmel, Fenchelsamen in Kombination (notfalls auch Pizzagewürz, hier darf experimentiert und variiert werden)
  1. Wasser mit Zucker und Hefe vermischen, zur Seite stellen und gehen lassen
  2. Eier aufschlagen und Quark unterrühren
  3. Hefemischung hinzufügen und sorgfältig unterrühren
  4. Salz und Gewürze unterrühren
  5. Haferkleie und Weizenkleie unterrühren
  6. zuletzt Backpulver, Leinsamen und Sonnenblumenkerne unterrühren
  7. Kastenform mit Backpapier auslegen und Teig einfüllen
  8. Backen bei 200°C (Umluft) für 60min

Das fertig abgekühlte Brot am besten im Kühlschrank aufbewahren, es kann an der Luft verderben.

Guten Appetit!

ASM Software Unittest Framework

(c) 2016 by Matthias Arndt marndt@asmsoftware.de

The MIT License applies to this project. Please refer to the file COPYING for details.

The software is available on GitHub at https://github.com/simonsunnyboy/UnittestFramework

Abstract

This is a small framework to implement unittests for software written in C. There are existing projects that offer much more functionality, this one focuses on simple usability and textual output of statistics.

Main reason to implement this framework was that cunit was too complicated in usage and no other small free frameworks could be found.

System requirements

  • Cmake to build the example project
  • a C99 compliant C compiler but a C90 one will do if stdint.h and stdbool.h are supplied
  • any operating system of your choice

Using the test framework

A test should be a subfunction or the main function of an appropriate test executable.

Use the macros defined in unittest.h and link your project with unittest.c

Wrap the Test with UT_BEGIN() and UT_END() macros for proper structuring. Most commands should describe themselves.

It is allowed to start another test for entirely different content with the UT_BEGIN() macro if the last test finished with the UT_END() macro.