LEX 'DESLEX' * (c) Copyright PPC Paris 1986 ID #E1 MSG 0 POLL 0 ENTRY CT Fonction CONTRAST CHAR #F ENTRY IN Ordre INVERSE CHAR #D LÅgal aprÉs IF, programmable, utilisable au clavier... ENTRY IV Fonction INV$ CHAR #F ENTRY DRAW Fonction PAINT CHAR #F KEY 'CONTRAST' TOKEN 12 KEY 'INVERSE' TOKEN 13 KEY 'INV$' TOKEN 14 KEY 'PAINT' TOKEN 15 POP1N EQU #0BD1C POP2N EQU #0BC8C POP1S EQU #0BD38 EXPR EQU #0F23C FLTDH EQU #1B223 HDFLT EQU #1B31B FNRTN2 EQU #0F219 OUTELA EQU #05303 NXTSTM EQU #08A48 ENDTXT REL(5) INd Adresse relative de la " Decompile routine " de l'ordre INVERSE REL(5) INp Idem mais pour la " Parse routine " IN LCHEX #0005C 2 * le nombre de colonnes de l'afficheur 3, celui de gauche, note DD3 D1=(5) #2E104 Adresse du dÅbut de DD3 GOSUB I Le sous programme I inversera donc DD3 LCHEX #60 On renouvelle l'opÅration sur DD2 D1=(4) #E200 GOSUB I LCHEX #4C Puis DD1 D1=(4) #E300 GOSUB I GOVLNG NXTSTM Fin de l'ordre INd GOVLNG OUTELA Decompile routine INp RTNCC Parse routine I A=DAT1 B RÅcupÉre le 1er octet È inverser A=-A-1 B L'inverse DAT1=A B Le remet È sa place D1=D1+ 2 Passe È l'octet suivant si il existe C=C-1 A C=C-1 A ?C#0 A GOYES I RTN Sinon rend la main È l'appelant NIBHEX 411 Fonction È 1 paramÉtre ( alphanumÅrique ) IV CD1EX Sauvegarde D0 et D1 D1=C R0=C GOSBVL POP1S RÅcupÉre adresse et nombre de caractÉres de la chaine situÅe au sommet C=A A de la pile ?C=0 A Est-ce la chaine nulle ? GOYES IN2 -Oui, on ne fait rien GOSUB I -Non; on l'inverse IN2 CR0EX Restaure D0 et D1 D1=C GOVLNG EXPR Fin... NIBHEX 00 Fonctio sans paramÉtre CT CD0EX Sauvegarde... R0=C D0=(5) #2E3FE Adresse oË est stockÅe la valeur du contraste A=0 A A=DAT0 1 RÅcupÉre cette valeur GOSBVL HDFLT Qui est convertie en dÅcimal AR0EX Sauvegarde et fin... C=R0 GOVLNG FNRTN2 NIBHEX 88833 Fonction È 3 paramÉtres ( numÅriques ) DRAW CD0EX Sauvegarde... R0=C CD1EX R1=C D1=C GOSBVL POP2N Se trouve sur la pile, de haut en bas: Y , X , S R2=C RÅcupÉre Y et X GOSBVL FLTDH Que l'on convertit en dÅcimal AR2EX GOSBVL FLTDH AR2EX R3=A D1=D1+ 16 IncrÅmente D1 de maniÉre È rÅcupÅrer S GOSBVL POP1N GOSBVL FLTDH Le convertit en dÅcimal AR3EX Puis le sauvegarde en R3 ( Y est en R2, X en A(A) ) LCHEX #83 X appartient-il È l'intervalle [0,131] ? ?C