(Topic ID: 179517)

Z80 Club

By Sheprd

7 years ago


Topic Heartbeat

Topic Stats

  • 25 posts
  • 12 Pinsiders participating
  • Latest reply 1 year ago by Sheprd
  • Topic is favorited by 8 Pinsiders

You

Linked Games

Topic Gallery

View topic image gallery

zilog_z80 (resized).jpg
Matrix (resized).JPG
1024px-Z80_arch.svg (resized).png
Z80 SS (resized).JPG

You're currently viewing posts by Pinsider robotworkshop.
Click here to go back to viewing the entire thread.

#15 7 years ago
Quoted from Sheprd:

Ok, any discussion of the Z80 has to start with an understanding of difference between static and dynamic RAM. Almost all microprocessors use dynamic RAM which is cheaper. The Z80 is somewhat unique in that it uses static RAM. Dynamic RAM requires that you continually "refresh" it with clocked signals. Static RAM, on the other hand, is more like a set of flip-flops that toggle between two states and stays that way until you change it (or remove power). NVRAM is a type of static RAM that retains its state even when power is removed. The Z80 did not have NVRAM.
Why is it cool that the Z80 uses static RAM? Because it allows you to take control of the clock, and gate it, or STOP it, without disrupting the operation of the CPU. If you tried to do that with a 6800, the internal memory would immediately lose the refresh and fail to work.
Why would you want to stop the clock on a Z80?

The Static vs Dynamic RAM is usually dependent on the implementation. I've seen dynamic memory used more often with the Z-80 since the Z-80 made it easier to handle the refresh of the memory instead of adding a lot of extra dedicated circuits to do it. To help with random numbers you could pull the R resister that was used to handle the refresh.

Now if you use Static you can avoid the overhead of the refresh and it is easier to keep alive as long as it is powered.

DRAM was cheaper and at the time was often worth the overhead in extra chips, etc.

I wrote a ton of Z-80 code for the old TRS-80 systems back in the 80's and needed the extra speed for the games I was writing. Awesome CPU. You could usually find the the entry point by searching for the bytes for the DI then LD SP, xxxxh. The by byte for the instructions itself would do. Before launching a program most programmers would want to set the stack to a known location and before doing that would disable the interrupts since you don't want to risk an interrupt coming in at the exact moment of changing the location of the stack. They could be enabled later if needed.

Promoted items from Pinside Marketplace and Pinside Shops!
$ 129.99
Boards
PinballReplacementParts
 
Great pinball charity
Pinball Edu

You're currently viewing posts by Pinsider robotworkshop.
Click here to go back to viewing the entire thread.

Reply

Wanna join the discussion? Please sign in to reply to this topic.

Hey there! Welcome to Pinside!

Donate to Pinside

Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


This page was printed from https://pinside.com/pinball/forum/topic/z80-club?tu=robotworkshop and we tried optimising it for printing. Some page elements may have been deliberately hidden.

Scan the QR code on the left to jump to the URL this document was printed from.