Author Topic: help! how to make a nsc800 computer?  (Read 67819 times)

0 Members and 1 Guest are viewing this topic.

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
help! how to make a nsc800 computer?
« on: January 31, 2016, 05:18:02 pm »
help! how to make a nsc800 computer?
and how to upload a simple sketch on it?
please help! 
datasheet:
« Last Edit: January 31, 2016, 05:20:24 pm by ali6x944 »
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: help! how to make a nsc800 computer?
« Reply #1 on: January 31, 2016, 05:40:21 pm »
That's very vague.

The nsc 800 is a z80 compatible processor, so you build the system as you would a z80 based one.
As for sketches, well, the z80 and this chip boot from rom so you have to cross compile your code into z80.
If you want an arduino interface to program it, then you have to port wired and all the rest of the libraries to support the z80 and the nsc 800 capabilities.

Maybe someone already has ported the Arduino IDE to support the Z80, seems like someone would have thought about it, not sure what for, but sometimes people just do it just to see if it can be done.

Anyway, I would start by looking on how to build a z80 computer and adapt it to your ncs800 chip.
 
The following users thanked this post: ali6x944

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #2 on: January 31, 2016, 06:01:22 pm »
thanks man really appreciated  :-+
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #3 on: January 31, 2016, 06:05:18 pm »
oh does it work with RAM or OTPROM instead of ROM ?
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: help! how to make a nsc800 computer?
« Reply #4 on: January 31, 2016, 06:54:23 pm »
You'll need CMOS ROM, you can do the one time programable as you mentioned, or EEPROM. If you want something that can be programmed on the fly you could implement a boot loader in the lower ROM memory, then you are going to need CMOS Ram as well, I would go with SRAM.

There are many ways you can go about this.

I guess the important part is to leave the lower address space on a One Time Programable ROM that can transfer ROM images into an EEPROM section that will hold your custom ROMs, and of course you will need RAM and other things depending what you have in mind. Also the programs can be executed from RAM and the ROM can handle moving the images into RAM.

Without knowing what you are trying to achieve is hard to say.

Look for example at Ben's build of a ZX Spectrum with dual selectable ROMs, although he uses One Time Programable ROMs so pretty much the only software that can be modified would be on RAM.



But I wouldn't just build that with yours unless you can get a hold of the ULA, not sure where he got his.
And as far as I know he doesn't upload the project anywhere so you have to do it on your own and finding some details that he assumes you'll know.
« Last Edit: January 31, 2016, 07:12:55 pm by miguelvp »
 
The following users thanked this post: ali6x944

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: help! how to make a nsc800 computer?
« Reply #5 on: January 31, 2016, 07:06:04 pm »
I take it back, there are files available for download:

https://www.element14.com/community/docs/DOC-66060/l/ben-hecks-build-design-files?ICID=benheck-buildkit-videodoc

But I haven't look at them.
 
The following users thanked this post: ali6x944

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: help! how to make a nsc800 computer?
« Reply #6 on: January 31, 2016, 07:12:36 pm »
Also it appears the ZX Spectrum ULA can be done with an FPGA or CPLD. Interesting.

There is a book called "the zx spectrum ula" and there might be VHDL or Verilog code out there to do it.
 

Offline C

  • Super Contributor
  • ***
  • Posts: 1346
  • Country: us
Re: help! how to make a nsc800 computer?
« Reply #7 on: January 31, 2016, 10:03:12 pm »

ali6x944
   You might think of a NSC800 as a Z80 instruction set CPU with a 8085 like interface.
You use a 8-bit latch to get A0-A7 from the shared AD0-AD7 bus. The latch is controlled by ALE.

There were CP/M based computers using the NSC800. Note that CP/M can be all ram memory when running.

At power up reset, the NSC800 like most microcomputers needs a program. Anything that can store a program while the NSC800 is powered off will work. This power up boot program needs to be on a parallel bus device. The simple is use a rom, eprom, eeprom or flash chip with parallel memory interface.
Some systems use a second processor to load the power up boot program in ram before releasing the NSC800's reset line. An Arduino, STM32 discover board, MBED board or something like this could preform this task.
 
The power up boot program does not have to be large if it can load a program from something. One system I have uses 512 bytes for example.

You often see the term bootstrap. A very small program loads a bigger more powerful program that then loads the system. The advantage is very small program in rom, eprom, eeprom or flash does not often change while the following programs are easy to change.

Note the "power up boot program" not just boot program. This is very simple and at the same time very powerful idea.  This would let you create a new boot and test it using ram memory.

A reset button resets the NSC800.
A power up reset button resets the NSC800 and clears a FF or a 8-bit latch like a 74xx273.
With the FF or 273 clear the power up boot program device is in memory to be used for power up boot.
Setting the FF or setting a bit in the 273 removes the power up boot device from memory. This allows 64k of ram or some other memory map.

When you have the basics look at simple yet powerful I/O
Think of packets of data.
A floppy disk controller is a register based data packet controller. A hard disk controller, larger registers.
When you are talking to a smart controller, it is cheaper and more powerful to use a command packet stream. One byte in the stream could select which of 256 devices or locations to use. Two bytes increases this to 65,536.
You have command, what device, what location.
SCSI, HPIB, IEE488, HDLC, SDLC and many other interfaces use this idea.

For a write you send the command stream followed by the data stream.
For a read you send the command stream and wait for the data stream return.
You must at the logic level be able to tell the command stream from the data stream. For parallel interface a 9th-bit would work.  A command stream is with 9th-bit set while a data stream the 9th-bit is clear. Simple yet very powerful. Many ways to do  this.

Using modern parts and ideas can make your NSC800 simpler and at same time more powerful.
The newer static ram is both faster and larger then when NSC800 came out.




 
The following users thanked this post: ali6x944

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: help! how to make a nsc800 computer?
« Reply #8 on: February 01, 2016, 01:03:02 am »
is the nsc800 chip still in production ?
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: help! how to make a nsc800 computer?
« Reply #9 on: February 01, 2016, 01:20:09 am »
is the nsc800 chip still in production ?

Probably not, but there is a little stock left:
http://www.findchips.com/search/nsc800

Actually more than a little:
https://octopart.com/search?q=nsc800

A lot of home security systems used z80 based boards, maybe that's enough to keep on making them?
« Last Edit: February 01, 2016, 01:22:46 am by miguelvp »
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #10 on: February 01, 2016, 03:30:23 pm »
what is "Small Device C Compiler"  common toolchain? and how to connect nsc800 with  "Small Device C Compiler"  common toolchain?

 just so u know i don't have any micro controller or usb to ttl converter of any kind to help me do any icsp or to send data from my computer to the nsc800 except USB -of course- ,RS-232 from a d-sub connector, and LAN.
is their is a method i could use to transfer data using those things listed above?
thanks a lot every body and thanks for generous support :-+
 

Offline Moondeck

  • Regular Contributor
  • *
  • Posts: 142
  • Country: dk
  • i really like compilers
Re: help! how to make a nsc800 computer?
« Reply #11 on: February 01, 2016, 03:36:21 pm »
Do you have any experience with this stuff at all? Microcontrollers? Microprocessors?
« Last Edit: February 01, 2016, 03:54:06 pm by Moondeck »
I'm selling 100ml bottles of free energy, PM me for pricing.
 
The following users thanked this post: ali6x944

Offline Bruce Abbott

  • Frequent Contributor
  • **
  • Posts: 627
  • Country: nz
    • Bruce Abbott's R/C Models and Electronics
Re: help! how to make a nsc800 computer?
« Reply #12 on: February 01, 2016, 05:26:54 pm »
just so u know i don't have any micro controller or usb to ttl converter of any kind
But you do have the NSC800 CPU itself, right?

Quote
just so u know i don't have any micro controller or usb to ttl converter of any kind
Just so you know, you might have to buy some other things to get your NSC800 working.  ;)

Quote
USB -of course- ,RS-232 from a d-sub connector, and LAN.
is their is a method i could use to transfer data using those things listed above?
RS-232 can be converted into TTL with a simple level shifter circuit using a MAX232 or a couple of transistors and resistors. Or you could use your USB port with a cheap USB-TTL converter.

However you still need some way to translate the serial data into parallel bytes that can be loaded into memory. The conventional way to do that is with a UART such as NSC16550 or 82C51, controlled by a program in ROM. This is similar to how the Arduino does it - but the NSC800 doesn't have any ROM, RAM or UART built in so you need external chips to do the job.
 
And just like if you were trying make an Arduino from scratch, you have the problem of how to get the bootloader into ROM. Conventionally this is done with an EPROM programmer. If this is too expensive then you could build you own EEPROM programmer using a cheap Arduino dev board and a pair of 74HC595 shift registers. Instead of a parallel EEPROM you could use a static RAM (eg. HM65536) with a capacitor or battery to keep the data alive when it is not powered.
 
The following users thanked this post: ali6x944

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #13 on: February 02, 2016, 05:30:39 am »
U know this the first time i do something heavy digital...
So exuse me if i have sounded like an absolute fool
Great detailed explanation will be appreciated
« Last Edit: February 02, 2016, 10:33:31 am by ali6x944 »
 

Offline Bruce Abbott

  • Frequent Contributor
  • **
  • Posts: 627
  • Country: nz
    • Bruce Abbott's R/C Models and Electronics
Re: help! how to make a nsc800 computer?
« Reply #14 on: February 02, 2016, 04:38:14 pm »
Great detailed explanation will be appreciated
What exactly do you want an explanation of?
 
The following users thanked this post: ali6x944

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #15 on: February 02, 2016, 04:54:42 pm »
technical terms and how it works...
and schematics if u don't mind...
thanks a lot anyway guys, thanks for the help :-+
 

Offline Moondeck

  • Regular Contributor
  • *
  • Posts: 142
  • Country: dk
  • i really like compilers
Re: help! how to make a nsc800 computer?
« Reply #16 on: February 02, 2016, 05:01:15 pm »
U know this the first time i do something heavy digital...
Heavy digital? What did you do before?
Quote
So exuse me if i have sounded like an absolute fool
no problem  m8
Quote
Great detailed explanation will be appreciated
RTFM
I'm selling 100ml bottles of free energy, PM me for pricing.
 
The following users thanked this post: ali6x944

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #17 on: February 02, 2016, 06:03:54 pm »
nothing difficult...
 ttl full adders,and simple logic circuits to drive simple brain robots, and analog op amp sumer and comparetor things like that.   
not very fancy stuff...
 

Offline Moondeck

  • Regular Contributor
  • *
  • Posts: 142
  • Country: dk
  • i really like compilers
Re: help! how to make a nsc800 computer?
« Reply #18 on: February 02, 2016, 07:00:20 pm »
nothing difficult...
 ttl full adders,and simple logic circuits to drive simple brain robots, and analog op amp sumer and comparetor things like that.   
not very fancy stuff...
Ok, how much do you actually understand? Because if you wanna build a computer from scratch, you need to understand some things. There are no tutorials on this stuff.
I'm selling 100ml bottles of free energy, PM me for pricing.
 
The following users thanked this post: ali6x944

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #19 on: February 02, 2016, 07:08:15 pm »
am struggling to understand what is an address lines, buses, data transfer protocols, and the software things ...
i just stare at the screen saying  :wtf:
seriously man i know nothing! simply nothing  :-//
 

Offline Kilrah

  • Supporter
  • ****
  • Posts: 1852
  • Country: ch
Re: help! how to make a nsc800 computer?
« Reply #20 on: February 02, 2016, 08:00:47 pm »
am struggling to understand what is an address lines, buses, data transfer protocols, and the software things ...

Well it's already a good thing that you recognise these are things you'll hve to care about, but then... well you'll have to go read up on them and hopefully understand. If you don't understand try again, if you still don't understand then... maybe start thinking about proper courses, or other projects...  :-\
 
The following users thanked this post: ali6x944

Offline Moondeck

  • Regular Contributor
  • *
  • Posts: 142
  • Country: dk
  • i really like compilers
Re: help! how to make a nsc800 computer?
« Reply #21 on: February 02, 2016, 08:16:56 pm »
am struggling to understand what is an address lines, buses, data transfer protocols, and the software things ...
i just stare at the screen saying  :wtf:
seriously man i know nothing! simply nothing  :-//
Dude do some basics, real basics, learn, read and then come back to it.
I'm selling 100ml bottles of free energy, PM me for pricing.
 
The following users thanked this post: ali6x944

Offline Kilrah

  • Supporter
  • ****
  • Posts: 1852
  • Country: ch
Re: help! how to make a nsc800 computer?
« Reply #22 on: February 02, 2016, 08:43:23 pm »
A good starting point in my opinion is old computers, both for documentation and the machine itself for experimentation. Everything's made of discrete components that are big and you can thus physically touch and access and you can sometimes find quite comprehensive documentation down to component level, for example this:

http://www.club100.org/
ftp://ftp.whtech.com/club100/doc/m100ServiceManual.pdf
ftp://ftp.whtech.com/club100/doc/m102TechReference.pdf

If you're serious about it you can even buy some of these old computers for relatively cheap, some will pop up on eBay once in a while (picked myself up a 102 in mint condition for $100 a couple of months ago), get a logic analyzer to go along and start poking at things. Might help you given you don't seem to be very well versed to theory/text only approach.

Another good source of docs is datasheets/reference manuals for (simple) microcontrollers, a microcontroller being pretty much the exact same thing as a computer but on a single chip it's just as valid to learn about the concepts. The major difference is that you can obviously not physically poke at the innards like you can on a machine made of discrete compnents. For example Microchip's 8-bit PICs have good "general" info about the internal structure in their doc.

But by all means before you can actually design a system you'll obviously need to first learn how one works. You might know from prior experience what's the best way for you to teach yourself about something.
« Last Edit: February 02, 2016, 09:10:32 pm by Kilrah »
 
The following users thanked this post: ali6x944

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #23 on: February 03, 2016, 07:17:38 am »
I did search, i have theas books :
TTL cookbook, teach your self electrecity and electronics
And a few more...
 

Offline Moondeck

  • Regular Contributor
  • *
  • Posts: 142
  • Country: dk
  • i really like compilers
Re: help! how to make a nsc800 computer?
« Reply #24 on: February 03, 2016, 07:30:28 am »
Great, how much do you actually understand? Now if you understand it all/most go read something on the z80 CPU. Read about memory and registers. If you have been using Awwdooeenoo before you probably dont know what registers are.
I'm selling 100ml bottles of free energy, PM me for pricing.
 
The following users thanked this post: ali6x944


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf