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?
Confusion about capacitors
Single Colour Mastermind Problem
If Earth is tilted, why is Polaris always above the same spot?
Why does processed meat contain preservatives, while canned fish needs not?
What word means to make something obsolete?
Was it really necessary for the Lunar Module to have 2 stages?
How to creep the reader out with what seems like a normal person?
Was there a Viking Exchange as well as a Columbian one?
Can fracking help reduce CO2?
Do I have an "anti-research" personality?
Is it possible to Ready a spell to be cast just before the start of your next turn by having the trigger be an ally's attack?
Stateful vs non-stateful app
How can I get precisely a certain cubic cm by changing the following factors?
Why do TACANs not have a symbol for compulsory reporting?
Help, my Death Star suffers from Kessler syndrome!
Is thermodynamics only applicable to systems in equilibrium?
How can I place the product on a social media post better?
Confused by notation of atomic number Z and mass number A on periodic table of elements
Does a creature that is immune to a condition still make a saving throw?
gnu parallel how to use with ffmpeg
Phrase for the opposite of "foolproof"
How can Republicans who favour free markets, consistently express anger when they don't like the outcome of that choice?
Reversing the direction of the arrow in gb4e
Stark VS Thanos
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?
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
add a comment |
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
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
add a comment |
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
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
z80
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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.
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 doJMP(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
|
show 3 more comments
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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 doJMP(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
|
show 3 more comments
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.
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 doJMP(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
|
show 3 more comments
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.
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.
edited Mar 28 at 7:50
answered Mar 27 at 17:49
RaffzahnRaffzahn
57.7k6140234
57.7k6140234
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 doJMP(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
|
show 3 more comments
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 doJMP(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
|
show 3 more comments
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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