Down memory lane with XASM51

greenspun.com : LUSENET : TB2K spinoff uncensored : One Thread

Got a neat new assignment to implement a serial protocol to a graphics display controller for flat panels. This protocol runs on an 80C32, one of the 8051 family of microcontrollers.

The (freeware) assembler I was given was a hoot. XASM51.COM. No documentation, of course. Copyright 1983. Crashed immediately on all my computers, took a morning to track this down to FAT32, not recognized (!) Don't ask me what it's doing with the FAT.

Banged out some code, tried to assemble, no luck. An error message says **NN lines found with errors** but of course no hint which lines or what the errors might be. After a few hours of trial and error, I discovered that the -x command line switch produced a "debugging" list file. This file identified the lines with the errors, but no mention of what those errors might be. And every single line was an error! Who'd have expected -x? Took that long going through the alphabet that far.

After another day of experimenting, I discovered the following syntax rules. These should sound familiar to old timers: 1)No lower case allowed. 2) No underscores in labels or variable names. 3) No variables or labels of more than 8 characters (NOT just first 8 different. NO MORE than 8). 4) No tabs allowed in source file.

I don't have a testbed, but the assembler came with a simulator. Great! So I got a small test program to assemble, now to simulate. No documentation, of course. So far, I've learned that the simulator is very modal, and extremely unforgiving. So far, I seem to have mastered "hang mode", which happens whenever you press an invalid key. No recovery but to reboot after any typo. Tomorrow I'll see if I can find "command mode". No help, of course. Rebooting after every failed experiment really slows things down.

Remember how things used to be? Man, those were the days.

-- Flint (flintc@mindspring.com), May 11, 2000

Answers

Good luck Flint!

Thankfully, not in your field,

Frank

-- Someone (ChimingIn@twocents.cam), May 11, 2000.


LOL Flint. I feel for ya!

Reminds me of this Atari-800 emulator that I found a couple years ago. I have a bunch of old 6502 assembly code that I would love to play with again in my spare time (like I have any). The emulator works great, but I have yet to find a program that can read the old Atari SS-SD floppys on a PC!

Such is life... <:)=

-- Sysman (y2kboard@yahoo.com), May 11, 2000.


This is a mainframe story, vs. micros. When my shop got IBM's GIS, (early 70s) our complaint (absolutely sincere, no sarcasm whatever) was that the more obscure the error, the more certain we could be that the explanation for the error code would be the simple phrase "self-evident".

-- Peter Errington (petere@ricochet.net), May 12, 2000.

Reminiscent of the joke about Ken Thompson (co-developer of UNIX) ca. 1980:

The UNIX Philosophy

Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a GIANT ? lights up in the center of the dashboard.

"The experienced driver," says he, "will usually know what's wrong."

-- DeeEmBee (macbeth1@pacbell.net), May 12, 2000.


Reminds me of the time I was asked to write some stuff for a PIC16C57(?), and had to use Microchip's wunnerful assembler. Crash, bang, thump, lockup. The ONLY good thing about it was, it was free.

Don't slap me for telling you what you know, but of course, there ARE other free- and shareware assemblers for that chip available. Check Programmer's Heaven (http://www.programmersheaven.com) and see if they don't have one that'll do a bit better.

(Or does the project spec ALLOW you to change assemblers? If not, I hope you're charging by the hour! [g])

-- Stephen (you can retire after this job!)

-- Stephen M. Poole, CET (smpoole7@bellsouth.net), May 12, 2000.



Moderation questions? read the FAQ