Files
awesome-copilot/skills/legacy-circuit-mockups/references/emulator-6C62256.md

4.8 KiB
Raw Blame History

AS6C62256 (32K x 8 SRAM) Emulation Specification

A technical Markdown specification for emulating the AS6C62256 / 62256-family static RAM, suitable for 6502-family emulators, SBC simulators, and memory subsystem modeling.


1. Scope

This document specifies functional behavior for emulating:

  • Alliance Memory AS6C62256
  • Compatible 62256 (32K x 8) SRAM devices

Out of scope:

  • Analog electrical timing margins
  • Bus contention and signal rise/fall times
  • Power consumption characteristics

2. Chip Overview

Core Characteristics

Feature Value
Memory Type Static RAM (SRAM)
Capacity 32,768 bytes (32 KB)
Data Width 8-bit
Address Width 15-bit (A0-A14)
Access Type Asynchronous
Supply Voltage 5 V (typical)

3. External Signals (Logical Model)

Signal Direction Purpose
A0-A14 Input Address bus
D0-D7 I/O Data bus
CE# Input Chip enable (active low)
OE# Input Output enable (active low)
WE# Input Write enable (active low)

# indicates active-low signals.


4. Address Space Mapping

  • Address range: 0x0000-0x7FFF
  • Address lines select one byte per address

Typical 6502 System Mapping Example

CPU Address Range Device
$0000-$7FFF AS6C62256 SRAM
$8000-$FFFF ROM / EEPROM

5. Read and Write Behavior

Read Cycle (Logical)

Conditions:

  • CE# = 0
  • OE# = 0
  • WE# = 1

Behavior:

D[7:0]  memory[A]

If OE# = 1 or CE# = 1, data bus is high-impedance.


Write Cycle (Logical)

Conditions:

  • CE# = 0
  • WE# = 0

Behavior:

memory[A]  D[7:0]
  • OE# is ignored during writes
  • Write occurs on active WE#

6. Control Signal Priority

CE# WE# OE# Result
1 X X Disabled (Hi-Z)
0 0 X Write
0 1 0 Read
0 1 1 Hi-Z

7. Emulator Interface Requirements

An emulator must expose:

read(address)  -> byte
write(address, byte)

Internal storage:

uint8_t ram[32768]

Address masking:

address = address & 0x7FFF

8. Timing Model (Abstracted)

Emulation Levels

Level Description
Functional Instantaneous access
Cycle-based Access per CPU cycle
Cycle-accurate Honors enable transitions

For most systems, functional emulation is sufficient.


9. Power and Data Retention

  • SRAM contents persist as long as power is applied
  • Emulator shall retain contents until explicitly reset

Reset Behavior

  • No automatic clearing on reset
  • Memory contents undefined unless initialized

10. Bus Contention and Hi-Z Modeling (Optional)

Optional advanced behavior:

  • Track when SRAM drives the data bus
  • Detect illegal simultaneous writes

Most emulators may ignore Hi-Z state.


11. Error Conditions

Condition Emulator Response
Out-of-range address Mask or ignore
Read when disabled Return last bus value or 0xFF
Write when disabled Ignore write

12. Integration with 6502 Emulator

CPU memory access
  address decode
  if in SRAM range:
      AS6C62256.read/write
  • SRAM access is typically single-cycle
  • No wait states required

13. Testing and Validation

Basic Tests

  • Write/read patterns
  • Boundary addresses ($0000, $7FFF)
  • Randomized memory tests

Validation Checklist

  • Writes persist
  • Reads return correct values
  • Address wrapping correct

14. Common Mistakes

Mistake Result
Clearing RAM on reset Breaks software assumptions
Wrong address mask Mirrored memory errors
Treating as ROM Writes ignored


Document Scope: Software emulation of AS6C62256 SRAM Audience: Emulator developers, retro SBC designers Status: Stable technical reference