public void CHECK_HL_LOOP() 
    {
         if (Z80.HL.D > 1 && Z80.PC.D < 0xfffc) 
         {
             int op1 = cpu_readop(Z80.PC.D) & 0xFF;
             int op2 = cpu_readop(Z80.PC.D+1) & 0xFF;
             if( (op1==0x7c && op2==0xb5) || (op1==0x7d && op2==0xb4) )
             {
                 int op3 = cpu_readop(Z80.PC.D+2) & 0xFF;
                 int op4 = cpu_readop(Z80.PC.D+3) & 0xFF;
                 if( op3==0x20 && op4==0xfb )								
                 {
                     while (Z80.HL.D > 0 && z80_ICount[0] > 4 + 4 + 12 + 6)
                     {
                        BURNODD( 4+4+12+6, 4, 4+4+12+6 );
                        Z80.HL.AddD(-1);//_HL--;
                     }
                 }
                 else if(op3==0xc2)
                 {
                     int ad1 = cpu_readop(Z80.PC.D+2) & 0xFF;
                     int ad2 = cpu_readop(Z80.PC.D+3) & 0xFF;
                     if( (ad1 + 256 * ad2) == (Z80.PC.D - 1) )					
                     {														
                         while(Z80.HL.D > 0 && z80_ICount[0] > 4+4+10+6 )			
                         {													
                               BURNODD( 4+4+10+6, 4, 4+4+10+6 );				
                               Z80.HL.AddD(-1);//_HL--;											
                         }													
                     }
                 }
             }
         }
    }