static uint32_t nt35510_read_id(struct panel_spec *self) { uint32_t read_value = 0; send_data_t send_cmd = self->info.mcu->ops->send_cmd; read_data_t read_data = self->info.mcu->ops->read_data; #if 1 //send_cmd(0xDA00); //read_data(); #if 0 read_value += read_data()<< 16; printk("nt35510_read_id=%#x===\n",read_value); send_cmd(0xDB00); read_value += read_data()<< 8; printk("nt35510_read_id=%#x====\n",read_value); #endif send_cmd(0xDC00); read_value += read_data(); printk("nt35510_read_id=%#x=====\n",read_value); #else send_cmd(0x0400); read_data(); read_value += read_data()<< 16; LCD_PRINT("ili9486_read_id=%x+++\n",read_value); read_value += read_data()<< 8; LCD_PRINT("ili9486_read_id=%x++++\n",read_value); read_value += read_data(); LCD_PRINT("ili9486_read_id=%x+++++\n",read_value); #endif return read_value; }
void main(){ LCD_BEGIN(); LCD_LOC(1,1); LCD_PRINT(" PROJECT "); LCD_LOC(2,1); LCD_PRINT(" TITLE "); delay(1000); while(1){ } }
static unsigned int lcm_compare_id(void) { unsigned int lcd_id = 0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(50); SET_RESET_PIN(1); MDELAY(120); send_ctrl_cmd(0xF000);send_data_cmd(0x55); send_ctrl_cmd(0xF001);send_data_cmd(0xAA); send_ctrl_cmd(0xF002);send_data_cmd(0x52); send_ctrl_cmd(0xF003);send_data_cmd(0x08); send_ctrl_cmd(0xF004);send_data_cmd(0x01); UDELAY(10); lcd_id = get_lcd_id_r(LCM_ID_REG) & 0xFF; lcd_id = (lcd_id << 8) | (get_lcd_id_r(LCM_ID_REG + 1) & 0xFF); LCD_PRINT(LCM_NAME"lcm_compare_id: lcd_id = 0x%x\n", lcd_id); return (LCM_ID == lcd_id)?1:0; }
static void lcm_resume(void) { #if 0 send_ctrl_cmd(0x11); MDELAY(120); send_ctrl_cmd(0x29); MDELAY(50); #else unsigned int lcd_id = 0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(20); SET_RESET_PIN(1); MDELAY(120); // 400 #ifdef READ_CC lcd_id = get_lcd_id_n(LCMID_REG, 2); #else lcd_id = get_lcd_id_n(LCMID_REG, 4); lcd_id = (lcd_id << 8) | (get_lcd_id_n(0xEF, 5) & 0xff); #endif LCD_PRINT("[HC397_HX8352CN]lcm_resume: lcd_id = 0x%x\n", lcd_id); init_lcm_registers(); #endif }
static void lcm_resume(void) { #if 1 send_ctrl_cmd(0x11); MDELAY(120); send_ctrl_cmd(0x29); MDELAY(50); #else unsigned int lcd_id = 0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(20); SET_RESET_PIN(1); MDELAY(20); // 400 send_ctrl_cmd(0xB9); send_data_cmd(0xFF); send_data_cmd(0x83); send_data_cmd(0x57); UDELAY(10); lcd_id = get_lcd_id_n(LCMID_REG, 2); LCD_PRINT("[JINCHI35_HX8357C]lcm_resume: lcd_id = 0x%x\n", lcd_id); #if 0//ndef BUILD_UBOOT print_lcm_registers(); #endif init_lcm_registers(); #endif }
static void lcm_resume(void) { #if 1 send_ctrl_cmd(0x1100); MDELAY(120); send_ctrl_cmd(0x2900); MDELAY(50); #else unsigned int lcd_id = 0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(50); SET_RESET_PIN(1); MDELAY(100); // 400 send_ctrl_cmd(0xF000);send_data_cmd(0x55); send_ctrl_cmd(0xF001);send_data_cmd(0xAA); send_ctrl_cmd(0xF002);send_data_cmd(0x52); send_ctrl_cmd(0xF003);send_data_cmd(0x08); send_ctrl_cmd(0xF004);send_data_cmd(0x01); UDELAY(10); lcd_id = get_lcd_id_r(LCM_ID_REG) & 0xFF; lcd_id = (lcd_id << 8) | (get_lcd_id_r(LCM_ID_REG + 1) & 0xFF); LCD_PRINT(LCM_NAME"lcm_resume: lcd_id = 0x%x\n", lcd_id); init_lcm_registers(); #endif }
static void lcm_resume(void) { #if 1 send_ctrl_cmd(0x1100); MDELAY(120); send_ctrl_cmd(0x2900); MDELAY(50); #else unsigned int lcd_id = 0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(50); SET_RESET_PIN(1); MDELAY(100); // 400 send_ctrl_cmd(0xB9); send_data_cmd(0xFF); send_data_cmd(0x83); send_data_cmd(0x63); UDELAY(10); lcd_id = get_lcd_id_n(LCM_ID_REG, 2) & 0xFF; LCD_PRINT(LCM_NAME"lcm_resume: lcd_id = 0x%x\n", lcd_id); init_lcm_registers(); #endif }
static int32_t nt35510_set_window(struct lcd_spec *self, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { Send_data send_cmd = self->info.mcu->ops->send_cmd; Send_data send_data = self->info.mcu->ops->send_data; LCD_PRINT("nt35510_set_window:%d, %d, %d, %d\n", left, top, right, bottom); send_cmd(0x2A00); send_data((left >> 8)); send_cmd(0x2A01); send_data((left & 0xFF)); send_cmd(0x2A02); send_data((right >> 8)); send_cmd(0x2A03); send_data((right & 0xFF)); send_cmd(0x2B00); send_data((top >> 8)); send_cmd(0x2B01); send_data((top & 0xFF)); send_cmd(0x2B02); send_data((bottom >> 8)); send_cmd(0x2B03); send_data((bottom & 0xFF)); send_cmd(0x2C00); return 0; }
static int32_t sc7798_invalidate(struct panel_spec *self) { LCD_PRINT("sc7798_invalidate\n"); return self->ops->panel_set_window(self, 0, 0, self->width - 1, self->height - 1); }
static int32_t ili9486_invalidate(struct lcd_spec *self) { LCD_PRINT("ili9486_invalidate\n"); return self->ops->lcd_set_window(self, 0, 0, self->width-1, self->height-1); }
static int32_t sc7798_invalidate_rect(struct panel_spec *self, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { LCD_PRINT("sc7798_invalidate_rect \n"); return self->ops->panel_set_window(self, left, top, right, bottom); }
static unsigned int get_lcd_id_r(unsigned int addr) { unsigned short id = 0; send_ctrl_cmd(addr); id = read_data_cmd(); LCD_PRINT(LCM_NAME"get_lcd_id_r: id = 0x%x\n", id); return id; }
static int32_t nt35510_enter_sleep(struct lcd_spec *self, uint8_t is_sleep) { Send_data send_cmd = self->info.mcu->ops->send_cmd; Send_data send_data = self->info.mcu->ops->send_data; if(is_sleep) { LCD_PRINT("[LCD] nt35510_enter_sleep\n"); send_cmd(0x2800); mdelay(15); send_cmd(0x1000); mdelay(120); } else { LCD_PRINT("[LCD] nt35510_enter_wakeup\n"); self->ops->lcd_init(self); } return 0; }
static int32_t nt35510_invalidate_rect(struct lcd_spec *self, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { LCD_PRINT("nt35510_invalidate_rect\n"); return self->ops->lcd_set_window(self, left, top, right, bottom); }
static int32_t sc7798_set_window(struct panel_spec *self, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { uint32_t *test_data[4] = {0}; spi_send_cmd_t spi_send_cmd = self->info.rgb->bus_info.spi->ops->spi_send_cmd; spi_send_data_t spi_send_data = self->info.rgb->bus_info.spi->ops->spi_send_data; spi_read_t spi_read = self->info.rgb->bus_info.spi->ops->spi_read; LCD_PRINT("zxdbg add -sc7798_read read: %x, %x, %x, %x\n",test_data[0], test_data[1], test_data[2], test_data[3]); return 0; }
static unsigned int get_lcd_id_r(unsigned int addr) { unsigned short id = 0; send_ctrl_cmd(addr); id = read_data_cmd(); id = (id << 8) | (read_data_cmd() & 0xFF); LCD_PRINT("[HC397_HX8352CN]get_lcd_id_r: id = 0x%x\n", id); return id; }
static int32_t ili9486_invalidate_rect(struct lcd_spec *self, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { LCD_PRINT("ili9486_invalidate_rect : (%d, %d, %d, %d)\n",left, top, right, bottom); return self->ops->lcd_set_window(self, left, top, right, bottom); }
static unsigned int get_lcd_id_r(unsigned int addr) { unsigned short id = 0; send_ctrl_cmd(addr); id = read_data_cmd(); //id = (id << 8) | (read_data_cmd() & 0xFF); LCD_PRINT("[XXD35_ILI9486L]get_lcd_id_r: id = 0x%x\n", id); return id; }
static int32_t s6d0139_set_window(struct panel_spec *self, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { send_cmd_data_t send_cmd_data = self->info.mcu->ops->send_cmd_data; send_data_t send_cmd = self->info.mcu->ops->send_cmd; LCD_PRINT("s6d0139_set_window\n"); send_cmd_data(0x46, ((right << 8) & 0xff00)|(left&0xff)); send_cmd_data(0x47, bottom); send_cmd_data(0x48, top); switch (self->direction) { case LCD_DIRECT_NORMAL: case LCD_DIRECT_ROT_270: send_cmd_data(0x0020, left); send_cmd_data(0x0021, top); break; case LCD_DIRECT_ROT_90: case LCD_DIRECT_MIR_H: send_cmd_data(0x0020, right); send_cmd_data(0x0021, top); break; case LCD_DIRECT_ROT_180: case LCD_DIRECT_MIR_HV: send_cmd_data(0x0020, right); send_cmd_data(0x0021, bottom); break; case LCD_DIRECT_MIR_V: send_cmd_data(0x0020, left); send_cmd_data(0x0021, bottom); break; default: LCD_PRINT("unknown lcd direction!\n"); break; } send_cmd(0x0022); return 0; }
static uint32_t nt35510_read_id(struct lcd_spec *self) { uint32_t read_value = 0; Send_data send_cmd = self->info.mcu->ops->send_cmd; Read_data read_data = self->info.mcu->ops->read_data; #if 1 send_cmd(0xDC00); read_value = read_data(); LCD_PRINT("nt35510_read_id=%x=====\n",read_value); #else send_cmd(0x0400); read_data(); read_value += read_data()<< 16; LCD_PRINT("ili9486_read_id=%x+++\n",read_value); read_value += read_data()<< 8; LCD_PRINT("ili9486_read_id=%x++++\n",read_value); read_value += read_data(); LCD_PRINT("ili9486_read_id=%x+++++\n",read_value); #endif return 0x5bbc; /* !!! WORK AROUND !!! */ //return read_value; }
static int32_t s6d0139_set_direction(struct panel_spec *self, uint16_t direction) { send_cmd_data_t send_cmd_data = self->info.mcu->ops->send_cmd_data; LCD_PRINT("s6d0139_set_direction\n"); switch (direction) { case LCD_DIRECT_NORMAL: send_cmd_data(0x0003, 0x1030); break; case LCD_DIRECT_ROT_90: send_cmd_data(0x0003, 0x1028); break; case LCD_DIRECT_ROT_180: case LCD_DIRECT_MIR_HV: send_cmd_data(0x0003, 0x1000); break; case LCD_DIRECT_ROT_270: send_cmd_data(0x0003, 0x1018); break; case LCD_DIRECT_MIR_H: send_cmd_data(0x0003, 0x1020); break; case LCD_DIRECT_MIR_V: send_cmd_data(0x0003, 0x1010); break; default: LCD_PRINT("unknown lcd direction!\n"); send_cmd_data(0x0003, 0x1030); direction = LCD_DIRECT_NORMAL; break; } self->direction = direction; return 0; }
static unsigned int lcm_compare_id(void) { unsigned int lcd_id = 0x0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(50); SET_RESET_PIN(1); MDELAY(120); lcd_id = get_lcd_id_n(LCMID_REG, 3) & 0xFF; lcd_id = (lcd_id << 8) | (get_lcd_id_n(LCMID_REG, 4) & 0xFF); LCD_PRINT("[XXD35_ILI9486L]lcm_compare_id: lcd_id = 0x%x\n", lcd_id); return (LCM_ID == lcd_id)?1:0; }
static unsigned int get_lcd_id_n(unsigned int addr, unsigned char count) { volatile unsigned int id = 0; unsigned char k = 0; send_ctrl_cmd(addr); while (k < count) { id = read_data_cmd(); k++; } LCD_PRINT(LCM_NAME"get_lcd_id_n: id = 0x%x\n", id); return id; }
static unsigned int get_lcd_id_n(unsigned int addr, unsigned char count) { volatile unsigned int id = 0; unsigned char k = 0; send_ctrl_cmd(addr); UDELAY(10); while (k < count) { id = read_data_cmd(); k++; } LCD_PRINT("[JINCHI35_HX8357C]get_lcd_id_n: id = 0x%x\n", id); return id; }
static unsigned int lcm_compare_id(void) { unsigned int lcd_id = 0x00; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(50); SET_RESET_PIN(1); MDELAY(120); #ifdef READ_CC lcd_id = get_lcd_id_n(LCMID_REG, 2); #else lcd_id = get_lcd_id_n(LCMID_REG, 4); lcd_id = (lcd_id << 8) | (get_lcd_id_n(0xEF, 5) & 0xff); #endif LCD_PRINT("[HC397_HX8352CN]lcm_compare_id: lcd_id = 0x%x\n", lcd_id); return (LCM_ID == lcd_id)?1:0; }
static unsigned int lcm_compare_id(void) { unsigned int lcd_id = 0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(50); SET_RESET_PIN(1); MDELAY(120); send_ctrl_cmd(0xB9); send_data_cmd(0xFF); send_data_cmd(0x83); send_data_cmd(0x63); UDELAY(10); lcd_id = get_lcd_id_n(LCM_ID_REG, 2) & 0xFF; LCD_PRINT(LCM_NAME"lcm_resume: lcd_id = 0x%x\n", lcd_id); return (LCM_ID == lcd_id)?1:0; }
static unsigned int lcm_compare_id(void) { unsigned int lcd_id = 0x0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(50); SET_RESET_PIN(1); MDELAY(120); send_ctrl_cmd(0xB9); send_data_cmd(0xFF); send_data_cmd(0x83); send_data_cmd(0x57); UDELAY(10); lcd_id = get_lcd_id_n(LCMID_REG, 2); LCD_PRINT("[JINCHI35_HX8357C]lcm_compare_id: lcd_id = 0x%x\n", lcd_id); return (LCM_ID == lcd_id)?1:0; }
static int32_t ili9486_set_window(struct lcd_spec *self, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { Send_data send_cmd = self->info.mcu->ops->send_cmd; Send_data send_data = self->info.mcu->ops->send_data; LCD_PRINT("ili9486_set_window\n"); send_cmd(0x2A); // col send_data((left >> 8)); send_data((left & 0xFF)); send_data((right >> 8)); send_data((right & 0xFF)); send_cmd(0x2B); // row send_data((top >> 8)); send_data((top & 0xFF)); send_data((bottom >> 8)); send_data((bottom & 0xFF)); send_cmd(0x2C); return 0; }
static void lcm_resume(void) { #if 0 send_ctrl_cmd(0x11); MDELAY(120); send_ctrl_cmd(0x29); MDELAY(50); #else unsigned int lcd_id = 0; SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(20); SET_RESET_PIN(1); MDELAY(20); lcd_id = get_lcd_id_n(LCMID_REG, 3) & 0xFF; lcd_id = (lcd_id << 8) | (get_lcd_id_n(LCMID_REG, 4) & 0xFF); LCD_PRINT("[XXD35_ILI9486L]lcm_resume: lcd_id = 0x%x\n", lcd_id); init_lcm_registers(); #endif }
void print_lcm_registers(void) { unsigned int i = 0; unsigned int *p = 0xF20A1000; for (i = 0x0000; i <= 0x01F0; i += 0x0004) { LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", (p + i), *(p + i)); } /* LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->INT_ENABLE, LCD_REG->INT_ENABLE); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->INT_STATUS, LCD_REG->INT_STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->START, LCD_REG->START); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->RESET, LCD_REG->RESET); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->SIF_TIMING[0], LCD_REG->SIF_TIMING[0]); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->SERIAL_CFG, LCD_REG->SERIAL_CFG); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->SIF_CS, LCD_REG->SIF_CS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->PARALLEL_CFG[0], LCD_REG->PARALLEL_CFG[0]); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->PARALLEL_DW, LCD_REG->PARALLEL_DW); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->GAMCON, LCD_REG->GAMCON); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_W2M_ADDR[0], LCD_REG->WROI_W2M_ADDR[0]); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->W2M_PITCH, LCD_REG->W2M_PITCH); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_W2M_OFFSET, LCD_REG->WROI_W2M_OFFSET); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_W2M_CONTROL, LCD_REG->WROI_W2M_CONTROL); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_CONTROL, LCD_REG->WROI_CONTROL); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_OFFSET, LCD_REG->WROI_OFFSET); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_CMD_ADDR, LCD_REG->WROI_CMD_ADDR); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_DATA_ADDR, LCD_REG->WROI_DATA_ADDR); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_SIZE, LCD_REG->WROI_SIZE); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_HW_REFRESH, LCD_REG->WROI_HW_REFRESH); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_DC, LCD_REG->WROI_DC); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_BG_COLOR, LCD_REG->WROI_BG_COLOR); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->DS_DSI_CON, LCD_REG->DS_DSI_CON); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->LAYER[0], LCD_REG->LAYER[0]); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_HWREF_BLK, LCD_REG->WROI_HWREF_BLK); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->WROI_HWREF_DLY, LCD_REG->WROI_HWREF_DLY); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->DITHER_CON, LCD_REG->DITHER_CON); */ /* LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); LCD_PRINT("[JINCHI35_HX8357C] LCD_REG (%p) = 0x%x\n", &LCD_REG->STATUS, LCD_REG->STATUS); */ }