Hi everyone! This is my first post in the 6502.org forum.
I got my start in homebuilt computers through the famous 1802-based COSMAC ELF. I've added RS-232, a hex keypad, and a 16x16 LED display to my ELF so far. Eventually, I plan to add a 128x64 LCD so I can play CHIP-8 games
Pictures of my ELF can be seen here:
https://www.flickr.com/photos/80187190@N05/I am posting here because I'm interested in taking up an idea I have had for a long time - building a portable 6502 machine running FORTH (perhaps FIG-Forth or Q-Forth). It would be great to use an LCD/keyboard for primary interaction with the computer and a UART for uploading/downloading of data or programs. Such a machine could be used to control or measure lots of different things (e.g., wireless interfaces, musical keyboards via MIDI, various I2C sensors or EEPROMs). The Rockwell R6502P and R6522P sitting in my parts box will thus hopefully find some use
I plan to base most of my design on Daryl Rictor's SBC-2 (
http://sbc.rictor.org/sch2.html). I will construct the circuit using my favorite construction technique - wire wrapping. It would have the following specs:
Power:
1A DC passed through LM7805 with 1A rating
Processor and clock:
Use NMOS R6502P
Use 1.8432 MHz TTL full can oscillator for clock
Divide frequency in 2 with 74LS74 (or 74HCT74?) for R6502P (thus 921.6 kHz clock)
Memory:
X28C256 - 32 KB EEPROM mapped from 8000-FFFFh
62256 - 32 KB SRAM mapped from 0000-7EFFh (minus 256 bytes for I/O)
Long term storage in 32 MB CF card (access via 8-bit CF interface)
Map CF to 7F00-7F0F.
Parallel and Serial I/O:
R6522P VIA mapped to 7F50-7F5F (VIA1 in Daryl's design)
6551 ACIA running at 1.8432 MHz mapped to 7F70-7F7F; MAX233 for level shifting
Input: PS/2 interface using two pins of R6522P VIA
Output: 40x4 HD44780-based LCD mapped to 7F00
Address decoding ICs (Daryl's design): 74LS00 + 74LS30 NAND gates for /MRD and /MWR + ROM, RAM, and I/O chip select
74LS138 for further I/O decoding
Does this seem like a reasonable project for a relative novice? The hardware doesn't seem too difficult, and I'm very comfortable with wire wrapping. The hard part seems to be the software.
I need to set up the Forth implementation to use the LCD as its output interface and a PS/2 keyboard as its input using associated 6502 subroutines, but I unfortunately have little experience with 6502 assembly (I know I love 1802 assembly, though). I did see some routines for using a HD44780-based LCD display here:
http://6502.org/mini-projects/optrexlcd/lcd.htm. I also saw that Daryl Rictor developed some subroutines for interfacing a PS/2 keyboard to two pins of a VIA:
http://sbc.rictor.org/pckb6522.htmlCould these be integrated into FIG Forth for the 6502, for example?
I would greatly appreciate it if anyone could provide some tips about construction or Forth implementation in my planned project.
Thanks,
Jon