fix: correction de nombreux bogues suite à la migration vers FASM
This commit is contained in:
parent
06eb38cad0
commit
8e35ea4794
|
@ -83,8 +83,8 @@ define compute_regs
|
||||||
set $rds = ((unsigned long)$ds & 0xFFFF)
|
set $rds = ((unsigned long)$ds & 0xFFFF)
|
||||||
set $res = ((unsigned long)$es & 0xFFFF)
|
set $res = ((unsigned long)$es & 0xFFFF)
|
||||||
set $rss = ((unsigned long)$ss & 0xFFFF)
|
set $rss = ((unsigned long)$ss & 0xFFFF)
|
||||||
set $rfs = ((unsigned long)$es & 0xFFFF)
|
set $rfs = ((unsigned long)$fs & 0xFFFF)
|
||||||
set $rgs = ((unsigned long)$ss & 0xFFFF)
|
set $rgs = ((unsigned long)$gs & 0xFFFF)
|
||||||
set $rip = ((((unsigned long)$cs & 0xFFFF) << 4) + ((unsigned long)$eip & 0xFFFFFFFF)) & $ADDRESS_MASK
|
set $rip = ((((unsigned long)$cs & 0xFFFF) << 4) + ((unsigned long)$eip & 0xFFFFFFFF)) & $ADDRESS_MASK
|
||||||
set $r_ss_sp = ((((unsigned long)$ss & 0xFFFF) << 4) + ((unsigned long)$esp & 0xFFFFFFFF)) & $ADDRESS_MASK
|
set $r_ss_sp = ((((unsigned long)$ss & 0xFFFF) << 4) + ((unsigned long)$esp & 0xFFFFFFFF)) & $ADDRESS_MASK
|
||||||
set $r_ss_bp = ((((unsigned long)$ss & 0xFFFF) << 4) + ((unsigned long)$ebp & 0xFFFFFFFF)) & $ADDRESS_MASK
|
set $r_ss_bp = ((((unsigned long)$ss & 0xFFFF) << 4) + ((unsigned long)$ebp & 0xFFFFFFFF)) & $ADDRESS_MASK
|
||||||
|
@ -243,7 +243,7 @@ define print_mb
|
||||||
set $size = *(unsigned short*)($mem+6)
|
set $size = *(unsigned short*)($mem+6)
|
||||||
set $name = (unsigned char*)($mem+8)
|
set $name = (unsigned char*)($mem+8)
|
||||||
printf "%s:%4X:%4X\n",$name,$mem,$size
|
printf "%s:%4X:%4X\n",$name,$mem,$size
|
||||||
set $mem=$mem+$size
|
set $mem=$mem+($size+2)*16
|
||||||
set $verif = *(unsigned char*)($mem)
|
set $verif = *(unsigned char*)($mem)
|
||||||
set $verif2 = *(unsigned char*)($mem+1)
|
set $verif2 = *(unsigned char*)($mem+1)
|
||||||
end
|
end
|
||||||
|
|
42
lib/3d.asm
42
lib/3d.asm
|
@ -54,7 +54,7 @@ proc draw3d_point uses cx si, vertex3d:word,vertex2d:word,camera:word,color:word
|
||||||
add si,4
|
add si,4
|
||||||
dec cx
|
dec cx
|
||||||
jnz .draw
|
jnz .draw
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;affiche liste vertex %0
|
;affiche liste vertex %0
|
||||||
|
@ -104,7 +104,7 @@ proc draw3d_line uses ax bx cx dx si di, type:word,faces:word,vertex3d:word,vert
|
||||||
add di,2
|
add di,2
|
||||||
dec cx
|
dec cx
|
||||||
jnz .draw
|
jnz .draw
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;affiche liste vertex %0
|
;affiche liste vertex %0
|
||||||
|
@ -202,7 +202,7 @@ proc draw3d_hidden uses ax bx cx dx si di, type:word,faces:word,vertex3d:word,ve
|
||||||
dec cx
|
dec cx
|
||||||
jnz .draw
|
jnz .draw
|
||||||
.endof:
|
.endof:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;creer table pour face caché %0
|
;creer table pour face caché %0
|
||||||
|
@ -279,7 +279,7 @@ proc draw3d_hidden_fill uses eax bx ecx edx si di, type:word,faces:word,vertex3d
|
||||||
.enofvalue:
|
.enofvalue:
|
||||||
dec cx
|
dec cx
|
||||||
jnz .calculvect
|
jnz .calculvect
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -416,7 +416,7 @@ proc load3ds uses eax bx cx si di ds es fs, seg:word,addt:word,objectname:word,v
|
||||||
;;jmp .reading
|
;;jmp .reading
|
||||||
.error1:
|
.error1:
|
||||||
.error2:
|
.error2:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
un dd 1.0
|
un dd 1.0
|
||||||
|
@ -450,7 +450,7 @@ proc translate uses eax ecx di es, mat:word,x:dword,y:dword,z:dword
|
||||||
mov [di+7*4],eax
|
mov [di+7*4],eax
|
||||||
mov eax,[z]
|
mov eax,[z]
|
||||||
mov [di+11*4],eax
|
mov [di+11*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice de translation pour une translation TX %1 dans MATRICE %0
|
;initialise une matrice de translation pour une translation TX %1 dans MATRICE %0
|
||||||
|
@ -479,7 +479,7 @@ proc translatex uses eax ecx di es, mat:word,value:dword
|
||||||
mov [di+11*4],eax
|
mov [di+11*4],eax
|
||||||
mov eax,[value]
|
mov eax,[value]
|
||||||
mov [di+3*4],eax
|
mov [di+3*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -509,7 +509,7 @@ proc translatey uses eax ecx di es, mat:word,value:dword
|
||||||
mov [di+11*4],eax
|
mov [di+11*4],eax
|
||||||
mov eax,[value]
|
mov eax,[value]
|
||||||
mov [di+7*4],eax
|
mov [di+7*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice de translation pour une translation TZ %1 dans MATRICE %0
|
;initialise une matrice de translation pour une translation TZ %1 dans MATRICE %0
|
||||||
|
@ -538,7 +538,7 @@ proc translatez uses eax ecx di es, mat:word,value:dword
|
||||||
mov [di+7*4],eax
|
mov [di+7*4],eax
|
||||||
mov eax,[value]
|
mov eax,[value]
|
||||||
mov [di+11*4],eax
|
mov [di+11*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice d'echelle %0 de facteur (x,y,z) %1-%3
|
;initialise une matrice d'echelle %0 de facteur (x,y,z) %1-%3
|
||||||
|
@ -564,7 +564,7 @@ proc scale uses eax ecx di es, mat:word,x:dword,y:dword,z:dword
|
||||||
mov [di+10*4],eax
|
mov [di+10*4],eax
|
||||||
mov eax,[cs:un]
|
mov eax,[cs:un]
|
||||||
mov [di+15*4],eax
|
mov [di+15*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice d'echelle %0 de facteur value %1
|
;initialise une matrice d'echelle %0 de facteur value %1
|
||||||
|
@ -588,7 +588,7 @@ proc rescale uses eax ecx di es, mat:word,value:dword
|
||||||
mov [di+10*4],eax
|
mov [di+10*4],eax
|
||||||
mov eax,[cs:un]
|
mov eax,[cs:un]
|
||||||
mov [di+15*4],eax
|
mov [di+15*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;copy une matrice %0 en %1
|
;copy une matrice %0 en %1
|
||||||
|
@ -601,7 +601,7 @@ proc copy uses ecx si di es, mat1:word,mat2:word
|
||||||
pop es
|
pop es
|
||||||
cld
|
cld
|
||||||
rep stosd
|
rep stosd
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice %0 avec la valeur %1
|
;initialise une matrice %0 avec la valeur %1
|
||||||
|
@ -614,7 +614,7 @@ proc fill uses eax ecx di es, mat:word,value:dword
|
||||||
pop es
|
pop es
|
||||||
cld
|
cld
|
||||||
rep stosd
|
rep stosd
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice d'identité %0
|
;initialise une matrice d'identité %0
|
||||||
|
@ -637,7 +637,7 @@ proc identity uses eax ecx di es, mat:word
|
||||||
mov [di+5*4],eax
|
mov [di+5*4],eax
|
||||||
mov [di+10*4],eax
|
mov [di+10*4],eax
|
||||||
mov [di+15*4],eax
|
mov [di+15*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -674,7 +674,7 @@ proc rotationx uses eax ecx di es, mat:word,value:dword
|
||||||
mov eax,[cs:un]
|
mov eax,[cs:un]
|
||||||
mov [di+0*4],eax
|
mov [di+0*4],eax
|
||||||
mov [di+15*4],eax
|
mov [di+15*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice de rotation BX autour de Y de %0 degrees
|
;initialise une matrice de rotation BX autour de Y de %0 degrees
|
||||||
|
@ -710,7 +710,7 @@ proc rotationy uses eax ecx di es, mat:word,value:dword
|
||||||
mov eax,[cs:un]
|
mov eax,[cs:un]
|
||||||
mov [di+5*4],eax
|
mov [di+5*4],eax
|
||||||
mov [di+15*4],eax
|
mov [di+15*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice de rotation %0 autour de Z de %1 degrees
|
;initialise une matrice de rotation %0 autour de Z de %1 degrees
|
||||||
|
@ -746,7 +746,7 @@ proc rotationz uses eax ecx di es, mat:word,value:dword
|
||||||
mov eax,[cs:un]
|
mov eax,[cs:un]
|
||||||
mov [di+10*4],eax
|
mov [di+10*4],eax
|
||||||
mov [di+15*4],eax
|
mov [di+15*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;initialise une matrice de rotation %0 autour de X,Y,Z de %0-%3 degrees
|
;initialise une matrice de rotation %0 autour de X,Y,Z de %0-%3 degrees
|
||||||
|
@ -805,7 +805,7 @@ proc rotation uses eax ecx di es, mat:word,anglex:dword,angley:dword,anglez:dwor
|
||||||
fstp dword [ di+2*4]
|
fstp dword [ di+2*4]
|
||||||
mov eax,[cs:un]
|
mov eax,[cs:un]
|
||||||
mov [di+15*4],eax
|
mov [di+15*4],eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -866,7 +866,7 @@ proc project uses bx cx si di, vertex2d:word,vertex3d:word,origin:word
|
||||||
add bx,.vertex2d.sizeof
|
add bx,.vertex2d.sizeof
|
||||||
dec cx
|
dec cx
|
||||||
jnz .boucle
|
jnz .boucle
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -966,7 +966,7 @@ proc transform uses cx si di, vertex3d:word,mat:word
|
||||||
add si,.vertex3dori.sizeof
|
add si,.vertex3dori.sizeof
|
||||||
dec cx
|
dec cx
|
||||||
jnz .boucle
|
jnz .boucle
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Multiplie la matrice de transformation %0 par celle en %1 et met les resultat en %2
|
;Multiplie la matrice de transformation %0 par celle en %1 et met les resultat en %2
|
||||||
|
@ -1211,5 +1211,5 @@ proc multiply uses bx si di, p1:word,p2:word,mat:word
|
||||||
fmul dword [ di+15*4]
|
fmul dword [ di+15*4]
|
||||||
;faddp st1
|
;faddp st1
|
||||||
fstp dword [ bx+15*4]
|
fstp dword [ bx+15*4]
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
|
@ -29,7 +29,7 @@ proc detectvmware uses eax ebx ecx edx
|
||||||
mov edx,5658h
|
mov edx,5658h
|
||||||
in ax,dx
|
in ax,dx
|
||||||
cmp ebx,564D5868h
|
cmp ebx,564D5868h
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;renvoie un pointer dx:ax vers la classe %0
|
;renvoie un pointer dx:ax vers la classe %0
|
||||||
|
@ -39,7 +39,7 @@ proc getpciclass uses di, class:word
|
||||||
shl di,1
|
shl di,1
|
||||||
mov ax,[cs:classes+di]
|
mov ax,[cs:classes+di]
|
||||||
mov dx,cs
|
mov dx,cs
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;renvoie un pointer dx:ax vers la sous-classe de %1 et de classe %0
|
;renvoie un pointer dx:ax vers la sous-classe de %1 et de classe %0
|
||||||
|
@ -60,7 +60,7 @@ proc getpcisubclass uses di, class:word,subclass:word
|
||||||
mov ax,[cs:di]
|
mov ax,[cs:di]
|
||||||
.found:
|
.found:
|
||||||
mov dx,cs
|
mov dx,cs
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
divers db 'divers',0
|
divers db 'divers',0
|
||||||
|
@ -327,10 +327,10 @@ end virtual
|
||||||
cmp bl,40h
|
cmp bl,40h
|
||||||
jbe .goinfos
|
jbe .goinfos
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.notexist:
|
.notexist:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;lit un octet du bus %0 device %1 function %2 nø %3 et le met en AL
|
;lit un octet du bus %0 device %1 function %2 nø %3 et le met en AL
|
||||||
|
@ -350,7 +350,7 @@ proc pcireadbyte uses bx dx, bus:word,device:word,function:word,pointer:word
|
||||||
and bl,3
|
and bl,3
|
||||||
or dl,bl
|
or dl,bl
|
||||||
in al,dx
|
in al,dx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;lit 2 octet du bus %0 device %1 function %2 nø %3 et le met en AX
|
;lit 2 octet du bus %0 device %1 function %2 nø %3 et le met en AX
|
||||||
|
@ -370,7 +370,7 @@ proc pcireadword uses bx dx, bus:word,device:word,function:word,pointer:word
|
||||||
and bl,3
|
and bl,3
|
||||||
or dl,bl
|
or dl,bl
|
||||||
in ax,dx
|
in ax,dx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;lit 4 octet du bus %0 device %1 function %2 nø %3 et le met en EAX
|
;lit 4 octet du bus %0 device %1 function %2 nø %3 et le met en EAX
|
||||||
|
@ -390,7 +390,7 @@ proc pcireaddword uses bx dx, bus:word,device:word,function:word,pointer:word
|
||||||
and bl,3
|
and bl,3
|
||||||
or dl,bl
|
or dl,bl
|
||||||
in eax,dx
|
in eax,dx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Prob avec str pci
|
;Prob avec str pci
|
||||||
|
@ -414,14 +414,14 @@ proc pciinfo uses ax bx cx edx edi, pointer:word
|
||||||
mov [.pciinf.types],al
|
mov [.pciinf.types],al
|
||||||
mov [.pciinf.maxbus],cl
|
mov [.pciinf.maxbus],cl
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.errorpci:
|
.errorpci:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
;retfourne en DS:%1 les set supporté du processeur par rapport a la struct %0
|
;retourne en DS:%1 les set supporté du processeur par rapport a la struct %0
|
||||||
proc setinfo uses bx si di, pointer:word,set:word
|
proc setinfo uses bx si di, pointer:word,set:word
|
||||||
mov di,[set]
|
mov di,[set]
|
||||||
virtual at 0
|
virtual at 0
|
||||||
|
@ -454,7 +454,7 @@ end virtual
|
||||||
jmp .set
|
jmp .set
|
||||||
.endofset:
|
.endofset:
|
||||||
mov byte [di],0
|
mov byte [di],0
|
||||||
retf
|
ret
|
||||||
|
|
||||||
.theset dw .mmx
|
.theset dw .mmx
|
||||||
dw .mmx2
|
dw .mmx2
|
||||||
|
@ -481,7 +481,7 @@ end virtual
|
||||||
|
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;retfourne en DS:%0 les capacités du processeur
|
;retourne en DS:%0 les capacités du processeur
|
||||||
proc cpuinfo uses eax ebx ecx edx si di ds es, pointer:word
|
proc cpuinfo uses eax ebx ecx edx si di ds es, pointer:word
|
||||||
push ds
|
push ds
|
||||||
pop es
|
pop es
|
||||||
|
@ -627,9 +627,9 @@ proc cpuinfo uses eax ebx ecx edx si di ds es, pointer:word
|
||||||
je .endofsearch
|
je .endofsearch
|
||||||
jmp .search
|
jmp .search
|
||||||
.endofsearch:
|
.endofsearch:
|
||||||
retf
|
ret
|
||||||
.nocpuidatall:
|
.nocpuidatall:
|
||||||
retf
|
ret
|
||||||
|
|
||||||
;tableau avec vendeur taille + chainereelle + pointeur famille + pointeur famille etendue
|
;tableau avec vendeur taille + chainereelle + pointeur famille + pointeur famille etendue
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ header exe 1,exports,0,0,0
|
||||||
waitkey:
|
waitkey:
|
||||||
mov ax,0
|
mov ax,0
|
||||||
int 16h
|
int 16h
|
||||||
retf
|
ret
|
||||||
|
|
||||||
exporting
|
exporting
|
||||||
declare waitkey
|
declare waitkey
|
||||||
|
|
|
@ -21,12 +21,12 @@ proc random uses dx
|
||||||
inc ax
|
inc ax
|
||||||
mov [cs:randseed],ax
|
mov [cs:randseed],ax
|
||||||
mov ax,dx
|
mov ax,dx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
proc randomize uses ax cx dx
|
proc randomize uses ax cx dx
|
||||||
mov ah,0
|
mov ah,0
|
||||||
int 1ah
|
int 1ah
|
||||||
mov [cs:randseed],dx
|
mov [cs:randseed],dx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
74
lib/str0.asm
74
lib/str0.asm
|
@ -126,7 +126,7 @@ proc checksyntax uses ax bx cx dx si di ds es, src:word,dest:word,delim:word
|
||||||
jne .itemer
|
jne .itemer
|
||||||
cld
|
cld
|
||||||
.ackno:
|
.ackno:
|
||||||
retf
|
ret
|
||||||
.notequalatall:
|
.notequalatall:
|
||||||
stc
|
stc
|
||||||
jmp .ackno
|
jmp .ackno
|
||||||
|
@ -151,7 +151,7 @@ proc cmpitems uses ax cx si di es, src:word,dest:word,item:word,delim:word
|
||||||
cld
|
cld
|
||||||
rep cmpsb
|
rep cmpsb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ proc gettypeditem uses bx cx si di, src:word,item:word,delim:word
|
||||||
stdcall gettyped,di
|
stdcall gettyped,di
|
||||||
xchg cl,[ds:si]
|
xchg cl,[ds:si]
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ proc gettyped uses si, src:word
|
||||||
stdcall strtoadress,si
|
stdcall strtoadress,si
|
||||||
.endofgettypeditem:
|
.endofgettypeditem:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Renvoie dans ax le type de la str0 point‚e par ds:%0 ‚l‚ment %1 delim %3
|
;Renvoie dans ax le type de la str0 point‚e par ds:%0 ‚l‚ment %1 delim %3
|
||||||
|
@ -225,7 +225,7 @@ proc whatisitem uses bx cx si di, src:word,item:word,delim:word
|
||||||
stdcall whatis,di
|
stdcall whatis,di
|
||||||
xchg cl,[ds:si]
|
xchg cl,[ds:si]
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Renvoie dans ax le type de la str0 point‚e par ds:%0
|
;Renvoie dans ax le type de la str0 point‚e par ds:%0
|
||||||
|
@ -304,7 +304,7 @@ proc whatis uses bx cx edx si, src:word
|
||||||
mov al,07h
|
mov al,07h
|
||||||
.endofwhat:
|
.endofwhat:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ proc strtoadress
|
||||||
;push
|
;push
|
||||||
stc
|
stc
|
||||||
;pop
|
;pop
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ proc strisadress
|
||||||
;push
|
;push
|
||||||
stc
|
stc
|
||||||
;pop
|
;pop
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Renvoie non carry si la str ds:%0 point‚e peut ˆtre un nom de fichier
|
;Renvoie non carry si la str ds:%0 point‚e peut ˆtre un nom de fichier
|
||||||
|
@ -347,7 +347,7 @@ proc strisname uses ax si di, src:word
|
||||||
.itsok:
|
.itsok:
|
||||||
clc
|
clc
|
||||||
.itsdead:
|
.itsdead:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
non db '/<>|"?*:\',01,0FFh
|
non db '/<>|"?*:\',01,0FFh
|
||||||
|
@ -381,7 +381,7 @@ proc strisbase uses ax cx si di es, src:word,base:word
|
||||||
.okbase:
|
.okbase:
|
||||||
clc
|
clc
|
||||||
.endbase:
|
.endbase:
|
||||||
retf
|
ret
|
||||||
.verifbase:
|
.verifbase:
|
||||||
cmp byte [si+1],0
|
cmp byte [si+1],0
|
||||||
je .okbase
|
je .okbase
|
||||||
|
@ -432,7 +432,7 @@ proc strtoint uses ebx ecx edx si edi es, src:word,base:word
|
||||||
.endbaseto:
|
.endbaseto:
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -448,7 +448,7 @@ proc left uses ax cx si di es, src:word,dest:word,nb:word
|
||||||
mov al,0
|
mov al,0
|
||||||
stosb
|
stosb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Renvoie en ds:%1 la partie de %2 caractŠres a partir de la droite de ds:%0
|
;Renvoie en ds:%1 la partie de %2 caractŠres a partir de la droite de ds:%0
|
||||||
|
@ -466,7 +466,7 @@ proc right uses ax cx si di es, src:word,dest:word,nb:word
|
||||||
mov al,0
|
mov al,0
|
||||||
stosb
|
stosb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Renvoie en ds:%1 la partie de %3 caractŠres a partir de la position %2 de ds:%0
|
;Renvoie en ds:%1 la partie de %3 caractŠres a partir de la position %2 de ds:%0
|
||||||
|
@ -482,7 +482,7 @@ proc middle uses ax cx si di es, src:word,dest:word,item:word,nb:word
|
||||||
mov al,0
|
mov al,0
|
||||||
stosb
|
stosb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Rempli de %3 caractŠres %2 a partir de la position %1 de ds:%0
|
;Rempli de %3 caractŠres %2 a partir de la position %1 de ds:%0
|
||||||
|
@ -496,7 +496,7 @@ proc fill uses ax cx si di es, src:word,item:word,char:word,nb:word
|
||||||
cld
|
cld
|
||||||
rep stosb
|
rep stosb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Remplace tout les caractŠres %1 de ds:%0 par des caractŠres %2
|
;Remplace tout les caractŠres %1 de ds:%0 par des caractŠres %2
|
||||||
|
@ -516,7 +516,7 @@ proc replaceallchar uses ax cx dx di es, src:word,char1:word,char2:word
|
||||||
jmp .findandchange
|
jmp .findandchange
|
||||||
.endofchange:
|
.endofchange:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Recherche un caractŠre dl dans la chaŒne ds:%0
|
;Recherche un caractŠre dl dans la chaŒne ds:%0
|
||||||
|
@ -531,7 +531,7 @@ proc searchchar uses cx di es, src:word,char:word
|
||||||
mov ax,di
|
mov ax,di
|
||||||
dec ax
|
dec ax
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Inverse la chaine point‚e en ds:%0
|
;Inverse la chaine point‚e en ds:%0
|
||||||
|
@ -556,7 +556,7 @@ proc invert uses ax cx si di, src:word
|
||||||
jmp .revert
|
jmp .revert
|
||||||
.finishinvert:
|
.finishinvert:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Compares 2 chaines de caractŠres DS:%0 et DS:%1 zerof si non equal
|
;Compares 2 chaines de caractŠres DS:%0 et DS:%1 zerof si non equal
|
||||||
|
@ -572,7 +572,7 @@ proc cmpstr uses cx dx si di, src:word,dest:word
|
||||||
jne .notequal
|
jne .notequal
|
||||||
repe cmpsb
|
repe cmpsb
|
||||||
.notequal:
|
.notequal:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Compares 2 chaines de caractŠres DS:%0 et DS:%1 zerof si non equal et renvoie le nb de caractŠre egaux dans ax
|
;Compares 2 chaines de caractŠres DS:%0 et DS:%1 zerof si non equal et renvoie le nb de caractŠre egaux dans ax
|
||||||
|
@ -589,13 +589,13 @@ proc evalue uses cx si di es, src:word,dest:word
|
||||||
sub ax,cx
|
sub ax,cx
|
||||||
popf
|
popf
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.noident:
|
.noident:
|
||||||
sub ax,cx
|
sub ax,cx
|
||||||
dec ax
|
dec ax
|
||||||
popf
|
popf
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Insert une chaine ds:%0 en ds:%1 a partir du caractŠre %2
|
;Insert une chaine ds:%0 en ds:%1 a partir du caractŠre %2
|
||||||
|
@ -620,7 +620,7 @@ proc insert uses ax cx si di es, src:word,dest:word,item:word
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -640,7 +640,7 @@ proc delete uses ax cx dx si di es, src:word,item:word,size:word
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Copie une chaine de ds:si en es:di
|
;Copie une chaine de ds:si en es:di
|
||||||
|
@ -654,7 +654,7 @@ proc copy uses ax cx si di, src:word,dest:word
|
||||||
mov al,0
|
mov al,0
|
||||||
stosb
|
stosb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -673,7 +673,7 @@ proc concat uses ax cx si di es, src:word,dest:word
|
||||||
mov al,0
|
mov al,0
|
||||||
stosb
|
stosb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -699,7 +699,7 @@ proc compressdelimiter uses cx dx si di es, src:word,delim:word
|
||||||
jne .compressitems
|
jne .compressitems
|
||||||
mov ax,dx
|
mov ax,dx
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Met le nombre d'‚l‚ments de ds:%0 à %1
|
;Met le nombre d'‚l‚ments de ds:%0 à %1
|
||||||
|
@ -732,7 +732,7 @@ proc setnbitems uses ax cx di es, src:word,size:word,delim:word
|
||||||
mov byte [di],0
|
mov byte [di],0
|
||||||
.noadjust:
|
.noadjust:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Renvoie la taille ax de l'‚l‚ment %0
|
;Renvoie la taille ax de l'‚l‚ment %0
|
||||||
|
@ -745,7 +745,7 @@ proc getitemsize uses cx dx, src:word,item:word,delim:word
|
||||||
sub ax,dx
|
sub ax,dx
|
||||||
dec ax
|
dec ax
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Renvoie en ds:%1 l'‚l‚ment %2 de ds:%0
|
;Renvoie en ds:%1 l'‚l‚ment %2 de ds:%0
|
||||||
|
@ -762,7 +762,7 @@ proc getitem uses ax cx si di es, src:word,dest:word,item:word,delim:word
|
||||||
mov al,0
|
mov al,0
|
||||||
stosb
|
stosb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;renvoi un pointeur ax sur l'‚l‚ment %1 de ds:%0
|
;renvoi un pointeur ax sur l'‚l‚ment %1 de ds:%0
|
||||||
|
@ -790,7 +790,7 @@ proc getpointeritem uses cx dx di es, src:word,item:word,delim:word
|
||||||
.finishpointer:
|
.finishpointer:
|
||||||
mov ax,di
|
mov ax,di
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Renvoie le nombre d'‚l‚ments ax de ds:%0
|
;Renvoie le nombre d'‚l‚ments ax de ds:%0
|
||||||
|
@ -810,7 +810,7 @@ proc getnbitems uses cx dx di es, src:word,delim:word
|
||||||
jne .countitems
|
jne .countitems
|
||||||
mov ax,dx
|
mov ax,dx
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;renvoie la taille en octets AX de la chaine point‚e en ds:%0
|
;renvoie la taille en octets AX de la chaine point‚e en ds:%0
|
||||||
|
@ -827,7 +827,7 @@ proc getlength uses cx di es, src:word
|
||||||
dec cx
|
dec cx
|
||||||
mov ax,cx
|
mov ax,cx
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Met la taille en octets de la chaine point‚e ds:%0 a %1
|
;Met la taille en octets de la chaine point‚e ds:%0 a %1
|
||||||
|
@ -836,7 +836,7 @@ proc setlength uses si, src:word,size:word
|
||||||
add si,[size]
|
add si,[size]
|
||||||
mov byte [si],0
|
mov byte [si],0
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;met en majuscule la chaine ds:%0
|
;met en majuscule la chaine ds:%0
|
||||||
|
@ -855,7 +855,7 @@ proc uppercase uses ax si, src:word
|
||||||
jmp .uppercase
|
jmp .uppercase
|
||||||
.enduppercase:
|
.enduppercase:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;met en majuscule la premiŠre lettre chaine ds:%0
|
;met en majuscule la premiŠre lettre chaine ds:%0
|
||||||
|
@ -869,7 +869,7 @@ proc onecase uses ax si, src:word
|
||||||
sub byte [si],'a'-'A'
|
sub byte [si],'a'-'A'
|
||||||
.oneenduppercase:
|
.oneenduppercase:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;met en minuscule la chaine ds:%0
|
;met en minuscule la chaine ds:%0
|
||||||
|
@ -888,7 +888,7 @@ proc lowercase uses ax si, src:word
|
||||||
jmp .lowercase
|
jmp .lowercase
|
||||||
.endlowercase:
|
.endlowercase:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Inverse la casse la chaine ds:%0
|
;Inverse la casse la chaine ds:%0
|
||||||
|
@ -914,6 +914,6 @@ proc invertcase uses ax si, src:word
|
||||||
jmp .invertcase
|
jmp .invertcase
|
||||||
.endinvertcase:
|
.endinvertcase:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
|
@ -407,7 +407,7 @@ proc print pointer:word
|
||||||
mov bp,di
|
mov bp,di
|
||||||
pop di si cx bx ax
|
pop di si cx bx ax
|
||||||
mov sp,bp
|
mov sp,bp
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ proc showdate uses edx, dates:word
|
||||||
and dx,11111111b
|
and dx,11111111b
|
||||||
add dx,1956
|
add dx,1956
|
||||||
stdcall showintl,2,edx
|
stdcall showintl,2,edx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;================SHOWTIME==============
|
;================SHOWTIME==============
|
||||||
|
@ -456,7 +456,7 @@ proc showtime uses edx, times:word
|
||||||
and dx,11111b
|
and dx,11111b
|
||||||
shl dx,1
|
shl dx,1
|
||||||
stdcall showintl,2,edx
|
stdcall showintl,2,edx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;================SHOWNAME==============
|
;================SHOWNAME==============
|
||||||
|
@ -477,7 +477,7 @@ proc showname uses cx si, thename:word
|
||||||
.suiteaname:
|
.suiteaname:
|
||||||
cmp cx,8+3
|
cmp cx,8+3
|
||||||
jb .showthename
|
jb .showthename
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;================SHOWATTR==============
|
;================SHOWATTR==============
|
||||||
|
@ -531,7 +531,7 @@ proc showattr, attr:word
|
||||||
push '-'
|
push '-'
|
||||||
.directory:
|
.directory:
|
||||||
invoke showchars
|
invoke showchars
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;================SHOWSIZE==============
|
;================SHOWSIZE==============
|
||||||
|
@ -567,7 +567,7 @@ proc showsize uses edx ds, thesize:dword
|
||||||
stdcall showintr,4,edx
|
stdcall showintr,4,edx
|
||||||
stdcall showstring0,unitgiga
|
stdcall showstring0,unitgiga
|
||||||
.finsize:
|
.finsize:
|
||||||
retf
|
ret
|
||||||
|
|
||||||
unit db ' o ',0
|
unit db ' o ',0
|
||||||
unitkilo db ' ko',0
|
unitkilo db ' ko',0
|
||||||
|
@ -583,7 +583,7 @@ endp
|
||||||
proc showspace
|
proc showspace
|
||||||
invoke showchars,' ',0FFFFh
|
invoke showchars,' ',0FFFFh
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -614,7 +614,7 @@ local showbuffer[50]:BYTE
|
||||||
invoke showchars,cx,0FFFFh
|
invoke showchars,cx,0FFFFh
|
||||||
dec ax
|
dec ax
|
||||||
jnz .showinteger
|
jnz .showinteger
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWINTL===========
|
;==========SHOWINTL===========
|
||||||
|
@ -658,7 +658,7 @@ local showbuffer[50]:BYTE
|
||||||
invoke showchars,cx,0FFFFh
|
invoke showchars,cx,0FFFFh
|
||||||
dec ax
|
dec ax
|
||||||
jnz .showinteger
|
jnz .showinteger
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWINTR===========
|
;==========SHOWINTR===========
|
||||||
|
@ -702,7 +702,7 @@ local showbuffer[50]:BYTE
|
||||||
invoke showchars,cx,0FFFFh
|
invoke showchars,cx,0FFFFh
|
||||||
dec ax
|
dec ax
|
||||||
jnz .showinteger
|
jnz .showinteger
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWSIGNED===========
|
;==========SHOWSIGNED===========
|
||||||
|
@ -738,7 +738,7 @@ proc showsigned uses ebx cx edx, sizeofint:word,integer:dword
|
||||||
invoke showchars,'-',0FFFFh
|
invoke showchars,'-',0FFFFh
|
||||||
.notsigned:
|
.notsigned:
|
||||||
stdcall showint,edx
|
stdcall showint,edx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWHEX===========
|
;==========SHOWHEX===========
|
||||||
|
@ -762,7 +762,7 @@ proc showhex uses ax bx cx edx, sizeofint:word,integer:dword
|
||||||
invoke showchars,cx,0FFFFh
|
invoke showchars,cx,0FFFFh
|
||||||
dec al
|
dec al
|
||||||
jnz .Hexaize
|
jnz .Hexaize
|
||||||
retf
|
ret
|
||||||
|
|
||||||
Tab db '0123456789ABCDEF'
|
Tab db '0123456789ABCDEF'
|
||||||
endp
|
endp
|
||||||
|
@ -786,7 +786,7 @@ proc showbin uses ax cx edx, sizeofint:word,integer:dword
|
||||||
invoke showchars,cx,0FFFFh
|
invoke showchars,cx,0FFFFh
|
||||||
dec al
|
dec al
|
||||||
jnz .binaize
|
jnz .binaize
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWBCD===========
|
;==========SHOWBCD===========
|
||||||
|
@ -810,7 +810,7 @@ proc showbcd uses ax cx edx, sizeofint:word,integer:dword
|
||||||
invoke showchars,cx,0FFFFh
|
invoke showchars,cx,0FFFFh
|
||||||
dec al
|
dec al
|
||||||
jnz .BCDaize
|
jnz .BCDaize
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWSTRING===========
|
;==========SHOWSTRING===========
|
||||||
|
@ -826,7 +826,7 @@ proc showstring uses bx si, pointer:word
|
||||||
invoke showchars,word [si],0FFFFh
|
invoke showchars,word [si],0FFFFh
|
||||||
dec bl
|
dec bl
|
||||||
jnz .strinaize
|
jnz .strinaize
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========showchars===========
|
;==========showchars===========
|
||||||
|
@ -836,7 +836,7 @@ endp
|
||||||
;===============================
|
;===============================
|
||||||
proc showchar, pointer:word
|
proc showchar, pointer:word
|
||||||
invoke showchars,[pointer],0FFFFh
|
invoke showchars,[pointer],0FFFFh
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWSTRING0===========
|
;==========SHOWSTRING0===========
|
||||||
|
@ -854,6 +854,6 @@ proc showstring0 uses cx si, pointer:word
|
||||||
inc si
|
inc si
|
||||||
jmp .strinaize0
|
jmp .strinaize0
|
||||||
.no0:
|
.no0:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
|
@ -100,10 +100,10 @@ endfat:
|
||||||
cmp ax,0FF0h
|
cmp ax,0FF0h
|
||||||
jbe nocarry
|
jbe nocarry
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
nocarry:
|
nocarry:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;============loadfile===============
|
;============loadfile===============
|
||||||
|
@ -137,11 +137,11 @@ local temp[48]:WORD
|
||||||
stdcall loadway,cx,eax,[pointer]
|
stdcall loadway,cx,eax,[pointer]
|
||||||
jc errorload
|
jc errorload
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
errorload:
|
errorload:
|
||||||
stc
|
stc
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;============execfile (Fonction 18)===============
|
;============execfile (Fonction 18)===============
|
||||||
|
@ -194,14 +194,14 @@ proc execfile, file:word
|
||||||
pop gs fs es ds
|
pop gs fs es ds
|
||||||
popad
|
popad
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.reallyerror:
|
.reallyerror:
|
||||||
invoke mbfree,ax
|
invoke mbfree,ax
|
||||||
.reallyerrornoblock:
|
.reallyerrornoblock:
|
||||||
pop gs fs es ds
|
pop gs fs es ds
|
||||||
popad
|
popad
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;============projfile (Fonction 17)===============
|
;============projfile (Fonction 17)===============
|
||||||
|
@ -252,11 +252,11 @@ popad
|
||||||
jc .errorload
|
jc .errorload
|
||||||
.notace:
|
.notace:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.errorload:
|
.errorload:
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -290,13 +290,13 @@ proc searchfile uses bx cx si di ds es, pointer:word
|
||||||
jc .nextsearch
|
jc .nextsearch
|
||||||
.okfound:
|
.okfound:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.notgood:
|
.notgood:
|
||||||
cmp si,0FF5h
|
cmp si,0FF5h
|
||||||
retf
|
ret
|
||||||
.errorsearch:
|
.errorsearch:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Transforme la chaine ds:%0 en maj
|
;Transforme la chaine ds:%0 en maj
|
||||||
|
@ -317,7 +317,7 @@ proc uppercase uses si ax, strs:word
|
||||||
jmp .uppercaser
|
jmp .uppercaser
|
||||||
.enduppercase:
|
.enduppercase:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;Compare le nom ds:%0 '.' avec ds:%1
|
;Compare le nom ds:%0 '.' avec ds:%1
|
||||||
|
@ -363,10 +363,10 @@ proc cmpnames uses ax cx si di es, off1:word,off2:word
|
||||||
jne .notequal
|
jne .notequal
|
||||||
.itok:
|
.itok:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.notequal:
|
.notequal:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
.trynoext:
|
.trynoext:
|
||||||
cmp byte [si-1],0
|
cmp byte [si-1],0
|
||||||
jne .notequal
|
jne .notequal
|
||||||
|
@ -409,10 +409,10 @@ proc loadway uses eax bx cx dx si di ds es, sector:word,size:dword,offset:word
|
||||||
rep movsb
|
rep movsb
|
||||||
.zeroload:
|
.zeroload:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.noway:
|
.noway:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============INITDRIVE===============
|
;=============INITDRIVE===============
|
||||||
|
@ -527,10 +527,10 @@ proc initdrive uses eax bx cx edx si di ds es
|
||||||
dec dx
|
dec dx
|
||||||
jnz .seefat
|
jnz .seefat
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.errorinit:
|
.errorinit:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
datafat db '/fat',0
|
datafat db '/fat',0
|
||||||
|
@ -554,7 +554,7 @@ proc findfirstfile uses cx si, pointer:word
|
||||||
mov [.find.entryplace],cx
|
mov [.find.entryplace],cx
|
||||||
mov [.find.firstsearch],1
|
mov [.find.firstsearch],1
|
||||||
stdcall findnextfile,[pointer]
|
stdcall findnextfile,[pointer]
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============FindnextFile==============
|
;=============FindnextFile==============
|
||||||
|
@ -633,10 +633,10 @@ proc findnextfile uses ax bx cx di si ds es, pointer:word
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.notwell:
|
.notwell:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============GetFreeSpace===============
|
;=============GetFreeSpace===============
|
||||||
|
@ -651,7 +651,7 @@ proc getfreespace uses eax bx
|
||||||
shl edx,16
|
shl edx,16
|
||||||
add edx,eax
|
add edx,eax
|
||||||
pop eax
|
pop eax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;ax=défectueux bx=libre
|
;ax=défectueux bx=libre
|
||||||
|
@ -705,10 +705,10 @@ proc readcluster uses ax bx dx si, sector:word,pointer:word
|
||||||
dec bx
|
dec bx
|
||||||
jnz .readsectors
|
jnz .readsectors
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.errorreadincluster:
|
.errorreadincluster:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============WRITECLUSTER===============
|
;=============WRITECLUSTER===============
|
||||||
|
@ -731,10 +731,10 @@ proc writecluster uses ax bx dx si, sector:word,pointer:word
|
||||||
dec bx
|
dec bx
|
||||||
jnz .writesectors
|
jnz .writesectors
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.errorwriteincluster:
|
.errorwriteincluster:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -816,7 +816,7 @@ proc readsector uses ax bx cx dx si di ds es, sector:word,pointer:word
|
||||||
mov word [bx+buffer.chain],0FFFEh
|
mov word [bx+buffer.chain],0FFFEh
|
||||||
.error:
|
.error:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
.preprepcopy:
|
.preprepcopy:
|
||||||
mov [tempsec],cx
|
mov [tempsec],cx
|
||||||
.prepcopy:
|
.prepcopy:
|
||||||
|
@ -838,7 +838,7 @@ proc readsector uses ax bx cx dx si di ds es, sector:word,pointer:word
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
.done:
|
.done:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============SETBUFFER============
|
;=============SETBUFFER============
|
||||||
|
@ -871,10 +871,10 @@ proc setbuffer uses ax cx di ds es, size:word
|
||||||
cld
|
cld
|
||||||
rep stosw
|
rep stosw
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.errorinit:
|
.errorinit:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============GETBUFFER============
|
;=============GETBUFFER============
|
||||||
|
@ -893,7 +893,7 @@ proc getbuffer uses ax cx di ds es, pointer:word
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============WRITESECTOR============
|
;=============WRITESECTOR============
|
||||||
|
@ -926,7 +926,7 @@ proc writesector uses ax bx cx dx si es, sector:word,pointer:word
|
||||||
dec si
|
dec si
|
||||||
jnz .tryagain
|
jnz .tryagain
|
||||||
.done:
|
.done:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============Getname==============
|
;=============Getname==============
|
||||||
|
@ -948,7 +948,7 @@ proc getname uses ax cx si di ds es, pointer:word
|
||||||
mov cx,11
|
mov cx,11
|
||||||
repne scasb
|
repne scasb
|
||||||
mov byte [es:di],0
|
mov byte [es:di],0
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
;=============Getserial==============
|
;=============Getserial==============
|
||||||
;Renvoie le numéro de serie en EAX
|
;Renvoie le numéro de serie en EAX
|
||||||
|
@ -957,7 +957,7 @@ endp
|
||||||
;====================================
|
;====================================
|
||||||
proc getserial FAR
|
proc getserial FAR
|
||||||
mov eax,[cs:myboot.serialnumber]
|
mov eax,[cs:myboot.serialnumber]
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============VERIFYSECTOR==============
|
;=============VERIFYSECTOR==============
|
||||||
|
@ -994,7 +994,7 @@ proc verifysector uses ecx si di ds es, sector:word
|
||||||
cld
|
cld
|
||||||
rep cmpsd
|
rep cmpsd
|
||||||
.errorverify:
|
.errorverify:
|
||||||
retf
|
ret
|
||||||
|
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
@ -1008,7 +1008,7 @@ invert:
|
||||||
cmp cx,[cs:myboot.sectorsize]
|
cmp cx,[cs:myboot.sectorsize]
|
||||||
jb invert
|
jb invert
|
||||||
pop cx si
|
pop cx si
|
||||||
retf
|
ret
|
||||||
|
|
||||||
;=============DecompressRle (Fonction 05H)==============
|
;=============DecompressRle (Fonction 05H)==============
|
||||||
;decompress ds:si en es:di taille bp d‚compress‚ cx compress‚
|
;decompress ds:si en es:di taille bp d‚compress‚ cx compress‚
|
||||||
|
@ -1054,7 +1054,7 @@ proc decompressrle uses ecx dx si di ds es,seg1:word,off1:word,seg2:word,off2:wo
|
||||||
mov ax,di
|
mov ax,di
|
||||||
sub ax,[off2]
|
sub ax,[off2]
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============CompressRle (Fonction 06H)==============
|
;=============CompressRle (Fonction 06H)==============
|
||||||
|
@ -1108,7 +1108,7 @@ proc compressrle uses ax bx cx dx si di ds es, seg1:word,off1:word,seg2:word,off
|
||||||
mov ax,si
|
mov ax,si
|
||||||
sub ax,[off2]
|
sub ax,[off2]
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============Changedir (Fonction 13)==============
|
;=============Changedir (Fonction 13)==============
|
||||||
|
@ -1192,10 +1192,10 @@ local temp[64]:WORD
|
||||||
rep movsb
|
rep movsb
|
||||||
.theend:
|
.theend:
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.noch:
|
.noch:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============getdir==============
|
;=============getdir==============
|
||||||
|
@ -1222,7 +1222,7 @@ proc getdir uses ax cx si di ds es, pointer:word
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
bufferread db 512 dup (0)
|
bufferread db 512 dup (0)
|
||||||
|
|
|
@ -223,7 +223,7 @@ proc mbcreate uses bx cx dx si di ds es, blocks:word, size:word
|
||||||
dec dx
|
dec dx
|
||||||
dec dx
|
dec dx
|
||||||
mov gs,dx
|
mov gs,dx
|
||||||
cmp word [gs:0x0],'HN'
|
cmp word [gs:0x0],"NH"
|
||||||
je .oktoset
|
je .oktoset
|
||||||
mov ax,memorystart
|
mov ax,memorystart
|
||||||
.oktoset:
|
.oktoset:
|
||||||
|
@ -239,7 +239,7 @@ proc mbcreate uses bx cx dx si di ds es, blocks:word, size:word
|
||||||
cmp dl,false
|
cmp dl,false
|
||||||
je .notenougtmem
|
je .notenougtmem
|
||||||
mov es,bx
|
mov es,bx
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
cmp [es:mb.isnotlast],true
|
cmp [es:mb.isnotlast],true
|
||||||
sete dl
|
sete dl
|
||||||
|
@ -248,7 +248,7 @@ proc mbcreate uses bx cx dx si di ds es, blocks:word, size:word
|
||||||
mov ax,[es:mb.sizes]
|
mov ax,[es:mb.sizes]
|
||||||
cmp cx,ax
|
cmp cx,ax
|
||||||
ja .notsogood
|
ja .notsogood
|
||||||
mov word [es:mb.check],"HN"
|
mov word [es:mb.check],"NH"
|
||||||
mov [es:mb.isnotlast],true
|
mov [es:mb.isnotlast],true
|
||||||
mov [es:mb.reference],gs
|
mov [es:mb.reference],gs
|
||||||
mov [es:mb.isresident],false
|
mov [es:mb.isresident],false
|
||||||
|
@ -305,7 +305,7 @@ proc mbfree uses ax bx cx si di ds es, blocks:word
|
||||||
dec bx
|
dec bx
|
||||||
dec bx
|
dec bx
|
||||||
mov es,bx
|
mov es,bx
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
cmp [es:mb.reference],free
|
cmp [es:mb.reference],free
|
||||||
je .wasfree
|
je .wasfree
|
||||||
|
@ -324,7 +324,7 @@ proc mbfree uses ax bx cx si di ds es, blocks:word
|
||||||
dec bx
|
dec bx
|
||||||
.searchtofree:
|
.searchtofree:
|
||||||
mov es,bx
|
mov es,bx
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
inc bx
|
inc bx
|
||||||
inc bx
|
inc bx
|
||||||
|
@ -367,7 +367,7 @@ proc mbclean uses ax bx dx es gs
|
||||||
xor dx,dx
|
xor dx,dx
|
||||||
.searchfree:
|
.searchfree:
|
||||||
mov gs,bx
|
mov gs,bx
|
||||||
cmp word [gs:mb.check],"HN"
|
cmp word [gs:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
inc bx
|
inc bx
|
||||||
inc bx
|
inc bx
|
||||||
|
@ -419,7 +419,7 @@ proc mbresident uses bx es, blocks:word
|
||||||
dec bx
|
dec bx
|
||||||
dec bx
|
dec bx
|
||||||
mov es,bx
|
mov es,bx
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
mov [es:mb.isresident],true
|
mov [es:mb.isresident],true
|
||||||
ret
|
ret
|
||||||
|
@ -434,7 +434,7 @@ proc mbnonresident uses bx es, blocks:word
|
||||||
dec bx
|
dec bx
|
||||||
dec bx
|
dec bx
|
||||||
mov es,bx
|
mov es,bx
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
mov [es:mb.isresident],false
|
mov [es:mb.isresident],false
|
||||||
ret
|
ret
|
||||||
|
@ -450,7 +450,7 @@ proc mbchown uses bx dx es,blocks:word, owner:word
|
||||||
dec bx
|
dec bx
|
||||||
dec bx
|
dec bx
|
||||||
mov es,bx
|
mov es,bx
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
cmp [es:mb.reference],free
|
cmp [es:mb.reference],free
|
||||||
je .wasfree
|
je .wasfree
|
||||||
|
@ -484,7 +484,7 @@ proc mbget uses bx dx es, num:word
|
||||||
xor dx,dx
|
xor dx,dx
|
||||||
.searchfree:
|
.searchfree:
|
||||||
mov es,bx
|
mov es,bx
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
inc bx
|
inc bx
|
||||||
inc bx
|
inc bx
|
||||||
|
@ -520,7 +520,7 @@ proc mbfind uses bx si di es, blocks:word
|
||||||
.search:
|
.search:
|
||||||
mov es,bx
|
mov es,bx
|
||||||
lea di,[es:mb.names]
|
lea di,[es:mb.names]
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
inc bx
|
inc bx
|
||||||
inc bx
|
inc bx
|
||||||
|
@ -567,7 +567,7 @@ proc mbfindsb uses bx dx si di es, blocks:word, owner:word
|
||||||
mov dx,[owner]
|
mov dx,[owner]
|
||||||
.search:
|
.search:
|
||||||
mov es,bx
|
mov es,bx
|
||||||
cmp word [es:mb.check],"HN"
|
cmp word [es:mb.check],"NH"
|
||||||
jne .memoryerror
|
jne .memoryerror
|
||||||
inc bx
|
inc bx
|
||||||
inc bx
|
inc bx
|
||||||
|
|
|
@ -12,7 +12,7 @@ memorystart equ 0052h ;premier bloc de la m
|
||||||
org 0h
|
org 0h
|
||||||
|
|
||||||
mb0:
|
mb0:
|
||||||
header exe 1,0,imports,allsection,start
|
header exe 1,exports,imports,allsection,start
|
||||||
|
|
||||||
start:
|
start:
|
||||||
push cs
|
push cs
|
||||||
|
|
120
noyau/video.asm
120
noyau/video.asm
|
@ -33,8 +33,8 @@ declare restorescreen
|
||||||
declare page2to1
|
declare page2to1
|
||||||
declare page1to2
|
declare page1to2
|
||||||
declare xchgpages
|
declare xchgpages
|
||||||
declare waithretfrace
|
declare waithretrace
|
||||||
declare waitretfrace
|
declare waitretrace
|
||||||
declare getvideoinfos
|
declare getvideoinfos
|
||||||
declare savedac
|
declare savedac
|
||||||
declare restoredac
|
declare restoredac
|
||||||
|
@ -199,7 +199,7 @@ planesize equ 65000
|
||||||
;=====================================
|
;=====================================
|
||||||
proc enablescroll
|
proc enablescroll
|
||||||
mov [cs:datablock.scrolling],1
|
mov [cs:datablock.scrolling],1
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============DISABLESCROLLING=========
|
;=============DISABLESCROLLING=========
|
||||||
|
@ -209,7 +209,7 @@ endp
|
||||||
;======================================
|
;======================================
|
||||||
proc disablescroll
|
proc disablescroll
|
||||||
mov [cs:datablock.scrolling],0
|
mov [cs:datablock.scrolling],0
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============ENABLECURSOR=============
|
;=============ENABLECURSOR=============
|
||||||
|
@ -234,7 +234,7 @@ proc enablecursor uses ax dx
|
||||||
mov dl,[cs:datablock.y]
|
mov dl,[cs:datablock.y]
|
||||||
xor dh,dh
|
xor dh,dh
|
||||||
stdcall setxy,ax,dx
|
stdcall setxy,ax,dx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============DISABLECURSOR=============
|
;=============DISABLECURSOR=============
|
||||||
|
@ -254,7 +254,7 @@ proc disablecursor uses ax dx
|
||||||
dec dx
|
dec dx
|
||||||
mov al,0Ah
|
mov al,0Ah
|
||||||
out dx,ax
|
out dx,ax
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SETSTYLE=========
|
;==========SETSTYLE=========
|
||||||
|
@ -265,7 +265,7 @@ endp
|
||||||
proc setstyle uses cx, style:word
|
proc setstyle uses cx, style:word
|
||||||
mov ax,[style]
|
mov ax,[style]
|
||||||
mov [cs:datablock.style],al
|
mov [cs:datablock.style],al
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========GETSTYLE=========
|
;==========GETSTYLE=========
|
||||||
|
@ -276,7 +276,7 @@ endp
|
||||||
proc getstyle
|
proc getstyle
|
||||||
mov al,[cs:datablock.style]
|
mov al,[cs:datablock.style]
|
||||||
xor ah,ah
|
xor ah,ah
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============SetVideoMode=========
|
;=============SetVideoMode=========
|
||||||
|
@ -402,9 +402,9 @@ proc setvideomode uses ax cx dx di, modenum:word
|
||||||
mov [cs:datablock.base],ax
|
mov [cs:datablock.base],ax
|
||||||
mov [cs:datablock.cursor],1
|
mov [cs:datablock.cursor],1
|
||||||
mov [cs:datablock.style],0
|
mov [cs:datablock.style],0
|
||||||
retf
|
ret
|
||||||
.errorsetvideomode:
|
.errorsetvideomode:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -416,7 +416,7 @@ initfont:
|
||||||
stdcall loadfont,font8x8,8,1
|
stdcall loadfont,font8x8,8,1
|
||||||
stdcall loadfont,font8x16,16,0
|
stdcall loadfont,font8x16,16,0
|
||||||
pop ds
|
pop ds
|
||||||
retf
|
ret
|
||||||
|
|
||||||
;=============GetVideoMode=========
|
;=============GetVideoMode=========
|
||||||
;Renvoie le mode vidéo courant dans AX
|
;Renvoie le mode vidéo courant dans AX
|
||||||
|
@ -426,7 +426,7 @@ initfont:
|
||||||
proc getvideomode
|
proc getvideomode
|
||||||
mov al,[cs:datablock.modenum]
|
mov al,[cs:datablock.modenum]
|
||||||
xor ah,ah
|
xor ah,ah
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============CLEARSCREEN=========
|
;=============CLEARSCREEN=========
|
||||||
|
@ -474,7 +474,7 @@ proc clearscreen uses eax cx dx di es
|
||||||
rep stosd
|
rep stosd
|
||||||
.endoferase:
|
.endoferase:
|
||||||
stdcall setxy,0,0
|
stdcall setxy,0,0
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -497,9 +497,9 @@ proc setfont uses ax cx dx, font:word
|
||||||
mov dx,sequencer
|
mov dx,sequencer
|
||||||
mov al,3
|
mov al,3
|
||||||
out dx,ax
|
out dx,ax
|
||||||
retf
|
ret
|
||||||
.errorsetfont:
|
.errorsetfont:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;=============GetFont=========
|
;=============GetFont=========
|
||||||
|
@ -510,7 +510,7 @@ endp
|
||||||
proc getfont
|
proc getfont
|
||||||
mov al,[cs:datablock.font]
|
mov al,[cs:datablock.font]
|
||||||
xor ah,ah
|
xor ah,ah
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;!!!!!!!!!!!!!!!!!!!! a remettre les anciens params de timing depuis origine
|
;!!!!!!!!!!!!!!!!!!!! a remettre les anciens params de timing depuis origine
|
||||||
|
@ -590,10 +590,10 @@ proc loadfont uses ax bx cx dx si di es, pointer:word, size:word, font:word
|
||||||
inc di
|
inc di
|
||||||
cmp di,6+6
|
cmp di,6+6
|
||||||
jbe .doseqs2
|
jbe .doseqs2
|
||||||
retf
|
ret
|
||||||
.errorloadfont:
|
.errorloadfont:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
|
|
||||||
reg2 dw 0100h, 0302h, 0304h, 0300h
|
reg2 dw 0100h, 0302h, 0304h, 0300h
|
||||||
dw 0004h, 1005h, 0E06h
|
dw 0004h, 1005h, 0E06h
|
||||||
|
@ -602,7 +602,7 @@ reg1 dw 0100h, 0402h, 0704h, 0300h
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWLINE===============
|
;==========SHOWLINE===============
|
||||||
;remet le curseur text a la ligne avec un retfour chariot
|
;remet le curseur text a la ligne avec un retour chariot
|
||||||
;->
|
;->
|
||||||
;<-
|
;<-
|
||||||
;=================================
|
;=================================
|
||||||
|
@ -623,7 +623,7 @@ proc addline uses bx cx
|
||||||
.scro:
|
.scro:
|
||||||
inc bl
|
inc bl
|
||||||
stdcall setxy,0,bx
|
stdcall setxy,0,bx
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SETCOLOR=========
|
;==========SETCOLOR=========
|
||||||
|
@ -634,7 +634,7 @@ endp
|
||||||
proc setcolor, color:word
|
proc setcolor, color:word
|
||||||
mov cx,[color]
|
mov cx,[color]
|
||||||
mov [cs:datablock.colors],cl
|
mov [cs:datablock.colors],cl
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========GETCOLOR=========
|
;==========GETCOLOR=========
|
||||||
|
@ -645,7 +645,7 @@ endp
|
||||||
proc getcolor
|
proc getcolor
|
||||||
mov al,[cs:datablock.colors]
|
mov al,[cs:datablock.colors]
|
||||||
xor ah,ah
|
xor ah,ah
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SCROLLDOWN=========
|
;==========SCROLLDOWN=========
|
||||||
|
@ -693,7 +693,7 @@ proc scrolldown uses ax cx dx si di ds es, line:word
|
||||||
mov ds,ax
|
mov ds,ax
|
||||||
rep movsb
|
rep movsb
|
||||||
.graphp:
|
.graphp:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========GETXY=========
|
;==========GETXY=========
|
||||||
|
@ -704,7 +704,7 @@ endp
|
||||||
proc getxy uses bx
|
proc getxy uses bx
|
||||||
mov ah,[cs:datablock.x]
|
mov ah,[cs:datablock.x]
|
||||||
mov al,[cs:datablock.y]
|
mov al,[cs:datablock.y]
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SETXY=========
|
;==========SETXY=========
|
||||||
|
@ -724,7 +724,7 @@ proc setxy uses ax bx dx di, x:word ,y: word
|
||||||
shl di,1
|
shl di,1
|
||||||
mov [cs:datablock.xy],di
|
mov [cs:datablock.xy],di
|
||||||
call setcursor
|
call setcursor
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWPIXEL=========
|
;==========SHOWPIXEL=========
|
||||||
|
@ -784,7 +784,7 @@ proc showpixel uses ax bx cx dx si di es, x:word,y:word,color:word
|
||||||
mov al,[es:di]
|
mov al,[es:di]
|
||||||
mov [es:di],ch
|
mov [es:di],ch
|
||||||
.endofshow:
|
.endofshow:
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;!!!!!!!!!!!!!! gerer le mode chain 4
|
;!!!!!!!!!!!!!! gerer le mode chain 4
|
||||||
|
@ -811,7 +811,7 @@ proc getpixel uses ax bx cx dx di es, x:word,y:word
|
||||||
mov bx,0A000h
|
mov bx,0A000h
|
||||||
mov es,bx
|
mov es,bx
|
||||||
mov al,[es:di]
|
mov al,[es:di]
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========GETVGAINFO=========
|
;==========GETVGAINFO=========
|
||||||
|
@ -827,35 +827,35 @@ proc getvideoinfos uses cx si di ds, pointer:word
|
||||||
mov di,[pointer]
|
mov di,[pointer]
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========WAITretfRACE=========
|
;==========WAITretRACE=========
|
||||||
;Synchronisation avec la retfrace verticale
|
;Synchronisation avec la retrace verticale
|
||||||
;<-
|
;<-
|
||||||
;->
|
;->
|
||||||
;==============================
|
;==============================
|
||||||
proc waitretfrace uses ax dx
|
proc waitretrace uses ax dx
|
||||||
mov dx,3DAh
|
mov dx,3DAh
|
||||||
.waitr:
|
.waitr:
|
||||||
in al,dx
|
in al,dx
|
||||||
test al,8
|
test al,8
|
||||||
jz .waitr
|
jz .waitr
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========WAITHretfRACE=========
|
;==========WAITHretRACE=========
|
||||||
;Synchronisation avec la retfrace horizontale
|
;Synchronisation avec la retrace horizontale
|
||||||
;<-
|
;<-
|
||||||
;->
|
;->
|
||||||
;===============================
|
;===============================
|
||||||
proc waithretfrace uses ax dx
|
proc waithretrace uses ax dx
|
||||||
mov dx,3DAh
|
mov dx,3DAh
|
||||||
.waitr:
|
.waitr:
|
||||||
in al,dx
|
in al,dx
|
||||||
test al,1
|
test al,1
|
||||||
jz .waitr
|
jz .waitr
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========GETCHAR=========
|
;==========GETCHAR=========
|
||||||
|
@ -869,7 +869,7 @@ proc getchars uses di es
|
||||||
mov di,[cs:datablock.xy]
|
mov di,[cs:datablock.xy]
|
||||||
mov al,[es:di]
|
mov al,[es:di]
|
||||||
xor ah,ah
|
xor ah,ah
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;==========SHOWCHAR=========
|
;==========SHOWCHAR=========
|
||||||
|
@ -902,7 +902,7 @@ proc showchars uses ax bx cx dx di es, char:word,attr:word
|
||||||
stdcall addline
|
stdcall addline
|
||||||
.noadjusted:
|
.noadjusted:
|
||||||
call setcursor
|
call setcursor
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
setcursor:
|
setcursor:
|
||||||
|
@ -980,10 +980,10 @@ push ax
|
||||||
pop ds
|
pop ds
|
||||||
stdcall savescreento,0
|
stdcall savescreento,0
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.error:
|
.error:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
data3 db '/vgascreen',0
|
data3 db '/vgascreen',0
|
||||||
|
|
||||||
|
@ -1001,7 +1001,7 @@ proc savescreento uses ecx si di ds es, offset:word
|
||||||
xor si,si
|
xor si,si
|
||||||
cld
|
cld
|
||||||
rep movsd
|
rep movsd
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;===================================sauve les parametres en ds:%0================
|
;===================================sauve les parametres en ds:%0================
|
||||||
|
@ -1016,7 +1016,7 @@ proc saveparamto uses ecx si di ds es, offset:word
|
||||||
mov si,datablock
|
mov si,datablock
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;===================================restore les parametres depuis en ds:%0================
|
;===================================restore les parametres depuis en ds:%0================
|
||||||
|
@ -1030,7 +1030,7 @@ proc restoreparamfrom uses ecx si di es, offset:word
|
||||||
mov di,datablock
|
mov di,datablock
|
||||||
cld
|
cld
|
||||||
rep movsb
|
rep movsb
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -1050,10 +1050,10 @@ push ax
|
||||||
pop ds
|
pop ds
|
||||||
stdcall restorescreenfrom,0
|
stdcall restorescreenfrom,0
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.error:
|
.error:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -1068,7 +1068,7 @@ proc restorescreenfrom uses ecx si di es, offset:word
|
||||||
xor di,di
|
xor di,di
|
||||||
cld
|
cld
|
||||||
rep movsd
|
rep movsd
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -1087,7 +1087,7 @@ proc page2to1 uses ecx si di ds es
|
||||||
xor di,di
|
xor di,di
|
||||||
cld
|
cld
|
||||||
rep movsd
|
rep movsd
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;===============================Page1to2============================
|
;===============================Page1to2============================
|
||||||
|
@ -1102,7 +1102,7 @@ proc page1to2 uses ecx si di ds es
|
||||||
xor si,si
|
xor si,si
|
||||||
cld
|
cld
|
||||||
rep movsd
|
rep movsd
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
;===============================xchgPages============================
|
;===============================xchgPages============================
|
||||||
proc xchgpages uses ax ecx si di ds es bp
|
proc xchgpages uses ax ecx si di ds es bp
|
||||||
|
@ -1128,10 +1128,10 @@ cld
|
||||||
rep movsd
|
rep movsd
|
||||||
invoke mbfree,ax
|
invoke mbfree,ax
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.error:
|
.error:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
data4 db '/vgatemp',0
|
data4 db '/vgatemp',0
|
||||||
|
@ -1161,10 +1161,10 @@ stdcall savescreento,di
|
||||||
add di,[cs:datablock.pagesize]
|
add di,[cs:datablock.pagesize]
|
||||||
stdcall savedacto,di
|
stdcall savedacto,di
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.error:
|
.error:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
adata db '/vga',0
|
adata db '/vga',0
|
||||||
|
@ -1188,10 +1188,10 @@ stdcall restorescreenfrom,di
|
||||||
add di,[cs:datablock.pagesize]
|
add di,[cs:datablock.pagesize]
|
||||||
stdcall restoredacfrom,di
|
stdcall restoredacfrom,di
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.error:
|
.error:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -1208,10 +1208,10 @@ push ax
|
||||||
pop ds
|
pop ds
|
||||||
stdcall savedacto,0
|
stdcall savedacto,0
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.error:
|
.error:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
data2 db '/vgadac',0
|
data2 db '/vgadac',0
|
||||||
|
@ -1227,10 +1227,10 @@ push ax
|
||||||
pop ds
|
pop ds
|
||||||
stdcall restoredacfrom,0
|
stdcall restoredacfrom,0
|
||||||
clc
|
clc
|
||||||
retf
|
ret
|
||||||
.error:
|
.error:
|
||||||
stc
|
stc
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -1259,7 +1259,7 @@ dec dx
|
||||||
dec dx
|
dec dx
|
||||||
dec cx
|
dec cx
|
||||||
jne .save
|
jne .save
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;restore le DAC depuis ds:si
|
;restore le DAC depuis ds:si
|
||||||
|
@ -1285,7 +1285,7 @@ out dx,al
|
||||||
dec dx
|
dec dx
|
||||||
dec cx
|
dec cx
|
||||||
jne .save2
|
jne .save2
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ errorprec:
|
||||||
|
|
||||||
code_exit:
|
code_exit:
|
||||||
pop ax
|
pop ax
|
||||||
retf
|
ret
|
||||||
|
|
||||||
code_version:
|
code_version:
|
||||||
invoke print, version_text
|
invoke print, version_text
|
||||||
|
@ -161,7 +161,7 @@ code_cls:
|
||||||
code_reboot:
|
code_reboot:
|
||||||
push 0ffffh
|
push 0ffffh
|
||||||
push 00000h
|
push 00000h
|
||||||
retf
|
ret
|
||||||
|
|
||||||
code_command:
|
code_command:
|
||||||
invoke print, def
|
invoke print, def
|
||||||
|
|
|
@ -231,7 +231,7 @@ suit7:
|
||||||
cmp ax,4200h
|
cmp ax,4200h
|
||||||
jne adres
|
jne adres
|
||||||
invoke restorestate
|
invoke restorestate
|
||||||
retf
|
ret
|
||||||
calc1:
|
calc1:
|
||||||
push ax dx si
|
push ax dx si
|
||||||
mov ax,[xx]
|
mov ax,[xx]
|
||||||
|
|
|
@ -11,7 +11,7 @@ header exe 1,0,imports,0,realstart
|
||||||
realstart:
|
realstart:
|
||||||
invoke print,message
|
invoke print,message
|
||||||
invoke waitkey
|
invoke waitkey
|
||||||
retf
|
ret
|
||||||
|
|
||||||
message db 'Appel de la librairie \c02video\c07 et de la librairie \c02EXEM-LIB.LIB\c07 !',0
|
message db 'Appel de la librairie \c02video\c07 et de la librairie \c02EXEM-LIB.LIB\c07 !',0
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ tre3:
|
||||||
tre4:
|
tre4:
|
||||||
cmp ah,67
|
cmp ah,67
|
||||||
jne endof
|
jne endof
|
||||||
retf
|
ret
|
||||||
|
|
||||||
;couleur al pour ligne %0 en %1
|
;couleur al pour ligne %0 en %1
|
||||||
proc changelineattr uses ax bx di es,line:word,attr:word
|
proc changelineattr uses ax bx di es,line:word,attr:word
|
||||||
|
@ -86,7 +86,7 @@ mov [es:di],bl
|
||||||
add di,2
|
add di,2
|
||||||
dec al
|
dec al
|
||||||
jnz popep
|
jnz popep
|
||||||
retf
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
xx dw 1
|
xx dw 1
|
||||||
|
|
|
@ -35,7 +35,7 @@ endofit:
|
||||||
xor ax,ax
|
xor ax,ax
|
||||||
int 16h
|
int 16h
|
||||||
invoke restorestate
|
invoke restorestate
|
||||||
retf
|
ret
|
||||||
|
|
||||||
problem:
|
problem:
|
||||||
push cs
|
push cs
|
||||||
|
|
|
@ -12,6 +12,6 @@ realstart:
|
||||||
mov eax,cr0
|
mov eax,cr0
|
||||||
or al,1
|
or al,1
|
||||||
mov cr0,eax
|
mov cr0,eax
|
||||||
retf
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,11 @@ realstart:
|
||||||
invoke mouseon
|
invoke mouseon
|
||||||
jc errormouse
|
jc errormouse
|
||||||
invoke print, message
|
invoke print, message
|
||||||
retf
|
ret
|
||||||
|
|
||||||
errormouse:
|
errormouse:
|
||||||
invoke print, errormessage
|
invoke print, errormessage
|
||||||
retf
|
ret
|
||||||
|
|
||||||
message db 'Activation de la souris\l',0
|
message db 'Activation de la souris\l',0
|
||||||
errormessage db 'impossible d''activer la souris\l',0
|
errormessage db 'impossible d''activer la souris\l',0
|
||||||
|
|
|
@ -85,7 +85,7 @@ go4:
|
||||||
mov ax,0
|
mov ax,0
|
||||||
int 16h
|
int 16h
|
||||||
invoke restorestate
|
invoke restorestate
|
||||||
retf
|
ret
|
||||||
put:
|
put:
|
||||||
invoke random
|
invoke random
|
||||||
mov di,ax
|
mov di,ax
|
||||||
|
|
|
@ -33,7 +33,7 @@ show:
|
||||||
jnz show
|
jnz show
|
||||||
invoke bioswaitkey
|
invoke bioswaitkey
|
||||||
invoke restorestate
|
invoke restorestate
|
||||||
retf
|
ret
|
||||||
|
|
||||||
importing
|
importing
|
||||||
use VIDEO.LIB,print
|
use VIDEO.LIB,print
|
||||||
|
|
|
@ -183,7 +183,7 @@ retrace:
|
||||||
jmp rool
|
jmp rool
|
||||||
endee:
|
endee:
|
||||||
invoke restorestate
|
invoke restorestate
|
||||||
retf
|
ret
|
||||||
|
|
||||||
errorloading:
|
errorloading:
|
||||||
push cs
|
push cs
|
||||||
|
|
|
@ -56,13 +56,13 @@ someof:
|
||||||
mov ah,0
|
mov ah,0
|
||||||
int 16h
|
int 16h
|
||||||
invoke restorestate
|
invoke restorestate
|
||||||
retf
|
ret
|
||||||
errors:
|
errors:
|
||||||
invoke print, error
|
invoke print, error
|
||||||
mov ah,0
|
mov ah,0
|
||||||
int 16h
|
int 16h
|
||||||
invoke restorestate
|
invoke restorestate
|
||||||
retf
|
ret
|
||||||
|
|
||||||
error db '\g10,10Erreur avec le lecteur de disquette !',0
|
error db '\g10,10Erreur avec le lecteur de disquette !',0
|
||||||
error2 db '\g10,10Le disque est defectueux, appuyez sur une touche pour quitter',0
|
error2 db '\g10,10Le disque est defectueux, appuyez sur une touche pour quitter',0
|
||||||
|
|
|
@ -225,7 +225,7 @@ suit7:
|
||||||
cmp ax,4200h
|
cmp ax,4200h
|
||||||
jne adres
|
jne adres
|
||||||
invoke restorestate
|
invoke restorestate
|
||||||
retf
|
ret
|
||||||
calc1:
|
calc1:
|
||||||
push ax dx si
|
push ax dx si
|
||||||
mov ax,[xx]
|
mov ax,[xx]
|
||||||
|
|
Loading…
Reference in New Issue