; test16.asm ; ; Programme de test du 8031 N° 16 ; Test de la bibliotheque mathematique entiers 32 bits ; ; (C) CHAMOUARD 2000 ; (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 ; 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 I32WriteExtRE1 mov DPTR,#Mext2 lcall I32WriteExtRE2 mov DPTR,#Mext1 lcall I32ReadExtRE2 mov DPTR,#Mext2 lcall I32ReadExtRE1 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 I32ReadProgRE1 mov DPTR,#Mprog2 lcall I32ReadProgRE2 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 I32WriteIntRE1 mov R0,#Mint2 lcall I32WriteIntRE2 mov R0,#Mint1 lcall I32ReadIntRE2 mov R0,#Mint2 lcall I32ReadIntRE1 clr C lcall AffCetRE1et2 lcall ToucheClav lcall LcdRaz ; Test decalage a gauche mov DPTR,#MShLe1 ; Avant RE1=01234567h RE2=55aa55aah lcall LcdWriteStringCode ; Apres RE1=048d159ch RE2=55aa55aah mov RE13,#01h mov RE12,#23h mov RE11,#45h mov RE10,#67h mov RE23,#55h mov RE22,#aah mov RE21,#55h mov RE20,#aah lcall AffRE1et2 lcall ToucheClav mov A,#2 lcall I32ShLeRE1 lcall AffCetRE1et2 lcall ToucheClav lcall LcdRaz ; Test decalage a gauche mov DPTR,#MShLe1 ; Avant RE1=01234567h RE2=55aa55aah lcall LcdWriteStringCode ; Apres RE1=ce000000h RE2=55aa55aah mov RE13,#01h mov RE12,#23h mov RE11,#45h mov RE10,#67h mov RE23,#55h mov RE22,#aah mov RE21,#55h mov RE20,#aah lcall AffRE1et2 lcall ToucheClav mov A,#25 lcall I32ShLeRE1 lcall AffCetRE1et2 lcall ToucheClav lcall LcdRaz ; Test decalage a droite mov DPTR,#MShRi1 ; Avant RE1=76543210h RE2=55aa55aah lcall LcdWriteStringCode ; Apres RE1=1d950c84h RE2=55aa55aah mov RE13,#76h mov RE12,#54h mov RE11,#32h mov RE10,#10h mov RE23,#55h mov RE22,#aah mov RE21,#55h mov RE20,#aah lcall AffRE1et2 lcall ToucheClav mov A,#2 lcall I32ShRiRE1 lcall AffCetRE1et2 lcall ToucheClav lcall LcdRaz ; Test decalage a droite mov DPTR,#MShRi1 ; Avant RE1=76543210h RE2=55aa55aah lcall LcdWriteStringCode ; Apres RE1=0000003bh RE2=55aa55aah mov RE13,#76h mov RE12,#54h mov RE11,#32h mov RE10,#10h mov RE23,#55h mov RE22,#aah mov RE21,#55h mov RE20,#aah lcall AffRE1et2 lcall ToucheClav mov A,#25 lcall I32ShRiRE1 lcall AffCetRE1et2 lcall ToucheClav lcall LcdRaz ; Test decalage a gauche mov DPTR,#MShLe2 ; Avant RE1=55aa55aah RE2=01234567h lcall LcdWriteStringCode ; Apres RE1=55aa55aah RE2=ce000000h mov RE13,#55h mov RE12,#aah mov RE11,#55h mov RE10,#aah mov RE23,#01h mov RE22,#23h mov RE21,#45h mov RE20,#67h lcall AffRE1et2 lcall ToucheClav mov A,#25 lcall I32ShLeRE2 lcall AffCetRE1et2 lcall ToucheClav lcall LcdRaz ; Test decalage a droite mov DPTR,#MShRi2 ; Avant RE1=55aa55aah RE2=76543210h lcall LcdWriteStringCode ; Apres RE1=55aa55aah RE2=0000003bh mov RE13,#55h mov RE12,#aah mov RE11,#55h mov RE10,#aah mov RE23,#76h mov RE22,#54h mov RE21,#32h mov RE20,#10h lcall AffRE1et2 lcall ToucheClav mov A,#25 lcall I32ShRiRE2 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 ; ShLeR1 01h,23h,45h,67h, 55h,aah,55h,aah, ; 04h,8dh,15h,9ch, 55h,aah,55h,aah, 0 ; ShLeR1 01h,23h,45h,67h, 55h,aah,55h,aah, ; ceh,00h,00h,00h, 55h,aah,55h,aah, 0 ; ShRiR1 76h,54h,32h,10h, 55h,aah,55h,aah, ; 1dh,95h,0ch,84h, 55h,aah,55h,aah, 0 ; ShRiR1 76h,54h,32h,10h, 55h,aah,55h,aah, ; 00h,00h,00h,3bh, 55h,aah,55h,aah, 0 ; ShLeR2 55h,aah,55h,aah, 01h,23h,45h,67h, ; 55h,aah,55h,aah, ceh,00h,00h,00h, 0 ; ShRiR2 55h,aah,55h,aah, 76h,54h,32h,10h, ; 55h,aah,55h,aah, 00h,00h,00h,3bh, 0 db "Clear ",0, 01h,23h,45h,67h, 89h,abh,cdh,efh, HIGH(I32ClearRE1), LOW(I32ClearRE1) ; 00h,00h,00h,00h, 89h,abh,cdh,efh, 0 db "UAdd ",0, 01h,23h,45h,67h, 02h,46h,8ah,ceh, HIGH(I32UAdd), LOW(I32UAdd) ; 03h,69h,d0h,35h, 02h,46h,8ah,ceh, 0 db "UAdd ",0, 01h,23h,45h,67h, feh,dch,bah,98h, HIGH(I32UAdd), LOW(I32UAdd) ; ffh,ffh,ffh,ffh, feh,dch,bah,98h, 0 db "UAdd ",0, 01h,23h,45h,67h, feh,dch,bah,99h, HIGH(I32UAdd), LOW(I32UAdd) ; 00h,00h,00h,00h, feh,dch,bah,99h, 1 db "USub ",0, 02h,46h,8ah,ceh, 01h,23h,45h,67h, HIGH(I32USub), LOW(I32USub) ; 01h,23h,45h,67h, 01h,23h,45h,67h, 0 db "USub ",0, 02h,46h,8ah,ceh, 02h,46h,8ah,cfh, HIGH(I32USub), LOW(I32USub) ; ffh,ffh,ffh,ffh, 02h,46h,8ah,cfh, 1 db "UMul ",0, 00h,00h,ffh,ffh, 00h,00h,ffh,ffh, HIGH(I32UMul), LOW(I32UMul) ; ffh,feh,00h,01h, 00h,00h,ffh,ffh, 0 db "UMul ",0, 00h,01h,01h,01h, 00h,00h,ffh,ffh, HIGH(I32UMul), LOW(I32UMul) ; 00h,ffh,feh,ffh, 00h,00h,ffh,ffh, 1 db "UMul ",0, 01h,01h,01h,01h, 00h,00h,ffh,ffh, HIGH(I32UMul), LOW(I32UMul) ; ffh,ffh,feh,ffh, 00h,00h,ffh,ffh, 1 db "UDiv ",0, 12h,34h,56h,78h, 00h,00h,feh,dch, HIGH(I32UDiv), LOW(I32UDiv) ; 00h,00h,12h,49h, 00h,00h,31h,bch, 0 db "UDiv ",0, 00h,00h,00h,01h, 00h,00h,00h,00h, HIGH(I32UDiv), LOW(I32UDiv) ; ffh,ffh,ffh,ffh, 00h,00h,00h,00h, 1 db "Neg ",0, 00h,00h,00h,00h, 00h,00h,00h,00h, HIGH(I32NegRE1), LOW(I32NegRE1) ; 00h,00h,00h,00h, 00h,00h,00h,00h, 0 db "Neg ",0, 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, HIGH(I32NegRE1), LOW(I32NegRE1) ; 80h,00h,00h,01h, 00h,00h,00h,00h, 0 db "Neg ",0, 80h,00h,00h,01h, 00h,00h,00h,00h, HIGH(I32NegRE1), LOW(I32NegRE1) ; 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, 0 db "Neg ",0, 80h,00h,00h,00h, 00h,00h,00h,00h, HIGH(I32NegRE1), LOW(I32NegRE1) ; 80h,00h,00h,00h, 00h,00h,00h,00h, 1 db "Sgn ",0, 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, HIGH(I32SgnRE1), LOW(I32SgnRE1) ; 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, 0 db "Sgn ",0, 80h,00h,00h,00h, 00h,00h,00h,00h, HIGH(I32SgnRE1), LOW(I32SgnRE1) ; 80h,00h,00h,00h, 00h,00h,00h,00h, 1 db "Abs ",0, 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, HIGH(I32AbsRE1), LOW(I32AbsRE1) ; 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, 0 db "Abs ",0, 80h,00h,00h,01h, 00h,00h,00h,00h, HIGH(I32AbsRE1), LOW(I32AbsRE1) ; 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, 0 db "Abs ",0, 80h,00h,00h,00h, 00h,00h,00h,00h, HIGH(I32AbsRE1), LOW(I32AbsRE1) ; 80h,00h,00h,00h, 00h,00h,00h,00h, 1 db "SAdd ",0, 01h,23h,45h,67h, 02h,46h,8ah,ceh, HIGH(I32Add), LOW(I32Add) ; 03h,69h,d0h,35h, 02h,46h,8ah,ceh, 0 db "SAdd ",0, 7fh,ffh,ffh,ffh, 00h,00h,00h,01h, HIGH(I32Add), LOW(I32Add) ; 80h,00h,00h,00h, 00h,00h,00h,01h, 1 db "SAdd ",0, feh,dch,bah,98h, fdh,b9h,75h,31h, HIGH(I32Add), LOW(I32Add) ; fch,96h,2fh,c9h, fdh,b9h,75h,31h, 0 db "SAdd ",0, 80h,00h,00h,00h, ffh,ffh,ffh,ffh, HIGH(I32Add), LOW(I32Add) ; 7fh,ffh,ffh,ffh, ffh,ffh,ffh,ffh, 1 db "SAdd ",0, 7fh,ffh,ffh,ffh, 80h,00h,00h,00h, HIGH(I32Add), LOW(I32Add) ; ffh,ffh,ffh,ffh, 80h,00h,00h,00h, 0 db "SSub ",0, 80h,00h,00h,02h, 00h,00h,00h,02h, HIGH(I32Sub), LOW(I32Sub) ; 80h,00h,00h,00h, 00h,00h,00h,02h, 0 db "SSub ",0, 80h,00h,00h,02h, 00h,00h,00h,03h, HIGH(I32Sub), LOW(I32Sub) ; 7fh,ffh,ffh,ffh, 00h,00h,00h,03h, 1 db "SSub ",0, 7fh,ffh,ffh,fdh, ffh,ffh,ffh,feh, HIGH(I32Sub), LOW(I32Sub) ; 7fh,ffh,ffh,ffh, ffh,ffh,ffh,feh, 0 db "SSub ",0, 7fh,ffh,ffh,fdh, ffh,ffh,ffh,fdh, HIGH(I32Sub), LOW(I32Sub) ; 80h,00h,00h,00h, ffh,ffh,ffh,fdh, 1 db "SMul ",0, 00h,00h,7fh,01h, 00h,01h,01h,02h, HIGH(I32Mul), LOW(I32Mul) ; 7fh,80h,ffh,02h, 00h,01h,01h,02h, 0 db "SMul ",0, 00h,00h,7fh,01h, 00h,01h,02h,02h, HIGH(I32Mul), LOW(I32Mul) ; 80h,00h,00h,02h, 00h,01h,02h,02h, 1 db "SMul ",0, 00h,01h,00h,00h, 00h,01h,00h,00h, HIGH(I32Mul), LOW(I32Mul) ; 00h,00h,00h,00h, 00h,01h,00h,00h, 1 db "SMul ",0, ffh,ffh,80h,00h, 00h,01h,00h,00h, HIGH(I32Mul), LOW(I32Mul) ; 80h,00h,00h,00h, 00h,01h,00h,00h, 0 db "SMul ",0, ffh,ffh,80h,00h, 00h,01h,00h,01h, HIGH(I32Mul), LOW(I32Mul) ; 7fh,ffh,80h,00h, 00h,01h,00h,01h, 1 db "SMul ",0, ffh,ffh,00h,00h, 00h,01h,00h,00h, HIGH(I32Mul), LOW(I32Mul) ; 00h,00h,00h,00h, 00h,01h,00h,00h, 1 db "SMul ",0, ffh,ffh,80h,01h, ffh,ffh,00h,00h, HIGH(I32Mul), LOW(I32Mul) ; 7fh,ffh,00h,00h, 00h,01h,00h,00h, 0 db "SMul ",0, ffh,ffh,80h,00h, ffh,ffh,00h,00h, HIGH(I32Mul), LOW(I32Mul) ; 80h,00h,00h,00h, 00h,01h,00h,00h, 1 db "SMul ",0, ffh,ffh,00h,00h, ffh,ffh,00h,00h, HIGH(I32Mul), LOW(I32Mul) ; 00h,00h,00h,00h, 00h,01h,00h,00h, 1 db "SMul ",0, 00h,01h,00h,00h, ffh,ffh,80h,00h, HIGH(I32Mul), LOW(I32Mul) ; 80h,00h,00h,00h, 00h,00h,80h,00h, 0 db "SMul ",0, 00h,01h,00h,01h, ffh,ffh,80h,00h, HIGH(I32Mul), LOW(I32Mul) ; 7fh,ffh,80h,00h, 00h,00h,80h,00h, 1 db "SMul ",0, 00h,01h,00h,00h, ffh,ffh,00h,00h, HIGH(I32Mul), LOW(I32Mul) ; 00h,00h,00h,00h, 00h,01h,00h,00h, 1 db "SDiv ",0, 7fh,ffh,ffh,ffh, 00h,00h,00h,01h, HIGH(I32Div), LOW(I32Div) ; 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, 0 db "SDiv ",0, 7fh,ffh,ffh,ffh, 7fh,ffh,ffh,ffh, HIGH(I32Div), LOW(I32Div) ; 00h,00h,00h,01h, 00h,00h,00h,00h, 0 db "SDiv ",0, 76h,54h,32h,10h, 00h,01h,ffh,ffh, HIGH(I32Div), LOW(I32Div) ; 00h,00h,3bh,2ah, 00h,00h,6dh,3ah, 0 db "SDiv ",0, 80h,00h,00h,00h, 00h,00h,00h,01h, HIGH(I32Div), LOW(I32Div) ; 80h,00h,00h,00h, 00h,00h,00h,00h, 0 db "SDiv ",0, 89h,abh,cdh,f0h, 00h,01h,ffh,ffh, HIGH(I32Div), LOW(I32Div) ; ffh,ffh,c4h,d6h, ffh,ffh,92h,c6h, 0 db "SDiv ",0, 7fh,ffh,ffh,ffh, ffh,ffh,ffh,ffh, HIGH(I32Div), LOW(I32Div) ; 80h,00h,00h,01h, 00h,00h,00h,00h, 0 db "SDiv ",0, 76h,54h,32h,10h, ffh,feh,00h,01h, HIGH(I32Div), LOW(I32Div) ; ffh,ffh,c4h,d6h, ffh,ffh,92h,c6h, 0 db "SDiv ",0, 80h,00h,00h,01h, ffh,ffh,ffh,ffh, HIGH(I32Div), LOW(I32Div) ; 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, 0 db "SDiv ",0, 89h,abh,cdh,f0h, ffh,feh,00h,01h, HIGH(I32Div), LOW(I32Div) ; 00h,00h,3bh,2ah, 00h,00h,6dh,3ah, 0 db "SDiv ",0, 80h,00h,00h,00h, ffh,ffh,ffh,ffh, HIGH(I32Div), LOW(I32Div) ; 80h,00h,00h,00h, 00h,00h,00h,00h, 1 db "SDiv ",0, 00h,00h,00h,01h, 00h,00h,00h,00h, HIGH(I32Div), LOW(I32Div) ; 7fh,ffh,ffh,ffh, 00h,00h,00h,00h, 1 db "SDiv ",0, ffh,ffh,ffh,ffh, 00h,00h,00h,00h, HIGH(I32Div), LOW(I32Div) ; 80h,00h,00h,00h, 00h,00h,00h,00h, 1 db "S32>08 ",0, 00h,00h,00h,7fh, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; 00h,00h,00h,7fh, 00h,00h,00h,00h, 0 db "S32>08 ",0, 00h,00h,00h,80h, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; 00h,00h,00h,80h, 00h,00h,00h,00h, 1 db "S32>08 ",0, 00h,00h,01h,7fh, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; 00h,00h,00h,7fh, 00h,00h,00h,00h, 1 db "S32>08 ",0, 00h,01h,00h,7fh, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; 00h,00h,00h,7fh, 00h,00h,00h,00h, 1 db "S32>08 ",0, 01h,00h,00h,7fh, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; 00h,00h,00h,7fh, 00h,00h,00h,00h, 1 db "S32>08 ",0, ffh,ffh,ffh,80h, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; ffh,ffh,ffh,80h, 00h,00h,00h,00h, 0 db "S32>08 ",0, ffh,ffh,ffh,7fh, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; ffh,ffh,ffh,7fh, 00h,00h,00h,00h, 1 db "S32>08 ",0, ffh,ffh,feh,80h, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; ffh,ffh,ffh,80h, 00h,00h,00h,00h, 1 db "S32>08 ",0, ffh,feh,ffh,80h, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; ffh,ffh,ffh,80h, 00h,00h,00h,00h, 1 db "S32>08 ",0, feh,ffh,ffh,80h, 00h,00h,00h,00h db HIGH(I32Cvti32toi08RE1), LOW(I32Cvti32toi08RE1) ; ffh,ffh,ffh,80h, 00h,00h,00h,00h, 1 db "S08>32 ",0, ffh,ffh,ffh,7fh, 00h,00h,00h,00h db HIGH(I32Cvti08toi32RE1), LOW(I32Cvti08toi32RE1) ; 00h,00h,00h,7fh, 00h,00h,00h,00h, 0 db "S08>32 ",0, 00h,00h,00h,80h, 00h,00h,00h,00h db HIGH(I32Cvti08toi32RE1), LOW(I32Cvti08toi32RE1) ; ffh,ffh,ffh,80h, 00h,00h,00h,00h, 0 db "S32>16 ",0, 00h,00h,7fh,ffh, 00h,00h,00h,00h db HIGH(I32Cvti32toi16RE1), LOW(I32Cvti32toi16RE1) ; 00h,00h,7fh,ffh, 00h,00h,00h,00h, 0 db "S32>16 ",0, 00h,00h,80h,00h, 00h,00h,00h,00h db HIGH(I32Cvti32toi16RE1), LOW(I32Cvti32toi16RE1) ; 00h,00h,80h,00h, 00h,00h,00h,00h, 1 db "S32>16 ",0, 00h,01h,7fh,ffh, 00h,00h,00h,00h db HIGH(I32Cvti32toi16RE1), LOW(I32Cvti32toi16RE1) ; 00h,00h,7fh,ffh, 00h,00h,00h,00h, 1 db "S32>16 ",0, 01h,00h,7fh,ffh, 00h,00h,00h,00h db HIGH(I32Cvti32toi16RE1), LOW(I32Cvti32toi16RE1) ; 00h,00h,7fh,ffh, 00h,00h,00h,00h, 1 db "S32>16 ",0, ffh,ffh,80h,00h, 00h,00h,00h,00h db HIGH(I32Cvti32toi16RE1), LOW(I32Cvti32toi16RE1) ; ffh,ffh,80h,00h, 00h,00h,00h,00h, 0 db "S32>16 ",0, ffh,ffh,7fh,ffh, 00h,00h,00h,00h db HIGH(I32Cvti32toi16RE1), LOW(I32Cvti32toi16RE1) ; ffh,ffh,7fh,ffh, 00h,00h,00h,00h, 1 db "S32>16 ",0, ffh,feh,80h,00h, 00h,00h,00h,00h db HIGH(I32Cvti32toi16RE1), LOW(I32Cvti32toi16RE1) ; ffh,ffh,80h,00h, 00h,00h,00h,00h, 1 db "S32>16 ",0, feh,ffh,80h,00h, 00h,00h,00h,00h db HIGH(I32Cvti32toi16RE1), LOW(I32Cvti32toi16RE1) ; ffh,ffh,80h,00h, 00h,00h,00h,00h, 1 db "S16>32 ",0, ffh,ffh,7fh,ffh, 00h,00h,00h,00h db HIGH(I32Cvti16toi32RE1), LOW(I32Cvti16toi32RE1) ; 00h,00h,7fh,ffh, 00h,00h,00h,00h, 0 db "S16>32 ",0, 00h,00h,80h,00h, 00h,00h,00h,00h db HIGH(I32Cvti16toi32RE1), LOW(I32Cvti16toi32RE1) ; ffh,ffh,80h,00h, 00h,00h,00h,00h, 0 db "U32>08 ",0, 00h,00h,00h,ffh, 00h,00h,00h,00h db HIGH(I32UCvti32toi08RE1), LOW(I32UCvti32toi08RE1) ; 00h,00h,00h,ffh, 00h,00h,00h,00h, 0 db "U32>08 ",0, 00h,00h,01h,ffh, 00h,00h,00h,00h db HIGH(I32UCvti32toi08RE1), LOW(I32UCvti32toi08RE1) ; 00h,00h,00h,ffh, 00h,00h,00h,00h, 1 db "U32>08 ",0, 00h,01h,00h,ffh, 00h,00h,00h,00h db HIGH(I32UCvti32toi08RE1), LOW(I32UCvti32toi08RE1) ; 00h,00h,00h,ffh, 00h,00h,00h,00h, 1 db "U32>08 ",0, 01h,00h,00h,ffh, 00h,00h,00h,00h db HIGH(I32UCvti32toi08RE1), LOW(I32UCvti32toi08RE1) ; 00h,00h,00h,ffh, 00h,00h,00h,00h, 1 db "U08>32 ",0, ffh,ffh,ffh,ffh, 00h,00h,00h,00h db HIGH(I32UCvti08toi32RE1), LOW(I32UCvti08toi32RE1) ; 00h,00h,00h,ffh, 00h,00h,00h,00h, 0 db "U32>16 ",0, 00h,00h,ffh,ffh, 00h,00h,00h,00h db HIGH(I32UCvti32toi16RE1), LOW(I32UCvti32toi16RE1) ; 00h,00h,ffh,ffh, 00h,00h,00h,00h, 0 db "U32>16 ",0, 00h,01h,ffh,ffh, 00h,00h,00h,00h db HIGH(I32UCvti32toi16RE1), LOW(I32UCvti32toi16RE1) ; 00h,00h,ffh,ffh, 00h,00h,00h,00h, 1 db "U32>16 ",0, 01h,00h,ffh,ffh, 00h,00h,00h,00h db HIGH(I32UCvti32toi16RE1), LOW(I32UCvti32toi16RE1) ; 00h,00h,ffh,ffh, 00h,00h,00h,00h, 1 db "U16>32 ",0, ffh,ffh,ffh,ffh, 00h,00h,00h,00h db HIGH(I32UCvti16toi32RE1), LOW(I32UCvti16toi32RE1) ; 00h,00h,ffh,ffh, 00h,00h,00h,00h, 0 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 MShLe1: db "ShLeR1 ",0 MShRi1: db "ShRiR1 ",0 MShLe2: db "ShLeR2 ",0 MShRi2: db "ShRiR2 ",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\libasc.asm INCLUDE lib\libi32.asm