Lowlevel

OffZone => Offtopic => Thema gestartet von: bluecode am 17. July 2006, 11:35

Titel: Suche möglichst einfaches realmode OS
Beitrag von: bluecode am 17. July 2006, 11:35
hi,

ich such grad für MyEmu ein einfaches, open-source realmode OS, welches aber folgendes kann:
* Disketten
* irgendein Dateisystem
* PS/2 Tastatur
* evtl. ein paar kleine Programme dabei
Desweiteren sollte es auf keinen Fall auf mehr Hardware als - PIT, PIC, DMA, Floppy, CMOS, PS/2 Tastatur und natürlich den Bildschirm (aber im Textmodus) - zugreifen und wenn möglich all das auch noch über das BIOS machen

Ich weiß, viele Anforderungen, aber ich hoffe ihr könnt mir trotzdem weiterhelfen. Danke :)
Titel: Re: Suche möglichst einfaches realmode OS
Beitrag von: bitmaster am 17. July 2006, 12:51
Zitat von: bluecode
hi,

ich such grad für MyEmu ein einfaches, open-source realmode OS, welches aber folgendes kann:
* Disketten
* irgendein Dateisystem
* PS/2 Tastatur
* evtl. ein paar kleine Programme dabei
Desweiteren sollte es auf keinen Fall auf mehr Hardware als - PIT, PIC, DMA, Floppy, CMOS, PS/2 Tastatur und natürlich den Bildschirm (aber im Textmodus) - zugreifen und wenn möglich all das auch noch über das BIOS machen

Ich weiß, viele Anforderungen, aber ich hoffe ihr könnt mir trotzdem weiterhelfen. Danke :)
Da denke ich gerade so an meinem RM-OS was so gut wie abgeschlossen ist. Ich könnte dir aber eine Vorversion geben, damit du nicht warten musst bis es fertig ist. Es hat ein eigenes Dateisystem, greift nur auf Disketten zu (nicht auf Festplatte), kann mit PS/2, Serielle Mäuse umgehen, hat einen deutschen Tastaturtreiber (der bei der Vorversion aber noch nicht dabei wäre) und eine kleine Programmiersprache ähnlich wie unter das die *.bat bei mir die *.cmd (die aber unter der Vorversion noch nicht dabei wären). Oder du schaust dir meine ganz alte Version an (schlechtes Dateisystem etc.) unter http://www.osm-page.de. Dort die OS/M Beta.

bitmaster
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Biehler Productions am 17. July 2006, 19:41
@topic
mal ne Frage:
Ich hab mir den mal runtergeladen und versucht, mein OS auszuführen.
(Ist schon etwas länger her).
Da blieb der Emu hängen, beim Versuch, die IVT zu verändern.
Geht das eigentlich nun?
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bluecode am 17. July 2006, 20:11
@bitmaster: Find ich echt nice von dir :D Es hat glaub ich noch ein bisschen Zeit... Ich denke DarkThing & ich müssen wohl noch einiges machen bis es richtig funktioniert. Wann kommt den ungefähr der nächste Release deines OS? Gibs den Sourcecode eigentlich dazu (Wär mir persöhnlich schon wichtig, den Source mit Kommentaren und Labeln zu haben und nicht nur ein Disassembly. So debugt sich der Emulator einfacher)?

@biehler: Was genau meinst du mit hängenbleiben? Und falls möglich bitte das Log posten. In der V0.1 hatten wir nähmlich (im nachhinein gesehen) ziemlich viele Fehler beim Ausführen der Opcodes. Ansonsten sollten eigentlich mittlerweile sogut wie alle Befehle des 8086 funktionieren. Das und die oben genannten devices wirds dann in der nächsten Version geben :D
Ich hoffe du testest dann bei der nächsten Version dein OS auch wieder :wink:
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bitmaster am 17. July 2006, 20:25
Zitat
Wann kommt den ungefähr der nächste Release deines OS?
Also die OS/M 1.0 Build 4 sollte in den nächsten Wochen fertig werden. Es folgen nur noch ein paar Versionen bis zur Version 1.0. Das wird dann die erste Vollversion und die letzte Version. Das Projekt OS/M ist dann abgeschlossen.

bitmaster
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bluecode am 17. July 2006, 21:41
[edit: dieses Post hat sich erledigt. Siehe das Post 2 weiter. Sry, für Missverständnise.]
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Legend am 18. July 2006, 10:39
Zitat von: bluecode
[edit: rofl, vergiss es...]


 :?
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bluecode am 18. July 2006, 14:00
:shock: omg... das könnte man ja ganz schön falsch verstehen. Damit meinte ich nicht, dass ich dein OS net will, sondern dass das was in dem Post stand sich erledigt hat (Mein BIOS hatte in deinem Bootsektor die Signatur nicht gefunden, war aber mein Fehler). Ich ändere mal mein Post.... sry, für das Missverständnis.

Zurück zu deinem OS: Ich würde es gern hernehmen, wenn der nächste Release ist, so lang ist das ja nicht mehr und beim Emulator gibts noch einiges zu tun.
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bitmaster am 18. July 2006, 14:26
Zitat
Zurück zu deinem OS: Ich würde es gern hernehmen, wenn der nächste Release ist, so lang ist das ja nicht mehr und beim Emulator gibts noch einiges zu tun.
OK, eine Woche dann ist die Build 4 da.

bitmaster
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Biehler Productions am 18. July 2006, 15:08
Ups, hatte mich vertan, es trat schon vorher ein Fehler auf.

log:
Zitat

0x0:0x7c00 JMP FAR
0x7c0:0x5 MOV R/M16, SREG
0x7c0:0x7 MOV SREG, R/M16
0x7c0:0x9 MOV SREG, R/M16
0x7c0:0xb MOV AX, 0x0
0x7c0:0xe MOV AL, 0x3
0x7c0:0x10 INT 10
0x0:0x0 ADD R/M8, R8
0x0:0x2 ADD R/M8, R8
0x0:0x4 ADD R/M8, R8
0x0:0x6 ADD R/M8, R8
0x0:0x8 ADD R/M8, R8
0x0:0xa ADD R/M8, R8
0x0:0xc ADD R/M8, R8
0x0:0xe ADD R/M8, R8
0x0:0x10 ADD R/M8, R8
0x0:0x12 ADD R/M8, R8
[...]


Entsprechende Codestelle ist:


use16

JMP 07C0H:MAIN

MAIN:
MOV AX,CS
MOV DS,AX
MOV ES,AX



MOV AX,0
MOV AL,3
INT 10H

MOV AX,0
MOV ES,AX

CLI
MOV WORD [ES:6H*4],INT6H
MOV WORD [ES:6H*4+2],CS
MOV AX,9000H
MOV SS,AX
MOV SP,200H
STI


Der Fehler trat also beim Aufruf des INT 10h auf.

Ich werd sicherlich deinen Emulator weiter testen ;)
Schon allein deshalb, weil ich selber auch irgendwann mal einen schreiben will  :D
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bluecode am 18. July 2006, 15:24
Zitat von: Biehler Productions
Der Fehler trat also beim Aufruf des INT 10h auf.


Jo, das war einer der Hacks :-D Wir hatten kein BIOS, welches irgendwelche Interrupts ausführt. Der Bootsektor wurde direkt beim starten des Emulators geladen und direkt ausgeführt. Da dann in der IVT nur 0x00 stand, springt der Emulator bei jedem Interrupt zu 0:0 und macht da weiter... Und 0x00 ist eben unglücklicherweise sogar noch ein Opcode deswegen macht der dann ganz glücklich weiter :D

Zitat
Ich werd sicherlich deinen Emulator weiter testen ;)


thx, schonmal im voraus.

Zitat
Schon allein deshalb, weil ich selber auch irgendwann mal einen schreiben will  :D

Wenn du Lust hast kannst du auch bei uns mitmachen, wir können Leute gebrauchen (sind ja nur zu zweit). Ansonsten, welche Platform willst du denn emulieren?
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bluecode am 18. July 2006, 20:34
@bitmaster: Ich experimentier grad mit der alten Version von OS/M & dem BIOS das ich grad für MyEmu schreibe. Dabei is mir aufgefallen, dass du bei int0x10, funktion 0x0E als Farbe (also in bl) auf 0 setzt. Das sollte doch imho Schwarz auf Schwarz sein. In bochs funktioniert das irgendwie einwandfrei, aber bei meinem BIOS eben net. Wird die Farbe dann irgendwie nicht immer benutzt, oder wie ist das?
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bitmaster am 18. July 2006, 21:59
Zitat von: bluecode
@bitmaster: Ich experimentier grad mit der alten Version von OS/M & dem BIOS das ich grad für MyEmu schreibe. Dabei is mir aufgefallen, dass du bei int0x10, funktion 0x0E als Farbe (also in bl) auf 0 setzt. Das sollte doch imho Schwarz auf Schwarz sein. In bochs funktioniert das irgendwie einwandfrei, aber bei meinem BIOS eben net. Wird die Farbe dann irgendwie nicht immer benutzt, oder wie ist das?
Die Farbe wird bei der Funktion 0Eh vom int 10h in bh angegeben. Aber die Farbe wird im Textmodus ignoriert, weswegen ich diese auch nicht setze. Der 0Eh des int 10h schreibt nur das Zeichen, nicht aber die Farbe. Deswegen wird die aktuelle Farbe nicht verändert.

bitmaster
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Biehler Productions am 19. July 2006, 19:46
Zitat

Wenn du Lust hast kannst du auch bei uns mitmachen, wir können Leute gebrauchen (sind ja nur zu zweit). Ansonsten, welche Platform willst du denn emulieren?


Also ich will ne 86er Platform emulieren.
Allerdings warte ich damit, bis ich mein OS auf ein höheres Niveau gebracht habe, ansonsten käme ich noch langsamer voran, als ich jetzt schon bin.
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Noobtotal am 24. July 2006, 23:43
Sag mal bluecode, wie siehts mit PM, V86 und so weiter aus? Schliesslich steht da, bis i386 wird schon unterstützt.
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bluecode am 25. July 2006, 00:04
Zitat von: Noobtotal
Sag mal bluecode, wie siehts mit PM, V86 und so weiter aus? Schliesslich steht da, bis i386 wird schon unterstützt.

Eh, steht wo :?: Wär mir zumindest neu, dass das irgendwo stehen würde :!:
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Noobtotal am 25. July 2006, 12:11
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bitmaster am 25. July 2006, 13:22
Zitat
Dort steht 386, aber ich hab grad gelesen, der wird erst zu unglaublichen 3% unterstützt.
Na ja, aber ein Emulator ist auch nicht so einfach zu proggen.

bitmaster
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Noobtotal am 25. July 2006, 13:44
Sagt ja auch keiner, ich meine nur, das ich nicht wirklich dran gedacht habe, das es bei einer Dreiprozentigen unterstützung des ersten funktionirerenden PM-Prozessor es wohl keinen PM gibt :wink: -
Titel: Suche möglichst einfaches realmode OS
Beitrag von: bluecode am 25. July 2006, 13:58
Da steht ja nur 3% der _Opcodes_ des 386. Der 386 hat sehr viel neue Opcodes gegenüber dem 8086 und dem 286. Protected-Mode wird evtl. in version 0.3 kommen (denke ich zumindest, aber darkthing & ich werden dass dann erst nach der V0.2 entscheiden), aber ich denke, dann auch nur der 16bit pmode.
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Noobtotal am 25. July 2006, 18:49
Schade. Sonst könntet ihr ja mal schauen ob l´Linux 0.01 läuft. :lol:  :wink:
Titel: Suche möglichst einfaches realmode OS
Beitrag von: Biehler Productions am 12. August 2006, 23:41
Hi,
ich hab jetzt voin deiner Seite wieder den My Emu runtergeladen.
Mein OS geht wieder nicht.

Zitat

0x0:0x7c00 JMP SHORT
0x0:0x7c3e JMP FAR
0x7c0:0x43 MOV R/M16, SREG
0x7c0:0x45 MOV SREG, R/M16
0x7c0:0x47 MOV SREG, R/M16
0x7c0:0x49 CLI
0x7c0:0x4a MOV AX, 0x9000
0x7c0:0x4d MOV SREG, R/M16
0x7c0:0x4f MOV SP, 0x200
0x7c0:0x52 STI
0x7c0:0x53 MOV CX, 0x1
0x7c0:0x56 PUSH CX
0x7c0:0x57 PUSH CX
0x7c0:0x58 CALL NEAR
0x7c0:0x18f PUSH BP
0x7c0:0x190 MOV R/M16, R16
0x7c0:0x192 PUSH DX
0x7c0:0x193 PUSH CX
0x7c0:0x194 ADD R/M16, 0x4
0x7c0:0x197 MOV R16, R/M16
0x7c0:0x19a MOV BX, 0x24
0x7c0:0x19d XOR R/M16, R16
0x7c0:0x19f DIV R/M16
0x7c0:0x1a1 XOR R/M8, R8
0x7c0:0x1a3 PUSH AX
0x7c0:0x1a4 MOV BX, 0x12
0x7c0:0x1a7 MOV R16, R/M16
0x7c0:0x1aa XOR R/M16, R16
0x7c0:0x1ac DIV R/M16
0x7c0:0x1ae MOV BX, 0x2
0x7c0:0x1b1 XOR R/M16, R16
0x7c0:0x1b3 DIV R/M16
0x7c0:0x1b5 XOR R/M8, R8
0x7c0:0x1b7 PUSH DX
0x7c0:0x1b8 MOV R16, R/M16
0x7c0:0x1bb MOV BX, 0x12
0x7c0:0x1be XOR R/M16, R16
0x7c0:0x1c0 DIV R/M16
0x7c0:0x1c2 ADD R/M16, 0x1
0x7c0:0x1c5 XOR R/M8, R8
0x7c0:0x1c7 PUSH DX
0x7c0:0x1c8 POP CX
0x7c0:0x1c9 MOV R/M8, R8
0x7c0:0x1cb POP CX
0x7c0:0x1cc MOV R/M8, R8
0x7c0:0x1ce POP CX
0x7c0:0x1cf MOV R/M8, R8
0x7c0:0x1d1 POP CX
0x7c0:0x1d2 POP DX
0x7c0:0x1d3 POP BP
0x7c0:0x1d4 RETN
0x7c0:0x5b POP DX
0x7c0:0x5c MOV R/M8, R8
0x7c0:0x5e MOV R/M8, R8
0x7c0:0x60 MOV AX, 0x1000
0x7c0:0x63 MOV SREG, R/M16
0x7c0:0x65 MOV AH, 0x2
0x7c0:0x67 MOV R/M8, R8
0x7c0:0x69 MOV DL, 0x0
0x7c0:0x6b MOV AL, 0x1
0x7c0:0x6d MOV R16, R/M16
0x7c0:0x71 INT 13

Ab hier hängt es

0x0:0x0 ADD R/M8, R8
0x0:0x2 ADD R/M8, R8
0x0:0x4 ADD R/M8, R8
0x0:0x6 ADD R/M8, R8
0x0:0x8 ADD R/M8, R8
0x0:0xa ADD R/M8, R8
0x0:0xc ADD R/M8, R8
0x0:0xe ADD R/M8, R8
0x0:0x10 ADD R/M8, R8
0x0:0x12 ADD R/M8, R8
0x0:0x14 ADD R/M8, R8
0x0:0x16 ADD R/M8, R8
0x0:0x18 ADD R/M8, R8
0x0:0x1a ADD R/M8, R8
0x0:0x1c ADD R/M8, R8
0x0:0x1e ADD R/M8, R8
0x0:0x20 ADD R/M8, R8
0x0:0x22 ADD R/M8, R8
0x0:0x24 ADD R/M8, R8
0x0:0x26 ADD R/M8, R8
0x0:0x28 ADD R/M8, R8
0x0:0x2a ADD R/M8, R8
0x0:0x2c ADD R/M8, R8
0x0:0x2e ADD R/M8, R8
0x0:0x30 ADD R/M8, R8
0x0:0x32 ADD R/M8, R8
0x0:0x34 ADD R/M8, R8
0x0:0x36 ADD R/M8, R8
0x0:0x38 ADD R/M8, R8
0x0:0x3a ADD R/M8, R8
0x0:0x3c ADD R/M8, R8
0x0:0x3e ADD R/M8, R8
0x0:0x40 ADD R/M8, R8
0x0:0x42 ADD R/M8, R8
0x0:0x44 ADD R/M8, R8
0x0:0x46 ADD R/M8, R8
0x0:0x48 ADD R/M8, R8
0x0:0x4a ADD R/M8, R8
0x0:0x4c ADD R/M8, R8

[...]

Dump:
   EAX   = 0x201
   EBX   = 0x0
   ECX   = 0xb108
   EDX   = 0x0
   ESI   = 0x0
   EDI   = 0x0
   EBP   = 0x0
   SS    = 0x9000
   ESP   = 0x1f8
   CS    = 0x0
   EIP   = 0x121c
   DS    = 0x7c0
   ES    = 0x1000
   FS    = 0x0
   GS    = 0x0
   EFLAG = 0x207


Ist da wieder ein Bug, oder hast du noch keine aktuelle Version raufgeladen?
Oder unterstützt du den INT 13H noch nicht?
Ich hab die Windows binary runtergeladen.
Titel: Suche möglichst einfaches realmode OS
Beitrag von: DarkThing am 13. August 2006, 00:19
Hi,
die nächste Version kommt noch ;) Es hat sich also noch nichts geändert. Sobald Version 0.2 releaset wurde, werde ich oder bluecode das hier im Forum natürlich wieder bekannt geben.