History – setting the scene
In 1989, I started working for my Uncle Bill Mensch at WDC in Mesa, AZ while studying Electrical Engineering at Arizona State University. It was an exciting time in my life working along side both my Uncle and Aunt Kathryn Mensch. I remember my Uncle “holding class” during the week in a conference room for an hour or two everyday to learn about CMOS, diffusion, logic gates, logic diagrams, etc. My aunt would then work with me on how to layout circuits using a Calma GDSII computer. I eventually was assigned a project to add second-layer metal enhancements to the W65C29 chip, which WDC now calls a GPIO port. I still think about those days and how fortunate it was for me to learn about IC design from my Aunt and Uncle.
At that time, we mainly used the Calma GDSII for IC layout and Apple IIgs for office software. There were a few PCs in the office that were used for some software projects. Eventually, PCs and a layout software program called ICED (IC-Editor) replaced the Calma system. Why? Well it was primarily cost. The Calma systems were very expensive to maintain and parts were getting hard to find. PCs were popular and very affordable compared to other computers used in the industry. My Uncle tells me that I was the catalyst for the PC movement at WDC. I was just familiar with PCs and naturally curious.
WDCTools were originally developed around 1993. At that time Microsoft Windows was the most popular operating system in the world. So, targeting the tools for the Windows platform made obvious sense. WDC contracted with Zardoz Software (Jim Goodnow II) to develop WDCTools. Previously, Jim Goodnow II was a partner/principle developer at Manx Software Systems. Manx produced C compilers (Aztec C) and assemblers in the 1980s for professional developers for PCs and Macs.
Today, WDCTools command line tools (compilers, assemblers, linker, optimizer, etc.) source code remains virtually unchanged almost like frozen in time. The last version (3.49.1) of these tools was built in early 2006. I’ve had many software tools discussions with my Uncle over the years as a member of the WDC advisory board. These discussions have led to exploring many options for the tools including open source. Today, WDCTools are available as a free download for the development of commercial products for WDC 65xx processors. If you are working with non-WDC 65xx processors then you can purchase a commercial license or use other tools. I find it remarkable that after all these years the WDC command line tools are still valuable. If only they could run on my Mac…hmm.
Taking a sip of “Wine“
One way to run WDCTools on a non-Windows operating system is to use a Virtual Machine. This is certainly an option and does work but you are still forced to develop on a Windows operating system. I haven’t used a Windows OS as a developer machine for over 12 years. At this point, I’m really not that productive on a Windows machine and I really like my Mac. Since, WDC has yet to port the tools to other platforms we’re left with limited options.
I was thinking about this some more as I was trying to figure out the ideal way of developing, deploying and testing software on my W65C265SXB. What I mean by the “ideal way” is a way that is closely aligned with how I develop software today. Then, I remembered an open source project Wine from years ago and wondered if that could be an option. What is great about the Wine project is that it provides a “compatibility” layer that translates Windows API calls to POSIX API calls “on-the-fly”. Give it a try!
Installing Wine and WDCTools on a Mac
- I installed Wine via Homebrew ‘brew install wine’
- Or, you can follow the macOS instructions to install
- Download a free copy of WDCTools
- Unzip the WDCTools.zip archive to get the WDCTools.exe self-extracting archive
- Following the instructions on How to install and run Windows programs
I was pleasantly surprised at how well it works with the tools. The performance of the command line tools is almost indistinguishable to native. I haven’t fully tested all the tools however, the command line tools seem to work as expected. If you want to connect EasySXB to a board you need to configure the serial port (see Other Things to Configure for instructions).
I prefer beer but I’m really liking the “wine”.