Uploaded April 2022 | Updated September 2026, 2 weeks ago
In this episode of the RISC-V quest, we're implementing the mechanics of trap handling, taking one particularly easy to spot exception as the focus point: Load Address Misaligned.
The design involves building a new module, as well as a new super-state of the CPU, which controls when the processor is executing the pipeline, and when it is handling the mechanics of traps.
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: tinyletter.com/lowleveljavascript
🗣 Discord: discord.gg/FPWaVgk
⭐️ Patreon: patreon.com/lowleveljavascript
💻 Github Repo (emulator): github.com/LowLevelJavaScript/RISC-V-Emulator
In this episode of the RISC-V quest, we're implementing the mechanics of trap handling, taking one particularly easy to spot exception as the focus point: Load Address Misaligned.
The design involves building a new module, as well as a new super-state of the CPU, which controls when the processor is executing the pipeline, and when it is handling the mechanics of traps.
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: tinyletter.com/lowleveljavascript
🗣 Discord: discord.gg/FPWaVgk
⭐️ Patreon: patreon.com/lowleveljavascript
💻 Github Repo (emulator): github.com/LowLevelJavaScript/RISC-V-Emulator
![Bits! [The Bits And Bytes Of Binary ep.1]
This mini series is all about binary. Over the course of the series, well be building a library that gives us precise control of every bit and operation.
Youll learn how the logical and arithmetic operations work, how different kinds of numbers are encoded, how to set, clear and toggle bits, and how we can create representations of structured binary data.
1. Bits
2. Operations
3. Unsigned Numbers
4. Addition
5. Zero Extension
6. Twos complement
7. Overflow Addition and Sign Extension
8. Shifting
9. Setting, Clearing, and Toggling Bits
10. Endianness
11. Structures
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
🎥 Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW47oPsNBFNEi_SYTOLDJXqQ
💻 Github Repo: https://github.com/LowLevelJavaScript/The-Bits-And-Bytes-Of-Binary
=[ 🎶 Music 🎶 ]=
Game Plan - Bad Snacks Bits! [The Bits And Bytes Of Binary ep.1]](https://i.ytimg.com/vi/pOM86M1pGb4/mqdefault.jpg)
![RISC-V Processor In TS: ALU (part 2)
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo (emulator): https://github.com/LowLevelJavaScript/RISC-V-Emulator RISC-V Processor In TS: ALU (part 2)](https://i.ytimg.com/vi/ppRzESGUspI/mqdefault.jpg)
![UART Driver From Scratch :: Bare Metal Programming Series 5
In this episode of the bare metal programming series, were building a UART driver - an API to the peripheral which will facilitate the fundamental communications well need for firmware updates in the bootloader!
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/bare-metal-series UART Driver From Scratch :: Bare Metal Programming Series 5](https://i.ytimg.com/vi/qSUbe_a54gY/mqdefault.jpg)
![Testing the Packet Protocol :: Bare Metal Programming Series 7.3
In this installment of the bare metal programming series, were testing the packet protocol implementation we wrote in the bootloader, using a PC side application which will eventually become the firmware updater!
Turns out there were a few bugs - but being able to step though both programs at the same time, seeing how the data flows, allows us to iron those out.
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/bare-metal-series Testing the Packet Protocol :: Bare Metal Programming Series 7.3](https://i.ytimg.com/vi/rG1Faau2QuM/mqdefault.jpg)
![Dumping GameBoy Cartridges The INTERESTING Way
In this video were dumping GameBoy cartridges using a non-conventional method; One that uses the GameBoy itself to exfiltrate the data out from under it!
Its going to involve building custom software that runs on the console, cartridge swapping, and the fabled link cable.
00:00:00 – Intro
00:02:12 – GameBoy Coding Adventure Book
00:03:18 – The plan
00:09:52 – Writing the ROM dumper code
01:14:28 – The GameBoy link port and cable
01:17:52 – Wiring up to the logic analyzer
01:21:18 – Logic SPI setup
01:25:45 – Dumping the ROM
01:31:40 – Processing the dump into a raw binary file
01:40:12 – Testing in an emulator
=[ 🔗 Links 🔗 ]=
📖 GameBoy Coding Adventure: https://mdagois.gumroad.com/l/CODQn (Use code LBP for discount)
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/francisrstokes/tega Dumping GameBoy Cartridges The INTERESTING Way](https://i.ytimg.com/vi/rORPp6vYMsw/mqdefault.jpg)
![JavaScript Is Weird (EXTREME EDITION)
To offset some of the banana-based JavaScript weirdness thats making the rounds, Im bring you a 40 line JSFuck compiler that turns innocent looking JS into a mess of obfuscated symbols.
=[ 🔗 Links 🔗 ]=
- ⭐️ Patreon: https://www.patreon.com/lowleveljavascript
- 💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
- Martin Kleppes Original JSFuck: http://www.jsfuck.com/
- Martin on Twitter: https://twitter.com/aemkei
- Parser Combinators From Scratch Series: https://www.youtube.com/watch?v=6oQLRhw5Ah0&list=PLP29wDx6QmW5yfO1LAgO8kU3aQEj8SIrU
- Github repo: https://github.com/LowLevelJavaScript/JavaScript-Is-Weird JavaScript Is Weird (EXTREME EDITION)](https://i.ytimg.com/vi/sRWE5tnaxlI/mqdefault.jpg)
![Hiding Data In Sound
In this video, were learning about steganography: the art of hiding data inside other data.
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/Hiding-Data-In-Sound Hiding Data In Sound](https://i.ytimg.com/vi/sn9mKSpOcFM/mqdefault.jpg)
![Unconditional Jumps and Running C code: RISC-V ep.6
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo (emulator): https://github.com/LowLevelJavaScript/RISC-V-Emulator Unconditional Jumps and Running C code: RISC-V ep.6](https://i.ytimg.com/vi/tjCF5R97pxk/mqdefault.jpg)
![The worlds most convoluted spirograph
In this video, were dipping our toes into the world of DSP, and learning about how to interpret the output of the worlds most important algorithm: The fast fourier transform.
By building an understanding of all the component parts, we can understand exactly how this mathematical tool can be used to create these wild drawings, based solely on circles of different sizes rotating around one another.
=[ 🔗 Links 🔗 ]=
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/the-worlds-most-convoluted-spirograph The worlds most convoluted spirograph](https://i.ytimg.com/vi/tuC0qnyPrvM/mqdefault.jpg)
![How Do Regular Expressions Really Work?
In this video were going to build a basic regular expression engine from scratch, in order to illustrate the underlying mechanisms that make them tick. First with a naive attempt, and then implementing the nuanced backtracking feature.
00:00 - Intro
00:53 - Constraints
02:40 - Parsing
10:45 - Writing the regex engine
17:00 - Testing the engine
18:40 - Fundamental flaw
20:20 - Implementing backtracking
=[ 🔗 Links 🔗 ]=
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
💻 Github Repo: https://github.com/LowLevelJavaScript/Regular-Expression-Engine How Do Regular Expressions Really Work?](https://i.ytimg.com/vi/u01jb8YN2Lw/mqdefault.jpg)
![Interrupt Safe Ring Buffer :: Bare Metal Programming Series 6
In this episode of the bare metal programming series, were building a ring buffer to back our UART driver. This buffer comes with a set of operations and properties that make it safe and consistent to use from both the main code and interrupt routines.
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/bare-metal-series Interrupt Safe Ring Buffer :: Bare Metal Programming Series 6](https://i.ytimg.com/vi/uIJnATS9j_0/mqdefault.jpg)