Hier der code des bootsektors:
;
; boot.asm
;
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
; Loads the OS - Loader into the RAM
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;
; name : Boot-Loader
; file : boot.asm
; version : 0.1
;-- GENERAL THINGS-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Org 0x7C00
[Bits 16]
cli ; Preparing a stack
mov ax, 0x9000
mov ss, ax
xor ax,ax
mov ds,ax
mov es,ax
mov sp,ax
sti
;-- CODE SECTION---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mov [bootdrv],dl
mov si, msg1
call WriteText
mov si, msg2
call WriteText
call load
mov si, msg3
call WriteText
mov si,msg4
call WriteText
mov ax,0x1000
mov es, ax
mov ds, ax
push ax ; Segment adress of os_ldr
xor ax,ax
push ax ; Offset adress of os_ldr
retf ; Far jump to kernel
;-- DATA SECTION---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;********** Variables **********
bootdrv db 0
msg1 db "Bootloader A/OS PM 0.2",13,10,0
msg2 db "***********************",13,10,0
msg3 db "Loading os-loader...",13,10,0
msg4 db "Calling os-loader...",13,10,0
;********** Functions **********
WriteText:
pusha
.1:
lodsb
or al,al
jz .2
mov ah, 0x0E
int 0x10
jmp .1
.2:
popa
retn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
load:
pusha
.1:
mov ah, 0x00 ; Disk drive reset
mov dl, [bootdrv]
int 0x13
or ah,ah
jnz .1
.2:
mov ax, 0x1000
mov es, ax ; The os_ldr segment
mov ah, 0x02 ; Reading
mov dl, [bootdrv]
mov dh, 0 ; Disk side
mov ch, 0 ; Spur
mov cl, 1 ; Sector
mov al, 5 ; How many sectors?
mov bx, 0 ; The offset
int 13h
or ah,ah
jnz .2
popa
retn
times 512-($-$$)-2 db 0 ; Paddint file size up to one sector
dw 0x0AA55 ; The boot-signature
Wegen der "----" Kommentare braucht man sich keine sorgen machen, das geht sich aus.
Er gibt zwar alle meldungen aus, jedoch springt er danach wieder zu sich selbst->gibt wieder alle Meldungen aus->springt wieder zu sich->.....
Das ist aber erst vor kurzem aufgetreten, er hat auf jeden fall schon einmal brav alles geladet, was ich von ihm wollte. FS hab ich auf der diskette nicht, da auf der Bootdiskette meines OSs keines sein soll, damit man sie nicht ruinieren kann. Aber egal.
Wer findet den Fehler? Ich auf jeden Fall nicht...