Rename test-files directory -> tests
authorHugo Villeneuve <hugo@hugovil.com>
Sat, 23 Nov 2013 18:56:54 +0000 (13:56 -0500)
committerHugo Villeneuve <hugo@hugovil.com>
Mon, 2 Dec 2013 01:59:04 +0000 (20:59 -0500)
Makefile.am
test-files/siae1.hex [deleted file]
test-files/test-cjne.hex [deleted file]
test-files/test.hex [deleted file]
test-files/timer.asm [deleted file]
test-files/timer.hex [deleted file]
tests/siae1.hex [new file with mode: 0644]
tests/test-cjne.hex [new file with mode: 0644]
tests/test.hex [new file with mode: 0644]
tests/timer.asm [new file with mode: 0644]
tests/timer.hex [new file with mode: 0644]

index 623e0b9..71bd259 100644 (file)
@@ -6,8 +6,7 @@ SUBDIRS = src data doc
 
 ## We want these in the dist tarball
 EXTRA_DIST = autogen.sh \
-             pixmaps \
-             test-files
+             pixmaps
 
 ACLOCAL = aclocal -I $(ac_aux_dir)
 
diff --git a/test-files/siae1.hex b/test-files/siae1.hex
deleted file mode 100644 (file)
index 7324c56..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-:0600000002003302003390
-:03000B00020033BD
-:03001300020033B5
-:03001B00020033AD
-:03002300020033A5
-:03002B000200339D
-:100033007581801202D312024375540075550085F1
-:100043004356854457755BC61204C8120493740360
-:100053002557F543855A56855B57755B0A1204C8C5
-:10006300120493E5574430F55E75F000E543120240
-:10007300DC85514F85525085535175522E855E5301
-:1000830074501203067404120306E54F120306E5C7
-:1000930050120306E551120306E552120306E55317
-:1000A300120306745A12030675300075315D7532FA
-:1000B300C01204E78534F0E5351202DC74501203F4
-:1000C300067401120306E54F120306E550120306F8
-:1000D300E551120306E552120306E55312030674B3
-:1000E3005A12030675F000E5361202DC745012034F
-:1000F300067405120306E551120306E552120306C0
-:10010300E553120306745A12030675F000E537121D
-:1001130002DC74501203067406120306E55112033F
-:1001230006E552120306E553120306745A12030638
-:10013300E53875F00584C5F0C3334430F55FC5F089
-:1001430075F0001202DC85525085535175522E858D
-:100153005F5374501203067408120306E55012032A
-:1001630006E551120306E552120306E55312030690
-:10017300745A12030675540075550085415685421D
-:1001830057755B641204C87554001204938556F0C6
-:10019300E5571202DC74501203067402120306E5DB
-:1001A30051120306E552120306E553120306745A6D
-:1001B300120306755400755500853B56853C5775EB
-:1001C3005B0F1204C812049385575C855A56855BEE
-:1001D30057755B641204C81204938556F0E55712F1
-:1001E30002DC85525D85535E75F000E55C1202DC2E
-:1001F30085524F85535075512E855D52855E5374DC
-:10020300501203067407120306E54F120306E55066
-:10021300120306E551120306E552120306E55312D3
-:100223000306745A12030674201203060139756219
-:1002330016740075F000D5F0FDD5E0F7D562F22213
-:10024300783B7900E9120255A64E08A64D0809B974
-:1002530008F2D2B3C2B1C2B300D2B3C2B6C2B300C2
-:10026300D2B3F580C2B300D2B3D2B6C2B300D2B315
-:10027300D2B1C2B31202CA7580FFD2B3C2B1C2B344
-:1002830000D2B3C2B7C2B30085804DD2B3D2B7C2D6
-:10029300B300D2B3D2B1C2B300D2B3D2B2C2B300AD
-:1002A300D2B3C2B1C2B300D2B3C2B7C2B300858066
-:1002B3004E00D2B3D2B7C2B300D2B3D2B1C2B300ED
-:1002C300D2B3C2B2C2B322D2B300C2B330B0F822A7
-:1002D30075D54475B0F3513122C00078537554007D
-:1002E30075550085F056F557755800755900755AC0
-:1002F30000755B0A120314E55B4430F618B84EE848
-:10030300D00022F586B290E5AA53E08060F9E58635
-:1003130022C004C003C002C001C0007504207503DD
-:100323000075020075010075000012038F1203A50A
-:100333004022C3E5039558403A7019C3E502955925
-:1003430040317010C3E501955A40287007C3E5009A
-:10035300955B401FC3E500955BF500E501955AF5F4
-:1003630001E5029559F502E5039558F503E557D2E2
-:10037300E0F557DCB585035885025985015A850098
-:100383005BD000D001D002D003D00422C3E55733A1
-:10039300F557E55633F556E55533F555E55433F53D
-:1003A3005422E50033F500E50133F501E50233F5A9
-:1003B30002E50333F50322C002C001C00075021B2E
-:1003C30075010075000012040312041D4010C3E5FB
-:1003D30001955A401C7007C3E500955B4013C3E5C4
-:1003E30000955BF500E501955AF501E557D2E0F577
-:1003F30057DAD385015A85005BD000D001D00222A1
-:10040300C3E55733F557E55633F556E55533F555FB
-:10041300E5543392E35407F55422E50033F500E540
-:100423000133F50122C002C001C000750216750137
-:10043300007500001204711204844010C3E5019595
-:100443005A401C7007C3E500955B4013C3E5009554
-:100453005BF500E501955AF501E557D2E0F557DA6A
-:10046300D385015A85005BD000D001D00222C3E5B9
-:100473005733F557E55633F556E55533F55592E6BB
-:1004830022E50033F500E5013392E6543FF50122FE
-:1004930085575B85565A535A0F1204B81204B81283
-:1004A30004B81204B853540F8556578555568554CE
-:1004B3005575540022E55413F554E55513F555E5E8
-:1004C3005613F55622E556855BF0A4F55685F0558F
-:1004D300E557855BF0A4F557C5F02556F556E43589
-:1004E30055F555221205751205981205B5E53654D2
-:1004F300F0C4C5F0E53754F025F0F5F01205DAF84D
-:10050300E5F0240130D605E8F90205131205DAF9FE
-:10051300E5F024105007E8FAE9FB020536F5F0127E
-:1005230005DAFAE5F0240130D605EAFB02053612B6
-:1005330005DAFB88F0E9AC36120553F88AF0EBAC28
-:1005430036120553FA88F0EAAC37120553F5382210
-:10055300C0F0C223C395F05005F42401D223F5F073
-:10056300EC540FA454F0C4302303F42401D0F02539
-:10057300F02275540775552775560E755700E530EB
-:10058300B4000B85315A85325B71BA0205918556E9
-:100593003485573522C3E5359490F556E5349401F7
-:1005A300F555755700C3755A25755B809128855796
-:1005B3003622755400755500C3E54394285001E471
-:1005C300F556755700755800755900755A00755BD7
-:1005D300A071148557372224E8F58274053400F599
-:1005E3008374009322111123465F5F666666666615
-:1005F3006666585858111123465F5F6666666666DD
-:100603006666585858111123465F5F6666666666CC
-:100613006666585858111123465F5F6666666666BC
-:100623006666585858111123465F5F6666666666AC
-:100633006666585858111123465F5F66666666669C
-:100643006666585858111123465F5F66666666668C
-:100653006666585858111123465B5B626262626298
-:1006630062625454541111234651515858585858E2
-:100673005858585858111123464A4A51515151510B
-:10068300515151515111111C3846464A4A4A4A4A5E
-:100693004A4A4A4A4A11111C343F3F4343434343A6
-:1006A300434343434311111C3438383C3C3C3C3CEA
-:1006B3003C3C3C3C3C11111C2A2D2D313131313154
-:1006C300313131313111111C3438383C3C3C3C3C24
-:1006D3003C3C3C3C3C11111C2A2D2D313131313134
-:0506E30031313131311D
-:00000001FF
diff --git a/test-files/test-cjne.hex b/test-files/test-cjne.hex
deleted file mode 100644 (file)
index 5778693..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-:030000007457141E
-:03000300B455FCF5
diff --git a/test-files/test.hex b/test-files/test.hex
deleted file mode 100644 (file)
index 7a42308..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-:03000000020033C8
-:1000330075818075D54475A000C290E4F500E50094
-:1000430012007DF586D29005A07400D5E0FDC29024
-:10005300E5AA53E08060F9E5861200690500C3E56F
-:1000630000945040D92222752005740075F000D504
-:10007300F0FDD5E0F7D520F20022248BF582740041
-:100083003400F5837400932252504D3A31303234A8
-:1000930035204D41503A313033204D41543A3131BE
-:1000A30030204241543A31322E3420202020202067
-:1000B3000D0A0A45474F3A31342E36202054505307
-:1000C3003A31303020414E473A33302020434C54AC
-:0B00D3003A313038202020202020206F
-:00000001FF
diff --git a/test-files/timer.asm b/test-files/timer.asm
deleted file mode 100644 (file)
index aac4885..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-;*******************************************************************************
-;*                Système d'Injection et d'Allumage Électronique               *
-;*                Version     : 01                                             *
-;*                Auteur      : Hugo Villeneuve                                *
-;*                                                                             *
-;*                10 mars 1999                                                 *
-;*******************************************************************************
-
-        $MOD52                  ; Micro-contrôleur Atmel AT89S8252
-
-
-;*******************************************************************************
-;*      Définition des constantes                                              *
-;*******************************************************************************
-
-TOS             EQU     60h     ; Adresse du dessus de la pile.
-CR              EQU     0Dh    ; Code ASCII pour un retour de chariot.
-LF              EQU     0Ah    ; Code ASCII pour un changement de ligne
-
-
-;*******************************************************************************
-;*      Définition des variables                                               *
-;*******************************************************************************
-                BSEG
-                ORG     20h
-C_FLAG:         DBIT    1
-Z_FLAG:         DBIT    2
-N_FLAG:                DBIT    3       ; Utilisé par la sous-routine MULT8_16
-SIGNE:         DBIT    4       ; Utilisé pour l'interpolation.
-
-                DSEG
-                ORG     30h
-PERIODE2:      DS      1       ; Période pour une rotation du vilebrequin, sur 24 bits.
-PERIODE1:       DS      1
-PERIODE0:       DS      1
-POSITION_VILB: DS      1       ; Renseignement sur la position actuelle du vilebrequin (zones 0,1 ou 2).
-VITESSE_RPM:   DS      2       ; Vitesse de rotation du moteur en RPM.
-INDEX_RPM:     DS      1       ; Index de 8 bits pour l'adressage des colonnes de la table d'allumage.
-INDEX_MAP:     DS      1       ; Index de 8 bits pour l'adressage des lignes de la table d'allumage.
-ANGLE:         DS      1       ; Angle d'allumage calculé à partir de la table.
-BAT:            DS      2       ; Voltage de la batterie.
-MAT:            DS      2       ; Manifold Air Temperature.
-CLT:            DS      2       ; Coolant Temperature.
-TPS:            DS      2       ; Throttle Position Sensor.
-MAP:            DS      2       ; Manifold Absolute Pressure.
-EGO:            DS      2       ; Exhaust Gas-Oxygen Sensor.
-CAN6:           DS      2       ; Canal #6 du convertisseur AN.
-CAN7:           DS      2       ; Canal #7 du convertisseur AN.
-GAMMA:          DS      2       ; Rapport Air/Carburant.
-LSB_CAN:        DS      1       ; Octet de poids faible de la conversion Analogique-Numérique.
-MSB_CAN:        DS      1       ; Octet de poids fort de la conversion Analogique-Numérique.
-NOMBRE4:        DS      1       ; Stockage des codes ASCII pour les conversions.
-NOMBRE3:        DS      1
-NOMBRE2:        DS      1
-NOMBRE1:        DS      1
-NOMBRE0:        DS      1
-C3:             DS      1       ; Accumulateur C de 32 bits pour les calculs mathématiques.
-C2:             DS      1
-C1:             DS      1
-C0:             DS      1
-D3:            DS      1       ; Accumulateur D de 32 bits pour les calculs mathématiques.
-D2:            DS      1
-D1:             DS      1
-D0:             DS      1
-TMP6:           DS      1       ; Variables temporaires utilisées pour les calculs mathématiques.
-TMP5:           DS      1      ; FAIRE LE MÉNAGE VARIABLES NON UTILISEES!!!
-TMP4:           DS      1
-TMP3:           DS      1
-TMP2:           DS      1
-TMP1:           DS      1
-TMP0:           DS      1
-VAR0:          DS      1
-VAR1:          DS      1
-VAR2:          DS      1
-
-
-;*******************************************************************************
-;*      Définition des régistres spécifiques au AT89S8252                      *
-;*******************************************************************************
-SPCR            DATA    0D5h            ; SPCR - SPI Control Register
-SPSR            DATA    0AAh            ; SPSR - SPI Status Register
-SPIF            EQU     10000000b       ; Masque pour le drapeau SPI.
-WCOL            EQU     01000000b       ; Masque pour le drapeau Write Collision.
-SPDR            DATA    086h            ; SPDR - SPI Data Register
-
-
-;*******************************************************************************
-;*      Vecteurs d'interruptions                                               *
-;*******************************************************************************
-        CSEG
-
-        ORG     0000h   ; Vecteur d'interruption du RESET.
-        JMP     DEBUT
-
-        ORG     0003h   ; Vecteur pour l'interruption EXTERNE 0.
-        JMP     VILEBREQUIN
-
-        ORG     000Bh   ; Vecteur pour l'interruption du TIMER 0.
-        JMP     DEBUT
-
-        ORG     0013h   ; Vecteur pour l'interruption EXTERNE 1.
-        JMP     DEBUT
-
-        ORG     001Bh   ; Vecteur pour l'interruption du TIMER 1.
-        JMP     DEBUT
-
-        ORG     0023h   ; Vecteur pour l'interruption du Port série.
-        JMP     DEBUT
-
-        ORG     002Bh   ; Vecteur pour l'interruption du TIMER 2.
-        JMP     DEBUT
-
-
-;*******************************************************************************
-;*      Début du programme principal                                           *
-;*******************************************************************************
-        ORG     0033h
-
-DEBUT:
-        MOV     SP,#TOS         ; Initialisation de la pile.
-        CALL    INITIALISATION
-        ; il ne faut pas modifier la valeur de P1.0!!!
-
-ICI:
-       NOP
-       NOP
-       NOP
-       NOP     
-
-        JMP     ICI
-
-
-;*******************************************************************************
-;*      Délai                                                                  *
-;*******************************************************************************
-DELAI:          MOV     TMP0,#016h      ; Délai de 1/2 seconde.
-B3:            MOV     A,#0    
-B2:            MOV     B,#0
-B1:            DJNZ    B,B1
-               DJNZ    ACC,B2  
-                DJNZ    TMP0,B3  
-                RET
-
-
-
-;*******************************************************************************
-;*      INTERRUPTION                                                           *
-;*******************************************************************************
-VILEBREQUIN:
-       RETI
-
-
-;*******************************************************************************
-;*      Initialisation                                                         *
-;*******************************************************************************
-INITIALISATION: MOV     SPCR,#01000100b ; Interruption SPI désactivée;
-                                       ; Activation du port SPI;
-                                       ; Ordre des transferts : MSB en premier;
-                                       ; Opération en mode escalve (SLAVE);
-                                        ; Polarité de l'horloge : niveau bas si inactif.
-                                       ; Phase de l'horloge : transfert sur front montant.
-       MOV     TH0,#2
-       MOV     TL0,#55h
-       SETB    TCON.4          ; Timer 0 ON.
-       SETB    TCON.6          ; Timer 1 ON.
-       MOV     TMOD,#00010001B ; Initialisation des timers 0 et 1 en timers de
-                               ; 16 bits, incrémentés par l'horloge interne
-                               ; Chaque timer est incrémenté tant que le bit correspondant de
-                               ; TCON est à 1 (TCON.4 et TCON.6).
-       RET
-
-
-
-        END
-
-
-
-
-
diff --git a/test-files/timer.hex b/test-files/timer.hex
deleted file mode 100644 (file)
index 3fadd1b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-:0600000002003302005172
-:03000B00020033BD
-:03001300020033B5
-:03001B00020033AD
-:03002300020033A5
-:03002B000200339D
-:100033007581601200520000000080FA756016742A
-:100043000075F000D5F0FDD5E0F7D560F2223275EA
-:10005300D544758C02758A55D28CD28E758911223E
-:00000001FF
diff --git a/tests/siae1.hex b/tests/siae1.hex
new file mode 100644 (file)
index 0000000..7324c56
--- /dev/null
@@ -0,0 +1,115 @@
+:0600000002003302003390
+:03000B00020033BD
+:03001300020033B5
+:03001B00020033AD
+:03002300020033A5
+:03002B000200339D
+:100033007581801202D312024375540075550085F1
+:100043004356854457755BC61204C8120493740360
+:100053002557F543855A56855B57755B0A1204C8C5
+:10006300120493E5574430F55E75F000E543120240
+:10007300DC85514F85525085535175522E855E5301
+:1000830074501203067404120306E54F120306E5C7
+:1000930050120306E551120306E552120306E55317
+:1000A300120306745A12030675300075315D7532FA
+:1000B300C01204E78534F0E5351202DC74501203F4
+:1000C300067401120306E54F120306E550120306F8
+:1000D300E551120306E552120306E55312030674B3
+:1000E3005A12030675F000E5361202DC745012034F
+:1000F300067405120306E551120306E552120306C0
+:10010300E553120306745A12030675F000E537121D
+:1001130002DC74501203067406120306E55112033F
+:1001230006E552120306E553120306745A12030638
+:10013300E53875F00584C5F0C3334430F55FC5F089
+:1001430075F0001202DC85525085535175522E858D
+:100153005F5374501203067408120306E55012032A
+:1001630006E551120306E552120306E55312030690
+:10017300745A12030675540075550085415685421D
+:1001830057755B641204C87554001204938556F0C6
+:10019300E5571202DC74501203067402120306E5DB
+:1001A30051120306E552120306E553120306745A6D
+:1001B300120306755400755500853B56853C5775EB
+:1001C3005B0F1204C812049385575C855A56855BEE
+:1001D30057755B641204C81204938556F0E55712F1
+:1001E30002DC85525D85535E75F000E55C1202DC2E
+:1001F30085524F85535075512E855D52855E5374DC
+:10020300501203067407120306E54F120306E55066
+:10021300120306E551120306E552120306E55312D3
+:100223000306745A12030674201203060139756219
+:1002330016740075F000D5F0FDD5E0F7D562F22213
+:10024300783B7900E9120255A64E08A64D0809B974
+:1002530008F2D2B3C2B1C2B300D2B3C2B6C2B300C2
+:10026300D2B3F580C2B300D2B3D2B6C2B300D2B315
+:10027300D2B1C2B31202CA7580FFD2B3C2B1C2B344
+:1002830000D2B3C2B7C2B30085804DD2B3D2B7C2D6
+:10029300B300D2B3D2B1C2B300D2B3D2B2C2B300AD
+:1002A300D2B3C2B1C2B300D2B3C2B7C2B300858066
+:1002B3004E00D2B3D2B7C2B300D2B3D2B1C2B300ED
+:1002C300D2B3C2B2C2B322D2B300C2B330B0F822A7
+:1002D30075D54475B0F3513122C00078537554007D
+:1002E30075550085F056F557755800755900755AC0
+:1002F30000755B0A120314E55B4430F618B84EE848
+:10030300D00022F586B290E5AA53E08060F9E58635
+:1003130022C004C003C002C001C0007504207503DD
+:100323000075020075010075000012038F1203A50A
+:100333004022C3E5039558403A7019C3E502955925
+:1003430040317010C3E501955A40287007C3E5009A
+:10035300955B401FC3E500955BF500E501955AF5F4
+:1003630001E5029559F502E5039558F503E557D2E2
+:10037300E0F557DCB585035885025985015A850098
+:100383005BD000D001D002D003D00422C3E55733A1
+:10039300F557E55633F556E55533F555E55433F53D
+:1003A3005422E50033F500E50133F501E50233F5A9
+:1003B30002E50333F50322C002C001C00075021B2E
+:1003C30075010075000012040312041D4010C3E5FB
+:1003D30001955A401C7007C3E500955B4013C3E5C4
+:1003E30000955BF500E501955AF501E557D2E0F577
+:1003F30057DAD385015A85005BD000D001D00222A1
+:10040300C3E55733F557E55633F556E55533F555FB
+:10041300E5543392E35407F55422E50033F500E540
+:100423000133F50122C002C001C000750216750137
+:10043300007500001204711204844010C3E5019595
+:100443005A401C7007C3E500955B4013C3E5009554
+:100453005BF500E501955AF501E557D2E0F557DA6A
+:10046300D385015A85005BD000D001D00222C3E5B9
+:100473005733F557E55633F556E55533F55592E6BB
+:1004830022E50033F500E5013392E6543FF50122FE
+:1004930085575B85565A535A0F1204B81204B81283
+:1004A30004B81204B853540F8556578555568554CE
+:1004B3005575540022E55413F554E55513F555E5E8
+:1004C3005613F55622E556855BF0A4F55685F0558F
+:1004D300E557855BF0A4F557C5F02556F556E43589
+:1004E30055F555221205751205981205B5E53654D2
+:1004F300F0C4C5F0E53754F025F0F5F01205DAF84D
+:10050300E5F0240130D605E8F90205131205DAF9FE
+:10051300E5F024105007E8FAE9FB020536F5F0127E
+:1005230005DAFAE5F0240130D605EAFB02053612B6
+:1005330005DAFB88F0E9AC36120553F88AF0EBAC28
+:1005430036120553FA88F0EAAC37120553F5382210
+:10055300C0F0C223C395F05005F42401D223F5F073
+:10056300EC540FA454F0C4302303F42401D0F02539
+:10057300F02275540775552775560E755700E530EB
+:10058300B4000B85315A85325B71BA0205918556E9
+:100593003485573522C3E5359490F556E5349401F7
+:1005A300F555755700C3755A25755B809128855796
+:1005B3003622755400755500C3E54394285001E471
+:1005C300F556755700755800755900755A00755BD7
+:1005D300A071148557372224E8F58274053400F599
+:1005E3008374009322111123465F5F666666666615
+:1005F3006666585858111123465F5F6666666666DD
+:100603006666585858111123465F5F6666666666CC
+:100613006666585858111123465F5F6666666666BC
+:100623006666585858111123465F5F6666666666AC
+:100633006666585858111123465F5F66666666669C
+:100643006666585858111123465F5F66666666668C
+:100653006666585858111123465B5B626262626298
+:1006630062625454541111234651515858585858E2
+:100673005858585858111123464A4A51515151510B
+:10068300515151515111111C3846464A4A4A4A4A5E
+:100693004A4A4A4A4A11111C343F3F4343434343A6
+:1006A300434343434311111C3438383C3C3C3C3CEA
+:1006B3003C3C3C3C3C11111C2A2D2D313131313154
+:1006C300313131313111111C3438383C3C3C3C3C24
+:1006D3003C3C3C3C3C11111C2A2D2D313131313134
+:0506E30031313131311D
+:00000001FF
diff --git a/tests/test-cjne.hex b/tests/test-cjne.hex
new file mode 100644 (file)
index 0000000..5778693
--- /dev/null
@@ -0,0 +1,2 @@
+:030000007457141E
+:03000300B455FCF5
diff --git a/tests/test.hex b/tests/test.hex
new file mode 100644 (file)
index 0000000..7a42308
--- /dev/null
@@ -0,0 +1,13 @@
+:03000000020033C8
+:1000330075818075D54475A000C290E4F500E50094
+:1000430012007DF586D29005A07400D5E0FDC29024
+:10005300E5AA53E08060F9E5861200690500C3E56F
+:1000630000945040D92222752005740075F000D504
+:10007300F0FDD5E0F7D520F20022248BF582740041
+:100083003400F5837400932252504D3A31303234A8
+:1000930035204D41503A313033204D41543A3131BE
+:1000A30030204241543A31322E3420202020202067
+:1000B3000D0A0A45474F3A31342E36202054505307
+:1000C3003A31303020414E473A33302020434C54AC
+:0B00D3003A313038202020202020206F
+:00000001FF
diff --git a/tests/timer.asm b/tests/timer.asm
new file mode 100644 (file)
index 0000000..aac4885
--- /dev/null
@@ -0,0 +1,179 @@
+;*******************************************************************************
+;*                Système d'Injection et d'Allumage Électronique               *
+;*                Version     : 01                                             *
+;*                Auteur      : Hugo Villeneuve                                *
+;*                                                                             *
+;*                10 mars 1999                                                 *
+;*******************************************************************************
+
+        $MOD52                  ; Micro-contrôleur Atmel AT89S8252
+
+
+;*******************************************************************************
+;*      Définition des constantes                                              *
+;*******************************************************************************
+
+TOS             EQU     60h     ; Adresse du dessus de la pile.
+CR              EQU     0Dh    ; Code ASCII pour un retour de chariot.
+LF              EQU     0Ah    ; Code ASCII pour un changement de ligne
+
+
+;*******************************************************************************
+;*      Définition des variables                                               *
+;*******************************************************************************
+                BSEG
+                ORG     20h
+C_FLAG:         DBIT    1
+Z_FLAG:         DBIT    2
+N_FLAG:                DBIT    3       ; Utilisé par la sous-routine MULT8_16
+SIGNE:         DBIT    4       ; Utilisé pour l'interpolation.
+
+                DSEG
+                ORG     30h
+PERIODE2:      DS      1       ; Période pour une rotation du vilebrequin, sur 24 bits.
+PERIODE1:       DS      1
+PERIODE0:       DS      1
+POSITION_VILB: DS      1       ; Renseignement sur la position actuelle du vilebrequin (zones 0,1 ou 2).
+VITESSE_RPM:   DS      2       ; Vitesse de rotation du moteur en RPM.
+INDEX_RPM:     DS      1       ; Index de 8 bits pour l'adressage des colonnes de la table d'allumage.
+INDEX_MAP:     DS      1       ; Index de 8 bits pour l'adressage des lignes de la table d'allumage.
+ANGLE:         DS      1       ; Angle d'allumage calculé à partir de la table.
+BAT:            DS      2       ; Voltage de la batterie.
+MAT:            DS      2       ; Manifold Air Temperature.
+CLT:            DS      2       ; Coolant Temperature.
+TPS:            DS      2       ; Throttle Position Sensor.
+MAP:            DS      2       ; Manifold Absolute Pressure.
+EGO:            DS      2       ; Exhaust Gas-Oxygen Sensor.
+CAN6:           DS      2       ; Canal #6 du convertisseur AN.
+CAN7:           DS      2       ; Canal #7 du convertisseur AN.
+GAMMA:          DS      2       ; Rapport Air/Carburant.
+LSB_CAN:        DS      1       ; Octet de poids faible de la conversion Analogique-Numérique.
+MSB_CAN:        DS      1       ; Octet de poids fort de la conversion Analogique-Numérique.
+NOMBRE4:        DS      1       ; Stockage des codes ASCII pour les conversions.
+NOMBRE3:        DS      1
+NOMBRE2:        DS      1
+NOMBRE1:        DS      1
+NOMBRE0:        DS      1
+C3:             DS      1       ; Accumulateur C de 32 bits pour les calculs mathématiques.
+C2:             DS      1
+C1:             DS      1
+C0:             DS      1
+D3:            DS      1       ; Accumulateur D de 32 bits pour les calculs mathématiques.
+D2:            DS      1
+D1:             DS      1
+D0:             DS      1
+TMP6:           DS      1       ; Variables temporaires utilisées pour les calculs mathématiques.
+TMP5:           DS      1      ; FAIRE LE MÉNAGE VARIABLES NON UTILISEES!!!
+TMP4:           DS      1
+TMP3:           DS      1
+TMP2:           DS      1
+TMP1:           DS      1
+TMP0:           DS      1
+VAR0:          DS      1
+VAR1:          DS      1
+VAR2:          DS      1
+
+
+;*******************************************************************************
+;*      Définition des régistres spécifiques au AT89S8252                      *
+;*******************************************************************************
+SPCR            DATA    0D5h            ; SPCR - SPI Control Register
+SPSR            DATA    0AAh            ; SPSR - SPI Status Register
+SPIF            EQU     10000000b       ; Masque pour le drapeau SPI.
+WCOL            EQU     01000000b       ; Masque pour le drapeau Write Collision.
+SPDR            DATA    086h            ; SPDR - SPI Data Register
+
+
+;*******************************************************************************
+;*      Vecteurs d'interruptions                                               *
+;*******************************************************************************
+        CSEG
+
+        ORG     0000h   ; Vecteur d'interruption du RESET.
+        JMP     DEBUT
+
+        ORG     0003h   ; Vecteur pour l'interruption EXTERNE 0.
+        JMP     VILEBREQUIN
+
+        ORG     000Bh   ; Vecteur pour l'interruption du TIMER 0.
+        JMP     DEBUT
+
+        ORG     0013h   ; Vecteur pour l'interruption EXTERNE 1.
+        JMP     DEBUT
+
+        ORG     001Bh   ; Vecteur pour l'interruption du TIMER 1.
+        JMP     DEBUT
+
+        ORG     0023h   ; Vecteur pour l'interruption du Port série.
+        JMP     DEBUT
+
+        ORG     002Bh   ; Vecteur pour l'interruption du TIMER 2.
+        JMP     DEBUT
+
+
+;*******************************************************************************
+;*      Début du programme principal                                           *
+;*******************************************************************************
+        ORG     0033h
+
+DEBUT:
+        MOV     SP,#TOS         ; Initialisation de la pile.
+        CALL    INITIALISATION
+        ; il ne faut pas modifier la valeur de P1.0!!!
+
+ICI:
+       NOP
+       NOP
+       NOP
+       NOP     
+
+        JMP     ICI
+
+
+;*******************************************************************************
+;*      Délai                                                                  *
+;*******************************************************************************
+DELAI:          MOV     TMP0,#016h      ; Délai de 1/2 seconde.
+B3:            MOV     A,#0    
+B2:            MOV     B,#0
+B1:            DJNZ    B,B1
+               DJNZ    ACC,B2  
+                DJNZ    TMP0,B3  
+                RET
+
+
+
+;*******************************************************************************
+;*      INTERRUPTION                                                           *
+;*******************************************************************************
+VILEBREQUIN:
+       RETI
+
+
+;*******************************************************************************
+;*      Initialisation                                                         *
+;*******************************************************************************
+INITIALISATION: MOV     SPCR,#01000100b ; Interruption SPI désactivée;
+                                       ; Activation du port SPI;
+                                       ; Ordre des transferts : MSB en premier;
+                                       ; Opération en mode escalve (SLAVE);
+                                        ; Polarité de l'horloge : niveau bas si inactif.
+                                       ; Phase de l'horloge : transfert sur front montant.
+       MOV     TH0,#2
+       MOV     TL0,#55h
+       SETB    TCON.4          ; Timer 0 ON.
+       SETB    TCON.6          ; Timer 1 ON.
+       MOV     TMOD,#00010001B ; Initialisation des timers 0 et 1 en timers de
+                               ; 16 bits, incrémentés par l'horloge interne
+                               ; Chaque timer est incrémenté tant que le bit correspondant de
+                               ; TCON est à 1 (TCON.4 et TCON.6).
+       RET
+
+
+
+        END
+
+
+
+
+
diff --git a/tests/timer.hex b/tests/timer.hex
new file mode 100644 (file)
index 0000000..3fadd1b
--- /dev/null
@@ -0,0 +1,10 @@
+:0600000002003302005172
+:03000B00020033BD
+:03001300020033B5
+:03001B00020033AD
+:03002300020033A5
+:03002B000200339D
+:100033007581601200520000000080FA756016742A
+:100043000075F000D5F0FDD5E0F7D560F2223275EA
+:10005300D544758C02758A55D28CD28E758911223E
+:00000001FF