; test18.asm ; ; Programme de test du 8031 N° 18 ; Test de la bibliotheque mathematique flottants 32 bits ; ; (C) CHAMOUARD 2001 ; (Libre de droits pour utilisation non ; commerciale et à vos propres risques) ; ; Matériel requis : ; carte 8031 base 1, programme chargé en 2000h ; afficheur/clavier LCD 2*16 aux adresses spécifiées ci-dessous ; Bibliothèques requises : ; libasc.asm decodages ASCII ; liblcd.asm afficheur ; libcla2.asm clavier 1-8 touches ; libi32.asm entiers 32 bits ; libf32.asm flottants 32 bits ; Sortie : ; affichage avant et après l'opération testée (voir fin du fichier) ; appuyer sur un touche pour faire avancer le programme word LcdCmdReadAdd, #E002h word LcdCmdWriteAdd, #E000h word LcdDataReadAdd, #E003h word LcdDataWriteAdd,#E001h word ClaAdd, #E040h byte ClaAntiRebonDly,#20 word Mext1, #4000h word Mext2, #4004h direct RE10, 10h direct RE11, 11h direct RE12, 12h direct RE13, 13h direct RE20, 14h direct RE21, 15h direct RE22, 16h direct RE23, 17h direct TMP0, 18h direct TMP1, 19h direct TMP2, 1ah direct TMP3, 1bh byte Mint1, #38h byte Mint2, #3ch ORG 2000h ; Debut du programme ljmp Begin Begin: mov SP,#3fh ; Debut de pile en 40h lcall LcdInit lcall LcdCurseurOff lcall LcdRaz ; Test transferts en memoire externe mov DPTR,#Mext ; Avant RE1=01234567h RE2=89abcdefh lcall LcdWriteStringCode ; Apres RE1=89abcdefh RE2=01234567h mov RE13,#01h mov RE12,#23h mov RE11,#45h mov RE10,#67h mov RE23,#89h mov RE22,#abh mov RE21,#cdh mov RE20,#efh clr C lcall AffRE1et2 lcall ToucheClav mov DPTR,#Mext1 lcall F32WriteExtRE1 mov DPTR,#Mext2 lcall F32WriteExtRE2 mov DPTR,#Mext1 lcall F32ReadExtRE2 mov DPTR,#Mext2 lcall F32ReadExtRE1 clr C lcall AffCetRE1et2 lcall ToucheClav lcall LcdRaz ; Test transferts en memoire programme mov DPTR,#Mprog ; Avant RE1=01234567h RE2=89abcdefh lcall LcdWriteStringCode ; Apres RE1=76543210h RE2=fedcba98h mov RE13,#01h mov RE12,#23h mov RE11,#45h mov RE10,#67h mov RE23,#89h mov RE22,#abh mov RE21,#cdh mov RE20,#efh lcall AffRE1et2 lcall ToucheClav mov DPTR,#Mprog1 lcall F32ReadProgRE1 mov DPTR,#Mprog2 lcall F32ReadProgRE2 clr C lcall AffCetRE1et2 lcall ToucheClav lcall LcdRaz ; Test transferts en memoire interne mov DPTR,#Mint ; Avant RE1=01234567h RE2=89abcdefh lcall LcdWriteStringCode ; Apres RE1=89abcdefh RE2=01234567h mov RE13,#01h mov RE12,#23h mov RE11,#45h mov RE10,#67h mov RE23,#89h mov RE22,#abh mov RE21,#cdh mov RE20,#efh lcall AffRE1et2 lcall ToucheClav mov R0,#Mint1 lcall F32WriteIntRE1 mov R0,#Mint2 lcall F32WriteIntRE2 mov R0,#Mint1 lcall F32ReadIntRE2 mov R0,#Mint2 lcall F32ReadIntRE1 clr C lcall AffCetRE1et2 lcall ToucheClav mov R2,#HIGH(Data) ; Test fonctions arithmetiques mov R3,#LOW(Data) Boucle: mov DPH,R2 mov DPL,R3 mov A,#0 movc A,@A+DPTR jnz Gotest ljmp Begin ; Retour au premier test Gotest: lcall LcdRaz mov DPH,R2 mov DPL,R3 lcall LcdWriteStringCode ; Ecriture de la fonction testee mov DPH,R2 mov DPL,R3 mov A,#8 movc A,@A+DPTR mov RE13,A ; 1er argument MSB mov A,#9 movc A,@A+DPTR mov RE12,A ; 1er argument mov A,#10 movc A,@A+DPTR mov RE11,A ; 1er argument mov A,#11 movc A,@A+DPTR mov RE10,A ; 1er argument LSB mov A,#12 movc A,@A+DPTR mov RE23,A ; 2nd argument MSB mov A,#13 movc A,@A+DPTR mov RE22,A ; 2nd argument mov A,#14 movc A,@A+DPTR mov RE21,A ; 2nd argument mov A,#15 movc A,@A+DPTR mov RE20,A ; 2nd argument LSB lcall AffRE1et2 ; Affichage des arguments lcall ToucheClav mov A,#LOW(Suite) push ACC mov A,#HIGH(Suite) push ACC ; Programmation de l'adresse de retour mov DPH,R2 mov DPL,R3 mov A,#16 movc A,@A+DPTR push ACC mov A,#17 movc A,@A+DPTR mov DPL,A pop DPH ; Dans DPTR l'adresse de la fonction a tester mov A,#0 jmp @A+DPTR ; Jump dans la fonction a tester Suite: lcall AffCetRE1et2 ; Affichage resultats lcall ToucheClav mov A,#18 ; Passage au test suivant add A,R3 mov R3,A mov A,#0 addc A,R2 mov R2,A ljmp Boucle Data: ; Affichage RE1 initial RE2 initial Fonction RE1 final RE2 final C ; RW/Ext 01h,23h,45h,67h, 89h,abh,cdh,efh, ; 89h,abh,cdh,efh, 01h,23h,45h,67h, 0 ; R/Prog 01h,23h,45h,67h, 89h,abh,cdh,efh, ; 76h,54h,32h,10h, feh,dch,bah,98h, 0 ; RW/Int 01h,23h,45h,67h, 89h,abh,cdh,efh, ; 89h,abh,cdh,efh, 01h,23h,45h,67h, 0 db "Clear ",0, 01h,23h,45h,67h, 89h,abh,cdh,efh, HIGH(F32ClearRE1), LOW(F32ClearRE1) ; 00h,00h,00h,00h, 89h,abh,cdh,efh, 0 db "Add ",0, 40h,00h,00h,04h, 40h,80h,00h,02h, HIGH(F32Add), LOW(F32Add) ; 40h,c0h,00h,04h, 0 Normal db "Add ",0, 40h,00h,00h,04h, c0h,80h,00h,02h, HIGH(F32Add), LOW(F32Add) ; c0h,00h,00h,00h, 0 Normal db "Add ",0, 40h,00h,00h,04h, 4bh,80h,00h,02h, HIGH(F32Add), LOW(F32Add) ; 4bh,80h,00h,03h, 0 Normal db "Add ",0, 40h,00h,00h,04h, 4ch,00h,00h,02h, HIGH(F32Add), LOW(F32Add) ; 4ch,00h,00h,03h, 0 Normal db "Add ",0, 40h,00h,00h,04h, 4ch,80h,00h,02h, HIGH(F32Add), LOW(F32Add) ; 4ch,80h,00h,02h, 0 Normal db "Add ",0, 00h,80h,00h,01h, 00h,00h,01h,00h, HIGH(F32Add), LOW(F32Add) ; 00h,80h,01h,01h, 0 Normal db "Add ",0, 00h,80h,00h,01h, 80h,00h,01h,00h, HIGH(F32Add), LOW(F32Add) ; 00h,7fh,ffh,01h, 0 Denormalise db "Add ",0, 7fh,00h,00h,00h, 7eh,ffh,ffh,feh, HIGH(F32Add), LOW(F32Add) ; 7fh,7fh,ffh,ffh, 0 Normal db "Add ",0, 7fh,00h,00h,00h, 7eh,ffh,ffh,ffh, HIGH(F32Add), LOW(F32Add) ; 7fh,80h,00h,00h, 1 Overflow arrondi db "Add ",0, 7fh,00h,00h,00h, 7fh,00h,00h,00h, HIGH(F32Add), LOW(F32Add) ; 7fh,80h,00h,00h, 1 Overflow db "Sub ",0, 40h,00h,00h,04h, 40h,80h,00h,02h, HIGH(F32Sub), LOW(F32Sub) ; c0h,00h,00h,00h, 0 Normal db "Sub ",0, 40h,00h,00h,04h, 40h,00h,00h,04h, HIGH(F32Sub), LOW(F32Sub) ; 00h,00h,00h,00h, 0 Zero db "Sub ",0, C0h,00h,00h,04h, C0h,00h,00h,04h, HIGH(F32Sub), LOW(F32Sub) ; 00h,00h,00h,00h, 0 Zero db "Mul ",0, 40h,c0h,d0h,e4h, 40h,c0h,c1h,c2h, HIGH(F32Mul), LOW(F32Mul) ; 42h,11h,2eh,9bh, 0 Normal db "Mul ",0, 40h,c0h,d0h,e4h, 40h,80h,c1h,c2h, HIGH(F32Mul), LOW(F32Mul) ; 41h,c1h,f4h,c3h, 0 Normal db "Mul ",0, c0h,c0h,d0h,e4h, 40h,80h,c1h,c2h, HIGH(F32Mul), LOW(F32Mul) ; c1h,c1h,f4h,c3h, 0 Normal db "Mul ",0, 40h,c0h,d0h,e4h, c0h,80h,c1h,c2h, HIGH(F32Mul), LOW(F32Mul) ; c1h,c1h,f4h,c3h, 0 Normal db "Mul ",0, c0h,c0h,d0h,e4h, c0h,80h,c1h,c2h, HIGH(F32Mul), LOW(F32Mul) ; 41h,c1h,f4h,c3h, 0 Normal db "Mul ",0, 5fh,7fh,ffh,ffh, 5fh,7fh,ffh,ffh, HIGH(F32Mul), LOW(F32Mul) ; 7fh,7fh,ffh,feh, 0 Normal db "Mul ",0, 5fh,80h,00h,01h, 5fh,7fh,ffh,ffh, HIGH(F32Mul), LOW(F32Mul) ; 7fh,80h,00h,00h, 1 Overflow db "Mul ",0, 60h,80h,00h,01h, 70h,7fh,ffh,ffh, HIGH(F32Mul), LOW(F32Mul) ; 7fh,80h,00h,00h, 1 Overflow db "Mul ",0, dfh,80h,00h,01h, 5fh,7fh,ffh,ffh, HIGH(F32Mul), LOW(F32Mul) ; ffh,80h,00h,00h, 1 Overflow negatif db "Mul ",0, e0h,80h,00h,01h, 70h,7fh,ffh,ffh, HIGH(F32Mul), LOW(F32Mul) ; ffh,80h,00h,00h, 1 Overflow negatif db "Mul ",0, 20h,00h,00h,00h, 20h,00h,00h,00h, HIGH(F32Mul), LOW(F32Mul) ; 00h,80h,00h,00h, 0 Normal db "Mul ",0, 20h,00h,00h,00h, 1fh,ffh,ffh,feh, HIGH(F32Mul), LOW(F32Mul) ; 00h,7fh,ffh,ffh, 0 Denormalisation db "Mul ",0, 20h,00h,00h,00h, 1ch,80h,00h,00h, HIGH(F32Mul), LOW(F32Mul) ; 00h,01h,00h,00h, 0 Denormalisation db "Mul ",0, 20h,00h,00h,00h, 18h,80h,00h,00h, HIGH(F32Mul), LOW(F32Mul) ; 00h,00h,01h,00h, 0 Denormalisation db "Mul ",0, 20h,00h,00h,00h, 14h,80h,00h,00h, HIGH(F32Mul), LOW(F32Mul) ; 00h,00h,00h,01h, 0 Denormalisation db "Mul ",0, 20h,00h,00h,00h, 14h,00h,00h,00h, HIGH(F32Mul), LOW(F32Mul) ; 00h,00h,00h,00h, 0 Zero db "Mul ",0, 20h,00h,00h,00h, 94h,00h,00h,00h, HIGH(F32Mul), LOW(F32Mul) ; 80h,00h,00h,00h, 0 Zero negatif db "Div ",0, 40h,c0h,d0h,e4h, 40h,c0h,c1h,c2h, HIGH(F32Div), LOW(F32Div) ; 3fh,80h,0ah,0dh, 0 Normal db "Div ",0, 00h,00h,00h,00h, 3fh,80h,00h,00h, HIGH(F32Div), LOW(F32Div) ; 00h,00h,00h,00h, 0 Num=0 db "Div ",0, 3fh,80h,00h,00h, 80h,00h,00h,00h, HIGH(F32Div), LOW(F32Div) ; ffh,80h,00h,00h, 1 Den=0 db "Div ",0, cfh,8ah,23h,55h, 8fh,8ah,23h,56h, HIGH(F32Div), LOW(F32Div) ; 7fh,7fh,ffh,feh, 0 Normal db "Div ",0, cfh,8ah,23h,56h, 8fh,8ah,23h,56h, HIGH(F32Div), LOW(F32Div) ; 7fh,80h,00h,00h, 1 Overflow db "Div ",0, bfh,8ah,23h,56h, 7eh,8ah,23h,56h, HIGH(F32Div), LOW(F32Div) ; 80h,80h,00h,00h, 0 Normal db "Div ",0, bfh,8ah,23h,55h, 7eh,8ah,23h,56h, HIGH(F32Div), LOW(F32Div) ; 80h,7fh,ffh,ffh, 0 Denormalisation db "Div ",0, b3h,8ah,23h,55h, 7eh,8ah,23h,56h, HIGH(F32Div), LOW(F32Div) ; 80h,00h,00h,00h, 0 Underflow db "Neg ",0, 00h,00h,00h,00h, 00h,00h,00h,00h, HIGH(F32NegRE1), LOW(F32NegRE1) ; 80h,00h,00h,00h, 00h,00h,00h,00h, 0 db "Neg ",0, 3fh,9dh,18h,2bh, 00h,00h,00h,00h, HIGH(F32NegRE1), LOW(F32NegRE1) ; bfh,9dh,18h,2bh, 00h,00h,00h,00h, 0 db "Sgn ",0, 3fh,9dh,18h,2bh, 00h,00h,00h,00h, HIGH(F32SgnRE1), LOW(F32SgnRE1) ; 3fh,9dh,18h,2bh, 00h,00h,00h,00h, 0 db "Sgn ",0, bfh,9dh,18h,2bh, 00h,00h,00h,00h, HIGH(F32SgnRE1), LOW(F32SgnRE1) ; bfh,9dh,18h,2bh, 00h,00h,00h,00h, 1 db "Abs ",0, 3fh,9dh,18h,2bh, 00h,00h,00h,00h, HIGH(F32AbsRE1), LOW(F32AbsRE1) ; 3fh,9dh,18h,2bh, 00h,00h,00h,00h, 0 db "Abs ",0, bfh,9dh,18h,2bh, 00h,00h,00h,00h, HIGH(F32AbsRE1), LOW(F32AbsRE1) ; 3fh,9dh,18h,2bh, 00h,00h,00h,00h, 0 db "ValRE1 ",0, 7eh,ffh,ffh,ffh, 00h,00h,00h,00h, HIGH(F32ValidRE1), LOW(F32ValidRE1) ; 7eh,ffh,ffh,ffh, 00h,00h,00h,00h, 0 db "ValRE1 ",0, 7fh,7fh,ffh,ffh, 00h,00h,00h,00h, HIGH(F32ValidRE1), LOW(F32ValidRE1) ; 7fh,7fh,ffh,ffh, 00h,00h,00h,00h, 0 db "ValRE1 ",0, 7fh,80h,00h,00h, 00h,00h,00h,00h, HIGH(F32ValidRE1), LOW(F32ValidRE1) ; 7fh,80h,00h,00h, 00h,00h,00h,00h, 0 db "ValRE1 ",0, 7fh,81h,00h,00h, 00h,00h,00h,00h, HIGH(F32ValidRE1), LOW(F32ValidRE1) ; 7fh,81h,00h,00h, 00h,00h,00h,00h, 1 db "ValRE1 ",0, 7fh,80h,01h,00h, 00h,00h,00h,00h, HIGH(F32ValidRE1), LOW(F32ValidRE1) ; 7fh,80h,01h,00h, 00h,00h,00h,00h, 1 db "ValRE1 ",0, 7fh,80h,00h,01h, 00h,00h,00h,00h, HIGH(F32ValidRE1), LOW(F32ValidRE1) ; 7fh,80h,00h,01h, 00h,00h,00h,00h, 1 db "ValRE2 ",0, 00h,00h,00h,00h, 7eh,ffh,ffh,ffh, HIGH(F32ValidRE2), LOW(F32ValidRE2) ; 00h,00h,00h,00h, 7eh,ffh,ffh,ffh, 0 db "ValRE2 ",0, 00h,00h,00h,00h, 7fh,7fh,ffh,ffh, HIGH(F32ValidRE2), LOW(F32ValidRE2) ; 00h,00h,00h,00h, 7fh,7fh,ffh,ffh, 0 db "ValRE2 ",0, 00h,00h,00h,00h, 7fh,80h,00h,00h, HIGH(F32ValidRE2), LOW(F32ValidRE2) ; 00h,00h,00h,00h, 7fh,80h,00h,00h, 0 db "ValRE2 ",0, 00h,00h,00h,00h, 7fh,81h,00h,00h, HIGH(F32ValidRE2), LOW(F32ValidRE2) ; 00h,00h,00h,00h, 7fh,81h,00h,00h, 1 db "ValRE2 ",0, 00h,00h,00h,00h, 7fh,80h,01h,00h, HIGH(F32ValidRE2), LOW(F32ValidRE2) ; 00h,00h,00h,00h, 7fh,80h,01h,00h, 1 db "ValRE2 ",0, 00h,00h,00h,00h, 7fh,80h,00h,01h, HIGH(F32ValidRE2), LOW(F32ValidRE2) ; 00h,00h,00h,00h, 7fh,80h,00h,01h, 1 db "InfRE1 ",0, 7eh,80h,00h,00h, 00h,00h,00h,00h, HIGH(F32InfRE1), LOW(F32InfRE1) ; 7eh,80h,00h,00h, 00h,00h,00h,00h, 0 db "InfRE1 ",0, 7fh,81h,00h,00h, 00h,00h,00h,00h, HIGH(F32InfRE1), LOW(F32InfRE1) ; 7fh,81h,00h,00h, 00h,00h,00h,00h, 0 db "InfRE1 ",0, 7fh,80h,01h,00h, 00h,00h,00h,00h, HIGH(F32InfRE1), LOW(F32InfRE1) ; 7fh,80h,01h,00h, 00h,00h,00h,00h, 0 db "InfRE1 ",0, 7fh,80h,00h,01h, 00h,00h,00h,00h, HIGH(F32InfRE1), LOW(F32InfRE1) ; 7fh,80h,00h,01h, 00h,00h,00h,00h, 0 db "InfRE1 ",0, 7fh,80h,00h,00h, 00h,00h,00h,00h, HIGH(F32InfRE1), LOW(F32InfRE1) ; 7fh,80h,00h,00h, 00h,00h,00h,00h, 1 db "InfRE1 ",0, ffh,80h,00h,00h, 00h,00h,00h,00h, HIGH(F32InfRE1), LOW(F32InfRE1) ; ffh,80h,00h,00h, 00h,00h,00h,00h, 1 db "InfRE2 ",0, 00h,00h,00h,00h, 7eh,80h,00h,00h, HIGH(F32InfRE2), LOW(F32InfRE2) ; 00h,00h,00h,00h, 7eh,80h,00h,00h, 0 db "InfRE2 ",0, 00h,00h,00h,00h, 7fh,81h,00h,00h, HIGH(F32InfRE2), LOW(F32InfRE2) ; 00h,00h,00h,00h, 7fh,81h,00h,00h, 0 db "InfRE2 ",0, 00h,00h,00h,00h, 7fh,80h,01h,00h, HIGH(F32InfRE2), LOW(F32InfRE2) ; 00h,00h,00h,00h, 7fh,80h,01h,00h, 0 db "InfRE2 ",0, 00h,00h,00h,00h, 7fh,80h,00h,01h, HIGH(F32InfRE2), LOW(F32InfRE2) ; 00h,00h,00h,00h, 7fh,80h,00h,01h, 0 db "InfRE2 ",0, 00h,00h,00h,00h, 7fh,80h,00h,00h, HIGH(F32InfRE2), LOW(F32InfRE2) ; 00h,00h,00h,00h, 7fh,80h,00h,00h, 1 db "InfRE2 ",0, 00h,00h,00h,00h, ffh,80h,00h,00h, HIGH(F32InfRE2), LOW(F32InfRE2) ; 00h,00h,00h,00h, ffh,80h,00h,00h, 1 db "PreRE1 ",0, 01h,00h,00h,01h, 00h,00h,00h,00h, HIGH(F32PresRE1), LOW(F32PresRE1) ; 01h,00h,00h,01h, 00h,00h,00h,00h, 0 db "PreRE1 ",0, 00h,80h,00h,01h, 00h,00h,00h,00h, HIGH(F32PresRE1), LOW(F32PresRE1) ; 00h,80h,00h,01h, 00h,00h,00h,00h, 0 db "PreRE1 ",0, 00h,00h,00h,00h, 00h,00h,00h,00h, HIGH(F32PresRE1), LOW(F32PresRE1) ; 00h,00h,00h,00h, 00h,00h,00h,00h, 0 db "PreRE1 ",0, 00h,01h,00h,00h, 00h,00h,00h,00h, HIGH(F32PresRE1), LOW(F32PresRE1) ; 00h,01h,00h,00h, 00h,00h,00h,00h, 1 db "PreRE1 ",0, 00h,00h,01h,00h, 00h,00h,00h,00h, HIGH(F32PresRE1), LOW(F32PresRE1) ; 00h,00h,01h,00h, 00h,00h,00h,00h, 1 db "PreRE1 ",0, 00h,00h,00h,01h, 00h,00h,00h,00h, HIGH(F32PresRE1), LOW(F32PresRE1) ; 00h,00h,00h,01h, 00h,00h,00h,00h, 1 db "PreRE2 ",0, 00h,00h,00h,00h, 01h,00h,00h,01h, HIGH(F32PresRE2), LOW(F32PresRE2) ; 00h,00h,00h,00h, 01h,00h,00h,01h, 0 db "PreRE2 ",0, 00h,00h,00h,00h, 00h,80h,00h,01h, HIGH(F32PresRE2), LOW(F32PresRE2) ; 00h,00h,00h,00h, 00h,80h,00h,01h, 0 db "PreRE2 ",0, 00h,00h,00h,00h, 00h,00h,00h,00h, HIGH(F32PresRE2), LOW(F32PresRE2) ; 00h,00h,00h,00h, 00h,00h,00h,00h, 0 db "PreRE2 ",0, 00h,00h,00h,00h, 00h,01h,00h,00h, HIGH(F32PresRE2), LOW(F32PresRE2) ; 00h,00h,00h,00h, 00h,01h,00h,00h, 1 db "PreRE2 ",0, 00h,00h,00h,00h, 00h,00h,01h,00h, HIGH(F32PresRE2), LOW(F32PresRE2) ; 00h,00h,00h,00h, 00h,00h,01h,00h, 1 db "PreRE2 ",0, 00h,00h,00h,00h, 00h,00h,00h,01h, HIGH(F32PresRE2), LOW(F32PresRE2) ; 00h,00h,00h,00h, 00h,00h,00h,01h, 1 db "ZerRE1 ",0, 01h,00h,00h,00h, 00h,00h,00h,00h, HIGH(F32ZeroRE1), LOW(F32ZeroRE1) ; 01h,00h,00h,00h, 00h,00h,00h,00h, 0 db "ZerRE1 ",0, 00h,01h,00h,00h, 00h,00h,00h,00h, HIGH(F32ZeroRE1), LOW(F32ZeroRE1) ; 00h,01h,00h,00h, 00h,00h,00h,00h, 0 db "ZerRE1 ",0, 00h,00h,01h,00h, 00h,00h,00h,00h, HIGH(F32ZeroRE1), LOW(F32ZeroRE1) ; 00h,00h,01h,00h, 00h,00h,00h,00h, 0 db "ZerRE1 ",0, 00h,00h,00h,01h, 00h,00h,00h,00h, HIGH(F32ZeroRE1), LOW(F32ZeroRE1) ; 00h,00h,00h,01h, 00h,00h,00h,00h, 0 db "ZerRE1 ",0, 00h,00h,00h,00h, 00h,00h,00h,00h, HIGH(F32ZeroRE1), LOW(F32ZeroRE1) ; 00h,00h,00h,00h, 00h,00h,00h,00h, 1 db "ZerRE1 ",0, 80h,00h,00h,00h, 00h,00h,00h,00h, HIGH(F32ZeroRE1), LOW(F32ZeroRE1) ; 80h,00h,00h,00h, 00h,00h,00h,00h, 1 db "ZerRE2 ",0, 00h,00h,00h,00h, 01h,00h,00h,00h, HIGH(F32ZeroRE2), LOW(F32ZeroRE2) ; 00h,00h,00h,00h, 01h,00h,00h,00h, 0 db "ZerRE2 ",0, 00h,00h,00h,00h, 00h,01h,00h,00h, HIGH(F32ZeroRE2), LOW(F32ZeroRE2) ; 00h,00h,00h,00h, 00h,01h,00h,00h, 0 db "ZerRE2 ",0, 00h,00h,00h,00h, 00h,00h,01h,00h, HIGH(F32ZeroRE2), LOW(F32ZeroRE2) ; 00h,00h,00h,00h, 00h,00h,01h,00h, 0 db "ZerRE2 ",0, 00h,00h,00h,00h, 00h,00h,00h,01h, HIGH(F32ZeroRE2), LOW(F32ZeroRE2) ; 00h,00h,00h,00h, 00h,00h,00h,01h, 0 db "ZerRE2 ",0, 00h,00h,00h,00h, 00h,00h,00h,00h, HIGH(F32ZeroRE2), LOW(F32ZeroRE2) ; 00h,00h,00h,00h, 00h,00h,00h,00h, 1 db "ZerRE2 ",0, 00h,00h,00h,00h, 80h,00h,00h,00h, HIGH(F32ZeroRE2), LOW(F32ZeroRE2) ; 00h,00h,00h,00h, 80h,00h,00h,00h, 1 db "I32>F32",0, 00h,00h,00h,00h, 01h,02h,03h,04h db HIGH(F32Cvti32tof32RE1), LOW(F32Cvti32tof32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 0 db "I32>F32",0, 00h,00h,00h,81h, 01h,02h,03h,04h db HIGH(F32Cvti32tof32RE1), LOW(F32Cvti32tof32RE1) ; 43h,01h,00h,00h, 01h,02h,03h,04h, 0 db "I32>F32",0, ffh,ffh,ffh,7fh, 01h,02h,03h,04h db HIGH(F32Cvti32tof32RE1), LOW(F32Cvti32tof32RE1) ; c3h,01h,00h,00h, 01h,02h,03h,04h, 0 db "I32>F32",0, 01h,ffh,ffh,feh, 01h,02h,03h,04h db HIGH(F32Cvti32tof32RE1), LOW(F32Cvti32tof32RE1) ; 4bh,ffh,ffh,ffh, 01h,02h,03h,04h, 0 db "I32>F32",0, 01h,ffh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32Cvti32tof32RE1), LOW(F32Cvti32tof32RE1) ; 4ch,00h,00h,00h, 01h,02h,03h,04h, 0 db "I32>F32",0, feh,00h,00h,02h, 01h,02h,03h,04h db HIGH(F32Cvti32tof32RE1), LOW(F32Cvti32tof32RE1) ; cbh,ffh,ffh,ffh, 01h,02h,03h,04h, 0 db "I32>F32",0, feh,00h,00h,01h, 01h,02h,03h,04h db HIGH(F32Cvti32tof32RE1), LOW(F32Cvti32tof32RE1) ; cch,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>I32",0, cfh,00h,00h,01h, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 80h,00h,00h,00h, 01h,02h,03h,04h, 1 db "F32>I32",0, cfh,00h,00h,00h, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 80h,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>I32",0, ceh,ffh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 80h,00h,00h,80h, 01h,02h,03h,04h, 0 db "F32>I32",0, bfh,80h,00h,00h, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; ffh,ffh,ffh,ffh, 01h,02h,03h,04h, 0 db "F32>I32",0, bfh,7fh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>I32",0, 00h,00h,00h,00h, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>I32",0, 3fh,7fh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>I32",0, 3fh,80h,00h,00h, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 00h,00h,00h,01h, 01h,02h,03h,04h, 0 db "F32>I32",0, 4eh,ffh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 7fh,ffh,ffh,80h, 01h,02h,03h,04h, 0 db "F32>I32",0, 4fh,00h,00h,00h, 01h,02h,03h,04h db HIGH(F32Cvtf32toi32RE1), LOW(F32Cvtf32toi32RE1) ; 7fh,ffh,ffh,ffh, 01h,02h,03h,04h, 1 db "U32>F32",0, 00h,00h,00h,00h, 01h,02h,03h,04h db HIGH(F32UCvti32tof32RE1), LOW(F32UCvti32tof32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 0 db "U32>F32",0, 00h,00h,00h,81h, 01h,02h,03h,04h db HIGH(F32UCvti32tof32RE1), LOW(F32UCvti32tof32RE1) ; 43h,01h,00h,00h, 01h,02h,03h,04h, 0 db "U32>F32",0, 01h,ffh,ffh,feh, 01h,02h,03h,04h db HIGH(F32UCvti32tof32RE1), LOW(F32UCvti32tof32RE1) ; 4bh,ffh,ffh,ffh, 01h,02h,03h,04h, 0 db "U32>F32",0, 01h,ffh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32UCvti32tof32RE1), LOW(F32UCvti32tof32RE1) ; 4ch,00h,00h,00h, 01h,02h,03h,04h, 0 db "U32>F32",0, ffh,ffh,ffh,7fh, 01h,02h,03h,04h db HIGH(F32UCvti32tof32RE1), LOW(F32UCvti32tof32RE1) ; 4fh,7fh,ffh,ffh, 01h,02h,03h,04h, 0 db "U32>F32",0, ffh,ffh,ffh,80h, 01h,02h,03h,04h db HIGH(F32UCvti32tof32RE1), LOW(F32UCvti32tof32RE1) ; 4fh,80h,00h,00h, 01h,02h,03h,04h, 0 db "F32>U32",0, bfh,00h,00h,00h, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 1 db "F32>U32",0, beh,ffh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>U32",0, 00h,00h,00h,00h, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>U32",0, 3fh,7fh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 00h,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>U32",0, 3fh,80h,00h,00h, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 00h,00h,00h,01h, 01h,02h,03h,04h, 0 db "F32>U32",0, 4bh,45h,56h,12h, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 00h,c5h,56h,12h, 01h,02h,03h,04h, 0 db "F32>U32",0, 4bh,7fh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 00h,ffh,ffh,ffh, 01h,02h,03h,04h, 0 db "F32>U32",0, 4bh,80h,00h,00h, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 01h,00h,00h,00h, 01h,02h,03h,04h, 0 db "F32>U32",0, 4bh,80h,00h,01h, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 01h,00h,00h,02h, 01h,02h,03h,04h, 0 db "F32>U32",0, 4eh,ffh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; 7fh,ffh,ffh,80h, 01h,02h,03h,04h, 0 db "F32>U32",0, 4fh,7fh,ffh,ffh, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; ffh,ffh,ffh,00h, 01h,02h,03h,04h, 0 db "F32>U32",0, 4fh,80h,00h,00h, 01h,02h,03h,04h db HIGH(F32UCvtf32toi32RE1), LOW(F32UCvtf32toi32RE1) ; ffh,ffh,ffh,ffh, 01h,02h,03h,04h, 1 db 0 Mprog1: db 10h,32h,54h,76h Mprog2: db 98h,bah,dch,feh Mext: db "RW/Ext ",0 Mprog: db "R/Prog ",0 Mint: db "RW/Int ",0 COn: db "C=1 ",0 COff: db "C=0 ",0 ToucheClav: lcall ClaRead jz ToucheClav lcall ClaAntiRebond ret AffCetRE1et2: mov F0,C mov A,#16 lcall LcdCurseur mov C,F0 mov DPTR,#COn jc AffCetRE1et2S mov DPTR,#COff AffCetRE1et2S: lcall LcdWriteStringCode AffRE1et2: mov A,#8 lcall LcdCurseur mov A,RE13 lcall LcdWriteByte mov A,RE12 lcall LcdWriteByte mov A,RE11 lcall LcdWriteByte mov A,RE10 lcall LcdWriteByte mov A,#24 lcall LcdCurseur mov A,RE23 lcall LcdWriteByte mov A,RE22 lcall LcdWriteByte mov A,RE21 lcall LcdWriteByte mov A,RE20 lcall LcdWriteByte ret INCLUDE lib\liblcd.asm INCLUDE lib\libcla2.asm INCLUDE lib\libi32.asm INCLUDE lib\libasc.asm INCLUDE lib\libf32.asm