Intel 4040
The Intel 4040, introduced in 1974, is the successor of Intel 4004. From a programming perspective, the new microprocessor is very similar to the Intel 4004, with several additions: interrupts, halt/stop, extended program stack, two register sets selectable via an index register. New supporting ICs were also introduced.
Main Characteristics
- 4 pins for Data, Address, Instructions, and I/O (D0,D1,D2,D3)
- 12-bit addresses, 8-bit instructions, and 4-bit data words (sent over multiple clock cycles on the 4 data pins)
- 4 pins for RAM bank selection (CM-RAM)
- 2 pins for ROM bank selection (CM-ROM)
- Separate program and data storage (different memory areas)
- 740KHz maximum clock rate
- Pins for external hardware interrupt (INT) and interrupt acknowledge (INT ACK)
- From the CPU Datasheet: "The CPU can directly address 4K 8-bit instruction words or 8K with a bank switch. 7 levels of subroutine nesting … and 24 index registers."
- 24 4-bit registers (grouped in 2 banks: 16+8), 1 accumulator, address stack (PC+7 levels), register bank index
- 60 instructions in total: 46 instructions from Intel 4004 (41 8-bits instructions + 5 16-bits instructions) + 14 new instructions (8-bits)
- Similar to the 4004, it uses big-endian storage (a nice discussion about this topic is here )
Java System Simulator
- Intel 4040 CPU simulation implementation in Java here
- Intellec 4 mod 40 system simulations here
- Details about the Intel4040 virtual device here