| 28 | } |
| 29 | |
| 30 | static bool parse_ver_8(const uint8_t* data, uint32_t addr, uint8_t* ver) { |
| 31 | if (addr + 3 >= SIZE_BOOTCODE) { |
| 32 | return false; |
| 33 | } |
| 34 | data += addr; |
| 35 | |
| 36 | /* LD A,version; RET */ |
| 37 | if ((data[0] != 0x3E) || (data[2] != 0xC9)) { |
| 38 | return false; |
| 39 | } |
| 40 | |
| 41 | *ver = data[1]; |
| 42 | return true; |
| 43 | } |
| 44 | |
| 45 | static bool parse_ver_16(const uint8_t* data, uint32_t addr, uint16_t* ver) { |
| 46 | if (addr + 5 >= SIZE_BOOTCODE) { |