Before semiconductor memory, from around 1955 to the mid 1970’s computers used magnetic core memory. This required use of a little magnetic ring for each bit (binary digit) of information. Wires threaded through the rings were used to set the magnetic state of the rings, to clear and to read off the state (1 or 0) of each ring.
When I started training in electrical/electronic engineering I recall seeing examples of core memory in cabinets (like trophy cabinets) in the corridor at the college.
Over the years the memory was miniaturised to a point where manufacturing required the wires to be threaded through the rings by workers using microscopes. The state of the art enabled densities of up to 32 kilobits per cubic foot. Magnetic core memory like that shown in the image above was read write memory.
For applications that required a computer program to be held in a read only memory there was core rope memory. A notable example of core rope memory use was the guidance computer used by the Apollo missions.
The core rope memory was more densely packed and required each bit to be threaded as a 1 or a 0.
This MIT video includes a tour of the construction of the Apollo guidance computer where you can see the incredible effort that was required to produce the computer and its rope memory modules.