From f25a52cf67304b5ddf5ddc6d3e1b3a7f0a3b7639 Mon Sep 17 00:00:00 2001 From: leslie Date: Wed, 6 Feb 2008 22:25:11 +0100 Subject: [PATCH] nagra 0101: map29 --- systems/nagra/nagra2-0101.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/systems/nagra/nagra2-0101.c b/systems/nagra/nagra2-0101.c index 7a191e8..1bb8431 100644 --- a/systems/nagra/nagra2-0101.c +++ b/systems/nagra/nagra2-0101.c @@ -435,6 +435,16 @@ void cMap0101::DoMap(int f, unsigned char *data, int l) else cycles=931 + 4*coef22[shift][0] - 6; break; } + case 0x29: + { + BN_add(B,B,C); + if(l<=0) l=wordsize; // conditional seems pretty useless + bool b=BN_is_bit_set(B,l<<6); + data[0]=b; + if(b) BN_mask_bits(B,l<<6); + cycles=504+(8*l)-((8*l-2)%5)-6; + } + break; case 0x3b: if(!l) l=wordsize; MonInit(wordsize*60+4*l); @@ -761,6 +771,11 @@ bool cN2Prov0101::ProcessMap(int f) GetMem(HILO(0x44),tmp,size<<3,0); DoMap(f,tmp,size); break; + case 0x29: + DoMap(f,tmp,-Get(0x48)); + Set(0x4b,tmp[0]); + AddCycles(MapCycles()); + break; case 0x3e: GetMem(HILO(0x44),tmp,size,0); DoMap(f,tmp,Get(0x48)); -- 2.39.5