Springen naar inhoud

Programmaatje laden door bootloader.


  • Log in om te kunnen reageren

#1

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 10 augustus 2009 - 11:40

ik heb volgende stukje code:
main:		 ; Label for the start of the main program

;schrijf iets op het scherm
   mov ah,0x09
   mov al,"S"
   mov bh,0x00
   mov bl,0x11
   mov cx,0x11
   int 10h


haal de volgende 512b van de diskette
   mov ax,0x1000						 ;ES:BX Buffer Address Pointer   0x1000:0x0000
   mov es,ax
   mov bx,0x0000

   mov ah,02H;AH 02h
   mov al,0x01			  ;AL Sectors To Read Count
   mov ch,0x01			  ;CH Track
   mov cl,0x02			  ;CL Sector
   mov dh,0x01			  ;DH Head
   mov dl,0x01			  ;DL Drive
   int 13h

jump nu naar dat ingeladen stuk in het geheugen
  jmp 0x1000:0x0000


times 510-($-$$) db 0 ; Fill the rest with zeros
dw 0xAA55			 ; Boot loader signature
Hiermee boot ik mijn computer en schrijf er iets mee op het scherm verder laad ik de volgende 512bytes van de diskette waarop ik volgende heb gezet:

main:		 ; Label for the start of the main program

Schrijf nog iets op het scherm
   mov ah,0x09
   mov al,"S"
   mov bh,0x00
   mov bl,0x11
   mov cx,0xCC
   int 10h


times 510-($-$$) db 0 ; Fill the rest with zeros
dw 0xAA55			 ; Boot loader signature

Dus kortom ik heb twee bin bestanden die ik allebei kan gebruiken om een pc op te starten maw op zich zouden ze moeten werken. Ik start met de eerste code te laten utvoeren tijdens het bootproces dan is het de bedoeling dat het tweede stuk word geladen en er dan naartoe gejump wordt.
Echter ik krijg niet het verwachte resultaat, waar zit mijn fout? Groeten.

edit ik kan het eerste stukje code goed uitvoeren en dan krijg ik een zwart scherm, niet de tekst.

Veranderd door Bert F, 10 augustus 2009 - 11:41


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Revelation

    Revelation


  • >1k berichten
  • 2364 berichten
  • Technicus

Geplaatst op 23 augustus 2009 - 14:09

Je leest sector 2 van cylinder 1 en head 1.

Probeer:

mov al,0x01 ;AL Sectors To Read Count
mov ch,0x00 ;CH Track
mov cl,0x02 ;CL Sector
mov dh,0x00 ;DH Head
mov dl,0x01 ;DL Drive



Bijgevoegd zit mijn bootloader met FAT-loader die de second stage bootloader zoekt op de schijf. Misschien heb je daar wat aan. Succes!Bijlage  boot3.txt   7,79K   107 maal gedownload
ďQuotation is a serviceable substitute for wit.Ē - Oscar Wilde





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures