Infos über mein DOS

Diskussion zum Thema Programmierung unter DOS (Intel x86)
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

Die RAM-Disk und der Disk-Cache laufen nicht, weil sie auf RAM > 1 MB angewiesen sind. Natürlich kann man beides auch in den konventionellen RAM legen - aber dann bleibt nicht mehr wirklich viel übrig - möglich ist es natürlich :-)

Das Argument "Wer hat einen 80286?" stimmt natürlich - nur: Die Grundlagen (HMA, 24-Bit-Adressraum) sind auch an allen Nachfolgern präsent. Aber grundsätzlich kann man selbstverständlich über den Sinn von so einem Projekt im Allgemeinen streiten.

Das mit dem BIOS und dem extra-RAM finde ich hoch interessant :-) Funktioniert das nur am XT?

Ich schreibe dich in Kürze nochmal an wegen einer 88er-Version. Da können wir sicher was auf die Beine stellen. Solange es bei VGA bleibt dürfte sich der Aufwand bei der Umstellung in Grenzen halten. ;-)
Ruud
Solitärspieler
Beiträge: 21
Registriert: Mi 10. Aug 2011, 19:15
Wohnort: Heerlen - NL
Kontaktdaten:

Re: Infos über mein DOS

Beitrag von Ruud »

Brueggi hat geschrieben:Das mit dem BIOS und dem extra-RAM finde ich hoch interessant :-) Funktioniert das nur am XT?
Ich kann deine Frage leider auf sämtliche Weisen interpretieren. Ich versuche einfach die verschiedene Möglichkeiten.
- Natürlich kann man auch für einen AT ein eigenes BIOS schreiben aber das man erstens mit 32 KB statt 8 KB zu tun hat und zweitens habe ich schon in 1986 entdeckt das man, in gegensatz zu XT BIOSen, AT BIOSen nicht einfach ausweckselen kann. Zusammen nach meine Meinung zuviel Aufwand für das mögliche Gewinn.
- Extra-RAM ist auch auf eine AT möglich. Bis 1993 habe immer eine selbst gebaute ISA-Karte mit SRAM dafür benützt. Warum SRAM? Zwei Gründe:
- Ohne Schaltplan ist es fast unmöglich fest zu stellen was mann an die Hauptplatine änderen muss.
- Das extra DRAM muss durch das BIOS erst initialisiert werden sonst wirt beim ersten Zugriff einen NMI ausgelösst (Parity error). Dafür muss das BIOS geändert werden und da hast da oben gelesen was die Probleme sind.

Zusammen gefasst: es ist auch auf einen 80286 möglich aber nur mit SRAM.

Bemerkung dazu: damals hatte ich nur 8 KB SRAMs. Heutzutage würde ich zwei kleine schnelle 64 KB Cache-RAMs benützen.
--
Groetjes, Ruud Baltissen
http://www.Baltissen.org
Ruud
Solitärspieler
Beiträge: 21
Registriert: Mi 10. Aug 2011, 19:15
Wohnort: Heerlen - NL
Kontaktdaten:

Re: Infos über mein DOS

Beitrag von Ruud »

Hallo Brüggi,

Ich habe gerade BonnyDOS auf meinem Philips PCD200 installiert. Ich hatte nur ein kleines Problem mit formatieren. Hab CD 0: und FORMAT DEVC: eingegeben, kein Problem. Dan CD 1: und FORMAT DEVD: und, anscheinend, kein Problem. Beim Reboot fängte BonnyDOS schon zu klagen das da etwas mit die Festplatte nicht stimmte. Nach ein bisschen Nachdenken habe ich CD 1: und FORMAT DEVC: eingegeben. Jetzt erschienten auch die drei Regeln die ich beim ersten FORMAT gesehen habe.

Bemerkungen:
- Warum gab es keinen Fehlermeldung beim DEVD: ?
- MS-DOS Benützer sind gewohn das, wen die erste Partition C ist, die zweite D usw. Vielleicht soll benachdrückt werden hedesmal DEVC: zu benützen.

Frage: wo für ist dan DEVD: ? (ich habe das RTFM noch nicht volendet)
--
Groetjes, Ruud Baltissen
http://www.Baltissen.org
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

Vielen Dank für die Rückmeldung.

Stimmt, bei DEVD: usw. kommt keine Fehlermeldung - zumindest nicht bei FORMAT. Ich musste bei den Format-Routinen etwas tricksen, damit ab V1.30a externe Laufwerkstreiber angesprochen werden können. Aus diesem Grund gibt es bei FORMAT keine Fehlermeldungen (betrifft aber nur FORMAT). Ich setze es mal auf die To-Do-Liste und hoffe es ist mit dem nächsten Release beseitigt.

Also die Grundidee von BonnyDOS stammt ja noch von meinen Arbeiten an der CPC-Version. Dabei handelte es sich um eine Erweiterung für das CPC-Betriebssystem, dass ja nur A: und B: kannte. Ich habe mir damals gedacht, ich belasse es dann bei C: für die Platte, und teile die Partitionen dann auf in z. B. 0: für Nummer 1, 1: für Nummer 2. Ich habe bei BonnyDOS/286 dieses Schema beibehalten. Diese Verwaltung war seiner Zeit am einfachsten zu Programmieren.

DEVA: - Diskette
DEVB: - RAM-Disk (erfordert EXTMEM, siehe HELP RAMDISK)
DEVC: - Festplatte
0: 1. Partition
1: 2. Partition
2: 3. Partition
3: 4. Partition

Seit einiger Zeit gibts im Kernel die Funktion "SplitName" - diese Teilt Strings in ein LW-Byte, einem Pfad und einem Dateinamen auf. Gültige Pfade sind z. B.:

DEVC3:SPIELE/TETRIS -> Laufwerk DEVC:, Partition 3:, Verzeichnis SPIELE/TETRIS

DEVD:, DEVE: und andere gibt es (noch) nicht und werden deshalb an Laufwerks-Treiber vergeben, wenn diese ins System eingebunden werden. Es gibt auch unter BonnyDOS kein "LASTDRIVE=" - da der freie Speicher nicht drunter leidet, ob nun 10 Laufwerke vergeben werden könnten, oder nur 5.

Das angesprochene "Meckern" beim Hochfahren ohne formatierte Platte kommt von dem Zählerstand von BonnyDOS. Auf jeder Partition wird vermerkt, wieviele Dateien zum Schreiben auf der Partition offen sind (nur schreiben - beim Lesen ist es egal). Wird der Rechner abgeschaltet oder stürzt ab, dann ist der Zählerstand <>0. Also wird beim nächsten Start eine entsprechende Meldung ausgegeben und die betroffenen Partitionen mit dem Satz "Error validating volume <nr>:" (so ähnlich meckert auch ein A500... deswegen habe ich das auch so übernommen :-) ) angezeigt.

Zusätzlich wird DEVC: für Schreibzugriffe (DEL usw.) gesperrt (es könnte ja probleme mit dem Filesystem geben). Erst nach Ausführung von FORMAT oder HDDIAG mit der Option FILESCAN (dabei sollte man das Programm komplett durchlaufen lassen) wird, nach einem neustart, DEVC: wieder zum SChreiben freigegeben. Ich habe das bei der 286er-Version eingeführt, weil es am CPC doch mal vorkam, dass ein Programm abgestürzt ist und dann ein Datenblock "futsch" war (belegt, aber nicht zugeordnet). Soviel zu den Hintergründen ;-)

Viele Grüße,

Brüggi
Ruud
Solitärspieler
Beiträge: 21
Registriert: Mi 10. Aug 2011, 19:15
Wohnort: Heerlen - NL
Kontaktdaten:

Re: Infos über mein DOS

Beitrag von Ruud »

Hallo Brüggi,

Herzlichen Dank für die Information!

Frage: ist die Qullkode auch zu kriegen damit ich es nach 8088 umwandeln kann?
--
Groetjes, Ruud Baltissen
http://www.Baltissen.org
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

Sorry, wenn ich erst jetzt darauf reagiere - ich bin aktuell nur leider mehr auf Arbeit als zu Hause.

Also, eine Anpassung an einen 808x ist grundsätzlich interessant. Allerdings darfst Du die Arbeit nicht unterschätzen, die damit verbunden ist. Das Laden von Kernel in die zusätzlichen 64K RAM ist eine Sache von einer Minute. Nur: Du musst erstmal die paar tausend Zeilen Kernel-Source durchsuchen, und 80286/80186-Dinge durch 808x-Code ersetzen. Dabei wirst Du sicherlich hier und da weitere Änderungen vornehmen müssen (z. B. wenn man dann mal wieder feststellt, dass die CPU doch zu wenig Register hat) :-)

Dann gehören zu BDOS ja noch haufenweise Programme (z. B. zur Datenträgerverwaltung). Auch die müssen entsprechend geändert werden. Am Schluß müssen alle Änderungen an einer entsprechenden Maschine ausgetestet werden.

Das nächste Problem ist: Alle zukünftigen Updates müssten entweder zweigleisig erledigt werden (einmal am 80286, einmal am 808x) - oder man muss das komplette Kernel neu schreiben, so dass es am 8086 und 80286 gleichzeitig läuft. Zu den Updates gehören natürlich auch wieder tests, tests und nochmal tests. Änderungen liesen sich dann auch nicht sofort durchführen (z. B. habe ich garkeinen XT).

Ebenfalls ist schwierig, dass ohne Weiteres bestimmte Sachen am XT einfach nicht mehr laufen: EXTMEM, Ram-Disk, FastDrive usw. - auch ein GOS/88 dürfte wohl so ziemlich nutzlos am 8088 sein.

Dann könnte man natürlich noch einen Schritt weiter gehen und das Minimum VGA auch "abschaffen" - doch dann fürchte ich, verbringt ein Programmierer die meiste Zeit damit, seine Grafiken zu konvertieren und das Programm mit allen möglichen Konfigurationen zu testen. Vielleicht hat ja hier im Forum jemand eine Idee/Meinung zu diesem Thema, auch wenns denjenigen nicht oder nicht direkt betrifft. Ich halte das ganze wie gesagt für interessant, aber der Aufwand ist enorm. Und als eingefleischter 80286-Fan (PS/2 lässt grüßen) möchte ich nur ungern auf den Komfort und den - im Vergleich zum 8088/8086 - besser designten Chip verzichten ;-)
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

--gelöscht von mir, da doppelposting, Forum hat wieder gehangen--
Ruud
Solitärspieler
Beiträge: 21
Registriert: Mi 10. Aug 2011, 19:15
Wohnort: Heerlen - NL
Kontaktdaten:

Re: Infos über mein DOS

Beitrag von Ruud »

Brueggi hat geschrieben:Und als eingefleischter 80286-Fan ....
Und ich bin tief im Herzen immer ein XT Fan geblieben. Ich habe aus "die gute alte Zeiten" noch immer so rund zehn XT Platinen herumliegen (so nicht mehr). Wenn du interesse an einem hast, sag mir bescheit.
Allerdings darfst Du die Arbeit nicht unterschätzen, die damit verbunden ist.
Wenn ich es nicht probiere, gescheht überhaupt nichts :)
.... und 80286/80186-Dinge durch 808x-Code ersetzen.
Hab so ein par Ideen um das zu verwesentlichen.
Ebenfalls ist schwierig, dass ohne Weiteres bestimmte Sachen am XT einfach nicht mehr laufen: EXTMEM, Ram-Disk, FastDrive usw.
Sind die unbedingt notwendig? Nach meine Meinung nicht. Was ist unbedingt notwendig und würde nicht mehr laufen in einem XT? Und was ist notwendig um das am Laufen zu bekommen, mehr Speicher?
auch ein GOS/88 dürfte wohl so ziemlich nutzlos am 8088 sein.
Warum? Ich würde mich gerade da mit freuen!
Dann könnte man natürlich noch einen Schritt weiter gehen und das Minimum VGA auch "abschaffen"
Nein, das will ich unbedingt behalten.
--
Groetjes, Ruud Baltissen
http://www.Baltissen.org
Ruud
Solitärspieler
Beiträge: 21
Registriert: Mi 10. Aug 2011, 19:15
Wohnort: Heerlen - NL
Kontaktdaten:

Re: Infos über mein DOS

Beitrag von Ruud »

Brueggi hat geschrieben:Das mit dem BIOS und dem extra-RAM finde ich hoch interessant :-) Funktioniert das nur am XT?
Alte sachen gehen manchmal kaput :( Leider ist hat es mein Mobo, Multi-I/O Karte und mein 3,5" Disk erwischt :(
Ein anderes Mobo war schnell genug gefunden aber ohne 128 KB Erweiterung. Weil ich keine Lust hatte aus zu finden wie hier das PAL verdrahtet war, habe mich eine Platine gebastelt: http://www.baltissen.org/images/umb4xt.png
Grosses Vorteil: ihr könnt es jetzt auch für äuch selbst eine RAM Erweiterung bauen. Eine kleine Erklärung: mit die DIP-Schaltern kann man 64 KB für das D- und/oder E-Bereich einscahlten.

Ich habe heute zum ersten mal diesen UMB-Driver benützt und er funktioniert auch auf einem XT aber mit eine kleine Entauschung: DOS selbst wirt nich im UMB geladen (würde das überhaupt möglich sein?). Nur meine Treiber, DOSKEY usw. würden im UMB geladen und das sind immerhin 20 KB.
Wenn ihr Fragen hat, fragt.
Zuletzt geändert von Ruud am So 15. Jul 2012, 21:23, insgesamt 1-mal geändert.
--
Groetjes, Ruud Baltissen
http://www.Baltissen.org
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

Gute Frage. DOS=UMB nutze ich auch, aber ich hatte DOS immer in der HMA liegen.
Sehr interessantes Projekt mit der Speicherweiterung. :-) Wieviel konventionellen Speicher hast Du denn frei?
Ruud
Solitärspieler
Beiträge: 21
Registriert: Mi 10. Aug 2011, 19:15
Wohnort: Heerlen - NL
Kontaktdaten:

Re: Infos über mein DOS

Beitrag von Ruud »

Brueggi hat geschrieben:Wieviel konventionellen Speicher hast Du denn frei?
IR
IRC 589 KB: nur DOS 6.22 NL und der UMB Treiber.
--
Groetjes, Ruud Baltissen
http://www.Baltissen.org
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

So - es gibt wieder etwas neues. Seit gestern gibts mit A86.APL den ersten - direkt unter BDOS/286 laufenden - 8086-Assembler :-) Man kann also jetzt direkt unter BDOS kleine Progrämmchen/Treiber basteln, ohne MS-DOS/Windows starten zu müssen (Turbo Pascal lässt grüßen).

Ich sitz gerade an einer Anleitung und über ein paar Beispiel-Sourcecodes. Natürlich wird es das alles wieder umsonst zum Download geben (macht übrigens auf der RamDisk DEVB: viel laune. Eventuell könnte man noch eine residente Version vom Assembler basteln, die sich direkt aus dem Editor heraus ausrufen lässt...).

Der Assembler beruht auf den Freeware A2-Assembler (geschrieben in Turbo Pascal). Die Anpassung war recht simpel - ich musste nur alle BlockWrite-Befehle durch die zur BDOS286.TPU gehörenden Befehle ersetzen. Außerdem muss ich noch hier und da einige Bugs beseitigen (z. B. erkennt der Assembler kein RETF - bisher muss man sich mit DB $CB begnügen). Aber das wird schon ;-)

Jetzt nochwas zum Thema BonnyDOS/88 bzw. BonnyDOS/86: Ich habe beschlossen, die XT-Version nicht zum jetztigen Zeitpunkt zu erstellen, auch die Freigabe der Sourcen findet noch nicht statt. Ich werde lieber die API noch etwas erweitern, und mich dann an eine /386-Version wagen (wann steht noch offen). Erst dann werde ich die /286-Version wahrscheinlich freigeben, so dass es dann ggf. eine XT-Version davon gibt. Der Grund: Ich persönlich halte einen XT einfach für zu schwach (allgemein) und für noch weniger "ausdefiniert" als ein AT. Ich habe mal an einen 8088-8 gearbeitet und war entsetzt, wie langsam da alles geht (inkl. Festplatte). Ich halte den 286er nachwievor für ein sehr gutes - und ausreichendes - Minimum. Und es gibt noch genügend Baustellen (Software, API-Erweiterung und GOS-Software). Es ist sowieso schon schwer, alles unter ein Dach zu bringen. Da hat eine 8086-Version (und damit das zweigleisige fahren) grad noch gefehlt :-)
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

Ich habe mal die neueste Version von A86 hochgeladen - und noch ein paar Beispiel-Sourcecodes (A86sampl.zip). Alles unter http://lulu423gina.lu.funpic.de/download/ zu finden. Die Beispiel-Sources demonstrieren z. B. die Anwendung von Steuercodes, das Anlegen von Dateien und einiges mehr.

Ein Tip für Leute, die Tastaturfaul sind und keine Festplatten-Installation nutzen:

Formatiert eine leere Diskette (1.44 MB). Kopiert folgende Dateien aus dem BDOS286.ZIP-Archiv drauf:
KRNL286.SYS
INSTALL.APL
SHELL.APL
DESCRIPT.SYS
SMRTOPEN.APL
COPY.APL
EXTMEM.APL
ED.APL
SHELL.EXT

Zusätzlich noch

A86.APL und Wobos Texteditor
LEDIT.APL

In der Datei DESCRIPT.SYS fügt Ihr ein:

A-- A86

Die Disk könnt ihr nun mit BOOTGEN.EXE bootbar machen und davon laden.

Es wird empfohlen, zum Programmieren die RAM-Disk zu verwenden. Sobald die Eingabeaufforderung DEVA: erscheint, gebt Ihr ein:

EXTMEM
FORMAT DEVB:
COPY *.* DEVB:
DEVB:
SMRTOPEN

Jetzt könnt Ihr direkt von der RAM-Disk aus arbeiten.

Natürlich könnt Ihr auf Eurer Boot-Disk die Datei AUTOBOOT.SCR anlegen und dort die oben genannten Anweisungen reinschreiben, dann braucht ihr nichts mehr manuell eingeben.

Durch Smartopen spart Ihr euch die Eingabe von A86 <source.a> - Einfach direkt an der Eingabeaufforderung das erste Zeichen des Dateinamens vom Sourcecode eingeben, und solange TAB drücken, bis der Name stimmt. Dann ENTER und Smart Open ersetzt die Zeile durch A86 <datei.a> :-) Viel Spaß beim Experimentieren.

P.S.: Nicht vergessen, Eure Arbeit vor dem Abschalten auf Disk zu kopieren.
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

Ich habe auch mal den Autor des ursprünglichen A2-Assemblers, Sergei Kostigoff kontaktiert - weil anfangs die Syntax nicht ganz klar war. Er war etwas überrascht, dass der Assembler in Gebrauch ist, nachdem er ihn 1993 an drei Tagen während seiner Nachtschicht geschrieben hat :-) Er meint, er hilft gerne (sofern er es noch weiss), falls es Probleme gibt :-) Zwar liest er sicher nicht mit, aber ein "Daumen hoch" an Sergei Kostigoff! :-)
Brueggi

Re: Infos über mein DOS

Beitrag von Brueggi »

...und für alle, die gedacht haben, das große Sommerloch hält an: Ich arbeite gerade an Ausgabe 7 der B-View :-) Ich hoffe mal, ich gewinne noch einen Bekannten für einen Artikel über die Reparatur/Restauration von Boards (entweder Boards im Allgemeinen oder C64-Boards ;-) ). Ihr könnt das PDF aus dem oben geposteten Link "ziehen", sobald die Ausgabe fertig ist. :-)
Dateianhänge
Bview7.jpg
Bview7.jpg (88.29 KiB) 5381 mal betrachtet
Antworten