Uploaded April 2024 | Updated September 2026, 5 hours ago
Today we write some #8bit (and 64 bit code) to make a #C64 and a #ZX Spectrum aka #Speccy count 32 bits. Then we write the same program on a modern ARM-M1 and we see what progress there's been made in 50 years in CPU design.
This is not intended as a “drag race”, so keep your shirt on 😜its merely educational to show how ADC works and how fast CPUs have gotten.
C64 code: github.com/rdoetjes/tuts/tree/main/asm/c64/count_32
There is both the with the tradition:
- adc #0 (and no clc for the subsequent bytes)
- the way I demonstrated in the video with a clc followed by adc #1
- the ZP version with inc as suggested by viewer @ddtww5372 as I had totally forgotten that $fb and $fc were also valid ZP addresses. In My memory we just had $fd and $fe
Z80 code: github.com/rdoetjes/tuts/tree/main/zx/32bit
ARM code: github.com/rdoetjes/tuts/tree/main/asm/arm64_m1/32bit
Chapters:
00:00 Introduction
02:07 C64 code
06:15 Running the C64 count
08:05 Z80 code
11:11 Running the Z80 count
13:24 ARM 64 code
16:05 Running ARM count
16:35 Conclusion
Today we write some #8bit (and 64 bit code) to make a #C64 and a #ZX Spectrum aka #Speccy count 32 bits. Then we write the same program on a modern ARM-M1 and we see what progress there's been made in 50 years in CPU design.
This is not intended as a “drag race”, so keep your shirt on 😜its merely educational to show how ADC works and how fast CPUs have gotten.
C64 code: github.com/rdoetjes/tuts/tree/main/asm/c64/count_32
There is both the with the tradition:
- adc #0 (and no clc for the subsequent bytes)
- the way I demonstrated in the video with a clc followed by adc #1
- the ZP version with inc as suggested by viewer @ddtww5372 as I had totally forgotten that $fb and $fc were also valid ZP addresses. In My memory we just had $fd and $fe
Z80 code: github.com/rdoetjes/tuts/tree/main/zx/32bit
ARM code: github.com/rdoetjes/tuts/tree/main/asm/arm64_m1/32bit
Chapters:
00:00 Introduction
02:07 C64 code
06:15 Running the C64 count
08:05 Z80 code
11:11 Running the Z80 count
13:24 ARM 64 code
16:05 Running ARM count
16:35 Conclusion










