2004-06-12 23:34:04 +02:00
.model tiny
.486
smart
.code
org 0100h
ent equ 32h
start:
jmp CopyCOS
Message db 0Dh , 0Ah , 'COS 2000 V3.02Fr programme d' 'installation' , 0Dh , 0AH , 'Inserez une disquette formatee et appuyez sur entre...' , 0Dh , 0AH , 'Attention le contenu de celle ci peut etre altere !!!' , 0Dh , 0AH , '$'
Message2 db 0Dh , 0AH , 'Creation du secteur de demarrage...' , 0Dh , 0Ah , '$'
Message3 db 0Dh , 0AH , 'Copie des fichiers systeme...' , 0Dh , 0Ah , '$'
Errormsg db 0Dh , 0AH , 'Erreur d' 'installation, contactez moi a COS2000@MULTIMANIA.COM !' , 0Dh , 0AH , '$'
Ok db 0Dh , 0AH , 'COS2000 a <20> t<EFBFBD> correctement install<6C> , veuillez redemarrer votre PC' , 0Dh , 0AH , '$'
files db '*.*' , 0
boot db 'boot.bin' , 0
dat db 'data' , 0
retu db 0Dh , 0AH , '$'
dt a db 43 dup ( 0 )
copycos:
mov ah , 9
mov dx , offset message
int 21h
xor ax , ax
int 16h
mov ah , 4ah
mov bx , 1000h
int 21h
jc error
mov ah , 48h
mov bx , 65536 / 16
int 21h
jc error
mov fs , ax
mov ah , 3Bh
mov dx , offset dat
int 21h
jc error
mov ah , 1Ah
mov dx , offset dta
int 21h
jc error
mov ah , 4eh
xor cx , cx
mov dx , offset files
int 21h
jc error
mov ah , 09
mov dx , offset message3
int 21h
allfile:
mov byte ptr [ offset dta + 43 ], '$'
mov ah , 9
mov dx , offset dta + 30
int 21h
push dx
mov ah , 09
mov dx , offset retu
int 21h
pop dx
mov ax , 3D00h
int 21h
jc error
mov bx , ax
mov ax , 4202h
xor cx , cx
xor dx , dx
int 21h
jc error
cmp dx , 0
jne error
cmp ax , 0
je error
mov bp , ax
mov ax , 4200h
xor cx , cx
xor dx , dx
int 21h
jc error
push fs
pop ds
mov ah , 3fh
mov cx , 0FFFFh
xor dx , dx
int 21h
push cs
pop ds
jc error
mov ah , 3eh
int 21h
jc error
mov ah , 3ch
push cs
pop es
mov di , offset dta + 30 - 3
mov word ptr [ di ], ":a"
mov byte ptr [ di + 2 ], "\"
xor cx , cx
mov dx , di
int 21h
jc error
mov bx , ax
push fs
pop ds
xor dx , dx
mov ah , 40h
mov cx , bp
int 21h
push cs
pop ds
jc error
mov ah , 3eh
int 21h
jc error
mov ah , 4fh
int 21h
jnc al lfile
mov ah , 09
mov dx , offset message2
int 21h
mov ax , 3D00h
mov dx , offset boot
int 21h
jc error
push fs
pop ds
mov ah , 3fh
mov cx , 000FFh
xor dx , dx
int 21h
push cs
pop ds
jc error
mov ah , 3eh
int 21h
jc error
push fs
pop es
mov ax , 0301h
mov dx , 0
mov cx , 0001h
xor bx , bx
int 13h
mov ah , 09
mov dx , offset Ok
int 21h
xor ax , ax
int 16h
ret
error:
mov ah , 09
mov dx , offset errormsg
int 21h
xor ax , ax
int 16h
ret
end start