SlideShare a Scribd company logo
Programming the Atari VCS for Fun
Paul Dixon @lordelph paul@elphin.com
http://github.com/lordelph/2600intro
An XBox it Ain’t!
128 bytes
of RAM
remember
these?
6507 CPU
0.5 MIPS
160 x 192
pixels.
Hmmm….
So let’s make something!
PFData0
.byte #%00000000
.byte #%01010000
.byte #%01010000
.byte #%01010000
.byte #%01110000
.byte #%01010000
.byte #%01010000
.byte #%01010000
.byte #%00000000
Design a playfield…
ScanLoop
STA WSYNC
; load our playfield data
LDA PFData0,X
STA PF0
LDA PFData1,X
STA PF1
LDA PFData2,X
STA PF2
DEX
BNE MorePlayfield
LDX #18 ;reset playfield counter
MorePlayfield
DEY ; decrement scanline counter
BNE ScanLoop ; next scan line
This loader uses 26
cycles per
scanline. We only
have 22 cycles
before the TV
starts displaying
the line! OMFG!
Why do this to yourself?
• It’s a fun intellectual challenge
• Great introduction to assembler
• Serves to remind you how wasteful
something like this is
$ext=array_pop(
explode(‘.’, $filename)
);
“You can’t have art
without resistance in
the materials”
Paul Dixon @lordelph paul@elphin.com
http://github.com/lordelph/2600intro
William Morris

More Related Content

What's hot

Informatica presentacio
Informatica presentacioInformatica presentacio
Informatica presentacioxevi
 
A Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep LearningA Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep LearningSuntae Kim
 
Ethereum virtual machine for Developers Part 1
Ethereum virtual machine for Developers Part 1Ethereum virtual machine for Developers Part 1
Ethereum virtual machine for Developers Part 1ArcBlock
 
Ultimate Modded Commodore 64
Ultimate Modded Commodore 64Ultimate Modded Commodore 64
Ultimate Modded Commodore 64Leif Bloomquist
 
Monogame Introduction (ENG)
Monogame Introduction (ENG)Monogame Introduction (ENG)
Monogame Introduction (ENG)Aloïs Deniel
 
Snickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingSnickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingFlávio Ribeiro
 
NoiseGen at Arlington Ruby 2012
NoiseGen at Arlington Ruby 2012NoiseGen at Arlington Ruby 2012
NoiseGen at Arlington Ruby 2012awwaiid
 
Ultimate Modded Commodore VIC-20
Ultimate Modded Commodore VIC-20Ultimate Modded Commodore VIC-20
Ultimate Modded Commodore VIC-20Leif Bloomquist
 
New Commodore 64 Network Game Developments
New Commodore 64 Network Game DevelopmentsNew Commodore 64 Network Game Developments
New Commodore 64 Network Game DevelopmentsLeif Bloomquist
 

What's hot (13)

Christmas 2011
Christmas 2011Christmas 2011
Christmas 2011
 
Informatica presentacio
Informatica presentacioInformatica presentacio
Informatica presentacio
 
A Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep LearningA Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep Learning
 
Ethereum virtual machine for Developers Part 1
Ethereum virtual machine for Developers Part 1Ethereum virtual machine for Developers Part 1
Ethereum virtual machine for Developers Part 1
 
Ultimate Modded Commodore 64
Ultimate Modded Commodore 64Ultimate Modded Commodore 64
Ultimate Modded Commodore 64
 
Monogame Introduction (ENG)
Monogame Introduction (ENG)Monogame Introduction (ENG)
Monogame Introduction (ENG)
 
Snickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingSnickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media Encoding
 
Config fs2020
Config fs2020Config fs2020
Config fs2020
 
Presupuesto Periferico
Presupuesto PerifericoPresupuesto Periferico
Presupuesto Periferico
 
NoiseGen at Arlington Ruby 2012
NoiseGen at Arlington Ruby 2012NoiseGen at Arlington Ruby 2012
NoiseGen at Arlington Ruby 2012
 
Ultimate Modded Commodore VIC-20
Ultimate Modded Commodore VIC-20Ultimate Modded Commodore VIC-20
Ultimate Modded Commodore VIC-20
 
New Commodore 64 Network Game Developments
New Commodore 64 Network Game DevelopmentsNew Commodore 64 Network Game Developments
New Commodore 64 Network Game Developments
 
Andrea p
Andrea pAndrea p
Andrea p
 

Viewers also liked

E.T. The Extra-Terrestrial - Atari 2600 - Manual
E.T. The Extra-Terrestrial - Atari 2600 - ManualE.T. The Extra-Terrestrial - Atari 2600 - Manual
E.T. The Extra-Terrestrial - Atari 2600 - ManualVICIOGAME Retro Games
 
[Especial] 70 edições da Revista Nintendo Blast
[Especial] 70 edições da Revista Nintendo Blast[Especial] 70 edições da Revista Nintendo Blast
[Especial] 70 edições da Revista Nintendo BlastGabriel Leles
 
Primeras consolas de Nintendo
Primeras consolas de NintendoPrimeras consolas de Nintendo
Primeras consolas de NintendoRafael4bn11
 
History of Video Games up to 90s
History of Video Games up to 90sHistory of Video Games up to 90s
History of Video Games up to 90sMark Rotondella
 
Compelling Storytelling in Video Game Design
Compelling Storytelling in Video Game DesignCompelling Storytelling in Video Game Design
Compelling Storytelling in Video Game DesignJulio Seaman
 
DeepHack.Game 5vision team
DeepHack.Game 5vision teamDeepHack.Game 5vision team
DeepHack.Game 5vision teamDeepHackLab
 
DeepHack.Game Skynet team
DeepHack.Game Skynet teamDeepHack.Game Skynet team
DeepHack.Game Skynet teamDeepHackLab
 
Aula 02 operadores aritiméticos
Aula 02   operadores aritiméticosAula 02   operadores aritiméticos
Aula 02 operadores aritiméticosTácito Graça
 
Passar de algoritmo para pascal
Passar de algoritmo para pascalPassar de algoritmo para pascal
Passar de algoritmo para pascalmoraesdenise
 
Caderno didatico pascal
Caderno didatico pascalCaderno didatico pascal
Caderno didatico pascalAlvaro Melo
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleçãoTácito Graça
 
Guia Rápido Da Linguagem Pascal
Guia Rápido Da Linguagem PascalGuia Rápido Da Linguagem Pascal
Guia Rápido Da Linguagem PascalMikeNandes
 

Viewers also liked (20)

Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
E.T. The Extra-Terrestrial - Atari 2600 - Manual
E.T. The Extra-Terrestrial - Atari 2600 - ManualE.T. The Extra-Terrestrial - Atari 2600 - Manual
E.T. The Extra-Terrestrial - Atari 2600 - Manual
 
[Especial] 70 edições da Revista Nintendo Blast
[Especial] 70 edições da Revista Nintendo Blast[Especial] 70 edições da Revista Nintendo Blast
[Especial] 70 edições da Revista Nintendo Blast
 
Micro RetroKomp
Micro RetroKompMicro RetroKomp
Micro RetroKomp
 
Primeras consolas de Nintendo
Primeras consolas de NintendoPrimeras consolas de Nintendo
Primeras consolas de Nintendo
 
games
gamesgames
games
 
History of Video Games up to 90s
History of Video Games up to 90sHistory of Video Games up to 90s
History of Video Games up to 90s
 
Compelling Storytelling in Video Game Design
Compelling Storytelling in Video Game DesignCompelling Storytelling in Video Game Design
Compelling Storytelling in Video Game Design
 
DeepHack.Game 5vision team
DeepHack.Game 5vision teamDeepHack.Game 5vision team
DeepHack.Game 5vision team
 
DeepHack.Game Skynet team
DeepHack.Game Skynet teamDeepHack.Game Skynet team
DeepHack.Game Skynet team
 
Pascal
PascalPascal
Pascal
 
Módulo 2 pascal
Módulo 2  pascalMódulo 2  pascal
Módulo 2 pascal
 
Aula 02 operadores aritiméticos
Aula 02   operadores aritiméticosAula 02   operadores aritiméticos
Aula 02 operadores aritiméticos
 
Passar de algoritmo para pascal
Passar de algoritmo para pascalPassar de algoritmo para pascal
Passar de algoritmo para pascal
 
Apostila curso php_my_sql(portugues)
Apostila curso php_my_sql(portugues)Apostila curso php_my_sql(portugues)
Apostila curso php_my_sql(portugues)
 
Caderno didatico pascal
Caderno didatico pascalCaderno didatico pascal
Caderno didatico pascal
 
Apostila pascal
Apostila pascal Apostila pascal
Apostila pascal
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleção
 
Guia Rápido Da Linguagem Pascal
Guia Rápido Da Linguagem PascalGuia Rápido Da Linguagem Pascal
Guia Rápido Da Linguagem Pascal
 
Apostila pascal
Apostila pascalApostila pascal
Apostila pascal
 

Similar to Atari 2600 Programming for Fun

Programming the Cell Processor A simple raytracer from pseudo-code to spu-code
Programming the Cell Processor A simple raytracer from pseudo-code to spu-codeProgramming the Cell Processor A simple raytracer from pseudo-code to spu-code
Programming the Cell Processor A simple raytracer from pseudo-code to spu-codeSlide_N
 
The n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkThe n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkmarkdgray
 
了解网络
了解网络了解网络
了解网络Feng Yu
 
Such a weird Processor: messing with opcodes (...and a little bit of PE) (Has...
Such a weird Processor: messing with opcodes (...and a little bit of PE) (Has...Such a weird Processor: messing with opcodes (...and a little bit of PE) (Has...
Such a weird Processor: messing with opcodes (...and a little bit of PE) (Has...Ange Albertini
 
OCP 2015 summit_honey badger_and_panther+_update
OCP 2015 summit_honey badger_and_panther+_updateOCP 2015 summit_honey badger_and_panther+_update
OCP 2015 summit_honey badger_and_panther+_updateMike Yan
 
Apple earlier business plan
Apple earlier business planApple earlier business plan
Apple earlier business planWahida Wahap
 
High-performance packet filtering with Pflua (FOSDEM 2015)
High-performance packet filtering with Pflua (FOSDEM 2015)High-performance packet filtering with Pflua (FOSDEM 2015)
High-performance packet filtering with Pflua (FOSDEM 2015)Igalia
 
Revelation pyconuk2016
Revelation pyconuk2016Revelation pyconuk2016
Revelation pyconuk2016Sarah Mount
 
Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266Baoshi Zhu
 
Gameboy emulator in rust and web assembly
Gameboy emulator in rust and web assemblyGameboy emulator in rust and web assembly
Gameboy emulator in rust and web assemblyYodalee
 
Snake Game on FPGA in Verilog
Snake Game on FPGA in VerilogSnake Game on FPGA in Verilog
Snake Game on FPGA in VerilogKrishnajith S S
 
02 - About Motherboard and its Types.ppt
02 - About Motherboard and its Types.ppt02 - About Motherboard and its Types.ppt
02 - About Motherboard and its Types.pptBABUE7
 
Columnar processing for SQL-on-Hadoop: The best is yet to come
Columnar processing for SQL-on-Hadoop: The best is yet to comeColumnar processing for SQL-on-Hadoop: The best is yet to come
Columnar processing for SQL-on-Hadoop: The best is yet to comeWang Zuo
 

Similar to Atari 2600 Programming for Fun (20)

Writing bios
Writing biosWriting bios
Writing bios
 
Programming the Cell Processor A simple raytracer from pseudo-code to spu-code
Programming the Cell Processor A simple raytracer from pseudo-code to spu-codeProgramming the Cell Processor A simple raytracer from pseudo-code to spu-code
Programming the Cell Processor A simple raytracer from pseudo-code to spu-code
 
A2 Video Streamer
A2 Video StreamerA2 Video Streamer
A2 Video Streamer
 
The n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkThe n00bs guide to ovs dpdk
The n00bs guide to ovs dpdk
 
8-bit Emulator Programming with Go
8-bit Emulator Programming with Go8-bit Emulator Programming with Go
8-bit Emulator Programming with Go
 
了解网络
了解网络了解网络
了解网络
 
Such a weird Processor: messing with opcodes (...and a little bit of PE) (Has...
Such a weird Processor: messing with opcodes (...and a little bit of PE) (Has...Such a weird Processor: messing with opcodes (...and a little bit of PE) (Has...
Such a weird Processor: messing with opcodes (...and a little bit of PE) (Has...
 
OCP 2015 summit_honey badger_and_panther+_update
OCP 2015 summit_honey badger_and_panther+_updateOCP 2015 summit_honey badger_and_panther+_update
OCP 2015 summit_honey badger_and_panther+_update
 
Apple earlier business plan
Apple earlier business planApple earlier business plan
Apple earlier business plan
 
High-performance packet filtering with Pflua (FOSDEM 2015)
High-performance packet filtering with Pflua (FOSDEM 2015)High-performance packet filtering with Pflua (FOSDEM 2015)
High-performance packet filtering with Pflua (FOSDEM 2015)
 
20141106 asfws unicode_hacks
20141106 asfws unicode_hacks20141106 asfws unicode_hacks
20141106 asfws unicode_hacks
 
Revelation pyconuk2016
Revelation pyconuk2016Revelation pyconuk2016
Revelation pyconuk2016
 
What the Fax!?
What the Fax!?What the Fax!?
What the Fax!?
 
Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266
 
Gameboy emulator in rust and web assembly
Gameboy emulator in rust and web assemblyGameboy emulator in rust and web assembly
Gameboy emulator in rust and web assembly
 
Snake Game on FPGA in Verilog
Snake Game on FPGA in VerilogSnake Game on FPGA in Verilog
Snake Game on FPGA in Verilog
 
02 - About Motherboard and its Types.ppt
02 - About Motherboard and its Types.ppt02 - About Motherboard and its Types.ppt
02 - About Motherboard and its Types.ppt
 
Columnar processing for SQL-on-Hadoop: The best is yet to come
Columnar processing for SQL-on-Hadoop: The best is yet to comeColumnar processing for SQL-on-Hadoop: The best is yet to come
Columnar processing for SQL-on-Hadoop: The best is yet to come
 
How video codec work
How video codec work How video codec work
How video codec work
 
Next Stop, Android
Next Stop, AndroidNext Stop, Android
Next Stop, Android
 

Recently uploaded

top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownloadvrstrong314
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfOrtus Solutions, Corp
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageGlobus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareinfo611746
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisNeo4j
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptxGeorgi Kodinov
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILNatan Silnitsky
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion Clinic
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of ProgrammingMatt Welsh
 

Recently uploaded (20)

top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 

Atari 2600 Programming for Fun

  • 1. Programming the Atari VCS for Fun Paul Dixon @lordelph paul@elphin.com http://github.com/lordelph/2600intro
  • 2. An XBox it Ain’t! 128 bytes of RAM remember these? 6507 CPU 0.5 MIPS 160 x 192 pixels. Hmmm….
  • 3.
  • 4. So let’s make something!
  • 5. PFData0 .byte #%00000000 .byte #%01010000 .byte #%01010000 .byte #%01010000 .byte #%01110000 .byte #%01010000 .byte #%01010000 .byte #%01010000 .byte #%00000000 Design a playfield…
  • 6. ScanLoop STA WSYNC ; load our playfield data LDA PFData0,X STA PF0 LDA PFData1,X STA PF1 LDA PFData2,X STA PF2 DEX BNE MorePlayfield LDX #18 ;reset playfield counter MorePlayfield DEY ; decrement scanline counter BNE ScanLoop ; next scan line This loader uses 26 cycles per scanline. We only have 22 cycles before the TV starts displaying the line! OMFG!
  • 7.
  • 8. Why do this to yourself? • It’s a fun intellectual challenge • Great introduction to assembler • Serves to remind you how wasteful something like this is $ext=array_pop( explode(‘.’, $filename) );
  • 9. “You can’t have art without resistance in the materials” Paul Dixon @lordelph paul@elphin.com http://github.com/lordelph/2600intro William Morris