Overdue Introduction

Bigfoot

Grand Master
The idea of capacitors going bang really does scare me I must say! A surprisingly large amount of energy can be hiding in those things.
The capacitors on my colleague’s PSU just fizzed and popped and oozed their electrolyte all over the circuit board. Nothing too dramatic. In my case, the bang was loud enough for me to duck beneath the desk and there was a lot of smoke.
 

NoddyPirate

Grand Master
Surely an ex is a has-been, a peri is a kind of drink and an ence is a posh ounce. So I'm a light-weight alcoholic has-been......
Ha ha ha! Quote of the day so far Mr Greece! I like it!

And you've started me off on one of my waffles to see what else we can come up with. A Deli is where you buy food, and according to the dictionary 'Quent' is a shortened version of eloquent.

So when my neighbours call me deli-n-quent, it actually means that I'm well fed and well spoken. (y)

(EDIT! - THREAD HIJACK THREAT DETECTED! This could get out of control! Over to the @AgentCooper One-Liners thread with you all!)
 

Bigfoot

Grand Master
Ha ha ha! Quote of the day so far Mr Greece! I like it!

And you've started me off on one of my waffles to see what else we can come up with. A Deli is where you buy food, and according to the dictionary 'Quent' is a shortened version of eloquent.

So when my neighbours call me deli-n-quent, it actually means that I'm well fed and well spoken. (y)

(EDIT! - THREAD HIJACK THREAT DETECTED! This could get out of control! Over to the @AgentCooper One-Liners thread with you all!)
Can you buy waffles in a deli?
 

Bigfoot

Grand Master
I forgot that most of my work with microprocessors and assembly language was in the year before I went to university, so I am not quite as experienced as I might otherwise seem. We had what seemed like a fantastic computer at the time. It had 3 terminals and several connectors that could be plugged not different CPU sockets on circuit boards. The computer would emulate a few different CPUs so that we could test our software, settingbreak points or stepping through line by line if required. Once debugged we could burn the code onto an EPROM and install a real CPU. That computer had a 10 MB hard disk drive. It was the size of a filing cabinet and sounded like a jumbo jet taking off. How times have changed.

The Motorola 6800 series was 8 bit data with a 16 bit address bus and could address 64kB of RAM. If I remember correctly, i/o hardware occupied the same address space, although one of the CPUs we used had separate i/o addresses. Later versions of the chip had 128 bytes of RAM on board that was much faster than the external RAM. There were 2 accumulators, one index pointer and one stack pointer. The Z80 was a bit more advanced, but I think it was the Intel 8086 that had a big step up in architecture.

PS I haven’t mistyped when stating 64kB of address space with 128 bytes on onboard RAM. I wonder how we managed to programme anything.
 

NoddyPirate

Grand Master
I forgot that most of my work with microprocessors and assembly language was in the year before I went to university, so I am not quite as experienced as I might otherwise seem. We had what seemed like a fantastic computer at the time. It had 3 terminals and several connectors that could be plugged not different CPU sockets on circuit boards. The computer would emulate a few different CPUs so that we could test our software, settingbreak points or stepping through line by line if required. Once debugged we could burn the code onto an EPROM and install a real CPU. That computer had a 10 MB hard disk drive. It was the size of a filing cabinet and sounded like a jumbo jet taking off. How times have changed.

The Motorola 6800 series was 8 bit data with a 16 bit address bus and could address 64kB of RAM. If I remember correctly, i/o hardware occupied the same address space, although one of the CPUs we used had separate i/o addresses. Later versions of the chip had 128 bytes of RAM on board that was much faster than the external RAM. There were 2 accumulators, one index pointer and one stack pointer. The Z80 was a bit more advanced, but I think it was the Intel 8086 that had a big step up in architecture.

PS I haven’t mistyped when stating 64kB of address space with 128 bytes on onboard RAM. I wonder how we managed to programme anything.
Wow! That fascinating! It is amazing what could be done with tiny fractions of the capacity that we have today.

Although at the same time, some of the aircraft I operated many years ago used flight management computers with a total capacity of about 400 KB. It took engineering about 20 minutes to upload a new database to it every 28 days on the AIRAC cycle. :D Even today a big Flight Management System on a modern jet might have a 20MB capacity.

Makes your modern smartphone seem rather incredible really!
 

Bigfoot

Grand Master
As I recall, we didn’t have an emulator Z80. To troubleshoot that I had to use a logic analyser. There were small probes attached to the address bus, data bus, several other lines and the board clock. I could set up the analyser to trigger from the system clock and could see the memory address and the hexadecimal code being executed. It looked quite impressive with the number of cables coming from the board to the analyser. This setup could be supplemented by using logic probes to see if individual lines were stuck on 0 or 1 or were changing.
 

ubuysa

The BSOD Doctor
I wrote the bare guts of the kernel of a multi-user operating system on a Z80 just to show it could be done. It was based on a flaw in the instruction set.

The one thing you have to be able to do in a multi-user operating system is serialise resource usage, that means you need to implement some sort of lock word - one per shared resource. The catch is that you have to be able to both test whether the lock is free AND obtain the lock in the same instruction. Modern CPUs implement these (and other) serialisation instructions but the old Z80 didn't of course.

The flaw that made it possible (and why I wrote the guts of the kernel to prove it) was the INC (HL) instruction. This increments the contents of memory pointed to by the HL register pair. The instruction returned a status flag that was intended to indicate whether the memory contents were +ve, -ve, or zero after the instruction had completed. The flaw was that the status flag returned the status of memory before the instruction was executed.

If we assume that a value of zero means the lock (resource) is free then in executing the INC (HL) instruction we can both test and obtrain the lock at the same time. If the staus returned is zero then it was free and we've just obtained it (made it non-zero). If the status returned is non-zero then the lock was busy so we decrement it (DEC (HL)) and spin back to the INC (HL) again waiting for it to become free.

Happy days......
 

NoddyPirate

Grand Master
I wrote the bare guts of the kernel of a multi-user operating system on a Z80 just to show it could be done. It was based on a flaw in the instruction set.

The one thing you have to be able to do in a multi-user operating system is serialise resource usage, that means you need to implement some sort of lock word - one per shared resource. The catch is that you have to be able to both test whether the lock is free AND obtain the lock in the same instruction. Modern CPUs implement these (and other) serialisation instructions but the old Z80 didn't of course.

The flaw that made it possible (and why I wrote the guts of the kernel to prove it) was the INC (HL) instruction. This increments the contents of memory pointed to by the HL register pair. The instruction returned a status flag that was intended to indicate whether the memory contents were +ve, -ve, or zero after the instruction had completed. The flaw was that the status flag returned the status of memory before the instruction was executed.

If we assume that a value of zero means the lock (resource) is free then in executing the INC (HL) instruction we can both test and obtrain the lock at the same time. If the staus returned is zero then it was free and we've just obtained it (made it non-zero). If the status returned is non-zero then the lock was busy so we decrement it (DEC (HL)) and spin back to the INC (HL) again waiting for it to become free.

Happy days......
I have no idea what any of that means. Are you on the right forum?

I could recommend ChatsAboutGobbledygook.com for you and @Bigfoot perhaps?
 

Bigfoot

Grand Master
@NoddyPirate you may be interested to know that I have Irish heritage. My 3x great grandmother was born in Ireland, possibly around Cork. Her oldest child was also born in Ireland, but the other 3 I know about were born in England. Unfortunately, she died at a young age, perhaps weakened by the potato famines.
 

NoddyPirate

Grand Master
@NoddyPirate you may be interested to know that I have Irish heritage. My 3x great grandmother was born in Ireland, possibly around Cork. Her oldest child was also born in Ireland, but the other 3 I know about were born in England. Unfortunately, she died at a young age, perhaps weakened by the potato famines.
I always knew there was something different about you! It must have been the slight difference in the accent on your posts.....

Tracking family history is really tough in Ireland as we have Church records predominantly after so much was lost in the Public Records Office fire of 1922. Trying to pinpoint locations and activity is nigh on immpossible sometimes....
 

Bigfoot

Grand Master
I always knew there was something different about you! It must have been the slight difference in the accent on your posts.....

Tracking family history is really tough in Ireland as we have Church records predominantly after so much was lost in the Public Records Office fire of 1922. Trying to pinpoint locations and activity is nigh on immpossible sometimes....
It is also difficult if the ancestor has what turns out to be a common name. With her name, presumed birth region of Cork and approximate year of birth, I wasn’t expecting there to be so many girls with that name, born in that year in Cork.
 

NoddyPirate

Grand Master
It is also difficult if the ancestor has what turns out to be a common name. With her name, presumed birth region of Cork and approximate year of birth, I wasn’t expecting there to be so many girls with that name, born in that year in Cork.
One of the issues we had with tracing family roots is a name change - typical for eastern Europeans in particular who needed to reduce the excessive consonant count in their surnames. You can trace them only so far as a result....
 

Bigfoot

Grand Master
One of the issues we had with tracing family roots is a name change - typical for eastern Europeans in particular who needed to reduce the excessive consonant count in their surnames. You can trace them only so far as a result....
The surname wasn’t a problem for me, just that there were loads of Donovans born in Cork in or around 1837.
 

NoddyPirate

Grand Master
The surname wasn’t a problem for me, just that there were loads of Donovans born in Cork in or around 1837.
Yes it was a busy year for us Irish then! A lot of Donovans, and Murphys, and O'Sullivans, and so on!

Still hard to believe that our population peaked at 8.1 million around that time - 70% more than we have now......damn potatoes...... :cry:
 
Top