Skip to content

All of the code and experiments for the XPL-32 Homebrew 6502 Laptop. Licensed under GNU GPL V3.

License

Notifications You must be signed in to change notification settings

liaminventions/XPL-32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XPL-32

Assemble ROM

The XPL-32 is a homebrew 8-bit 6502 laptop, with four 48-pin expansion slots, and a 22-pin I/O port.

XPL-32 stands for:

eXpandable Personal Laptop with 32k ram

Here I will post hardware updates to the XPL and more.

Also, be sure to check info.txt to know if there are any issues when i code.

Hardware Overview

CPU

A 6502, of course. A W65C02 to be exact.

Datasheet

I/O

For the I/O, I've got a W65C22 VIA. Port A, Port B and the handshake bits connect to the I/O slot. However CA2 is connected to the Video Switch Relay (VSR) W65C22 Datasheet

Video

The XPL-32 has an expandable monochrome terminal display that uses a 6551 ACIA at $8000 and two arduinos. This is the video and keyboard processer. (not made by me) The video can be switched to the composite input EXTVID (on the expansion port) by toggling the VSR. (a relay that switches beetween native video and EXTVID.)

So far, for Video expansions, I've made a TMS9918a one. (the same video processer used in the TI-99/4a and the MSX)

Sound

There is a 6581 SID at $B800 ($D400 in the c64) onboard with its potentiometer (POTX and POTY) and external sound (EXTSND) inputs on the expansion port. I programmed support to convert most SID files, as well.

Memory Map

Tools I Use

PCB Design

I currently use EAGLE

3D Modeling

Fusion 360

Coding

VIM, NVIM/LunarVIM or vscode for code editing. xa, ca65 (from cc65), and vasm for assembly.

I have "xa 6502 cross assembler" syntax highlighting in vim, and the "vasm" extension in vscode.

most source files are .s, but some are .a65 or .asm

Debugging

I use Pulseview with this logic analyzer (the 2018 variant)

It was an absolute pain to set up...

Also, the SDcard-SPI decoder in libsigrokdecode was completly broken for me. (it always expected a CRC...) My fix was to make my own custom version of the decoder

The custom version is still slightly broken, but I am working on it.

I also use decode6502 by hoglet