From a97308347911586764d77af06b68c008ab73252b Mon Sep 17 00:00:00 2001 From: qwertfisch Date: Wed, 7 Oct 2020 18:57:25 +0200 Subject: [PATCH] C64-Treiber unter Historisch --- docs/Historisch/C64.md | 39 ++++++++++++++++++++++++ docs/Historisch/Neo1.md | 2 +- docs/Historisch/commodore_startbild.png | Bin 0 -> 1678 bytes mkdocs.yml | 1 + 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 docs/Historisch/C64.md create mode 100644 docs/Historisch/commodore_startbild.png diff --git a/docs/Historisch/C64.md b/docs/Historisch/C64.md new file mode 100644 index 0000000..c722a6f --- /dev/null +++ b/docs/Historisch/C64.md @@ -0,0 +1,39 @@ +# C64-Tastaturtreiber + +![Image](commodore_startbild.png) + +Auch für den alten 64er ist jetzt ein Neo-Tastaturtreiber zu haben. Der Treiber (Version 1.0 von Neo, nicht das aktuellen Neo 2) befindet sich in einem Alphastadium, also ist weitgehend ungetestet, da ich hier zur Zeit noch keine Möglichkeit habe, die Dateien auf einen echten C64 zu übertragen (bitte berichten, wenn es Erfolge gibt). Deshalb beschränkt sich der (erfolgreiche) Test bislang auf den C64-Emulator [VICE](http://www.viceteam.org/). + +Programmiert sind sie mit Hilfe von [ACME](http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/acme.html) (mehr zum 65xx-Crossassembler ACME findet man in der [64er-Ecke](http://www.eigenheimstrasse.de:8668/space/Computerecke/Nostalgie/C64)). + +## Treiberdateien +Die Treiberdateien und Quellen dazu gibt es hier: [commodore64](https://git.neo-layout.org/neo/neo-layout/src/branch/master/commodore64). Benötigt wird für den Betrieb nur die Datei `neo-layout.prg`. + +## Wie aktivieren +Zum Treiber ist nicht viel zu sagen, außer dass er ganz normal mit +``` +LOAD "NEO-LAYOUT.PRG", 8 +``` +geladen werden kann und mit +``` +RUN +``` +gestartet wird. Die Treiberroutine kopiert sich daraufhin nach $c000 (12*4096) und aktiviert sich. + +## Wie deaktivieren +Ausschalten lässt sich der Treiber einfach durch den *Run/Stop-Restore*-Warmstart. + +## Probleme und TODO +Da der 64er-Emulator VICE, den ich für die Entwicklung benutzt habe, seine Tastatur etwas seltsam belegt, lässt sich für mich nicht eindeutig bestimmen, ob alle Tasten richtig kommen. Außerdem enthält das Neo-Layout normalerweise deutsche Sonderzeichen, die beim C64 allerdings nicht vorhanden sind. Daher wurden auf die entsprechenden Tasten Klammern und dergleichen gelegt. + +Ebenfalls wurde die CTRL-Ebene für diesen Alphaversion noch nicht angepasst. Erstmal abwarten, ob sich jemand dafür interessiert, bevor ich mir die Mühe mache. + +Es macht ebenfalls kaum Mühe einen entsprechend gepatchten Kernel zu erstellen, indem man die Layout-Tabellen einfach an die entsprechende Stelle kopiert. Für eine Alphaversion ging mir das allerdings erstmal zu weit. + +## Randbemerkungen +Man findet als Anfang vom Assemblerprogramm einen trickreichen Aufbau, der auch auf andere solche Programme übertragbar ist. Der Basic-Aufruf der Startroutine per `SYS` und Zeilennummern und die ganze Struktur ist schon in der Assemblerdatei fertig gemacht. + +Wenn man `dest` anders legt, kann der Neo-Treiber eigentlich an jede beliebige Stelle im Speicher installiert werden, solange keine Bankswitches und Memorymappings über das Prozessorregister dafür notwendig werden. + +In den Keytabellen habe ich die Originalzeilen mit einem Semikolon (`;`) als Kommentar ausgeklammert, damit man sehen kann auf welche Originalzeichen die entsprechenden Neo-Zeichen belegt wurden. Fehler lassen sich so leichter finden und korrigieren. + diff --git a/docs/Historisch/Neo1.md b/docs/Historisch/Neo1.md index 255c837..f2ebdbf 100644 --- a/docs/Historisch/Neo1.md +++ b/docs/Historisch/Neo1.md @@ -27,7 +27,7 @@ Diese Version war bereits in allen Linuxdistribution (Debian, Ubuntu, Fedora, Su #### Commodore 64 (C64) * Quellen des Treibers: [neo-layout.asm](Neo1.0/neo-layout.asm) * Treiber für C64: [neo-layout.prg](Neo1.0/neo-layout.prg) - * Kurze Doku für den C64-Treiber: [readme-c64.txt](Neo1.0/readme-c64.txt) + * Kurze Doku für den C64-Tastaturtreiber: [C64](C64.md) ### Tippkurse #### KTouch diff --git a/docs/Historisch/commodore_startbild.png b/docs/Historisch/commodore_startbild.png new file mode 100644 index 0000000000000000000000000000000000000000..a15e4d18ac608221030b958874ce863d1637a336 GIT binary patch literal 1678 zcmbu93ry2T9LEn@kijZ2S@3}c-OLaI=;{oGVnLA(h`g%lh7|~eb>lI#5Ri3!KnO-a z(aB@Lpb*^*c2J!52T)pd~Rgh`%a==8PC>?x>*H`A<@r!11A9Bmis_3*pYmV zozW}{EAN|K5fg#0l4d5ufhBPd0PFy;{#VZR=- zmPd7t2uZ%hJya{|Y-L6|bLm32K zgDCP5_xIbO62!CIc+ynl+cya88;|73zn9k-E5yavfEa ztbR4|0co>l?Xb=zV$dj#%IiX!Wr(>lRpg+uJ?~O4Jn4zR{Kp~PJ`ql9dfYjq6p-8| zVAFvg-C3(?*F~eLRpg?!Uy98SRO4w|yPw^K+$gNcXR@z^|Vo&zZ} zG+ru|=_ZT4bBoqBs`1LNX=d8i0FNuiae^8zK=z*N1W%Uv-I&te4s?p6|A{FdA$_>| zpcQapXuh+y=6PDwwn8(G_+ zf?n#KnleiaIHz6ZGlu8cx%$Q9P`fm%o91u*dFLvZ$E2tQX%QNo&}5de%<-~v)4~Qt z*Z0&&OV-W$)e9$966X_+v#@@R>lRN}PasXDCfyLxswT=KM9#X$ix+)?ASxi_~(l5*RAkN^QavRE@ar*A34E zRWmG zMqVBCbS&#W!z;R=LP${h6-sHzc=bB>RM9EpiBK&*3D=u*Zl8S7C1!AI66w5wIXjXr zzgERYMHd`wnbvNe|4<48d#~o8zHxX6d?U71#qtxA!tunnh!m_wEv-y=NHFjLz=6s% zjkunSg}mh|SkiSciVV3Y^NE22sAloA%Pku5CGy;Hk!j4zmkvMnoF?yJfBz=1+Ur!Hu;t~PSz=QFw1xqUkT7N}ZxFJvg9p2}!fjve4@B?ozG*$o-}<$1 z*fBa@5a-3ZLkPX0-4b>C%l~I0Z)msV|K9-I$eLVm=1unw*jW1EWs1H8)PJPMYfl+q h8-!oA3#}RH28SP;wzT!e!!y7#!p}y9ww_KZ{2TE+J%<1Q literal 0 HcmV?d00001 diff --git a/mkdocs.yml b/mkdocs.yml index 0c551d9..5c0af92 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -121,6 +121,7 @@ nav: - Geschichte: Historisch/Geschichte.md - Historisch/Paradigmen.md - Historisch/Neo1.md + - Historisch/C64.md - Historisch/Cherry.md - Historisch/Diskussionen.md - NeoCon: Historisch/NeoCon.md