June 16, 2025
Initial Boilerplate
Added function to parse memory modes and set up the current instructions to use that for parsing memory modes. Also worked on basic boiler plates for various load instructions such as LDA(load accumulator).
I added two shift instructions which are ASL and ROL(bitshift left and right respectively).
I worked on adding the different boolean operators which is a lot harder than you might think. I need to check for the addressing mode on each operation and set the two operands for the operation before it even happens which is a huge pain. I made one bool_ops function which will do a different boolean operation depending on the params passed in and then added wrapper functions which will just call it with the correct params for that operation.
I did some more research into the addressing modes of the 6502 and built a simple type for it. Right now, progress is a bit slow since I am still getting used to the interesting quirks of this microprocessor.
Did a bit more research on the 6502 to learn about how it works and whatnot. It's actually a really fascinating processor with some very interesting tradeoffs that paid off well for the time period and made it as interesting as it is today. The stack is actually only 256 bytes which meant it can't be used as it is today. There is also a really cool indexing system which can allow for really easy array operations and is honestly genius for the time period.
Added a bit more of the basic boilerplate needed for the project such as the status flags and the basic structure for the vm.
Initialized the project and set up the build system, README, as well as basic boilerplate with 6502's instructions.
An emulator for the MOS Technology 6502 processor.
This was widely regarded as a great move by everyone.