16-Bit Virtual Machine in JavaScript 001 @LowByteProductions
16-Bit Virtual Machine in JavaScript 001  @LowByteProductions
Uploaded October 2019 | Updated September 2026, 2 weeks ago
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. We'll 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: patreon.com/lowleveljavascript
- 💌 Updates to your inbox: tinyletter.com/lowleveljavascript

- Playlist: youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b&playnext=1&index=1
- Github Repo: github.com/LowLevelJavaScript/16-Bit-Virtual-Machine

- 16BitJS: github.com/francisrstokes/16bitjs
- VMFC: github.com/francisrstokes/vmfc
- Turing Machine: en.wikipedia.org/wiki/Turing_machine
- Von Neumann architecture: en.wikipedia.org/wiki/Von_Neumann_architecture
- CPU: en.wikipedia.org/wiki/Central_processing_unit
- Stack Machine: en.wikipedia.org/wiki/Stack_machine
- Register Machine: en.wikipedia.org/wiki/Register_machine
- Instruction set architecture: en.wikipedia.org/wiki/Instruction_set_architecture
16-Bit Virtual Machine in JavaScript 001First Successful Firmware Update! :: Bare Metal Programming Series 11Building A Fantasy Game Console Emulator: System Overview and Graphics PipelineSimple Timer API :: Bare Metal Programming Series 9[stream] File System Hacking: FAT32 Deep DiveWhat is Memory Mapped I/O? (16-Bit VM in JavaScript 005)Unpacking squished bits (Bit Packer part 2)Fixed-point math is better than floating point (sometimes)The mechanics of VIRTUAL MEMORY //Source Dive// 005Spinning Persistence of Vision[stream] USB: Reverse Engineering and Writing Driversgateware-ts basics: Digital design for FPGA with TypeScript
Low Byte Productions |

16-Bit Virtual Machine in JavaScript 001

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER