Good afternoon, friends. Thank you for your interest in my design.
This is my first project.
In general, it was conceived as a small standalone desktop device that does not take up much space on the table, without the need to connect an external display, for experiments with connecting various programmable interface chips for their study, testing, debugging, with the ability to write and run programs on the device itself
Now, let's talk about the project in order:
Specifications and hardware:
Processor - currently a 65802 running at 4 MHz. So, my little guy is 16-bit.
Memory:
ROM - 32K. I installed non-volatile RAM while debugging the software, but it turned out to be very convenient, so I'm using it for now.
I made it writeable by setting a jumper. Some software can be overwritten.
I created a PC HEX file loader via the RS232. It's called by the non-maskable interrupt button and is immediately ready to load a file.
32K of RAM is also implemented on a non-volatile chip.
Memory distribution: the first 32K is RAM, then 256 bytes are for internal I/O ports, and 256 bytes are I/O ports for devices connected via an external connector.
The remaining space is ROM.
There is a real time clock chip on the board DS1286.
Display:
The 4-inch 256x160 LCD graphic display on the ST75256 chip with a 6x8 font provides 42 characters per line (20 lines).
It features hardware vertical scrolling. It is connected via a parallel interface directly to the processor bus.
Keyboard:
PS/2 or USB keyboards without an internal hub are supported. The controller is based on a PIC16F684 chip.
Input/Output:
2 VIA R65P22 - one for connecting a keyboard and a free port (reserved for internal use or connecting an ASCII display) plus the ability to generate internal interrupts using a timer. The second VIA has all ports routed to an external connector for connecting external devices.
1 8255 chip - all three ports routed to an external connector.
1 ACIA MC68B50 for RS232
expansion connector for connecting external devices.
software in ROM:
WozMon
Krussader 1.3
EhBasic
Hex Loader - for load soft in RAM from PC.
Expansion boards that I was able to create and launch:
HDD IDE interface Lee Davison's
http://retro.hansotten.nl/6502-sbc/lee- ... e-circuit/ - It's simple and works great. I slightly modified the GAL firmware to suit my project.
SPI and I2C board:
I2C on PCF8584
SPI on ATF1504 based on materials Daryl's Rictor
https://sbc.rictor.org/65spi2.html - It's simple and works great.
Display card with TV-out:
made on a chip PPU for NES
I made a text video driver with csi support and hardware scrolling, but I didn't like the image quality, low resolution, and the need to update the screen in 256 byte blocks, one per interrupt, so I put it off for now.
It works quite well, though.
PS/2 mouse interface:
The interface is based on a simple Kempston mouse interface circuit on an Attiny 2313. I used it on a ZX Spectrum, and it worked well with the 6502.
I'm currently looking to create a file system for storing files and a small disk operating system. I've even started writing my own very simple command line interface. But I'm still unsure. Should I use FAT as the file system or create my own, more suited to modest resources? I have some ideas. It could be something similar to FAT, but with some limitations and modifications (for example, file names 8 characters long including the extension, single-sector directory file table stored separately from descriptions for quick searching, etc.)...