MC68HC11 Microcontroller Projects | Home Page |
I have enhanced the Motorola freeware assembler slightly, adding include statements mainly. Mail me if you want to try to persuade me to add additional features, like multiple program counters (sections) and possibly branch/jump optimisation, to better support use with the Hi-tech compiler and avoid the sed-script hack.
Download as11.
I was considering porting lcc to the 68hc11, but recently tried the Hi-tech C compiler demos, and man those compilers are good! They generate code that is still only half as fast as my carefully hand-coded subroutines, but only one or two subroutines in an average program need speed that greatly and the other compilers I've seen generate almost unusable code (4 to 8 times larger and slower than hand-coding). The best part about the Hitech stuff is its ability to handle things in 8-bit sized chunks - some of the competition won't do anything except in a 16 bit word. Its register allocation strategy works but is a bit too simplistic though - I'd like to be able to use pointer registers. Anyhow, what can you expect for free?
Anyhow, I worked out a sed script for munging the output from this beast so it goes through the freeware assembler. You have to keep subroutine sizes down enough that short branches work, but that's good practice anyway, isn't it? Together with the DOS emulator under Linux I can get a compile/assemble/ROM-download in under 60 seconds. I also have ROM-based and boot RAM crt0.c files to #include, and a vectors.c file for ROM vectors.
Anyhow, for what it's worth, it's here.