Hmm, I think I might be working on a 6502 project which would adhere to our younger generation. I am 32 btw, turning 33 next month...
Kids nowadays love video games, and some even like the aspect of "hacking", recall the movie
WarGames? I know I do, and always wondered what it would be like to be in his shoes, being at home with a VIC-20, and a phone modem connecting to many random phone numbers...
As it so happens, I am working on a somewhat ambitious project, which combines a 6502, gaming, and online hacking! I originally started this project back in 2012 as a web-based game, but soon after turned into a terminal-based game with a custom assembly language and virtual machine. After awhile I thought using a custom virtual machine may deter players from actually creating programs, as the learning curve might be a tad too high... I really wanted to have a persistent world full of user-generated content. Finally last year, I had the idea of scrapping the custom virtual machine to use something more common, but it needed to be lightweight enough to be usable in a situation like this. The end result was to use a 6502 compatible Virtual machine and a VIC-20 compatible assembly language. There is a vast amount of online documentation and community behind both, so it felt like a natural fit. Besides, in the movie WarGames, the computer used most likely ran a 6502 chip.
Anyways, I spent the last 20 hours putting together a 6502 Virtual Machine and Assembler that I finally partly integrated into the game. It can assemble and run VIC-20 style 6502 programs. Of course there is no framebuffer here, only a TTY device, so naturally VIC-20 programs won't run out of the box. However, since user-generated Kernels will be possible, a user will eventually come around and create a VIC-20 Kernal(VIC-20 spelled it Kernal?!?!), which should enable compatibility with most text-based VIC-20 programs.
Once the 6502 core is fully integrated into the game, the virtual network hosts which players will connect to, will run 100% 6502 code. When a player first connects to the game world, their host is in a "powered off" state, and during the connection phase, this is detected, and a virtual 6502 is powered on, KERNEL is loaded in it's virtual memory space, and a shell program is loaded after the kernel finishes up. The 6502 will have full network access via a TCP-like interface to other virtual 6502 hosts, making a full virtual Internet of TCP connected 6502 machines. This allows players to create networking applications. Currently this virtual Internet is simulated in pure Python code, with no actual underlying protocol. So, when a player connects to another host, there's nothing magic about it... With the 6502 code being put together, this will all change, and my hopes is to create a fully simulated packet-switched network.
The general goal of this game is raise ones rank, virtual credits, and taking over other 6502 hosts on the network. However, nothing is stopping the player from playing around with general 6502 assembly and learning in a simulated environment. It can both be used as a learning/teaching tool, as well as for entertainment. With the benefit of skills learned and used can be adapted to general 6502 uses, such as embedded CMOS programming, and vintage coding.
Do you think this would a great way to expose the younger population to 6502?