import string, sys def main(): highroad = 0 offset = 0 bigxor = 0 for l in sys.stdin.readlines(): w = string.split(l) if len(w)==0: continue w = string.atoi(w[0], 16) print "%6.6x"%(w), if (w&0x400000)==0: bigxor = bigxor^(w&0x7fffff) if w&0x400000: # EE word pcheck = 0 for i in range(23): pcheck = pcheck^(bigxor>>i&1) bigxor = 0 pok = pcheck^(w>>8&0x1) okok = ["GOOD", "BAD"] print "EE l2b=%1.1x err=%3.3x pa=%1.1x bc=%2.2x pchk=%1.1x %s"%( w>>19&0x3, w>>9&0x3ff, w>>8&0x1, w>>0&0xff, pcheck, okok[pok]) offset = 0 else: if offset==0: print "w1 1=%x err=%x z=%x/%x phi=%3.3x"%( w>>20&1, w>>19&1, w>>16&7, w>>13&7, w>>0&0x1fff) elif offset==1: print "w2 lowroad=%2.2x ?=%x sc=%x c=%2.2x sd=%x d=%3.3x"%( w>>20&0x3, w>>19&1, w>>18&1, w>>10&0xff, w>>9&1, w>>0&0x1ff) highroad = w>>20&0x3 elif offset==2: print "w3 sect=%x highroad=%4.4x (total road = %4.4x)"%( w>>17&0xf, w>>0&0x1ffff, w>>0&0x1ffff+(highroad&0x3)<<17) elif offset==3: print "w4 ?=%x h1=%x lc=%x x1=%2.2x h0=%x lc=%x x0=%2.2x"%( w>>20&1, w>>19&1, w>>18&1, w>>10&0xff, w>>9&1, w>>8&1, w>>0&0xff) elif offset==4: print "w5 ?=%x h3=%x lc=%x x3=%2.2x h2=%x lc=%x x2=%2.2x"%( w>>20&1, w>>19&1, w>>18&1, w>>10&0xff, w>>9&1, w>>8&1, w>>0&0xff) elif offset==5: print "w6 chi2=%3.3d h4=%x lc=%x x4=%2.2x"%( w>>10&0x7ff, w>>9&1, w>>8&1, w>>0&0xff) elif offset==6: print "w7 err=%3.3x tnum=%2.2x"%( w>>9&0xfff, w>>0&0x1ff) else: raise InternalError offset = offset+1 if w&0x200000: offset = 0 if __name__=="__main__": main()