Système de macros du langage Assembleur
msystem.zip
411 Ko.
Système de macros
Brève description des principaux fichiers de l'archive.
Le système macro lui-même :
MSYSTEM.MAC
Ce fichier contient le système de macros réel.
MMACROS.MAC
Ce fichier contient des définitions de macros utiles supplémentaires.
MBIOS.MAC
Ce fichier contient des définitions de macros pour le BIOS IBM-PC.
MDOS.MAC
Ce fichier contient des définitions de macros pour IBM-PC DOS.
CONIO.MAC
DIR.MAC
ERREUR.MAC
FLOTTANT.MAC
IO.MAC
KBD.MAC
MATH.MAC
MBIOS.MAC
MEM.MAC
SOURIS.MAC
STOV.MAC
CHAÎNE.MAC
SYS.MAC
Le système macro lui-même :
CHOIX.M
HORLOGE.M
CODEUR.M
COULEUR.M
CURSEUR.M
DBEDIT.M
INIT.M
CLÉ.M
MENU.M
MKEYS.M
LIRE.M
REC.M
DIS M
DÉFILEMENT.M
TRI.M
SON.M
FENÊTRE.M
DOCUMENTATION:
MSYSTEM.DOC
Il s'agit d'un fichier de documentation pour le système de macros.
EXTA.DOC
MMACROS.DOC
MMEM.DOC
OGLAV.DOC
LIRE.DOC
TITRE.DOC
Fichiers *.ASM Ces fichiers contiennent
Pour l'installation sur le système
N'oubliez pas que les erreurs de l'assembleur
Quelle que soit votre approche -
L'assembleur lui-même peut être téléchargé ici
tasm25.zip
- 175 Ko.
Par exemple, voici un code simple
;
;
.MODÈLE PETIT
inclure msystem.mac
inclure sys.mac
inclure conio.mac
inclure mouse.mac
inclure mem.mac
inclure kbd.mac
inclure math.mac
inclure le curseur.m
inclure window.m
inclure la couleur.m
inclure rec.m
inclure dbedit.m
inclure say.m
inclure read.m
inclure la clé.m
inclure mkeys.m
inclure mb.m
taille_com = 20000+256
len_stack= 20000
len_vars = 20000
.CODE
BEGIN DÉBUT,100h,_main,{
fonction mb_empty,,
mov SI, buf_A
memfill <32,@ DEBET_NAME,LEN_NAME>
memfill <0,@DEBET_QUAN,LEN_QUAN>
memfill <32,@ KREDIT_NAME,LEN_NAME>
memfill <0,@KREDIT_QUAN,LEN_QUAN>
fin
func _pic,,,1,public
old_color EQU [BP]-1
getcolor ,
mov SI, buf_A
setcolor
sayxy
setcolor
dites <@DEBET_NAME,@f_name>
setcolor
dis <@ space,@ f_s>
setcolor
dis <@ DEBET_QUAN,@ f_quan>
setcolor
dis <@ space,@ f_s>
setcolor
dis <@ space,@ f_s>
setcolor
dites <@ KREDIT_NAME,@ f_name>
setcolor
dis <@ space,@ f_s>
setcolor
dis <@ KREDIT_QUAN,@ f_quan>
setcolor
dis <@ space,@ f_s>
setcolor
fin
func _fuser,,,1,public
old_color EQU [BP]-1
mouvement DI, 1
mov AL, cs: mode
commutateur AL,<0,1>
cas 1 { ;
getcolor ,
setcolor
recompte <@ rec_A>,
sayxy <35, 2,@ ii,@ f_w4>
recrecno <@ rec_A>,
sayxy <41, 2,@ ii,@ f_w4>
setcolor
cas 2 {
mov retr_cho, VRAI
while {
mov retr_cho, FAUX
mkeys_to
mov AL, cs: clé_AL
commutateur AL, {
cas 1 {
mov AH, cs: clé_AH
commutateur AH,
cas 1 ;
Insertion,
cas 2 ;
Suppression ,
cas 3 ;
Tri ,
cas 4 ;
cas 5 ;
Rencontres,
cas 6 ;
extraction de menu
mouvement DI, 3
boîtier final
cas 2 { ;
cas 3 ;
Saisie de ,
cas 4 ;
déplacement terminé, FAUX
movDI,0
boîtier final
fin quoi}
boîtier final
endf
étiquette1 db 'À VENIR',0
label2 db 'CONSOMMATION',0
title1 db ' Nom Quantité
ukeys1 db 1Eh,0
ukeys2 db 1Fh,0
skeys1 db 'ENTER',0
nkeys1 base de données 'ENTRER',0
skeys2 db 'INS',0
nkeys2 db 'NOUVEAU',0
skeys3 db 'DEL',0
nkeys3 base de données 'SUPPRIMER',0
skeys4 db 'F5',0
nkeys4 db 'PRINT',0
skeys5 db 'F6',0
nkeys5 db 'ORDRE',0
skeys6 db 'F7',0
nkeys6 db 'RECHERCHE',0
skeys7 db 'F8',0
nkeys7 base de données 'SOMME',0
skeys8 db 'F10',0
nkeys8 db 'MENU',0
skeys9 db 'ESC',0
nkeys9 base de données 'QUITTER',0
;--- Procédure de tête
fonction principale
;
cli
mov SP, taille_com+len_stack
sti
;
farrelease <*CS 00.00 size_com+len_stack+len_vars>
connexion
version <* size_com+len_stack,0>
initsys
initsouris
curseur_off
;
setcolor <<>>
boîte de dessin
boîte à dessin <0, 2.79, 2,@ box_main>
souris_on
setcolor
sayxy <16, 0,@ label1,@ f_s>
sayxy <56, 0,@ label2,@ f_s>
setcolor
sayxy <0, 1,@ titre1,@ f_s>
setcolor
dis <@title1,@ f_s>
setcolor <<>>
;
couleur
mkeys_on
mkeys_fr <79, 0,PGUPKEY*100h,@ukeys1,@snull>
mkeys_fr <79,24,PGDNKEY*100h,@ukeys2,@snull>
mkeys_fr < 4,24,CRKEY,@skeys1,@nkeys1>
mkeys_fr <14,24,INSKEY*100h,@skeys2,@nkeys2>
mkeys_fr <22,24,DELRKEY*100h,@skeys3,@nkeys3>
mkeys_fr <30,24,F5KEY*100h,@skeys4,@nkeys4>
mkeys_fr <37,24,F6KEY*100h,@skeys5,@nkeys5>
mkeys_fr <44,24,F7KEY*100h,@skeys6,@nkeys6>
mkeys_fr <51,24,F8KEY*100h,@skeys7,@nkeys7>
mkeys_fr <58,24,F10KEY*100h,@skeys8,@nkeys8>
mkeys_fr <65,24,ESCKEY,@skeys9,@nkeys9>
mkeys_on
;
rouvrir <@ rec_A,@ file_A,len_A>
getmem , ;recbuffer
réemption <@ rec_A,@ _mb_empty>
;
couleur
le déplacement est terminé, VRAI
while
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs:__fuser>
fin
;
mémoire libre<*buf_A>
refermer <@ rec_A>
;
mkeys_of
;
souris_off
curseur_on
;
clrscr
arrêter <0>
fin
FIN DÉBUT