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 $res = ((unsigned long)$es & 0xFFFF)
|
||||
set $rss = ((unsigned long)$ss & 0xFFFF)
|
||||
set $rfs = ((unsigned long)$es & 0xFFFF)
|
||||
set $rgs = ((unsigned long)$ss & 0xFFFF)
|
||||
set $rfs = ((unsigned long)$fs & 0xFFFF)
|
||||
set $rgs = ((unsigned long)$gs & 0xFFFF)
|
||||
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_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 $name = (unsigned char*)($mem+8)
|
||||
printf "%s:%4X:%4X\n",$name,$mem,$size
|
||||
set $mem=$mem+$size
|
||||
set $mem=$mem+($size+2)*16
|
||||
set $verif = *(unsigned char*)($mem)
|
||||
set $verif2 = *(unsigned char*)($mem+1)
|
||||
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
|
||||
dec cx
|
||||
jnz .draw
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
dec cx
|
||||
jnz .draw
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
jnz .draw
|
||||
.endof:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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:
|
||||
dec cx
|
||||
jnz .calculvect
|
||||
retf
|
||||
ret
|
||||
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
|
||||
.error1:
|
||||
.error2:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
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 eax,[z]
|
||||
mov [di+11*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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 eax,[value]
|
||||
mov [di+3*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -509,7 +509,7 @@ proc translatey uses eax ecx di es, mat:word,value:dword
|
|||
mov [di+11*4],eax
|
||||
mov eax,[value]
|
||||
mov [di+7*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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 eax,[value]
|
||||
mov [di+11*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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 eax,[cs:un]
|
||||
mov [di+15*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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 eax,[cs:un]
|
||||
mov [di+15*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;copy une matrice %0 en %1
|
||||
|
@ -601,7 +601,7 @@ proc copy uses ecx si di es, mat1:word,mat2:word
|
|||
pop es
|
||||
cld
|
||||
rep stosd
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
cld
|
||||
rep stosd
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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+10*4],eax
|
||||
mov [di+15*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -674,7 +674,7 @@ proc rotationx uses eax ecx di es, mat:word,value:dword
|
|||
mov eax,[cs:un]
|
||||
mov [di+0*4],eax
|
||||
mov [di+15*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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 [di+5*4],eax
|
||||
mov [di+15*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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 [di+10*4],eax
|
||||
mov [di+15*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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]
|
||||
mov eax,[cs:un]
|
||||
mov [di+15*4],eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -866,7 +866,7 @@ proc project uses bx cx si di, vertex2d:word,vertex3d:word,origin:word
|
|||
add bx,.vertex2d.sizeof
|
||||
dec cx
|
||||
jnz .boucle
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -966,7 +966,7 @@ proc transform uses cx si di, vertex3d:word,mat:word
|
|||
add si,.vertex3dori.sizeof
|
||||
dec cx
|
||||
jnz .boucle
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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]
|
||||
;faddp st1
|
||||
fstp dword [ bx+15*4]
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
|
|
@ -29,7 +29,7 @@ proc detectvmware uses eax ebx ecx edx
|
|||
mov edx,5658h
|
||||
in ax,dx
|
||||
cmp ebx,564D5868h
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;renvoie un pointer dx:ax vers la classe %0
|
||||
|
@ -39,7 +39,7 @@ proc getpciclass uses di, class:word
|
|||
shl di,1
|
||||
mov ax,[cs:classes+di]
|
||||
mov dx,cs
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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]
|
||||
.found:
|
||||
mov dx,cs
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
divers db 'divers',0
|
||||
|
@ -327,10 +327,10 @@ end virtual
|
|||
cmp bl,40h
|
||||
jbe .goinfos
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.notexist:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
or dl,bl
|
||||
in al,dx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
or dl,bl
|
||||
in ax,dx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
or dl,bl
|
||||
in eax,dx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;Prob avec str pci
|
||||
|
@ -414,14 +414,14 @@ proc pciinfo uses ax bx cx edx edi, pointer:word
|
|||
mov [.pciinf.types],al
|
||||
mov [.pciinf.maxbus],cl
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.errorpci:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
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
|
||||
mov di,[set]
|
||||
virtual at 0
|
||||
|
@ -454,7 +454,7 @@ end virtual
|
|||
jmp .set
|
||||
.endofset:
|
||||
mov byte [di],0
|
||||
retf
|
||||
ret
|
||||
|
||||
.theset dw .mmx
|
||||
dw .mmx2
|
||||
|
@ -481,7 +481,7 @@ end virtual
|
|||
|
||||
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
|
||||
push ds
|
||||
pop es
|
||||
|
@ -627,9 +627,9 @@ proc cpuinfo uses eax ebx ecx edx si di ds es, pointer:word
|
|||
je .endofsearch
|
||||
jmp .search
|
||||
.endofsearch:
|
||||
retf
|
||||
ret
|
||||
.nocpuidatall:
|
||||
retf
|
||||
ret
|
||||
|
||||
;tableau avec vendeur taille + chainereelle + pointeur famille + pointeur famille etendue
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ header exe 1,exports,0,0,0
|
|||
waitkey:
|
||||
mov ax,0
|
||||
int 16h
|
||||
retf
|
||||
ret
|
||||
|
||||
exporting
|
||||
declare waitkey
|
||||
|
|
|
@ -21,12 +21,12 @@ proc random uses dx
|
|||
inc ax
|
||||
mov [cs:randseed],ax
|
||||
mov ax,dx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
proc randomize uses ax cx dx
|
||||
mov ah,0
|
||||
int 1ah
|
||||
mov [cs:randseed],dx
|
||||
retf
|
||||
ret
|
||||
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
|
||||
cld
|
||||
.ackno:
|
||||
retf
|
||||
ret
|
||||
.notequalatall:
|
||||
stc
|
||||
jmp .ackno
|
||||
|
@ -151,7 +151,7 @@ proc cmpitems uses ax cx si di es, src:word,dest:word,item:word,delim:word
|
|||
cld
|
||||
rep cmpsb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -170,7 +170,7 @@ proc gettypeditem uses bx cx si di, src:word,item:word,delim:word
|
|||
stdcall gettyped,di
|
||||
xchg cl,[ds:si]
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -207,7 +207,7 @@ proc gettyped uses si, src:word
|
|||
stdcall strtoadress,si
|
||||
.endofgettypeditem:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
xchg cl,[ds:si]
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
.endofwhat:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -314,7 +314,7 @@ proc strtoadress
|
|||
;push
|
||||
stc
|
||||
;pop
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -323,7 +323,7 @@ proc strisadress
|
|||
;push
|
||||
stc
|
||||
;pop
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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:
|
||||
clc
|
||||
.itsdead:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
non db '/<>|"?*:\',01,0FFh
|
||||
|
@ -381,7 +381,7 @@ proc strisbase uses ax cx si di es, src:word,base:word
|
|||
.okbase:
|
||||
clc
|
||||
.endbase:
|
||||
retf
|
||||
ret
|
||||
.verifbase:
|
||||
cmp byte [si+1],0
|
||||
je .okbase
|
||||
|
@ -432,7 +432,7 @@ proc strtoint uses ebx ecx edx si edi es, src:word,base:word
|
|||
.endbaseto:
|
||||
mov eax,ebx
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -448,7 +448,7 @@ proc left uses ax cx si di es, src:word,dest:word,nb:word
|
|||
mov al,0
|
||||
stosb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
stosb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
stosb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
rep stosb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
.endofchange:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
dec ax
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;Inverse la chaine point‚e en ds:%0
|
||||
|
@ -556,7 +556,7 @@ proc invert uses ax cx si di, src:word
|
|||
jmp .revert
|
||||
.finishinvert:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
repe cmpsb
|
||||
.notequal:
|
||||
retf
|
||||
ret
|
||||
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
|
||||
|
@ -589,13 +589,13 @@ proc evalue uses cx si di es, src:word,dest:word
|
|||
sub ax,cx
|
||||
popf
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.noident:
|
||||
sub ax,cx
|
||||
dec ax
|
||||
popf
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
rep movsb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -640,7 +640,7 @@ proc delete uses ax cx dx si di es, src:word,item:word,size:word
|
|||
cld
|
||||
rep movsb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
stosb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -673,7 +673,7 @@ proc concat uses ax cx si di es, src:word,dest:word
|
|||
mov al,0
|
||||
stosb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -699,7 +699,7 @@ proc compressdelimiter uses cx dx si di es, src:word,delim:word
|
|||
jne .compressitems
|
||||
mov ax,dx
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
.noadjust:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
dec ax
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
stosb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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:
|
||||
mov ax,di
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
mov ax,dx
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
mov ax,cx
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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]
|
||||
mov byte [si],0
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;met en majuscule la chaine ds:%0
|
||||
|
@ -855,7 +855,7 @@ proc uppercase uses ax si, src:word
|
|||
jmp .uppercase
|
||||
.enduppercase:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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'
|
||||
.oneenduppercase:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;met en minuscule la chaine ds:%0
|
||||
|
@ -888,7 +888,7 @@ proc lowercase uses ax si, src:word
|
|||
jmp .lowercase
|
||||
.endlowercase:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;Inverse la casse la chaine ds:%0
|
||||
|
@ -914,6 +914,6 @@ proc invertcase uses ax si, src:word
|
|||
jmp .invertcase
|
||||
.endinvertcase:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
|
|
@ -407,7 +407,7 @@ proc print pointer:word
|
|||
mov bp,di
|
||||
pop di si cx bx ax
|
||||
mov sp,bp
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -432,7 +432,7 @@ proc showdate uses edx, dates:word
|
|||
and dx,11111111b
|
||||
add dx,1956
|
||||
stdcall showintl,2,edx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;================SHOWTIME==============
|
||||
|
@ -456,7 +456,7 @@ proc showtime uses edx, times:word
|
|||
and dx,11111b
|
||||
shl dx,1
|
||||
stdcall showintl,2,edx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;================SHOWNAME==============
|
||||
|
@ -477,7 +477,7 @@ proc showname uses cx si, thename:word
|
|||
.suiteaname:
|
||||
cmp cx,8+3
|
||||
jb .showthename
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;================SHOWATTR==============
|
||||
|
@ -531,7 +531,7 @@ proc showattr, attr:word
|
|||
push '-'
|
||||
.directory:
|
||||
invoke showchars
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;================SHOWSIZE==============
|
||||
|
@ -567,7 +567,7 @@ proc showsize uses edx ds, thesize:dword
|
|||
stdcall showintr,4,edx
|
||||
stdcall showstring0,unitgiga
|
||||
.finsize:
|
||||
retf
|
||||
ret
|
||||
|
||||
unit db ' o ',0
|
||||
unitkilo db ' ko',0
|
||||
|
@ -583,7 +583,7 @@ endp
|
|||
proc showspace
|
||||
invoke showchars,' ',0FFFFh
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -614,7 +614,7 @@ local showbuffer[50]:BYTE
|
|||
invoke showchars,cx,0FFFFh
|
||||
dec ax
|
||||
jnz .showinteger
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SHOWINTL===========
|
||||
|
@ -658,7 +658,7 @@ local showbuffer[50]:BYTE
|
|||
invoke showchars,cx,0FFFFh
|
||||
dec ax
|
||||
jnz .showinteger
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SHOWINTR===========
|
||||
|
@ -702,7 +702,7 @@ local showbuffer[50]:BYTE
|
|||
invoke showchars,cx,0FFFFh
|
||||
dec ax
|
||||
jnz .showinteger
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SHOWSIGNED===========
|
||||
|
@ -738,7 +738,7 @@ proc showsigned uses ebx cx edx, sizeofint:word,integer:dword
|
|||
invoke showchars,'-',0FFFFh
|
||||
.notsigned:
|
||||
stdcall showint,edx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SHOWHEX===========
|
||||
|
@ -762,7 +762,7 @@ proc showhex uses ax bx cx edx, sizeofint:word,integer:dword
|
|||
invoke showchars,cx,0FFFFh
|
||||
dec al
|
||||
jnz .Hexaize
|
||||
retf
|
||||
ret
|
||||
|
||||
Tab db '0123456789ABCDEF'
|
||||
endp
|
||||
|
@ -786,7 +786,7 @@ proc showbin uses ax cx edx, sizeofint:word,integer:dword
|
|||
invoke showchars,cx,0FFFFh
|
||||
dec al
|
||||
jnz .binaize
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SHOWBCD===========
|
||||
|
@ -810,7 +810,7 @@ proc showbcd uses ax cx edx, sizeofint:word,integer:dword
|
|||
invoke showchars,cx,0FFFFh
|
||||
dec al
|
||||
jnz .BCDaize
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SHOWSTRING===========
|
||||
|
@ -826,7 +826,7 @@ proc showstring uses bx si, pointer:word
|
|||
invoke showchars,word [si],0FFFFh
|
||||
dec bl
|
||||
jnz .strinaize
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========showchars===========
|
||||
|
@ -836,7 +836,7 @@ endp
|
|||
;===============================
|
||||
proc showchar, pointer:word
|
||||
invoke showchars,[pointer],0FFFFh
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SHOWSTRING0===========
|
||||
|
@ -854,6 +854,6 @@ proc showstring0 uses cx si, pointer:word
|
|||
inc si
|
||||
jmp .strinaize0
|
||||
.no0:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
|
|
@ -100,10 +100,10 @@ endfat:
|
|||
cmp ax,0FF0h
|
||||
jbe nocarry
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
nocarry:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;============loadfile===============
|
||||
|
@ -137,11 +137,11 @@ local temp[48]:WORD
|
|||
stdcall loadway,cx,eax,[pointer]
|
||||
jc errorload
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
errorload:
|
||||
stc
|
||||
xor eax,eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;============execfile (Fonction 18)===============
|
||||
|
@ -194,14 +194,14 @@ proc execfile, file:word
|
|||
pop gs fs es ds
|
||||
popad
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.reallyerror:
|
||||
invoke mbfree,ax
|
||||
.reallyerrornoblock:
|
||||
pop gs fs es ds
|
||||
popad
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;============projfile (Fonction 17)===============
|
||||
|
@ -252,11 +252,11 @@ popad
|
|||
jc .errorload
|
||||
.notace:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.errorload:
|
||||
xor eax,eax
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -290,13 +290,13 @@ proc searchfile uses bx cx si di ds es, pointer:word
|
|||
jc .nextsearch
|
||||
.okfound:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.notgood:
|
||||
cmp si,0FF5h
|
||||
retf
|
||||
ret
|
||||
.errorsearch:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;Transforme la chaine ds:%0 en maj
|
||||
|
@ -317,7 +317,7 @@ proc uppercase uses si ax, strs:word
|
|||
jmp .uppercaser
|
||||
.enduppercase:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;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
|
||||
.itok:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.notequal:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
.trynoext:
|
||||
cmp byte [si-1],0
|
||||
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
|
||||
.zeroload:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.noway:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============INITDRIVE===============
|
||||
|
@ -527,10 +527,10 @@ proc initdrive uses eax bx cx edx si di ds es
|
|||
dec dx
|
||||
jnz .seefat
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.errorinit:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
datafat db '/fat',0
|
||||
|
@ -554,7 +554,7 @@ proc findfirstfile uses cx si, pointer:word
|
|||
mov [.find.entryplace],cx
|
||||
mov [.find.firstsearch],1
|
||||
stdcall findnextfile,[pointer]
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============FindnextFile==============
|
||||
|
@ -633,10 +633,10 @@ proc findnextfile uses ax bx cx di si ds es, pointer:word
|
|||
cld
|
||||
rep movsb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.notwell:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============GetFreeSpace===============
|
||||
|
@ -651,7 +651,7 @@ proc getfreespace uses eax bx
|
|||
shl edx,16
|
||||
add edx,eax
|
||||
pop eax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;ax=défectueux bx=libre
|
||||
|
@ -705,10 +705,10 @@ proc readcluster uses ax bx dx si, sector:word,pointer:word
|
|||
dec bx
|
||||
jnz .readsectors
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.errorreadincluster:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============WRITECLUSTER===============
|
||||
|
@ -731,10 +731,10 @@ proc writecluster uses ax bx dx si, sector:word,pointer:word
|
|||
dec bx
|
||||
jnz .writesectors
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.errorwriteincluster:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
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
|
||||
.error:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
.preprepcopy:
|
||||
mov [tempsec],cx
|
||||
.prepcopy:
|
||||
|
@ -838,7 +838,7 @@ proc readsector uses ax bx cx dx si di ds es, sector:word,pointer:word
|
|||
cld
|
||||
rep movsb
|
||||
.done:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============SETBUFFER============
|
||||
|
@ -871,10 +871,10 @@ proc setbuffer uses ax cx di ds es, size:word
|
|||
cld
|
||||
rep stosw
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.errorinit:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============GETBUFFER============
|
||||
|
@ -893,7 +893,7 @@ proc getbuffer uses ax cx di ds es, pointer:word
|
|||
cld
|
||||
rep movsb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============WRITESECTOR============
|
||||
|
@ -926,7 +926,7 @@ proc writesector uses ax bx cx dx si es, sector:word,pointer:word
|
|||
dec si
|
||||
jnz .tryagain
|
||||
.done:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============Getname==============
|
||||
|
@ -948,7 +948,7 @@ proc getname uses ax cx si di ds es, pointer:word
|
|||
mov cx,11
|
||||
repne scasb
|
||||
mov byte [es:di],0
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
;=============Getserial==============
|
||||
;Renvoie le numéro de serie en EAX
|
||||
|
@ -957,7 +957,7 @@ endp
|
|||
;====================================
|
||||
proc getserial FAR
|
||||
mov eax,[cs:myboot.serialnumber]
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============VERIFYSECTOR==============
|
||||
|
@ -994,7 +994,7 @@ proc verifysector uses ecx si di ds es, sector:word
|
|||
cld
|
||||
rep cmpsd
|
||||
.errorverify:
|
||||
retf
|
||||
ret
|
||||
|
||||
endp
|
||||
|
||||
|
@ -1008,7 +1008,7 @@ invert:
|
|||
cmp cx,[cs:myboot.sectorsize]
|
||||
jb invert
|
||||
pop cx si
|
||||
retf
|
||||
ret
|
||||
|
||||
;=============DecompressRle (Fonction 05H)==============
|
||||
;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
|
||||
sub ax,[off2]
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============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
|
||||
sub ax,[off2]
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============Changedir (Fonction 13)==============
|
||||
|
@ -1192,10 +1192,10 @@ local temp[64]:WORD
|
|||
rep movsb
|
||||
.theend:
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.noch:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============getdir==============
|
||||
|
@ -1222,7 +1222,7 @@ proc getdir uses ax cx si di ds es, pointer:word
|
|||
cld
|
||||
rep movsb
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
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
|
||||
mov gs,dx
|
||||
cmp word [gs:0x0],'HN'
|
||||
cmp word [gs:0x0],"NH"
|
||||
je .oktoset
|
||||
mov ax,memorystart
|
||||
.oktoset:
|
||||
|
@ -239,7 +239,7 @@ proc mbcreate uses bx cx dx si di ds es, blocks:word, size:word
|
|||
cmp dl,false
|
||||
je .notenougtmem
|
||||
mov es,bx
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
cmp [es:mb.isnotlast],true
|
||||
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]
|
||||
cmp cx,ax
|
||||
ja .notsogood
|
||||
mov word [es:mb.check],"HN"
|
||||
mov word [es:mb.check],"NH"
|
||||
mov [es:mb.isnotlast],true
|
||||
mov [es:mb.reference],gs
|
||||
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
|
||||
mov es,bx
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
cmp [es:mb.reference],free
|
||||
je .wasfree
|
||||
|
@ -324,7 +324,7 @@ proc mbfree uses ax bx cx si di ds es, blocks:word
|
|||
dec bx
|
||||
.searchtofree:
|
||||
mov es,bx
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
inc bx
|
||||
inc bx
|
||||
|
@ -367,7 +367,7 @@ proc mbclean uses ax bx dx es gs
|
|||
xor dx,dx
|
||||
.searchfree:
|
||||
mov gs,bx
|
||||
cmp word [gs:mb.check],"HN"
|
||||
cmp word [gs:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
inc bx
|
||||
inc bx
|
||||
|
@ -419,7 +419,7 @@ proc mbresident uses bx es, blocks:word
|
|||
dec bx
|
||||
dec bx
|
||||
mov es,bx
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
mov [es:mb.isresident],true
|
||||
ret
|
||||
|
@ -434,7 +434,7 @@ proc mbnonresident uses bx es, blocks:word
|
|||
dec bx
|
||||
dec bx
|
||||
mov es,bx
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
mov [es:mb.isresident],false
|
||||
ret
|
||||
|
@ -450,7 +450,7 @@ proc mbchown uses bx dx es,blocks:word, owner:word
|
|||
dec bx
|
||||
dec bx
|
||||
mov es,bx
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
cmp [es:mb.reference],free
|
||||
je .wasfree
|
||||
|
@ -484,7 +484,7 @@ proc mbget uses bx dx es, num:word
|
|||
xor dx,dx
|
||||
.searchfree:
|
||||
mov es,bx
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
inc bx
|
||||
inc bx
|
||||
|
@ -520,7 +520,7 @@ proc mbfind uses bx si di es, blocks:word
|
|||
.search:
|
||||
mov es,bx
|
||||
lea di,[es:mb.names]
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
inc bx
|
||||
inc bx
|
||||
|
@ -567,7 +567,7 @@ proc mbfindsb uses bx dx si di es, blocks:word, owner:word
|
|||
mov dx,[owner]
|
||||
.search:
|
||||
mov es,bx
|
||||
cmp word [es:mb.check],"HN"
|
||||
cmp word [es:mb.check],"NH"
|
||||
jne .memoryerror
|
||||
inc bx
|
||||
inc bx
|
||||
|
|
|
@ -12,7 +12,7 @@ memorystart equ 0052h ;premier bloc de la m
|
|||
org 0h
|
||||
|
||||
mb0:
|
||||
header exe 1,0,imports,allsection,start
|
||||
header exe 1,exports,imports,allsection,start
|
||||
|
||||
start:
|
||||
push cs
|
||||
|
|
120
noyau/video.asm
120
noyau/video.asm
|
@ -33,8 +33,8 @@ declare restorescreen
|
|||
declare page2to1
|
||||
declare page1to2
|
||||
declare xchgpages
|
||||
declare waithretfrace
|
||||
declare waitretfrace
|
||||
declare waithretrace
|
||||
declare waitretrace
|
||||
declare getvideoinfos
|
||||
declare savedac
|
||||
declare restoredac
|
||||
|
@ -199,7 +199,7 @@ planesize equ 65000
|
|||
;=====================================
|
||||
proc enablescroll
|
||||
mov [cs:datablock.scrolling],1
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============DISABLESCROLLING=========
|
||||
|
@ -209,7 +209,7 @@ endp
|
|||
;======================================
|
||||
proc disablescroll
|
||||
mov [cs:datablock.scrolling],0
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============ENABLECURSOR=============
|
||||
|
@ -234,7 +234,7 @@ proc enablecursor uses ax dx
|
|||
mov dl,[cs:datablock.y]
|
||||
xor dh,dh
|
||||
stdcall setxy,ax,dx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============DISABLECURSOR=============
|
||||
|
@ -254,7 +254,7 @@ proc disablecursor uses ax dx
|
|||
dec dx
|
||||
mov al,0Ah
|
||||
out dx,ax
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SETSTYLE=========
|
||||
|
@ -265,7 +265,7 @@ endp
|
|||
proc setstyle uses cx, style:word
|
||||
mov ax,[style]
|
||||
mov [cs:datablock.style],al
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========GETSTYLE=========
|
||||
|
@ -276,7 +276,7 @@ endp
|
|||
proc getstyle
|
||||
mov al,[cs:datablock.style]
|
||||
xor ah,ah
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============SetVideoMode=========
|
||||
|
@ -402,9 +402,9 @@ proc setvideomode uses ax cx dx di, modenum:word
|
|||
mov [cs:datablock.base],ax
|
||||
mov [cs:datablock.cursor],1
|
||||
mov [cs:datablock.style],0
|
||||
retf
|
||||
ret
|
||||
.errorsetvideomode:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -416,7 +416,7 @@ initfont:
|
|||
stdcall loadfont,font8x8,8,1
|
||||
stdcall loadfont,font8x16,16,0
|
||||
pop ds
|
||||
retf
|
||||
ret
|
||||
|
||||
;=============GetVideoMode=========
|
||||
;Renvoie le mode vidéo courant dans AX
|
||||
|
@ -426,7 +426,7 @@ initfont:
|
|||
proc getvideomode
|
||||
mov al,[cs:datablock.modenum]
|
||||
xor ah,ah
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============CLEARSCREEN=========
|
||||
|
@ -474,7 +474,7 @@ proc clearscreen uses eax cx dx di es
|
|||
rep stosd
|
||||
.endoferase:
|
||||
stdcall setxy,0,0
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -497,9 +497,9 @@ proc setfont uses ax cx dx, font:word
|
|||
mov dx,sequencer
|
||||
mov al,3
|
||||
out dx,ax
|
||||
retf
|
||||
ret
|
||||
.errorsetfont:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;=============GetFont=========
|
||||
|
@ -510,7 +510,7 @@ endp
|
|||
proc getfont
|
||||
mov al,[cs:datablock.font]
|
||||
xor ah,ah
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;!!!!!!!!!!!!!!!!!!!! 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
|
||||
cmp di,6+6
|
||||
jbe .doseqs2
|
||||
retf
|
||||
ret
|
||||
.errorloadfont:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
|
||||
reg2 dw 0100h, 0302h, 0304h, 0300h
|
||||
dw 0004h, 1005h, 0E06h
|
||||
|
@ -602,7 +602,7 @@ reg1 dw 0100h, 0402h, 0704h, 0300h
|
|||
endp
|
||||
|
||||
;==========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:
|
||||
inc bl
|
||||
stdcall setxy,0,bx
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SETCOLOR=========
|
||||
|
@ -634,7 +634,7 @@ endp
|
|||
proc setcolor, color:word
|
||||
mov cx,[color]
|
||||
mov [cs:datablock.colors],cl
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========GETCOLOR=========
|
||||
|
@ -645,7 +645,7 @@ endp
|
|||
proc getcolor
|
||||
mov al,[cs:datablock.colors]
|
||||
xor ah,ah
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SCROLLDOWN=========
|
||||
|
@ -693,7 +693,7 @@ proc scrolldown uses ax cx dx si di ds es, line:word
|
|||
mov ds,ax
|
||||
rep movsb
|
||||
.graphp:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========GETXY=========
|
||||
|
@ -704,7 +704,7 @@ endp
|
|||
proc getxy uses bx
|
||||
mov ah,[cs:datablock.x]
|
||||
mov al,[cs:datablock.y]
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SETXY=========
|
||||
|
@ -724,7 +724,7 @@ proc setxy uses ax bx dx di, x:word ,y: word
|
|||
shl di,1
|
||||
mov [cs:datablock.xy],di
|
||||
call setcursor
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========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 [es:di],ch
|
||||
.endofshow:
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;!!!!!!!!!!!!!! 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 es,bx
|
||||
mov al,[es:di]
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========GETVGAINFO=========
|
||||
|
@ -827,35 +827,35 @@ proc getvideoinfos uses cx si di ds, pointer:word
|
|||
mov di,[pointer]
|
||||
cld
|
||||
rep movsb
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========WAITretfRACE=========
|
||||
;Synchronisation avec la retfrace verticale
|
||||
;==========WAITretRACE=========
|
||||
;Synchronisation avec la retrace verticale
|
||||
;<-
|
||||
;->
|
||||
;==============================
|
||||
proc waitretfrace uses ax dx
|
||||
proc waitretrace uses ax dx
|
||||
mov dx,3DAh
|
||||
.waitr:
|
||||
in al,dx
|
||||
test al,8
|
||||
jz .waitr
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========WAITHretfRACE=========
|
||||
;Synchronisation avec la retfrace horizontale
|
||||
;==========WAITHretRACE=========
|
||||
;Synchronisation avec la retrace horizontale
|
||||
;<-
|
||||
;->
|
||||
;===============================
|
||||
proc waithretfrace uses ax dx
|
||||
proc waithretrace uses ax dx
|
||||
mov dx,3DAh
|
||||
.waitr:
|
||||
in al,dx
|
||||
test al,1
|
||||
jz .waitr
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========GETCHAR=========
|
||||
|
@ -869,7 +869,7 @@ proc getchars uses di es
|
|||
mov di,[cs:datablock.xy]
|
||||
mov al,[es:di]
|
||||
xor ah,ah
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;==========SHOWCHAR=========
|
||||
|
@ -902,7 +902,7 @@ proc showchars uses ax bx cx dx di es, char:word,attr:word
|
|||
stdcall addline
|
||||
.noadjusted:
|
||||
call setcursor
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
setcursor:
|
||||
|
@ -980,10 +980,10 @@ push ax
|
|||
pop ds
|
||||
stdcall savescreento,0
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.error:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
data3 db '/vgascreen',0
|
||||
|
||||
|
@ -1001,7 +1001,7 @@ proc savescreento uses ecx si di ds es, offset:word
|
|||
xor si,si
|
||||
cld
|
||||
rep movsd
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;===================================sauve les parametres en ds:%0================
|
||||
|
@ -1016,7 +1016,7 @@ proc saveparamto uses ecx si di ds es, offset:word
|
|||
mov si,datablock
|
||||
cld
|
||||
rep movsb
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;===================================restore les parametres depuis en ds:%0================
|
||||
|
@ -1030,7 +1030,7 @@ proc restoreparamfrom uses ecx si di es, offset:word
|
|||
mov di,datablock
|
||||
cld
|
||||
rep movsb
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -1050,10 +1050,10 @@ push ax
|
|||
pop ds
|
||||
stdcall restorescreenfrom,0
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.error:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -1068,7 +1068,7 @@ proc restorescreenfrom uses ecx si di es, offset:word
|
|||
xor di,di
|
||||
cld
|
||||
rep movsd
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -1087,7 +1087,7 @@ proc page2to1 uses ecx si di ds es
|
|||
xor di,di
|
||||
cld
|
||||
rep movsd
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;===============================Page1to2============================
|
||||
|
@ -1102,7 +1102,7 @@ proc page1to2 uses ecx si di ds es
|
|||
xor si,si
|
||||
cld
|
||||
rep movsd
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
;===============================xchgPages============================
|
||||
proc xchgpages uses ax ecx si di ds es bp
|
||||
|
@ -1128,10 +1128,10 @@ cld
|
|||
rep movsd
|
||||
invoke mbfree,ax
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.error:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
data4 db '/vgatemp',0
|
||||
|
@ -1161,10 +1161,10 @@ stdcall savescreento,di
|
|||
add di,[cs:datablock.pagesize]
|
||||
stdcall savedacto,di
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.error:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
adata db '/vga',0
|
||||
|
@ -1188,10 +1188,10 @@ stdcall restorescreenfrom,di
|
|||
add di,[cs:datablock.pagesize]
|
||||
stdcall restoredacfrom,di
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.error:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -1208,10 +1208,10 @@ push ax
|
|||
pop ds
|
||||
stdcall savedacto,0
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.error:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
data2 db '/vgadac',0
|
||||
|
@ -1227,10 +1227,10 @@ push ax
|
|||
pop ds
|
||||
stdcall restoredacfrom,0
|
||||
clc
|
||||
retf
|
||||
ret
|
||||
.error:
|
||||
stc
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
@ -1259,7 +1259,7 @@ dec dx
|
|||
dec dx
|
||||
dec cx
|
||||
jne .save
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
;restore le DAC depuis ds:si
|
||||
|
@ -1285,7 +1285,7 @@ out dx,al
|
|||
dec dx
|
||||
dec cx
|
||||
jne .save2
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
|
|
@ -146,7 +146,7 @@ errorprec:
|
|||
|
||||
code_exit:
|
||||
pop ax
|
||||
retf
|
||||
ret
|
||||
|
||||
code_version:
|
||||
invoke print, version_text
|
||||
|
@ -161,7 +161,7 @@ code_cls:
|
|||
code_reboot:
|
||||
push 0ffffh
|
||||
push 00000h
|
||||
retf
|
||||
ret
|
||||
|
||||
code_command:
|
||||
invoke print, def
|
||||
|
|
|
@ -231,7 +231,7 @@ suit7:
|
|||
cmp ax,4200h
|
||||
jne adres
|
||||
invoke restorestate
|
||||
retf
|
||||
ret
|
||||
calc1:
|
||||
push ax dx si
|
||||
mov ax,[xx]
|
||||
|
|
|
@ -11,7 +11,7 @@ header exe 1,0,imports,0,realstart
|
|||
realstart:
|
||||
invoke print,message
|
||||
invoke waitkey
|
||||
retf
|
||||
ret
|
||||
|
||||
message db 'Appel de la librairie \c02video\c07 et de la librairie \c02EXEM-LIB.LIB\c07 !',0
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ tre3:
|
|||
tre4:
|
||||
cmp ah,67
|
||||
jne endof
|
||||
retf
|
||||
ret
|
||||
|
||||
;couleur al pour ligne %0 en %1
|
||||
proc changelineattr uses ax bx di es,line:word,attr:word
|
||||
|
@ -86,7 +86,7 @@ mov [es:di],bl
|
|||
add di,2
|
||||
dec al
|
||||
jnz popep
|
||||
retf
|
||||
ret
|
||||
endp
|
||||
|
||||
xx dw 1
|
||||
|
|
|
@ -35,7 +35,7 @@ endofit:
|
|||
xor ax,ax
|
||||
int 16h
|
||||
invoke restorestate
|
||||
retf
|
||||
ret
|
||||
|
||||
problem:
|
||||
push cs
|
||||
|
|
|
@ -12,6 +12,6 @@ realstart:
|
|||
mov eax,cr0
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
retf
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
@ -12,11 +12,11 @@ realstart:
|
|||
invoke mouseon
|
||||
jc errormouse
|
||||
invoke print, message
|
||||
retf
|
||||
ret
|
||||
|
||||
errormouse:
|
||||
invoke print, errormessage
|
||||
retf
|
||||
ret
|
||||
|
||||
message db 'Activation de la souris\l',0
|
||||
errormessage db 'impossible d''activer la souris\l',0
|
||||
|
|
|
@ -85,7 +85,7 @@ go4:
|
|||
mov ax,0
|
||||
int 16h
|
||||
invoke restorestate
|
||||
retf
|
||||
ret
|
||||
put:
|
||||
invoke random
|
||||
mov di,ax
|
||||
|
|
|
@ -33,7 +33,7 @@ show:
|
|||
jnz show
|
||||
invoke bioswaitkey
|
||||
invoke restorestate
|
||||
retf
|
||||
ret
|
||||
|
||||
importing
|
||||
use VIDEO.LIB,print
|
||||
|
|
|
@ -183,7 +183,7 @@ retrace:
|
|||
jmp rool
|
||||
endee:
|
||||
invoke restorestate
|
||||
retf
|
||||
ret
|
||||
|
||||
errorloading:
|
||||
push cs
|
||||
|
|
|
@ -56,13 +56,13 @@ someof:
|
|||
mov ah,0
|
||||
int 16h
|
||||
invoke restorestate
|
||||
retf
|
||||
ret
|
||||
errors:
|
||||
invoke print, error
|
||||
mov ah,0
|
||||
int 16h
|
||||
invoke restorestate
|
||||
retf
|
||||
ret
|
||||
|
||||
error db '\g10,10Erreur avec le lecteur de disquette !',0
|
||||
error2 db '\g10,10Le disque est defectueux, appuyez sur une touche pour quitter',0
|
||||
|
|
|
@ -225,7 +225,7 @@ suit7:
|
|||
cmp ax,4200h
|
||||
jne adres
|
||||
invoke restorestate
|
||||
retf
|
||||
ret
|
||||
calc1:
|
||||
push ax dx si
|
||||
mov ax,[xx]
|
||||
|
|
Loading…
Reference in New Issue