Bit one of the Intel 8080's Flags registerLCD Displays with the Intel 8080How did the Z80 instruction set differ from the 8080?Why did Pokémon Red have so many overflow bugs?Carry flag in 8080/8085 subtractionWhy was the 8080's JumP immediate instruction placed where it was?Intel 8080 - Behaviour of the carry bit when comparing a value with 0The start of x86: Intel 8080 vs Intel 8086?Intel 8080-based home computers

Ambiguity in notation resolved by +

Why is the T-1000 humanoid?

Planar regular languages

Which is the current decimal separator?

The Planck constant for mathematicians

I asked for a graduate student position from a professor. He replied "welcome". What does that mean?

Make 2019 with single digits

What is my breathable atmosphere composed of?

What does a Light weapon mean mechanically?

How can I discourage sharing internal API keys within a company?

What is this gigantic dish at Ben Gurion airport?

How would you control supersoldiers in a late iron-age society?

Difference in using Lightning Component <lighting:badge/> and Normal DOM with slds <span class="slds-badge"></span>? Which is Better and Why?

How do certain apps show new notifications when internet access is restricted to them?

What was the ultimate objective of The Party in 1984?

Double it your way

Can I conceal an antihero's insanity - and should I?

How major are these paintwork & rust problems?

Why did it become so much more expensive to start a university?

How to stabilise the bicycle seatpost and saddle when it is all the way up?

What is the CR of a Metallic Dragon that used Change Shape?

Should you only use colons and periods in dialogues?

Why is the Digital 0 not 0V in computer systems?

Is low emotional intelligence associated with right-wing and prejudiced attitudes?



Bit one of the Intel 8080's Flags register


LCD Displays with the Intel 8080How did the Z80 instruction set differ from the 8080?Why did Pokémon Red have so many overflow bugs?Carry flag in 8080/8085 subtractionWhy was the 8080's JumP immediate instruction placed where it was?Intel 8080 - Behaviour of the carry bit when comparing a value with 0The start of x86: Intel 8080 vs Intel 8086?Intel 8080-based home computers






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








5















Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup? If so what was the reason for this, and was this inherited from the 8008 Flags register?










share|improve this question









New contributor



Single Malt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.



























    5















    Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup? If so what was the reason for this, and was this inherited from the 8008 Flags register?










    share|improve this question









    New contributor



    Single Malt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      5












      5








      5








      Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup? If so what was the reason for this, and was this inherited from the 8008 Flags register?










      share|improve this question









      New contributor



      Single Malt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup? If so what was the reason for this, and was this inherited from the 8008 Flags register?







      8080






      share|improve this question









      New contributor



      Single Malt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share|improve this question









      New contributor



      Single Malt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share|improve this question




      share|improve this question








      edited 9 hours ago







      Single Malt













      New contributor



      Single Malt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      asked 10 hours ago









      Single MaltSingle Malt

      262 bronze badges




      262 bronze badges




      New contributor



      Single Malt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




      New contributor




      Single Malt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.

























          3 Answers
          3






          active

          oldest

          votes


















          8

















          Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup?




          TL;DR:



          No, as there is no flag register on the 8080. Only separate flags. The 'filler' bits (1, 3, 5) only get their value when PUSH PSW is executed.




          Long Read:



          The 8080 does not have a flag register, but like it's predecessor the 8008 separate flags. Which are, like other answers describe correct, at random state after power-up/reset.



          The 8080 has no access in register form for the programmer. Only testing due conditioned instructions was possible. Setting could only be done via instructions with implied result stored in any of them. The only access as byte data was when pushed onto the stack.



          When storing the flags to the stack (PUSH PSW) the second byte is synthesized from the flag bits and completed by 'filler' values for position 1, 3, 5 (1, 0, 0). This guarantees that in memory bit 1 always will be 1.



          (From "8080 Assembly Language Programming Manual", "Rev B", p.22/23)



          During store (PUSH PSW)



          If register pair PSW is specified, the first byte of information
          saved holds the contents of the A register; the
          second byte holds the settings of the five condition bits,
          i.e., Carry, Zero, Sign, Parity, and Auxiliary Carry. The format
          of this byte is:

          | | | |A| | | | |
          |S|Z|0|C|0|P|1|C|

          S State of Sign bit
          Z State of Zero bit
          0 always 0
          AC State of auxiliary Carry bit
          0 always 0
          P State of Parity bit
          1 always 1
          C State of Carry bit


          For retrieval (POP PSW):



          [...] If register pair
          PSW is specified, the byte of data indicated by the contents
          of the stack pointer plus one is used to restore the values of
          the five condition bits (Carry, Zero, Sign, Parity, and Auxiliary
          Carry) using the format described in the last section.



          If so what was the reason for this, and was this inherited from the 8008 Flags register?




          In part, as they were separate single bit entities. Except the 8008 did not allow any access to the flags beside testing them in conditional instructions. There was no instruction to store or retrieve them at all.




          Follow Up Tidbits:



          The follow up 8085 did introduce a real flag register (*1), still not in the register file, but kept separate, like the A register as well (*2). Now bit 1 was used as V flag. That's one of the incompatibilities with 8080 code - and one way to detect a 8085, by pushing a cleared HL, poping PSW, pushing PSW again and then checking L. If bit 1 is still cleared, it's an 8085.



          The Z80 in contrast made the flag register (or better both, as there's one for every register set) part of its huge register file, but now, at the begin of every instruction, copied the content of the flag register in use into seperate flag flip-flops, only to be copied back at the end. Beside simplifying the storage structure a must to support two register sets, including flags.




          *1 - Well, almost, as only 7 storage bits are implemented. Bit 3 was replaced by a circuitry to always drive 0 when read.



          *2 - On the 8008 the A register was a normal member of the register file.






          share|improve this answer






















          • 1





            I voted +1 as this all sounds correct; who voted -1? "It's not set at startup because it doesn't exist" sounds like a good contribution to me.

            – Tommy
            8 hours ago











          • What is the reason bit one in memory (from PUSH PSW) was set to one? Bit one of the 8086 Flags register is also set to one.

            – Single Malt
            6 hours ago











          • @SingleMalt Well, for a definitive Answer one may have to go thru the circuitry. It may as well be due the way the data lines are layouted. Ken Shirriff might be a good source to ask here. The 8086 flag register was on purpose made to work similar to the 8080 to ease automatic program conversion.

            – Raffzahn
            6 hours ago












          • @Raffzahn definitely seems plausible to do with the circuitry. Appreciate the additional information that 8085 was the first of these to introduce a real register flag, and the link about its V flag.

            – Single Malt
            5 hours ago






          • 1





            So, this seems to be a Heisenberg thing: Once you start looking at it (PUSH PSW), it suddenly is different ;)

            – tofro
            4 hours ago


















          4
















          According to the Intel 8080 microcomputer systems user’s manual, the contents of registers are indeterminate on startup:




          The contents of its
          program counter, stack pointer, and the other working regis-
          ters are naturally subject to random factors and cannot be
          specified.




          and further on




          Note, however, that
          the RESET has no effect on status flags, or on any of the
          processor's working registers (accumulator, registers, or
          stack pointer). The contents of these registers remain inde-
          terminate, until initialized explicitly by the program.







          share|improve this answer




















          • 2





            beat me to it, and you cite the same manual ;)

            – tofro
            9 hours ago


















          4
















          According to the manual, the only thing that is explicitly set after RESET in the 8080 is the program counter. Everything else is indeterminate:




          Note, however,that the RESET has no effect on status flags, or on any of the processor's working registers (accumulator, registers, or stackpointer). The contents of these registers remain indeterminate, until initialized explicitly by the program.




          If they don't initialize anything at all, it is very unlikely they'd initialize something that isn't even used.






          share|improve this answer



























          • I like the 'unlikely' part :)) Except, for all ever visible to programmers, they will look like initialized. Cool, isn't it?

            – Raffzahn
            8 hours ago














          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/4.0/"u003ecc by-sa 4.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
          );



          );







          Single Malt is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded
















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f12300%2fbit-one-of-the-intel-8080s-flags-register%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          3 Answers
          3






          active

          oldest

          votes








          3 Answers
          3






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          8

















          Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup?




          TL;DR:



          No, as there is no flag register on the 8080. Only separate flags. The 'filler' bits (1, 3, 5) only get their value when PUSH PSW is executed.




          Long Read:



          The 8080 does not have a flag register, but like it's predecessor the 8008 separate flags. Which are, like other answers describe correct, at random state after power-up/reset.



          The 8080 has no access in register form for the programmer. Only testing due conditioned instructions was possible. Setting could only be done via instructions with implied result stored in any of them. The only access as byte data was when pushed onto the stack.



          When storing the flags to the stack (PUSH PSW) the second byte is synthesized from the flag bits and completed by 'filler' values for position 1, 3, 5 (1, 0, 0). This guarantees that in memory bit 1 always will be 1.



          (From "8080 Assembly Language Programming Manual", "Rev B", p.22/23)



          During store (PUSH PSW)



          If register pair PSW is specified, the first byte of information
          saved holds the contents of the A register; the
          second byte holds the settings of the five condition bits,
          i.e., Carry, Zero, Sign, Parity, and Auxiliary Carry. The format
          of this byte is:

          | | | |A| | | | |
          |S|Z|0|C|0|P|1|C|

          S State of Sign bit
          Z State of Zero bit
          0 always 0
          AC State of auxiliary Carry bit
          0 always 0
          P State of Parity bit
          1 always 1
          C State of Carry bit


          For retrieval (POP PSW):



          [...] If register pair
          PSW is specified, the byte of data indicated by the contents
          of the stack pointer plus one is used to restore the values of
          the five condition bits (Carry, Zero, Sign, Parity, and Auxiliary
          Carry) using the format described in the last section.



          If so what was the reason for this, and was this inherited from the 8008 Flags register?




          In part, as they were separate single bit entities. Except the 8008 did not allow any access to the flags beside testing them in conditional instructions. There was no instruction to store or retrieve them at all.




          Follow Up Tidbits:



          The follow up 8085 did introduce a real flag register (*1), still not in the register file, but kept separate, like the A register as well (*2). Now bit 1 was used as V flag. That's one of the incompatibilities with 8080 code - and one way to detect a 8085, by pushing a cleared HL, poping PSW, pushing PSW again and then checking L. If bit 1 is still cleared, it's an 8085.



          The Z80 in contrast made the flag register (or better both, as there's one for every register set) part of its huge register file, but now, at the begin of every instruction, copied the content of the flag register in use into seperate flag flip-flops, only to be copied back at the end. Beside simplifying the storage structure a must to support two register sets, including flags.




          *1 - Well, almost, as only 7 storage bits are implemented. Bit 3 was replaced by a circuitry to always drive 0 when read.



          *2 - On the 8008 the A register was a normal member of the register file.






          share|improve this answer






















          • 1





            I voted +1 as this all sounds correct; who voted -1? "It's not set at startup because it doesn't exist" sounds like a good contribution to me.

            – Tommy
            8 hours ago











          • What is the reason bit one in memory (from PUSH PSW) was set to one? Bit one of the 8086 Flags register is also set to one.

            – Single Malt
            6 hours ago











          • @SingleMalt Well, for a definitive Answer one may have to go thru the circuitry. It may as well be due the way the data lines are layouted. Ken Shirriff might be a good source to ask here. The 8086 flag register was on purpose made to work similar to the 8080 to ease automatic program conversion.

            – Raffzahn
            6 hours ago












          • @Raffzahn definitely seems plausible to do with the circuitry. Appreciate the additional information that 8085 was the first of these to introduce a real register flag, and the link about its V flag.

            – Single Malt
            5 hours ago






          • 1





            So, this seems to be a Heisenberg thing: Once you start looking at it (PUSH PSW), it suddenly is different ;)

            – tofro
            4 hours ago















          8

















          Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup?




          TL;DR:



          No, as there is no flag register on the 8080. Only separate flags. The 'filler' bits (1, 3, 5) only get their value when PUSH PSW is executed.




          Long Read:



          The 8080 does not have a flag register, but like it's predecessor the 8008 separate flags. Which are, like other answers describe correct, at random state after power-up/reset.



          The 8080 has no access in register form for the programmer. Only testing due conditioned instructions was possible. Setting could only be done via instructions with implied result stored in any of them. The only access as byte data was when pushed onto the stack.



          When storing the flags to the stack (PUSH PSW) the second byte is synthesized from the flag bits and completed by 'filler' values for position 1, 3, 5 (1, 0, 0). This guarantees that in memory bit 1 always will be 1.



          (From "8080 Assembly Language Programming Manual", "Rev B", p.22/23)



          During store (PUSH PSW)



          If register pair PSW is specified, the first byte of information
          saved holds the contents of the A register; the
          second byte holds the settings of the five condition bits,
          i.e., Carry, Zero, Sign, Parity, and Auxiliary Carry. The format
          of this byte is:

          | | | |A| | | | |
          |S|Z|0|C|0|P|1|C|

          S State of Sign bit
          Z State of Zero bit
          0 always 0
          AC State of auxiliary Carry bit
          0 always 0
          P State of Parity bit
          1 always 1
          C State of Carry bit


          For retrieval (POP PSW):



          [...] If register pair
          PSW is specified, the byte of data indicated by the contents
          of the stack pointer plus one is used to restore the values of
          the five condition bits (Carry, Zero, Sign, Parity, and Auxiliary
          Carry) using the format described in the last section.



          If so what was the reason for this, and was this inherited from the 8008 Flags register?




          In part, as they were separate single bit entities. Except the 8008 did not allow any access to the flags beside testing them in conditional instructions. There was no instruction to store or retrieve them at all.




          Follow Up Tidbits:



          The follow up 8085 did introduce a real flag register (*1), still not in the register file, but kept separate, like the A register as well (*2). Now bit 1 was used as V flag. That's one of the incompatibilities with 8080 code - and one way to detect a 8085, by pushing a cleared HL, poping PSW, pushing PSW again and then checking L. If bit 1 is still cleared, it's an 8085.



          The Z80 in contrast made the flag register (or better both, as there's one for every register set) part of its huge register file, but now, at the begin of every instruction, copied the content of the flag register in use into seperate flag flip-flops, only to be copied back at the end. Beside simplifying the storage structure a must to support two register sets, including flags.




          *1 - Well, almost, as only 7 storage bits are implemented. Bit 3 was replaced by a circuitry to always drive 0 when read.



          *2 - On the 8008 the A register was a normal member of the register file.






          share|improve this answer






















          • 1





            I voted +1 as this all sounds correct; who voted -1? "It's not set at startup because it doesn't exist" sounds like a good contribution to me.

            – Tommy
            8 hours ago











          • What is the reason bit one in memory (from PUSH PSW) was set to one? Bit one of the 8086 Flags register is also set to one.

            – Single Malt
            6 hours ago











          • @SingleMalt Well, for a definitive Answer one may have to go thru the circuitry. It may as well be due the way the data lines are layouted. Ken Shirriff might be a good source to ask here. The 8086 flag register was on purpose made to work similar to the 8080 to ease automatic program conversion.

            – Raffzahn
            6 hours ago












          • @Raffzahn definitely seems plausible to do with the circuitry. Appreciate the additional information that 8085 was the first of these to introduce a real register flag, and the link about its V flag.

            – Single Malt
            5 hours ago






          • 1





            So, this seems to be a Heisenberg thing: Once you start looking at it (PUSH PSW), it suddenly is different ;)

            – tofro
            4 hours ago













          8














          8










          8










          Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup?




          TL;DR:



          No, as there is no flag register on the 8080. Only separate flags. The 'filler' bits (1, 3, 5) only get their value when PUSH PSW is executed.




          Long Read:



          The 8080 does not have a flag register, but like it's predecessor the 8008 separate flags. Which are, like other answers describe correct, at random state after power-up/reset.



          The 8080 has no access in register form for the programmer. Only testing due conditioned instructions was possible. Setting could only be done via instructions with implied result stored in any of them. The only access as byte data was when pushed onto the stack.



          When storing the flags to the stack (PUSH PSW) the second byte is synthesized from the flag bits and completed by 'filler' values for position 1, 3, 5 (1, 0, 0). This guarantees that in memory bit 1 always will be 1.



          (From "8080 Assembly Language Programming Manual", "Rev B", p.22/23)



          During store (PUSH PSW)



          If register pair PSW is specified, the first byte of information
          saved holds the contents of the A register; the
          second byte holds the settings of the five condition bits,
          i.e., Carry, Zero, Sign, Parity, and Auxiliary Carry. The format
          of this byte is:

          | | | |A| | | | |
          |S|Z|0|C|0|P|1|C|

          S State of Sign bit
          Z State of Zero bit
          0 always 0
          AC State of auxiliary Carry bit
          0 always 0
          P State of Parity bit
          1 always 1
          C State of Carry bit


          For retrieval (POP PSW):



          [...] If register pair
          PSW is specified, the byte of data indicated by the contents
          of the stack pointer plus one is used to restore the values of
          the five condition bits (Carry, Zero, Sign, Parity, and Auxiliary
          Carry) using the format described in the last section.



          If so what was the reason for this, and was this inherited from the 8008 Flags register?




          In part, as they were separate single bit entities. Except the 8008 did not allow any access to the flags beside testing them in conditional instructions. There was no instruction to store or retrieve them at all.




          Follow Up Tidbits:



          The follow up 8085 did introduce a real flag register (*1), still not in the register file, but kept separate, like the A register as well (*2). Now bit 1 was used as V flag. That's one of the incompatibilities with 8080 code - and one way to detect a 8085, by pushing a cleared HL, poping PSW, pushing PSW again and then checking L. If bit 1 is still cleared, it's an 8085.



          The Z80 in contrast made the flag register (or better both, as there's one for every register set) part of its huge register file, but now, at the begin of every instruction, copied the content of the flag register in use into seperate flag flip-flops, only to be copied back at the end. Beside simplifying the storage structure a must to support two register sets, including flags.




          *1 - Well, almost, as only 7 storage bits are implemented. Bit 3 was replaced by a circuitry to always drive 0 when read.



          *2 - On the 8008 the A register was a normal member of the register file.






          share|improve this answer
















          Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup?




          TL;DR:



          No, as there is no flag register on the 8080. Only separate flags. The 'filler' bits (1, 3, 5) only get their value when PUSH PSW is executed.




          Long Read:



          The 8080 does not have a flag register, but like it's predecessor the 8008 separate flags. Which are, like other answers describe correct, at random state after power-up/reset.



          The 8080 has no access in register form for the programmer. Only testing due conditioned instructions was possible. Setting could only be done via instructions with implied result stored in any of them. The only access as byte data was when pushed onto the stack.



          When storing the flags to the stack (PUSH PSW) the second byte is synthesized from the flag bits and completed by 'filler' values for position 1, 3, 5 (1, 0, 0). This guarantees that in memory bit 1 always will be 1.



          (From "8080 Assembly Language Programming Manual", "Rev B", p.22/23)



          During store (PUSH PSW)



          If register pair PSW is specified, the first byte of information
          saved holds the contents of the A register; the
          second byte holds the settings of the five condition bits,
          i.e., Carry, Zero, Sign, Parity, and Auxiliary Carry. The format
          of this byte is:

          | | | |A| | | | |
          |S|Z|0|C|0|P|1|C|

          S State of Sign bit
          Z State of Zero bit
          0 always 0
          AC State of auxiliary Carry bit
          0 always 0
          P State of Parity bit
          1 always 1
          C State of Carry bit


          For retrieval (POP PSW):



          [...] If register pair
          PSW is specified, the byte of data indicated by the contents
          of the stack pointer plus one is used to restore the values of
          the five condition bits (Carry, Zero, Sign, Parity, and Auxiliary
          Carry) using the format described in the last section.



          If so what was the reason for this, and was this inherited from the 8008 Flags register?




          In part, as they were separate single bit entities. Except the 8008 did not allow any access to the flags beside testing them in conditional instructions. There was no instruction to store or retrieve them at all.




          Follow Up Tidbits:



          The follow up 8085 did introduce a real flag register (*1), still not in the register file, but kept separate, like the A register as well (*2). Now bit 1 was used as V flag. That's one of the incompatibilities with 8080 code - and one way to detect a 8085, by pushing a cleared HL, poping PSW, pushing PSW again and then checking L. If bit 1 is still cleared, it's an 8085.



          The Z80 in contrast made the flag register (or better both, as there's one for every register set) part of its huge register file, but now, at the begin of every instruction, copied the content of the flag register in use into seperate flag flip-flops, only to be copied back at the end. Beside simplifying the storage structure a must to support two register sets, including flags.




          *1 - Well, almost, as only 7 storage bits are implemented. Bit 3 was replaced by a circuitry to always drive 0 when read.



          *2 - On the 8008 the A register was a normal member of the register file.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 5 hours ago

























          answered 8 hours ago









          RaffzahnRaffzahn

          70.1k7 gold badges176 silver badges292 bronze badges




          70.1k7 gold badges176 silver badges292 bronze badges










          • 1





            I voted +1 as this all sounds correct; who voted -1? "It's not set at startup because it doesn't exist" sounds like a good contribution to me.

            – Tommy
            8 hours ago











          • What is the reason bit one in memory (from PUSH PSW) was set to one? Bit one of the 8086 Flags register is also set to one.

            – Single Malt
            6 hours ago











          • @SingleMalt Well, for a definitive Answer one may have to go thru the circuitry. It may as well be due the way the data lines are layouted. Ken Shirriff might be a good source to ask here. The 8086 flag register was on purpose made to work similar to the 8080 to ease automatic program conversion.

            – Raffzahn
            6 hours ago












          • @Raffzahn definitely seems plausible to do with the circuitry. Appreciate the additional information that 8085 was the first of these to introduce a real register flag, and the link about its V flag.

            – Single Malt
            5 hours ago






          • 1





            So, this seems to be a Heisenberg thing: Once you start looking at it (PUSH PSW), it suddenly is different ;)

            – tofro
            4 hours ago












          • 1





            I voted +1 as this all sounds correct; who voted -1? "It's not set at startup because it doesn't exist" sounds like a good contribution to me.

            – Tommy
            8 hours ago











          • What is the reason bit one in memory (from PUSH PSW) was set to one? Bit one of the 8086 Flags register is also set to one.

            – Single Malt
            6 hours ago











          • @SingleMalt Well, for a definitive Answer one may have to go thru the circuitry. It may as well be due the way the data lines are layouted. Ken Shirriff might be a good source to ask here. The 8086 flag register was on purpose made to work similar to the 8080 to ease automatic program conversion.

            – Raffzahn
            6 hours ago












          • @Raffzahn definitely seems plausible to do with the circuitry. Appreciate the additional information that 8085 was the first of these to introduce a real register flag, and the link about its V flag.

            – Single Malt
            5 hours ago






          • 1





            So, this seems to be a Heisenberg thing: Once you start looking at it (PUSH PSW), it suddenly is different ;)

            – tofro
            4 hours ago







          1




          1





          I voted +1 as this all sounds correct; who voted -1? "It's not set at startup because it doesn't exist" sounds like a good contribution to me.

          – Tommy
          8 hours ago





          I voted +1 as this all sounds correct; who voted -1? "It's not set at startup because it doesn't exist" sounds like a good contribution to me.

          – Tommy
          8 hours ago













          What is the reason bit one in memory (from PUSH PSW) was set to one? Bit one of the 8086 Flags register is also set to one.

          – Single Malt
          6 hours ago





          What is the reason bit one in memory (from PUSH PSW) was set to one? Bit one of the 8086 Flags register is also set to one.

          – Single Malt
          6 hours ago













          @SingleMalt Well, for a definitive Answer one may have to go thru the circuitry. It may as well be due the way the data lines are layouted. Ken Shirriff might be a good source to ask here. The 8086 flag register was on purpose made to work similar to the 8080 to ease automatic program conversion.

          – Raffzahn
          6 hours ago






          @SingleMalt Well, for a definitive Answer one may have to go thru the circuitry. It may as well be due the way the data lines are layouted. Ken Shirriff might be a good source to ask here. The 8086 flag register was on purpose made to work similar to the 8080 to ease automatic program conversion.

          – Raffzahn
          6 hours ago














          @Raffzahn definitely seems plausible to do with the circuitry. Appreciate the additional information that 8085 was the first of these to introduce a real register flag, and the link about its V flag.

          – Single Malt
          5 hours ago





          @Raffzahn definitely seems plausible to do with the circuitry. Appreciate the additional information that 8085 was the first of these to introduce a real register flag, and the link about its V flag.

          – Single Malt
          5 hours ago




          1




          1





          So, this seems to be a Heisenberg thing: Once you start looking at it (PUSH PSW), it suddenly is different ;)

          – tofro
          4 hours ago





          So, this seems to be a Heisenberg thing: Once you start looking at it (PUSH PSW), it suddenly is different ;)

          – tofro
          4 hours ago













          4
















          According to the Intel 8080 microcomputer systems user’s manual, the contents of registers are indeterminate on startup:




          The contents of its
          program counter, stack pointer, and the other working regis-
          ters are naturally subject to random factors and cannot be
          specified.




          and further on




          Note, however, that
          the RESET has no effect on status flags, or on any of the
          processor's working registers (accumulator, registers, or
          stack pointer). The contents of these registers remain inde-
          terminate, until initialized explicitly by the program.







          share|improve this answer




















          • 2





            beat me to it, and you cite the same manual ;)

            – tofro
            9 hours ago















          4
















          According to the Intel 8080 microcomputer systems user’s manual, the contents of registers are indeterminate on startup:




          The contents of its
          program counter, stack pointer, and the other working regis-
          ters are naturally subject to random factors and cannot be
          specified.




          and further on




          Note, however, that
          the RESET has no effect on status flags, or on any of the
          processor's working registers (accumulator, registers, or
          stack pointer). The contents of these registers remain inde-
          terminate, until initialized explicitly by the program.







          share|improve this answer




















          • 2





            beat me to it, and you cite the same manual ;)

            – tofro
            9 hours ago













          4














          4










          4









          According to the Intel 8080 microcomputer systems user’s manual, the contents of registers are indeterminate on startup:




          The contents of its
          program counter, stack pointer, and the other working regis-
          ters are naturally subject to random factors and cannot be
          specified.




          and further on




          Note, however, that
          the RESET has no effect on status flags, or on any of the
          processor's working registers (accumulator, registers, or
          stack pointer). The contents of these registers remain inde-
          terminate, until initialized explicitly by the program.







          share|improve this answer













          According to the Intel 8080 microcomputer systems user’s manual, the contents of registers are indeterminate on startup:




          The contents of its
          program counter, stack pointer, and the other working regis-
          ters are naturally subject to random factors and cannot be
          specified.




          and further on




          Note, however, that
          the RESET has no effect on status flags, or on any of the
          processor's working registers (accumulator, registers, or
          stack pointer). The contents of these registers remain inde-
          terminate, until initialized explicitly by the program.








          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 9 hours ago









          Stephen KittStephen Kitt

          50.1k9 gold badges206 silver badges208 bronze badges




          50.1k9 gold badges206 silver badges208 bronze badges










          • 2





            beat me to it, and you cite the same manual ;)

            – tofro
            9 hours ago












          • 2





            beat me to it, and you cite the same manual ;)

            – tofro
            9 hours ago







          2




          2





          beat me to it, and you cite the same manual ;)

          – tofro
          9 hours ago





          beat me to it, and you cite the same manual ;)

          – tofro
          9 hours ago











          4
















          According to the manual, the only thing that is explicitly set after RESET in the 8080 is the program counter. Everything else is indeterminate:




          Note, however,that the RESET has no effect on status flags, or on any of the processor's working registers (accumulator, registers, or stackpointer). The contents of these registers remain indeterminate, until initialized explicitly by the program.




          If they don't initialize anything at all, it is very unlikely they'd initialize something that isn't even used.






          share|improve this answer



























          • I like the 'unlikely' part :)) Except, for all ever visible to programmers, they will look like initialized. Cool, isn't it?

            – Raffzahn
            8 hours ago
















          4
















          According to the manual, the only thing that is explicitly set after RESET in the 8080 is the program counter. Everything else is indeterminate:




          Note, however,that the RESET has no effect on status flags, or on any of the processor's working registers (accumulator, registers, or stackpointer). The contents of these registers remain indeterminate, until initialized explicitly by the program.




          If they don't initialize anything at all, it is very unlikely they'd initialize something that isn't even used.






          share|improve this answer



























          • I like the 'unlikely' part :)) Except, for all ever visible to programmers, they will look like initialized. Cool, isn't it?

            – Raffzahn
            8 hours ago














          4














          4










          4









          According to the manual, the only thing that is explicitly set after RESET in the 8080 is the program counter. Everything else is indeterminate:




          Note, however,that the RESET has no effect on status flags, or on any of the processor's working registers (accumulator, registers, or stackpointer). The contents of these registers remain indeterminate, until initialized explicitly by the program.




          If they don't initialize anything at all, it is very unlikely they'd initialize something that isn't even used.






          share|improve this answer















          According to the manual, the only thing that is explicitly set after RESET in the 8080 is the program counter. Everything else is indeterminate:




          Note, however,that the RESET has no effect on status flags, or on any of the processor's working registers (accumulator, registers, or stackpointer). The contents of these registers remain indeterminate, until initialized explicitly by the program.




          If they don't initialize anything at all, it is very unlikely they'd initialize something that isn't even used.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 1 hour ago









          Cody Gray

          1,1866 silver badges21 bronze badges




          1,1866 silver badges21 bronze badges










          answered 9 hours ago









          tofrotofro

          18.2k3 gold badges38 silver badges101 bronze badges




          18.2k3 gold badges38 silver badges101 bronze badges















          • I like the 'unlikely' part :)) Except, for all ever visible to programmers, they will look like initialized. Cool, isn't it?

            – Raffzahn
            8 hours ago


















          • I like the 'unlikely' part :)) Except, for all ever visible to programmers, they will look like initialized. Cool, isn't it?

            – Raffzahn
            8 hours ago

















          I like the 'unlikely' part :)) Except, for all ever visible to programmers, they will look like initialized. Cool, isn't it?

          – Raffzahn
          8 hours ago






          I like the 'unlikely' part :)) Except, for all ever visible to programmers, they will look like initialized. Cool, isn't it?

          – Raffzahn
          8 hours ago












          Single Malt is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded

















          Single Malt is a new contributor. Be nice, and check out our Code of Conduct.












          Single Malt is a new contributor. Be nice, and check out our Code of Conduct.











          Single Malt is a new contributor. Be nice, and check out our Code of Conduct.














          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%2f12300%2fbit-one-of-the-intel-8080s-flags-register%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

          Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

          Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

          Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її