LEX 'HMSDLEX' * (c) PPC Paris et l'Auteur, 1988 ID #5D MSG 0 POLL 0 EXPR EQU #0F23C STRHDR EQU #0F09A ENTRY xHMS CHAR #F KEY 'HMS$' TOKEN 1 ENDTXT NIBHEX 811 xHMS A=DAT1 W Lecture opÅrande dans A ST=0 0 Initialisation du marqueur * de nombre nÅgatif GOSUB FORMAT VÅrifie format de l'opÅrande GOSUB TRANSF Effectue la transformation * proprement dite SORTIE GOVLNG EXPR Termine la fonction * * Si opÅrande hors norme alors rendre "-??-" * PASBON SETHEX P= 0 PrÅparation d'un en-tÁte C=0 W de chaine alpha LC(2) #10 de la longueur D1=D1+ 16 voulue pour placer GOSBVL STRHDR le message rÅponse: LCASC ' -??-' DAT1=C W Ecrit message dans la pile C=RSTK on saute un RTN D1=D1- 16 on pointe le haut de pile GOTO SORTIE et on sort * Formattage de l'opÅrande et Åjection des donnÅes * invalides: INF, NaN et hors normes donnent "-??-" FORMAT P= 2 vÅrification LC(1) #F NaN et INF ?A=C P d'aprÉs l'octet #2 GOYES PASBON Åjecte les Nan et INF SETDEC A=A+1 X Multiplication par 100 A=A+1 X pour avoir des centiÉmes de P= 0 seconde ?A=0 S DÅtection des positifs GOYES POSITI Si oui on saute È la suite, * sinon... ST=1 0 CaractÅrise un opÅrande * nÅgatif A=0 S annule le signe pour la * routine DIV POSITI LC(3) #006 Åjection des temps > 10^4 ?C