@@ -373,4 +373,82 @@ public override uint CalcAuthFromOpcode(uint opcode)
373373 return ( ( opcode & 0x8000 ) >> 13 ) | ( ( opcode & 0x80 ) >> 7 ) | ( ( opcode & 0x800 ) >> 10 ) ;
374374 }
375375 }
376+
377+ public class Windows430 : FormulasBase
378+ {
379+ public override string ToString ( )
380+ {
381+ return "4.3.0.15005 Windows" ;
382+ }
383+
384+ protected override bool AuthCheck ( uint opcode )
385+ {
386+ return ( opcode & 0xEBDE ) == 770 ;
387+ }
388+
389+ protected override bool SpecialCheck ( uint opcode )
390+ {
391+ return ( opcode & 0x9549 ) == 1032 ;
392+ }
393+
394+ protected override bool NormalCheck ( uint opcode )
395+ {
396+ return ( opcode & 0x8159 ) == 0 ;
397+ }
398+
399+ public override uint CalcCryptedFromOpcode ( uint opcode )
400+ {
401+ return ( opcode & 6 | ( ( opcode & 0x20 | ( ( ( opcode & 0x80 ) | ( opcode >> 1 ) & 0x3F00 ) >> 1 ) ) >> 2 ) ) >> 1 ;
402+ }
403+
404+ public override uint CalcSpecialFromOpcode ( uint opcode )
405+ {
406+ return ( opcode & 6 | ( ( opcode & 0x30 | ( ( ( opcode & 0x80 ) | ( ( opcode & 0x200 | ( ( opcode & 0x800 | ( opcode >> 1 ) & 0x3000 ) >> 1 ) ) >> 1 ) ) >> 1 ) ) >> 1 ) ) >> 1 ;
407+ }
408+
409+ public override uint CalcAuthFromOpcode ( uint opcode )
410+ {
411+ return opcode & 1 | ( ( opcode & 0x20 | ( ( opcode & 0x400 | ( opcode >> 1 ) & 0x800 ) >> 4 ) ) >> 4 ) ;
412+ }
413+ }
414+
415+ public class Mac430 : FormulasBase
416+ {
417+ public override string ToString ( )
418+ {
419+ return "4.3.0.15005 Mac" ;
420+ }
421+
422+ protected override uint BaseOffset { get { return 1380 ; } }
423+
424+ protected override bool AuthCheck ( uint opcode )
425+ {
426+ return ( opcode & 0xEBDE ) == 770 ;
427+ }
428+
429+ protected override bool SpecialCheck ( uint opcode )
430+ {
431+ return ( opcode & 0x9549 ) == 1032 ;
432+ }
433+
434+ protected override bool NormalCheck ( uint opcode )
435+ {
436+ return ( opcode & 0x8159 ) == 0 ;
437+ }
438+
439+ public override uint CalcCryptedFromOpcode ( uint opcode )
440+ {
441+ return ( ( opcode & 0x7E00u ) >> 5 ) | ( ( opcode & 0x80u ) >> 4 ) | ( ( opcode & 6u ) >> 1 ) | ( ( opcode & 0x20u ) >> 3 ) ;
442+ }
443+
444+ public override uint CalcSpecialFromOpcode ( uint opcode )
445+ {
446+ return ( ( opcode & 0x6000 ) >> 6 ) | ( ( opcode & 0x800 ) >> 5 ) | ( ( opcode & 0x200 ) >> 4 ) | ( ( opcode & 0x80 ) >> 3 ) | ( ( opcode & 6 ) >> 1 ) | ( ( opcode & 0x30 ) >> 2 ) ;
447+ }
448+
449+ public override uint CalcAuthFromOpcode ( uint opcode )
450+ {
451+ return ( ( opcode & 0x1000 ) >> 9 ) | opcode & 1 | ( ( opcode & 0x400 ) >> 8 ) | ( ( opcode & 0x20 ) >> 4 ) ;
452+ }
453+ }
376454}
0 commit comments