************************************************************* * * * Les Macros LLM3 pour les entrees/sorties * * * ************************************************************* * * * Jerome CHAILLOUX * * * * I . N . R . I . A . * * Domaine de Voluceau, Rocquencourt * * B.P. 105 78153 Le Chesnay Cedex * * Tel : (1) 954 90 20 poste 456 * * * ************************************************************* NOLIST *================================================== * Macros speciales d'entree/sortie *================================================== * * Gestion du canal terminal * ------------------------- * * TTYIN op1,op2 car -> op1 cc -> op2 * voir les macros standard * TTYOUT op1,buff,op2 * sort 'op1' caracteres du tampon 'buff'. cc -> op2 * voir lesmacros standard * * Gestion des fichiers ROM * ------------------------ * * * Gestion des fichiers * -------------------- * * INFILE chan,file,cc ouverture d'un fichier d'entree INFILE MACRO movl \1,r11 movzwl plen(\2),r10 moval pname(\2),r0 .globl ll_opi jsb ll_opi movl r0,\3 ENDM * INBF chan,adr,siz,cc lecture de la ligne suivante sur fichier INBF MACRO movl \1,r11 moval \2,r0 .globl ll_ibc jsb ll_ibc movl r10,\3 movl r0,\4 ENDM * OUFILE chan,file,cc ouverture d'un fichier de sortie OUFILE MACRO movl \1,r11 movzwl plen(\2),r10 moval pname(\2),r0 .globl ll_opo jsb ll_opo movl r0,\3 ENDM * OUTF chan,adr,size,cc sort une chaine de caracteres * en memoire OUTF MACRO movl \1,r11 moval \2,r0 movl \3,r10 .globl ll_sfo jsb ll_sfo movl r0,\4 ENDM * FCLOS ch,cc ferme le canal ch FCLOS MACRO movl \1,r11 .globl ll_clo jsb ll_clo movl r0,\2 ENDM * FDELE fil,cc detruit le fichier fil FDELE MACRO * CLR.L D0 * MOVE.W PLEN(\1),D0 * LEA PNAME(\1),A0 * XREF LL_DEL * JSR LL_DEL * MOV A0,\2 le cc clrl \2 ENDM * FRENA old,new,cc renomme un fichier * ?!?!!? a finir FRENA MACRO * LEA PLEN(\2),A0 * MOVE.L A0,D0 * LEA PLEN(\1),A0 * XREF LL_REN * JSR LL_REN * MOV A0,\3 clrl \3 ENDM * CORSAV file,cc sauve iune image memoire CORSAV MACRO * CLR.L D0 * MOVE.W PLEN(\1),D0 * LEA PNAME(\1),A0 * LEA PLEN(\1),A0 * XREF LL_CORSAV * JSR LL_CORSAV * MOV A0,\2 clrl \2 ENDM * COREST file,cc restaure une image memoire COREST MACRO * CLR.L D1 canal INPUT * XREF LL_CLO * JSR LL_CLO on le ferme * CLR.L D0 * MOVE.W PLEN(\1),D0 * LEA PNAME(\1),A0 * LEA PLEN(\1),A0 * XREF LL_COREST * JSR LL_COREST * MOV A0,\2 clrl \2 ENDM