nynyny7
Dhrystone Benchmark. History, Analysis, "Scores" and Recommendations (2002)[pdf]
How to reverse engineer an analog chip: the TDA7000 FM radio receiver
AWR6843AOP – Single-chip 60GHz radar sensor with antenna on package, DSP and MCU
Non-intrusive instruction tracing for Raspberry Pi RP2350
Proprietary silicon ICs and dubious marketing claims? Let's fight those [video]
EstyJS 2.0 (emulator for the Atari ST, written in 100% pure JavaScript)
SidecarT – Atari ST/STE/Mega Cartridge Emulator on Raspberry Pi Pico Steroids
mov edx, print
... in the example.
People old enough to remember the late 1990s / early 2000s might recall that back then it was popular, too, to hook up an external MP3 decoder, e.g., to the parallel port; so that the PC's CPU would not be at 100% just for playing MP3 music.
ET4000 ISA graphics card: Undocumented register / Newer data sheet available?
As for why Atari redesigned the board so many times: no idea.
PicoWifi ‒ An inexpensive and easy-to-use WiFi dongle for Ataris with USB
BigPEmu – Atari Jaguar Emulator
An Intro to x86_64 Reverse Engineering
But the "Easter egg" function discussed in this HN thread is not inside any code loaded/executed from flash. It is inside the boot ROM (as I've repeatedly stated); and that is indeed read-only memory, i.e., it cannot be modified except by manufacturing a new chip revision.
https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.p...
"A 16kB read-only memory (ROM) is at address 0x00000000. The ROM contents are fixed at the time the silicon is manufactured."
Also returns 42.
06: 00 B5 push {lr}
… as the start of this weird code(?) sequence. It pushes the link register (i.e., the return address to the caller). 08: 42 40 eors r2, r0
0a: 00 2A cmp r2, #0
This XORs R2 and R0 and compares the result against zero. But that’s just a decoy, as we’ll see. 0c: 00 F0 02 F8 bl #0x14
This calls into… 14: 70 46 mov r0, lr
16: 00 47 bx r0
… which moves the return address to R0, and then returns. Using the addresses in this disassembly (not in the actual boot ROM), the return address is 0x10; but LR and, therefore, R0 will actually contain 0x11 because the LSB signifies Thumb mode.None of the previous three instructions modifies the flags. (I checked in the ARM reference manual.) Thus, “BHS” (branch unsigned higher or same) uses the flags from the “CMP R2,#0” above. _Every_ value of R2 is higher (in the unsigned sense) or same as 0. Hence, the following branch is always taken:
10: F6 D2 bhs #0
… to… 00: 11 38 subs r0, #0x11
R0 contained 0x11 relative to the start of this code sequence. (The absolute address in boot ROM is of course different.) Now, R0 points to the start of the code sequence. 02: C0 7A ldrb r0, [r0, #0xb]
This loads the byte at offset 0xB in this code sequence. Look above, it is 0x2A. 04: 00 BD pop {pc}
This returns to the caller, using the LR pushed at the beginning. The return value in R0 is 0x2A.0x2A is 42 (decimal)! Could this be an Easter egg; a very obfuscated way of returning 42, the Answer to the Ultimate Question of Life, the Universe, and Everything? (Remember that the Raspberry design team is from Britain, same as Douglas Adams.)