
Einführung
Rechnerarchitektur
ZX Spectrum ist ein 8-Bit-Computer, der auf dem Z80-Prozessor basiert. Es unterscheidet sich von anderen ähnlichen Computern dadurch, dass es anstelle eines speziellen Videocontrollers nur eine Kombination aus Zählern und Multiplexern enthält (ursprünglich in BMK zusammengebaut , aber leicht in "lose" - kleine logische Mikroschaltungen übersetzt). Aus diesem Grund gewann der Computer zuerst das Preisrennen und wurde zur Standardmaschine für die "Schlafzimmerprogrammierung". Dann entkam er leicht dem ursprünglichen Hersteller und gewann einen wichtigen Platz in der Computerisierung vieler Länder der Welt. Einschließlich - der Länder, die Teil der UdSSR waren, in denen Spectrum-kompatible Autos in etwa einer Million Exemplaren hergestellt wurden (auf jeden Fall mehr als BC, DVK und UKNTs zusammen).
Eine erstaunliche Liste berühmter Klone - hier... Die "Offenheit" der Architektur (aus Sicht eines Lötkolbens - und ohne Lötkolben waren unsere Klone sogar problematisch, eine Verbindung zu einem Fernseher herzustellen) machte das ZX Spectrum zu einer sehr hoch entwickelten Plattform, die für andere 8-Bit-Plattformen (die bereits tot oder alkoholbasiert sind) untypisch ist, Megabyte, Megahertz, Festplatten und Netzwerkkarten.
ZX Spectrum funktioniert weiterhin als Plattform für Indie-Spiele (siehe den laufenden Yandex Retro-Kampf und die Your Game 6- Wettbewerbe , deren Frist bis zum 1. Dezember verlängert wurde ), aber die Entwicklung erfolgt selten im Originalformat, weil e. auf dem Spektrum selbst. Dies liegt unter anderem daran, dass native Entwicklungsumgebungen unter TR-DOS geschrieben wurden In den 90er und 2000er Jahren blieben sie hinter dem Leben zurück, und nichts Neues ersetzte sie.
Die Notwendigkeit eines Betriebssystems
Betriebssysteme für das Spektrum sind seit langem geschrieben. Das Betriebssystem, das sich im ROM befindet, ermöglicht es Ihnen, in BASIC zu schreiben und mit Magnetband zu basteln. Festplattenbetriebssysteme TR-DOS, GDOS, + 3DOS usw. Es wurden Befehle hinzugefügt, um mit einer Diskette in BASIC zu arbeiten, aber nur TR-DOS erhielt ernsthafte Dienstprogramme, und zwar nicht aufgrund einer ziemlich umständlichen BASIC-Schnittstelle, sondern aufgrund der dokumentierten (und nicht so) Einstiegspunkte in das TR-DOS-ROM.
Abgesehen von mehreren Versionen von CP / M (die ursprünglich nicht für das Spectrum geschrieben wurden und ihre Funktionen nicht optimal nutzen), war das erste ernsthafte Spectrum-Betriebssystem Single-Tasking-iS-DOS ( eins , zwei , drei , Archiv)), entwickelt in St. Petersburg Anfang der 90er Jahre. Es "out of the box" bot einen Kommandanten und ein Dateisystem mit Unterverzeichnissen (mit nichts kompatibel), einem Texteditor beliebiger Größe, vielen Dienstplatten und der Möglichkeit, mit seinen Bewohnern zu expandieren. Leider befinden sich Erweiterungen nur innerhalb des 48K RAM-Fensters. Die ersten Versionen von iS-DOS waren mit 41 KB für das gesamte System, die Bewohner und das Benutzerprogramm zufrieden, der Rest des RAM-Speicherplatzes war mit einem 6912-Byte-Bildschirm belegt.

iS-DOS im natürlichen Lebensraum
Die neuesten Versionen, die noch unter dem Namen TASiS ( eins , zwei ) veröffentlicht und unter dem ATM-Turbo 2+ -Klon geschärft wurden, ermöglichen es Ihnen, auf den gesamten 64-KB-Adressraum zu erweitern, den Bildschirm aus dem Speicher zu entfernen und die RAM-Seiten zu wechseln Der Kernel des Systems verbleibt weiterhin im Adressraum. (Gleiches gilt für CP / M - in allen bekannten Versionen belegt das System die obersten Adressen und ist unzerstörbar.)
Es wurden andere Versuche unternommen, ein Betriebssystem zu schreiben. Leider wurde keines dieser Betriebssysteme spürbar verbreitet, und viele wurden überhaupt nicht fertiggestellt.
Das bereits erwähnte iS-DOS hat sich in St. Petersburg und Moskau verbreitet. Ein ungefähres Funktionsanalogon von iS-DOS auf einer TR-DOS-Festplatte - X-DOS - blieb in Kirov.

X-DOS und seine Befehlszeilen Das
Multi-Window - System Dome OS / Pink Floyd , ebenfalls aus St. Petersburg, lebten nicht in einen brauchbaren Zustand auf. Insbesondere wurden keine Festplatten unterstützt, und es waren keine Entwicklungstools enthalten.

OS DOMAIN und seine Dokumentation im HTML
Kharkiv DNA OS- System , die hauptsächlich auf das Kopieren von Dateien ausgerichtet war, brachten den Besitzern der "Schrauben" einige Vorteile, aber "Software für Schrauben" erschien nie darin.

DNA OS und sein Dateimanager
Moskau NK-DOS , das brüderliche NeOS , Grodno DOORS \ AQUA und Saransk ZX-OS / ZXRTK erlebten keine brauchbaren Veröffentlichungen . Vom Multitasking-Betriebssystem kamen MythOS (Dnepropetrovsk) und ChaOS (Taganrog) mit mehreren Fenstern dem Benutzer am nächsten , aber sie beendeten auch ihr Leben in der Quelle - auch ohne Unterstützung für Festplatten und ohne Entwicklungstools.

MythOS und seine Konsole

ChaOS und sein Chaos
Warum gab es so viele Fehler?
Hardwareanforderungen für ein Multitasking-Betriebssystem
Das Problem bei allen frühen Betriebssystemen für das Spectrum war, dass die Entwickler versuchten, die maximale Kompatibilität ihrer Erstellung sicherzustellen. Zum Beispiel unter iS-DOS - mit Computern ab ZX Spectrum 48K (mit Diskettenlaufwerk oder Festplatte) und auf den meisten nachfolgenden Systemen - mit ZX Spectrum 128K. Dies hinterließ einen unauslöschlichen Eindruck bei der Speicherzuweisung.
Tatsache ist, dass auf 48K-Computern der gesamte Z80-Adressraum von 65536 Bytes in zwei Teile unterteilt wurde: 48K RAM (von denen 6912 Bytes vom Bildschirm verbraucht wurden, wodurch 41 Kilobyte für alles andere übrig blieben) und 16K BASIC ROM, was für das Betriebssystem von großem Nutzen ist Nein. Bei 128K lief es besser, aber nicht viel. Der Bildschirm aus dem Z80-Adressraum kann dort entfernt werden (durch Auswahl des zweiten Videopuffers), aber Sie können RAM-Seiten nur im oberen Viertel (von Adresse 0xc000) des Adressraums wechseln. Die verbleibenden 32 KB RAM können nicht umgeschaltet werden. Und die unteren 16 KB enthalten immer noch ROM, das für das Betriebssystem nicht erforderlich ist. Natürlich erlaubt der proprietäre 128K externe Geräte (wie LEC Memory Extension , DISCiPLE / + D , MB-02)) Ersetzen Sie die unteren 16 KB, und ihre Nachkommen, beginnend mit +3 , haben normalerweise den einen oder anderen integrierten Port dafür (meistens ist dort nur eine Seite RAM verfügbar), aber die Hälfte des adressierbaren Speichers kann sich beim Taskwechsel immer noch nicht ändern.
Stellen Sie sich vor, Sie schreiben einen Text- oder Grafikeditor für das Betriebssystem des ZX Spectrum 128K. Offensichtlich sind die oberen 16 KB zu klein für Text oder Abbildungen (es handelt sich nicht um die Standard- "Bildschirme" von 6912 Byte), und Sie müssen entweder die Datei ständig von der Festplatte laden (was langsam und unpraktisch ist) oder das Dokument über die Seiten verteilen. Wo befindet sich in diesem Fall der Code des Editors selbst, seiner Variablen und seines Stapels? Nicht in den oberen 16 KB RAM, denn das ist das Dokument. Nicht in den unteren 16K, da es höchstwahrscheinlich ein ROM gibt. Es stellt sich heraus, dass alle Aufgaben einen gemeinsamen Block mit 32 KB RAM gemeinsam nutzen müssen. Umgesiedelte Bewohner, aufgeteilt auf jeweils 256 Bytes, Aufrufprozeduren aus dem oberen RAM, separate Bewohner rufen Puffer für die Arbeit mit Daten auf, der Stapel ist ebenfalls auf 256 Bytes begrenzt ...Dies ist für Entwickler sehr unpraktisch. Ergebnis: Nur die Autoren selbst haben für solche Systeme geschrieben, und sie hatten nur ein oder zwei Jahre lang genug Sicherung, was nicht einmal ausreicht, um eine Entwicklungsumgebung zu schaffen.
Für ein praktisches Multitasking-System auf dem Spectrum ist es daher wichtig, in jedem der Viertel (die Wahl von 16K-Vierteln ist für den Speccy traditionell) des Z80-Adressraums umschaltbare RAM-Seiten zu haben. Es gibt nur wenige Spectrum-Schaltungen, die dies können: Dies ist die wenig bekannte "ZX-MMU" von fk0 (2000) und der mehr oder weniger verbreitete ATM-Turbo 2 (+) (1992, 1993):

Aus der Dokumentation. Das Setzen von Bit 6 ermöglicht die Steuerung über Port # 7ffd (ROM TR-DOS ersetzt automatisch ROM 48 BASIC, wenn Code in # 3dxx ausgeführt wird), andernfalls schaltet Bit 7 einfach die angegebene ROM-Seite ein. "ROM2" ist Bit 4 von Port # 7ffd, es funktioniert immer.
Viele Autoren von Betriebssystemen waren der Ansicht, dass diese Anforderung, dass ein Speichersubsystem alles umschalten kann, die Anzahl der Benutzer stark einschränken würde, und akzeptierten sie nicht. Infolgedessen erhielten sie ungefähr 0 Benutzer - aufgrund des Mangels an Software.
Entwicklung von
Hintergrund; Was ist NedoPC?
In den Jahren 2002-2003 wurde die NedoPC-Bewegung auf den Weiten von drei Kontinenten geboren, was kurz als ... ähm ... die Entwicklung von Computern mit improvisierten Mitteln beschrieben werden kann. Und NedoPC begann mit dem, was andere zu dieser Zeit fertiggestellt hatten - um Spectrum und Geräte für sie zu produzieren. Und als Spektrum nahmen sie denselben Turbo 2+ (1993) - einen Nachkommen von ATM-Turbo 2 (1992), der ein Nachkomme von ATM-Turbo (1991) ist, einem Nachkommen von Pentagon 128 (1990), das in engen Kreisen als ATM 128 (Geschichte des Kampfes) bekannt ist Firmen in den schneidigen 90ern finden sich in der Beschreibung des Honey Commander'y). Zu einer Zeit wollte Turbo 2+ (an dem die ATM-Bezeichnung wie in früheren Versionen bereits automatisch festgehalten wurde) fast den IBM-PC früherer Konfigurationen ersetzen - durch eine Festplatte (später eine CD-ROM), ein Analogon einer EGA, eine XT-Tastatur (später) AT), ein COM-Port, ein DAC, ein ADC (der auch die Rolle eines Modems spielte) und die Spiele "Prince of Persia" und " Gobliiins ", die von der PC-Version absolut korrekt waren (ich erwähne nicht die gesamte Software, es gibt viel davon). Ein Teil des genialen Schemas war jedoch im PLM verborgen, weshalb nur sehr wenige Leute es kopieren konnten. In der Weite der Ukraine gab es Gerüchte über das Ersetzen des PLM durch ROM und das Kopieren eines separaten Festplattencontrollers, aber im Allgemeinen war ein Computer in den 90er Jahren viel seltener als das Pentagon. Glücklicherweise spendeten die Entwickler von Turbo 2+ - MicroART Company - später die gesamte Dokumentation zur kostenlosen Verwendung.
Fast sofort waren mehrere Softwareentwickler in die Umlaufbahn von NedoPC involviert, und es ging um Betriebssysteme. Ansonsten funktionierte die Antwort auf die Frage "Wo sollen wir segeln?" Nicht. Die erste Frucht des harten Denkens im Jahr 2005 war das bereits erwähnte TASiS-System, für das der Quellcode von iS-DOS erworben wurde.
Parallel dazu erstellte einer der Autoren dieses Artikels 2007 einen virtuellen Charakter-SMAN, der ein Multitasking-Betriebssystem entwickelte. Und ja, sie hat auch die Phase Resident in Lower RAM durchlaufen. Diese Phase zog sich über Jahre hin. In den Jahren 2016 bis 2017 wurde ein Compiler für eine C-ähnliche Sprache NedoLang geschrieben , der in 48 KB passt (auch für ARM Thumb kompiliert). Der gordische Knoten wurde erst mit dem Erscheinen des Grafikeditors Scratch (2018) geschnitten.

Scratch und sein Menü
Die Wahl im Jahr 2018 war bereits einfach: Die ATM-Turbo 2+ -Kompatibilität war für alle Benutzer verfügbar - wenn nicht auf der Originalhardware und nicht auf dem NedoPC ZX Evo und Pentagon 2.666LE, dann auf dem ATM3 von Zorel oder zumindest in einem Emulator (Unreal Speccy, Xpeccy, ZXMAK2, Es.pectrum usw.).

Turbo 2+ (1993, aber das Board ist deutlich neuer)

Pentagon 2.666LE (2009), ein sehr seltenes Auto

ZX Evolution (2009) kann in jeder Bäckerei gekauft werden

ATM3 (2017) können Sie nur durch Bekanntschaft oder selbst herstellen.
Von diesem Moment an wurde das System NedoOS genannt und begann sich explosionsartig zu entwickeln.
Es sollte beachtet werden, dass das System, um Fantasien im Anfangsstadium dieser Explosion einzudämmen, hauptsächlich auf Befehlen aufgebaut wurde, die mit CP / M und MSX-DOS kompatibel sind. Bisher ist die Liste der Befehle in drei Abschnitte unterteilt: Kompatibel mit CP / M (jetzt gibt es 13, ihre Verwendung wird aufgrund des unbequemen FCB-Systems nicht empfohlen), kompatibel mit MSX-DOS (es gibt 11, dort ist der Dateiname bereits im Text und stattdessen FCB-Strukturen verwenden Zahlen - Handles) und sind nicht kompatibel (meistens nicht in Dateien, derzeit sind es 48, einige sollen jedoch gelöscht werden).
Entwicklungssystem im Moment
Der NedoOS-Quellcode ist immer noch nicht an die auf dem System verfügbaren Compiler angepasst (NedoLang und seine Assembler NedoAsm, Turbo Pascal und BDS C). Bisher werden nur 5 Dienstprogramme intern kompiliert. Der Hauptteil des Pakets basiert auf einem PC mit SjASMPlus (Hauptcode) und Z80 IAR C (FatFs-Dateisystem und einige Dienstprogramme).
Die Dateien werden auf einem dedizierten SVN-Server gehostet und bestehen aus Quellen, einer binären Version und einer Sammlung von Tools zum Erstellen auf einem PC.
Das System wird mit einer Schaltfläche zusammengesetzt (Batch-Datei oder Makefile - zwei Build-Systeme). Sie können eines der Ziele (für Festplatte, SD-Karte usw.) auch separat mit einer Taste erfassen und den Emulator sofort starten. Sie können jedes Dienstprogramm separat mit einem Unterhemd sammeln. Die beiden Build-Systeme sind passiert, weil einige der NedoOS-Entwickler unter Windows und andere unter Linux arbeiten.
Neben Compilern gibt es auch den Befehlsprozessor cmd.com (kann * .bat ausführen) und den von Grund auf neu geschriebenen NedoBasic-Interpreter mit grafischen Funktionen.

NedoLang kompiliert sich selbst
Systemarchitektur
Kernel-Gerät
Der für das Anwenderprogramm sichtbare Teil von NedoOS ist eine Reihe von Aufrufen im Speicherbereich 0x0000..0x0038, dem sogenannten Kernel. Der letzte dieser Aufrufe ist ein 50-Hz-Interrupt-Handler, gefolgt von einer Befehlszeile mit Parametern für das Programm mit 0x0080. Das Kernel-Gerät ist weiterhin mit CP / M kompatibel (Aufruf über 0x0005), aber wir entfernen uns langsam davon (CP / M-Aufrufe werden nur in 4 von 58 Programmen verwendet). Alle Systemaufrufe sind als Makros organisiert (Programme verwenden das Modul /src/_sdk/sys_h.asm mit diesen Makros und Konstanten) und können im Laufe der Entwicklung des Betriebssystems erheblich geändert werden. Die Folge davon ist die Notwendigkeit, das gesamte System und die Anwendungssoftware im Falle von Änderungen an diesen Makros neu zu erstellen - aber wie wir gesehen haben, geschieht dies mit einer Taste.
Das Innere von NedoOS ist in RAM-Seiten versteckt und enthält:
- ;
- ();
- , , — , , «» (. ), ;
- (BDOS), call 0x0005, CP/M MSX-DOS;
- (SD- Z-Controller, SD- NeoGS, IDE HDD, , USB flash ZXNetUSB);
- ( 40- PS/2- ZX Evo);
- (Kempston mouse );
- ( Mr. Gluk), 50- ;
- (Wiznet W5300 ZXNetUSB);
- FatFs FAT-16 FAT-32;
- TRDOSFS TR-DOS RAM-;
- ;
- FatFs, TR-DOS ();
- .
Alle Treiber sind im Kernel kompiliert, daher gibt es verschiedene "Ziele" für den Aufbau des Systems ( ATM2 , ATM2 + HDD , ATM3 , ZX Evo , Pentagon 2.666LE ).
Der Interrupt-Handler, der sich im Benutzerbereich befindet, sieht folgendermaßen aus:
push af
push bc
push de
user_fdvalue6=$+1
ld a,fd_system ;
out (0xfd),a ; ( ),
;---------
; :
;bc=memport0000
;d=pgmain
out (c),d ;may switch this code page
curpg16k=$+1
ld a,0
ld b,memport4000/256
out (c),a
curpg32klow=$+1
ld a,0
ld b,memport8000/256
out (c),a
curpg32khigh=$+1
ld a,0
ld b,memportc000/256
out (c),a
pop de
pop bc
pop af
ei
ret
Das Wechseln von Aufgaben erfolgt in einem Kreis (eingefrorene Aufgaben werden übersprungen), es gibt noch keine Prioritäten. Die Leerlaufaufgabe wird jedoch nur ausgeführt, wenn alle anderen entweder eingefroren sind oder im aktuellen Frame selbst YIELD genannt werden (das YIELD-Systemmakro - um dem System Zeit bis zum nächsten Interrupt zu geben, das YIELDKEEP-Systemmakro - um dem System Zeit zu geben und jederzeit die Kontrolle zurückzugeben).
Die Task kann den Interrupt-Handler ändern, es ist mit einer Rückkehr zu ihm und beliebigem Code danach möglich. Hierfür gibt es bestimmte Empfehlungen und Beispiele.
Terminalsystem
Aufgaben werden in drei Typen unterteilt:
- diejenigen, die überhaupt keinen Bildschirm brauchen,
- diejenigen, für die ein Textterminal ausreicht,
- Grafik - mit eigenem Bildschirm mit der erforderlichen Auflösung und eigener Palette.
In NedoOS gibt es neben dem Konzept der aktuellen Aufgabe ein Konzept des "Fokus" (Zugriff auf Tastatur, Maus und Bildschirm). Der Fokus zwischen Aufgaben wird manuell (durch die Kombination von Symbol Shift + Enter) oder automatisch (wenn Sie Grafiken aktivieren, Grafiken deaktivieren oder eine Aufgabe schließen) umgeschaltet.
Aufgaben wie (1) werden nie fokussiert. Darüber hinaus erhalten Aufgaben vom Typ (2) auch keinen Fokus, sondern liegt auf dem Textterminal, an das sie angehängt sind. Und sie sind durch die Streams stdin und stdout gebunden, entlang derer Buchstaben, Zahlen, Kringel und Codes des VT-100-Terminals mit einigen Ergänzungen verlaufen. Stdin und stdout werden über die Bibliothek stdio.asm als Warteschlangen (Pipes) implementiert. Im Kernel verfügt die Warteschlange über einen 255-Byte-Puffer. Die Schreib- und Lesefunktionen aus der Warteschlange geben zurück, wie viel tatsächlich gelesen oder geschrieben wurde (wie bei Dateien) und ob die Warteschlange am anderen Ende geschlossen ist. Diese Ströme werden von Vater zu Sohn vererbt. Am Ende wird jedoch alles vom term.com-Terminal angezeigt, das gescrollt und sogar kopiert und eingefügt werden kann. Es gibt auch einen Netzwerk-Telnet-Server netterm.com. Diese netterm.com muss nicht gestartet werden, aber term.com startet automatisch beim Systemstart.
Nedovigator im Terminal, und das Terminal wird mit dem Mausrad gescrollt.
Für Aufgaben wie (3) ist es natürlich keine Frage, Pixel durch das System zu zeichnen - es gibt nicht genug Z80-Megahertz dafür (die meisten Benutzer haben nur 14 davon). Daher ist es notwendig, durch den Speicher zu zeichnen. Und da es am Geldautomaten nur zwei Bildschirmbereiche gibt (wie bei 128 KB), kann nur eine Aufgabe ihre eigenen Bildschirmseiten haben. Die Seiten des Bildschirms werden abgefangen, wenn der Fokus geändert wird, und stattdessen erhält die Verliereraufgabe eine gefälschte Seitenzahl - eine Seite, die einfach verwöhnt werden kann. Wenn eine Aufgabe den Fokus erhält, erhält sie wie von der Tastatur eine separate Nachricht darüber, entspricht jedoch keiner echten Schaltfläche. Dadurch kann die Aufgabe den Bildschirm rechtzeitig wiederherstellen. Eine andere Aufgabe kann den Modus aktivieren, wenn das System selbst den Bildschirm dafür speichert und wiederherstellt.
Befehlszeile
Befehlszeilenfunktionen werden vom Dienstprogramm cmd implementiert, das beim Systemstart automatisch gestartet wird. Genauer gesagt, die erste Leerlaufaufgabe führt einen Begriff mit den Parametern cmd.com autoexec.bat aus. Dies bedeutet, dass cmd die angegebene Batchdatei ausführt. Die dort geschriebenen Befehle werden der Reihe nach ausgeführt. Standardmäßig werden Befehle ausgeführt, die auf das Ende warten. Wenn der Befehl jedoch der Start des Programms ist, können Sie den Start davor stellen - das Programm wird im Hintergrund ausgeführt (nur dies ist nicht mit dem Konzept der Vererbung von stdin und stdout kompatibel - Daten in Warteschlangen können gemischt werden).
Nach dem Ende der im Parameter angegebenen Operation (falls überhaupt ein Parameter vorhanden war) wird cmd normalerweise beendet. Eine Ausnahme bleibt nur für autoexec.bat übrig, sodass Sie nach dem Ende keinen defekten Trog mehr haben. In diesem Fall wartet der Leerlauf jedoch darauf, dass C + M + D gleichzeitig gedrückt wird, und kann den Term mit cmd neu starten.
Die Befehlszeile ähnelt MS-DOS. Sie können die Ausgabe eines laufenden Vorgangs in eine Datei (z. B. dir> Dateiname) oder in ein anderes Programm (z. B. dir | more.com) umleiten. Sie können die Eingabe umleiten (z. B. more.com <Dateiname). Die Verkettung wird jedoch noch nicht unterstützt.
Für eine bequemere Arbeit mit Dateien wird der Nedovigator Commander (nv.com) verwendet.

Kitty, weil du den Nedovigator schon gesehen hast
Systemplatzierung
Es sollte klargestellt werden, dass jedes Dateisystem, das wir haben, an einen bestimmten Buchstaben angehängt ist, sodass die Pfade wie folgt aussehen: m: /bin/filename.txt. Die Warteschlangen haben den Buchstaben z: mount, aber bisher werden sie ohne Namen geöffnet. Die Verbindung zwischen den Aufgaben erfolgt durch Übergabe der Warteschlangennummer (Handle).
Um spezielle Bootloader wie GRUB zu vermeiden, hofft NedoOS, dass das ROM des Computers die Trunk- Datei (*. $ C) vom gewünschten Gerät aus starten kann - beispielsweise im ZX Evo mit einem Dateibrowser oder durch Drücken der Taste 5 im Hauptmenü und im Pentagon 2.666 LE - über eingebauten Kopierer Fatall... Andernfalls müssen Sie das Betriebssystem von TR-DOS-Disketten starten. Systemdateien befinden sich im Verzeichnis / bin der Systemfestplatte, Spiele in / nedogame. Zusätzliche Spieledateien befinden sich normalerweise in einem Unterverzeichnis des gleichnamigen Spiels: Beispielsweise verfügt ein NedoOS-farbiges Spiel /nedogame/br.com ( Black Raven ) auch über ein Verzeichnis / nedogame / br mit Grafiken, Musik und Levels.

Farbiger Rabe
Aktuellen Möglichkeiten
Speicher: Bis zu 4 MB RAM werden unterstützt (im Build-System konfigurierbar), Speicher wird Aufgaben bei Bedarf auf 16 KB-Seiten zugewiesen, Aufgaben können sie selbst an das System zurückgeben. Aufgrund des fehlenden Speicherschutzes in der Hardware kann der gesamte Speicher als gemeinsam genutzt betrachtet werden. Standardmäßig werden Seiten ab dem Beginn des Speichers zugewiesen, wobei einige Systemseiten nicht berücksichtigt werden. Swap wird nicht unterstützt (es wurde in der Anfangsphase in Betracht gezogen, erfordert jedoch eine Umnummerierung der Seiten, wodurch die Leistung allgemeiner Aufgaben erheblich verringert wird).
Multitasking:Verschieben (durch Unterbrechung von 50 Hz) und kooperativ; Bis zu 16 Aufgaben können gleichzeitig ausgeführt werden (eine davon ist inaktiv, kann entfernt werden, aber YIELD gibt keine Garantien). Sie können Ihren Musik-Player in den System-Interrupt-Handler einsetzen - er wird im Kontext des Kernels mit drei Benutzerseiten ausgeführt (Sie können sie noch nicht im laufenden Betrieb umschalten). Aufgaben können eingefroren werden (wenn sie gerade erstellt, gelöscht wurden oder auf ein Kind warten). Sie können die Liste der Aufgaben in cmd, ihre Aktivität und das Vorhandensein eines grafischen Modus anzeigen und aus der Ausführung entfernen (dadurch werden ihre Seiten, FatFs-Dateidatensätze und Netzwerk-Sockets freigegeben).
Dateien:Bis zu 16 FAT-Dateien, 8 TR-DOS-Dateien und 8 Warteschlangen können gleichzeitig geöffnet werden. Sie können mehrere Dateien gleichzeitig lesen und schreiben (wichtig für den Compiler) - sogar auf einer Diskette! Sie können Dateiparameter lesen, einen Zeiger auf die aktuelle Position, diese Position ändern, Verzeichnisse erstellen und umbenennen. Warteschlangen setzen zwei Benutzeraufgaben voraus. Sie müssen einmal geöffnet (bei der Erstellung), aber zweimal geschlossen werden. Dateivorgänge werden im Kontext des Kernels ausgeführt. Zu diesem Zeitpunkt funktioniert der Taskplaner nicht, aber der Systemmusikprozessor wird ausgeführt.
Vernetzung:ICMP-, TCP-, UDP-Protokolle, bis zu 8 Sockets gleichzeitig. Es gibt Dienstprogramme Ping, Zeit, Telnet, Netterm (Telnet-Server), DMirc (IRC-Client), DMFTP (FTP-Client) 3ws (Webserver zum Kopieren und Remote-Starten von Dateien), NedoBrowser (Textbrowser mit der Möglichkeit, Bilder separat anzuzeigen jpg, gif, png, bmp und svg - die letzten beiden Formate mit Einschränkungen; unterstützt die Protokolle http und gopher, https über einen Proxy), wget (Download der Hintergrunddatei, läuft über den Browser, kann automatisch mit dem Anzeigen von Grafiken und einem Musikplayer beginnen).

NedoBrowser sucht im Internet nach etwas
Arbeiten mit Archiven: .tar und .rar stehen zum Lesen und Schreiben zur Verfügung (ZXRar ist ein abgespecktes Analogon von Rar 2.x für DOS - ohne eine Reihe von Codes, solide Archive, Multimedia-Format und Verschlüsselung unterstützt ZXUnRar alle Codes und solide Archive, unterstützt aber auch keine Multimedia- und Verschlüsselung), .gz und .zip sind schreibgeschützt. Bisher erfolgt alles nur über Befehlszeilenprogramme.
Dokumenttypen: Dateizuordnungen werden für den integrierten Nedovigator-Befehlshaber in der Datei nv.ext registriert. Diese Datei sieht jetzt so aus:
bmp:scratch.com
bat:cmd.com
txt,new,ext,ini,nfo,diz:texted.com
gif,jpg,png,htm,svg:browser.com
tfc,pt2,pt3,mt3,m :player.com (pt3 Pro Tracker NedoOS)
bas:basic.com
zip,gz :pkunzip.com
trd,scl,fdi,tap:dmm.com ( TR-DOS — ZX Evo , , Magic; , , )
16c,scr,fnt,img,3 ,888,y ,+ ,- ,plc,mc ,mcx,grf,ch$,mg1,mg2,mg4,mg8,rm ,mlt:view.com
mod:modplay.com
tar:tar.com
sna,b ,z80:nmisvc.com
rar:unrar.com
Es gibt auch ein Dutzend Spiele, darunter einen Super Mario- Emulator (für dessen Funktion ein Cartridge-Dump erforderlich ist), einen von Eric and the Floaters gemalten, einen Teilport von Endless Summer und eine vernetzte Schlange.
Pläne
- Erweiterung der Funktionalität von Batch-Dateien (Parameter werden bereits übertragen)
- IDE und Selbsthosting
- Ebenen im Grafikeditor
- ...
Fazit
Derzeit implementiert NedoOS alle erforderlichen Funktionen. Wenn Sie also über die erforderliche Hardware verfügen, ist das System bequemer zu verwenden als nicht zu verwenden.
Aber es liegt noch viel Arbeit vor uns. Je mehr Entwickler sich dem Projekt anschließen, desto näher kommt das Ideal.

Die meisten NedoOS-Entwickler leben im IRC-Kanal #mhm unter irc.forestnet.org (auch über http://chat.forestnet.org/ verfügbar ). Es gibt einen abendlichen Twitch-Kanal (mit einem YouTube- Spiegel ). Von der NedoOS-Website können Sie die stabile Version und die neuesten Quellen herunterladen .