Assembler und C OS
-
lesen:
mov ah, 00h
int 016hcmp al, 27
je resetcmp al, 13
je NewLinejmp lesen
NewLine:
mov si, prompt
call schreibenEchoChar:
mov ah, 0x0E
mov bx, 0x0007
int 10h
jmp lesenreset:
db 0Eah
dw 0000h
dw 0FFFFhprompt db 13, 10, 'C:\>', 0
Sollte jetzt doch so funktionieren, oder?
Der Pc stürzt aber dann ab, sobald der Text (nachricht 1- 4)
angezeigt wird.
-
könntet ihr mir bitte helfen?
was ist hier noch falsch?
-
Hi.
Mit diesen spaerlichen Informationen ist dir einfach nicht zu helfen
Was heisst diesmal "der PC stuerzt ab"?
Dein Code ist immerhin noch kein Windows, wo ein Absturz tausend Gruende haben kann - hier ist eine genaue Beschreibung wichtig, um den Fehler schnell einzugrenzen.So sehe ich deinem Code als moegliches Manko nur an, dass der Code direkt unter dem Label "EchoChar" nur ausgefuehrt wird, wenn die Returntaste gedrueckt wurde.
-
Im Kernel steht doch ziemlich am Anfang (siehe Seite 2)
nachricht1, nachricht2, nachricht3Diese werden angezeigt, wenn das OS gestartet ist, der PC ängt sich aber dann sofort auf und macht gar nichts mehr und reagiert auch gar nicht mehr.
-
Ich habe mir die aktuellsten Versionen deines hier geposteten Codes kopiert/assembliert und werde das mal genauer unter die Lupe nehmen, sobald mein TestPC sich mal wieder einkriegt.
-
So, neue Festplatte rein - neues Programm zum "Disketten unbrauchbar machen" geschrieben und tatsaechlich noch eine Diskette gefunden, deren Sektor 1 und 2 noch intakt waren.
Da habe ich dieses "OS" draufkopiert und es lief so weit alles problemlos:
Bei ESC => Neustart und bei ENTER => Naechste Zeile und "C:\>" ausgegeben.
Auf andere Tasten wird wie bereits gesagt in der letzten Version deines Codes nicht reagiert.Hast du ausser im Code unter "lesen" wirklich sonst nirgendwo am Code veraenderungen vorgenommen?
*Wilde Vermutung* Vielleicht auch schonmal mit einer anderen Diskette probiert?
-
ja probiere es nochmal mit neuer diskette.
danke für die mühe.
-
DANKE!Hat wirklich an der Diskette gelegen!
-
wie lautet der Zahlencode für die F2-Taste?
Gibt es in Assembler eine Sleep_Funktion?
Könntet ihr mir sagen, wie das funktioniert?
DANKE!
-
Servus schrieb:
wie lautet der Zahlencode für die F2-Taste?
Die Tastaturcodes kannst du dir holen, indem du dir testhalber mal die Rueckgabewerte der BIOS-Funktion int 16h,00 ansiehst.
Habe hier mal ein entsprechendes Programm geschrieben.Servus schrieb:
Gibt es in Assembler eine Sleep_Funktion?
Nein, nicht direkt.
Im RM ist wohl die geschickteste Moeglichkeit, eine bestimmte Zeit zu warten, die Daten an Addresse 0000:046C auszulesen und zu schauen, ob sie sich aendern (Aenderung jede Sekunde 21*).
-
Danke.
Probier das Programm gleich mal aus.