My Software Development Background...

Projects and applications that I've worked on over the years...

I have been programming computers since 1978, starting with Watfiv FORTRAN on computer punch cards. From this start, I went to Washington State University, majoring in Computer Science, and received a Bachelor of Science degree in Computer Science from there in 1983. My minor was in Geology. I also have extensive time spent studying Electrical Engineering, Mathematics, and History.

Computer languages that I am familiar with include Watfiv Fortran, Pascal, C, BASIC, and several microprocessor "languages". I have developed software on TI 990 minicomputers in TI Pascal (and some 990 microcode) under both DX10 and DNOS, and on DEC PDP 11/60's running UNIX (but it has been a number of years since I've worked on these systems!)

I am proficient at embedded systems design, and am familiar with the Motorola 68000 processor, the Zilog Z80 and EZ80 processors, the Hitachi H8/300 series, as well as some older processor families; the TI TMS7000 series, the Motorola 6800 family, including the 6809, and the TMS 9900 family (although I have not done much with this). I also have programmed the 8080 and 80x86 architectures. I have also completed projects based on the Renesas H8/3867-3864 processor. This is a derivative of the H8/300 series from Renesas; formerly Hitachi. Lately, my work has been focused more on the ARM series processors and the aforementioned EZ80 processor.

Most of my work over the past decade of software development was using XCode under Macintosh OS X, implementing and supporting the TI Connect™ software for Macintosh OS X. This is primarily work using the Carbon and Cocoa API. Additional work done by the rest of my team on this project is in Cocoa, using Objective-C.

I have done USB development work under the Nucleus RTOS running on an ARM926 processor. Additionally, I have done programming for a device in the OMAP family of processors from TI. My work on that architecture is in the area of embedded USB hardware drivers for Nucleus, providing device, host, and OTG support. I also developed the Viewscreen panel for this
device.

Current work is around USB driver design for the ARM-based handheld (TI-nSpire) and USB systems design for the EZ80-based calculators we sell (TI-84 Plus CE/TI-83 Premium CE). Additional work is I'm doing is based around MSP products from TI (Launchpads). For an example of this work, see the TI-Innovator Hub product from Texas Instruments, based on a MSP432 Launchpad derivative with custom Boosterpack. I developed the on-board "sketch" that interprets commands sent from desktop or calculators to the hub, performs the requested actions, and generates a response back to the host system.

Previous work at Texas Instruments includes work on the CC-40 handheld computer (1982-83), as well as some peripherals work involving 3.5" microdisks (1984), the TI-74 Basicalc system (1985-90), embedded Z80 software for the Ready Reference Spell Checker(1988-89), SDK software for the TI-74 (1986-1990) and TI-78 (1989-1991) (an 8086-based handheld), PC-Interface for the TI-74 and TI-95 Procalc (1986), TI-81 Emulator for Macintosh (Mac-81) (1991), TI-Graph Link™ software for the TI-82, TI-85, TI-83, and TI-92 (1992-96), as well as TI-Graph Link 2 software and its replacement, TI Connect™, and many other small projects (some released, others not...).

I also developed the embedded USB firmware (1999) for the first USB Graph Link cable from TI. Other embedded firmware projects that I have done include the original TI CBL™ (Calculator-Based Laboratory) (1994), and the TI CBR™ (1997) (Calculator-Based Ranger); devices for performing real-world science experiments in and out of the classroom (as well as the TI CBR™ 2 device later on).

In addition to all the above, I have also developed contract software for handheld devices (such as the old TI-78 handheld computer, and the TI-74 BASICALC) in both assembly and C (for the TI-78) and assembly and BASIC (for the TI-74). I provided SDK and Developer support for these platforms in the late 80's/early 90's.

One of the things I used to do in Codewarrior (on the Macintosh, under OS 8 and 9) was develop OSAXen (Applescript Scripting Additions). Codewarrior Pro 5 and 6 had a minor defect in how they handled resource names in the 68K OSAX targets. An embedded null character in the 'from' or 'to' data descriptor types in the resource names will cause the name to be truncated (and therefore unusable) in the resulting OSAX. I've developed a small Merge Post Linker and Preference Panel for Codewarrior Pro 6 (it may work with Pro 5, but is untested in that environment) that provides for a better way to control resource naming when generating 68K OSAXen. And... because only a handful of people world-wide would *ever* need this, I'm making it available here on this site.

Another "hobby" of mine is writing test applications for the various calculators I develop TI Connect™ software for. I try to make the test software useful in its own way. I've developed several pretty neat little applications over the past few years. This software not only tests the calculators, but the TI Connect™ software as well. I'm presenting a few of the best of these here on my website for those people who own a TI-92Plus/TI-89/89-Titanium calculator (or the Voyage 200™ PLT) from Texas Instruments.

In between all these projects, I've developed skills in HTML coding. My first website ran on an old AST 386/33 PC, running Windows for Workgroups and a small HTML server, and hosted a small website that has since grown into the MacDev site inside TI; a fairly useful collection of documentation on all things communications-related on the TI graphing calculator product line. It has moved from one machine to another, and is now running on an OS X 10.2 Server, running on a Blue & White G3 Macintosh and resides in the Desktop II lab in the building I work in. Originally, I wrote my HTML in Notepad, and later, with Claris HomePage on Mac OS 8 and 9... these days, I use RapidWeaver 4.4.2 on my Macintosh OS X Server running OS X 10.10.5.

I have, as of late, also realized that I have quite a collection of calculators and other interesting things from my time at TI. I "inherited" a number of items when older engineers left the company... including several bags of old TI-59/TI-58 library cartridges. I've got several copies of some of the general libraries ( a picture of the libraries I have is below...)

Picture 5

This set includes the following:
Master Library-1, Applied Statistics-2, R.E./Investment-3, Surveying-4, Marine Navigation-5, Aviation-6, Leisure Library-7, Securities Analysis-8, Business Decisions-9, Math/Utilities-10, EE Library-11, Agriculture-12, and RPN Simulator-13

In addition, I have a bag full of CROMs with custom programming on them. Most of these modules still have their labels, but no instructions for the programs on them, (or, for that matter, what some of the are for). Some can be identified by their title; while others simply have labels with cryptic names.

Some day, I'll have to build a set of pages with my collection of old calculators. For now, they stay somewhat boxed up, except for a few, like my TI-74 Basicalcs, and my TI-95 Procalc, and a few others that I actually use on a fairly regular basis.