; Program zczytuje zawartosc boot-sektora dyskietki w stacji A: i umieszcza ; go w pliku "boot.bin" ; ; Autor: Bogdan D. ; kontakt: bogdandr (at) op (dot) pl ; ; nasm -O999 -o bootrd.com -f bin bootrd.asm ; ; Copyright (C) 2005-2007 Bogdan 'bogdro' Drozdowski, bogdandr @ op . pl ; ; Ten program jest wolnym oprogramowaniem; mozesz go rozpowszechniac ; i/lub modyfikowac zgodnie z licencja GNU Lesser General Public License ; (GNU LGPL) w wersji wydanej przez Fundacje Wolnego Oprogramowania; ; wedlug wersji 3 Licencji lub (jesli wolisz) jednej z pozniejszych wersji. ; ; Ten program jest udostepniany z nadzieja, ze bedzie uzyteczny, lecz ; BEZ JAKIEJKOLWIEK GWARANCJI; nawet domyslnej gwarancji PRZYDATNOSCI ; HANDLOWEJ albo PRZYDATNOSCI DO OKRESLONYCH ZASTOSOWAN. W celu uzyskania ; blizszych informacji - Licencja GNU Lesser General Public License. ; ; Z pewnoscia wraz z niniejszym programem otrzymales tez egzemplarz ; Licencji GNU Lesser General Public License; jesli nie - napisz do ; Fundacji Wolnego Oprogramowania: ; Free Software Foundation ; 51 Franklin Street, Fifth Floor ; Boston, MA 02110-1301 ; USA org 100h start: mov ax, cs mov ds, ax mov es, ax ; ES = DS = CS mov ax, 0201h ; funkcja czytania sektorow xor dx, dx ; glowica 0, dysk 0 = A: mov cx, 1 ; numer sektora mov bx, bufor ; dokad czytac stc int 13h ; czytaj sti jnc czyt_ok ; sprawdz, czy blad mov dx, dysk_blad mov ah, 9 int 21h ; wyswietl info o bledzie jmp short koniec czyt_ok: mov dx, plik ; DX = adres nazwy pliku mov ah, 3ch ; utworz plik xor cx, cx ; atrybut int 21h jnc plik_ok ; sprawdz, czy wystapil blad mov dx, plik_blad mov ah, 9 int 21h ; wyswietl info o bledzie jmp short koniec plik_ok: mov bx, ax ; BX = uchwyt do pliku (file handle) mov ah, 40h ; funkcja zapisu do pliku mov cx, 512 ; zapisz 512 bajtow .... mov dx, bufor ; .... z bufora int 21h jnc pisz_ok ; sprawdz, czy wystapil blad mov dx, plik_blad mov ah, 9 int 21h ; wyswietl info o bledzie jmp short plik_zamk pisz_ok: xor ax, 512 ; sprawdz, czy zapisalo 512 bajtow jz plik_zamk mov dx, plik_blad mov ah, 9 int 21h ; gdy nie zapisano 512 bajtow, ; wyswietl blad plik_zamk: mov ah, 3eh int 21h ; zamknij plik jnc koniec mov dx, plik_blad mov ah, 9 int 21h koniec: mov ax, 4c00h int 21h ; wyjdz z programu align 16 bufor times 512 db 0 dysk_blad db 'Blad dysku.$' plik_blad db 'Blad pliku.$' plik db 'boot.bin',0