Uploaded January 2022 | Updated September 2026, 2 weeks ago
=[ 🔗 Links 🔗 ]=
🎥 Stream Playlist: youtube.com/playlist?list=PLP29wDx6QmW7jg0LgRJYAmHLM6G_6NDw6
💌 Updates to your inbox: tinyletter.com/lowleveljavascript
🗣 Discord: discord.gg/FPWaVgk
⭐️ Patreon: patreon.com/lowleveljavascript
💻 Github Repo:
=[ 🔗 Links 🔗 ]=
🎥 Stream Playlist: youtube.com/playlist?list=PLP29wDx6QmW7jg0LgRJYAmHLM6G_6NDw6
💌 Updates to your inbox: tinyletter.com/lowleveljavascript
🗣 Discord: discord.gg/FPWaVgk
⭐️ Patreon: patreon.com/lowleveljavascript
💻 Github Repo:
![Operations! [The Bits And Bytes Of Binary ep.2]
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/watch?v=pOM86M1pGb4&list=PLP29wDx6QmW47oPsNBFNEi_SYTOLDJXqQ
💻 Github Repo: https://github.com/LowLevelJavaScript/The-Bits-And-Bytes-Of-Binary
=[ 🎶 Music 🎶 ]=
Bad Snacks - Take It Easy Operations! [The Bits And Bytes Of Binary ep.2]](https://i.ytimg.com/vi/a23wQcaBfpc/mqdefault.jpg)
![How Are State Machines Used In Parsing? (16-Bit VM in JavaScript 008)
In this episode we begin building the parser for this VMs assembly language. During the process well encounter a tricky problem with parser combinators, and how we can solve it using state machines.
=[ ℹ About ℹ ]=
This series is all about building a powerful virtual machine in JavaScript with the following features:
- A flexible, extensible, register-based virtual machine
- Support for signed, unsigned and floating point operations
- A call stack
- Interrupt capabilities
- Ability to do memory mapping for IO
- An assembly language with macro and module support
- A higher level, C like language. Well use and expand the library from the parser combinators from scratch series
- And finally, to be able to take the whole thing into the browser and extend it to create a sort of fantasy console - an emulator for a machine that never existed
- ⭐️ Patreon: https://www.patreon.com/lowleveljavascript
- 💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
- Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b&playnext=1&index=1
- Github Repo: https://github.com/LowLevelJavaScript/16-Bit-Virtual-Machine
- arcsecond: https://github.com/francisrstokes/arcsecond
- Parser Combinators From Scratch: https://www.youtube.com/watch?v=6oQLRhw5Ah0&list=PLP29wDx6QmW5yfO1LAgO8kU3aQEj8SIrU
- Building A Language Parser and Interpreter: https://youtu.be/PzodUuERBZc
- Contextual Parsers: https://youtu.be/yPEwjpIWOGg
- State Machines: https://en.wikipedia.org/wiki/Finite-state_machine
- The Left Recursion Problem: https://en.wikipedia.org/wiki/Left_recursion How Are State Machines Used In Parsing? (16-Bit VM in JavaScript 008)](https://i.ytimg.com/vi/ai63l4OUxSs/mqdefault.jpg)
![Digital Circuit Simulator In JavaScript: 7400 Subscriber Special!
=[ ℹ About ℹ ]=
In this special 7400 subscriber special of Low Level JavaScript were going to build a digital logic simulator, inspired by the famous 7400 series logic chips. Starting with logic gates and moving up to Flip Flops, Registers, and more - this simulator could be used to build something as complex as even a CPU!
=[ 🔗 Links 🔗 ]=
- ⭐️ Patreon: https://www.patreon.com/lowleveljavascript
- 💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
- Github Repo: https://github.com/LowLevelJavaScript/Digital-Logic-Simulator
- Ben Eater: https://www.youtube.com/user/eaterbc
- Boolean Logic: https://en.wikipedia.org/wiki/Boolean_algebra
- Building A Real D-Flip Flop in Hardware: https://www.youtube.com/watch?v=YW GkUguMM
- High Impedance: https://en.wikipedia.org/wiki/High_impedance#Digital_electronics
- Tristate Logic: https://en.wikipedia.org/wiki/Three-state_logic
- Logisim: http://www.cburch.com/logisim/
- Renato Bohlers Logosim Project (logisim in JS): https://github.com/renato-bohler/logossim Digital Circuit Simulator In JavaScript: 7400 Subscriber Special!](https://i.ytimg.com/vi/anZPHeA0WKU/mqdefault.jpg)
![Expanding Beyond 64kb of Memory with Bank Switching (16-Bit VM in JavaScript 012)
In this episode were learning about memory bank switching - a technique common in the retro game console days - that allows us to address more memory than the limited address space that 16 bits provides!
=[ ℹ About ℹ ]=
This series is all about building a powerful virtual machine in JavaScript with the following features:
- A flexible, extensible, register-based virtual machine
- Support for signed, unsigned and floating point operations
- A call stack
- Interrupt capabilities
- Ability to do memory mapping for IO
- An assembly language with macro and module support
- A higher level, C like language. Well use and expand the library from the parser combinators from scratch series
- And finally, to be able to take the whole thing into the browser and extend it to create a sort of fantasy console - an emulator for a machine that never existed
- 💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
- ⭐️ Patreon: https://www.patreon.com/lowleveljavascript
- Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b&playnext=1&index=1
- Github Repo: https://github.com/LowLevelJavaScript/16-Bit-Virtual-Machine
- Bank Switching: https://en.wikipedia.org/wiki/Bank_switching
- 16BitVM Episode 5: https://youtu.be/hLYGTpvoMgE
=[ 🔗 Links 🔗 ]=
- Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b&playnext=1&index=1
- Github Repo: https://github.com/LowLevelJavaScript/16-Bit-Virtual-Machine Expanding Beyond 64kb of Memory with Bank Switching (16-Bit VM in JavaScript 012)](https://i.ytimg.com/vi/araYkE3KAms/mqdefault.jpg)
![Worlds Simplest Bootloader :: Bare Metal Programming Series 4
In this episode of the bare metal programming series, were taking our first steps into building a fully fledged bootloader! To do this, we need to split the application in two, build some supporting scripts, learn how to use linker scripts, and understand some of the internal CPU registers for relocating the interrupt vector table at runtime.
=[ 🔗 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 Worlds Simplest Bootloader :: Bare Metal Programming Series 4](https://i.ytimg.com/vi/cfNJ85cX-ms/mqdefault.jpg)
![The End Of Low Level JavaScript
Low Level JavaScript is no more.
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript The End Of Low Level JavaScript](https://i.ytimg.com/vi/cpb02XgX_FA/mqdefault.jpg)
![[stream] Driver For SPI Flash + Bus Pirate in TypeScript
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: [stream] Driver For SPI Flash + Bus Pirate in TypeScript](https://i.ytimg.com/vi/e7_lAcVndNo/mqdefault.jpg)
![16-Bit Virtual Machine in JavaScript 001
In this episode we begin implementing a 16-bit virtual machine from scratch in JavaScript. The concepts of computation are introduced, along with the basics of assembly language and machine code.
=[ ℹ About ℹ ]=
This series is all about building a powerful virtual machine in JavaScript with the following features:
- A flexible, extensible, register-based virtual machine
- Support for signed, unsigned and floating point operations
- A call stack
- Interrupt capabilities
- Ability to do memory mapping for IO
- An assembly language with macro and module support
- A higher level, C like language. Well use and expand the library from the parser combinators from scratch series
- And finally, to be able to take the whole thing into the browser and exend it to create a sort of fantasy console - an emulator for a machine that never existed
=[ 🔗 Links 🔗 ]=
- ⭐️ Patreon: https://www.patreon.com/lowleveljavascript
- 💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
- Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b&playnext=1&index=1
- Github Repo: https://github.com/LowLevelJavaScript/16-Bit-Virtual-Machine
- 16BitJS: https://github.com/francisrstokes/16bitjs
- VMFC: https://github.com/francisrstokes/vmfc
- Turing Machine: https://en.wikipedia.org/wiki/Turing_machine
- Von Neumann architecture: https://en.wikipedia.org/wiki/Von_Neumann_architecture
- CPU: https://en.wikipedia.org/wiki/Central_processing_unit
- Stack Machine: https://en.wikipedia.org/wiki/Stack_machine
- Register Machine: https://en.wikipedia.org/wiki/Register_machine
- Instruction set architecture: https://en.wikipedia.org/wiki/Instruction_set_architecture 16-Bit Virtual Machine in JavaScript 001](https://i.ytimg.com/vi/fTBwD3sb5mw/mqdefault.jpg)
![First Successful Firmware Update! :: Bare Metal Programming Series 11
In this episode, were building the firmware updater application, which communicates with the bootloader in order to send a firmware update reliably over USB/UART. Its a fun break from writing low level C, and a chance to write some code in language that provides nice abstractions for sequencing asynchronous code!
=[ 🔗 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 First Successful Firmware Update! :: Bare Metal Programming Series 11](https://i.ytimg.com/vi/fnulMkctAWk/mqdefault.jpg)
![Building A Fantasy Game Console Emulator: System Overview and Graphics Pipeline
In this video we explore the details of the fantasy game console, based on the 16 Bit Virtual Machine - and begin coding the graphics pipeline.
The fantasy console serves as a very simple model for an emulator of a classic game console like the NES or the GameBoy, only without all the tricky real world details and limitations that come with such systems. It allows us to contextualise all the topics weve been learning about while building the VM, and gain some understanding about how it must have been to be a programmer in the days of true resource constraint!
00:00 - Series Introduction
00:43 - System overview
10:06 - Building the graphics pipeline
=[ 🔗 Links 🔗 ]=
🎞 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b&playnext=1&index=1
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/LowLevelJavaScript/16-Bit-Virtual-Machine/ Building A Fantasy Game Console Emulator: System Overview and Graphics Pipeline](https://i.ytimg.com/vi/g29vCtzZPuk/mqdefault.jpg)
![Simple Timer API :: Bare Metal Programming Series 9
In this installment of the bare metal programming series, were taking a minute to build a very simple timer API, allowing us to quickly setup, check, and reset software based timers - accounting for any drift that may occur between checks!
=[ 🔗 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 Simple Timer API :: Bare Metal Programming Series 9](https://i.ytimg.com/vi/g4TLA_R_Tk4/mqdefault.jpg)