Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/ColinEberhardt/atari2600-wasm

An Atari 2600 emulator written in AssemblyScript compiled to WebAssembly
https://github.com/ColinEberhardt/atari2600-wasm

assemblyscript atari2600 webassembly

Last synced: 3 months ago
JSON representation

An Atari 2600 emulator written in AssemblyScript compiled to WebAssembly

Lists

README

        

# WebAssembly / AssemblyScript Atari 2600 Emulator

I've been fascinated with the 2600 ever since reading [Racing the Beam](https://www.amazon.co.uk/Racing-Beam-Computer-Platform-Studies/dp/026201257X), the idea of a computer that doesn't have enough memory to support video RAM is just nuts! This project is an excuse to have a play with [AssemblyScript](https://docs.assemblyscript.org/), and explore the 2600 further.

I'm implementing the 2600 by implementing features as they appear in the [Atari 2600 Programming for Newbies](https://cdn.hackaday.io/files/1646277043401568/Atari_2600_Programming_for_Newbies_Revised_Edition.pdf) guide.

## Other reference sources

- Addressing modes - https://slark.me/c64-downloads/6502-addressing-modes.pdf
- 6502 reference - http://www.obelisk.me.uk/6502/reference.html
- Another 6502 reference - https://www.masswerk.at/6502/6502_instruction_set.html
- https://en.wikibooks.org/wiki/6502_Assembly

## Progress

- [Atari 2600 Programming for Newbies](https://cdn.hackaday.io/files/1646277043401568/Atari_2600_Programming_for_Newbies_Revised_Edition.pdf)
- [x] Session 1: Start Here
- [x] Session 2: Television Display Basics
- [x] Session 3: The TIA and 6502
- [x] Session 4: The TIA
- [x] Session 5: Memory Architecture
- [x] Sessions 6 & 7: The TV and our Kernel
- [x] Session 8: Our First Kernel
- [x] Session 9: 6502 and DASM – Assembling the basics
- [x] Session 10: Orgasm
- [x] Session 11: Colorful colors
- [x] Session 12: Initialization
- [x] Session 13: Playfield Basics
- [x] Session 14: Playfield Weirdness
- [x] Session 15: Playfield Continued
- [ ] Session 16: Letting the Assembler Do the Work