Infos über mein DOS
Infos über mein DOS
Hallo User, hallo Wobo
An die Mods: Falls das Thema hier nix verloren hat, bitte Bescheid geben und ggf. dicht machen / löschen. Aber ich denke, dass "Off Topic" ein guter Bereich dafür ist.
Seit einiger Zeit schreibe ich ja mein eigenes DOS für den PC. Zur Vorgeschichte: Vor einigen Jahren hab ich mal für den Schneider CPC (kennt den jemand hier?) eine Festplattenerweiterung geschrieben - da hat es mich schon in den Fingern gejuckt, da mal ein richtiges DOS zu machen. Irgendwann hab ich dann (mehr durch Zufall) angefangen, mit Bootsektoren und Bootcode zu experimentieren. Naja, und bis zum ersten Mini-Kernel waren es dann nur noch wenige Schritte
Ein Kumpel hat irgendwann mal vorgeschlagen, ich soll es nach unserem Dackel benennen - und so kam es dann zum Namen "BonnyDOS"...
Geschrieben ist das DOS, sowie alle zugehörigen Programme in Maschinensprache. Mindestanforderung an den Computer ist ein 80286 Prozessor, 3.5"-HD Floppy und eine 256K-VGA-Karte (MCGA dürfte auch gehen) und 640K konventioneller Speicher. Der Grund, warum ich mich auf genau diese Konfiguration festgenagelt habe, ist der, das diese Konfig halt am meisten verbreitet ist. Und ich hatte mal 2 IBM PS/2-286er - da war sowas wohl normal Allerdings muss beachtet werden, das es natürlich besser ist, wenn eine Festplatte vorhanden ist. Wer das DOS installieren möchte, muss nur dafür sorgen, das die Partition/en in dem Bereich liegen, der vom BIOS unterstützt wird (50x MB bei alten Rechnern, oder max. im Bereich bis zu 8 GB). BonnyDOS/286 hat einen integrierten Bootmanager - hat man also MS-DOS oder sonst was zusätzlich auf Platte, kann man bequem auswählen, welches Betriebssystem gebootet wird (dabei muss aber BonnyDOS die Bootpartition sein).
Dieses "Multi-OS-Feature" wurde auf verschiedenen Rechnern getestet - inkl. auf einem P2 mit 4 GB SCSI-Platte und Windows NT. Bisher verträgt sich alles ausgezeichnit.
An die Mods: Falls das Thema hier nix verloren hat, bitte Bescheid geben und ggf. dicht machen / löschen. Aber ich denke, dass "Off Topic" ein guter Bereich dafür ist.
Seit einiger Zeit schreibe ich ja mein eigenes DOS für den PC. Zur Vorgeschichte: Vor einigen Jahren hab ich mal für den Schneider CPC (kennt den jemand hier?) eine Festplattenerweiterung geschrieben - da hat es mich schon in den Fingern gejuckt, da mal ein richtiges DOS zu machen. Irgendwann hab ich dann (mehr durch Zufall) angefangen, mit Bootsektoren und Bootcode zu experimentieren. Naja, und bis zum ersten Mini-Kernel waren es dann nur noch wenige Schritte
Ein Kumpel hat irgendwann mal vorgeschlagen, ich soll es nach unserem Dackel benennen - und so kam es dann zum Namen "BonnyDOS"...
Geschrieben ist das DOS, sowie alle zugehörigen Programme in Maschinensprache. Mindestanforderung an den Computer ist ein 80286 Prozessor, 3.5"-HD Floppy und eine 256K-VGA-Karte (MCGA dürfte auch gehen) und 640K konventioneller Speicher. Der Grund, warum ich mich auf genau diese Konfiguration festgenagelt habe, ist der, das diese Konfig halt am meisten verbreitet ist. Und ich hatte mal 2 IBM PS/2-286er - da war sowas wohl normal Allerdings muss beachtet werden, das es natürlich besser ist, wenn eine Festplatte vorhanden ist. Wer das DOS installieren möchte, muss nur dafür sorgen, das die Partition/en in dem Bereich liegen, der vom BIOS unterstützt wird (50x MB bei alten Rechnern, oder max. im Bereich bis zu 8 GB). BonnyDOS/286 hat einen integrierten Bootmanager - hat man also MS-DOS oder sonst was zusätzlich auf Platte, kann man bequem auswählen, welches Betriebssystem gebootet wird (dabei muss aber BonnyDOS die Bootpartition sein).
Dieses "Multi-OS-Feature" wurde auf verschiedenen Rechnern getestet - inkl. auf einem P2 mit 4 GB SCSI-Platte und Windows NT. Bisher verträgt sich alles ausgezeichnit.
Re: Infos über mein DOS
Da BonnyDOS/286 eine komplette Eigenentwicklung ist, kommt (auf Festplatte) natürlich auch ein eigenes Dateisystem zum Einsatz: BFS16. Eigentlich für den CPC entwickelt, wurde es leicht modifiziert und läuft nun unter V2.0 am PC. Disketten verwenden natürlich FAT12 - das erleichtert den Datenaustausch enorm, bis andere Treiber mal fertig sind. Folgende Leistungsmerkmale (neudeutsch "Features") fallen mir so spontan ein:
- Administrator-Modus (sperrt Zugriff auf Dateien/Verzeichnisse, sperren von FORMAT oder Disklaufwerken, usw.)
- Natürlich dürfen Env-Variablen nicht fehlen
- Autovervollständigung von Dateinamen (TAB-Taste)
- Schnelles Öffnen von Dateien mit SmartOpen (man gibt z. B. BUCH.TXT ein, und schon öffnet sich die mit .TXT-Dateien verknüpfte Anwendung samt Dokument)
- Online Hilfe (ala HELP <kapitel>)
- Validate-Funktion (sollte mal eine Datei nicht ordnungsgemäß geschlossen worden sein, wird dies beim nächsten Start "angeprangert" und Schreibzugriffe so lange gesperrt, bis sich der Anwender bemüht, das beiliegende HDDIAG auszuführen)
Bei der Entwicklung habe ich versucht, alles, was mir an anderen Systemen gefällt, einzubauen. So kann man z. B. mit Hilfe des Befehls RESIDENT Programme in den Arbeitsspeicher laden - ruft man das Programm dann von der Eingabeaufforderung auf, wird die Kopie im Speicher verwendet. Gerade wenn man nur mit einem Disklaufwerk ausgerüstet ist, oder nichts installieren möchte, spart man u. U. viel Zeit, da nicht mehr alles nachgeladen werden muss.
Die meisten Dinge sind optional und können natürlich auf Wunsch deaktiviert werden. So auch die Farbausgabe an der Eingabeaufforderung. So hebt DIR z. B. bis zu 14 beliebige Dateitypen farblich hervor, um diese schnell unterscheiden zu können. Von Haus aus werden APL-Dateien (Anwendungen) grün, SCR-Dateien (Scripts) Lila, Directories dunkelgrau und Textdateien (TXT) türkis gekennzeichnet (lässt sich aber ändern).
- Administrator-Modus (sperrt Zugriff auf Dateien/Verzeichnisse, sperren von FORMAT oder Disklaufwerken, usw.)
- Natürlich dürfen Env-Variablen nicht fehlen
- Autovervollständigung von Dateinamen (TAB-Taste)
- Schnelles Öffnen von Dateien mit SmartOpen (man gibt z. B. BUCH.TXT ein, und schon öffnet sich die mit .TXT-Dateien verknüpfte Anwendung samt Dokument)
- Online Hilfe (ala HELP <kapitel>)
- Validate-Funktion (sollte mal eine Datei nicht ordnungsgemäß geschlossen worden sein, wird dies beim nächsten Start "angeprangert" und Schreibzugriffe so lange gesperrt, bis sich der Anwender bemüht, das beiliegende HDDIAG auszuführen)
Bei der Entwicklung habe ich versucht, alles, was mir an anderen Systemen gefällt, einzubauen. So kann man z. B. mit Hilfe des Befehls RESIDENT Programme in den Arbeitsspeicher laden - ruft man das Programm dann von der Eingabeaufforderung auf, wird die Kopie im Speicher verwendet. Gerade wenn man nur mit einem Disklaufwerk ausgerüstet ist, oder nichts installieren möchte, spart man u. U. viel Zeit, da nicht mehr alles nachgeladen werden muss.
Die meisten Dinge sind optional und können natürlich auf Wunsch deaktiviert werden. So auch die Farbausgabe an der Eingabeaufforderung. So hebt DIR z. B. bis zu 14 beliebige Dateitypen farblich hervor, um diese schnell unterscheiden zu können. Von Haus aus werden APL-Dateien (Anwendungen) grün, SCR-Dateien (Scripts) Lila, Directories dunkelgrau und Textdateien (TXT) türkis gekennzeichnet (lässt sich aber ändern).
Re: Infos über mein DOS
Erstmal ein paar Screenshots, um einen besseren Einblick zu erhalten. Die Bilder wurden zum Teil mit BMPSAVER (eigenes Tool, das den Textbildschirm als BMP-Datei speichert), Teils unter QEMU (PC-Emulator) gemacht.
- Dateianhänge
-
- Die Partitionierungs-Software
- BILD3.jpg (39.96 KiB) 13652 mal betrachtet
-
- INFO zeigt Speicher/Programme/File-Kommentare.
- BILD2.jpg (56.09 KiB) 13652 mal betrachtet
-
- Direkt nach dem Bootvorgang
- BILD1.jpg (35.52 KiB) 13652 mal betrachtet
Re: Infos über mein DOS
Ein paar Programme (meist kleinere Tools) sind auch schon fertig, zum Beispiel ein Sokoban-Clone mit 100 Levels, oder ein Programmpaket, das es erlaubt, Boot-Pictures (320*200/256 Farben) zu verwenden. Weitere Software kommt natürlich - aber als Ein-Mann-Baustelle ist es etwas schwierig, schnell für Nachschub zu sorgen. Nach langer Zeit ist dann auch ein Handbuch fertig geworden - zwar noch nicht 100% (Rechtschreibprüfung fehlt z. B.), aber ich hoffe, das sich Neulinge damit zurecht finden werden. Vor kurzem hab ich dann noch ein "Schmankerl" vom CPC übernommen, auf Wunsch werden von Dateien vor dem Überschreiben (unabhängig von der laufenden Anwendung) BAK-Dateien angelegt, so das man den letzten Stand noch griffbereit hat.... Ich hoffe die Neugier ist befriedigt - Bei Fragen: Einfach fragen Falls jemand das Handbuch mal haben möchte, einfach eine PN an mich.
Anbei noch ein Screenshot der Eingabeaufforderung von BDOS, und ein paar Bilder von GOS/286 (grafische Benutzeroberfläche bzw. Betriebssystem-Aufsatz).
Anbei noch ein Screenshot der Eingabeaufforderung von BDOS, und ein paar Bilder von GOS/286 (grafische Benutzeroberfläche bzw. Betriebssystem-Aufsatz).
- Dateianhänge
-
- Der "Taskmanager"
- TASKMAN.jpg (64.29 KiB) 13650 mal betrachtet
-
- Eigenschaften einer Verknüpfung....
- DESKTOP2.JPG (51.6 KiB) 13650 mal betrachtet
-
- GOS/286 - Schreibtisch (About-Box)
- DESKTOP.JPG (126.31 KiB) 13650 mal betrachtet
-
- Das (bunte) Verzeichnis.
- BILD4.jpg (22.65 KiB) 13650 mal betrachtet
Re: Infos über mein DOS
Fast: Wo kann man es herunterladen? ;)
Re: Infos über mein DOS
Einen Download gibts nicht, weil die Seite uralt ist Aber ich schick dir mal das Archiv wenn du magst
Re: Infos über mein DOS
Wow! Der erste Eindruck übertrifft all' meine Erwartungen. So etwas Aufwendiges und anscheinend weit Fortgeschrittenes habe ich nicht erwartet. Ich war eher auf was "rohgerüstigeres" vorbereitet. Ich gebe hiermit meine Bestellung auf: Einmal die Testversion bitte nebst Handbuch! PN kommt.
Re: Infos über mein DOS
@Wobo: Mail ist raus. Und jetzt bist Du dran - ich warte auf dein Spiel
Re: Infos über mein DOS
Neuigkeiten: Mit Hilfe eines selbstgebastelten Tools kann man compilierte (EXE-File) TP-Programme schonmal direkt unter BDOS laufen lassen
- Dateianhänge
-
- TP.JPG (42.06 KiB) 13597 mal betrachtet
Re: Infos über mein DOS
Giana32K.EXE funzt als konvertiertes Programm ebenfalls, sogar mit SB-Unterstützung
Leider ist der "MS-DOS-API-Emulator", der in den Lader eingefügt wird, noch etwas mager, bisher werden nur unterstützt:
DisplayString
DirectConsoleIO
ReadKeyboard
AllocMem (abgespeckt)
GetIntVec
SetIntVec
TerminateProgram und
TerminateProcess
TP macht bisher keine Zicken, nur Randomize liefert immer die selben Zufallszahlen - muss noch herausfinden, woran das liegt...
Über BDOS286.TPU kann man immerhin schon Dateien auslesen, residente Programme suchen und den Cursor an/abschalten. Kommandozeilen-Parameter laufen ja weiterhin über ParamStr und ParamCount
Gruß,
Brueggi
Leider ist der "MS-DOS-API-Emulator", der in den Lader eingefügt wird, noch etwas mager, bisher werden nur unterstützt:
DisplayString
DirectConsoleIO
ReadKeyboard
AllocMem (abgespeckt)
GetIntVec
SetIntVec
TerminateProgram und
TerminateProcess
TP macht bisher keine Zicken, nur Randomize liefert immer die selben Zufallszahlen - muss noch herausfinden, woran das liegt...
Über BDOS286.TPU kann man immerhin schon Dateien auslesen, residente Programme suchen und den Cursor an/abschalten. Kommandozeilen-Parameter laufen ja weiterhin über ParamStr und ParamCount
Gruß,
Brueggi
Re: Infos über mein DOS
Keine Ahnung wieso, aber GRAPH.TPU geht jetzt auch Offenbar hab ich wohl nen Pointer falsch gesetzt im PAS-File - nun klappts
Voraussetzung: BGI-File in die EXE linken mit $L.
Voraussetzung: BGI-File in die EXE linken mit $L.
Re: Infos über mein DOS
Was randomize angeht: Der Befehl initialisiert bekanntlich den randseed auf einen "Zufallswert", von dem ausgehend die RANDOM() Funktion dann eine Folge von Zufallswerten generiert. Soweit ich weiß, holt randomize dazu Daten für Datum und Uhrzeit und glaub noch irgendwo aus einem Chip. Ich könnte ja mal ein kleines TP Programm schreiben, das randomize ausführt und dann im compilierten Code nachschauen, wo genau er die Daten dafür hernimmt. Sollten es Speicherstellen oder Ports oder wasweißich sein, die Dein OS nicht supportet (nicht mit Werten befüllt, etc), so wäre geklärt, wieso randomize immer dieselben Startwerte liefert.
-
- DOS-Übermensch
- Beiträge: 1150
- Registriert: Mi 31. Jan 2007, 19:04
- Wohnort: Halle
- Kontaktdaten:
Re: Infos über mein DOS
Code: Alles auswählen
TITLE RAND
INCLUDE SE.ASM
DATA SEGMENT WORD PUBLIC
; Externals
EXTRN RandSeed:DWORD
DATA ENDS
CODE SEGMENT BYTE PUBLIC
ASSUME CS:CODE,DS:DATA
; Publics
PUBLIC RandInt,RandReal,RandFloat,InitRand
; Random standard function (Integer)
RandInt:
CALL NextRand
MOV BX,SP
MOV CX,DX
MUL WORD PTR SS:[BX+4]
MOV AX,CX
MOV CX,DX
MUL WORD PTR SS:[BX+4]
ADD AX,CX
ADC DX,0
MOV AX,DX
RETF 2
; Random standard function (Real)
RandReal:
CALL NextRand
XCHG AX,BX
MOV AX,80H
MOV CX,32
@@1: TEST DH,80H
JNE @@2
SHL BX,1
RCL DX,1
DEC AL
LOOP @@1
XOR AL,AL
@@2: AND DH,7FH
RETF
; Random standard function (8087)
RandFloat:
CALL NextRand ;Compute next random number
FILD CS:ConstScale ;Load -32
FILD RandSeed ;Load 32-bit random integer
FADD CS:ConstDelta ;Scale to 32-bit positive integer
FSCALE ;Scale so 0<=ST<1
FSTP ST(1) ;Remove scaling factor
FWAIT ;Wait for result
RETF
; Scaling constants
ConstDelta DD 2147483648.0
ConstScale DW -32
; Compute next random number
; New := 8088405H * Old + 1
; Out DX:AX = Next random number
NextRand:
MOV AX,RandSeed.w0
MOV BX,RandSeed.w2
MOV CX,AX
MUL CS:Factor ;New = Old.w0 * 8405H
SHL CX,1 ;New.w2 += Old.w0 * 808H
SHL CX,1
SHL CX,1
ADD CH,CL
ADD DX,CX
ADD DX,BX ;New.w2 += Old.w2 * 8405H
SHL BX,1
SHL BX,1
ADD DX,BX
ADD DH,BL
MOV CL,5
SHL BX,CL
ADD DH,BL
ADD AX,1 ;New += 1
ADC DX,0
MOV RandSeed.w0,AX
MOV RandSeed.w2,DX
RET
; Multiplication factor
Factor DW 8405H
; Randomize standard procedure
InitRand:
MOV AH,dosGetTime
INT DOS
MOV RandSeed.w0,CX
MOV RandSeed.w2,DX
RETF
CODE ENDS
END
Diverse Retro-Computer vorhanden.
Re: Infos über mein DOS
Vielen Dank für Eure Hilfe, Problem ist bereits gelöst (offenbar) - ich hab einfach noch die DOS-Funktion GetTime in den "Emulator" aufgenommen, und schon klappts auch mit Randomize Hatte einen Blick in die TP-Hilfe geworden, da stand was von der System-Clock - warum man das dann aber per MS-DOS, und nicht per BIOS macht, weiss ich nicht, aber egal - es klappt
Re: Infos über mein DOS
So, nächste Woche gibts hoffentlich eine neue Version und (daumen drücken!) ne Homepage, wo man das komplette Material auch herunter laden kann