Click here to Skip to main content
15,915,093 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralCCC-14-07-2016 Pin
PeejayAdams14-Jul-16 0:22
PeejayAdams14-Jul-16 0:22 
GeneralRe: CCC-14-07-2016 Pin
Duncan Edwards Jones14-Jul-16 0:50
professionalDuncan Edwards Jones14-Jul-16 0:50 
GeneralRe: CCC-14-07-2016 - SOLVED Pin
PeejayAdams14-Jul-16 0:53
PeejayAdams14-Jul-16 0:53 
GeneralRe: CCC-14-07-2016 Pin
OriginalGriff14-Jul-16 0:57
mveOriginalGriff14-Jul-16 0:57 
GeneralRe: CCC-14-07-2016 Pin
PeejayAdams14-Jul-16 1:00
PeejayAdams14-Jul-16 1:00 
GeneralRe: CCC-14-07-2016 Pin
OriginalGriff14-Jul-16 1:10
mveOriginalGriff14-Jul-16 1:10 
GeneralRe: CCC-14-07-2016 Pin
PeejayAdams14-Jul-16 1:25
PeejayAdams14-Jul-16 1:25 
GeneralHappy Birthday, CDP1802 Pin
CDP180213-Jul-16 22:35
CDP180213-Jul-16 22:35 
No, not me. My favorite little microprocessor. It was introduced in 1976 by RCA. Only a few years after the microprocessor was officially invented, it offered some features which made it very innovative at the time. Too innovative for some people who called it 'strange' or an 'odd beast'.

Like its predecessor, the (two chip) CDP1801, it was built in CMOS technology. RCA built the computers for space probes and became a pioneer in CMOS (they called it COSMOS Smile | :) ) technology because CMOS offers higher noise immunity and extremely low power consumption when compared to other technologies. It also was considered o be slow, because those advantages are based on pairs of MOSFETS (CMOS transistors) doing the switching in the gates. Also, needing twice as many transistors for a gate was not helpful with the very limited densities on a chip.

Today practically everything is CMOS. Processors use billions of MOSFETS and at their high clock frequency they get very hot, despite the low power consumption of CMOS. They would instantly burst into flames if you could magically change the technology.

Besides driving a (relatively) typical microprocessor bus, the CDP1802 offered a few general purpose IO lines which could be controlled by machine language instructions, like microcontrollers. Later versions even had onboard ROM and RAM, resembling a modern microcontroller even more. This hybrid design may appear strange, but it allowed to build very compact single board computers with only very few ICs besides the CPU itself. In my old computer a single output bit did triple duty as rudimentary sound generator, the output signal to the cassete recorder to save programs and the output line of the RS232 serial port. Sound generation, loading and saving from tape and serial communication were done by the CPU in software, only one at a time of course.

And now the 'oddest' feature. The processor does not have many addressing modes. Everything is done by loading an address into a register and access memory over this pointer. Addressing modes are emulated by manipulating the address in the register. Period. That's it. The processor does not even have a stack pointer or a program counter, just generous 16 general purpose registers. You just load an address into any register and designate it to be the program counter or stack pointer. Back then people had no other word than 'strange' for this. It appeared to be spartan, almost primitive. While there was lots of room for improvement, it also easy to understand. I probably could get most people here to write machine code for this little processor within an hour. Later, a similar concept became very sucessful. The most widely used processor of all times uses it and even Intel CPUs use it to implement their complex instruction set in microcode. It's not called 'strange' anymore. Today it's called RISC.

For a few months I have now been designing a 'reboot' of my old computer. It shares much of the old design, but drops the anachronisms. How about a real serial port instead of letting the CPU tag along with 300 baud? How about up 16 megabytes ROM and RAM. Or perhaps delegating IO and graphics to separate CPUs and letting the main CPU run full blast without having to care about interrupts or DMA?

Of all things, the keyboard is still a problem. Kyboards with their own encoder that hook up to the parallel port can only be found in museums. Instead, I could

- Butcher a cherry keyboard for he key switches, pay a chip collector a generous ransom for the (hopefully functional) encoder (a CDP1871), make a costly circuit board and build a brand new oldschool keyboard. This will be somewhat expensive, but easily last another 40 years.

- Program a microcontroller or use a handful of cheap discrete CMOS ICs to build a PS/2 port. I have some PS/2 keyboards lying around and as bonus I can also add a mouse port. This option is not too expensive, but a little too modern for those who like everything to be 'original'. On the other hand: I have a complete and functional old computer which will be left as it is.

- Something really unusual, like tearing the microcontroller out of a PC keyboard, hooking up the key matrix to the CPU bus and an input port. Then the CPU can make dummy memory accesses to scan the keyboard's columns and monitor the input port for responses on the keyboard's rows. This costs next to nothing if you have a keyboard to butcher, but the keyboard will be connected over a wide and awkwardly short ribbon cable. Besides that, the CPU will have to scan and decode the keyboard constantly.

This really is fun. After all those years I finally get my old computer as I always wanted it. Smile | :) Simply buying a Raspberry Pi or something like that would be boring.

Would this little project be of any interest as an article or shall I leave you alone with this dusty oldschool stuff?


Edit: Oooops. This got longer than i thought.
The language is JavaScript. that of Mordor, which I will not utter here

This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a f***ing golf cart.

"I don't know, extraterrestrial?"
"You mean like from space?"
"No, from Canada."

If software development were a circus, we would all be the clowns.


modified 14-Jul-16 4:54am.

GeneralRe: Happy Birthday, CDP1802 Pin
Manfred Rudolf Bihy13-Jul-16 23:19
professionalManfred Rudolf Bihy13-Jul-16 23:19 
GeneralRe: Happy Birthday, CDP1802 Pin
CDP180213-Jul-16 23:44
CDP180213-Jul-16 23:44 
GeneralRe: Happy Birthday, CDP1802 Pin
megaadam13-Jul-16 23:53
professionalmegaadam13-Jul-16 23:53 
GeneralRe: Happy Birthday, CDP1802 Pin
OriginalGriff14-Jul-16 0:19
mveOriginalGriff14-Jul-16 0:19 
GeneralRe: Happy Birthday, CDP1802 Pin
Besinger14-Jul-16 0:58
Besinger14-Jul-16 0:58 
GeneralDrools - I cringe! Pin
Mycroft Holmes13-Jul-16 22:12
professionalMycroft Holmes13-Jul-16 22:12 
RantRe: Drools - I cringe! PinPopular
Duncan Edwards Jones13-Jul-16 22:28
professionalDuncan Edwards Jones13-Jul-16 22:28 
GeneralRe: Drools - I cringe! Pin
Mycroft Holmes13-Jul-16 23:07
professionalMycroft Holmes13-Jul-16 23:07 
GeneralRe: Drools - I cringe! Pin
Duncan Edwards Jones13-Jul-16 23:13
professionalDuncan Edwards Jones13-Jul-16 23:13 
GeneralRe: Drools - I cringe! Pin
W Balboos, GHB14-Jul-16 0:44
W Balboos, GHB14-Jul-16 0:44 
GeneralRe: Drools - I cringe! Pin
V.14-Jul-16 1:41
professionalV.14-Jul-16 1:41 
GeneralDaily discovery PinPopular
Duncan Edwards Jones13-Jul-16 22:00
professionalDuncan Edwards Jones13-Jul-16 22:00 
GeneralRe: Daily discovery Pin
Besinger14-Jul-16 1:57
Besinger14-Jul-16 1:57 
GeneralRe: Daily discovery Pin
W Balboos, GHB14-Jul-16 2:03
W Balboos, GHB14-Jul-16 2:03 
GeneralMQOTD Pin
V.13-Jul-16 21:39
professionalV.13-Jul-16 21:39 
GeneralRe: MQOTD Pin
Herman<T>.Instance13-Jul-16 22:11
Herman<T>.Instance13-Jul-16 22:11 
GeneralRe: MQOTD Pin
RUs12313-Jul-16 22:16
RUs12313-Jul-16 22:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.