summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/avremu
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-10-14 22:25:31 +0000
committerKarl Berry <karl@freefriends.org>2014-10-14 22:25:31 +0000
commit0db489324b44568fc4fdd9d194ce6d17203fae88 (patch)
treed14c24184a6da8bdbbb2886ac268350ce77fe1e5 /Master/texmf-dist/doc/latex/avremu
parent0f77752d377a5492ac8d36d73cb08ef7098dee64 (diff)
avremu (14oct14)
git-svn-id: svn://tug.org/texlive/trunk@35373 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/avremu')
-rw-r--r--Master/texmf-dist/doc/latex/avremu/README75
-rw-r--r--Master/texmf-dist/doc/latex/avremu/avremu.pdfbin0 -> 146364 bytes
2 files changed, 75 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/avremu/README b/Master/texmf-dist/doc/latex/avremu/README
new file mode 100644
index 00000000000..7fe8622e2ee
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/avremu/README
@@ -0,0 +1,75 @@
+avremu: An AVR Emulator written in pure LaTeX
+======================================================
+
+LaTeX is known as a typesetting system. But the underlying TeX system
+is a powerful macro processor. In fact, TeX is a Turing-complete
+programming language. TeX can compute anything, that is
+computable. Computeability is a concept from theoretical computer
+science. After visiting a theoretical CS course, you will know that
+there are things that cannot be solved by a machine. Never. Look out
+for the halting problem. So, Turing-complete does not say "It's a
+proper programming language", but more "someone can write a proper
+interpreter for any programming language in it, theoretically".
+
+So back to TeX. To be honest, TeX is a horrible language to code
+in. After writing my master thesis in LaTex, after crafting every
+graphic within with TiKz[1] and pgfplots[2], and after writing my
+first LaTeX package[3], I can honestly say: TeX is the Quasimodo of
+all widely used programming languages. If you can avoid it, avoid it.
+But if you are forced to use it, you can abstract from TeX, since it
+is a "proper" programming language.
+
+Let's say we want to program our document in C on Top of Tex. Then
+there would be the need to interpret the C semantic. Basically we
+would have to write a compiler for C in TeX. Not a very promising
+future, if you start this. But, we can use a normal C compiler to
+compile the C code to some simple platform. Like AVR[4]. Since I have
+other things to do than writing an AVR Emulator in TeX, here it is!
+
+The newest source can be found at https://gitlab.brokenpipe.de/stettberger/avremu
+
+The package is licensed under LPPL 1.3
+
+You are writing an CPU emulator in TeX, the TYPESETTING system?
+---------------------------------------------------------------
+
+Yep.
+
+What Microcontroller is emulated?
+---------------------------------
+
+I aimed for an ATmega8. The AVR platform is an 8 Bit Processor with 16
+Bit memory addresses. The hardware version is shipped with 1 KByte of
+RAM and 8 Kbyte Flash memory, but of course, the emulated processor
+can handle more memory.
+
+Are you insane?
+---------------
+
+Not that anybody knows of.
+
+Are all OP codes implemented?
+-----------------------------
+
+Unfortunately not. I'm still missing 5 opcodes (MULS, MULSU, FMUL,
+FMULS, FMULSU), but until now I did not encounter a C file, the
+AVR-GCC emits these opcodes. The fractional multiply opcodes are also
+somewhat arcane.
+
+Is it fast?
+-----------
+
+Ok, you are asking me, whether a CPU simulator written in TeX, that
+simulates an 8-Bit microcontroller is fast? Propably not. On my
+notebook I could achieve 2.5 KHz, so this is a factor 10000 slower
+than the actual hardware with the highest supported clock rate.
+
+-----
+
+[1] http://www.ctan.org/pkg/pgf
+
+[2] http://pgfplots.sourceforge.net/
+
+[3] http://www.ctan.org/pkg/dataref
+
+[4] http://en.wikipedia.org/wiki/Atmel_AVR
diff --git a/Master/texmf-dist/doc/latex/avremu/avremu.pdf b/Master/texmf-dist/doc/latex/avremu/avremu.pdf
new file mode 100644
index 00000000000..3b10ee33a71
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/avremu/avremu.pdf
Binary files differ