* Cryptanalysis Problem (CLASSIFIED) a GREG b GREG c GREG t GREG x GREG y GREG LOC Data_Segment count GREG @ Base address for wyde counts LOC @+8*(1<<16) Space for the wyde frequencies freq GREG @ Base address for byte counts LOC @+8*(1<<8) Space for the byte frequencies p GREG @ BYTE "abracadabraa",0,"abc" Trivial test data ones GREG #0101010101010101 LOC #100 2H SRU b,a,45 Isolate next wyde. LDO c,count,b Load old count. INCL c,1 STO c,count,b Store new count. SLU a,a,16 Delete one wyde. PBNZ a,2B Done with octabyte? \bracetext... Phase1 LDOU a,p,0 Start here: Fetch the next eight bytes. INCL p,8 BDIF t,ones,a Test if there's a zero byte. PBZ t,2B Do main loop, unless near the end. 2H SRU b,a,45 Isolate next wyde. LDO c,count,b Load old count. INCL c,1 STO c,count,b Store new count. SRU b,t,48 SLU a,a,16 BDIF t,ones,a PBZ b,2B Continue unless done. Phase2 SET p,8*255 1 1H SL a,p,8 255 LDA a,count,a 255 $\.a\gets{}$address of row \.p SET b,8*255 255 LDO c,a,0 255 SET t,p 255 2H INCL t,#800 255*255 LDO x,count,t 255*255 Element of column \.p LDO y,a,b 255*255 Element of row \.p ADD c,c,x 255*255 ADD c,c,y 255*255 SUB b,b,8 255*255 PBP b,2B 255*255 STO c,freq,p 255 SUB p,p,8 255 PBP p,1B 255 POP Main IS Phase1