Where does the Z80 processor start executing from?How did the Z80 instruction set differ from the 8080?Why does the Z80 have a half-carry bit?How fast is memcpy on the Z80?z80 crashes after executing some instructionsWhy does the Z80 include the RLD and RRD instructions?Why is the Z80's supply pin in the middle of the data pins?Why did TI-8x calculator series use the Z80 processor?Role of the Z80 co-processor in GBA gamesHow do I Interface a PS/2 Keyboard without Modern Techniques?What does ld a,(hl) do in this piece of Z80 ASM code, and why is HL incremented?

How to type dʒ symbol (IPA) on Mac?

When blogging recipes, how can I support both readers who want the narrative/journey and ones who want the printer-friendly recipe?

I’m planning on buying a laser printer but concerned about the life cycle of toner in the machine

Why are 150k or 200k jobs considered good when there are 300k+ births a month?

Patience, young "Padovan"

Circuitry of TV splitters

declaring a variable twice in IIFE

Can an x86 CPU running in real mode be considered to be basically an 8086 CPU?

Set-theoretical foundations of Mathematics with only bounded quantifiers

Is Social Media Science Fiction?

Should I join office cleaning event for free?

The use of multiple foreign keys on same column in SQL Server

Motorized valve interfering with button?

How can the DM most effectively choose 1 out of an odd number of players to be targeted by an attack or effect?

Can Medicine checks be used, with decent rolls, to completely mitigate the risk of death from ongoing damage?

How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)

A Journey Through Space and Time

Modification to Chariots for Heavy Cavalry Analogue for 4-armed race

What is the meaning of "of trouble" in the following sentence?

Can I make popcorn with any corn?

Why is this code 6.5x slower with optimizations enabled?

whey we use polarized capacitor?

Possibly bubble sort algorithm

What do you call a Matrix-like slowdown and camera movement effect?



Where does the Z80 processor start executing from?


How did the Z80 instruction set differ from the 8080?Why does the Z80 have a half-carry bit?How fast is memcpy on the Z80?z80 crashes after executing some instructionsWhy does the Z80 include the RLD and RRD instructions?Why is the Z80's supply pin in the middle of the data pins?Why did TI-8x calculator series use the Z80 processor?Role of the Z80 co-processor in GBA gamesHow do I Interface a PS/2 Keyboard without Modern Techniques?What does ld a,(hl) do in this piece of Z80 ASM code, and why is HL incremented?













22















Strangely I can't find this information anywhere online -- I've thoroughly looked at the datasheet, and I've searched things like "Z80 program counter initial value" -- but I can't find anything!



My question is simply: when the Z80 just turns on, what value does the program counter take? (i.e., what instruction does it start executing from?)



Logically, I'd assume it initialises to 0, but I want to be sure of this.










share|improve this question






















  • IIRC when we ran CP/M on a TRS-80 Model I, it required a hardware mod because there was a 4 k ROM starting at address 0, so the OS couldn't gain control of the hardware.

    – Ben Crowell
    Mar 28 at 13:37















22















Strangely I can't find this information anywhere online -- I've thoroughly looked at the datasheet, and I've searched things like "Z80 program counter initial value" -- but I can't find anything!



My question is simply: when the Z80 just turns on, what value does the program counter take? (i.e., what instruction does it start executing from?)



Logically, I'd assume it initialises to 0, but I want to be sure of this.










share|improve this question






















  • IIRC when we ran CP/M on a TRS-80 Model I, it required a hardware mod because there was a 4 k ROM starting at address 0, so the OS couldn't gain control of the hardware.

    – Ben Crowell
    Mar 28 at 13:37













22












22








22








Strangely I can't find this information anywhere online -- I've thoroughly looked at the datasheet, and I've searched things like "Z80 program counter initial value" -- but I can't find anything!



My question is simply: when the Z80 just turns on, what value does the program counter take? (i.e., what instruction does it start executing from?)



Logically, I'd assume it initialises to 0, but I want to be sure of this.










share|improve this question














Strangely I can't find this information anywhere online -- I've thoroughly looked at the datasheet, and I've searched things like "Z80 program counter initial value" -- but I can't find anything!



My question is simply: when the Z80 just turns on, what value does the program counter take? (i.e., what instruction does it start executing from?)



Logically, I'd assume it initialises to 0, but I want to be sure of this.







z80






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 27 at 17:48









Jacob GarbyJacob Garby

2356




2356












  • IIRC when we ran CP/M on a TRS-80 Model I, it required a hardware mod because there was a 4 k ROM starting at address 0, so the OS couldn't gain control of the hardware.

    – Ben Crowell
    Mar 28 at 13:37

















  • IIRC when we ran CP/M on a TRS-80 Model I, it required a hardware mod because there was a 4 k ROM starting at address 0, so the OS couldn't gain control of the hardware.

    – Ben Crowell
    Mar 28 at 13:37
















IIRC when we ran CP/M on a TRS-80 Model I, it required a hardware mod because there was a 4 k ROM starting at address 0, so the OS couldn't gain control of the hardware.

– Ben Crowell
Mar 28 at 13:37





IIRC when we ran CP/M on a TRS-80 Model I, it required a hardware mod because there was a 4 k ROM starting at address 0, so the OS couldn't gain control of the hardware.

– Ben Crowell
Mar 28 at 13:37










1 Answer
1






active

oldest

votes


















25














Yes, it starts from Zero - like the Intel 8080, the Z80 descends from.



Excerpt from Zilog's March 1978 Product Specification (datasheet), page 2, Pin Description, here the /RESET signal (emphasis mine):




Input, active low. RESET initializes the CPU as follows:
reset interrupt enable flip-flop, clear PC and registers
I and R and set interrupt to 8080A mode.




Similar the description in the 1977 Z80 Technical Manual (03-0029-01) on page 9.






share|improve this answer




















  • 2





    Thanks! I actually didn't know that the 8080 started at zero either, but it makes complete sense.

    – Jacob Garby
    Mar 27 at 17:50






  • 15





    @dashnick Many don't just start, but take a vector form a predefined location like 6500 and 6800 start at the vector residing at FFFE/FF, 68k takes the initial PC from Vector 1 (address 4..7). Other do start form some address where the IOC locates a loader record, and so on. Starting from Zero is only one of many ways.

    – Raffzahn
    Mar 27 at 20:57






  • 10





    Intels 8086 employs an interesting combination by starting a offset zero, like 8080/Z80, but in segment FFFF, thus at absolute address FFFF0.

    – Raffzahn
    Mar 27 at 21:19






  • 4





    6502 chip reset starts at a vector found at FFFC. FFFA and FFFE are for interrupts. In other words, reset makes a 6502 do JMP(FFFC). But the 6502 requires 0000-01FF be RAM since those are zero page (basically registers) and the stack.

    – Harper
    Mar 27 at 23:39







  • 2





    PDP-11 starts from a location stored at location 50 (octal), if my memory from 40 years ago is to be trusted, or else a bootstrap program starting at that location. We called it the '50-sequence', and often had to enter it from the console toggle switches.

    – user207421
    Mar 28 at 3:23











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "648"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9448%2fwhere-does-the-z80-processor-start-executing-from%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









25














Yes, it starts from Zero - like the Intel 8080, the Z80 descends from.



Excerpt from Zilog's March 1978 Product Specification (datasheet), page 2, Pin Description, here the /RESET signal (emphasis mine):




Input, active low. RESET initializes the CPU as follows:
reset interrupt enable flip-flop, clear PC and registers
I and R and set interrupt to 8080A mode.




Similar the description in the 1977 Z80 Technical Manual (03-0029-01) on page 9.






share|improve this answer




















  • 2





    Thanks! I actually didn't know that the 8080 started at zero either, but it makes complete sense.

    – Jacob Garby
    Mar 27 at 17:50






  • 15





    @dashnick Many don't just start, but take a vector form a predefined location like 6500 and 6800 start at the vector residing at FFFE/FF, 68k takes the initial PC from Vector 1 (address 4..7). Other do start form some address where the IOC locates a loader record, and so on. Starting from Zero is only one of many ways.

    – Raffzahn
    Mar 27 at 20:57






  • 10





    Intels 8086 employs an interesting combination by starting a offset zero, like 8080/Z80, but in segment FFFF, thus at absolute address FFFF0.

    – Raffzahn
    Mar 27 at 21:19






  • 4





    6502 chip reset starts at a vector found at FFFC. FFFA and FFFE are for interrupts. In other words, reset makes a 6502 do JMP(FFFC). But the 6502 requires 0000-01FF be RAM since those are zero page (basically registers) and the stack.

    – Harper
    Mar 27 at 23:39







  • 2





    PDP-11 starts from a location stored at location 50 (octal), if my memory from 40 years ago is to be trusted, or else a bootstrap program starting at that location. We called it the '50-sequence', and often had to enter it from the console toggle switches.

    – user207421
    Mar 28 at 3:23















25














Yes, it starts from Zero - like the Intel 8080, the Z80 descends from.



Excerpt from Zilog's March 1978 Product Specification (datasheet), page 2, Pin Description, here the /RESET signal (emphasis mine):




Input, active low. RESET initializes the CPU as follows:
reset interrupt enable flip-flop, clear PC and registers
I and R and set interrupt to 8080A mode.




Similar the description in the 1977 Z80 Technical Manual (03-0029-01) on page 9.






share|improve this answer




















  • 2





    Thanks! I actually didn't know that the 8080 started at zero either, but it makes complete sense.

    – Jacob Garby
    Mar 27 at 17:50






  • 15





    @dashnick Many don't just start, but take a vector form a predefined location like 6500 and 6800 start at the vector residing at FFFE/FF, 68k takes the initial PC from Vector 1 (address 4..7). Other do start form some address where the IOC locates a loader record, and so on. Starting from Zero is only one of many ways.

    – Raffzahn
    Mar 27 at 20:57






  • 10





    Intels 8086 employs an interesting combination by starting a offset zero, like 8080/Z80, but in segment FFFF, thus at absolute address FFFF0.

    – Raffzahn
    Mar 27 at 21:19






  • 4





    6502 chip reset starts at a vector found at FFFC. FFFA and FFFE are for interrupts. In other words, reset makes a 6502 do JMP(FFFC). But the 6502 requires 0000-01FF be RAM since those are zero page (basically registers) and the stack.

    – Harper
    Mar 27 at 23:39







  • 2





    PDP-11 starts from a location stored at location 50 (octal), if my memory from 40 years ago is to be trusted, or else a bootstrap program starting at that location. We called it the '50-sequence', and often had to enter it from the console toggle switches.

    – user207421
    Mar 28 at 3:23













25












25








25







Yes, it starts from Zero - like the Intel 8080, the Z80 descends from.



Excerpt from Zilog's March 1978 Product Specification (datasheet), page 2, Pin Description, here the /RESET signal (emphasis mine):




Input, active low. RESET initializes the CPU as follows:
reset interrupt enable flip-flop, clear PC and registers
I and R and set interrupt to 8080A mode.




Similar the description in the 1977 Z80 Technical Manual (03-0029-01) on page 9.






share|improve this answer















Yes, it starts from Zero - like the Intel 8080, the Z80 descends from.



Excerpt from Zilog's March 1978 Product Specification (datasheet), page 2, Pin Description, here the /RESET signal (emphasis mine):




Input, active low. RESET initializes the CPU as follows:
reset interrupt enable flip-flop, clear PC and registers
I and R and set interrupt to 8080A mode.




Similar the description in the 1977 Z80 Technical Manual (03-0029-01) on page 9.







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 28 at 7:50

























answered Mar 27 at 17:49









RaffzahnRaffzahn

55.6k6136224




55.6k6136224







  • 2





    Thanks! I actually didn't know that the 8080 started at zero either, but it makes complete sense.

    – Jacob Garby
    Mar 27 at 17:50






  • 15





    @dashnick Many don't just start, but take a vector form a predefined location like 6500 and 6800 start at the vector residing at FFFE/FF, 68k takes the initial PC from Vector 1 (address 4..7). Other do start form some address where the IOC locates a loader record, and so on. Starting from Zero is only one of many ways.

    – Raffzahn
    Mar 27 at 20:57






  • 10





    Intels 8086 employs an interesting combination by starting a offset zero, like 8080/Z80, but in segment FFFF, thus at absolute address FFFF0.

    – Raffzahn
    Mar 27 at 21:19






  • 4





    6502 chip reset starts at a vector found at FFFC. FFFA and FFFE are for interrupts. In other words, reset makes a 6502 do JMP(FFFC). But the 6502 requires 0000-01FF be RAM since those are zero page (basically registers) and the stack.

    – Harper
    Mar 27 at 23:39







  • 2





    PDP-11 starts from a location stored at location 50 (octal), if my memory from 40 years ago is to be trusted, or else a bootstrap program starting at that location. We called it the '50-sequence', and often had to enter it from the console toggle switches.

    – user207421
    Mar 28 at 3:23












  • 2





    Thanks! I actually didn't know that the 8080 started at zero either, but it makes complete sense.

    – Jacob Garby
    Mar 27 at 17:50






  • 15





    @dashnick Many don't just start, but take a vector form a predefined location like 6500 and 6800 start at the vector residing at FFFE/FF, 68k takes the initial PC from Vector 1 (address 4..7). Other do start form some address where the IOC locates a loader record, and so on. Starting from Zero is only one of many ways.

    – Raffzahn
    Mar 27 at 20:57






  • 10





    Intels 8086 employs an interesting combination by starting a offset zero, like 8080/Z80, but in segment FFFF, thus at absolute address FFFF0.

    – Raffzahn
    Mar 27 at 21:19






  • 4





    6502 chip reset starts at a vector found at FFFC. FFFA and FFFE are for interrupts. In other words, reset makes a 6502 do JMP(FFFC). But the 6502 requires 0000-01FF be RAM since those are zero page (basically registers) and the stack.

    – Harper
    Mar 27 at 23:39







  • 2





    PDP-11 starts from a location stored at location 50 (octal), if my memory from 40 years ago is to be trusted, or else a bootstrap program starting at that location. We called it the '50-sequence', and often had to enter it from the console toggle switches.

    – user207421
    Mar 28 at 3:23







2




2





Thanks! I actually didn't know that the 8080 started at zero either, but it makes complete sense.

– Jacob Garby
Mar 27 at 17:50





Thanks! I actually didn't know that the 8080 started at zero either, but it makes complete sense.

– Jacob Garby
Mar 27 at 17:50




15




15





@dashnick Many don't just start, but take a vector form a predefined location like 6500 and 6800 start at the vector residing at FFFE/FF, 68k takes the initial PC from Vector 1 (address 4..7). Other do start form some address where the IOC locates a loader record, and so on. Starting from Zero is only one of many ways.

– Raffzahn
Mar 27 at 20:57





@dashnick Many don't just start, but take a vector form a predefined location like 6500 and 6800 start at the vector residing at FFFE/FF, 68k takes the initial PC from Vector 1 (address 4..7). Other do start form some address where the IOC locates a loader record, and so on. Starting from Zero is only one of many ways.

– Raffzahn
Mar 27 at 20:57




10




10





Intels 8086 employs an interesting combination by starting a offset zero, like 8080/Z80, but in segment FFFF, thus at absolute address FFFF0.

– Raffzahn
Mar 27 at 21:19





Intels 8086 employs an interesting combination by starting a offset zero, like 8080/Z80, but in segment FFFF, thus at absolute address FFFF0.

– Raffzahn
Mar 27 at 21:19




4




4





6502 chip reset starts at a vector found at FFFC. FFFA and FFFE are for interrupts. In other words, reset makes a 6502 do JMP(FFFC). But the 6502 requires 0000-01FF be RAM since those are zero page (basically registers) and the stack.

– Harper
Mar 27 at 23:39






6502 chip reset starts at a vector found at FFFC. FFFA and FFFE are for interrupts. In other words, reset makes a 6502 do JMP(FFFC). But the 6502 requires 0000-01FF be RAM since those are zero page (basically registers) and the stack.

– Harper
Mar 27 at 23:39





2




2





PDP-11 starts from a location stored at location 50 (octal), if my memory from 40 years ago is to be trusted, or else a bootstrap program starting at that location. We called it the '50-sequence', and often had to enter it from the console toggle switches.

– user207421
Mar 28 at 3:23





PDP-11 starts from a location stored at location 50 (octal), if my memory from 40 years ago is to be trusted, or else a bootstrap program starting at that location. We called it the '50-sequence', and often had to enter it from the console toggle switches.

– user207421
Mar 28 at 3:23

















draft saved

draft discarded
















































Thanks for contributing an answer to Retrocomputing Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9448%2fwhere-does-the-z80-processor-start-executing-from%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High