I'm starting to learn how to program in assembly (z80) on the Amstrad CPC
computer. As an high level developper i find it pretty fun and i learn a lot of
things about computer and CPU architecture.
...

Machine language (and Assembly language) don't have the concept of data types, so if you want to add an int and a float variables in Assembly, you have to use the appropriate Assembly instruction that ...

6502 assembly is a language meant for humans to compile it themselves, not compilers. Its an older Assembly that powered the olden days of computing and consoles such as the NES and Atari 2600. I want ...

So far, I have gotten by with using the BIOS draw-pixel routine here: http://stanislavs.org/helppc/int_10-c.html
This works of course, but I can't imagine that commercial games used this BIOS call as ...

For those of you retro developers out there, I am having a hard time figuring out how exactly to select the "darker" color palette in 320x200 CGA mode. Here's what I have so far:
setup_cga_graphics:
...

Code written for the Commodore 64 sometimes uses the PHX opcode, which should push X onto the stack. There also are plx, phy, ply. These were apparently added on the CMOS versions of the 6502; very ...

I am currently learning about 6502 assembly. One of the documents I am learning about it from is a super mario bros. disassembly document. When I was reading the code I noticed part of the code had ...

Much like the VAX, the 6809 and 6309 have a preponderance of indirect addressing modes (in VAX parlance, "deferred"), though neither go so far as to include a VAX-like doubly-indirect mode.
To what ...

Why did early versions of the 65C816 CPU need a suffixed NOP to every SEP and REP instruction? I saw comments in some source code pointing at this. Looking around in official WDC's documentation and ...

On a recent trip to the London Science Museum I saw Babbage’s Analytical Engine.
Apparently this had an ALU (or equivalent). I can build an ALU out of logic gates but I can’t conceptualise how to do ...

On x86 the first four general-purpose registers are named AX, CX, DX, BX. It would be quite intuitive if their indices (those used in instruction encoding) were in alphabetical order, but instead of ...

The amount of tutorials, youtube videos, scanned books on C64 programming is overwhelming.
What materials would you recommend -- and, importantly, in what order! -- to build a path to programming my ...

I'm able to use NASM to assemble simple COM files from my modern Linux computer, but how can I create a DOS EXE file while still in Linux?
Specifically, I am interested in a solution that will target ...

I am currently playing around with pointer and indirect addressing on the C64 and I encountered a problem with the ADC opcode.
I am trying to increment a number repeatedly and when it overflows (goes ...