Vývoj operačného systému/Bootloader po druhé - práca s diskovými jednotkami: Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
d robot kozmetické zmeny
d robot kozmetické zmeny
Riadok 265:
cmp cl, 5 ;ak počítadlo 3+1
jz .fatal ;disketa naozaj nefunguje
 
xor ah, ah ;funkcia 00: reštartovanie zariadenia
int 0x13 ;prerušenie 0x13: práca s úložnými zariadeniami
Riadok 272:
test ah, ah ;ak AH=0 (stav = 0, úspech)
jnz .again ;pokračuj, inak vyskúšaj overenie zariadenia ešte raz
 
.fatal: ;informuj o výskyte chyby
</syntaxhighlight>
Riadok 294:
;VSTUP: [ES:SI] = štruktúra pre zdrojové zariadenie, [ES:DI] = štruktúra pre cieľové zariadenie
; ES:BX = pamäť pre buffer, AL = počet sektorov na čítanie (nemal by byť prekročený limit segmentu)
kopiruj:
mov dl, byte [es:di] ;načítaj číslo cieľového zariadenia
call reset ;procedúra reštartujúca zariadenie a overujúca stavový kód poslednej operácie
mov dx, word [es:si] ;načítaj číslo zdrojového zariadenia + 'hlavu' začiatku
call reset ;reštartuj
 
mov cx, word [es:si+2]
mov ah, 02
Riadok 309:
jc .error
jmp .end
 
.error:
mov si, chyba
call vypis
 
.end:
ret
Riadok 330:
int 0x13
jc .error
 
mov dx, word [es:di]
mov cx, word [es:di+2]
Riadok 336:
int 0x13
jc .error
 
jmp .end
 
.error:
mov si, chyba
call vypis
 
.end:
ret
Riadok 362:
mov word [ds:di+2], cx
jmp .end
 
.error:
mov si, chyba
call vypis
 
.end:
ret