Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
gitlab.brokenpipe.de
Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
1–10 of 21 posts
Re: Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
#2Avremu: An AVR Emulator Written in Pure LaTeX - https://news.ycombinator.com/item?id=13126595 - Dec 2016 (29 comments)
Show HN: Avremu – An 8-Bit Microcontroller in Pure LaTeX - https://news.ycombinator.com/item?id=8448322 - Oct 2014 (18 comments)
Re: Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
#3Re: Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
#4> You are writing an CPU emulator in TeX, the TYPESETTING system?
Yep.
> Are you insane?
Not that anybody knows of.
Re: Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
#5It's... actually readable? For example https://gitlab.brokenpipe.de/stettberger/avremu/-/blob/maste... hits me as a very usual pattern to write emulators.
Re: Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
#6Had to read the title 3 times. It's... actually readable? For example https://gitlab.brokenpipe.de/stettberger/avremu/-/blob/maste... hits me as a very usual pattern to write emulators.
It turned out to be more awkward than I expected. Most 8-bit processors have instructions fairly clearly specified in the first byte. So the bulk of the decoding work can be done with a small jump table. The avr is more bit packed. Due to the way I progressively implemented the instructions I ended up with a kind-of tree of case statements. At some stage I'd like to go back and have a converter to a larger but easier to decode format. Instructions being in ROM(ish) and being easy to detect when updated means AOT is easy enough to do.
It might only need 32 bits per instruction. Opcode in the first byte and then byte aligned operands.
Re: Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
#7Re: Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
#8I had quite some fun implementing this at a very lovely lake in Sweden, while my colleagues were attending GPCE.
By the way, if I understood you correctly, this sentence
> 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.
could be rewritten as
> There are 5 opcodes that are not implemented (MULS, MULSU, FMUL, FMULS, FMULSU), as I have not yet encountered a C file for which AVR-GCC emits these opcodes.
Re: Avremu: An 8-Bit AVR Microcontroller Simulator Written in LaTeX
#9Had to read the title 3 times. It's... actually readable? For example https://gitlab.brokenpipe.de/stettberger/avremu/-/blob/maste... hits me as a very usual pattern to write emulators.