[hydrixOS] : Re: Compile und link Probleme sogar unter Linux

  • From: kempf_stefan@xxxxxxxx
  • To: Mailingliste <hydrixos@xxxxxxxxxxxxx>
  • Date: Sat, 25 May 2002 14:50:50 +0200 (CEST)

On Fri, 24 May 2002, Friedrich Gr=E4ter wrote:
> Hallo,
>
>  >> Tats=E44chlich. Ist mein Fehler. Mein Text-Editor (TextPad) sollte
>  >> eigentlich im UNIX-Format speichern, hat aber die Einstellung
>  >> scheints wieder 'verloren'.
>  >
>  > Ich ergaenze das Makefile um eine 'recode' Regel, die alle
>  > Dateien notfalls umkonvertiert, wenn du willst.
>
> Ich werde in der n=E4chsten Release alles auf UNIX umstellen. Dennoch w=
=E4re
> so eine Regel nicht schlecht, kannst du sie in der Mailingliste
> ver=F6ffentlichen?

Ich schreibe noch die Speichererkennung fertig und schicke
das dann alles zusammen. An Stelle "die" in bootsec.s ist noch ein
Fehler:

Du weist ax einen Wert zu, der so wie ich das sehe in es gespeichert
werden soll, schreibst dies aber so:

movw $0xB800, %ax
movw %es, %ex

und willst dann in %es:0 ein A schreiben.
Das muesste dann
movw %ax, %es heissen

Wenn du dann noch anstatt movb $65, %al
movw $0x741, %ax schreibst, sparst du dir AFAIK sogar
ein byte im bootsector.

> Die ist ebenfalls bei DJGPP standard. Ich f=FCge sie aber hinzu.
>
>  >> Ich hoffe es geht nun alles.
>  >
>  > Compilieren ja, OS booten - nein. Ich bekomme beim boot bloss
>  > ein '40 0' auf dem Bildschirm angezeigt. Ich bin nicht sicher,
>  > wo der Bug auftritt (entweder in bootsec, oslod oder im 16 Bit
>  > Code von start.s, da sich mit Strg-Alt-Enf noch rebooten
>  > laesst.
>
> Das klingt nach oslod.s. Und zwar ist '4' die Fehlernummer '0' der
> Sektor und die Zweite '0' der Track (siehe do_read_error, Zeile 252).
> Aber aus dem Fehler '4' werde ich nicht schlau, der ist n=E4mlich "Sector
> not found" - das w=FCrde hei=DFen, dass mit der Diskette was nicht stimmt=
=2E
> Welches Format hat sie denn?

Ich habe ein paar Dinge mit dd an die falschen Stellen geschrieben.
Ich ging von den Angaben in README.GRAWRITE aus. U.a war oslod an der
falschen Stelle. Der Kernel wird nun geladen, der Bildschirm wird
geloescht und nichts weiter passiert. Ich bau fuer mich ein paar
Debugmeldungen in den Kernel ein und schau, wo gestoppt wird. Es kann
wirklich sein, dass die Routine fuer die Speichererkennung der Fehler ist.

>  > Ich bin deinen Code ein wenig durchgegangen und habe eine
>  > Todsuende entdeckt: in bootsec.s deaktivierst du vor dem Setzen
>  > des Stacks nicht die Interrupts. Schaem dich :-)
>
> Echt? Ich stell mich gleich in eine Ecke und heul' ne Runde :). Das
> erkl=E4rt, vielleicht aber, warum Bochs seit einiger Zeit den Kernel nich=
t
> mehr booten will...

Du solltest auch 0xAA55 an byte 510 schreiben...

> cu
>
> FG

cheers,
Stefan

---
This is not SPAM! You can unsubscribe sending an e-mail to 
hydrixos-request@xxxxxxxxxxxxx with subject "unsubscribe". If
you've got questions contact webmaster@xxxxxxxxxxxx

hydrixOS kernel: http://www.hydrixos.de/downl.htm


Other related posts: