/* Imported from Wayback Machine Original URL : https://retrobrewcomputers.org/doku.php?id=builderpages:plasmo:dualport6502:home Snapshot date: 2024-11-06 Generator : wayback-archiver */ ==== Table of Contents ==== [[#coprocessor_using_dual_port_ram|6502 Coprocessor using Dual Port RAM]] [[#introduction|Introduction]] [[#features|Features]] [[#theory_of_operation|Theory of Operation]] [[#design_information|Design Information]] [[#projects|Projects]] [[#x64_oled_display|128x64 OLED display]] ====== 6502 Coprocessor using Dual Port RAM ====== ===== Introduction ===== This design is very similar to Z80 version of [[builderpages:plasmo:dpram|Z80 coprocessor with dual port RAM]]. See on-line discussion [[http://forum.6502.org/viewtopic.php?f=4&t=7857|here]]. [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=e3f954&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dualport6502/dsc_74931126_f.jpg|{{https://retrobrewcomputers.org/lib/exe/fetch.php?w=600&h=514&tok=07c698&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdualport6502%2Fdsc_74931126_f.jpg?600x514|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dualport6502_dsc_74931126_f.jpg}}]] ===== Features ===== 4K dual port RAM 64-macrocell EPM7064S CPLD W65C02 processor Prototype area RC6502 bus interface ===== Theory of Operation ===== The basic idea is two 6502 sharing a 4K dual port RAM. The main 6502 processor set aside 4K RAM space for the dual port RAM, but the coprocessor only has 4K for program and data. an under-utilized CPLD provides the glue logic between these two processors. There are plenty of logic left in the CPLD to add more features, whatever those may be.\\ \\ At reset the coprocessor is in reset waiting main processor to write to a magic location to release the reset. The 4K dual port RAM is mapped to both coprocessor's top 4K (reset, interrupt, NMI vectors) as well as the bottom 4K (zero page, stack). The main processor first writes reset vector, interrupt vectors to top of 4K and whatever application program; write to a magic location to release the reset; and communicate to coprocessor via dual port RAM and interrupts.\\ \\ The board is not standalone; it is meant to plug into a RC6502 style connector as shown in the picture. ===== Design Information ===== [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dualport6502:dpram65_r0_scm.pdf|Schematic]] [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dualport6502:dpram65_gerber_rev0.zip|Gerber photoplots]] [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:dualport6502:basic_working_dual_port_ram.zip|CPLD base design]] ===== Projects ===== ==== 128x64 OLED display ==== Using the coprocessor to [[builderpages:plasmo:dualport6502:bitbangi2c|bit-bang I2C bus]] driving a 128×64 OLED display. [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=b81f2e&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/dualport6502/dsc_75021201.jpg|{{https://retrobrewcomputers.org/lib/exe/fetch.php?w=300&h=184&tok=19e79b&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Fdualport6502%2Fdsc_75021201.jpg?300x184|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_dualport6502_dsc_75021201.jpg}}]]