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

0 Members and 1 Guest are viewing this topic.

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #25 on: February 03, 2016, 10:35:53 am »
what is defrance between registers and shift registers?
 

Offline Moondeck

  • Regular Contributor
  • *
  • Posts: 142
  • Country: dk
  • i really like compilers
Re: help! how to make a nsc800 computer?
« Reply #26 on: February 03, 2016, 10:57:02 am »
more like what they have in common... well, they both can store data, but thats it. Google it. https://en.wikipedia.org/wiki/Processor_register
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 #28 on: February 23, 2016, 07:11:27 pm »
great now i understand so lets talk about it...
i was doing what u bros told to do and i found this pages:
http://z80.info/z80test0.htm
then i went and modified  for the nsc800, i fed pin 11 a clock of 1.03kHz -from a 6 stages frequency divider-, 5v pk-pk, with around 50% duty cycle, with a period of 970.00us,an on time of 480.00us, and an off time of 490.00us.
and the address pins was not responding!
i will post some photos soon of this...
thanks for all help and patience, I'm sorry if i annoy anyone of u guys ... :-[
« Last Edit: February 24, 2016, 01:46:25 pm by ali6x944 »
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #29 on: February 23, 2016, 07:13:33 pm »
all the resistor values were 1k ohm.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: help! how to make a nsc800 computer?
« Reply #30 on: February 24, 2016, 09:21:23 am »
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 
The following users thanked this post: ali6x944

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 12859
Re: help! how to make a nsc800 computer?
« Reply #31 on: February 24, 2016, 10:17:55 am »
Its probably better to start with a real Z80 chip.  The extra complexity of a multiplexed address bus isn't worth it nowadays, as one can easily get double sided PTH PCBs made.   The only advantage was eight fewer signals needed for each memory or peripheral chip, but suitable multiplexed bus memory is far rarer now, and if you stick to a 'vanilla' Z80 design you will find far more resources on how to build one.

The next question is what do you want to use it for, as that has a large impact on how complex the design needs to be.
 
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 #32 on: February 24, 2016, 01:05:45 pm »
Will i currently have these chips:
1x NSC800N
 6xAM2746
4xTMS4416-15NL
3x 8464A-10L
1xSCN2661BC1N28
1xP8279-5
1xD7220AD
5x 74ls273N
4x sn74ls374n
Nand,nor,or,and,xor,inverters, tristate buffers is what i have.
« Last Edit: February 24, 2016, 01:41:30 pm by ali6x944 »
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: help! how to make a nsc800 computer?
« Reply #33 on: February 24, 2016, 06:05:35 pm »
@ali6x944
I have a 68000 board for sale, I also have an 8051 board for sale
they both come with schematic and chips in DIP package

why don't you buy a card like those, in order to make you started ?
 
The following users thanked this post: ali6x944

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 12859
Re: help! how to make a nsc800 computer?
« Reply #34 on: February 24, 2016, 06:45:20 pm »
68000 is a really nice chip if you want to get into retro computing.  The assembly language is considerably easier to learn than Z80, as the instruction set is far more orthogonal, so there are far fewer special instructions and modes that only work with specific registers.  There are also C compilers and other languages like Forth readily available, so you can set up a PC hosted cross-development toolchain exclusively using FOSS software.

8051 is the classic MCU for embedded systems.  Derivatives are still being designed in to commercial products 35 years later.  Due to its historical massive popularity, and long lifespan, there are vast numbers of academic resources for it, and again the toolchains for cross-development are readily available.

Either would be  a far better choice for a relative beginner than an obscure Z80 derivative and a pre-build board lets you 'hit the ground running' and get your feet wet designing add-on boards for various purposes before you tackle the major project of designing your own processor board and writing a monitor program for oit from the ground up.

One caution however:  If either of the boards has logic in a PAL chip that is no longer available, and has no compatible replacement, or if the source 'code' for the PAL is no longer available, you would have to be incredibly careful NOT to make any mistakes interfacing to it.   You should prioritise writing a program to dump any ROMs over a serial link to your PC, and get a spare one programmed and tested as soon as possible, certainly before you do any hardware interfacing.  All the other chips should be reasonably generic or at least findable as N.O.S, so can be replaced if you blow something up.
 
The following users thanked this post: ali6x944

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: help! how to make a nsc800 computer?
« Reply #35 on: February 24, 2016, 08:50:14 pm »
If either of the boards has logic in a PAL chip

never used in my projects, instead I used the 74138 chip, in order to "divide" the address space into useful chunks.
My boards use 74xxx chips, and common CPUs, pure genuine 68000, and genuine 8051, so fully documented and known

I think it's the good point to stay away of troubles, in order to enjoy the fun without time wasted in "replacing strange old parts".
 
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 #36 on: March 26, 2016, 10:07:46 am »
in the NSC800 datasheet there is multiple reest pins and i'm confuse which one to use for the tester by Thomas scherrer in z80.info.
excluding reset out these are the ones i'm confused with:

"Reset Input (RESET IN): Active low. Sets A (8±15) and AD
(0±7) to TRI-STATEÉ (high impedance). Clears the contents
of PC, I and R registers, disables interrupts, and activates
reset out"
"Restart Interrupts, A, B, C (RSTA, RSTB, RSTC): Active
low level sensitive. The CPU recognizes restarts generated
by the peripherals at the end of the current instruction, if
their respective interrupt enable and master enable bits are
set. Execution is identical to NMI except the interrupts vector
to the following restart addresses:
Name
Restart
Address (X')
NMI 0066
RSTA 003C
RSTB 0034
RSTC 002C
INTR (Mode 1) 0038
The order of priority is fixed. The list above starts with the
highest priority."
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: help! how to make a nsc800 computer?
« Reply #37 on: March 27, 2016, 06:20:46 am »
I don't know the part but it looks to me that Reset (in) is the one you need. The reset out you don't connect and all the interrupt line you tie high (use a pull up resistor)...?

[2c]
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 
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 #38 on: March 27, 2016, 10:34:05 pm »
in the NSC800 datasheet there is multiple reest pins and i'm confuse which one to use for the tester by Thomas scherrer in z80.info.
You use RESET IN to reset the MPU. RESET OUT is an output from the MPU which is used to reset external devices. The RSTx lines are inputs used to generate interrupts.

As far as its bus interface is concerned the NSC800 is more like an 8085 than a Z80. The lower 8 address bits are multiplexed with the data bus. At the start of a Read cycle A0-7 is sent out on the Address/Data lines, then the bus is switched to input mode to read D0-7. You can still pull the Address/Data lines low like in Thomas scherrer's circuit, but you should increase the values of the pull-down resistors to ~2.2k Ohms so they won't overload the bus when it is outputting the address.

Using A0-2 for the LED indicators is not very satisfactory because they will blink 'randomly' when showing the refresh address. So connect the LEDs to A8-10, and increase the clock frequency by ~256 (eg. by changing the 68k resistor to 47k and the 1uF capacitor to 4.7nF) to make them blink at a similar rate. These addresses alternate with the I register, but this has a constant value so it will be easier to pick out the instruction address increment in the blinking pattern.
   
 
 
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #39 on: March 28, 2016, 02:55:05 pm »
test results where kind of weird, i got this really odd oscillation pattern in pins 1,2,3 which are pin A(8,9,10) which correspond to pins A(0,1,2)in the diagram ,one time the rest of the time after they finch either they stay on, or one of them just floats or they turn off even after i push reset it doesn't seem to do anything exipt turn of completly
in the NSC800 datasheet there is multiple reest pins and i'm confuse which one to use for the tester by Thomas scherrer in z80.info.
You use RESET IN to reset the MPU. RESET OUT is an output from the MPU which is used to reset external devices. The RSTx lines are inputs used to generate interrupts.

As far as its bus interface is concerned the NSC800 is more like an 8085 than a Z80. The lower 8 address bits are multiplexed with the data bus. At the start of a Read cycle A0-7 is sent out on the Address/Data lines, then the bus is switched to input mode to read D0-7. You can still pull the Address/Data lines low like in Thomas scherrer's circuit, but you should increase the values of the pull-down resistors to ~2.2k Ohms so they won't overload the bus when it is outputting the address.

Using A0-2 for the LED indicators is not very satisfactory because they will blink 'randomly' when showing the refresh address. So connect the LEDs to A8-10, and increase the clock frequency by ~256 (eg. by changing the 68k resistor to 47k and the 1uF capacitor to 4.7nF) to make them blink at a similar rate. These addresses alternate with the I register, but this has a constant value so it will be easier to pick out the instruction address increment in the blinking pattern.
   
 
 
 

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 #40 on: March 28, 2016, 11:18:27 pm »
test results where kind of weird, i got this really odd oscillation pattern in pins 1,2,3 which are pin A(8,9,10) which correspond to pins A(0,1,2)
A8,9,10 put out the program counter address during instruction read, and the I register during refresh. On power up the I register has a random value, so each time you test the MPU the pattern could be different. However once powered up the I register contents don't change, so the LEDs should alternate between counting up and a fixed (random) pattern.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: help! how to make a nsc800 computer?
« Reply #41 on: March 29, 2016, 05:36:05 am »
[..] On power up the I register has a random value, so each time you test the MPU the pattern could be different.

But on reset it is zeroed out...
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

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 #42 on: March 29, 2016, 08:21:41 pm »
But on reset it is zeroed out...
You are right! (I forgot that unlike other the registers, I and R are cleared on reset). So provided that the CPU only gets NOPs, the LEDs should flash the address count. If the LEDs are flashing 'weirdly' then either the CPU isn't getting NOPs, or one of the control lines is not set correctly.
 
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: help! how to make a nsc800 computer?
« Reply #43 on: March 30, 2016, 07:30:50 am »
If you run the test circuit long (or fast) enough, you will see a difference at 7 address bits between the instruction fetch cycle (M1) address and the DRAM Refresh cycle (R register)...

In my blog post I describe this in a bit more detail.

But up until that the address overflows into A7 you should see a normal binary counter progress on A0..A6.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #44 on: March 30, 2016, 01:38:00 pm »
see results:
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #45 on: March 30, 2016, 01:40:00 pm »
.
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #46 on: March 30, 2016, 01:42:25 pm »
.
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #47 on: March 30, 2016, 02:12:27 pm »
some times it acts kind like what is on the video by obiwanjacobi, like it starts counting normally then starts going mad random then it stops, reset just turn of the address lines, so i tried turning the clock and the CPU of by cutting power and it rested it to start oscillating for a few seconds... 
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: help! how to make a nsc800 computer?
« Reply #48 on: March 30, 2016, 05:08:30 pm »
I have no idea what I am looking at - but it looks pretty messed up indeed.
How come those levels are not all high and low - some seem to be in-between...?
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline ali6x944Topic starter

  • Frequent Contributor
  • **
  • Posts: 567
  • Country: sa
Re: help! how to make a nsc800 computer?
« Reply #49 on: March 30, 2016, 07:10:24 pm »
is this the way to do it, i finally got it to count in some sequence but its incredibly slow and it flashes a for a minute or so, then it changes it's value,
but i didn't use the circuit of the z80 tester, instead i only used the external clock in pin 11 and i pulled the rest in pin high with a 2x 5.1k resistor, and i changed the power source to a battery pack that is it:
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf