Memory may not have been quite so much of an issue as people were
making it out to be. Keep in mind that the base version of the
Altair 8800 (kit price $439) shipped with a "1024 word" (by which they
mean byte) memory board populated with only 256 bytes of RAM. If you
were willing to work with less, and in particular design your computer
to use RAM more efficiently than the 8080 did, you could build a
working system that could run basic, small programs. (I wonder how
many of the original Altair owners actually toggled in programs much
larger than a few dozen bytes, anyway?)
Random Access Memory
One example of such a design is given by Hilary D Jones in "Building
A Computer from Scratch" (BYTE magazine Vol 2 No 11,
Nov. 1977). It describes a small but complete system built from
entirely from TTL parts costing about $65 at the time.
The memory used TI SN7489 64-bit RAM chips (offering 16×4-bit
registers); these were available by 1973. The configuration described
uses eight of these, giving 64 bytes of memory (the full address range
of the computer).
All rest of the parts appear to be standard older ones (e.g., the
SN74181 ALU slice) that were available by 1973 as well, except
probably the 74188 PROMs used for the microcontrol instruction store.
That could have been worked around by instead hardwiring the
instruction logic. That would probably not have been so difficult,
given that the computer had only four instructions!
And this limited instruction set shows how appropriate design can save
on RAM. Unlike the 8080 (and even the 4004) which used multi-byte
instructions, all instructions for this CPU are single-byte:
00nnnnnn WIO N Wait for input to location N, displaying
current contents of N while waiting.
01nnnnnn ADD N Add data in location N to accumulator.
10nnnnnn STN N Store negative of accumulator in location N.
11nnnnnn JGE N Jump to location N if accumulator is greater
than or equal to zero.
Writing programs with this instruction set took some cleverness, but
it sure is compact!
Shift Registers
Another popular form of memory in the early 1970s was shift registers,
which offered more capacity than early random-access memory at a cheaper
price per bit. The original Type 1 Datapoint 2200, introduced in
1970, is an example of a computer that used them for main RAM (2 KB base,
expandable to 8 KB), along with a CPU made from around 100 TTL components.
An example of homebrew use of shift registers was the Apple 1 video
display, which used six 2504 1 kilobit shift registers to store
the 6-bit character codes for each location on a 40×24 screen (along with a
seventh to store the cursor position). Footnote 1 of that article provides
early pricing information: $11.05 (qty. 100) in 1970.
RAM, however, was soon to fall far below shift registers in price. By the
end of 1975 you could find both in the back pages of Byte,
with a Signetics 2533 1024-bit shift register (second-sourced
by AMD) going for $7.95 (qty. 1), as compared to a 2102 1K×1
static RAM going for $2.95 (qty. 1).
Difficulty
Even at the time, CPUs seemed to be considered by some to be a bit of
a black art. Jones says that it's not really so difficult:
...the design of a computer from the ground plane up is still
generally regarded as an art that only the foolhardy would
unkertake. In reality, though, the job is not nearly as mysterious
as it seems. For proof I offer the fact that when I begain this
project I had no design experience with TTL (or experience with any
form of electronics design for that matter).