Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: joachim_neu am 01. June 2004, 12:58

Titel: Geht das? Wie soll ich es testen?
Beitrag von: joachim_neu am 01. June 2004, 12:58
Hallo, ich habe einen Code geschrieben, der aus einer Sektornummer, die nicht in Form von 1. Head, 5. Sector, 65. Track angegeben wird, sondern als Nummer von 1 - 2880 in eine INT0x13-kompatible Darstellung bringt. Jetzt weiß ich aber nicht, wie ich testen soll, ob der geht, weil ich ja keine Zahlen so wie bei C oder so ausgeben kann... Syntaxfehler werden nicht gemeldet... Erkennt jemand einen Fehler und kann mir jemand sagen, wie er einen solchen Code testen würde? CODE:

nummer_start dw 0x0000
nummer db 0x0000
head db 0x0000
track db 0x0000
sector db 0x0000
;hier muss nummer_start mit dem start_wert gefüllt werden
mov ax,[nummer_start]
xor dx,dx
mov bx,0x05A0
div bx
mov [head],al
mov [nummer_start],dx
mov ax,[nummer_start]
mov bl,0x12
div bl
mov [track],al
mov [nummer],ah
mov al,[nummer]
mov [sector],al

mfg

JOACHIM NEU
Titel: Geht das? Wie soll ich es testen?
Beitrag von: The-Programmerfish am 01. June 2004, 13:02
Also weiß nicht wollte dich bloß drauf hinweisen das deine Homepage-Adresse nicht funktioniert.
Titel: Geht das? Wie soll ich es testen?
Beitrag von: TeeJay am 01. June 2004, 13:28
Ich hatte so eine Umrechnung auch in meinem FAT12 Tutorial beschrieben.

Da kannst du ja überprüfen ob du das richtig machst.
Titel: Geht das? Wie soll ich es testen?
Beitrag von: lobmann am 01. June 2004, 13:47
So rechnet man aus LHS die CHS:
mov     ax,[LHS]
  xor         dx,dx
  mov        bx,18
  div         bx
  inc         dx
  mov          [Sektor],dx
  xor            dx,dx
  mov          bx,2
  div            bx
  mov          [Cylinder],ax
  mov            [Head],dx

Aber scheinbar willst du aus nem FAT-Eintrag die CHS errechnen dann würd ich mir das im Bootloader von Teejay mal angucken
Titel: Geht das? Wie soll ich es testen?
Beitrag von: joachim_neu am 01. June 2004, 16:01
also, meine HP geht nicht, weil ich im moment keinen Betreiber habe, meine Domain ist registriert, aber der Webspace-Anbieter (glovi.de) ist bankrott gegangen... @lobmann: das problem bei dir ist, dass Cylinder,Head und Sektor Words sind und man die dann nicht in Int 0x13 verwenden kann, da da ja alle Bytes sind... ich habe das tut von TeeJay erst gestern nochmal gelesen, da ich und bscreator ja FAT16 implementieren wollen...
Titel: Geht das? Wie soll ich es testen?
Beitrag von: lobmann am 01. June 2004, 16:12
Fast Richtig die words werden benutzt damit das ergebnis nicht verfälscht wird Du kannst trotzdem die Variablen in die entsprechen 8_BIT Register für int 13h laden.