altivo: (rocking horse)
[personal profile] altivo
I first started really working with computers in 1980, as a mainframe programmer using IBM 370 assembly language. In 1981 I acquired a Z80-based microcomputer and learned Z80 assembly language. Since then I've worked in, and learned to various degrees of fluency, at least a dozen computer languages but I still return naturally to assembly language.

When you want to do something on a really tiny machine, like the TRS-80 Model 100 or something similar, where the memory is only 64K or less, assembly (or machine language as some call it) is definitely the way to go.

The problem with the Model 100 is not that you can't code that way for it, but that the ins and outs of doing so were kept very quiet by Radio Shack, probably on the theory that most users wouldn't care to get involved at that level and would just be intimidated. Getting information on coding for an 8085 CPU is not difficult. The instruction set and principles are all over the web and covered by tons of old CP/M documentation. However, figuring out how to work your code into a machine that was designed to run only BASIC at the user level is not so simple.

I started out to write a "Hello World!" program just to work out the kinks. It took three days to get it working, not because my code was wrong but because my understanding of the memory model and how to appropriate some space was unclear. I had to gather bits of information from half a dozen documents and books before I finally got it to run. The final program consists of 23 bytes of code plus 13 bytes to hold the actual text to be displayed (null-terminated.) I feel silly that it took so long, but now I understand better what's involved in reserving memory on a machine that has no disk drives and stores its files in RAM right along with the executable code. Everything is volatile unless you take the proper steps to protect the RAM you need. ;p

Date: 2008-06-11 03:35 pm (UTC)
From: [identity profile] saythename.livejournal.com
"It took three days to get it working"

Yes, but you must be savoring the feeling of mastery
over the obdurate machine. ^.~

Assembly is hard shit, though its the sort of thing
you can dream in if you try to hard at it.

Good job.

Date: 2008-06-11 03:44 pm (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
You can tell me "good job" when I get something useful going. I want to port the interpreter for the MOUSE language over to the Model 100. That's about 2K of machine language.

I also want to port a client for the Model 100's external disk drive over to the NEC Starlet (a CP/M laptop.) That's a lot smaller piece of code, but may well be the more difficult task.

Date: 2008-06-11 04:45 pm (UTC)
From: [identity profile] saythename.livejournal.com
I used to glory in that stuff, finding out
just the right FF to get that one instruction
going to the Accumulator.

Now...well now I don't want to dig in the
machines guts anymore. I just want it to
work, I want the software to hold my hand
and do things for me so I can get on with the
goddamn IDEA.

So I'm learning Python.

^.~

Date: 2008-06-11 05:41 pm (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
Icky. I don't like python.

Date: 2008-06-11 06:23 pm (UTC)
From: [identity profile] saythename.livejournal.com
*nosebumps* Yes you do, say it, say;

"I love high level languages"

C'mon, don't be the contrary sort, just
acknowledge you like it when you type
something and it works.

^.~

Date: 2008-06-11 06:24 pm (UTC)
From: [identity profile] saythename.livejournal.com
*imagines your reply*

It doesn't work, it...

*facepaws and lets your sheep loose
in your house*

Date: 2008-06-11 06:37 pm (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
Actually, I see more bugs in high level languages, and especially C, than in assembler. I think the reason is that when there's an error at the assembler level, it causes a spectacular crash instantly. Errors in C are often not found until months or years after they were created.

I do like high level languages, but selectively. I'm fond of perl and REXX. I've written thousands of lines of Pascal, including some that were published for actual pay. In spite of a negative first impression of php, I've come around to finding it fairly useful. I won't count FORTRAN here because compared to those others, it's nearly assembly language itself.

Date: 2008-06-12 08:07 pm (UTC)
From: [identity profile] saythename.livejournal.com
C is like driving a Porshe on a mountain
road with no gaurdrails.

There are other ways to do it, there are
Pascal varients, even BASIC variants that
let you block things out just so.

Thats why I like Python so much, the only
delimiters are white spaces, no searching
for that missing close bracket or other
stupidity. Python isn't a high level language
mind you, its a VERY high level language. But
it does amazing stuff. EVE Online is written
in that, if you want sheer graphics power.

And its amazingly logical. I mean, c'mon,
dear god, you WANT logical, you DREAM logical,
you want something that WORKS.

And Python does. If success is the best
revenge, Python is preening.

Date: 2008-06-12 11:56 pm (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
Too vague and "fuzzy" feeling for me. Not to mention inefficient.

Date: 2008-06-13 01:50 am (UTC)
From: [identity profile] saythename.livejournal.com
You prefer Over The Mountain?

@.@

Date: 2008-06-12 08:03 pm (UTC)
From: [identity profile] saythename.livejournal.com
I started on the 4300 series, and loathed them. I loathed how I had
to sit and make zeros work just so and in the end I got a few bits
of work out of massive amounts of brain power. New tools is what I
craved.

So now I have them.

http://www.python.org/

Date: 2008-06-12 11:55 pm (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
What on earth did they have you using? RPG? ;p

Date: 2008-06-13 01:49 am (UTC)
From: [identity profile] saythename.livejournal.com
It was RPG! Damn it, now I'm having post
traumatic Report Generator Disorder!

@.@

Date: 2008-06-13 01:59 am (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
Well, I can understand why RPG would give you bad dreams. Eeeew. Even COBOL would have been better than that. ;p

Date: 2008-06-15 04:22 pm (UTC)
From: [identity profile] saythename.livejournal.com
This is why I prefer a different kind of RPG.

I think you deserve some time with one too...
thats why I'm getting you on my guest pass
to;

http://www.youtube.com/watch?v=egeNrthYW20

Its just your speed!

^_^

Date: 2008-06-15 04:48 pm (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
Umm, no flash here, thank goodness.

Date: 2008-06-14 08:08 am (UTC)
From: [identity profile] cabcat.livejournal.com
You are insane aren't you Mr Hoss. :)

Date: 2008-06-14 11:15 am (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
Insane? No more so than felines who take their own transmissions apart. ;p

Date: 2008-06-14 12:18 pm (UTC)
From: [identity profile] cabcat.livejournal.com
What? That's normal :)
You're doing it for fun!!

Date: 2008-06-14 01:30 pm (UTC)
ext_39907: The Clydesdale Librarian (Default)
From: [identity profile] altivo.livejournal.com
Well, I think what I'm doing is fun, but actually I have specific purposes just as you did with the transmission. And what I want is something I can't just go buy, so if it's gonna happen I have to do it myself.

November 2024

S M T W T F S
     12
345678 9
10111213141516
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 23rd, 2026 05:26 am
Powered by Dreamwidth Studios