During 1999, I did a Microcontroller course. LA51 was written so that I could compile A51 programs within the comforts of a bash shell environment. It's not perfect, but it has served me well (and I still use it to this day -- May 2007).
LA51 is very simple-- It will convert an A51 assembly language program:
start_address = 8000h
org start_address
start:
mov p1,#0ffh
loop:
mov c,090h
cpl c
mov 0f8h,c
mov c,093h
mov 0fbh,c
ljmp loop
end
into Intel HEX:
:0F8000007590FFA290B392F8A29392FB028003B7
:00000001FF