Re: RE: RE: [ukvac] TECHNICAL: TAITO 'power-on-reset' circuit?
Yes, all registers are affected by a RESET but not all require specific set-up values, i.e. none of the general purpose registers need to be preset. A reset vector at FFFEh and FFFFh would be set/programmed in ROM. It just means that the entry point for the ROM code is programmable and the ROM within the processors memory map must be high. The Z80 always resets to 0000h but has what amounts to a jump vector table from that address. The instructions RST0, RST8 etc effectively shift program execution to these absolute addresses, i.e. 0000h, 0008h. If all these vectors are used then the programmer would have to provide jump vectors at these address (with a JMP instruction of course). It is by no means carved in stone that a processor has to reset to 0000h. I cannot remember which processor uses the vector at FFFEh, FFFFh but it is a true vector address, by which I mean that it does'nt require a jump instruction.
Mike
========================================
Message date : Oct 25 2004, 11:42 AM
From : "Paul Maddern"
To : ukvac@yahoogroups.com
Copy to :
Subject : RE: RE: [ukvac] TECHNICAL: TAITO 'power-on-reset' circuit?
Please don't take this as a flame or anything. I'm not questioning your
answer, I'm just curious about what you said regarding 'jump vectors'? I'm
only trying to learn something extra which I don't know already
) Keep in
mind as well, my background is *only* in Z80, so I haven't a clue about
anything else...
Anyways... - Surely when the processor resets it will always go to 0000h?
(And surely it'll flush ALL registers, not just 'various' ones?) I'm
assuming by a 'jump vector' you mean a jump execution which has an
'alterable' jump location? If it's something else, then *cough* yes my
whole question is redundant
) Okay, onwards! Seeing as how there's no
BIOS on board these PCBs to alter the program counter - the ROM is obviously
Read Only Memory and so a straight JP xxxxh couldn't be altered (but then
the PC would still be at 0000h to be executing instructions in the first
place) and the processor runs machine code and not source code (so you can't
have a tag to change like you would do using an assembler) - how could a POR
start the processor running at anything other than 0000h? Obviously if you
set the interrupt mode to 'whatever' and have a routine in RAM to jump
somewhere dependant on the interrupt call being made then that would be a
kind of vector jump. But (and it's a big but!) you'd still need to set the
interrupt mode in the first place - as the processor has been reset - which
means the PC would be at 0000h in order for it to be starting to execute
instructions?!!!?!?! I'm a bit confused
) Yes, as usual...
Sorry to hijack this thread
) But when I see something I don't
understand, I like to have it explained to me!!! I've even stopped work for
now so I could write this email without distractions!
Pobster
PS.
) I've fixed my Star Wars!!!! The deflection board issues were: 1
faulty pot, 2 faulty diodes, 3 faulty transistors and a partridge in a pear
tree....
DATA Imported from archives: originally posted by Mike Hawkins (mike.hawkins@fsmail.net)
Yes, all registers are affected by a RESET but not all require specific set-up values, i.e. none of the general purpose registers need to be preset. A reset vector at FFFEh and FFFFh would be set/programmed in ROM. It just means that the entry point for the ROM code is programmable and the ROM within the processors memory map must be high. The Z80 always resets to 0000h but has what amounts to a jump vector table from that address. The instructions RST0, RST8 etc effectively shift program execution to these absolute addresses, i.e. 0000h, 0008h. If all these vectors are used then the programmer would have to provide jump vectors at these address (with a JMP instruction of course). It is by no means carved in stone that a processor has to reset to 0000h. I cannot remember which processor uses the vector at FFFEh, FFFFh but it is a true vector address, by which I mean that it does'nt require a jump instruction.
Mike
========================================
Message date : Oct 25 2004, 11:42 AM
From : "Paul Maddern"
To : ukvac@yahoogroups.com
Copy to :
Subject : RE: RE: [ukvac] TECHNICAL: TAITO 'power-on-reset' circuit?
Please don't take this as a flame or anything. I'm not questioning your
answer, I'm just curious about what you said regarding 'jump vectors'? I'm
only trying to learn something extra which I don't know already
mind as well, my background is *only* in Z80, so I haven't a clue about
anything else...
Anyways... - Surely when the processor resets it will always go to 0000h?
(And surely it'll flush ALL registers, not just 'various' ones?) I'm
assuming by a 'jump vector' you mean a jump execution which has an
'alterable' jump location? If it's something else, then *cough* yes my
whole question is redundant
BIOS on board these PCBs to alter the program counter - the ROM is obviously
Read Only Memory and so a straight JP xxxxh couldn't be altered (but then
the PC would still be at 0000h to be executing instructions in the first
place) and the processor runs machine code and not source code (so you can't
have a tag to change like you would do using an assembler) - how could a POR
start the processor running at anything other than 0000h? Obviously if you
set the interrupt mode to 'whatever' and have a routine in RAM to jump
somewhere dependant on the interrupt call being made then that would be a
kind of vector jump. But (and it's a big but!) you'd still need to set the
interrupt mode in the first place - as the processor has been reset - which
means the PC would be at 0000h in order for it to be starting to execute
instructions?!!!?!?! I'm a bit confused
Sorry to hijack this thread
understand, I like to have it explained to me!!! I've even stopped work for
now so I could write this email without distractions!
Pobster
PS.
faulty pot, 2 faulty diodes, 3 faulty transistors and a partridge in a pear
tree....
DATA Imported from archives: originally posted by Mike Hawkins (mike.hawkins@fsmail.net)