FAT 12 Bootsektor

memorYoverflow
hi leuts,

ich probiere schon seit längerem einen Fat 12 bootsector zu goden...

leider bissher ohne erfolg. wenn ich die fertige bin datei auf di diskette schreibe (debug boot.bin, dann w 1000 0 0 1) und sie mit a: im datei explorer anspreche, heisst es sie sei nicht formatiert.

woran kann das liegen. hier mein code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
[BITS 16]
[ORG 0x7C00]

start:	
jmp short boot_start					
    OEM_ID                db "QUASI-OS"
     BytesPerSector        dw 0x0200
     SectorsPerCluster     db 0x01
     ReservedSectors       dw 0x0001
     TotalFATs             db 0x02
     MaxRootEntries        dw 0x00E0
     TotalSectorsSmall     dw 0x0B40
     MediaDescriptor       db 0xF0
     SectorsPerFAT         dw 0x0009
     SectorsPerTrack       dw 0x0012
     NumHeads              dw 0x0002
     HiddenSectors         dd 0x00000000
     TotalSectorsLarge     dd 0x00000000
     DriveNumber           db 0x00
     Flags                 db 0x00
     Signature             db 0x29
     VolumeID              dd 0xFFFFFFFF
     VolumeLabel           db "QUASI  BOOT"
     SystemID              db "FAT12   "
boot_start:
    retf
times 512-($-$$)-2 db 0
dw 0AA55h


danke im voraus mfg
memorYoverflow
ich habe es jetzt entlich geschaft!! großes Grinsen

hier der code fals es jemand interessiert:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
[BITS 16]
[ORG 0x7C00] ;07c0h

start:	
    jmp short boot_start
    					
	OSID                db "PIRAT-OS "
	BytesPerSector      dw 0200h
	SectorsPersector    db 01h
	LeadingSectors      dw 0001h
	NumberOfFATs        db 02h
	RootEntryMax        dw 00E0h
	TotalSectors        dw 0B40h
	MediaType           db 0F0h
	SectorsPerFAT       dw 0009h
	SectorsPerTrack     dw 0012h
	NumberOfHeads       dw 0002h
	HiddenSectors       dd 00000000h
	TotalSectors2       dd 00000000h
	DriveNumber         db 00h
	Reserved            db 00h
	BootSignaure        db 29h
	VolumeID            dd 69696969h
	VolumeLabel         db "PIRAT  BOOT"
	FATID               db "FAT12   "




boot_start:
	;Stack
		cli
		mov ax, 0x9000
		mov ss, ax
		mov sp, 0
		sti
	;/Stack


	
	mov si, msg_Loading
	call WriteString
	
	.LOOP
	jmp .LOOP
	
	retf

WriteString:
	ws_Loop:
		lodsb
		or al, al
		jz ws_Done
		mov ah, 0x0E
		mov bx, 0x0007
		int 0x10
		jmp short ws_Loop
	ws_Done:
		retn


;Variables
msg_Loading db "LOADING PIRAT OS !",13,10,0



times 512-($-$$)-2 db 0
dw 0AA55h


was jedoch der fehler war weiss ich immer noch nicht. <- NOOB verwirrt

mfg
daHooligan
FAT12 ???


krass
memorYoverflow
ja, fat 12 wird als Dateisystem für Disketten gebraucht. Augenzwinkern

^-- Wieder etwas dazu gelernt Augenzwinkern

mfg
ntoythi
Sehr interessant das ganze, darf man fragen wo man zu sowas eine gute Referenz findet? Wo hattest du deine Infos dazu her? *neugierig schau*
Hanfling
Fehlt da nicht noch einiges an Kram wie ne Verzeichnistabelle, etc.?

Kram zu FAT12 gibts z.B. im LowLewel Magazin, ka welche Ausgabe, ich glaub 4 oder 5.
http://web105.essen082.server4free.de/lo.../doc/index.html
memorYoverflow
da fehlt schon noch was....

aber sobald du eine datei draufkopierst (windows) dann macht es den rest selbst...

noch ne andere frage:

weiss jemand wo ich einen gcc compiler für windows kann downloaded. einer der funktioniert ?

ich habe sicher schon 20 versionen ausprobiert.. verwirrt


(ich werde in kürze ein paar tutorials zu diesem thema auf meine website tun, also nich vergessen www.domae.ch, im moment gibts aber noch nicht so viel zu sehen Augenzwinkern )
Hanfling
Zitat:
Original von memorYoverflow
da fehlt schon noch was....

aber sobald du eine datei draufkopierst (windows) dann macht es den rest selbst...

Ich tippe auf Reste von Daten die noch auf der Diskette waren. Denn das System müsste nachschauen in der FAT Tabelle welche Sektoren usw. noch frei sind.
linu(x)bie
Yo such nach Dev C++

das ist eine IDE die auf gcc läuft Freude
Andun
Darf auch mal ein Noob eine Frage stellen? Also auch einer der von Assemblern keine Ahnung hat?

Ich tu es einfach:

Was macht dieser Code Abschnitt? bzw. was ist so ein Fat12 Bootsektor. Fat kenne ich nur als FAT32 Dateisystem. (Ich benutz aber NTFS).
Hanfling
Boot Nachricht ausgeben.

FAT12 ist halt ein Dateisystem, einen FAT12 Bootsektor gibts nicht wirklich, bzw. in der Art benannt.
drum
In deinem Bootsektor sind diverse Fehler:

1. jmp short boot_start

sollte sein:
> jmp short boot_start ; 2 Byte jump
> nop ; 1 Byte füllung


2. OSID db "PIRAT-OS "

hat 9 Byte, darf aber nur 8 haben !
> OSID db "PIRAT-OS"

ps: Macht er schon mehr als einen Text ausgeben ?
pps: http://osdev.neopages.net/docs/fatgen103.pdf?the_id=40

Gruß
Drum