MCPcopy Create free account
hub / github.com/CE-Programming/CEmu / panel_write_cmd

Function panel_write_cmd

core/panel.c:1012–1195  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1010}
1011
1012static void panel_write_cmd(uint8_t value) {
1013 panel.cmd = value;
1014 panel.paramIter = panel.paramEnd = 0;
1015
1016#define PANEL_CMD_CASE(cmd_num, field) \
1017 case cmd_num: \
1018 panel.paramIter = offsetof(panel_params_t, field); \
1019 panel.paramEnd = panel.paramIter + sizeof(panel.params.field);
1020
1021 switch (panel.cmd) {
1022 /* Command table 1 */
1023 case 0x00:
1024 break;
1025 case 0x01:
1026 panel_sw_reset();
1027 break;
1028 case 0x10:
1029 panel.pendingMode |= PANEL_MODE_SLEEP;
1030 break;
1031 case 0x11:
1032 panel.pendingMode &= ~PANEL_MODE_SLEEP;
1033 break;
1034 case 0x12:
1035 panel.pendingMode |= PANEL_MODE_PARTIAL;
1036 panel.params.VSCRSADD.VSP = 0;
1037 break;
1038 case 0x13:
1039 panel.pendingMode &= ~(PANEL_MODE_PARTIAL | PANEL_MODE_SCROLL);
1040 panel.params.VSCRSADD.VSP = 0;
1041 break;
1042 case 0x20:
1043 if (panel.invert) {
1044 panel.invert = false;
1045 panel_spi_catchup();
1046 panel_buffer_pixels();
1047 panel_invert_luts();
1048 }
1049 break;
1050 case 0x21:
1051 if (!panel.invert) {
1052 panel.invert = true;
1053 panel_spi_catchup();
1054 panel_buffer_pixels();
1055 panel_invert_luts();
1056 }
1057 break;
1058 PANEL_CMD_CASE(0x26, GAMSET)
1059 break;
1060 case 0x28:
1061 panel.pendingMode |= PANEL_MODE_OFF;
1062 break;
1063 case 0x29:
1064 panel.pendingMode &= ~PANEL_MODE_OFF;
1065 break;
1066 PANEL_CMD_CASE(0x2A, CASET)
1067 break;
1068 PANEL_CMD_CASE(0x2B, RASET)
1069 break;

Callers

nothing calls this directly

Calls 5

panel_sw_resetFunction · 0.85
panel_spi_catchupFunction · 0.85
panel_buffer_pixelsFunction · 0.85
panel_invert_lutsFunction · 0.85

Tested by

no test coverage detected