Um das eigene Kuriositätenkabinett zu erweitern, keinen neuen Thread aufzumachen folgt hier der Post eines kleinen Versuchsobjekts, in der Art eines minimalistischen "Desktops"/"Launchers".
Bitte melde dich an, um diesen Anhang zu sehen.
Bitte melde dich an, um diesen Anhang zu sehen.
Was wollte ich hier ausprobieren?
- minimalistischer Desktop
-- ca. 2KB Code
--- Kernel/Basic wird nicht verwendet
-- ca. 1KB Puffer, wobei man diesen auch hätte einsparen können
-- Screen ist unter I/O, was keine Vorteile brachte, sondern einfach mehr $01-Umschaltungen notwendig machte
-- Der Zeichensatz benötigt kein RAM, sondern kommt direkt on-the-fly aus dem ROM
-- insg. würden also ca. 51 KB RAM frei bleiben
- Die Prg. sind einfach Platzhalter (=alte Schinken und nichts spezielles)
-- Beim Starten wird eine "DESKTOP.INI"-Datei und daraufhin die darin angegebenen Icons eingelesen
-- Die Prg. müssen per SYS startbar sein (Die Zeile darf keine anderen Anweisungen enthalten)
--- mir fehlt immer noch der "Königsweg", wie man andere "normale" Programme ohne Kernel ausführt bzw. wie man das Basic raktiviert etc...
- Leider ohne Floppyspeeder
- insg. sehr speziell, da ich IRQs von vornherein nicht eingeplant hatte
- ein Teil des Codes ist optimiert, ein anderer ließe sich noch weiter bzgl. Speicherbedarf verkleinern
-- das Zentrieren der Labels habe ich mir erspart ![]()
Beiträge von 5ace im Thema „pmcli - the poor man's shell“
-
-
Bitte melde dich an, um diesen Anhang zu sehen.
Eine kleine unvollständige Shell zum Zeitvertreib. Sie enthält viele Fehler und sollte nicht ernst genommen werden.
Genutzt wurden Bitte melde dich an, um diesen Link zu sehen. und Bitte melde dich an, um diesen Link zu sehen..
Mit "help" kann man sich die verfügbaren Befehle anzeigen lassen.
Eigenarten:
- Nicht alle Zeichen der Tastatur werden übersetzt.
- Alle Befehle werden klein geschrieben. Dateinamen mit Leerzeichen lassen sich in Anführungszeichen schreiben.
- Die meisten Befehle sind direkte CBM-DOS Befehle.
- Copy ist der einzige Befehl, der ein anderes Laufwerk einbeziehen kann. Die zu kopierende Datei kann max. ca. 50 KB (= entspricht dem freien Speicher) groß sein.
- Die Ausführung von Programmen ist nicht durchdacht, d.h. ein Programm wird immer an $0801 geladen, es erfolgt ein unschöner Reset und man kann das Programm dann über "run" starten, sofern es auch aus Basic heraus startbar wäre. Als Test ist das Programm "RUNME" auf der .d64.
- Falls der Speicher, an dem sich die Shell aufhält ($b000 - $d000) nicht überschrieben wurde, kann sie mit SYS 49152 neu gestartet werden.
-- Speicherbelegung:
-- ZP bis $80 mit vielen und großen Lücken
-- $0400-$0800 unterschiedliche Puffer mit Lücken
-- $b000-$b800 Zeichensatz
-- $b800-$d000 Code mit einigen Lücken
-- $d800 SCREEN unter dem Colorram
-- $e000 BITMAP
- Es lassen sich Textdateien mit "type" ausgeben und mit "exec" als quasi Batch-Dateien ausführen.
-- Die Zeichen der Textdateien werden als Screen-Codes interpretiert und ein Byte mit dem Wert 0 wird als Zeilenumbruch ausgegeben.
-- Auf der .d64 ist als Beispiel die Datei "README", d.h. mit "type README" lässt sie sich ausgeben und mit "exec README" ausführen.
Am Programm werde ich nicht weiterschreiben. Es diente nur dazu meinen Drang, nach etwas mit einwenig DOS umzusetzen, nachzukommen.
Im Anhang ist noch der genutzte Zeichensatz (5x8), welchen ich noch austauschen könnte, weil sich einige Zeichen nicht bzw. nur schwer unterscheiden lassen (Bspw. G und 6; B, 8 und 0...).
pmcli - the poor man's shell
Bitte melde dich an, um diesen Anhang zu sehen.