fix: correction de nombreux bogues suite à la migration vers FASM

This commit is contained in:
Nicolas Hordé 2019-07-17 17:29:13 +02:00
parent 06eb38cad0
commit 8e35ea4794
23 changed files with 226 additions and 226 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 pointe par ds:%0 lment %1 delim %3 ;Renvoie dans ax le type de la str0 pointe par ds:%0 lment %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 pointe par ds:%0 ;Renvoie dans ax le type de la str0 pointe 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 pointe peut ˆtre un nom de fichier ;Renvoie non carry si la str ds:%0 pointe 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 pointe en ds:%0 ;Inverse la chaine pointe 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'lments de ds:%0 à %1 ;Met le nombre d'lments 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'lment %0 ;Renvoie la taille ax de l'lment %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'lment %2 de ds:%0 ;Renvoie en ds:%1 l'lment %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'lment %1 de ds:%0 ;renvoi un pointeur ax sur l'lment %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'lments ax de ds:%0 ;Renvoie le nombre d'lments 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 pointe en ds:%0 ;renvoie la taille en octets AX de la chaine pointe 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 pointe ds:%0 a %1 ;Met la taille en octets de la chaine pointe 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

View File

@ -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

View File

@ -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 dcompress cx compress ;decompress ds:si en es:di taille bp dcompress 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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -183,7 +183,7 @@ retrace:
jmp rool jmp rool
endee: endee:
invoke restorestate invoke restorestate
retf ret
errorloading: errorloading:
push cs push cs

View File

@ -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

View File

@ -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]