GPUTILS and Alternate PIC Mnemonics

This conference is open to any discussion that does not fit into the the defined categories. If a topic becomes popular enough, a new conference will be started for it.

GPUTILS and Alternate PIC Mnemonics

Postby Joseph Watson » Sun Jun 01, 2014 2:16 am

GPUTILS is a GPL-licensed set of tools for the various PIC microcontrollers. It consists of an assembler (GPASM), a disassembler (GPDASM), a linker (GPLINK), and object file viewer (GPVC). There are versions that run on Microsoft Windows, Unix, and MAC OS X.

Despite having written assembly language programs on and off for more than 4 decades, I like to keep things very simple. I try to avoid the need to link programs. Consequently, while I have used GPASM (the assembler) a fair bit, I have never used any of the other GPUTILS programs.

The GPASM assembler provides a simple preprocessor front end. It also has a pretty good macro capability. I find both of these capabilities very useful as I write assembly language programs for the PIC processors.

I was programming computers in assembly language for a living about 5 years before the C language was first created. I have never warmed up to the syntax of the C language. On the other hand, I am not fond of the mnemonics assigned to the PIC operations by Microchip. So I have experimented with alternate instruction set mnemonics, primarily for the PIC182550 which I use frequently in my projects. Using the features of GPASM, I manage to coax it into assembling my programs even though they look much different than the usual mnemonics.

I will be posting descriptions of my instruction sets here before long.
NCR once refused to hire me because I was too short. I'm still waiting on my growth spurt.
User avatar
Joseph Watson
 
Posts: 49
Joined: Sat May 31, 2014 8:06 pm
Location: Ohio, USA
PIC experience: Experienced Hobbyist

Re: GPUTILS and Alternate PIC Mnemonics

Postby Tom Maier » Sun Jun 01, 2014 1:45 pm

Joseph Watson wrote:I was programming computers in assembly language for a living about 5 years before the C language was first created.


Joseph,
Thanks for the posts you have been making. Good stuff. I look forward to more.

When you say five years before C was created, do you mean five years before C was available for pic? C has been around since 1969. It's one of the ancient langauges of programming.
User avatar
Tom Maier
Verified identity
 
Posts: 179
Joined: Mon May 26, 2014 2:37 pm
PIC experience: Professional 5+ years with MCHP products

Re: GPUTILS and Alternate PIC Mnemonics

Postby Joseph Watson » Sun Jun 01, 2014 5:39 pm

I suppose you will just have to refer to me as being "ancient". :D

I thought my first K & R book about C was from 1972 but either way, I started programming in assembly for a living using a DEC PDP-8/s minicomputer in 1967. (That machine did not even have integrated circuits.) Before that, I had been writing assembly language programs for a totally homemade machine starting in 1964 but that was as a very early computer hobbyist mostly while I was enlisted in the USAF. I like to tinker with electronics almost as much as programming.

Over the years since, I designed and wrote a lot real time machine control software, software to collect and analyze precision measurement data, and software for testing and diagnosing issues with precision measuring machines called Coordinate Measuring Machines (CMMs). Then for 10 years, I designed and wrote software that is used by most of the county boards of elections in the state of Ohio. Those applications generated maps of all types of geopolitical districts, communicated voter registration data between counties and a central data base system in Columbus, Ohio, and helped to manage some areas of campaign finance for candidates and PACs.

A friend introduced me to Microchip PIC chips back in 1997. We were playing with PIC16C54, PIC16C74, and PIC12C509 chips. (Oh the fun of using a UV lamp to erase your PIC). Then my first wife was diagnosed with cancer and playing with PIC chips came to a halt for many years. She passed away and I have since remarried and moved to a different house.

When I retired at the end of 2010 I started playing with microcontrollers again. A little Arduino here, a little PIC12Fxxx there, a bit of PIC16F628A after that, and now PIC18F2550. Toss in a smattering of Maximite type stuff, contemplating how to make a mechanical computer, and a lot of grass mowing and you sort of have my resume.

Having cut my teeth on the DEC PDP-8 systems, I long ago came to appreciate the simplicity of single accumulator machines. Of course, most of the machines that I have used since were not single accumulator designs.

If there is one really remarkable achievement in any of my assembly language programming work over the years, it would have to be this. In 1979, I led the development of an assembly language firmware package used to control and monitor CMMs. There were 3 of us working on the firmware for one processor while another engineer wrote firmware for a companion processor. His software ran the servos on the CMM (sometimes 3 axes, sometimes 4 axes). Our processor performed overall control, monitored the machine, generated display information, performed geometric corrections of measurement data, and more.

We crafted our own real time operating system from scratch. It was a multi-task, multi-ground system. We wrote our own floating point arithmetic package (including transcendental functions) and our own inter-task and inter-processor message routing system. The 8086 was just about to be released and we signed non-disclosure statements for INTEL so that we could use it.

I have not been with that company for the last 14 years. The part I find amazing is that I get a call now and then from one of the electrical engineers there. He tells me that although the electronics have been repackaged several times since, they are still using that same firmware 35 years later! They stay with it because to buy any other controller to run their machines would cost more than $1,000 more per controller than producing their own. The sad news is that the firmware was easily moved forward to the 80386 and its associated support chips long ago but cannot readily be taken further. Years ago, the company bought up all the 80386 chips they could find and the support chips but now their supply is nearly gone. The firmware will finally die because there is no hardware upon which it will run.
NCR once refused to hire me because I was too short. I'm still waiting on my growth spurt.
User avatar
Joseph Watson
 
Posts: 49
Joined: Sat May 31, 2014 8:06 pm
Location: Ohio, USA
PIC experience: Experienced Hobbyist

Re: GPUTILS and Alternate PIC Mnemonics

Postby Tom Maier » Sun Jun 01, 2014 6:11 pm

A lot of the members of this forum are in their 50's (like me). You are probably the senior member.

I was USAF too. Navigational ground stations, VOR, TACAN, ILS. I also used to wander over and work on radar and MET radar. Biloxi? I ended up in SAC.

Have you ever read the book "The Soul of a New Machine"? With your background you would really relate to it.

I started in chemistry and went to electronics when a PhD chemistry researcher told me it would take me 12 years to start to get to do anything interesting. Electronics was such a boom thing in the late '70s that I jumped ship and switched. Still, my heart is more in the sciences than in technology. My son (18) is pursuing biochem, which is the boom thing of this generation.

I got a chance to work in scientific research by being tech support for research at a major university. Mostly physics stuff, but also biochem and biomechanics. That was probably the most exciting thing in my life.

Now I'm unemployed and living in a remote area, trying to figure out how to make a new living in such a desolate area. I don't want to move, but I'm too young to retire. I need to figure something out in the next year.
User avatar
Tom Maier
Verified identity
 
Posts: 179
Joined: Mon May 26, 2014 2:37 pm
PIC experience: Professional 5+ years with MCHP products

Re: GPUTILS and Alternate PIC Mnemonics

Postby Olin Lathrop » Sun Jun 15, 2014 3:27 pm

Joseph Watson wrote:The GPASM assembler provides a simple preprocessor front end. It also has a pretty good macro capability. I find both of these capabilities very useful as I write assembly language programs for the PIC processors.


Anyone that is looking for great preprocessing and macro capability for PIC assembler should check out my preprocessor, PREPIC. It is actually a full interpreter with subroutine and macro capability. Some highlights include native support for string, floating point, and time data types, ability to do true string manipulations on macro arguments, very flexible number to string conversions, the ability to write out arbitrary strings to standard output during a build, and lots more. The documentation file is at http://www.embedinc.com/pic/prepic.txt.htm. The preprocessor itself is included in my PIC development tools release at http://www.embedinc.com/pic/dload.htm.
User avatar
Olin Lathrop
Verified identity
 
Posts: 48
Joined: Fri May 30, 2014 3:38 pm
Location: Littleton, MA USA
PIC experience: Professional 5+ years with MCHP products

Re: GPUTILS and Alternate PIC Mnemonics

Postby ric » Mon Jun 16, 2014 4:27 am

I've just added a link to your "Development Tools" page into the "Useful links" page at
viewtopic.php?f=59&t=15
Latest test project, an LED matrix display made from one reel of addressable LEDs. here
User avatar
ric
Verified identity
 
Posts: 659
Joined: Sat May 24, 2014 2:35 pm
Location: Melbourne, Australia
PIC experience: Professional 5+ years with MCHP products


Return to Other Development Tool Topics

Who is online

Users browsing this forum: No registered users and 1 guest

cron