llaffer on Tue 28 Jun 2022 wrote:
I'm using a windows machine and I have no idea what tools I should be using or what tutorials I should be following to try to create an image that I can flash onto the eeprom chip and try to run on the 6502.
I don't have a solution but I sympathize with your problem. Getting started with simple systems is like using tongs to hold tongs to eat. You will learn a scaffold of many proxy skills which are not required after you advance.
Some people use a Raspberry Pi for development. This has advantages and dis-advantages. If you're not familiar with Unix in any form then you will have an abrupt shock and you may spend many months learning skills which are almost completely unrelated to 6502. I've used almost every Unix from the 1990s onwards including HP/UX, SunOS, IRIX, SCO Unix and I've used Linux intermittently for more than 20 years. Despite this, it took me six weeks to get familiar with Raspbian, the most popular operating system for Raspberry Pi. A friend got a "Kodi box" running within two weeks but this much more superficial.
If you are foolhardy enough to run a Raspberry Pi with Raspbian, you will get about 10 programming languages by default. You also get a complimentary copy of Mathematica and a special, scriptable version of Minecraft. For larks, it is possible to bodge a Minecraft Redstone version of 6502 (Red6502) to a Raspberry Pi's GPIO. With no additional software, it is also possible to run Mike Naberezny's Py65 (written in Python) or Mike Chambers' 6502 interpreter (written in C). If you are inexperienced with programming, it is possible to learn block structured programming with Scratch. If you are old school retro, it is possible to type a few obscure incantations and download FORTH, Pascal or FORTRAN. With a little more effort it is possible to install BASIC or JOVIAL.
If you want a gentle introduction to electronics on Raspbian, it is possible to install the Arduino IDE (or just Atmel's GCC fork, avr-gcc, and avrdude for flashing). (It is also worthwhile to install minipro to flash EEPROM and other programmable chips.) Some of the 6502 Forum's advanced users only use 6502 with Atmel microcontrollers because it is possible to make a cheaper, faster, simpler, RAM only system which doesn't require EEPROM. Atmel microcontrollers can also work as MicroSD interface, serial port, keyboard controller and floating point co-processor. You may wonder why anyone bothers with 6502 if the Atmel AVR microcontrollers are so brilliant. Unfortunately, the Atmel AVR ATMEGA328P used in Arduino Nano has 2KB RAM - and this is one of the mid-range devices. Although it is possible to bodge more RAM onto it, the result slower than 6502 and, bang-for-buck, about 10 times more expensive. Regardless, Raspberry Pi is fairly self-contained where software of dubious provenance can be installed with abandon, fiddly development environments can be constructed (for example, Python scripts to convert bitmaps into desired binary formats), programming hardware can be connected via USB and it is possible to backup everything in 8GB or less.
An alternative is to install all development software in a virtual machine. Firstly, it will keep the dubious malware somewhat contained. Secondly, it keeps the fiddly config in one blob. Thirdly, it provides undo for any failed software update. Fourthly, it allows Windows only software to run on other x86 systems. Unfortunately, I've had terrible experience using random chip programming protocols from virtual machine to USB. You may have better experience but definitely don't install endless software on a raw, critical desktop or server.