6502-ACE

AC6502
All-in-One Computer Experience
This is the ACE
One board, one computer, everything on it — including the keyboard. The 6502-ACE folds every function of the modular COB's card stack onto a single PCB: processor, memory, video, sound, storage, serial, clock, joysticks, and 67 mechanical keys soldered straight to the board. Nothing to fit, nothing to decide. Switch it on and start typing. It is the finished machine of the AC6502 family, built around the Western Design Center W65C02S — the fully-static CMOS descendant of the 1975 MOS 6502.
What is on the board
CPUWDC W65C02S at 1 MHz, jumper-selectable to 2 MHz
RAM32 KB SRAM (62256) + 512 KB banked SRAM (AS6C4008)
ROM32 KB EEPROM (28C256) — the whole BIOS
VideoPICO9918 PRO v2.0 running 6502-PICOVDP — VGA out, 40×24 text, 256 colors
SoundARMSID — MOS 6581 replacement, 3 voices, RCA out
StorageCompactFlash on the ACE CF Adapter (8-bit True IDE)
Serial65C51 ACIA + MAX238, DB-9, 19200 8-N-1
GPIO65C22 VIA — two 8-bit ports and two timers
ClockDS1511Y, battery-backed, with 256 bytes of NVRAM
Keyboard67 Cherry MX switches on the board, plus PS/2 (ATmega1284P, AB Controller)
SticksTwo Atari 2600-compatible joystick ports
Power5 V DC, 2–3 A, barrel jack
Two switches and a jumper
The power switch is the cold start. The small white reset button, just above ESC, is the warm one: BASIC starts again but memory is not cleared, so your program is still there afterwards and only its variables start over. That makes it the safe way out of anything that has run away.
PHI2 SELECT picks 1 or 2 MHz. The eight-way IO ENABLE DIP bank has one switch per I/O section — leave them all on; they are for fault-finding.
Memory map
RangeContents
$0000–$07FFZero page, stack, Kernal and BASIC buffers
$0800–$7FFFYour program, variables and strings (30 KB)
$8000–$9FFFI/O — eight 1 KB device slots
$A000–$BFFFKernal + jump table
$C000–$FEFFBASIC interpreter
$FF00–$FFF9Wozmon
$FFFA–$FFFFNMI, RESET and IRQ vectors
Did you know?
The entire operating system — Kernal, a full BASIC and the Apple I's Wozmon — fits in one 32 KB EEPROM. There is no character set in it: the letters on the screen are the video card's own.
The 6502-PICOVDP draws 256 colors out of 4,096, two layers that scroll on their own and 64 sprites — and still runs the text and Graphics I programs of the 1979 TMS9918A from the ColecoVision and the MSX.
The version the header prints is the whole ROM's: BIOS v2.0.

6502-ACE

AC6502
All-in-One Computer Experience
Switching on
The machine boots straight into BASIC. You get the logo, a header, a byte count, the cards it found, and the prompt — which is OK. Everything is typed there.
AC6502 BIOS v2.0 BASIC v2.0 30718 BYTES FREE RAM RTC CF SER VIA SID VDP OK
BASIC has a sheet of its own, and the whole guide is at acwright.github.io/6502-DOCS.
First things to type
Type thisWhat happens
PRINT "HELLO"Puts text on the screen
PRINT 6502*2Use it as a calculator — answers 13004
LISTShow the program in memory
RUNRun it
NEWThrow it away and start again
MEMFree bytes, what the machine found, and the current disk
Loading and saving
CommandWhat happens
DIRList the files on the CompactFlash card
LOAD "NAME"Load a program
SAVE "NAME"Save the one you have
DEL "NAME"Delete a file
DISK 3Switch to disk bank 3. The card holds 256 of them, 16 files each
Fun to try — no card needed
Endless name scroll — type
10 PRINT "ACE ";
20 GOTO 10
then RUN. Press ESC to stop it.
Random maze —
10 PRINT CHR$(47 + 45 * INT(RND(1) * 2));
20 GOTO 10
fills the screen with slashes that read as a maze.
Make some noise — VOL 15 then SOUND 1,440,50 plays a concert A for half a second. Voices are 1 to 3; volume 0 to 15.
Wiggle a joystick — PRINT JOY(1) reads 255 with nothing held, and drops a bit for each direction you push.
Wozmon easter egg — SYS 65280 lands you in a copy of the original Apple I monitor. Its prompt is a backslash; FF00.FF07 reads eight bytes. C000R takes you back to BASIC.
BASIC in one table
StatementPurpose
PRINTShow text or numbers
INPUT AAsk the person at the keyboard for a value
LET A=5Give a variable a value (LET optional)
IF…THENMake a decision
FOR…NEXTCounting loop — one NEXT per loop
GOTO / GOSUBJump to, or call, a line number
CLS / LOCATE / COLORClear the screen, move the cursor, color what prints next
PEEK / POKERead or write one byte of memory
SYS addr,a,x,yCall machine code with A, X and Y set, and come back
Handy keys
KeyDoes
ESCStops a running program. The one to remember
Ctrl + CThe same thing, if that is the habit you have
BackspaceRub out the last character
Reset buttonWarm restart — your program survives, its variables start over