<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.davebiz.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dave</id>
		<title>Davebiz Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.davebiz.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dave"/>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/Special:Contributions/Dave"/>
		<updated>2026-04-16T18:57:38Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=211</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=211"/>
				<updated>2021-10-27T08:36:32Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of January 2021 the CoCo3FPGA group is comprised of over 425 members. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''”[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
The DE1 has 10 red LEDs labeled LEDR0-9.  These LEDs show status as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LEDR0                FDD Select 0&lt;br /&gt;
LEDR1                FDD Select 1&lt;br /&gt;
LEDR2                FDD Select 2&lt;br /&gt;
LEDR3                FDD Select 3&lt;br /&gt;
LEDR4                SD Card Write Protected&lt;br /&gt;
LEDR5                SD Card Inserted&lt;br /&gt;
LEDR6                CoCo3FPGA in Reset&lt;br /&gt;
LEDR7                Keyboard Shift&lt;br /&gt;
LEDR8                Address A19&lt;br /&gt;
LEDR9                Address A18&lt;br /&gt;
&lt;br /&gt;
The DE1 has 8 green LEDs labeled LEDG0-9. These LEDs show status as:&lt;br /&gt;
&lt;br /&gt;
LEDG0                DE1 SRAM Access&lt;br /&gt;
LEDG1                Analog board SRAM0 Access&lt;br /&gt;
LEDG2                Analog board SRAM1 Access&lt;br /&gt;
LEDG3                Flash ROM Access &lt;br /&gt;
LEDG4                SDRAM Access&lt;br /&gt;
LEDG5                WiFi Access&lt;br /&gt;
LEDG6                SD Card activity&lt;br /&gt;
LEDG7                RS232 Pak activity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.io/g/CoCo3FPGA CoCo3FPGA users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://thezippsterzone.com/2018/05/09/coco3fpga-analog-board/ The Zippster Zone - CoCo3FPGA analog board]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=210</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=210"/>
				<updated>2021-10-27T08:33:38Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of January 2021 the CoCo3FPGA group is comprised of over 425 members. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''”[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
The DE1 has 10 red LEDs labeled LEDR0-9.  These LEDs show status as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LEDR0                FDD Select 0&lt;br /&gt;
LEDR1                FDD Select 1&lt;br /&gt;
LEDR2                FDD Select 2&lt;br /&gt;
LEDR3                FDD Select 3&lt;br /&gt;
LEDR4                SD Card Write Protected&lt;br /&gt;
LEDR5                SD Card Inserted&lt;br /&gt;
LEDR6                CoCo3FPGA in Reset&lt;br /&gt;
LEDR7                Keyboard Shift&lt;br /&gt;
LEDR8                Address A19&lt;br /&gt;
LEDR9                Address A18&lt;br /&gt;
&lt;br /&gt;
The DE1 has 8 green LEDs labeled LEDG0-9. These LEDs show status as:&lt;br /&gt;
&lt;br /&gt;
LEDG0                DE1 SRAM Access&lt;br /&gt;
LEDG1                Analog board SRAM0 Access&lt;br /&gt;
LEDG2                Analog board SRAM1 Access&lt;br /&gt;
LEDG3                Flash ROM Access &lt;br /&gt;
LEDG4                SDRAM Access&lt;br /&gt;
LEDG5                WiFi Access&lt;br /&gt;
LEDG6                SD Card activity&lt;br /&gt;
LEDG7                RS232 Pak activity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.yahoo.com/neo/groups/CoCo3FPGA/info CoCo3FPGA Yahoo! users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://thezippsterzone.com/2018/05/09/coco3fpga-analog-board/ The Zippster Zone - CoCo3FPGA analog board]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=209</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=209"/>
				<updated>2021-10-27T08:28:35Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Images for Copying to the SD Card System Partition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of January 2021 the CoCo3FPGA group is comprised of over 425 members. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''”[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
The DE1 has 10 red LEDs labeled LEDR0-9.  These LEDs show status as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LEDR0                FDD Select 0&lt;br /&gt;
LEDR1                FDD Select 1&lt;br /&gt;
LEDR2                FDD Select 2&lt;br /&gt;
LEDR3                FDD Select 3&lt;br /&gt;
LEDR4                SD Card Write Protected&lt;br /&gt;
LEDR5                SD Card Inserted&lt;br /&gt;
LEDR6                CoCo3FPGA in Reset&lt;br /&gt;
LEDR7                Keyboard Shift&lt;br /&gt;
LEDR8                Address A19&lt;br /&gt;
LEDR9                Address A18&lt;br /&gt;
&lt;br /&gt;
The DE1 has 8 green LEDs labeled LEDG0-9. These LEDs show status as:&lt;br /&gt;
&lt;br /&gt;
LEDG0                DE1 SRAM Access&lt;br /&gt;
LEDG1                Analog board SRAM0 Access&lt;br /&gt;
LEDG2                Analog board SRAM1 Access&lt;br /&gt;
LEDG3                Flash ROM Access &lt;br /&gt;
LEDG4                SDRAM Access&lt;br /&gt;
LEDG5                WiFi Access&lt;br /&gt;
LEDG6                SD Card activity&lt;br /&gt;
LEDG7                RS232 Pak activity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.yahoo.com/neo/groups/CoCo3FPGA/info CoCo3FPGA Yahoo! users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://sites.google.com/site/thezippsterzone/coco-3-fpga The Zippster Zone - CoCo3FPGA]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=208</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=208"/>
				<updated>2021-10-27T08:27:22Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Bootable NitrOS9 Disk Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of January 2021 the CoCo3FPGA group is comprised of over 425 members. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''”[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://www.davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
The DE1 has 10 red LEDs labeled LEDR0-9.  These LEDs show status as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LEDR0                FDD Select 0&lt;br /&gt;
LEDR1                FDD Select 1&lt;br /&gt;
LEDR2                FDD Select 2&lt;br /&gt;
LEDR3                FDD Select 3&lt;br /&gt;
LEDR4                SD Card Write Protected&lt;br /&gt;
LEDR5                SD Card Inserted&lt;br /&gt;
LEDR6                CoCo3FPGA in Reset&lt;br /&gt;
LEDR7                Keyboard Shift&lt;br /&gt;
LEDR8                Address A19&lt;br /&gt;
LEDR9                Address A18&lt;br /&gt;
&lt;br /&gt;
The DE1 has 8 green LEDs labeled LEDG0-9. These LEDs show status as:&lt;br /&gt;
&lt;br /&gt;
LEDG0                DE1 SRAM Access&lt;br /&gt;
LEDG1                Analog board SRAM0 Access&lt;br /&gt;
LEDG2                Analog board SRAM1 Access&lt;br /&gt;
LEDG3                Flash ROM Access &lt;br /&gt;
LEDG4                SDRAM Access&lt;br /&gt;
LEDG5                WiFi Access&lt;br /&gt;
LEDG6                SD Card activity&lt;br /&gt;
LEDG7                RS232 Pak activity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.yahoo.com/neo/groups/CoCo3FPGA/info CoCo3FPGA Yahoo! users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://sites.google.com/site/thezippsterzone/coco-3-fpga The Zippster Zone - CoCo3FPGA]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=207</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=207"/>
				<updated>2021-10-27T08:25:58Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Bootable NitrOS9 Disk Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of January 2021 the CoCo3FPGA group is comprised of over 425 members. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://davebiz.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://davebiz.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
The DE1 has 10 red LEDs labeled LEDR0-9.  These LEDs show status as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LEDR0                FDD Select 0&lt;br /&gt;
LEDR1                FDD Select 1&lt;br /&gt;
LEDR2                FDD Select 2&lt;br /&gt;
LEDR3                FDD Select 3&lt;br /&gt;
LEDR4                SD Card Write Protected&lt;br /&gt;
LEDR5                SD Card Inserted&lt;br /&gt;
LEDR6                CoCo3FPGA in Reset&lt;br /&gt;
LEDR7                Keyboard Shift&lt;br /&gt;
LEDR8                Address A19&lt;br /&gt;
LEDR9                Address A18&lt;br /&gt;
&lt;br /&gt;
The DE1 has 8 green LEDs labeled LEDG0-9. These LEDs show status as:&lt;br /&gt;
&lt;br /&gt;
LEDG0                DE1 SRAM Access&lt;br /&gt;
LEDG1                Analog board SRAM0 Access&lt;br /&gt;
LEDG2                Analog board SRAM1 Access&lt;br /&gt;
LEDG3                Flash ROM Access &lt;br /&gt;
LEDG4                SDRAM Access&lt;br /&gt;
LEDG5                WiFi Access&lt;br /&gt;
LEDG6                SD Card activity&lt;br /&gt;
LEDG7                RS232 Pak activity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.yahoo.com/neo/groups/CoCo3FPGA/info CoCo3FPGA Yahoo! users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://sites.google.com/site/thezippsterzone/coco-3-fpga The Zippster Zone - CoCo3FPGA]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=206</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=206"/>
				<updated>2021-10-27T08:17:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* LEDs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of January 2021 the CoCo3FPGA group is comprised of over 425 members. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
The DE1 has 10 red LEDs labeled LEDR0-9.  These LEDs show status as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LEDR0                FDD Select 0&lt;br /&gt;
LEDR1                FDD Select 1&lt;br /&gt;
LEDR2                FDD Select 2&lt;br /&gt;
LEDR3                FDD Select 3&lt;br /&gt;
LEDR4                SD Card Write Protected&lt;br /&gt;
LEDR5                SD Card Inserted&lt;br /&gt;
LEDR6                CoCo3FPGA in Reset&lt;br /&gt;
LEDR7                Keyboard Shift&lt;br /&gt;
LEDR8                Address A19&lt;br /&gt;
LEDR9                Address A18&lt;br /&gt;
&lt;br /&gt;
The DE1 has 8 green LEDs labeled LEDG0-9. These LEDs show status as:&lt;br /&gt;
&lt;br /&gt;
LEDG0                DE1 SRAM Access&lt;br /&gt;
LEDG1                Analog board SRAM0 Access&lt;br /&gt;
LEDG2                Analog board SRAM1 Access&lt;br /&gt;
LEDG3                Flash ROM Access &lt;br /&gt;
LEDG4                SDRAM Access&lt;br /&gt;
LEDG5                WiFi Access&lt;br /&gt;
LEDG6                SD Card activity&lt;br /&gt;
LEDG7                RS232 Pak activity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.yahoo.com/neo/groups/CoCo3FPGA/info CoCo3FPGA Yahoo! users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://sites.google.com/site/thezippsterzone/coco-3-fpga The Zippster Zone - CoCo3FPGA]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=205</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=205"/>
				<updated>2021-10-27T08:15:36Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* LEDs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of January 2021 the CoCo3FPGA group is comprised of over 425 members. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
The DE1 has 10 red LEDs labeled LEDR0-9.  These LEDs show status as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LEDR0                FDD Select 0&lt;br /&gt;
LEDR1                FDD Select 1&lt;br /&gt;
LEDR2                FDD Select 2&lt;br /&gt;
LEDR3                FDD Select 3&lt;br /&gt;
LEDR4                SD Card Write Protected&lt;br /&gt;
LEDR5                SD Card Inserted&lt;br /&gt;
LEDR6                CoCo3FPGA in Reset&lt;br /&gt;
LEDR7                Keyboard Shift&lt;br /&gt;
LEDR8                Address A19&lt;br /&gt;
LEDR9                Address A18&lt;br /&gt;
&lt;br /&gt;
The DE1 has 8 green LEDs labeled LEDG0-9. These LEDs show status as:&lt;br /&gt;
&lt;br /&gt;
LEDG0                DE1 SRAM Access&lt;br /&gt;
LEDG1                Analog board SRAM0 Access&lt;br /&gt;
LEDG2                Analog board SRAM1 Access&lt;br /&gt;
LEDG3                Flash ROM Access &lt;br /&gt;
LEDG4                SDRAM Access&lt;br /&gt;
LEDG5                WiFi Access&lt;br /&gt;
LEDG6                SD Card activity&lt;br /&gt;
LEDG7&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.yahoo.com/neo/groups/CoCo3FPGA/info CoCo3FPGA Yahoo! users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://sites.google.com/site/thezippsterzone/coco-3-fpga The Zippster Zone - CoCo3FPGA]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=198</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=198"/>
				<updated>2021-01-13T09:05:29Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of January 2021 the CoCo3FPGA group is comprised of over 425 members. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.yahoo.com/neo/groups/CoCo3FPGA/info CoCo3FPGA Yahoo! users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://sites.google.com/site/thezippsterzone/coco-3-fpga The Zippster Zone - CoCo3FPGA]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=197</id>
		<title>CoCo3FPGA</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCo3FPGA&amp;diff=197"/>
				<updated>2021-01-13T08:58:22Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCo3FPGA is a hardware synthesis of the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Radio Shack Color Computer 3 (aka CoCo3)]. It is synthesized in [https://en.wikipedia.org/wiki/Hardware_description_language HDL] and the primary platform is the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=83 Terasic DE1] development board.  The CoCo3FPGA was created and launched in 2007 by Gary Becker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DE1.jpg|thumb|CoCo3FPGA on the Terasic DE1 &amp;lt;br&amp;gt;Developer - Gary Becker&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Origin and history''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:All-cocos.jpg|thumb|Three generations of the Tandy CoCo]]&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA is based upon the original Radio Shack TRS-80 Color Computer which was launched in 1980 and has lasted through three generations of hardware until being discontinued in 1991. After its demise there were several successors from third-party vendors that emerged.  Among these were the Tomcat, MM/1, AT306, System IV, and the PT68K-4. Unfortunately, none of these even came close to gaining the popularity of the CoCo 3 primarily because they lacked backward compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the CoCo3FPGA designed by Gary Becker is broadly compatible with the original CoCo 3 while significantly improving performance and adding enhancements. These include a 25 MHz CPU core, 16-bit audio, VGA video, and higher resolution graphics. The result is a computer that satisfies the retro-computing hobbyist because of its compatibility with the legacy design but also provides an upgrade path for users who wish to exploit some of its new features. For many years, loyal CoCo fans wished for a CoCo 4 successor. There was disagreement among them as to which computer really deserved the name 'Color Computer' or 'CoCo'. Because of the stigma associated with the 'CoCo 4' moniker, the name has remained, 'CoCo3FPGA' much to the chagrin of some users who believe that it has truly become the logical successor to the CoCo 3.&lt;br /&gt;
&lt;br /&gt;
In 2007, Gary Becker began designing what would become the CoCo3FPGA on a Digilent XC3S1000 board.  In September of 2008 he created the CoCo3FPGA Yahoo! group and posted the files and documentation to support it.  As time went by there was pressure to port the HDL code to a more readily available platform, the Terasic DE1.  By May of 2010 Gary had posted versions of his design for both boards. Aside from the design of the main CPU core (6809) and the co-processor (6502) Gary has designed the other components in Verilog HDL.  From time to time he freely releases his source files so that others may port the design to other platforms if they wish.&lt;br /&gt;
&lt;br /&gt;
As of July 2018 the CoCo3FPGA group is comprised of over 430 members averaging over 100 posts per month since May of 2015. The group exchanges ideas on programming, development, NitrOS9, and new features. Any interested party may join by navigating to the [https://groups.io/g/CoCo3FPGA groups.io CoCo3FPGA group] and selecting 'Apply for membership in this group'. A request to join will normally be approved by a moderator in less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== '''Performance''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. The design mimics the operation of the original Motorola 6809 processor which was an engineering marvel of its time. Many of the CPU instructions execute in fewer clock cycles than the original resulting in a processor that is generally around 15% faster than the original Motorola design running at a comparable clock speed.&lt;br /&gt;
&lt;br /&gt;
This results in a more efficient core but also causes some compatibility problems with software that was written for the original Motorola processor and relied upon very precise cycle timing which was calculated from the chip's data sheets.&lt;br /&gt;
&lt;br /&gt;
=== CPU clock speed ===&lt;br /&gt;
&lt;br /&gt;
The original Color Computer 3 contained an MC68B09E processor which was rated at a maximum clock speed of 2 MHz. It had the ability to clock the CPU at the normal speed of .89 MHz for compatibility with the older CoCo models and a double speed of 1.78 MHz. BASIC CoCo programmers refer to the method of overclocking as the 'double speed poke'. Using the BASIC 'POKE' command, a couple of registers could be manipulated to change the clock speed of the CPU. POKE 65496,0 selected the normal speed clock and POKE 65497,0 selected the double speed clock. In assembly language this could be accomplished with a CLR $FFD8 (slow) or CLR $FFD9 (fast).&lt;br /&gt;
&lt;br /&gt;
The same procedure still works on the CoCo3FPGA as long as SW0 is in the 'ON' position. When SW0 is in the 'OFF' position, the high speed selection (POKE 65497,0 or CLR $FFD9) actually causes the CPU to clock at 25 MHz which is a huge performance increase compared to the normal .89 MHz speed.&lt;br /&gt;
&lt;br /&gt;
At a 25 MHz clock speed the Kent 6809 core will benchmark at approximately 12 [https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29 MIPS].  In comparison, a [https://en.wikipedia.org/wiki/Motorola_68000 MC68000] would have to run at a clock frequency of over 68 MHz to achieve the same benchmark, and an [https://en.wikipedia.org/wiki/Intel_80486 Intel 486DX] would have to be clocked at over 30 MHz.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA uses fast SRAM with a 10 nanosecond access time which allows the CPU to run at full speed with no wait states.&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
The DE1 is socketed to accept a full-size SD card. Currently the SD card interface is fully supported under NitrOS9. The interface is accessible from Super Disk Extended Color BASIC but is currently only supported by third-party software.&lt;br /&gt;
&lt;br /&gt;
Disk access speed using the SD card is dramatically improved when compared to floppy disks or even Drivewire access. A disk performance benchmark, 'megaread', under NitrOS9 reports that a one megabyte block of data can be read in about 3-4 seconds using a good quality SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Super Disk Extended Color Basic''' ==&lt;br /&gt;
The operating system of the CoCo3 when combined with the code for the floppy disk controller is commonly referred to as 'Super Disk Extended Color Basic' (SDECB). The code is contained within a 32K-byte ROM on the main board of the CoCo 3 and an 8K-byte ROM on the FDC board. The CoCo3FPGA uses these two ROMs combined and unmodified.&lt;br /&gt;
&lt;br /&gt;
Since the hardware for the cassette interface has not been synthesized the commands AUDIO ON/OFF, CLOAD, CLOADM, CSAVE, CSAVEM, MOTOR ON/OFF, and SKIPF are non-functional.&lt;br /&gt;
&lt;br /&gt;
== '''Coco3FPGA OS9/NitrOS9''' ==&lt;br /&gt;
&lt;br /&gt;
As of Febuary 2017, the Coco3FPGA now has it's own port of NitrOS9 started on the NitrOS9 repository. Though the disk images produced there are bootable as well as usable, they are still a work in progress. Other than a couple of new features, The Coco3FPGA NitrOS9 port currently only supports the ''standard'' NitrOS9 Level 2 features, such as screen resolution, joystick support, memory, etc. It is our hope to add support for the extended graphics mode, extended memory, WiFi, and better support for the SD card, which is already supported in a very ''basic'' form (SPI mode). Also, support (and drivers) has been added for the RTC (real time clock) found on the &amp;quot;Analog Board&amp;quot; add-on daughter board, and Gary's new 8 megabyte &amp;quot;RamD&amp;quot; ram drive (Analog Board not required).&lt;br /&gt;
&lt;br /&gt;
==='''Coco3 FPGA NitrOS9 Features'''===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Coco3FPGA NitrOS9 port  supports the following features:&lt;br /&gt;
&lt;br /&gt;
* '''Standard DE1 Coco3FPGA w/512k:'''&lt;br /&gt;
** Complete NitrOS9 L2 3.3.0 Support&lt;br /&gt;
** Standard NitrOS9 screen modes&lt;br /&gt;
*** 32 x 16 Hardware Text&lt;br /&gt;
*** 40 x 24 Hardware Text&lt;br /&gt;
*** 80 x 24 Hardware Text&lt;br /&gt;
*** 640 x 192 Two Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Four Color Graphics w/40 x 24 Text&lt;br /&gt;
*** 640 x 192 Four Color Graphics w/80 x 24 Text&lt;br /&gt;
*** 320 x 192 Sixteen Color Graphics w/40 x 24 Text&lt;br /&gt;
** 512k Memory available for processes and graphics (without Analog Board)&lt;br /&gt;
** RS232 port for DriveWire or serial communications (switch selectable)&lt;br /&gt;
** DriveWire support through the ''Becker Port''&lt;br /&gt;
** Rudimentary SD Card Support (SPI mode)&lt;br /&gt;
** 8 Megabyte Ramdisk (does not use system memory)&lt;br /&gt;
* '''W/Onboard Memory Replacing the 512k with 1 Megabyte:'''&lt;br /&gt;
** 1 Megabyte of memory available for processes and graphics&lt;br /&gt;
* '''W/Analog Board:'''&lt;br /&gt;
** Memory up to 2 Megabytes available for processes and graphics&lt;br /&gt;
** Battery Backed Real Time Clock (RTC)&lt;br /&gt;
** Support for 2nd RS232 port&lt;br /&gt;
&lt;br /&gt;
==='''Coco3FPGA NitrOS9 Ditribution Disk Images:'''===&lt;br /&gt;
----&lt;br /&gt;
Currently, the NitrOS9 repository produced 6 disk images specifically for the Coco3FPGA. Each disk image is created for a specific pupose. In this section, I will try to explain the contents of each disk and it's usage.&lt;br /&gt;
&lt;br /&gt;
==== Bootable NitrOS9 Disk Images ====&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker.dsk nos96809l2v030300_coco3fpga_becker.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA. The bootfile is configured with &amp;quot;/X0&amp;quot; as &amp;quot;/DD&amp;quot; and includes the &amp;quot;/x1&amp;quot;-&amp;quot;/X3&amp;quot; descriptors.&lt;br /&gt;
 The SD card is supported with the &amp;quot;/Sd0&amp;quot;-&amp;quot;/SD1&amp;quot; descriptors (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 A good use for this boot image is for setting up and formatting the SD card partitions for the first time.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run.&lt;br /&gt;
 It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker_sd.dsk nos96809l2v030300_coco3fpga_becker_sd.dsk]&amp;quot;'''&lt;br /&gt;
 This disk is specifically for booting NitrOS9 from a Drivewire server connected to the Coco3FPGA, but must have &amp;quot;/SD0&amp;quot; populated with the system files and CMDS.&lt;br /&gt;
 The bootfile is configured with &amp;quot;/SD0&amp;quot; as &amp;quot;/DD&amp;quot;, making &amp;quot;/SD0&amp;quot; the system drive.&lt;br /&gt;
 The Drivewire drivers are the &amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot; descriptors. The remaining SD card partition is the &amp;quot;/Sd1&amp;quot; descriptor (128 megabyte each).&lt;br /&gt;
 The clock uses the Drivewire clock module and must ''always'' be connected to Drivewire.&lt;br /&gt;
 Gary's 8 megabyte ramdisk dirver is also included.&lt;br /&gt;
 This OS9Boot is for booting to the SD card using Drivewire, for those not using Brett Gordon's BootRom.&lt;br /&gt;
 This Os9Boot ''requires'' Drivewire to run. It does ''not'' require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_becker_sd_rtc.dsk nos96809l2v030300_coco3fpga_becker_sd_rtc.dsk]&amp;quot;'''&lt;br /&gt;
 This disk requires drivewire for booting ''only''.&lt;br /&gt;
 It ''does'' require &amp;quot;/SD0&amp;quot; (&amp;quot;/DD&amp;quot;), to be populated with system files and CMDS.&lt;br /&gt;
 Once booted, Drivewire is not needed, but is accessable though the &amp;quot;/X0&amp;quot;-&amp;quot;/x3&amp;quot; descriptors.&lt;br /&gt;
 The SD card descriptors are &amp;quot;/DD&amp;quot;, &amp;amp; &amp;quot;/SD1&amp;quot; (128 megabyte each).&lt;br /&gt;
 The clock uses the RTC driver for the real time clock on the Analog Board and therefore requires the Analog Board to run.&lt;br /&gt;
 Drivewire is only required for booting.&lt;br /&gt;
&lt;br /&gt;
==== Images for Copying to the SD Card System Partition ====&lt;br /&gt;
&lt;br /&gt;
These images are NOT bootable disks but are meant to be copied to the main SD card partition to be booted by Brett Gordon's Coco3FPGA ''bootrom''.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom.img nos96809l2v030300_coco3fpga_bootrom.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to boot but but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the &amp;quot;softclock&amp;quot; software OS9 clock and does NOT need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_becker.img nos96809l2v030300_coco3fpga_bootrom_becker.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire IS required to boot this image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors (&amp;quot;/X0&amp;quot;-&amp;quot;/X3&amp;quot;) are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Drivewire OS9 clock and DOES need Drivewire to boot.&lt;br /&gt;
 Does NOT require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
 '''&amp;quot;[http://retr09.com/files/nos96809l2v030300coco3fpga_bootrom_rtc.img nos96809l2v030300_coco3fpga_bootrom_rtc.img]&amp;quot;'''&lt;br /&gt;
 This is NOT a bootable image. This image is meant to be copied to the main NitrOS9 SD card partition and booted using Brett Gordon's bootrom for the Coco3FPGA.&lt;br /&gt;
 Drivewire is NOT required to but is available if needed. This is an &amp;quot;untethered&amp;quot; Coco3FPGA boot image.&lt;br /&gt;
 The SD card driver/descriptors &amp;quot;/DD&amp;quot; (&amp;quot;/SD0&amp;quot;) &amp;amp; &amp;quot;/SD1&amp;quot; are present for use of the SD card.&lt;br /&gt;
 The Drivewires drivers/descriptors are included but are not required to boot.&lt;br /&gt;
 Gary's 8 megabyte ramdisk is included.&lt;br /&gt;
 The image includes the Coco3FPGA Analog Board RTC OS9 clock driver and does NOT need Drivewire to boot.&lt;br /&gt;
 This image DOES require the Analog Board.&lt;br /&gt;
&lt;br /&gt;
== '''Onboard hardware''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Serial port''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''VGA display''' ===&lt;br /&gt;
&lt;br /&gt;
The Radio Shack Color Computer 3 has a number of different text and graphics modes but all were designed to be displayed on either a TV, composite [https://en.wikipedia.org/wiki/NTSC NTSC] color monitor, or an RGB monitor with 15.75 kHz horizontal line rate.  Since these types of displays are now outdated and almost obsolete, the CoCo3FPGA displays all video output using a 640x480 60Hz [https://en.wikipedia.org/wiki/Video_Graphics_Array VGA] signal. The connector is a standard female [https://en.wikipedia.org/wiki/VGA_connector DE15HD] connector commonly used for VGA displays on PCs and other computers. The data for the pixels are clocked at 25 MHz with four bits of resolution per color.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA adds a new video mode that displays up to 256 different colors from a palette of 4096 colors on a 640x450 resolution screen. Some YouTube links to demonstrations of this new mode can be found at: [https://www.youtube.com/watch?v=YTrqKphZiyw CoCo3FPGA 256 color line drawing demo ],[https://www.youtube.com/watch?v=WlcjJLiOQbQ ShowBMP program displaying 256-color BMP images ], [https://www.youtube.com/watch?v=midb5_ulaQQ Line drawing demo with VGA font ].&lt;br /&gt;
&lt;br /&gt;
=== '''SRAM 'New' vs 'Old'''' ===&lt;br /&gt;
&lt;br /&gt;
Users of the Terasic DE1 have found that at least two different types of SRAM chips have been used in production of these boards. The most recently produced boards use an [http://www.issi.com/WW/pdf/61-64WV25616.pdf IS61WV25616BLL-10] chip while older boards used a [http://www.issi.com/WW/pdf/61LV25616AL.pdf IS61LV25616AL-10] chip. The two versions of SRAM have slightly different timing characteristics and the later versions (WV prefix) seemed to be more problematic during the early development stages of the CoCo3FPGA. Developers for other retro computing projects (notably the Sinclair ZX Spectrum and the Atari Amiga) also faced the same problems. Gary Becker, the developer of CoCo3FPGA, was able to work out the timings for both SRAMs so that the core CPU could run at a clock speed of 25 MHz. However, depending on which chip is used in any particular DE1, the user will have to select an HDL programming file that corresponds with either the 'Old' (IS61LV25616AL-10) or 'New' (IS61WV25616BLL-10) SRAM.&lt;br /&gt;
&lt;br /&gt;
=== '''Flash Memory''' ===&lt;br /&gt;
&lt;br /&gt;
The flash memory on the DE1 is a 4MB parallel NAND chip made by Spansion (Cypress Semiconductor).  Several different part numbers have been used on the DE1 boards but they are generally variants of the S29 series and usually have a 70 or 90 nanosecond access time.  The flash memory holds, among other things, the contents of the original Tandy Color Computer 3 ROM and the disk controller ROM.  Two methods are currently available for programming the flash memory. Terasic supplies a program called 'Control Panel' which uses the USB Blaster interface to send data to the DE1.  For certain users the Control Panel software has proven to be quite problematic and finicky. The second method involves using a program written by Dave Philipsen called 'Flash-uploader' which communicates with the DE1 via the serial interface using a terminal program with xmodem protocol.&lt;br /&gt;
&lt;br /&gt;
The CoCo ROMs are the only required contents that need to be copied to the flash memory in order for the CoCo3FPGA to work.  Additional data may be copied to the flash such as the Orch-90 ROM, various Program Pak ROMS, a secondary disk controller ROM, and NitrOS9 boot ROMs.  See the information on MPI slots and slot switching using SW1 and SW2 for details.  In addition, the Multi Cartridge ROM System (MCRS) is discussed in detail in another part of this document.&lt;br /&gt;
&lt;br /&gt;
Because the flash memory has a slower access speed it cannot be read by the processor when it is running at 25 MHz.  The CPU core must be slowed down in order to read the flash.  This is not normally a problem since the CoCo 3 mostly runs in all RAM mode and the contents are copied from flash memory to RAM at boot time. &lt;br /&gt;
&lt;br /&gt;
In addition to programming the flash using the Control Panel or Flash-uploader programs, an interface is available for user programs to access and program it. By default the Flash is write protected. But a special feature has been added to enable the Flash to be programmed. This uses the Multiple Cartridge ROM System and the ability to unlock the write protect on the Flash. To unlock the write protect and map a section of the Flash into slot 3 address space:&lt;br /&gt;
&lt;br /&gt;
1 Turn off Interrupts&lt;br /&gt;
(Turns off all RAM mode)&lt;br /&gt;
&lt;br /&gt;
2 Write to $FFDE data does not matter&lt;br /&gt;
(Enable 32K external ROM)&lt;br /&gt;
&lt;br /&gt;
3 Set bits 0 and 1 of $FF90&lt;br /&gt;
(These next two steps change to slot 3 and removes the write protect for the Flash)&lt;br /&gt;
&lt;br /&gt;
4 Write $2A into $FF7F&lt;br /&gt;
&lt;br /&gt;
5 Write $26 into $FF7F&lt;br /&gt;
(Enable MCRS bank 0)&lt;br /&gt;
&lt;br /&gt;
6 Write 0 into $FF40&lt;br /&gt;
(Bank 0 address, the 7 address bits should be located in the low 7 bits of the data)&lt;br /&gt;
&lt;br /&gt;
7 Write the Flash Address 15 to 21 bits of the Flash Address into $FF42&lt;br /&gt;
&lt;br /&gt;
8 Write Flash Address bit 14 * 2 + 1 into into $FF43&lt;br /&gt;
&lt;br /&gt;
=== '''SDRAM''' ===&lt;br /&gt;
The DRAM chip on the DE1 board is an 8-megabyte part. Though the DRAM is not used for standard system memory on the 6809 core there is an interface present in the CoCo3FPGA for its use.  Gary has written a driver for NitrOS9 which allows it to be used as a ramdisk. The ramdisk appears to be faster than the SD card access with a 'megaread' time of about 1.25 seconds (SD card is around 3.75 seconds).&lt;br /&gt;
&lt;br /&gt;
=== '''SD Card''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''PS/2 keyboard port''' ===&lt;br /&gt;
The DE1 board sports a 6-pin mini DIN jack which is used for a PS/2-style keyboard which and by means of  synthesis in the FPGA the keyboard then emulates the matrix of the original CoCo 3 keyboard. Some notable additions to the functionailty of the keyboard:&lt;br /&gt;
&lt;br /&gt;
Pressing CTL-ALT-DEL issues a hardware reset&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pressing CTL-ALT-INS causes a cold start&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Some extra keys found on the PS/2 keyboard but not on the CoCo are mapped as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Audio''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''LEDs''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''Configuration''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''Slide switches''' ====&lt;br /&gt;
The DE1 has 10 slide switches across the front labeled SW0-SW9.  These switches allow for certain configuration options to be set. The 'off' position is down or toward the edge of the board.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SW0                  CPU Speed      &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   1.78 MHz&lt;br /&gt;
ON                      25 MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW2 / SW1      MPI Slot select&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF                    1&lt;br /&gt;
OFF /  ON                    2&lt;br /&gt;
ON  / OFF                    3&lt;br /&gt;
ON  /  ON                    4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW3  Intensity on every &lt;br /&gt;
     other scan line &lt;br /&gt;
------------------------------&lt;br /&gt;
OFF             Full intensity&lt;br /&gt;
ON              Half intensity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW4  Disable autostart interrupt&lt;br /&gt;
     for slots 1 &amp;amp; 3&lt;br /&gt;
--------------------------------&lt;br /&gt;
OFF           Interrupt disabled&lt;br /&gt;
ON             Interrupt enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW5       Semi-graphics mode 6&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                   Disabled&lt;br /&gt;
ON                     Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW6  SD card WP &amp;amp; removal&lt;br /&gt;
     detection&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF                    Enabled&lt;br /&gt;
ON                    Disabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW8 / SW7    Serial port speed&lt;br /&gt;
------------------------------&lt;br /&gt;
OFF / OFF          115,200 bps&lt;br /&gt;
OFF /  ON          230,400 bps&lt;br /&gt;
ON  / OFF          460,800 bps&lt;br /&gt;
ON  /  ON          921,600 bps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SW9                               UART swap&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
OFF   Drivewire on DE1 / RS232 on expansion&lt;br /&gt;
ON    RS232 on DE1 / Drivewire on expansion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Expansion board''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:analog-board-2.jpg|thumb|Expansion board on the Terasic DE1]]&lt;br /&gt;
In June of 2015 Gary Becker queried the CoCo3FPGA user group to see if there was interest in the design and production of an expansion board. He proposed that the board would include a pair of CoCo3 compatible Joystick ports, an extra RS232 PAK serial port, and maybe an RTC. The DE1 has neither an ADC nor an RTC. Through the winter of 2015/16 he designed the board and actually surprised everyone by adding two fast 2MB SRAM chips and a WiFi module as well as a prototyping area. The first boards were actually designed by Gary and several members of the group built them as a kit. By the end of March 2016 he had written code to support the board with a whopping 4MB of extra memory and was booting NitrOS9 and demonstrating that the 'mfree' command showed 2MB of memory which is the maximum it recognizes. Apparently only three of these boards were ever produced and it is referred to as the 'Gary' board.&lt;br /&gt;
&lt;br /&gt;
Gary turned over small scale production of the board to Ed Snider (Zippster) for fulfillment of orders.  Ed did a fairly drastic re-design on the board changing the layout and streamlining to have as few vias as possible.  The result was a new expansion board that still had the same features but was more of a production ready design.  Some mechanical improvements were made and Ed bundled the board with standoffs and other extras so that the final product looked pretty professional.&lt;br /&gt;
&lt;br /&gt;
== '''Keyboard''' ==&lt;br /&gt;
Since the CoCo3FPGA uses a PS/2 keyboard there are some minor differences that must be taken into consideration:&lt;br /&gt;
&lt;br /&gt;
From DECB, use 'Caps Lock' to toggle between lower case/upper case instead of SHIFT-0&lt;br /&gt;
&lt;br /&gt;
Some information on extra keys (to be explained in more detail in the future):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FFCC&lt;br /&gt;
Bit 7 = Alt&lt;br /&gt;
Bit 6 = Control&lt;br /&gt;
Bit 5 = Right Shift&lt;br /&gt;
Bit 4 = Left Shift&lt;br /&gt;
Bit 3 = Down Arrow&lt;br /&gt;
Bit 2 = Up Arrow&lt;br /&gt;
Bit 1 = Right Arrow&lt;br /&gt;
Bit 0 = Left Arrow&lt;br /&gt;
&lt;br /&gt;
$FFCD&lt;br /&gt;
Bit 7 = Page Down&lt;br /&gt;
Bit 6 = Page Up&lt;br /&gt;
Bit 5 = Insert&lt;br /&gt;
Bit 4 = Delete&lt;br /&gt;
Bit 3 = Home&lt;br /&gt;
Bit 2 = End&lt;br /&gt;
Bit 1 = &lt;br /&gt;
Bit 0 = &lt;br /&gt;
&lt;br /&gt;
$FFCE&lt;br /&gt;
Bit 7 = F8&lt;br /&gt;
Bit 6 = F7&lt;br /&gt;
Bit 5 = F6&lt;br /&gt;
Bit 4 = F5&lt;br /&gt;
Bit 3 = F4&lt;br /&gt;
Bit 2 = F3&lt;br /&gt;
Bit 1 = F2&lt;br /&gt;
Bit 0 = F1&lt;br /&gt;
&lt;br /&gt;
$FFCF&lt;br /&gt;
Bit 7 = V-Sync&lt;br /&gt;
Bit 6 = V-Border&lt;br /&gt;
Bit 5 = H-Sync&lt;br /&gt;
Bit 4 = H-Border&lt;br /&gt;
Bit 3 = F12&lt;br /&gt;
Bit 2 = F11&lt;br /&gt;
Bit 1 = F10&lt;br /&gt;
Bit 0 = F9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Drivewire 4 support''' ==&lt;br /&gt;
[[File:drivewire.png|thumb|Drivewire server software]]&lt;br /&gt;
In the 1980s when the Tandy Color Computer was first released, the 5-1/4&amp;quot; floppy disk was the affordable choice for data and program storage on most personal computers. The 5-1/4&amp;quot; floppy format was succeeded by the 3-1/2&amp;quot; disk (commonly referred to as a 'floppy' but, in reality, not floppy!).  Today, the floppy disk is practically non-existent and it has been obsoleted with the advent of USB drives, CDs, DVDs, SD cards, inexpensive hard drives, etc.  Boisy Pitre and Aaron Wolfe developed a novel solution to address the problem of storage for users wishing to experience retro computing with the Color Computer without having to rely upon floppy disks or hard drives.  The [https://sites.google.com/site/drivewire4/ Drivewire] server uses a modern host computer to provide storage via serial data link to the client.  In addition to data storage a number of other features such as drives as large as 4GB, access to remote filesystems, TCP/IP networking, virtual/telnet modem emulation, emulated [https://epson.com/Support/Printers/Impact-Printers/FX-Series/Epson-FX-80/s/SPT_F102 Epson FX80] printing, real time clock, MIDI, etc. are supported.&lt;br /&gt;
&lt;br /&gt;
The CoCo3FPGA supports Drivewire natively without the need for an external program or modified system ROMs. This is accomplished using a [https://en.wikipedia.org/wiki/MOS_Technology_6502 6502] co-processor that runs in the background trapping hardware accesses to the floppy disk controller and converting them to the serial protocol used by Drivewire. The biggest limitation is the bottleneck created by the RS232 serial ports on the host and client which generally do not support rates higher than 230.4 kbps. This limitation means that in most cases the Drivewire server works faster than a typical floppy drive but slower than most hard drives.&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2''' ==&lt;br /&gt;
[[File:DE2.PNG|thumb|Terasic DE2]]&lt;br /&gt;
&lt;br /&gt;
On October 30, 2015 Leslie Ayling announced the porting of the CoCo3FPGA to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30 Terasic DE2]. The DE2 is essentially an expanded version of the DE1 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Port to DE2-115''' ==&lt;br /&gt;
[[File:DE2-115.jpeg|thumb|Terasic DE2-115]]&lt;br /&gt;
&lt;br /&gt;
On April 30, 2018 Stan Hodge announced the porting of the CoCo3FPGA (version 4.1.2) to the [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=165&amp;amp;No=502 Terasic DE2-115]. The DE2-115 is essentially an expanded version of the DE2 with an FPGA containing more logic elements and some added on-board features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Becker port''' ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Becker&amp;quot; port is a simple interface used in the CoCo3FPGA project (and some CoCo emulators) to allow high speed I/O between the CoCo3FPGA and the DriveWire server. &lt;br /&gt;
&lt;br /&gt;
The interface uses 2 addresses, one for status and one for the actual I/O.&lt;br /&gt;
&lt;br /&gt;
The read status port is &amp;amp;HFF41&lt;br /&gt;
&lt;br /&gt;
The only bit used out of bit 0 to bit 7 is bit #1&lt;br /&gt;
&lt;br /&gt;
If there is data to read then bit #1 will be set to 1&lt;br /&gt;
&lt;br /&gt;
The read/write port is &amp;amp;HFF42&lt;br /&gt;
&lt;br /&gt;
When reading you must make sure you only read when data is present by the status bit.&lt;br /&gt;
&lt;br /&gt;
As far as writing you just write the data to the port.&lt;br /&gt;
&lt;br /&gt;
== '''Downloads''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Current design files''' ===&lt;br /&gt;
&lt;br /&gt;
==== '''SOF (temporary programming)''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''POF (permanent programming)''' ====&lt;br /&gt;
&lt;br /&gt;
=== '''Demo programs''' ===&lt;br /&gt;
&lt;br /&gt;
While a very large number of programs originally written for the Color Computer 3 will run on the CoCo3FPGA, several programs have been written to take advantage of some of its new features.  In April of 2016 Dave Philipsen released a program which used the 256-color 640 x 450 graphics mode displaying EGA/VGA character fonts with line drawing characters for a demonstration at the 25th annual Last CoCoFest in Chicago. The program also made use of an accelerated memory access feature which bypasses the MMU to allow faster access to a memory range greater than 64k. In May of 2016 Richard Goedeken updated his RAM stress test program to handle up to 8 megabytes of memory which was needed in order to test the RAM on the newly-available RAM/analog expansion board.&lt;br /&gt;
&lt;br /&gt;
=== '''OS9 Drivers''' ===&lt;br /&gt;
&lt;br /&gt;
== '''Summary''' ==&lt;br /&gt;
&lt;br /&gt;
=='''See also'''==&lt;br /&gt;
&lt;br /&gt;
=='''References'''==&lt;br /&gt;
&lt;br /&gt;
=='''External links'''==&lt;br /&gt;
*[https://groups.yahoo.com/neo/groups/CoCo3FPGA/info CoCo3FPGA Yahoo! users group]&lt;br /&gt;
*[https://sites.google.com/site/dabarnstudio/cocofpga Bill Pierce's commentary on the CoCo3FPGA]&lt;br /&gt;
*[http://www.brianholman.com/retrocompute/files/coco3fpga.html Brian Holman's Coco3FPGA Project How To Guide]&lt;br /&gt;
*[https://github.com/richard42/CoCo3FPGA Richard Goedeken's Github for CoCo3FPGA]&lt;br /&gt;
*[https://8littlebits.wordpress.com/category/coco3fpga/ 8 Little Bits - CoCo3FPGA]&lt;br /&gt;
*[https://sites.google.com/site/thezippsterzone/coco-3-fpga The Zippster Zone - CoCo3FPGA]&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV_Pro&amp;diff=196</id>
		<title>CoCoDEV Pro</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV_Pro&amp;diff=196"/>
				<updated>2020-08-15T18:04:50Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV Pro is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV Pro strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV Pro also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV Pro supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV Pro is a single board 6809 computer created in August of 2020 by Dave Philipsen. &lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-2.jpeg|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV Pro board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV Pro allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 2MB Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 2MB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 2MB of SRAM the CoCoDEV Pro board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of two hundred fifty-six 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 16MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV Pro uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV Pro has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-VGA.jpeg|thumb|CoCoDEV VGA display (NitrOS9)]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV Pro. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV Pro is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV Pro to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV Pro''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV Pro. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV Pro may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV Pro documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV_Pro&amp;diff=195</id>
		<title>CoCoDEV Pro</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV_Pro&amp;diff=195"/>
				<updated>2020-08-15T17:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: Created page with &amp;quot;The CoCoDEV Pro is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV Pro is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-2.jpeg|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-VGA.jpeg|thumb|CoCoDEV VGA display (NitrOS9)]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=194</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=194"/>
				<updated>2020-07-15T11:43:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Industry Standard VGA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-2.jpeg|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-VGA.jpeg|thumb|CoCoDEV VGA display (NitrOS9)]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=193</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=193"/>
				<updated>2020-07-15T11:43:19Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Industry Standard VGA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-2.jpeg|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-VGA.jpeg|thumb|CoCoDEV VGA display (NitrOS9)]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=192</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=192"/>
				<updated>2020-07-15T11:42:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Industry Standard VGA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-2.jpeg|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-VGA.jpeg|thumb|CoCoDEV VGA display (NitrOS9)]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=191</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=191"/>
				<updated>2020-07-15T11:41:26Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Industry Standard VGA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-2.jpeg|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-VGA.jpeg|thumb|CoCoDEV VGA display (NitrOS9)]]&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=File:CoCoDEV-VGA.jpeg&amp;diff=190</id>
		<title>File:CoCoDEV-VGA.jpeg</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=File:CoCoDEV-VGA.jpeg&amp;diff=190"/>
				<updated>2020-07-15T11:39:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=189</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=189"/>
				<updated>2020-07-15T11:38:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-2.jpeg|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=188</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=188"/>
				<updated>2020-07-15T11:36:17Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-2.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=File:CoCoDEV-2.jpeg&amp;diff=187</id>
		<title>File:CoCoDEV-2.jpeg</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=File:CoCoDEV-2.jpeg&amp;diff=187"/>
				<updated>2020-07-15T11:35:14Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=186</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=186"/>
				<updated>2020-06-17T20:09:33Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-documentation-draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=185</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=185"/>
				<updated>2020-06-17T20:08:47Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;br /&gt;
&lt;br /&gt;
== '''Documentation''' ==&lt;br /&gt;
&lt;br /&gt;
CoCoDEV documentation is a work in progress. You may download the current draft copy of the&lt;br /&gt;
documentation [http://www.davebiz.com/CoCoDEV_files/CoCoDEV documentation - draft.pdf here].&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=184</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=184"/>
				<updated>2020-06-17T18:23:44Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* PUTFLASH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
Putflash is a utility used to write data to the flash memory chip on&lt;br /&gt;
CoCoDEV. The chip is a Winbond W25Q32 device. The minimum chunk of flash&lt;br /&gt;
memory which can be erased is 4 kilobytes. Therefore, the putflash utility&lt;br /&gt;
works with blocks of 4k. The usage syntax is:&lt;br /&gt;
&lt;br /&gt;
     putflash &amp;lt;filename&amp;gt; &amp;lt;start blk&amp;gt;&lt;br /&gt;
     Where &amp;lt;filename&amp;gt;. is the OS9 path to the file where the data&lt;br /&gt;
     will come from and &amp;lt;start blk&amp;gt; is the starting block number&lt;br /&gt;
     (in hex) in flash.&lt;br /&gt;
     Example: putflash test.bin 0A&lt;br /&gt;
&lt;br /&gt;
Putflash may be used to flash the stock Tandy BASIC ROMs as well as the PATCH&lt;br /&gt;
and BOOT files to the onboard flash memory.&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=183</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=183"/>
				<updated>2020-06-17T18:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. &lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
Wbaud is a utility used to automatically find the baud rate setting of the &lt;br /&gt;
WiFi module and set the UART to the same baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=182</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=182"/>
				<updated>2020-06-17T18:14:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* WTRM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. Common baud rates are:&lt;br /&gt;
 921,600&lt;br /&gt;
 750,000&lt;br /&gt;
 500,000&lt;br /&gt;
 460,800&lt;br /&gt;
 250,000&lt;br /&gt;
 230,400&lt;br /&gt;
 115,200&lt;br /&gt;
  57,600&lt;br /&gt;
  38,400&lt;br /&gt;
  19,200&lt;br /&gt;
   9,600&lt;br /&gt;
   4,800&lt;br /&gt;
   2,400&lt;br /&gt;
   1,200&lt;br /&gt;
     600&lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=181</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=181"/>
				<updated>2020-06-17T18:13:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''NitrOS9 Utilities for CoCoDEV''' ==&lt;br /&gt;
&lt;br /&gt;
=== WGET ===&lt;br /&gt;
&lt;br /&gt;
Wget is a utility that retrieves files from the internet. Its usage is:&lt;br /&gt;
&lt;br /&gt;
     wget &amp;lt;url&amp;gt;&lt;br /&gt;
     Where url is a complete URL to the file to be retrieved using the&lt;br /&gt;
     http protocol. File will be saved locally with same file name as&lt;br /&gt;
     in url. Example: wget davebiz.com/CoCoDEV.txt&lt;br /&gt;
     Retrieves CoCoDEV.txt file from server and saves it in the current&lt;br /&gt;
     working directory as CoCoDEV.txt&lt;br /&gt;
&lt;br /&gt;
=== WTRM ===&lt;br /&gt;
&lt;br /&gt;
Wtrm is a simple terminal program for NitrOS9 written specifically for the&lt;br /&gt;
WiFi module of CoCoDEV. &amp;lt;ESC&amp;gt; exits the program. Be aware that there is no&lt;br /&gt;
provision in WTRM for setting the baud rate. It uses the current baud rate &lt;br /&gt;
setting of the WiFi module. The WBAUD command described below can be used&lt;br /&gt;
to automatically detect the baud rate from a list of common baud rates and&lt;br /&gt;
set the UART to that baud rate. Common baud rates are:&lt;br /&gt;
921,600&lt;br /&gt;
750,000&lt;br /&gt;
500,000&lt;br /&gt;
460,800&lt;br /&gt;
250,000&lt;br /&gt;
230,400&lt;br /&gt;
115,200&lt;br /&gt;
 57,600&lt;br /&gt;
 38,400&lt;br /&gt;
 19,200&lt;br /&gt;
  9,600&lt;br /&gt;
  4,800&lt;br /&gt;
  2,400&lt;br /&gt;
  1,200&lt;br /&gt;
    600&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== WBAUD ===&lt;br /&gt;
&lt;br /&gt;
=== PUTNV ===&lt;br /&gt;
&lt;br /&gt;
=== GETNV ===&lt;br /&gt;
&lt;br /&gt;
=== PUTFLASH ===&lt;br /&gt;
&lt;br /&gt;
=== GETFLASH ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=180</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=180"/>
				<updated>2020-06-17T17:59:36Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* FPGA configuration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [http://www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=179</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=179"/>
				<updated>2020-06-17T17:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* micro SD Card image file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http://www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=178</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=178"/>
				<updated>2020-06-17T17:58:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* micro SD Card image file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [https://sourceforge.net/projects/win32diskimager/files/latest/download here]. [http:www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=177</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=177"/>
				<updated>2020-06-17T17:57:44Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* micro SD Card image file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] [http:www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=176</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=176"/>
				<updated>2020-06-17T17:57:00Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* micro SD Card image file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [http:www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=175</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=175"/>
				<updated>2020-06-17T17:56:12Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;br /&gt;
&lt;br /&gt;
== '''Latest Builds''' ==&lt;br /&gt;
&lt;br /&gt;
=== FPGA configuration file ===&lt;br /&gt;
&lt;br /&gt;
The latest configuration file may be found [www.davebiz.com/CoCoDEV_files/CoCoDEV-20-06-17.jic here]. Note that it is a JTAG indirect file (jic) and you will need an Altera USB Blaster or equivalent and you must have installed Quartus in order to re-program the FPGA.&lt;br /&gt;
&lt;br /&gt;
=== micro SD Card image file ===&lt;br /&gt;
&lt;br /&gt;
An image file to create a bootable NitrOS9 system for CoCoDEV may be found [www.davebiz.com/CoCoDEV_files/4GB-CoCoDEV.img here]. I use [https://sourceforge.net/projects/win32diskimager/files/latest/download Win32DiskImager] to transfer the image to the micro SD card.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=174</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=174"/>
				<updated>2020-06-17T17:46:00Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen. As of June 15, 2020 a limited quantity have been shipped to beta testers.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=173</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=173"/>
				<updated>2020-06-01T09:59:56Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Real Time Clock */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information. NitrOS9 utilities also exist for reading and writing to the EEPROM.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=172</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=172"/>
				<updated>2020-06-01T09:58:57Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* WiFi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware. The default baud rate is 115,200 but it has been tested successfully to 921,600.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=171</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=171"/>
				<updated>2020-06-01T09:58:00Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Serial Port */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A LVTTL (3.3v) serial port is available on a four-pin header. The serial port supports data rates to 1,000,000 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=170</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=170"/>
				<updated>2020-05-02T12:59:15Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Industry Standard VGA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=169</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=169"/>
				<updated>2020-03-06T07:59:46Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in [https://en.wikipedia.org/wiki/BASIC BASIC] or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=168</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=168"/>
				<updated>2020-03-06T07:57:49Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, [https://en.wikipedia.org/wiki/I²C I²C interface] and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=167</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=167"/>
				<updated>2020-03-06T07:56:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Design Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I²C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=166</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=166"/>
				<updated>2020-03-06T07:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Design Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that runs either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage. An I2C interface simplifies the connection of inexpensive peripherals.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=165</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=165"/>
				<updated>2020-03-05T21:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=164</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=164"/>
				<updated>2020-02-23T10:06:00Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEVB.JPG|thumb|CoCoDEV revision B bare board with larger prototyping area, 2 SD cards, pads for optional terminal block]]&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=File:CoCoDEV-ENC.JPG&amp;diff=163</id>
		<title>File:CoCoDEV-ENC.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=File:CoCoDEV-ENC.JPG&amp;diff=163"/>
				<updated>2020-02-22T07:28:52Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: CoCoDEV revision B in an enclosure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CoCoDEV revision B in an enclosure&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=162</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=162"/>
				<updated>2020-02-22T07:24:17Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV.JPG|thumb|CoCoDEV with RS232 serial port (preliminary design)]]&lt;br /&gt;
[[File:CoCoDEVB.JPG|thumb|CoCoDEV revision B bare board with larger prototyping area, 2 SD cards, pads for optional terminal block]]&lt;br /&gt;
[[File:CoCoDEV-ENC.JPG|thumb|CoCoDEV revision B board in enclosure with top lid removed]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=161</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=161"/>
				<updated>2020-02-22T07:22:26Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV.JPG|thumb|CoCoDEV with RS232 serial port (preliminary design)]]&lt;br /&gt;
[[File:CoCoDEVB.JPG|thumb|CoCoDEV revision B bare board with larger prototyping area, 2 SD cards, pads for optional terminal block]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=160</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=160"/>
				<updated>2020-02-20T23:08:50Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Real Time Clock */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV.JPG|thumb|CoCoDEV with RS232 serial port]]&lt;br /&gt;
[[File:CoCoDEVB.JPG|thumb|CoCoDEV revision B bare board with larger prototyping area, 2 SD cards, pads for optional terminal block]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ string to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=159</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=159"/>
				<updated>2020-02-20T23:08:13Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Real Time Clock */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV.JPG|thumb|CoCoDEV with RS232 serial port]]&lt;br /&gt;
[[File:CoCoDEVB.JPG|thumb|CoCoDEV revision B bare board with larger prototyping area, 2 SD cards, pads for optional terminal block]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;br /&gt;
A NitrOS9 driver has been developed to take advantage of the RTC as well as support from within BASIC using the TIME$ strung to return a packet with time and date information.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=158</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=158"/>
				<updated>2020-02-20T23:05:33Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* 1MB Flash Memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV.JPG|thumb|CoCoDEV with RS232 serial port]]&lt;br /&gt;
[[File:CoCoDEVB.JPG|thumb|CoCoDEV revision B bare board with larger prototyping area, 2 SD cards, pads for optional terminal block]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory can also contain up to 20 BASIC programs, an OS9 rescue disk, configuration parameters, etc.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=157</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=157"/>
				<updated>2020-02-20T23:03:01Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* MC6809 core */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV.JPG|thumb|CoCoDEV with RS232 serial port]]&lt;br /&gt;
[[File:CoCoDEVB.JPG|thumb|CoCoDEV revision B bare board with larger prototyping area, 2 SD cards, pads for optional terminal block]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz with no wait states imposed upon memory access. Thus, it is about 28x as fast as a CoCo 1/2 or 14x as fast as a CoCo 3 running in double-speed mode.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the 512KB system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory may also contain various fonts for the Video Display Generator that can be loaded in at boot time.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	<entry>
		<id>http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=156</id>
		<title>CoCoDEV</title>
		<link rel="alternate" type="text/html" href="http://www.davebiz.com/wiki/index.php?title=CoCoDEV&amp;diff=156"/>
				<updated>2020-02-20T23:00:41Z</updated>
		
		<summary type="html">&lt;p&gt;Dave: /* Design Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CoCoDEV is a microprocessor hobbyist/experimenter's/development system board. Its microprocessor is an FPGA synthesis of the popular 8/16-bit [https://en.wikipedia.org/wiki/Motorola_6809 Motorola 6809 CPU]. The name &amp;quot;CoCoDEV&amp;quot; comes from its similarity to the [https://en.wikipedia.org/wiki/TRS-80_Color_Computer Tandy Color Computer  (aka CoCo)]. However, the CoCoDEV strays somewhat from the design of the Color Computer in that it does not focus upon graphics capabilities, games, and sound. Instead, it was designed to be an embedded controller of sorts allowing the user to control things that would have been difficult to control with the Color Computer. In doing so it has many features that are not present in the Color Computer. Among these are: real-time clock, WiFi module, UART hardware serial port, micro SD Card interface, and digital I/O lines. &lt;br /&gt;
&lt;br /&gt;
Its similarity to the Color Computer makes it very familiar to anyone who has ever programmed in BASIC or 6809 machine language. In fact, it supports the stock Tandy BASIC ROMs (Color BASIC, Extended Color BASIC, Disk Color BASIC) and an authorized user can copy the stock ROMs to the onboard flash chip. Along with an included patch ROM, the original code is patched automatically at boot time to accommodate the new features of the board. &lt;br /&gt;
&lt;br /&gt;
In addition to appealing to Color Computer users, CoCoDEV also appeals to anyone wishing to develop an embedded system using a powerful 8-bit CPU which is simple and easy to use. Many small controllers that are popular today require a host system (Windows PC, Mac, Linux) for development. However, since the CoCoDEV supports a VGA-compatible display generator, connects to an inexpensive USB keyboard, and has a micro SD Card socket, the development can be hosted on the controller itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CoCoDEV is a single board 6809 computer created in July of 2019 by Dave Philipsen and is expected to be available for purchase in March 2020.&lt;br /&gt;
&lt;br /&gt;
[[File:CoCoDEV.JPG|thumb|CoCoDEV with RS232 serial port]]&lt;br /&gt;
[[File:CoCoDEVB.JPG|thumb|CoCoDEV revision B bare board with larger prototyping area, 2 SD cards, pads for optional terminal block]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Design Objectives''' ==&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV board was designed primarily for those who are familiar with the architecture of the Tandy Color Computer but would like to migrate to a controller that is more easily interfaced to the real world. It is a single board computer with a synthesized 6809 core that will run either a modified version of Tandy's Disk Extended Color BASIC or the popular multi-user multi-tasking operating system, NitrOS9.&lt;br /&gt;
&lt;br /&gt;
CoCoDEV allows the experimenter/hobbyist/developer to easily control lighting, relays, solenoids, robotics, LEDs, stepper motors, and many more things. There are many choices for programming options: Extended Color BASIC with customized CoCoDEV commands, BASIC09, Pascal, assembly language programming under DECB or NitrOS9, and C programming under NitrOS9. The unit will boot NitrOS9 Level II which is a multi-tasking, multi-user, process based real-time operating system with windowing.&lt;br /&gt;
&lt;br /&gt;
A memory management unit allows for programs or data areas larger than 64K and a flash memory chip is available for non-volatile storage.&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
=== MC6809 core ===&lt;br /&gt;
&lt;br /&gt;
The core CPU of the CoCo3FPGA was designed in VHDL by Australian developer [http://members.optushome.com.au/jekent/FPGA.htm John Kent]. It runs at a bus speed of 25 MHz.&lt;br /&gt;
&lt;br /&gt;
=== 512K Static RAM ===&lt;br /&gt;
&lt;br /&gt;
[[File:IS61LV25616.jpeg|thumb|Fast 10ns Static RAM]]The board has 512KB of fast (10 ns) static RAM. The 6809 processor runs at 25 MHz bus speed and is able to access the RAM without wait states. Additionally, the video subsystem accesses the same RAM by interleaving its access with the processor on opposite phases of the clock. &lt;br /&gt;
&lt;br /&gt;
Since the 6809 processor has only 16 address lines it can only access up to 64KB of memory. To make use of the full 512KB of SRAM the CoCoDEV board uses a Memory Management Unit (MMU) with the same characteristics of the MMU on the CoCo 3. The MMU allows the mapping of any of sixty-four 8K blocks of memory to any of eight 8K 'slots' in the CPU's 64K address space. &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1MB Flash Memory ===&lt;br /&gt;
&lt;br /&gt;
Instead of using bulky parallel EPROM memory for the firmware, CoCoDEV uses a compact serial flash chip with an SPI interface. The chip requires only three I/O lines compared to a 2764 or 27256 EPROM that would require at least 23 I/O lines. When the board is initially powered up the firmware is copied from the flash memory into the 512KB system RAM. Configuration options allow either the Disk Extended Color BASIC firmware with its associated patches to be loaded or the NitrOS9 operating system. Modifications could be made so that other operating systems could be loaded as well. Two new OS9 utilities are available to read and write data files to the flash chip; GETFLASH and PUTFLASH.&lt;br /&gt;
&lt;br /&gt;
In addition to containing the firmware the flash memory may also contain various fonts for the Video Display Generator that can be loaded in at boot time.&lt;br /&gt;
&lt;br /&gt;
=== Industry Standard VGA ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV has a high density female DB15 connector for VGA video output. RGB video signals as well as horizontal and vertical synchronization signals are all available on the connector. The video should drive any modern monitor designed for analog VGA. The VDG generates the video with a 25 MHz dot clock with 640 pixels of horizontal resolution and 480 lines of vertical resolution. Currently, the only mode of operation is a semi-graphics text mode using a eight pixel (horizontal) by sixteen pixel (vertical) character block. This allows for an addressable display using eighty columns and 30 rows. The video system has a color density of 8 bits configured in the common 3-3-2 (RGB) format. In theory, this allows up to 256 colors on screen at once. Plans for a 640x480x256-color graphics mode are in the works.&lt;br /&gt;
&lt;br /&gt;
=== PS/2 Keyboard Interface ===&lt;br /&gt;
&lt;br /&gt;
[[File:USB-to-PS2.jpeg|thumb|USB to PS/2 adapter]]A female USB 'A' connector allows a standard PC keyboard to be used with CoCoDEV. Any USB keyboard that supports fallback to the PS/2 standard will work. Alternatively a keyboard with a PS/2 6-pin mini-Din connector could be used with an inexpensive USB-to-PS/2 adapter.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DC Power Supply ===&lt;br /&gt;
&lt;br /&gt;
The CoCoDEV is powered by a DC power supply which can range anywhere from 6 volts to 32 volts. A 6.5mm x 3.0mm barrel connector accepts the voltage. Two onboard regulators supply 5 volts and 3.3 volts for various peripherals and these voltages are also available to the experimenter/developer via the expansion interface.&lt;br /&gt;
&lt;br /&gt;
=== Serial Port ===&lt;br /&gt;
&lt;br /&gt;
A TTL serial port is available on a four-pin header. The serial port supports data rates to 115,200 bits-per-second with no handshaking.&lt;br /&gt;
&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
&lt;br /&gt;
[[File:WiFi.jpeg|thumb|USB to PS/2 adapter]]An ESP8266-01 module is included with the CoCoDEV to allow simple internet access. The module uses the popular ZiModem firmware.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
A micro-SD card socket is provided for mass storage. The card may be used for data logging, program storage, audio clips, etc. and may be formatted for either DECB, NitrOS9, or both. A patch to Disk BASIC allows the card to be used in place of the traditional floppy drives. With a modification of the DRIVE command, multiple virtual floppy drives (up to 1000) may be mounted to any of the four drive positions (DRIVE 0-3) in BASIC.&lt;br /&gt;
&lt;br /&gt;
NitrOS9 supports partitions on the SD card of up to 4GB when using 32-sector clusters or 128MB when using single-sector clusters. The SD card operates on an SPI interface with a clock speed of 25 MHz. The OS9 megaread utility benchmarks an 8GB Transcend Micro SD card at 3.15 seconds for a 1 megabyte transfer or about 325kB/sec.&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
The board includes an RTC module with battery backup. It is based upon the popular DS3231 chip. Also included with the module is 1K of EEPROM for storage of configuration variables.&lt;/div&gt;</summary>
		<author><name>Dave</name></author>	</entry>

	</feed>