Autor Thema: Geht das? Wie soll ich es testen?  (Gelesen 5949 mal)

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« 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
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

The-Programmerfish

  • Beiträge: 434
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 01. June 2004, 13:02 »
Also weiß nicht wollte dich bloß drauf hinweisen das deine Homepage-Adresse nicht funktioniert.
<- Verhasst, Verdammt, Vergöttert

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #2 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.
----------------------
Redakteur bei LowLevel

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #3 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
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #4 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...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #5 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.
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

 

Einloggen