Small operating system made in assembly language
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1436 lines
24 KiB

![logo](https://github.com/dahut87/cos2000v1/raw/master/graphisme/logo.png)
## Documentation d'origine (importée)
COS 2000
Compatible Operating System
Pr<EFBFBD>sentation
Comment l<EFBFBD>installer
Mode d<EFBFBD>emploi
Faire un programme pour COS
Liste des APIs
D<EFBFBD>tail des APIs
En cas de probl<EFBFBD>me
mailto:nicolas@palon.fr
Pr<EFBFBD>sentation
COS2000, par d<EFBFBD>finition, est syst<EFBFBD>me d'exploitation. Celui-ci prend la direction des op<EFBFBD>rations <EFBFBD> partir du moment o<EFBFBD> le PC est mis sous tension (Apr<EFBFBD>s le BIOS). Il g<EFBFBD>re tous les p<EFBFBD>riph<EFBFBD>riques rattach<EFBFBD>s au PC et offre aux programmeurs les moyens de d<EFBFBD>velopper des applications compatibles en fournissant des APIs (Application Programming Interface). COS2000 est bas<EFBFBD> sur un concept particulier qui est d'offrir aux programmeurs un maximum de fonctions int<EFBFBD>gr<EFBFBD>es pour faciliter le travail des programmeurs et r<EFBFBD>duire la taille des programmes.
Comment l'installer ?
Pour installer COS2000 :
Sous dos/windows 9x
Ins<EFBFBD>rez une disquette 1.44 Mo vierge ou inutile dans votre lecteur.
Lancez le programme SETUP.COM situ<EFBFBD> dans le dossier de COS2000.
- Si celui ci ne d<EFBFBD>tecte pas d'erreur, COS2000 est install<EFBFBD> !
Sous windows NT/Xp
Ins<EFBFBD>rez une disquette 1.44 Mo vierge ou inutile dans votre lecteur.
Lancez le programme SETUP.EXE situ<EFBFBD> dans le dossier de COS2000.
- Si celui ci ne d<EFBFBD>tecte pas d'erreur, COS2000 est install<EFBFBD> !
Sous Linux
Ins<EFBFBD>rez une disquette 1.44 Mo vierge ou inutile dans votre lecteur.
Lancez le programme SETUP.SH situ<EFBFBD> dans le dossier de COS2000.
- Si celui ci ne d<EFBFBD>tecte pas d'erreur, COS2000 est install<EFBFBD> !
Pour lancer COS2000 :
Ins<EFBFBD>rez la disquette o<EFBFBD> COS2000 est install<EFBFBD>.
Veillez que dans le BIOS vous puissiez d<EFBFBD>marrer <EFBFBD> partir de A:.
Red<EFBFBD>marrer votre ordinateur et vous serez sur COS2000.
Mode d'emploi
L<EFBFBD>interpr<EFBFBD>teur de commande COS est le premier logiciel qui est lanc<EFBFBD> au d<EFBFBD>marrage. A partir de celui-ci vous pouvez ex<EFBFBD>cuter quelques commandes ou logiciels.
En plus des logiciels, l'interpr<EFBFBD>teur de commandes peut ex<EFBFBD>cuter 6 commandes :
QUIT
Quitte l'interpr<EFBFBD>teur.
VERS
Donne la version de COS2000.
CLEAR
Efface l'<EFBFBD>cran.
REBOOT
Red<EFBFBD>marre le PC.
CMDS
Donne la liste des commandes disponibles.
MODE [mode]
Permet de changer de mode vid<EFBFBD>o. [mode] doit <EFBFBD>tre un entier compris entre 1 et 9. les modes au del<EFBFBD> de 4 sont des modes graphiques <EFBFBD> texte <EFBFBD>mul<EFBFBD>. Il est d<EFBFBD>conseill<EFBFBD> de les utiliser car il est parfois impossible de revenir aux modes texte.
DISK
Permet de lire un support disquette 1.44 Mo au format FAT12.
CD
Change le dossier actuel vers celui sp<EFBFBD>cifi<EFBFBD>.
DIR
Permet de lister le contenu du dossier actuel.
MEM
Permet de lister le contenu du dossier actuel.
Faire un programme pour COS
Toute contribution <EFBFBD> COS 2000 en terme de programme est la bienvenue, un r<EFBFBD>pertoire <EFBFBD> contribs <EFBFBD> contiendra les programmes des diff<EFBFBD>rents contributeurs. Aucune modification a ceux-ci ne sera faire sans l<EFBFBD>accord explicite de l<EFBFBD>auteur. Pour une contribution <EFBFBD>crivez moi a l<EFBFBD>adresse mailto:nicolas@palon.fr.
Pour l<EFBFBD>instant il n<EFBFBD>y a aucun formatage particulier du code <EFBFBD> respecter pour faire un programme pour COS 2000. Il faut pour l<EFBFBD>instant seulement un point d<EFBFBD>entr<EFBFBD>e en 0100h comme un .COM de dos, 64 Ko sont donc disponible au programme, la pile utilis<EFBFBD> est celle du syst<EFBFBD>me d<EFBFBD>exploitation, c<EFBFBD>est donc le seul segment qui ne sera pas initialis<EFBFBD> comme les autres.
Pour clore le programme il suffit de faire un retour far.
Exemple avec un Hello Word.
Avec tasm
.model tiny ;model tiny (.com)
.486 ;Pour processeur 80486
Smart ;Optimisations
.code ;Segment de code
org 0100h ;Point d<EFBFBD>entr<EFBFBD> en 0100h
start:
mov ah,0Dh
mov si,offset msg
int 47h ;Afficher le texte (Showstring0)
xor ax,ax
int 16h ;Attendre l<EFBFBD>appuie sur une touche
db 0CBH ;retour far
msg db <EFBFBD>Hello World<EFBFBD>,0
end start
Avec nasm
[bits 16] ;16 bits
[org 0x0100] ;Point d<EFBFBD>entr<EFBFBD> en 0100h
section .text ;Segment de code
start:
mov ah,0x0D
mov si,msg
int 0x47 ;Afficher le texte (Showstring0)
xor ax,ax
int 0x16 ;Attendre l<EFBFBD>appuie sur une touche
retf ;retour far
msg db <EFBFBD>Hello World<EFBFBD>,0
Comme vous pouvez le constater l<EFBFBD>appel des APIs de Cos se r<EFBFBD>alise par le biais d<EFBFBD>interruptions logiciels dont voici la liste.
Liste des APIs
disque.sys : Gestionnaires FAT12 et Disquette
Interruption 48h (Disquette uniquement)
00h readsector
01h writesector
02h verifysector
03h initdrive
04h loadfile
05h compressrle
06h decompressrle
07h findfirstfile
08h findnextfile
09h getfreespace
0Ah searchfile
0Bh getname
0Ch getserial
0Dh changedir
0Eh readcluster
0Fh writecluster
10h getdir
11h projfile
11h execfile
port.sys : Gestionnaires port parall<EFBFBD>le
Interruption 0Dh (LPT1) ou 0Fh (LPT2)
00h getlptin
01h getlptout
02h getlptinout
03h setlptin
04h setlptout
05h setlptinout
06h getlpt
07h getfirstlpt
08h setemettor
09h setreceptor
0Ah settimeout
0Bh gettimeout
0Ch receivelpt
0Dh sendlpt
0Eh receivelptblock
0Fh sendlptblock
10h receivecommand
11h sendcommand
souris.sys : Gestionnaires souris
Interruption 74h (PS/2)
00h cmdmouse
01h cmdmouse2
02h detectmouse
03h getmouse
04h getmousescreen
05h configmouse
8259a.sys : Gestionnaires contr<EFBFBD>leur d'interruption programmable
Interruption 50h (Ma<EFBFBD>tre et esclave)
00h enableirq
01h disableirq
02h readmaskirq
03h readirr
04h readisr
05h installhandler
06h replacehandler
07h getint
08h setint
09h seteoi
video.sys : Gestionnaires de la carte vid<EFBFBD>o
Interruption 47h (VGA)
00h setvideomode
01h getvideomode
02h cleartext
03h changefont
04h loadfont
05h space
06h line
07h showchar
08h showint
09h showsigned
0Ah showhex
0Bh showbin
0Ch showstring
0Dh showstring0
0Eh showcharat
0Fh showintat
10h showsignedat
11h showhexat
12h showbinat
13h showstringat
14h showstring0at
15h setcolor
16h getcolor
17h scrolldown
18h getxy
19h setxy
1Ah savescreen
1Bh restorescreen
1Ch page2to1
1Dh page1to2
1Eh xchgPages
1Fh savepage1
20h changelineattr
21h waitretrace
22h getinfos
23h loadbmp
24h showbmp
25h viewbmp
26h savedac
27h restoredac
28h savestate
29h restorestate
2Ah enablescroll
2Bh disablescroll
2Ch showdate
2Dh showtime
2Eh showname
2Fh showattr
30h showsize
31h getchar
mcb.sys : Gestionnaires de m<EFBFBD>moire vive
Interruption 49h (MB)
00h mbinit
01h mbfree
02h mbcreate
03h mbresident
04h mbget
05h mbfind
06h mbchown
07h mballoc
08h mbclean
09h mbfindsb
Les possibilit<EFBFBD>s de COS2000 sont aujourd'hui tr<EFBFBD>s limit<EFBFBD>es car il est en cours de d<EFBFBD>veloppement.
D<EFBFBD>tail des APIs
- Interruption 48h
Readsector
Lit le secteur CX et le met en ES:DI. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=0
CX
ES
DI
Donn<EFBFBD>es en sortie Flag Carry
Writesector
Ecrit le secteur CX avec les donn<EFBFBD>es point<EFBFBD>s par DS:SI. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=1
CX
DS
SI
Donn<EFBFBD>es en sortie Flag Carry
Verifysector
V<EFBFBD>rifie si le secteur CX n<EFBFBD>est pas d<EFBFBD>fectueux. Met le flag carry <EFBFBD> 1 si erreur et flag equal <EFBFBD> 0 si secteur d<EFBFBD>fectueux.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=2
CX
Donn<EFBFBD>es en sortie Flag Carry
Flag Equal
Initdrive
Fonction initialisant le pilote et le mat<EFBFBD>riel afin d<EFBFBD>utiliser ult<EFBFBD>rieurement les fonctions de disque.sys. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=3
Donn<EFBFBD>es en sortie Flag Carry
Loadfile
Charge le fichier dont le nom est point<EFBFBD> par DS:SI en m<EFBFBD>moire dans ES:DI et renvoie le nombre d<EFBFBD>octets lu en ECX. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=4
DS
SI
ES
DI
Donn<EFBFBD>es en sortie ECX
Flag Carry
Compressrle
Compresse le contenu de la m<EFBFBD>moire point<EFBFBD> par DS:SI (selon une m<EFBFBD>thode RLE) et dont la taille est sp<EFBFBD>cifi<EFBFBD> par CX. Le r<EFBFBD>sultat sera mis en ES:DI ainsi que la nouvelle taille m<EFBFBD>moire (octets) en BP.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=5
DS
SI
ES
DI
CX
Donn<EFBFBD>es en sortie
Decompressrle
D<EFBFBD>compresse le contenu de la m<EFBFBD>moire point<EFBFBD> par DS:SI (selon une m<EFBFBD>thode RLE) et dont la taille est sp<EFBFBD>cifi<EFBFBD> par CX. Le r<EFBFBD>sultat sera mis en ES:DI ainsi que la nouvelle taille m<EFBFBD>moire (octets) en BP.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=6
DS
SI
ES
DI
CX
Donn<EFBFBD>es en sortie
Findfirstfile
Renvoie en ES:DI la premi<EFBFBD>re entr<EFBFBD>e du r<EFBFBD>pertoire courant (format BRUT). Met le flag carry <EFBFBD> 1 si erreur. Cette fonction pr<EFBFBD>pare aussi l<EFBFBD>usage de la fonction findnextfile.
Format d<EFBFBD>une entr<EFBFBD>e de r<EFBFBD>pertoire :
Entries Struc
FileName db 8 dup (0)
FilExt db 3 dup (0)
FileAttr db 0
FileReserved db 0
FileTimeCreaMs db 0 ;(*10 ms)
FileTimeCrea dw 0
FileDateCrea dw 0
FileDateAcc dw 0
FileNotused dw 0
FileTime dw 0
FileDate dw 0
FileGroup dw 0
FileSize dd 0
Entries Ends
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=7
ES
DI
Donn<EFBFBD>es en sortie Flag Carry
Findnextfile
Renvoie en ES:DI l<EFBFBD>entr<EFBFBD>e suivante du r<EFBFBD>pertoire courant (format BRUT). Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=8
ES
DI
Donn<EFBFBD>es en sortie Flag Carry
Getfreespace
Renvoie en EDX l'espace disque libre du volume en octets. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=9
Donn<EFBFBD>es en sortie EDX
Flag Carry
Searchfile
Renvois dans ES:DI l<EFBFBD>entr<EFBFBD>e de r<EFBFBD>pertoire du fichier point<EFBFBD> par DS:SI. Met le flag equal a 0 si pas existant. Met le flag carry <EFBFBD> un si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=10
DS
SI
ES
DI
Donn<EFBFBD>es en sortie Flag Equal
Flag Carry
Getname
Renvois dans ES:DI le nom du support courant.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=11
ES
DI
Donn<EFBFBD>es en sortie
Getserial
Renvois le num<EFBFBD>ro de s<EFBFBD>rie du support courant en EDX.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=11
Donn<EFBFBD>es en sortie EDX
Changedir
Change le r<EFBFBD>pertoire courant a celui dont le nom est point<EFBFBD> par DS:SI. Met le flag carry <EFBFBD> un si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=13
DS
SI
Donn<EFBFBD>es en sortie Flag Carry
Readcluster
Lit le cluster (groupe) CX et le met en ES:DI. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=14
ES
DI
Donn<EFBFBD>es en sortie Flag Carry
Writecluster
Ecrit le cluster (groupe) CX avec les donn<EFBFBD>es point<EFBFBD>s par DS:SI. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=15
ES
DI
Donn<EFBFBD>es en sortie Flag Carry
Getdir
Renvoie en ES:DI sous forme de cha<EFBFBD>ne a z<EFBFBD>ro terminal le nom du r<EFBFBD>pertoire courant.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=16
ES
DI
Donn<EFBFBD>es en sortie
Projfile
Charge le fichier dont le nom est point<EFBFBD> par DS:SI dans un bloc m<EFBFBD>moire. Renvoie en ECX le nombre d<EFBFBD>octets lus et en ES l<EFBFBD>adresse du bloc de m<EFBFBD>moire. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=17
DS
SI
Donn<EFBFBD>es en sortie ECX
ES
Flag Carry
Execfile
Ex<EFBFBD>cute le fichier dont le nom est point<EFBFBD> par DS:SI. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=18
DS
SI
Donn<EFBFBD>es en sortie Flag Carry
- Interruption 47h
Setvideomode
Fixe le mode vid<EFBFBD>o courant a dont le num<EFBFBD>ro est AL. Met le flag carry <EFBFBD> 1 si erreur.
MODES :
0 -> 40x25x16 couleurs en texte
1 -> 80x25x16 couleurs en texte
2 -> 80x50x16 couleurs en texte
3 -> 100x50x16 couleurs en texte
4 -> 100x60x16 couleurs en texte
5 -> 320x200x256 couleurs en graphique
6 -> 320x400x256 couleurs en graphique
7 -> 320x480x256 couleurs en graphique
8 -> 360x480x256 couleurs en graphique
9 -> 400x600x256 couleurs en graphique
Les modes sont g<EFBFBD>n<EFBFBD>ralement utilisable avec une carte VGA 256ko, mais la plupart surexploitent le contr<EFBFBD>leur vid<EFBFBD>o donc ne fonctionne pas toujours. L<EFBFBD>utilisation des fonctions caract<EFBFBD>res est disponible en mode graphique par l<EFBFBD>usage de polices <EFBFBD>mul<EFBFBD>s mais beaucoup de bugs sont encore pr<EFBFBD>sent.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=0
AL
Donn<EFBFBD>es en sortie Flag Carry
Getvideomode
Retourne le mode vid<EFBFBD>o courant a dans AL.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=1
Donn<EFBFBD>es en sortie AL
Getvideomode
Efface l<EFBFBD><EFBFBD>cran en mode graphique ou texte.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=2
Donn<EFBFBD>es en sortie
Setfont
Active la police de num<EFBFBD>ro CL parmi les 8 disponibles.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=3
CL
Donn<EFBFBD>es en sortie
Getfont (PAS ENCORE IMPLEMENTE)
R<EFBFBD>cup<EFBFBD>re en CL le N<EFBFBD> de police actif.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH
CL
Donn<EFBFBD>es en sortie
Loadfont
Charge une police point<EFBFBD>e par DS:SI dans la carte vid<EFBFBD>o sous le n<EFBFBD> de police BL. La taille en hauteur de la police (en pixel) doit <EFBFBD>tre renseign<EFBFBD> dans CL Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=4
DS
SI
CL
Donn<EFBFBD>es en sortie Flag Carry
Showspace
Affiche un espace <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=5
Donn<EFBFBD>es en sortie
Showline
Affiche un retour a la ligne <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=6
Donn<EFBFBD>es en sortie
Showchar
Affiche un caract<EFBFBD>re dont le code ASCII est contenu dans DL <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=7
DL
Donn<EFBFBD>es en sortie
Showint
Affiche le nombre entier contenu dans EDX <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=8
EDX
Donn<EFBFBD>es en sortie
Showsigned
Affiche le nombre entier sign<EFBFBD> contenu dans EDX <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=9
EDX
Donn<EFBFBD>es en sortie
Showhex
Affiche le nombre hexad<EFBFBD>cimal contenu dans EDX et de taille CX bits <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=10
EDX
CX
Donn<EFBFBD>es en sortie
ShowBin
Affiche le nombre binaire contenu dans EDX et de taille CX bits <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=11
EDX
CX
Donn<EFBFBD>es en sortie
ShowString
Affiche la cha<EFBFBD>ne de caract<EFBFBD>re (type fixe) point<EFBFBD>e par DS:SI <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Cha<EFBFBD>ne de type fixe :
Chaine db 24,<EFBFBD>c un chaine de type fixe<EFBFBD>
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=12
DS
SI
Donn<EFBFBD>es en sortie
ShowString0
Affiche la cha<EFBFBD>ne de caract<EFBFBD>re (type z<EFBFBD>ro terminal) point<EFBFBD>e par DS:SI <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Cha<EFBFBD>ne de type z<EFBFBD>ro terminal:
Chaine db <EFBFBD>c un chaine de type z<EFBFBD>ro terminal<EFBFBD>,0
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=13
DS
SI
Donn<EFBFBD>es en sortie
Showchartat
R<EFBFBD>alise la m<EFBFBD>me fonction que la fonction showchar en sp<EFBFBD>cifiant les coordonn<EFBFBD>es BL (y), BH (x) ou tout devra <EFBFBD>tre affich<EFBFBD>.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=14
DL
BL BH
Donn<EFBFBD>es en sortie
Showintat
R<EFBFBD>alise la m<EFBFBD>me fonction que la fonction showint en sp<EFBFBD>cifiant les coordonn<EFBFBD>es BL (y), BH (x) ou tout devra <EFBFBD>tre affich<EFBFBD>.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=15
EDX
BL BH
Donn<EFBFBD>es en sortie
Showsignedat
R<EFBFBD>alise la m<EFBFBD>me fonction que la fonction showsigned en sp<EFBFBD>cifiant les coordonn<EFBFBD>es BL (y), BH (x) ou tout devra <EFBFBD>tre affich<EFBFBD>.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=16
EDX
BL BH
Donn<EFBFBD>es en sortie
Showhexat
R<EFBFBD>alise la m<EFBFBD>me fonction que la fonction showhex en sp<EFBFBD>cifiant les coordonn<EFBFBD>es BL (y), BH (x) ou tout devra <EFBFBD>tre affich<EFBFBD>.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=17
EDX
CX
BL BH
Donn<EFBFBD>es en sortie
Showbinat
R<EFBFBD>alise la m<EFBFBD>me fonction que la fonction showbin en sp<EFBFBD>cifiant les coordonn<EFBFBD>es BL (y), BH (x) ou tout devra <EFBFBD>tre affich<EFBFBD>.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=18
EDX
CX
BL BH
Donn<EFBFBD>es en sortie
Showstringat
R<EFBFBD>alise la m<EFBFBD>me fonction que la fonction showstring en sp<EFBFBD>cifiant les coordonn<EFBFBD>es BL (y), BH (x) ou tout devra <EFBFBD>tre affich<EFBFBD>.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=19
DS
SI
BL BH
Donn<EFBFBD>es en sortie
Showstring0at
R<EFBFBD>alise la m<EFBFBD>me fonction que la fonction showstring0 en sp<EFBFBD>cifiant les coordonn<EFBFBD>es BL (y), BH (x) ou tout devra <EFBFBD>tre affich<EFBFBD>.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=20
DS
SI
BL BH
Donn<EFBFBD>es en sortie
Setcolor
Change la couleur courante (attributs) pour les op<EFBFBD>rations textes a celle sp<EFBFBD>cifi<EFBFBD> dans CL
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=21
CL
Donn<EFBFBD>es en sortie
Setcolor
R<EFBFBD>cup<EFBFBD>re dans CL la couleur courante (attributs) pour les op<EFBFBD>rations textes.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=22
Donn<EFBFBD>es en sortie CL
Setstyle (PAS ENCORE IMPLEMENTE)
Change le style (transparent ou non) courant pour les op<EFBFBD>rations graphique a celui sp<EFBFBD>cifi<EFBFBD> dans CL
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH
CL
Donn<EFBFBD>es en sortie
Getstyle (PAS ENCORE IMPLEMENTE)
R<EFBFBD>cup<EFBFBD>re dans CL le style courant (transparent ou non) pour les op<EFBFBD>rations graphique.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH
Donn<EFBFBD>es en sortie CL
Scrolldown
D<EFBFBD>file l<EFBFBD><EFBFBD>cran texte ou graphique de CX caract<EFBFBD>res vers le haut.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=23
CX
Donn<EFBFBD>es en sortie
Getxy
Renvoie en BH les coordonn<EFBFBD>es x du curseur texte et en BL les coordonn<EFBFBD>es y du curseur texte.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=24
Donn<EFBFBD>es en sortie BH BL
Setxy
Fixe les coordonn<EFBFBD>es x du curseur texte a BH et les coordonn<EFBFBD>es y du curseur texte a L.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=25
BH BL
Donn<EFBFBD>es en sortie
SaveScreen
Sauvegarde le contenu de l<EFBFBD><EFBFBD>cran dans un bloc m<EFBFBD>moire appel<EFBFBD> /vgascreen li<EFBFBD> a l<EFBFBD>application appelante.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=26
Donn<EFBFBD>es en sortie
RestoreScreen
Restaure le contenu de l<EFBFBD><EFBFBD>cran pr<EFBFBD>c<EFBFBD>demment sauvegard<EFBFBD> dans un bloc m<EFBFBD>moire.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=27
Donn<EFBFBD>es en sortie
Page1to2
Copie le contenu de la page vid<EFBFBD>o n<EFBFBD>1 dans la page vid<EFBFBD>o n<EFBFBD>2. Ne fonctionne qu<EFBFBD>en mode texte.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=28
Donn<EFBFBD>es en sortie
Page2to1
Copie le contenu de la page vid<EFBFBD>o n<EFBFBD>2 dans la page vid<EFBFBD>o n<EFBFBD>1. Ne fonctionne qu<EFBFBD>en mode texte.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=29
Donn<EFBFBD>es en sortie
Xchgpage
Echange le contenu de la page vid<EFBFBD>o n<EFBFBD>2 dans la page vid<EFBFBD>o n<EFBFBD>1. Ne fonctionne qu<EFBFBD>en mode texte.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=30
Donn<EFBFBD>es en sortie
Savepage1
Sauvegarde le contenu de l<EFBFBD><EFBFBD>cran dans un bloc m<EFBFBD>moire appel<EFBFBD> /vgapage1 li<EFBFBD> a l<EFBFBD>application appelante.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=31
Donn<EFBFBD>es en sortie
Changelineattr (VA ETRE SUPPRIMER)
Modifie la couleur de la ligne N<EFBFBD>DI a l<EFBFBD><EFBFBD>cran a celle contenue dans AL.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=32
AL
DI
Donn<EFBFBD>es en sortie
Waitretrace
Synchronisation avec la retrace verticale.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=33
Donn<EFBFBD>es en sortie
Getvgainfos
Renvoie un bloc de donn<EFBFBD>e en ES:DI contenant l'<EFBFBD>tat de la carte graphique.
lines db 0
columns db 0
x db 0
y db 0
xy dw 0
colors db 7
mode db 0FFh
pagesize dw 0
pages db 0
font db 0
graphic db 0
xg dw 0
yg dw 0
style dw 0
nbpage db 0
pagesshowed db 0
plane db 0
xyg dw 0
linesize dw 0
adress dw 0
base dw 0
scrolling db 1
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=34
ES
SI
Donn<EFBFBD>es en sortie
Loadbmppalet
Charge la palette (DAC) du BMP point<EFBFBD>e par DS:SI.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=35
DS
SI
Donn<EFBFBD>es en sortie
Showbmp
Affiche le BMP point<EFBFBD>e par DS:SI en X:BX, Y:CX.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=36
DS
SI
BX
CX
Donn<EFBFBD>es en sortie
Viewbmp
Affiche le BMP point<EFBFBD>e par DS:SI en X:BX, Y:CX avec la pr<EFBFBD>paration de la palette.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=3
DS
SI
BX
CX
Donn<EFBFBD>es en sortie
Savedac
Sauvegarde le contenu de la palette (DAC) dans un bloc m<EFBFBD>moire appel<EFBFBD> /vgadac li<EFBFBD> a l<EFBFBD>application appelante.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=38
Donn<EFBFBD>es en sortie
Savedac
Restaure le contenu de la palette (DAC) pr<EFBFBD>c<EFBFBD>demment sauvegard<EFBFBD> dans un bloc m<EFBFBD>moire.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=39
Donn<EFBFBD>es en sortie
Savestate
Sauvegarde l<EFBFBD>etat complet de la carte graphique dans un bloc m<EFBFBD>moire appel<EFBFBD> /vga li<EFBFBD> a l<EFBFBD>application appelante. FONCTIONNE PEUT ETRE EN MODE GRAPHIQUE.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=40
Donn<EFBFBD>es en sortie
Restorestate
Restaure l<EFBFBD>etat complet de la carte graphique pr<EFBFBD>c<EFBFBD>demment sauvegard<EFBFBD> dans un bloc m<EFBFBD>moire. FONCTIONNE PEUT ETRE EN MODE GRAPHIQUE.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=41
Donn<EFBFBD>es en sortie
EnableScroll
Active le d<EFBFBD>filement automatique de l<EFBFBD><EFBFBD>cran lors de d<EFBFBD>passements.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=42
Donn<EFBFBD>es en sortie
DisableScroll
Desactive le d<EFBFBD>filement automatique de l<EFBFBD><EFBFBD>cran lors de d<EFBFBD>passements.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=43
Donn<EFBFBD>es en sortie
Showdate
Affiche la date contenue dans DX <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=44
DX
Donn<EFBFBD>es en sortie
Showtime
Affiche l<EFBFBD>heure contenue dans <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=45
DX
Donn<EFBFBD>es en sortie
Showname
Affiche le nom de fichier point<EFBFBD> par DS:SI <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=46
DS
SI
Donn<EFBFBD>es en sortie
Showattr
Affiche les attributs fichiers contenus dans DL <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=47
DL
Donn<EFBFBD>es en sortie
Showsize
Affiche le la taille en octets (et multiples) contenue dans EDX <EFBFBD> l<EFBFBD><EFBFBD>cran apr<EFBFBD>s le curseur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=48
EDX
Donn<EFBFBD>es en sortie
Getchar
Renvoie le caract<EFBFBD>re situ<EFBFBD> sous le curseur dans DL.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=49
Donn<EFBFBD>es en sortie DL
Setxyg (PAS ENCORE IMPLEMENTE)
Change les coordonn<EFBFBD>es du curseur graphique a X:BX,Y:CX.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH
BX CX
Donn<EFBFBD>es en sortie
Getxyg (PAS ENCORE IMPLEMENTE NI ECRIT)
R<EFBFBD>cup<EFBFBD>re les coordonn<EFBFBD>es du curseur graphique a X:BX,Y:CX.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH
Donn<EFBFBD>es en sortie BX CX
Showpixel (PAS ENCORE IMPLEMENTE)
Affiche un pixel de couleur AL en X:BX,Y:CX.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH
BX CX
AL
Donn<EFBFBD>es en sortie
Getpixel (PAS ENCORE IMPLEMENTE)
R<EFBFBD>cup<EFBFBD>re la couleur du pixel en X:BX,Y:CX dans AL.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH
BX CX
Donn<EFBFBD>es en sortie AL
- Interruption 49h
Mbinit
Initialise les blocs de m<EFBFBD>moire pour une utilisation futur des fonction MBs (inutile car le syst<EFBFBD>me le r<EFBFBD>alise au boot). Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=0
Donn<EFBFBD>es en sortie Flag Carry
Mbfree
Lib<EFBFBD>re le bloc de m<EFBFBD>moire GS ainsi que tout les sous blocs de m<EFBFBD>moire li<EFBFBD> (fils). Un bloc de m<EFBFBD>moire consid<EFBFBD>r<EFBFBD> r<EFBFBD>sident ou un sous bloc r<EFBFBD>sident ne sera pas lib<EFBFBD>r<EFBFBD>. Met le flag carry <EFBFBD> 1 si erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=1
GS
Donn<EFBFBD>es en sortie Flag Carry
Mbcreate
Cr<EFBFBD>e un bloc de CX caract<EFBFBD>res (octets) et de nom DS :SI. Retourne en GS le bloc de m<EFBFBD>moire allou<EFBFBD> et met le flag carry <EFBFBD> 1 en cas d<EFBFBD>erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=2
DS
SI
Donn<EFBFBD>es en sortie GS
Flag Carry
Mbresident
Met le bloc GS en situation de bloc m<EFBFBD>moire r<EFBFBD>sident (non lib<EFBFBD>rable).
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=3
GS
Donn<EFBFBD>es en sortie
Mbget
Renvoie en GS l<EFBFBD>adresse du bloc m<EFBFBD>moire situ<EFBFBD> en CX <EFBFBD>me position. Met le flag carry <EFBFBD> 1 si introuvable.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=4
Donn<EFBFBD>es en sortie GS
Flag Carry
Mbfind
Renvoie en GS le bloc de m<EFBFBD>moire dont le nom correspond a la cha<EFBFBD>ne de caract<EFBFBD>re situ<EFBFBD> en DS:SI. Met le flag carry <EFBFBD> 1 si introuvable.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=5
DS
SI
Donn<EFBFBD>es en sortie GS
Flag Carry
Mbchown
Change le proprietaire (p<EFBFBD>re) du bloc de m<EFBFBD>moire GS a celui precis<EFBFBD> par DX.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=6
GS
DX
Donn<EFBFBD>es en sortie Flag Carry
Mballoc
Alloue un bloc de CX caract<EFBFBD>res (octets) pour le processus (programme) qui le demande. Retourne en GS le bloc de m<EFBFBD>moire allou<EFBFBD> et met le flag carry <EFBFBD> 1 en cas d<EFBFBD>erreur.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=7
CX
Donn<EFBFBD>es en sortie GS
Flag Carry
Mbclean
Nettoie un peu la m<EFBFBD>moire pour fonctionner des blocs de m<EFBFBD>moire libre contigu<EFBFBD>. G<EFBFBD>n<EFBFBD>ralement inutile car g<EFBFBD>r<EFBFBD> par le systeme.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=8
Donn<EFBFBD>es en sortie Flag Carry
Mbfindsb
Renvoie en GS le sous bloc de m<EFBFBD>moire dont le nom correspond a la cha<EFBFBD>ne de caract<EFBFBD>re situ<EFBFBD> en DS:SI et dont le propri<EFBFBD>taire est DX. Met le flag carry <EFBFBD> 1 si introuvable.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=9
DS
SI
DX
Donn<EFBFBD>es en sortie Flag Carry
- Interruption 74h
Cmdmouse
Envoie une commande AL <EFBFBD> la souris via contr<EFBFBD>leur clavier
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=0
AL
Donn<EFBFBD>es en sortie
Cmdmouse2
Envoie une commande type 2 AL <EFBFBD> la souris via contr<EFBFBD>leur clavier
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=1
AL
Donn<EFBFBD>es en sortie
Detectmouse
D<EFBFBD>tecte et initialise une souris de type PS/2. Met le flag carry <EFBFBD> 1 si introuvable.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=2
AL
Donn<EFBFBD>es en sortie Flag Carry
Getmouse
Envoie en BX,CX les coordonn<EFBFBD>es virtuelles de la souris (respectivement X et Y) ainsi qu<EFBFBD>en DL l<EFBFBD><EFBFBD>tat des boutons.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=3
Donn<EFBFBD>es en sortie BX
CX
DL
Getmousescreen
Envoie en BX,CX les coordonn<EFBFBD>es <EFBFBD>cran de la souris (respectivement X et Y) ainsi qu<EFBFBD>en DL l<EFBFBD><EFBFBD>tat des boutons.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=4
Donn<EFBFBD>es en sortie BX
CX
DL
Configmouse
Configure la v<EFBFBD>locit<EFBFBD> de la souris dans CL et dans AH, AL les sph<EFBFBD>res X et Y.
Param<EFBFBD>tres
d<EFBFBD>entr<EFBFBD>e AH=5
AH AL
CL
Donn<EFBFBD>es en sortie
A suivre pour les autres ressources<EFBFBD>. (et avec exemples !)
En cas de probl<EFBFBD>mes
Si des bugs surviennent ou si COS2000 ne veut pas s'installer, veuillez s'il vous pla<EFBFBD>t m'envoyer un E Mail <EFBFBD> :
mailto:nicolas@palon.fr
COS2000 n'exploite pas les disques durs, il est donc improbable qu'il alt<EFBFBD>re vos donn<EFBFBD>es !