-#! /bin/sh
-# bootstrap -- Use this script to create generated files from the CVS dist
-# Copyright (C) 2000 Gary V. Vaughan
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-## @start 1
-#! /bin/sh
-
-set -x
-aclocal -I config
-##libtoolize --force --copy
-autoheader
-automake --add-missing --copy
+#!/bin/sh
+# autogen.sh -- Use this script to create generated files from the SVN distribution
+# Taken from glib CVS
+
+PROJECT=Emu8051
+TEST_TYPE=-f
+TEST_FILE=src/CPU8051.cpp
+
+ACLOCAL_FLAGS="${ACLOCAL_FLAGS} -I config"
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd ${srcdir}
+
+DIE=0
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have autoconf installed to compile $PROJECT."
+ echo "Download the appropriate package for your distribution,"
+ echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+ DIE=1
+}
+
+(automake --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have automake installed to compile $PROJECT."
+ echo "Get ftp://sourceware.cygnus.com/pub/automake/automake-1.4.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+}
+
+(libtoolize --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have libtool installed to compile $PROJECT."
+ echo "Visit http://www.gnu.org/software/libtool/ for more information."
+ DIE=1
+}
+
+if test "${DIE}" -eq 1; then
+ exit 1
+fi
+
+test ${TEST_TYPE} ${TEST_FILE} || {
+ echo "You must run this script in the top-level $PROJECT directory"
+ exit 1
+}
+
+case ${CC} in
+ *xlc | *xlc\ * | *lcc | *lcc\ *) am_opt=--include-deps;;
+esac
+
+aclocal ${ACLOCAL_FLAGS}
+
+#libtoolize --force --copy
+
+# Optionally feature autoheader
+(autoheader --version) < /dev/null > /dev/null 2>&1 && autoheader
+
+automake --add-missing --copy ${am_opt}
+
autoconf
-## @end 1
+
+cd ${ORIGDIR}
+
+rm -rf autom4te.cache
--- /dev/null
+: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
--- /dev/null
+:03000000020033C8
+:1000330075818075D54475A000C290E4F500E50094
+:1000430012007DF586D29005A07400D5E0FDC29024
+:10005300E5AA53E08060F9E5861200690500C3E56F
+:1000630000945040D92222752005740075F000D504
+:10007300F0FDD5E0F7D520F20022248BF582740041
+:100083003400F5837400932252504D3A31303234A8
+:1000930035204D41503A313033204D41543A3131BE
+:1000A30030204241543A31322E3420202020202067
+:1000B3000D0A0A45474F3A31342E36202054505307
+:1000C3003A31303020414E473A33302020434C54AC
+:0B00D3003A313038202020202020206F
+:00000001FF
--- /dev/null
+;*******************************************************************************
+;* 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
+
+
+
+
+
--- /dev/null
+:0600000002003302005172
+:03000B00020033BD
+:03001300020033B5
+:03001B00020033AD
+:03002300020033A5
+:03002B000200339D
+:100033007581601200520000000080FA756016742A
+:100043000075F000D5F0FDD5E0F7D560F2223275EA
+:10005300D544758C02758A55D28CD28E758911223E
+:00000001FF
+++ /dev/null
-: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
+++ /dev/null
-:03000000020033C8
-:1000330075818075D54475A000C290E4F500E50094
-:1000430012007DF586D29005A07400D5E0FDC29024
-:10005300E5AA53E08060F9E5861200690500C3E56F
-:1000630000945040D92222752005740075F000D504
-:10007300F0FDD5E0F7D520F20022248BF582740041
-:100083003400F5837400932252504D3A31303234A8
-:1000930035204D41503A313033204D41543A3131BE
-:1000A30030204241543A31322E3420202020202067
-:1000B3000D0A0A45474F3A31342E36202054505307
-:1000C3003A31303020414E473A33302020434C54AC
-:0B00D3003A313038202020202020206F
-:00000001FF
+++ /dev/null
-;*******************************************************************************
-;* 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
-
-
-
-
-
+++ /dev/null
-:0600000002003302005172
-:03000B00020033BD
-:03001300020033B5
-:03001B00020033AD
-:03002300020033A5
-:03002B000200339D
-:100033007581601200520000000080FA756016742A
-:100043000075F000D5F0FDD5E0F7D560F2223275EA
-:10005300D544758C02758A55D28CD28E758911223E
-:00000001FF