Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| dev:boards:neutronpc32 [2025/01/15 02:28] – Revision from 2025-01-15 | dev:boards:neutronpc32 [2026/06/15 13:25] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | /* Imported from Wayback Machine | ||
| + | | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | |||
| + | ====== Neutron PC32 ====== | ||
| + | |||
| + | The Neutron PC32 (Portable Computer 32K) is a work-in-process portable 65C02 homebrew computer that runs off either a 9V battery or a DC power supply. | ||
| + | |||
| + | ===== Hardware ===== | ||
| + | |||
| + | At the heart of the PC32 is a CMOS 6502 from Western Design Center, the W65C02S6TPG-14. This is the PDIP-40 variant that can run at up to 14 MHz. However, we will not be running the microprocessor at that speed. Instead, the aim is to run it at 8 MHz, falling back to 4 MHz or even 2 MHz if necessary. | ||
| + | |||
| + | The “32” in “PC32” stands for the 32 kibibytes (1,024 bytes = kibibyte; 1,000 bytes = kilobyte) of static random access memory (or SRAM) that the system uses as working memory. The specific chip that is planned for use will be the AS6C62256A-70PCN from Alliance Memory, with an access time of 70 nanoseconds (the minimum access time for a W65C02S running at 8 MHz). However it has recently been tagged as EOL, and all the other suitable parts are roughly 10 times the price. | ||
| + | |||
| + | After the 32 kibibytes of working memory, we have 8 kibibytes of memory-mapped input and output hardware. This includes two W65C22S6TPG-14 Versatile Interface Adapters (VIAs), a W65C51N6TPG-14 Asynchronous Communication Interface Adapter (ACIA), the display, the sound hardware, the keyboard controller, etc. | ||
| + | |||
| + | After the MMIO, we have three 8 kibibyte areas for ROMs. The first two 8K areas are banked – using four pins each off of one of the VIAs, these 8K sections of the memory map actually contain up to 128 kibibytes of code. The first 8K area is for up to 128 kibibytes of extra ROM, or xROM, added to the computer via the xCard slot. The xCard slot can also add additional MMIO devices. After the xROM, we have the 128 kibibyte program ROM, or pROM, which contains programs like BASIC. Finally, we have the 8 kibibyte system ROM, or sROM. The sROM is an AT28C64B EEPROM chip, while the pROM is an AT27C010 OTPROM chip. | ||
| + | |||
| + | Now onto the MMIO in more detail: All MMIO devices are located from hex 8000 to hex 9FFF. Addresses hex 8000 to hex 801F are for the VIAs, while addresses hex 8020 through hex 8029 are for the ACIA, display, speaker, and keyboard. (More specifically, | ||
| + | |||
| + | VIA0: | ||
| + | |||
| + | Port B: xROM & pROM Banking | ||
| + | |||
| + | Port A: Detect Pins, Character Size Select & Check, and Commodore IEC Interface | ||
| + | |||
| + | VIA1: | ||
| + | |||
| + | Port B: Parallel Port Output (MOSI) | ||
| + | |||
| + | Port A: Parallel Port Input (MISO) | ||
| + | |||
| + | The display interface is dependent on the screen used. Here, a Newhaven Display NHD-240128WG-ATFH-VZ# | ||
| + | |||
| + | The keyboard interface is being accomplished using an Atmel AVR microcontroller for the purpose of simplicity. Specifically, | ||
| + | |||
| + | Finally, the speaker. This will be connected with an 8-bit 1-channel DAC (DAC08CPZ). The processor can then pump bytes into the DAC to create sounds which are then played by the speaker. The exact speaker being used is currently unknown, but it will not be a piezo speaker. I want it to actually sound half decent. | ||
| + | |||
| + | ===== Software ===== | ||
| + | |||
| + | The system ROM contains… well, I'm not sure I would call it an operating system, it's just a menu, interrupt service routines, and a bunch of callable subroutines. The program ROM, as you might guess, contains a bunch of built-in programs. Specifically, | ||
