summaryrefslogtreecommitdiff
path: root/plan_micro.tm
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2014-01-02 22:30:11 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2014-01-02 22:30:11 +0100
commit85bc61cb7fa8f4b9af78064cb65fbad49a109d5f (patch)
tree5116b1c423864f3cde8f1002b7a4dabb62e88fff /plan_micro.tm
parent4e1aaf316457f4d4f045fd3ebe500cd70f6bafcc (diff)
downloadSystDigit-Projet-85bc61cb7fa8f4b9af78064cb65fbad49a109d5f.tar.gz
SystDigit-Projet-85bc61cb7fa8f4b9af78064cb65fbad49a109d5f.zip
Started CPU implementation.
Diffstat (limited to 'plan_micro.tm')
-rw-r--r--plan_micro.tm54
1 files changed, 33 insertions, 21 deletions
diff --git a/plan_micro.tm b/plan_micro.tm
index 8a128be..715b87c 100644
--- a/plan_micro.tm
+++ b/plan_micro.tm
@@ -45,14 +45,16 @@
La mémoire est adressée sur 16 bits, il y a donc 64ko disponnibles.
+ Le CPU est little-endian (le mot 0x1234 est codé 34 puis 12)
+
<subsection|Modèle simple>
On définit plusieurs zones de mémoire :
- <big-table|<tabular*|<tformat|<table|<row|<cell|0x0000 - 0x3FFF>|<cell|MMIO
- (seuls quelques octets seront utilisés)>>|<row|<cell|0x4000 -
- 0x7FFF>|<cell|ROM pour programme utilisateur>>|<row|<cell|0x8000 -
- 0xFFFF>|<cell|RAM pour programme utilisateur>>>>>|Memory map>
+ <big-table|<tabular*|<tformat|<table|<row|<cell|0x0000 - 0x3FFF>|<cell|ROM
+ pour programme utilisateur>>|<row|<cell|0x4000 - 0x7FFF>|<cell|MMIO (seuls
+ quelques octets seront utilisés)>>|<row|<cell|0x8000 - 0xFFFF>|<cell|RAM
+ pour programme utilisateur>>>>>|Memory map>
<subsection|Modèle avec affichage bitmapé>
@@ -61,12 +63,12 @@
On définit plusieurs zones de mémoire :
- <big-table|<tabular*|<tformat|<table|<row|<cell|0x0000 - 0x2FFF>|<cell|VGA
- Framebuffer (noir et blanc, 336x288)>>|<row|<cell|0x3000 -
- 0x37FF>|<cell|ROM pour police d'écriture>>|<row|<cell|0x3800 -
- 0x3FFF>|<cell|MMIO (seuls quelques octets seront
- utilisés)>>|<row|<cell|0x4000 - 0x7FFF>|<cell|ROM pour programme
- utilisateur>>|<row|<cell|0x8000 - 0xFFFF>|<cell|RAM pour programme
+ <big-table|<tabular*|<tformat|<table|<row|<cell|0x0000 - 0x3FFF>|<cell|ROM
+ pour programme utilisateur>>|<row|<cell|0x4000 - 0x6FFF>|<cell|VGA
+ Framebuffer (noir et blanc, 336x288)>>|<row|<cell|0x7000 -
+ 0x77FF>|<cell|ROM pour police d'écriture>>|<row|<cell|0x7800 -
+ 0x7FFF>|<cell|MMIO (seuls quelques octets seront
+ utilisés)>>|<row|<cell|0x8000 - 0xFFFF>|<cell|RAM pour programme
utilisateur>>>>>|Memory map>
Les 0x3000 (12288) octets de mémoire pour le VGA correspondent à un
@@ -199,13 +201,15 @@
<\auxiliary>
<\collection>
<\associate|table>
- <tuple|normal|Memory map|<pageref|auto-3>>
+ <tuple|normal|Memory map|<pageref|auto-4>>
+
+ <tuple|normal|Memory map|<pageref|auto-6>>
<tuple|normal|Instructions reconnues par le
- microproceseur|<pageref|auto-12>>
+ microproceseur|<pageref|auto-15>>
<tuple|normal|Instructions supplémentaires (produites par
- l'assembleur)|<pageref|auto-13>>
+ l'assembleur)|<pageref|auto-16>>
</associate>
<\associate|toc>
<vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|Registres>
@@ -216,37 +220,45 @@
<datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
<no-break><pageref|auto-2><vspace|0.5fn>
+ <with|par-left|<quote|1.5fn>|Modèle simple
+ <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-3>>
+
+ <with|par-left|<quote|1.5fn>|Modèle avec affichage bitmapé
+ <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-5>>
+
<vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|Jeu
d'instruction> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-4><vspace|0.5fn>
+ <no-break><pageref|auto-7><vspace|0.5fn>
<with|par-left|<quote|1.5fn>|Types d'instructions
<datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-5>>
+ <no-break><pageref|auto-8>>
<with|par-left|<quote|6fn>|Format de base
<datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-6><vspace|0.15fn>>
+ <no-break><pageref|auto-9><vspace|0.15fn>>
<with|par-left|<quote|6fn>|Format <with|mode|<quote|math>|R>
<datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-7><vspace|0.15fn>>
+ <no-break><pageref|auto-10><vspace|0.15fn>>
<with|par-left|<quote|6fn>|Format <with|mode|<quote|math>|I>
<datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-8><vspace|0.15fn>>
+ <no-break><pageref|auto-11><vspace|0.15fn>>
<with|par-left|<quote|6fn>|Format K
<datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-9><vspace|0.15fn>>
+ <no-break><pageref|auto-12><vspace|0.15fn>>
<with|par-left|<quote|6fn>|Format <with|mode|<quote|math>|J>
<datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-10><vspace|0.15fn>>
+ <no-break><pageref|auto-13><vspace|0.15fn>>
<vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|Tableau
d'instructions> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-11><vspace|0.5fn>
+ <no-break><pageref|auto-14><vspace|0.5fn>
</associate>
</collection>
</auxiliary> \ No newline at end of file