-               /* Word/byte mode memory programming */
-               for (uint16_t CurrentByte = 0; CurrentByte < Write_Memory_Params.BytesToWrite; CurrentByte++)
-               {
-                       bool    IsOddByte   = (CurrentByte & 0x01);
-                       uint8_t ByteToWrite = *(NextWriteByte++);
-                         
-                       /* Check to see if we need to send a LOAD EXTENDED ADDRESS command to the target */
-                       if (MustLoadExtendedAddress)
-                       {
-                               ISPTarget_LoadExtendedAddress();
-                               MustLoadExtendedAddress = false;
-                       }
-
-                       ISPTarget_SendByte(Write_Memory_Params.ProgrammingCommands[0]);
-                       ISPTarget_SendByte(CurrentAddress >> 8);
-                       ISPTarget_SendByte(CurrentAddress & 0xFF);
-                       ISPTarget_SendByte(ByteToWrite);
-                       
-                       /* AVR FLASH addressing requires us to modify the write command based on if we are writing a high
-                        * or low byte at the current word address */
-                       if (V2Command == CMD_PROGRAM_FLASH_ISP)
-                         Write_Memory_Params.ProgrammingCommands[0] ^= READ_WRITE_HIGH_BYTE_MASK;
-
-                       if (ByteToWrite != PollValue)
-                       {
-                               if (IsOddByte && (V2Command == CMD_PROGRAM_FLASH_ISP))
-                                 Write_Memory_Params.ProgrammingCommands[2] |= READ_WRITE_HIGH_BYTE_MASK;
-                                 
-                               PollAddress = (CurrentAddress & 0xFFFF);
-                       }
-                       
-                       ProgrammingStatus = ISPTarget_WaitForProgComplete(Write_Memory_Params.ProgrammingMode, PollAddress, PollValue,
-                                                                         Write_Memory_Params.DelayMS, Write_Memory_Params.ProgrammingCommands[2]);
-                         
-                       /* Abort the programming loop early if the byte/word programming failed */
-                       if (ProgrammingStatus != STATUS_CMD_OK)
-                         break;
+               ISPTarget_SendByte(Write_Memory_Params.ProgrammingCommands[1]);
+               ISPTarget_SendByte(PageStartAddress >> 8);
+               ISPTarget_SendByte(PageStartAddress & 0xFF);
+               ISPTarget_SendByte(0x00);