Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - Biehler Productions

Seiten: [1] 2 3
1
Offtopic / Buildnummer automatisch erhöhen / GUI im Real Mode
« am: 18. August 2006, 18:05 »
Zitat von: Osbios
Ich habe keine Ahnung wie bei Wiki Versioniert wird, aber mit dem Macroprozessor von Fasm sollte das kein Problem sein.


Ich mein da shier:
http://de.wikipedia.org/wiki/Versionierung

Dass ich also meinem OS eine Versionsnummer wie
    Hauptversionsnummer.Nebenversionsnummer.Revisionsnummer-Buildnummer

verpasse.

Ich hab ja keine Ahnung, wie ich das dem FASM sagen soll  :(
2
Offtopic / Buildnummer automatisch erhöhen / GUI im Real Mode
« am: 18. August 2006, 12:32 »
Hi,
ich habe beschlossen, in meinen programmen ab sofort die Versionierung, wie sie auf Wikipedia beschrieben ist, zu verwenden.
Nur ist es ziemlich mühselig, bei jeder Kompilation einen Zähler zu erhöhen.
Gibt es ein programm, oder ein Stück Code, der mir diese Arbeit abnimmt?
Hinweis:
Ich brauche es in Assembler (FASM).
Gibt es eventuell dafür sogar vorgefertigte Makros?

Und 2. Frage:
Mein kernel läuft nun soweit stabil.
Nun habe ich mir Gedanken gemacht über eine GUI.
Dafür würde ich im Real Mode den Grafikmodus 13H benutzen.
Mich würde nun interessieren, ob es im RM überhaupt sinnvoll ist, eine GUI einzubauen?

Ich habe mir gedacht, eine GUI zu benutzen, wie sie z.b. der DOS Editor edit.com hat oder die meisten Borland Produkte, z.b. Turbo C(++) Compiller.

Es gäbe dann eventuell eine Startleiste ähnlich in Windows.
Es kann halt dann immer nur ein Programm gestartet werden.
3
Das Wiki / Genuine Reihe - Beta Leser
« am: 17. August 2006, 22:14 »
Zitat von: nooooooooos
Mal ne Frage: (nicht das ich den Treiber auch kaufen möchte..), aber wo hast du den Treiber gekauft?????


<OT>
Von Microsoft  :lol:
</OT>
4
Das Wiki / Genuine Reihe - Beta Leser
« am: 17. August 2006, 20:16 »
Zitat von: scales of justice
was mir nicht gefällt:

1. das alles halb deutsch und halb englisch ist,
der Text an sich ist deutsch, aber dann benutzt du manchmal Wörter wie "experience" statt einfach Erfahrung zu schreiben,
auch in den Tabellen ist das der Fall, in den Tabellen ist alles Englisch, als hättest du die irgendwo kopiert


genau.
Either in Deutsch, English or in 2 Versionen.

-->
So ungefähr hört sich das dann an, wenn man 2 Sprachen mischt

 :lol:
5
Lowlevel-Coding / Tastatur: Scancodes von XT/AT
« am: 15. August 2006, 20:33 »
Zitat von: T0ast3r


und wie in meinem tut so viel ich weiß steht da auch drin dass die tasten alt gr und druck falsch gesendet werden...  :wink:


Ja, das steht drinn, aber ich hab das auf etwas anderes bezogen  :D

Nun kann ich endlich meinen Treiber fertig machen :-)
6
Lowlevel-Coding / Tastatur: Scancodes von XT/AT
« am: 15. August 2006, 13:44 »
Anmerkungen:

Zitat

Bochs (ein Emulator für unwissende) gibt sonst eine Fehlermeldung von einen nicht
unterstützen Keyboard Command aus.


Ich würde hier eher schreiben "Bochs (Für Unwissende: Ein Emulator)"
Ansonsten hört es sich an, als sei der Emulator für "idioten" gedacht ;)
Oder ist das beabsichtigt? :lol:

Zitat

Tasten kann man theoretisch auch als Highlevel, Toplevel lowlevel Tasten betrachten.


Fehlt da nach Toplevel nicht ein Komma oder ein "oder"?
Und Lowlevl müsste afaik Großgeschrieben werden.

Zitat

Das folgende Schema wird auch bei ToasterOS verwendet, und somit verbiete ich jegliche
Weiterverbreitung in Tutorials (und ähnlichem), jedoch ist es gestattet für Code (aber nichts
anderes sonst) zu verwenden.



Das Dick markierte klingt irgendwie komisch.
Ich würd sagen, da fehlt ein Wort.
Vielleicht eher so:

"jedoch ist es gestattet, das Schema für eigenen sourcecode (aber nichts anderes sonst) zu verwenden"

Oder so ähnlich.

Zitat

; are one (E0h) or two (E1h)
cmp al,0E0h
je Keyboard_Handler_E?h
cmp al,0E1h
je Keyboard_Handler_E?h

Ich glaube, du hast diue Labels falsch geschrieben. Anstatt einem "?" sollte da wohl 0 und 1 stehen?

Ansonsten:
Danke für das Tut

Du schreibst, dass man das Scancodeset 1 verwenden sollte.
Wie kann ich die Sets ändern?

Und:
Zitat

00168678000i[KBD  ] internal keyboard buffer full, ignoring scancode.(e0)
00168678000i[KBD  ] internal keyboard buffer full, ignoring scancode.(38 )
00170145000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)
00170145000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)

00170145000i[KBD  ] internal keyboard buffer full, ignoring scancode.(e0)
00170145000i[KBD  ] internal keyboard buffer full, ignoring scancode.(b8 )
00171935000i[KBD  ] internal keyboard buffer full, ignoring scancode.(1d)
00171935000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)


Warum sendet Bochs hier für die Alt GR Taste 4 bytes?

Falls jemand den Code braucht:

INT9H:
[...]

CHECK_BUFFER:
MOV CX, 20
LEA SI, [BUFFER]
SEARCH_0:
CMP BYTE [SI], 0
JE S_OK
INC SI
LOOP SEARCH_0
;Ansonsten wäre der Buffer voll, gib hier einen Ton etc. aus.
JMP INT9H_END

S_OK:
IN AL, 64H
TEST AL, 1b ;statusbyte überpüfen, ob scancode vorhanden
JE INT9H_END
mov ah, 0eh
mov al, "u"
int 10h ;Dient nur als Test
IN AL, 60H
MOV [SI], AL
jmp INT9H_END

[...]
7
Zitat von: Legend

Bei Windows z.B. finde ich die Sache mit Registry/INI-Files/usw. teilweise unsauber und komplex.

Ich finde die registry stellt einen sehr guten Ansatz dar, allerdings ist sie zu komplex, als dass ein User durchblicken könnte.

Die Initdateien hingegen finde ich ebenfalls sehr gut, allerdings ist hier das problem, dass die Ini Dateien nicht in einem einzigen Ordner gespeichert sind, sondern dass jeder Programmierer sein eigenes Süppchen kocht.

Mit Linux habe ich noch keine Erfahrung gemacht.

Ich würde allerdings sagen, dass das OS so aufgebaut sein sollte, dass der User erst gar nicht in die Gelegenheit kommen muss, in irgendwelchen Config Dateien rumfummeln zu müssen.

Wenn dies gegeben ist, löst sich das Problem von selber, da es dann eigentlich egal ist, wo irgendwelche Konfigurationen gespeichert werden.
8
Lowlevel-Coding / Tastatur: Scancodes von XT/AT
« am: 14. August 2006, 22:29 »
Danke @T0ast3r

Ich werd mir das mal durchlesen
9
Offtopic / Suche möglichst einfaches realmode OS
« 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.
10
Lowlevel-Coding / Tastatur: Scancodes von XT/AT
« am: 12. August 2006, 10:24 »
Zitat von: T0ast3r
hi, ich hab nen vollständigen Tastatur Treiber welcher alle Tasten unterstützt, inklusive amerikanischen und europäischen layout, windows Tasten, alt gr usw.

http://pastebin.ca/126179


(Kommt ~ in ner Woche)


Uh, solange kann ich nicht warten.

Ich such grad in dem Code die Scancodes.
Includest du die in der "interface.asm"?
Ich find die nirgends :oops:

Naja, es würde mir schon reichen, wenn du mir sagst, ob die Scancodes, die mir BOCHS sagt, richtig sind. ;)
11
Lowlevel-Coding / Tastatur: Scancodes von XT/AT
« am: 10. August 2006, 11:27 »
Hi,
sorry, aber das hilft mir alles nicht ganz weiter.

@thetrue
wenn ich das OS starte,wird lediglich der text "Fuck You all" ausgegeben, sonst nix.
Aber es hat mich auf eine Idee gebracht, wie ich die Scancodes auslesen kann.

Ich habe jetzt einfach einen Bootloader, der sich in ne Endlosschleife hängt.
Dann brauch ich nur sooft eine Taste drücken, bis der Tastaturbuffer voll ist.
Dann kann ich jede beliebige Taste drücken und dadruch deren Scanciode auslesen.

bochs meldet mir nun, wenn ich die ALT GR Taste drücke:
Zitat

00185789000i[KBD  ] internal keyboard buffer full, ignoring scancode.(1d)
00185789000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)
00185789000i[KBD  ] internal keyboard buffer full, ignoring scancode.(e0)
00185789000i[KBD  ] internal keyboard buffer full, ignoring scancode.(38)
00186776000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)
00186776000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)
00186776000i[KBD  ] internal keyboard buffer full, ignoring scancode.(e0)
00186776000i[KBD  ] internal keyboard buffer full, ignoring scancode.(b8)


Kann ich jetzt davon ausgehen, dass diese Codes stimmen?
Weil irgendwie passen die zu keinem der oben geposteten 2 (3) Scancodesets.
Und auch passen die weder zu so einem MF II Layout noch zu nem AT/XT Layout.

Wenn ich die ALT GR Taste drücke, wird der Code 1d 9d e0 38 gesendet.
Der Break Code ist dann folglich 9d 9d e0 b8

Aber:
Wenn ich auf der ALT Gr Taste drauf bleibe, wird nur einmal 1d gesendet und ansonsten nur 9d e0 38

Zitat

00124321000i[KBD  ] internal keyboard buffer full, ignoring scancode.(1d)

00124321000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)
00124321000i[KBD  ] internal keyboard buffer full, ignoring scancode.(e0)
00124321000i[KBD  ] internal keyboard buffer full, ignoring scancode.(38)

00131467000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)
00131467000i[KBD  ] internal keyboard buffer full, ignoring scancode.(e0)
00131467000i[KBD  ] internal keyboard buffer full, ignoring scancode.(38)
00131835000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)
00131835000i[KBD  ] internal keyboard buffer full, ignoring scancode.(e0)
00131835000i[KBD  ] internal keyboard buffer full, ignoring scancode.(38)
00132161000i[KBD  ] internal keyboard buffer full, ignoring scancode.(9d)
00132161000i[KBD  ] internal keyboard buffer full, ignoring scancode.(e0)
00132161000i[KBD  ] internal keyboard buffer full, ignoring scancode.(38)


Ist das normal, oder funktoniert da BOCHS nicht richtig?
12
Lowlevel-Coding / Tastatur: Scancodes von XT/AT
« am: 09. August 2006, 18:52 »
Ich habe jetzt mal verschiedene Tasten durchprobiert.
Bei meiner Tastatur hat ALT GR den Scancode 1d und STRING Links genauso.
Und die Pfeil-nach-unten Taste hat den Scancode 2a, die SHIFT Links hat ebenfalls den Scancode 2a.

Läuft hier irgendwas schief, liegt es an meiner Tastatur (ist eine Funktastatur mit Zusatztasten von Cherry) oder was ist hier los?


Und wie kann ich ein Codeset ausschalten?

Und diese Zusatzcodes wie E0, die manchen Scancodes vorangestelt werden, werden doch zuerst an den Port gesendet.
Den muss ich abfangen und danach nochmals den Port abfragen und das nächste Scancodebyte holen, oder?

Irgendwie sitzt ich grad total auf der Leitung
 :oops:
13
Lowlevel-Coding / Tastatur: Scancodes von XT/AT
« am: 09. August 2006, 14:15 »
Hi,

 ich will meinen Tastaturtreiber endlich mal um die Möglichkeit zur Darstellung von Großbuchstaben erweitern.

Aber in einem Buch "PC Intern 3.0" (etwas ältere Ausgabe), lese ich, dass jeder Tastaturtyp (XT, AT) unterschiedliche Scancodes an den PC sendet.
Meine Fragen:
Ist das richtig, oder habe ich das einfach falsch verstanden?

Und wenn das richtig ist, wie kann ich dann einen allgemeingültigen Tastaturtreiber schreiben?
Mir wird dann wohl nichts anderes übrig bleiben, als den User auswählen zu lassen, welchen Typ er besitzt, bzw. automatisch nach dem richtigen Typ zu suchen?
14
Lowlevel-Coding / FAT12 - Punkt und Doppelpunkt eintrag.
« am: 04. August 2006, 22:25 »
THX.
Werd ich morgen sofort mal ausprobieren :-)
15
Lowlevel-Coding / FAT12 - Punkt und Doppelpunkt eintrag.
« am: 04. August 2006, 19:06 »
Hi,
eine Frage:
Und zwar versuche ich gerade den CD Befehl in mein OS einzubauen.
Geht soweit auch ganz gut, nur wie kann ich ein "cd .." realisieren?
Weil:
bei jedem Directory Eintrag steht ja der Anfangscluster mit dabei.
Nur bei dem Doppelpunkt scheinbar nicht.
Aber wie krieg ich nun im laufenden Betrieb das übergeordnete Verzeichnis raus?
Wahrscheinlich gibt es eine stinkeinfache Lösung, aber ich sitzt im Moment total auf dem Schlauch :-(
16
Lowlevel-Coding / Paar Fragen
« am: 04. August 2006, 19:06 »
Ne kleine Anmerkung @topic

Zumindest bei AT Rechnern wirst du Probleme haben, den Powerbutton abzufangen, da dieser direkt an das NT angeschlossen ist.
17
Lowlevel-Coding / String von der Tastertur auslessen
« am: 02. August 2006, 11:12 »
Hm, ich hab den Code nicht getestet, aber wenn man nur 0DH ausgibt, springt er auch nicht an den Anfang der nächsten Zeile.
Soweit ich weis, muss man 0DH und 0AH ausgeben, damit in die nächste Zeile an den Anfang gesprungen wird.
18
Das Wiki / Die Wahl :: Diskussion
« am: 01. August 2006, 08:41 »
Nur ne Frage am Rande:
Hat PHPBB2 kein Voting Script mit eingebaut?
weil das wäre wesentlich einfacher, denk ich mir.

Ich werd mir mal überlegen, wen ich wähl.  :)
19
Offtopic / Andere C++ Compiler ausser g++?
« am: 29. July 2006, 22:07 »
Zitat von: bitmaster
Zitat von: Biehler Productions
geht auch ein kostenloser?
Dann vieleicht den Borland Turbo C++ 1.01
http://community.borland.com/article/0,1410,21751,00.html
Jo, aber der kann nur RM Code, oder?

bitmaster

Bin mir nicht sicher, aber wahrscheinlich schon.
Ist auch ne sehr alte Version.
Aber für ein RM OS gut geeignet
20
Offtopic / Andere C++ Compiler ausser g++?
« am: 28. July 2006, 21:40 »
geht auch ein kostenloser?
Dann vieleicht den Borland Turbo C++ 1.01
http://community.borland.com/article/0,1410,21751,00.html
Seiten: [1] 2 3

Einloggen