Let’s go to the following part of the schematic. Today it is the CPU, the SRAM and the joysticks. Here it is:
“Agat-7” has 96Kb of RAM, so we need 128Kb SRAM chip. We can use 128K x 8bit or 64K x 16bit chips. The second option requires 9 more FPGA pins to connect but it is more suitable for our needs. The 1024х768х65Hz output requires quite a lot amount of data to be read from SRAM inbetween of CPU use of bus. It is possible to reach it with 10ns SRAM by transmitting 2 bytes for each cycle which is achievable with the second type of SRAM.
CE and OE inputs can be tied to ground, because we are not going to use them.
6502 CPU requires 5V power supply and its output that I’ve measured is 4.1V which is a bit high for FPGA. I used SN74LVC245A buffers to shift levels. They are quite cheap – about $0.25 in retail. The direction of level shift is switched by R/W output of CPU for data bus and tied to ground for the rest and fixed in the direction from CPU to FPGA. Signals from FPGA have 3.2V level and can be used as is. One of the buffers has some spare pins, which I’ve used for other 5V parts of the computer, i.e. a keyboard and joystick.
Joystick circuit is also located on this sheet. In “Agat-7” it was done with a timer KR1006VI1, which is the Soviet analog of the popular NE555 chip. It connects as a monostable multivibrator and an output pulse lenght depends of the position if a potentiometer in the joystick. The length is measured by the computer and determines the position. Exactly the same idea was used in “Apple ][” computer and i can assume that it was copied from there.
For sake of compartibility I use the same circuit in my design. To cut some price and save some PCB space I use NE556 chip which consists of two NE555 in one case.
The request pulse comes straight from FPGA. The output pulse goes from the level shifter chip, which is not nesessary, because according to the datasheet NE556 output level will be about 2.4V.
Joystick buttons are connected to a level shifter as well.
SLOT output is connected to the extension slot on the board.
That’s all for today. Please, let me know if you discover any mistakes in the design. Stay tuned!