feat: ajout de la commande kill Utilisation de la bibliotheque video.lib plutot que l'int 47h Ajout de l'aide aux commandes Colorisation des commandes internes
This commit is contained in:
parent
8025aca688
commit
1fbe390e3e
|
@ -47,7 +47,7 @@ waitchar:
|
|||
add di,cx
|
||||
jmp waitchar
|
||||
norr:
|
||||
cmp al,0Dh ;entrée
|
||||
cmp al,0dh ;entrée
|
||||
je entere
|
||||
cmp al,08h ;backspace
|
||||
je backspace
|
||||
|
@ -161,7 +161,7 @@ noaddext:
|
|||
xor bp,bp
|
||||
jmp replay
|
||||
reallyerror:
|
||||
push offset Error_Syntax
|
||||
push offset error_syntax
|
||||
call [print]
|
||||
push word ptr cs: [bp-8]
|
||||
call [print]
|
||||
|
@ -171,43 +171,48 @@ errorprec:
|
|||
call [print]
|
||||
jmp replay
|
||||
|
||||
Code_Exit:
|
||||
code_exit:
|
||||
pop ax
|
||||
retf
|
||||
|
||||
Code_Version:
|
||||
push offset Version_Text
|
||||
code_version:
|
||||
push offset version_text
|
||||
call [print]
|
||||
ret
|
||||
|
||||
Version_Text db 'Cos 2000 version 1.2Fr par Nico',0
|
||||
version_text db 'Cos 2000 version 1.4Fr par \c04MrNop',0
|
||||
|
||||
Code_Cls:
|
||||
code_cls:
|
||||
mov ah,2
|
||||
int 47h
|
||||
ret
|
||||
|
||||
Code_Reboot:
|
||||
push 0FFFFh
|
||||
code_reboot:
|
||||
push 0ffffh
|
||||
push 00000h
|
||||
db 0CBH
|
||||
retf
|
||||
|
||||
Code_Command:
|
||||
code_command:
|
||||
push offset def
|
||||
call [print]
|
||||
mov bx,offset commands
|
||||
showalls:
|
||||
mov si,[bx]
|
||||
add bx,8
|
||||
cmp si,0
|
||||
cmp word ptr [bx],0
|
||||
je endoff
|
||||
push si
|
||||
push word ptr [bx+4]
|
||||
push word ptr [bx+6]
|
||||
push word ptr [bx]
|
||||
push offset commandes
|
||||
call [print]
|
||||
mov ah,6
|
||||
int 47h
|
||||
jmp showalls
|
||||
endoff:
|
||||
ret
|
||||
|
||||
Code_Mode:
|
||||
def db 'Liste des commandes internes\l\l',0
|
||||
commandes db '%0 \h10:\h12%0 \h70%0\l',0
|
||||
|
||||
code_mode:
|
||||
mov cx,0
|
||||
call gettypeditem0
|
||||
mov ah,0
|
||||
|
@ -218,9 +223,7 @@ Code_Mode:
|
|||
int 47h
|
||||
ret
|
||||
|
||||
present db 'Le volume insere est nomme %0, Numero de serie : %hD\l\l',0
|
||||
nomdisque db 13 dup (0)
|
||||
Code_Dir:
|
||||
code_dir:
|
||||
mov ah,12
|
||||
int 48h
|
||||
push edx
|
||||
|
@ -236,12 +239,12 @@ mov ah,7
|
|||
int 48h
|
||||
jc nofiles
|
||||
go:
|
||||
push word ptr [di+Entries.FileAttr]
|
||||
push dword ptr [di+Entries.FileSize]
|
||||
push word ptr [di+Entries.FileTime]
|
||||
push word ptr [di+Entries.FileDate]
|
||||
push word ptr [di+Entries.FileTimeCrea]
|
||||
push word ptr [di+Entries.FileDateCrea]
|
||||
push word ptr [di+entries.fileattr]
|
||||
push dword ptr [di+entries.filesize]
|
||||
push word ptr [di+entries.filetime]
|
||||
push word ptr [di+entries.filedate]
|
||||
push word ptr [di+entries.filetimecrea]
|
||||
push word ptr [di+entries.filedatecrea]
|
||||
push di
|
||||
push offset line
|
||||
call [print]
|
||||
|
@ -254,14 +257,18 @@ push ebp
|
|||
push offset filess
|
||||
call [print]
|
||||
ret
|
||||
bufferentry db 32 dup (0)
|
||||
line db '\c07%n %d %t %d %t %z %a\l',0
|
||||
filess db '\l\l%u Fichier(s) au total\l',0
|
||||
|
||||
changing db 'Changement de repertoire vers ',0
|
||||
nomdisque db 13 dup (0)
|
||||
bufferentry db 512 dup (0)
|
||||
present db '\c02Le volume insere est nomme %0, Numero de serie : %hD\l\l',0
|
||||
|
||||
line db '\c07%n %d %t %d %t %z %a\l',0
|
||||
filess db '\l\l\c02%u Fichier(s) au total\l',0
|
||||
|
||||
code_cd:
|
||||
mov cx,0
|
||||
call gettypeditem0
|
||||
push di
|
||||
push offset changing
|
||||
call [print]
|
||||
mov si,di
|
||||
|
@ -272,8 +279,32 @@ code_cd:
|
|||
call [print]
|
||||
okchange:
|
||||
ret
|
||||
|
||||
changing db 'Changement de repertoire vers %0\l',0
|
||||
errorchanging db '\c04Impossible d''atteindre ce dossier',0
|
||||
|
||||
code_kill:
|
||||
mov cx,0
|
||||
call gettypeditem0
|
||||
push di
|
||||
push offset killing
|
||||
call [print]
|
||||
mov si,di
|
||||
mov ah,5
|
||||
int 49h
|
||||
jc nochanged
|
||||
mov ah,1
|
||||
int 49h
|
||||
jnc okchanged
|
||||
nochanged:
|
||||
push offset errorkilling
|
||||
call [print]
|
||||
okchanged:
|
||||
ret
|
||||
|
||||
killing db 'Fermeture du processus %0\l',0
|
||||
errorkilling db '\c04Impossible de fermer ce processus',0
|
||||
|
||||
code_refresh:
|
||||
mov ah,3
|
||||
int 48h
|
||||
|
@ -292,13 +323,14 @@ push di
|
|||
push offset present
|
||||
call [print]
|
||||
ret
|
||||
errorrefreshing db '\c04Impossible de lire le support',0
|
||||
|
||||
errorrefreshing db '\c04Impossible de lire le support',0
|
||||
extcom db '.CE',0
|
||||
|
||||
Code_Mem:
|
||||
code_mem:
|
||||
push offset msg
|
||||
call [print]
|
||||
xor ebx,ebx
|
||||
xor cx,cx
|
||||
listmcb:
|
||||
mov ah,4
|
||||
|
@ -311,20 +343,21 @@ inc dx
|
|||
inc dx
|
||||
push edx
|
||||
;parent
|
||||
cmp gs:[MB.Reference],0
|
||||
je next
|
||||
mov dx,gs:[MB.Reference]
|
||||
cmp gs: [mb.reference],0
|
||||
jne next
|
||||
push cs
|
||||
push offset none
|
||||
add bx,gs:[mb.sizes]
|
||||
jmp suitemn
|
||||
next:
|
||||
mov dx,gs: [mb.reference]
|
||||
dec dx
|
||||
dec dx
|
||||
push dx
|
||||
push offset MB.Names
|
||||
jmp suitemn
|
||||
next:
|
||||
push cs
|
||||
push offset none
|
||||
push offset mb.names
|
||||
suitemn:
|
||||
;Resident
|
||||
cmp gs:[MB.IsResident],true
|
||||
cmp gs: [mb.isresident],true
|
||||
jne notresident
|
||||
push offset resident
|
||||
jmp suitelistmcb
|
||||
|
@ -333,21 +366,26 @@ push offset nonresident
|
|||
suitelistmcb:
|
||||
;taille memoire
|
||||
xor edx,edx
|
||||
mov dx,gs:[MB.Sizes]
|
||||
mov dx,gs: [mb.sizes]
|
||||
shl edx,4
|
||||
push 6
|
||||
push edx
|
||||
;nom
|
||||
push gs
|
||||
push offset MB.Names
|
||||
push offset mb.names
|
||||
push offset line2
|
||||
call [print]
|
||||
jmp listmcb
|
||||
fino:
|
||||
shl ebx,4
|
||||
push ebx
|
||||
push offset fin
|
||||
call [print]
|
||||
ret
|
||||
resident db "oui",0
|
||||
nonresident db "non",0
|
||||
line2 db "%0P\h15%w\h24%0\h30%0P\h46%hW\l",0
|
||||
fin db "\l\l\c02%u octets de memoire disponible\l",0
|
||||
msg db "Plan de la memoire\l\lNom Taille Res Parent Mem\l",0
|
||||
none db ".",0
|
||||
|
||||
|
@ -420,85 +458,77 @@ fr: db '1', 02, '&', 02
|
|||
db '\', 86, '<', 86
|
||||
db '|', 86, '>', 86
|
||||
db 00, 79h, '~', 03
|
||||
db 00, 7Ah, '#', 04
|
||||
db 00, 7Bh, '{', 05
|
||||
db 00, 7Ch, '[', 06
|
||||
db 00, 7Dh, '|', 07
|
||||
db 00, 7Eh, '`', 08
|
||||
db 00, 7Fh, '\', 09
|
||||
db 00, 7ah, '#', 04
|
||||
db 00, 7bh, '{', 05
|
||||
db 00, 7ch, '[', 06
|
||||
db 00, 7dh, '|', 07
|
||||
db 00, 7eh, '`', 08
|
||||
db 00, 7fh, '\', 09
|
||||
db 00, 80h, '^', 10
|
||||
db 00, 81h, '@', 11
|
||||
db 00, 82h, ']', 12
|
||||
db 00, 83h, '}', 13
|
||||
db 00, 00, 00, 00
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
commands dw Str_Exit ,Code_Exit ,Syn_Exit ,Help_Exit
|
||||
dw Str_Version,Code_Version,Syn_Version,Help_Version
|
||||
dw Str_Cls ,Code_Cls ,Syn_Cls ,Help_Cls
|
||||
dw Str_Reboot ,Code_Reboot ,Syn_Reboot ,Help_Reboot
|
||||
dw Str_Command,Code_Command,Syn_Command,Help_Command
|
||||
dw Str_Mode ,Code_Mode ,Syn_Mode ,Help_Mode
|
||||
dw Str_Dir ,Code_Dir ,Syn_Dir ,Help_Dir
|
||||
dw Str_refresh ,Code_refresh ,Syn_refresh ,Help_refresh
|
||||
dw Str_cd ,Code_cd ,Syn_cd ,Help_cd
|
||||
dw Str_Mem ,Code_Mem ,Syn_Mem ,Help_Mem
|
||||
commands dw str_exit ,code_exit ,syn_exit ,help_exit
|
||||
dw str_version,code_version,syn_version,help_version
|
||||
dw str_cls ,code_cls ,syn_cls ,help_cls
|
||||
dw str_reboot ,code_reboot ,syn_reboot ,help_reboot
|
||||
dw str_command,code_command,syn_command,help_command
|
||||
dw str_mode ,code_mode ,syn_mode ,help_mode
|
||||
dw str_dir ,code_dir ,syn_dir ,help_dir
|
||||
dw str_refresh ,code_refresh ,syn_refresh ,help_refresh
|
||||
dw str_cd ,code_cd ,syn_cd ,help_cd
|
||||
dw str_mem ,code_mem ,syn_mem ,help_mem
|
||||
dw str_kill ,code_kill ,syn_kill ,help_kill
|
||||
dw 0
|
||||
|
||||
Str_Exit db 'QUIT',0
|
||||
Str_Version db 'VERS',0
|
||||
Str_Cls db 'CLEAR',0
|
||||
Str_Reboot db 'REBOOT',0
|
||||
Str_Command db 'CMDS',0
|
||||
Str_Mode db 'MODE',0
|
||||
Str_Dir db 'DIR',0
|
||||
Str_refresh db 'DISK',0
|
||||
Str_cd db 'CD',0
|
||||
Str_Mem db 'MEM',0
|
||||
Syn_Exit db 0
|
||||
Syn_Version db 0
|
||||
Syn_Cls db 0
|
||||
Syn_Reboot db 0
|
||||
Syn_Command db 0
|
||||
Syn_Mode db 'FFH',0
|
||||
Syn_Dir db 0
|
||||
Syn_refresh db 0
|
||||
Syn_cd db '@',0
|
||||
Syn_Mem db 0
|
||||
Help_Exit db 0
|
||||
Help_Version db 0
|
||||
Help_Cls db 0
|
||||
Help_Reboot db 0
|
||||
Help_Command db 0
|
||||
Help_Mode db 0
|
||||
Help_Dir db 0
|
||||
Help_refresh db 0
|
||||
Help_cd db 0
|
||||
Help_Mem db 0
|
||||
str_exit db 'QUIT',0
|
||||
str_version db 'VERS',0
|
||||
str_cls db 'CLEAR',0
|
||||
str_reboot db 'REBOOT',0
|
||||
str_command db 'CMDS',0
|
||||
str_mode db 'MODE',0
|
||||
str_dir db 'DIR',0
|
||||
str_refresh db 'DISK',0
|
||||
str_cd db 'CD',0
|
||||
str_mem db 'MEM',0
|
||||
str_kill db 'KILL',0
|
||||
|
||||
syn_exit db 0
|
||||
syn_version db 0
|
||||
syn_cls db 0
|
||||
syn_reboot db 0
|
||||
syn_command db 0
|
||||
syn_mode db 'FFH',0
|
||||
syn_dir db 0
|
||||
syn_refresh db 0
|
||||
syn_cd db '@',0
|
||||
syn_mem db 0
|
||||
syn_kill db '@',0
|
||||
|
||||
help_exit db 'Permet de quitter l''interpreteur',0
|
||||
help_version db 'Affiche la version de COS',0
|
||||
help_cls db 'Efface l''ecran',0
|
||||
help_reboot db 'Redemarre l''ordinateur',0
|
||||
help_command db 'Affiche le detail des commandes',0
|
||||
help_mode db 'Modifie le mode video en cours',0
|
||||
help_dir db 'Affiche le contenu du repertoire courant',0
|
||||
help_refresh db 'Lit le support disquette insere',0
|
||||
help_cd db 'Change le repertoire courant',0
|
||||
help_mem db 'Affiche le plan de la memoire',0
|
||||
help_kill db 'Termine le processus cible',0
|
||||
|
||||
derror db '\c04Erreur de Syntaxe !',0
|
||||
Error_Syntax db '\c04La commande ou l''executable n''existe pas ! F1 pour ',0
|
||||
error_syntax db '\c04La commande ou l''executable n''existe pas ! F1 pour ',0
|
||||
prompt db '\c07>',0
|
||||
msginit db '\m02\e\c07\l\lInterpreteur de commande COS V1.9',0
|
||||
msginit db '\m02\e\c07\l\lInterpreteur de commande COS V1.9\lSous license \c05GPL\c07 - Ecrit par \c04MrNop\l\c07Utilisez la commande CMDS pour connaitres les commandes disponibles\l',0
|
||||
|
||||
include str0.asm
|
||||
|
||||
dir db 32 dup (0)
|
||||
buffer db 256 dup (0)
|
||||
buffer2 db 256 dup (0)
|
||||
buffer db 128 dup (0)
|
||||
buffer2 db 128 dup (0)
|
||||
|
||||
imports:
|
||||
db "VIDEO.LIB::print",0
|
||||
|
|
Loading…
Reference in New Issue