[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/vr/ - Retro Games

Search:


View post   

>> No.2463535 [View]
File: 12 KB, 420x332, shittyConsole.png [View same] [iqdb] [saucenao] [google]
2463535

>>2462460
>You basically have a pointer to talk to other chips

More or less. You'd be surprised at how simple computers really are. The key is to understand that the majority of pins on a CPU are one of two things: address pins or data pins.

For instance, the 65816 has 24 address pins and 8 data pins. The 24 address pins, labeled A0 through A23 form a 24-bit number. These pins are used to address the full 24-bit address space of the CPU, while the data pins are used to read and or write data at the address specified. Think of memory as one big long array 2^24=16MiB bytes long. Depending on how you wire up the CPU to things, different addresses access different chips.

The easiest way to wire up the CPU would be to hook it up directly to 16MiB of RAM, each CPU address ($000000-$FFFFFF) directly 'mapping' to each RAM address ($000000-$FFFFFF). Of course when you power up your computer, RAM is cleared to zero, so it would be difficult to do anything non-trivial because you don't have a program!

A more complicated way to wire up the CPU would be to have the first 8MiB ($000000-$7FFFFF) wired to a ROM (with addresses $000000-$7FFFFF), and the higher 8MiB ($7FFFFF-$FFFFFF) wired to a RAM (with addresses $000000-$7FFFFF).

What I'm doing is making a 'memory map'. I'm assigning different CPU addresses to different types of memory. Notice that in the last example when I put address $800000 on the CPU address pins, the computer access RAM address $000000.

Other types of memories can be mapped to CPU addresses, including things like registers in video and audio DSP chips. Registers are kinda like single byte RAM addresses. This technique is called 'memory mapped I/O'.

Refer to my picture to see how one would wire up a shitty console with a 256 byte address space. The AND gates (with inverting bubble inputs) seperate the address space into 4 parts shared equally in this case between a ROM, RAM, Picture Processing Unit, and Audio Processing Unit.

Navigation
View posts[+24][+48][+96]