G'day all. (1 Viewer)

ChrisO

Registered User.
Local time
Tomorrow, 03:03
Joined
Apr 30, 2003
Messages
3,202
G’day all.

My name is ChrisO (actually it’s not but I was too young to argue about it at the time.)

I’m from Australia and, despite some Americans who think that it’s between Germany and Slovenia, that’s the big lump between Africa and South America, going the long way. (If you go the other way you might end up at Inaccessible Island but since it’s inaccessible you probably won’t. To quote Wikipedia “throughout its history it has had no permanent population” and I can understand that.)

Okay, enough of geography…

I was born at a very early age and will probably die at the end of my life. But before I go to the other side of the grass I have but one wish…a long life.

Okay, enough of longevity…

I started work before I should have and it wasn’t my fault, honestly. When I applied for a job as a Fitter and Turner they said I had reasonable math and science skills, which was news to me, so they offered an apprenticeship as a Scientific and Industrial Instrument Maker. I said, great I’ll take it…what’s that? So they explained and asked if I could start next Monday. Sure I said but I’ll still be 14 next Monday and people can’t start an apprenticeship till their 15. So the company swang it with the apprenticeship board to let me in that year. (You see, it wasn’t my fault I started early. It also had the effect that, 5 years later, I was one of the youngest tradesmen in Australia, if only for 1 day.)

Okay, enough of job interviews.

There is a serious problem with being a Scientific and Industrial Instrument Maker, it doesn’t fit in the box when filling out (or is that filling in, never really knew) forms. And you can’t abbreviate it to just Instrument Maker because people will ask; can you make me a piano? No, I don’t have Bösendorfer written above my upper lip and besides, I don’t have the black keys but I do have the cracks. Apologies to Victor Borge However, at this stage I should point out that those pianos are not made in the big lump between Africa and South America, going the long way. And I doubt very much if they are made on Inaccessible Island because, apart from price, it would make them more…

Okay, enough of job titles.

My first brush with computers came as a moment of opportunity. (Took a while to get around to computers, didn’t it.) I had a girlfriend, who was a programmer, and so I naturally thought it could not hurt to show some interest in her. (If you know what I mean.) Well, she probably did know what I meant but she gave me a book on PDP8 machine code programming instead. Not exactly what I had in mind but hey, when in Rome…

However, my attempt to read the book did work (you know what I mean) but much to her chagrin I was more hooked on computers than her.

Okay, enough of first computer encounters.

Then came the soldering iron and my first computer. (I was trained to use a soldering iron while serving an apprenticeship as a Scientific and Industrial Instrument Maker assembling Bösendorfer pianos on Inaccessible Island. {Notice how the last sentence tends to tie all things together.}) It was a D2 kit by Motorola and the included documentation was excellent, best I’ve seen so far.

So the next 4 years was done in 6800 machine code. Hacking, a bad word these days, was done in those days as a matter of learning. Nothing destructive just the disassembly of anything we could get our hands on. That’s the way people learned before the www, disassembling compiled code.

Come 1980 I started working with things which were in-house built computers and in-house written computer languages. These were AMD 2900 4 bit sliced based computers. The AMD 2900 could more correctly be called a sequencer and not a micro-processor. One of the defining differences is that the sequencer had its micro-code defined in external ROM. (Even machine code, the stuff that you or I might write, is not processable but is handed to a lower hardware level). The idea of having micro-code defined in external ROM means that the manufacturer could define their own machine code instructions, and hence high level language, in fusible-link ROMS.

And so it went that way till the early ‘90’s when a shift to ‘C’ was required. The singular motive force was to write high-speed CRC polynomial code. It can’t be done in a high-level language, not fast enough, and who wants to write in assembler or machine code these days? ‘C’ was the answer and it helped that processors were becoming faster than the serial communications they needed to support. So, ‘C’ was the chosen tool.

Then a couple of years with C++ just for laughs. It’s not that there’s anything wrong with C++ but it doesn’t make for an easy attack on other applications such as Access. So when Access was thrown at me circa 1996, VBA was the answer.

And here I am today, a couple of years from retirement not wishing to retire. No Bösendorfer piano in the living room, no villa on Inaccessible Island.

But perhaps that’s just as well, I wouldn’t be able to find them.

Regards,
Chris.
 

Vassago

Former Staff Turned AWF Retiree
Local time
Today, 12:03
Joined
Dec 26, 2002
Messages
4,751
Anyone who thinks Australia is between Germany and Slovenia is an idiot. Everyone knows that's where penguins come from. ;)
 

Kryst51

Singin' in the Hou. Rain
Local time
Today, 11:03
Joined
Jun 29, 2009
Messages
1,898
This reads like something similar to "Hitchhikers Guide to the Galaxy"! :D Awesome skills
 

ChrisO

Registered User.
Local time
Tomorrow, 03:03
Joined
Apr 30, 2003
Messages
3,202
Oh those penguins, now that they have learned how to fly they can come from anywhere.
Saw it on the BBC so it must be true… ;)

Edit:
And it looks like we’re coming up to that time of the year again. :D
 
Last edited:

Vassago

Former Staff Turned AWF Retiree
Local time
Today, 12:03
Joined
Dec 26, 2002
Messages
4,751
Oh those penguins, now that they have learned how to fly they can come from anywhere.
Saw it on the BBC so it must be true… ;)

Edit:
And it looks like we’re coming up to that time of the year again. :D

Oh, I've seen the video. Pretty good animation actually, I was pretty impressed.

You watch the BBC? So, it's actually part of the UK then, perhaps between Canada and Alaska?

Now I'm just getting confused! The rest of the world needs to learn geography. :mad:
 

The_Doc_Man

Immoderate Moderator
Staff member
Local time
Today, 11:03
Joined
Feb 28, 2001
Messages
26,999
Holy Guacamole, a person who actually knows what a PDP-8 looks like? Egad, I thought it unlikely anyone could even spell it...

Myself, I was always a PDP-11 person back in my college days - except for the PDP-10 that UNO got back in the late 1960s. I also did my share of 8088 programming and Z-80 stuff. But when it came to doing CRCs, give me a VAX every time. (Of course, in a way it is cheating since the VAX has the CRC instruction in its firmware.)

Now I'm on the Alpha for my "day" job and hoping to be able to "graduate" soon to the Integrity processor, the IA64 line from HP. Running OpenVMS, just to prove how much of a dinosaur herder I am. They've got some nice dual-core 64-bitters right now and (I'm told) have some quad-core 64-bitters scheduled for next year.

I'm about 5 years from retirement so that will probably be my last day-job upgrade. But it should be a good one.
 

ChrisO

Registered User.
Local time
Tomorrow, 03:03
Joined
Apr 30, 2003
Messages
3,202
Yep, the good old days.

I never actually worked on a PDP-8, just read the book for the already stated reason. :D
The first DEC machine was a PDP-11, 3 x 8k + 1 x 4k core memory, the upper 4k address space for I/O, paper tape boot strap loader, all the good stuff.

Excellent diagnostic program, the Family Exerciser…
Set carry
Branch if Carry Set
Halt 1 (Grab the book and lookup error code 1)
Clear Carry
Branch if Carry Clear
Halt 2 (Grab the book and lookup error code 2)
And so on to the next instruction…

Or tie the computer in a loop…
Start:
Set Carry
Clear Carry
Branch Start

Hook up a crow to the backplane and watch the waveform.
Half cycle missing? Broken wire. Not steep enough rise-time? Faulty chip. Problem fixed.

----------

The manufacture of the D2 kit did an excellent job with their documentation, in fact they could have been said to go beyond what might have been expected. Two examples come to mind: -

The first was that they said they could not guarantee the chip from failure. Their idea of failure being based on all the possible sequences of instruction execution. What this meant was that if, for instance, a processor had 69 instructions it would mean writing, and testing, the factorial of 69 instruction sequences. That, for obvious reasons, they were not going to do.

The second was that the instructions were 8 bits in length. This means the hardware could have fetched 8 bits at a time and figure out what was needed next. However, it was determined that there were three possible fetch requirements namely 1, 2 or 3 bytes. So to optimize the fetch sequence they decided on a 2 byte fetch. What this meant was that if an 8 bit instruction only needed 1 byte then the second byte was discarded. If the 8 bit instruction needed the second byte it was used, it was already fetched. If the 8 bit instruction needed a third byte then it would do another fetch. All fine and dandy because they had optimised the fetch sequence at two bytes.

Enter Murphy, stage left. The chips I/O address space was memory mapped, meaning that I/O chips were decoded on a common address bus. This meant that a fetch of I/O data and status, was done exactly the same way as instructions and other data. So far so good because it was fast and their I/O chips were software programmable.

And here’s where Murphy enters the scene. A single 8 bit instruction, which only needed 1 byte could be placed in the byte of memory immediately before the I/O address space. Under these circumstances the second byte fetch, done for optimisation and which would be discarded, could inadvertently read from I/O address space. And since the I/O chips could have a status register that status register could be inadvertently read by the instruction fetch immediately preceding it. Now given that the I/O’s status was cleared on read it meant that an incoming byte, in a serial communication chip, or worse still an interrupt status, might be missed.

But the manufacture published that data and good on them for doing so.
That, to me, is why their documentation was so good.

Yep, the good old days. (What will the kids think?)

Regards,
Chris.
 

Kryst51

Singin' in the Hou. Rain
Local time
Today, 11:03
Joined
Jun 29, 2009
Messages
1,898
Yep, the good old days.

I never actually worked on a PDP-8, just read the book for the already stated reason. :D
The first DEC machine was a PDP-11, 3 x 8k + 1 x 4k core memory, the upper 4k address space for I/O, paper tape boot strap loader, all the good stuff.

Excellent diagnostic program, the Family Exerciser…
Set carry
Branch if Carry Set
Halt 1 (Grab the book and lookup error code 1)
Clear Carry
Branch if Carry Clear
Halt 2 (Grab the book and lookup error code 2)
And so on to the next instruction…

Or tie the computer in a loop…
Start:
Set Carry
Clear Carry
Branch Start

Hook up a crow to the backplane and watch the waveform.
Half cycle missing? Broken wire. Not steep enough rise-time? Faulty chip. Problem fixed.

----------

The manufacture of the D2 kit did an excellent job with their documentation, in fact they could have been said to go beyond what might have been expected. Two examples come to mind: -

The first was that they said they could not guarantee the chip from failure. Their idea of failure being based on all the possible sequences of instruction execution. What this meant was that if, for instance, a processor had 69 instructions it would mean writing, and testing, the factorial of 69 instruction sequences. That, for obvious reasons, they were not going to do.

The second was that the instructions were 8 bits in length. This means the hardware could have fetched 8 bits at a time and figure out what was needed next. However, it was determined that there were three possible fetch requirements namely 1, 2 or 3 bytes. So to optimize the fetch sequence they decided on a 2 byte fetch. What this meant was that if an 8 bit instruction only needed 1 byte then the second byte was discarded. If the 8 bit instruction needed the second byte it was used, it was already fetched. If the 8 bit instruction needed a third byte then it would do another fetch. All fine and dandy because they had optimised the fetch sequence at two bytes.

Enter Murphy, stage left. The chips I/O address space was memory mapped, meaning that I/O chips were decoded on a common address bus. This meant that a fetch of I/O data and status, was done exactly the same way as instructions and other data. So far so good because it was fast and their I/O chips were software programmable.

And here’s where Murphy enters the scene. A single 8 bit instruction, which only needed 1 byte could be placed in the byte of memory immediately before the I/O address space. Under these circumstances the second byte fetch, done for optimisation and which would be discarded, could inadvertently read from I/O address space. And since the I/O chips could have a status register that status register could be inadvertently read by the instruction fetch immediately preceding it. Now given that the I/O’s status was cleared on read it meant that an incoming byte, in a serial communication chip, or worse still an interrupt status, might be missed.

But the manufacture published that data and good on them for doing so.
That, to me, is why their documentation was so good.

Yep, the good old days. (What will the kids think?)

Regards,
Chris.

I think that is the first time I have read something about how things (even out of date things) actually work, and have understood them. Wow.
 

Lightwave

Ad astra
Local time
Today, 16:03
Joined
Sep 27, 2004
Messages
1,521
....... (even out of date things) .........

It is my understanding at the base microprocessor level the broad structure of the way in which these things work hasn't changed at all.

At the end of the day it all has to be put through boolean logic
 

Kryst51

Singin' in the Hou. Rain
Local time
Today, 11:03
Joined
Jun 29, 2009
Messages
1,898
It is my understanding at the base microprocessor level the broad structure of the way in which these things work hasn't changed at all.

At the end of the day it all has to be put through boolean logic

See, that just proves my inability to understand all the more.:p
 

Lightwave

Ad astra
Local time
Today, 16:03
Joined
Sep 27, 2004
Messages
1,521
Ok well take a real good read through the following links – takes a couple of goes for it all to sink in.
These are the best description of how these things work which I have found you kind of need to understand all of the first three links. Don't be put off by terms like latches and flip flops these are themselves small circuits made up of switches that have predictable outputs.

http://computer.howstuffworks.com/microprocessor2.htm

So that takes you down to the address bus and data bus levels. After that you can go smaller by looking at Boolean logic

http://computer.howstuffworks.com/boolean1.htm

And actually when you are down at that level you almost need to go smaller to start needing to understand the basic concepts of how 1 and 0s can be implemented using switches ( or what is within the and and / or / XOR gates )
Because even the And gate which looks like a single item is really made up of multiple things (ie two inverters/switches) see

http://computer.howstuffworks.com/boolean6.htm

Once you understand these switches it is much easier to see how things work with regard for instance to memory. The inverter being a complete analogy to something like
Flash memory. See the diagram half way down

http://www.howstuffworks.com/flash-memory.htm

At that level you are getting down to electrical engineering which itself uses generally unknown physics like Fowler-Nordheim tunneling to create alternative circuits that are exact switch analogies.

I'm just starting to figure this all out myself
 

The_Doc_Man

Immoderate Moderator
Staff member
Local time
Today, 11:03
Joined
Feb 28, 2001
Messages
26,999
For those who want the simpler definitions:

A "latch" is a circuit that, as long as it has power, stays where you set it.

A "flip-flop" is a circuit that is either 1 or 0 and changes from one to the other each time a pulse comes down its primary input line. (You can override it, but usually you don't.) It is the basis for all sorts of counters and clocks.
 

Vassago

Former Staff Turned AWF Retiree
Local time
Today, 12:03
Joined
Dec 26, 2002
Messages
4,751
For those who want the simpler definitions:

A "latch" is a circuit that, as long as it has power, stays where you set it.

A "flip-flop" is a circuit that is either 1 or 0 and changes from one to the other each time a pulse comes down its primary input line. (You can override it, but usually you don't.) It is the basis for all sorts of counters and clocks.

That explains everything! :) :confused: :D
 

Users who are viewing this thread

Top Bottom