Les Secrets de la CMOS : Horloge Dateur Programmable (MC146818)
1. Generalites
Cette fonction est assuree principalement par un circuit calendrier (type 146818) pilote par un oscillateur a quartz de frequence 32,768 kHz. La capacite memoire du 146818 (64 octets) est augmentee par une memoire additionnelle (SRAM CMOS) de 8 ko sur les modeles de microordinateurs PS (IBM).
Une pile (autonomie 5 ans) assure l'alimentation de ces circuits en cas de coupure de l'alimentation generale 5 V, afin de :
sauvegarder les informations enregistrees dans la memoire du 146818 et dans la RAM additionnelle (heure, date, alarme et configuration).
conserver l'alimentation de l'oscillateur pour la fonction horloge/dateur du 146818.
Le circuit calendrier, de technologie CMOS (146818A) assure la gestion de l'heure (heures-minutes-secondes) et de la date (jours-mois-annee). Il comporte 64 registres de 8 bits :
les 14 premiers contiennent les informations specifiques pour la gestion de l'horloge-dateur-alarme.
les 50 derniers sont utilises pour sauvegarder la configuration du systeme en cas de coupure de l'alimentation generale.
La memoire additionnelle (sur PS) est une memoire RAM statique, de technologie CMOS, de capacite 8 ko, et de 450 ns de temps d'acces. Elle consomme environ 1fA au repos. Sa fonction est d'etendre la memoire sauvegardee ; tous les registres de cette memoi
re sont reserves.
2. Acces au 146818
L'acces a ces registres est realise en deux temps :
- Selection du registre desire : acces entree/sortie en ecriture a l'adresse 0070H ; le bus de donnees contient le numero du registre (de 00H a 3FH).
---------------------------------------------------------
| POINTEUR DE REGISTRE |
---------------------------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
---------------------------------------------------------
| ENMI*| X | Numero du registre |
---------------------------------------------------------
ENMI* : Bit de validation du signal NMI (0=valide,1=inhibe)
- Ecriture ou lecture de la donnee (le registre est celui pointe precedemment) : Acces entree/sortie en ecriture ou lecture a l'adresse 0071H.
Le circuit comprend trois types d'interruption possibles :
- interruption periodique (bits RS0 a RS3 du registre A, et bit PIE du registre B),
- interruption alarme (registres 1, 3, 5 et bit AIE du registre B),
- interruption de fin de mise a jour (bits SET et UIE du registre B).
Une demande d'interruption de niveau IRQ8 est generee vers le controleur d'interruption, si l'interruption correspondante est armee dans le registre B.
3. Description des registres du 146818
Les registres sont ecrits lors de la premiere mise en service du systeme, lors d'une modification de configuration du systeme (utilitaire INSTALL) ou par le BIOS pour le stockage de variables.
Les registres : 00H, 02H, 04H, 06H, 07H, 08H, 09H contiennent les informations date-heure calculees par le circuit.
Les registres : 01H, 03H, 05H contiennent les donnees heures-minutes-secondes pour le declenchement de l'alarme (AIE).
Les registres : 0AH, 0BH, 0CH, 0DH contiennent les informations de controle du circuit horloge dateur.
Les registres : 10H a 3FH sont des registre memoire ; ils contiennent des informations utilisees par l'unite centrale.
---------------------------------------------------------------
| |Numero du|
| FONCTION DU REGISTRE |registre |
---------------------------------------------------------------
| Registres dedies du 146818 |
---------------------------------------------------------------
|Temps secondes -- | 00H |
|Alarme secondes | | 01H |
|Temps minutes | | 02H |
|Alarme minutes | | 03H |
|Temps heures | | 04H |
|Alarme heures -- BCD | 05H |
|Jour de la semaine | | 06H |
|Jour dans le mois | | 07H |
|Mois | | 08H |
|Annee -- | 09H |
|Registre A | 0AH |
|Registre B | 0BH |
|Registre C | 0CH |
|Registre D | 0DH |
---------------------------------------------------------------
| Registres memoire du 146818 |
---------------------------------------------------------------
|Etat du systeme | 0EH |
|Origine initialisation (type du SHUTDOWN) | 0FH |
|Type des unites de disquette internes A et B | 10H |
|Reserve | 11H |
|Type (1 a 14) des unites de disques internes C et D| 12H |
|Reserve | 13H |
|Configuration equipement systeme | 14H |
|Capacite memoire de base, poids faibles | 15H |
|Capacite memoire de base, poids forts | 16H |
|Capacite memoire d'extension,LSB, config. theorique| 17H |
|Capacite memoire d'extension,MSB, config. theorique| 18H |
|Extension type (16 a 23) unites de disques C | 19H |
|Extension type (16 a 23) unite de disques D | 1AH |
|Reserve |1BH a 2DH|
|Partie haute checksum (somme de controle) | 2EH |
|Partie basse checksum (somme de controle) | 2FH |
|Capacite memoire d'extension,LSB,apres test memoire| 30H |
|Capacite memoire d'extension,MSB,apres test memoire| 31H |
|Siecle (BCD) | 32H |
|Reserve |33H a 3FH|
---------------------------------------------------------------
---------------------------------------------------------------
| |Numero du|
| VARIANTE SUR LE PS (IBM) |registre |
---------------------------------------------------------------
|Etat du systeme (erreurs pendant le POST) | 0EH |
|Origine initialisation (type du SHUTDOWN) | 0FH |
|Type des unites de disquette internes A et B | 10H |
|Type de la premiere unite de disques interne | 11H |
|Type de la deuxieme unite de disques interne | 12H |
|Configuration divers | 13H |
|Configuration equipement systeme | 14H |
|Capacite memoire de base (<1Mo), poids faibles | 15H |
|Capacite memoire de base (<1Mo), poids forts | 16H |
|Capacite memoire d'extension,LSB, config. theorique| 17H |
|Capacite memoire d'extension,MSB, config. theorique| 18H |
|Donnees POS |19H a 31H|
|Partie haute CRC (10H a 31H) | 32H |
|Partie basse CRC (10H a 31H) | 33H |
|Reserve | 34H |
|Capacite memoire d'extension,LSB, config. pratique | 35H |
|Capacite memoire d'extension,MSB, config. pratique | 36H |
|Siecle (BCD) | 37H |
|Mot de passe du POST |38H a 3EH|
|Somme des octets 38H a 3EH (modulo 256) | 3FH |
---------------------------------------------------------------
2.2. Registres dedies du 146818
Registre A (0AH)
-------------------------------------------------
| REGISTRE A |
-------------------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-------------------------------------------------
| UIP | DV2 | DV1 | DV0 | RS3 | RS2 | RS1 | RS0 |
-------------------------------------------------
| x | 0 | 1 | 0 | 0 | 1 | 1 | 0 |=26H configuration
------------------------------------------------- par le BIOS
UIP : (Update-ended InterruPt enable) ; en lecture seulement. A l'etat 0, ce bit signale que les informations contenues dans les registres sont valides pendant au moins 244 micro.sec ; a l'etat 1, il signale qu'un cycle de mise a jour va s'executer et qu
e les donnees lues peuvent etre erronees.
DV0 a DV2 : (DiVider). Ces bits definissent la division a effectuer en fonction de l'horloge externe. Ils sont programmes a 010 pour l'utilisation avec l'horloge 32,768 kHz.
RS0 a RS3 : (Rate Selection). Periode d'occurrence des interruptions periodiques.
------------------------
|Quartz 32,768kHz |
----------------- Frequence des |
|RS3|RS2|RS1|RS0| interruptions |
----------------------------------------
| 0 | 0 | 0 | 0 | - |
----------------------------------------
| 0 | 0 | 0 | 1 | 3,90625 ms |
----------------------------------------
| 0 | 0 | 1 | 0 | 7,8125 ms |
----------------------------------------
| 0 | 0 | 1 | 1 | 122,070 micro.sec |
----------------------------------------
| 0 | 1 | 0 | 0 | 244,141 micro.sec |
----------------------------------------
| 0 | 1 | 0 | 1 | 488,281 micro.sec |
----------------------------------------
| 0 | 1 | 1 | 0 | 976,562 micro.sec |<-configuration sur carte mere
---------------------------------------- (1,024 kHz)
| 0 | 1 | 1 | 1 | 1,953125 ms |
----------------------------------------
| 1 | 0 | 0 | 0 | 3,90625 ms |
----------------------------------------
| 1 | 0 | 0 | 1 | 7,8125 ms |
----------------------------------------
| 1 | 0 | 1 | 0 | 15,625 ms |
----------------------------------------
| 1 | 0 | 1 | 1 | 31,25 ms |
----------------------------------------
| 1 | 1 | 0 | 0 | 62,5 ms |
----------------------------------------
| 1 | 1 | 0 | 1 | 125 ms |
----------------------------------------
| 1 | 1 | 1 | 0 | 250 ms |
----------------------------------------
| 1 | 1 | 1 | 1 | 500 ms |
----------------------------------------
Registre B (0BH)
-------------------------------------------------
| REGISTRE B |
-------------------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-------------------------------------------------
| SET | PIE | AIE | UIE | SQWE| DM |24/12| DSE |
-------------------------------------------------
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |=02H configuration
------------------------------------------------- par le BIOS
SET : Lorsque ce bit est a 0, l'incrementation des cycles de mise a jour s'effectue normalement une fois par seconde. Par contre, a 1, la mise a jour est suspendue (l'heure est figee) et l'ecriture des registres date/heure peut etre effectuee sans effet
parasite.
PIE, AIE, UIE : Le circuit genere trois interruptions differentes, chacune armee (a 1) par l'un de ces trois bits.
- PIE : (Periodic) interruption periodique (registre A : T=976,562micro.sec)
- AIE : (Alarm) interruption de l'alarme (registres 1,3,5)
- UIE : (Update-ended) interruption de mise a jour (1 fois par seconde)
SQWE : (SQuare Wave Enable = validation sortie signal carre) non utilise, programme a 0 pour invalider la sortie SQW.
DM : (Data Mode) mode de chargement des registres internes (0 = BCD et 1 = binaire).
24/12 : Le comptage des heures s'incremente au choix jusqu'a 24 (bit a 1) ou jusqu'a 12 (bit a 0).
DSE : (Daylight Savings Enable) lorsque ce bit est positionne a 1, le circuit prend en charge les changements d'horaire au printemps (dernier dimanche de mars) et en automne (dernier dimanche de septembre).
Registre C en lecture seulement (0CH)
-------------------------------------------------
| REGISTRE C |
-------------------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-------------------------------------------------
| IRQF| PF | AF | UF | 0 | 0 | 0 | 0 |
-------------------------------------------------
IRQF : Signal l'occurrence d'une interruption. Ce bit est a 1 lorsque l'un des bits PF, AF, UF est a 1.
PF, AF, UF : Indicateurs de l'occurrence d'un des trois types d'interruption, actif a l'etat 1 (si l'interruption a ete autorisee) :
- PF : (Periodic Flag) interruption periodique,
- AF : (Alarm Flag) interruption de l'alarme,
- UF : (Update Flag) interruption de mise a jour.
Registre D en lecture seulement (0DH)
-------------------------------------------------
| REGISTRE D |
-------------------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-------------------------------------------------
| VRT | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-------------------------------------------------
VRT : (Valid RAM and Time) Ce bit initialise a 1 (par une lecture du programme d'initialisation de la machine) passe a 0 des la detection d'une coupure d'alimentation du circuit. Une simple lecture de ce registre le repositionne a 1.
3.3. Registres memoire du 146818
---------------------------------------------------------
| REGISTRE nx |
---------------------------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
---------------------------------------------------------
Registre etat du systeme (0EH)
b7 :
- 1 = Information CMOS non significative (chute de tension)
- 0 = Pas de chute de tension
b6 :
- 1 = Checksum (somme de controle RAM CMOS) est incorrect
- 0 = Checksum (somme de controle RAM CMOS) correct
b5 : configuration RAM CMOS conforme au test du materiel :
- 1 = Information RAM CMOS incorrecte
- 0 = Configuration correcte
b4 :
- 1 = Taille memoire enregistree differente de la taille reelle
- 0 = Taille identique
b3 :
- 1 = Disque fixe d'init. mal initialise ; chargement impossible
- 0 = Disque fixe d'init. bien initialise ; chargement possible
b2 :
- 1 = Horloge invalide
- 0 = Horloge valide
b1 : sur PS IBM uniquement, sinon reserve
- 1 = les cartes extension ne correspondent pas a la configuration,
- 0 = les cartes extension correspondent a la configuration.
b0 : sur PS IBM uniquement, sinon reserve
- 1 = Time-Out pendant essai de lecture d'une carte extension,
- 0 = normal.
Registre origine initialisation SHUTDOWN (0FH)
Octet utilise par le BIOS pour connaitre l'origine d'une initialisation ; cet octet permet notamment de provoquer un retour du mode d'adressage virtuel au mode d'adressage reel pour gerer la memoire au-dela du premier Mo sous MS-DOS.
La valeur de cet octet est testee pendant la sequence d'initialisation ; elle est utilisee pour effectuer un branchement vers diverses routines de traitement.
0 : reset logiciel ou d'origine indeterminee
1 : reserve
2 : reserve
3 : reserve
4 : reserve
5 : retour programme utilisateur avec initialisation des interruptions
6 : reserve
7 : reserve
8 : reserve
9 : demande d'initialisation pour transfert de blocs
A : retour programme utilisateur sans initialisation des interruptions
0 : reset logiciel ou d'origine indeterminee,
1 : indetermine,
2 : erreur dans le test memoire,
3 : initialisation suite a une erreur de memoire,
4 : initialisation pour chargement systeme d'exploitation,
5 : retour programme utilisateur avec annulation des interruptions
6 : test mode protege reussi,
7 : test mode protege rate,
8 : test mode protege reussi,
9 : demande d'initialisation pour transfert de blocs
A : retour programme utilisateur sans annulation des interruptions
L'adresse de retour est memorisee a l'adresse 000467H (4 octets).
Registre type des disquettes (10H)
-------------------------------------------------------------------
|b7|b6|b5|b4|Type de la 1x unite de disquette |
-------------------------------------------------------------------
|b3|b2|b1|b0|Type de la 2x unite de disquette |
-------------------------------------------------------------------
| 0| 0| 0| 0|Pas d'unite |
| 0| 0| 0| 1|Type 360 ko double face (48TPI) densite normale 5", |
| 0| 0| 1| 0|Type 1,2 Mo double face (96TPI) haute densite 5", |
| 0| 0| 1| 1|Type 720 ko double face (135TPI) densite normale 3"+ |
| 0| 1| 0| 0|Type 1,4 Mo double face (135TPI) haute densite 3"+ |
-------------------------------------------------------------------
| 0| 1| 0| 1| |
------------- |
| a |Reserve |
------------- |
| 1| 1| 1| 1| |
-------------------------------------------------------------------
Registre type d'unites de disques internes C et D (12H) (sur PC/AT uniquement)
Ces valeurs permettent de charger la table des parametres en INT41H et 46H.
------------------------------------------------------------------------------
|b7|b6|b5|b4|Type de la 1x unite de disques (C) |
------------------------------------------------------------------------------
|b3|b2|b1|b0|Type de la 2x unite de disques (D) |
------------------------------------------------------------------------------
| 0| 0| 0| 0|Pas d'unite |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1 | 306 | 4 | 128 | 305 | 10 |
------------------------------------------------------------------------------
| 0| 0| 1| 0| 2 | 615 | 4 | 300 | 615 | 21 |
------------------------------------------------------------------------------
| 0| 0| 1| 1| 3 | 615 | 6 | 300 | 615 | 32 |
------------------------------------------------------------------------------
| 0| 1| 0| 0| 4 | 940 | 8 | 512 | 940 | 65 |
------------------------------------------------------------------------------
| 0| 1| 0| 1| 5 | 940 | 6 | 512 | 940 | 49 |
------------------------------------------------------------------------------
| 0| 1| 1| 0| 6 | 615 | 4 | aucun | 615 | 21 |
------------------------------------------------------------------------------
| 0| 1| 1| 1| 7 | 462 | 8 | 256 | 511 | 32 |
------------------------------------------------------------------------------
| 1| 0| 0| 0| 8 | 733 | 5 | aucun | 733 | 31 |
------------------------------------------------------------------------------
| 1| 0| 0| 1| 9 | 900 | 15 | aucun | 901 | 117 |
------------------------------------------------------------------------------
| 1| 0| 1| 0| 10 | 820 | 3 | aucun | 820 | 22 |
------------------------------------------------------------------------------
| 1| 0| 1| 1| 11 | 855 | 5 | aucun | 855 | 37 |
------------------------------------------------------------------------------
| 1| 1| 0| 0| 12 | 855 | 7 | aucun | 855 | 52 |
------------------------------------------------------------------------------
| 1| 1| 0| 1| 13 | 306 | 8 | 128 | 319 | 21 |
------------------------------------------------------------------------------
| 1| 1| 1| 0| 14 | 733 | 7 | aucun | 733 | 44 |
------------------------------------------------------------------------------
| 1| 1| 1| 1| 15 | Voir registres d'extension (19H et 1AH) |
------------------------------------------------------------------------------
| type | Nbr de |Nbr de| Cylindre de | Zone |Capacite|
|d'unite|cylindres| tetes|precompensation|d'atterrissage| formate|
------------------------------------------------------------------
Pour les autres types de disques, voir registres d'extension 19H et 1AH.
Registre type de la premiere unite de disques interne C (11H) (sur PS IBM uniquement)
Registre type de la deuxieme unite de disques interne D (12H) (sur PS IBM uniquement)
Ces valeurs permettent de charger la table des parametres en INT41H et 46H.
------------------------------------------------------------------------------
|b7|b6|b5|b4|b3|b2|b1|b0|Type de l'unite de disque |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 0| 0| 0|Pas d'unite installee |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 0| 0| 1| 1 | 306 | 4 | 128 | 305| 10 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 0| 1| 0| 2 | 615 | 4 | 300 | 615| 21 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 0| 1| 1| 3 | 615 | 6 | 300 | 615| 32 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 1| 0| 0| 4 | 940 | 8 | 512 | 940| 65 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 1| 0| 1| 5 | 940 | 6 | 512 | 940| 49 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 1| 1| 0| 6 | 615 | 4 | aucun | 615| 21 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 1| 1| 1| 7 | 462 | 8 | 256 | 511| 32 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 1| 0| 0| 0| 8 | 733 | 5 | aucun | 733| 31 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 1| 0| 0| 1| 9 | 900 | 15 | aucun | 901| 117 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 1| 0| 1| 0| 10 | 820 | 3 | aucun | 820| 22 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 1| 0| 1| 1| 11 | 855 | 5 | aucun | 855| 37 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 1| 1| 0| 0| 12 | 855 | 7 | aucun | 855| 52 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 1| 1| 0| 1| 13 | 306 | 8 | 128 | 319| 21 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 1| 1| 1| 0| 14 | 733 | 7 | aucun | 733| 44 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 0| 1| 1| 1| 1| 15 | Reserve |
------------------------------------------------------------------------------
| type| Nbr de | Nb | Cylindre | Zone|Capacite|Table |
|unite|cylindre|tete| precomp. |atter| formate|defaut|
------------------------------------------------------
------------------------------------------------------------------------------
|b7|b6|b5|b4|b3|b2|b1|b0|Type de l'unite de disque |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 0| 0| 0| 0| 16 | 612 | 4 | tous | 633| 21 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 0| 0| 0| 1| 17 | 977 | 5 | 300 | 977| 42 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 0| 0| 1| 0| 18 | 977 | 7 | aucun | 977| 59 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 0| 0| 1| 1| 19 | 1024 | 7 | 512 | 1023| 62 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 0| 1| 0| 0| 20 | 733 | 5 | 300 | 732| 31 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 0| 1| 0| 1| 21 | 733 | 7 | 300 | 732| 44 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 0| 1| 1| 0| 22 | 733 | 5 | 300 | 733| 31 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 0| 1| 1| 1| 23 | 306 | 4 | tous | 336| 10 | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1| 0| 0| 0| 24 | 612 | 4 | 305 | 663| | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1| 0| 0| 1| 25 | 306 | 4 | aucun | 340| | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1| 0| 1| 0| 26 | 612 | 4 | aucun | 670| | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1| 0| 1| 1| 27 | 698 | 7 | 300 | 732| | oui |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1| 1| 0| 0| 28 | 976 | 5 | 488 | 977| | oui |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1| 1| 0| 1| 29 | 306 | 4 | tous | 340| | non |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1| 1| 1| 0| 30 | 611 | 4 | 306 | 663| | oui |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 1| 1| 1| 1| 31 | 732 | 7 | 300 | 732| | oui |
------------------------------------------------------------------------------
| 0| 0| 1| 0| 0| 0| 0| 0| 32 | 1023 | 5 | aucun | 1023| | oui |
------------------------------------------------------------------------------
| 0| 0| 1| 0| 0| 0| 0| 1| 33 | |
------------------------- a | Reserve |
| 1| 1| 1| 1| 1| 1| 1| 1| 255 | |
------------------------------------------------------------------------------
| type| Nbr de | Nb | Cylindre | Zone|Capacite|Table |
|unite|cylindre|tete| precomp. |atter| formate|defaut|
------------------------------------------------------
Registre configuration divers (13H) (sur PS IBM uniquement)
b0 : mot de passe POST present,
b1 : mode serveur reseau,
Registre configuration equipement systeme (14H)
------------------------------------
|b7|b6|Nombre d'unites de disquette|
------------------------------------
| 0| 0| 1 unite |
| 0| 1| 2 unites |
| 1| x| reserve |
------------------------------------
---------------------------------------
|b5|b4|Affichage au chargement systeme| sur PC/AT
---------------------------------------
| 0| 0| interface type EGA |
| 0| 1| couleur 40 colonnes CGA |
| 1| 0| couleur 80 colonnes CGA |
| 1| 1| monochrome 80 colonnes MDA|
---------------------------------------
---------------------------------------
|b5|b4|Affichage au chargement systeme|
---------------------------------------
| 0| 0| reserve |
| 0| 1| couleur 40 colonnes VGA |mode 13H
| 1| 0| couleur 80 colonnes VGA |mode 11H
| 1| 1| monochrome VGA |mode 12H
---------------------------------------
b3 - b2 : Reserve
b1 : Presence du coprocesseur mathematique 80287
- 0 = pas de coprocesseur
- 1 = coprocesseur present
b0 : Presence unite de disquette (0 = pas d'unite de disquette)
Registre capacite memoire de base (< au 1xMo) :
- poids faibles (15H)
- poids forts (16H)
(Taille memoire = nombre de ko memoire)
MSB LSB (PC/AT)
01H 00H RAM 256 ko
02H 00H RAM 512 ko
02H 80H RAM 512 + 128 ko
04H 80H RAM 512 + 512 ko + 128 ko
MSB LSB (PS IBM)
01H 00H RAM 256 ko
01H 80H RAM 384 ko
02H 00H RAM 512 ko
02H 80H RAM 640 ko
Registre capacite memoire d'extension (> au 1xMo) configuration theorique :
- poids faibles (17H)
- poids forts (18H)
(Taille memoire = nombre de ko memoire)
MSB LSB
04H 00H 1 Mo sur bus extension
08H 00H 2 Mo sur bus extension
a
3CH 00H 15 Mo sur bus extension (15360 ko)
Registre extension type d'unite de disque C (19H) (PC/AT)
Registre extension type d'unite de disque D (1AH) (PC/AT)
Types d'unite de disques C et D ( si les bits correspondants du registre 12H sont 1111) ; ces valeurs permettent de charger la table des parametres disque INT41H et 46H.
------------------------------------------------------------------------------
|b3|b2|b1|b0|Type de l'unite de disque |
------------------------------------------------------------------------------
| 0| 0| 0| 0|Pas d'unite |
------------------------------------------------------------------------------
| 0| 0| 0| 1| 16 | 612 | 4 | 0 | 633 | 21 |
------------------------------------------------------------------------------
| 0| 0| 1| 0| 17 | 977 | 5 | 300 | 977 | 42 |
------------------------------------------------------------------------------
| 0| 0| 1| 1| 18 | 977 | 7 | aucun | 977 | 59 |
------------------------------------------------------------------------------
| 0| 1| 0| 0| 19 | 1024 | 7 | 512 | 1023 | 62 |
------------------------------------------------------------------------------
| 0| 1| 0| 1| 20 | 733 | 5 | 300 | 732 | 31 |
------------------------------------------------------------------------------
| 0| 1| 1| 0| 21 | 733 | 7 | 300 | 732 | 44 |
------------------------------------------------------------------------------
| 0| 1| 1| 1| 22 | 733 | 5 | 300 | 733 | 31 |
------------------------------------------------------------------------------
| 1| 0| 0| 0| 23 | 306 | 4 | 0 | 336 | 10 |
------------------------------------------------------------------------------
| 1| 0| 0| 1| |
------------- |
| a | Reserve |
------------- |
| 1| 1| 1| 0| |
------------------------------------------------------------------------------
| type | Nbr de |Nbr de| Cylindre de | Zone |Capacite|
|d'unite|cylindres| tetes|precompensation|d'atterrissage| formate|
------------------------------------------------------------------
Registre checksum (PC/AT)
- poids forts (2EH)
- poids faibles (2FH)
(somme du contenu des registres 10H a 20H)
Registre capacite memoire d'extension apres test memoire :
- poids faibles (30H) (PC/AT)
- poids forts (31H) (PC/AT)
(Taille memoire = nombre de ko memoire)
MSB LSB
04H 00H 1 Mo sur bus extension
08H 00H 2 Mo sur bus extension
a
3CH 00H 15 Mo sur bus extension
Ces deux registres sont charges par le test memoire pendant l'initialisation du systeme ; ils different des registres 17H et 18H qui contiennent la configuration theorique du systeme.
Registre siecle (32H) (PC/AT) (valeur du siecle en BCD)
Registre checksum (PS IBM)
- poids forts (32H)
- poids faibles (33H)
CRC du contenu des registres 10H a 31H
Registre capacite memoire RAM d'extension (> au 1xMo) (PS IBM)
configuration pratique :
- poids faibles LSB (35H)
- poids forts MSB (36H)
(Taille memoire = nombre de blocs de 1 ko)
MSB LSB
04H 00H 1 Mo
08H 00H 2 Mo
a
3CH 00H 15 Mo (15360 ko)
Registre siecle (37H) (PS IBM)
(valeur du siecle en BCD)
Registres mot de passe du POST (38H a 3EH) (PS IBM)
Ces registres contiennent les 7 scan-code du mot de passe de la mise sous tension.
Par defaut, le contenu de ces registres est a 00H (pas de mot de passe).
Si un mot de passe est present, le POST interdit le chargement systeme tant que le mot de passe n'est pas frappe au clavier (nombre d'essais limite).
Si un mot de passe existe, le POST verrouille cette zone de la memoire CMOS pour empecher de le lire ou de le modifier.
Ces octets sont toujours lus a 00H s'il n'y a pas de mot de passe, et a FFH s'il en existe un.
Le verrouillage est positionne en activant le bit SLL du registre 0092H.
Registres de controle du mot de passe (3FH) (PS IBM)
Somme des octets 38H a 3EH (modulo 255)
4. Description des signaux d'entrees-sorties
-------- --------
MOT-1 --- 24-VDD
OSC1-2 23-SQW
OSC2-3 22-PS
D0-4 146818 21-CKOUT
D1-5 20-CKFS
D2-6 19-IORQ*
D3-7 18-RESET*
D4-8 17-DS
D5-9 16-SP
D6-10 15-R/W*
D7-11 14-AS
GND-12 13-CE*
-----------------
Brochage du 146818
- MOT : Configuration du mode MOTorola (1) ou Intel (0).
- OSC1 : Entree signal d'horloge de reference.
- OSC2 : Entree connexion quartz (non utilise).
- D0 - D7 : Bus de donnees bidirectionnel 8 bits, multiplexe avec bus d'adresse.
- SQW : Sortie signal periodique correspondant a la programmation des bits RS0 a RS3 du registre A.
- PS : (Power Sense) Cette entree controle le bit VRT du registre D ; Lorsque PS passe a zero, le bit VRT est remis a zero, indiquant une coupure d'alimentation. Ce signal doit etre affecte d'un retard de 5micro.sec en cas de reprise secteur.
- CKOUT : Sortie signal periodique, dont la frequence est egale au rapport de la frequence de l'oscillateur de reference divise par 1 (si CKFS=1) ou par 4 (si CKFS=0).
- CKFS : Entree signal selection frequence de CKOUT.
- IORQ* : Sortie de demande d'interruption au microprocesseur.
- RESET* : Entree de RAZ des bits PIE, AIE, UIE, UF, IRQF, PF, AF, SQWE.
- R/W* : Entree signal de lecture/ecriture (mode Intel = ecriture).
- SP : (STanBY) ; cette entree a 0 deconnecte l'interface bus de donnees et les signaux de controle. Dans cette application, ce signal est a 0 si la pile de sauvegarde n'est pas connectee.
- CE* : (Chip Enable) pour acceder au 146818, cette entree doit etre stabilisee a l'etat bas pendant l'evolution des signaux AS et DS, car CE* n'est pas memorise par le 146818. Lorsque CE* passe au niveau 1, les lignes D0 a D7 passent a l'etat haute impeda
nce. Le bus systeme se trouve donc entierement deconnecte du circuit horloge-dateur.
- AS : (Adresse Strobe) memorisation pointeur registre.
- DS : (Data Strobe) signal de lecture en mode Intel.
|