Mercurial > hg > dmlib
comparison tools/lib64fmts.c @ 2367:36226425aac1
Fix Petscii Coca editor format writing.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 07 Jan 2020 15:25:14 +0200 |
parents | 1e6e018b6487 |
children | 4cd67faadbd3 |
comparison
equal
deleted
inserted
replaced
2366:1e6e018b6487 | 2367:36226425aac1 |
---|---|
236 (void) buf; | 236 (void) buf; |
237 (void) fmt; | 237 (void) fmt; |
238 | 238 |
239 img->extraInfo[D64_EI_MODE] = D64_FMT_HIRES | D64_FMT_CHAR; | 239 img->extraInfo[D64_EI_MODE] = D64_FMT_HIRES | D64_FMT_CHAR; |
240 img->extraInfo[D64_EI_CHAR_CUSTOM] = 0; | 240 img->extraInfo[D64_EI_CHAR_CUSTOM] = 0; |
241 | |
242 return DMERR_OK; | |
243 } | |
244 | |
245 | |
246 static const Uint8 fmtCocaPETSCII_ID1[] = | |
247 { | |
248 0x01, 0x08, 0x0b, 0x08, 0x0a, 0x00, 0x9e, 0x32, 0x30, 0x36, | |
249 0x31, 0x00, 0x00, 0x00, 0x78, 0xa2, 0x00, 0xbd, 0x5a, 0x08, | |
250 0x9d, 0x00, 0x04, 0xbd, 0x5a, 0x09, 0x9d, 0x00, 0x05, 0xbd, | |
251 0x5a, 0x0a, 0x9d, 0x00, 0x06, 0xbd, 0x5a, 0x0b, 0x9d, 0x00, | |
252 0x07, 0xbd, 0x5a, 0x0c, 0x9d, 0x00, 0xd8, 0xbd, 0x5a, 0x0d, | |
253 0x9d, 0x00, 0xd9, 0xbd, 0x5a, 0x0e, 0x9d, 0x00, 0xda, 0xbd, | |
254 0x5a, 0x0f, 0x9d, 0x00, 0xdb, 0xe8, 0xd0, 0xcd, 0xad, 0x42, | |
255 0x0c, 0x8d, 0x20, 0xd0, 0xad, 0x43, 0x0c, 0x8d, 0x21, 0xd0, | |
256 0xad, 0x44, 0x0c, 0x8d, 0x18, 0xd0, 0x4c, 0x55, 0x08 | |
257 }; | |
258 | |
259 static int fmtProbeCocaPETSCII(const DMGrowBuf *buf, const DMC64ImageFormat *fmt) | |
260 { | |
261 (void) fmt; | |
262 | |
263 if (buf->len == 2115 && | |
264 DM_MEMCMP_SIZE(buf->data, fmtCocaPETSCII_ID1) == 0 && | |
265 buf->data[0x0c44 - 0x0801 + 2] == 0x14) | |
266 return DM_PROBE_SCORE_MAX; | |
267 | |
268 return DM_PROBE_SCORE_FALSE; | |
269 } | |
270 | |
271 | |
272 static int fmtEncodeCocaPETSCIIData(const DMC64EncDecOp *op, DMGrowBuf *buf, | |
273 const DMC64Image *img, const DMC64ImageCommonFormat *fmt) | |
274 { | |
275 (void) op; | |
276 (void) img; | |
277 (void) fmt; | |
278 | |
279 memcpy(buf->data, | |
280 fmtCocaPETSCII_ID1, sizeof(fmtCocaPETSCII_ID1)); | |
281 | |
282 buf->data[0x0c44 - 0x0801 + 2] = 0x14; | |
241 | 283 |
242 return DMERR_OK; | 284 return DMERR_OK; |
243 } | 285 } |
244 | 286 |
245 | 287 |
2778 }, | 2820 }, |
2779 NULL | 2821 NULL |
2780 }, | 2822 }, |
2781 | 2823 |
2782 { | 2824 { |
2783 "poca", "Petscii Coca editor (unpacked)", 0x0801, 2115, DM_FMT_RDWR, | 2825 "poca", "Petscii Coca editor (unpacked)", 0x0801, 0, DM_FMT_RDWR, |
2784 NULL, | 2826 fmtProbeCocaPETSCII, |
2785 NULL, NULL, | 2827 NULL, NULL, |
2786 { | 2828 { |
2787 D64_FMT_HIRES | D64_FMT_CHAR, | 2829 D64_FMT_HIRES | D64_FMT_CHAR, |
2788 D64_SCR_WIDTH , D64_SCR_HEIGHT, | 2830 D64_SCR_WIDTH , D64_SCR_HEIGHT, |
2789 D64_SCR_CH_WIDTH, D64_SCR_CH_HEIGHT, | 2831 D64_SCR_CH_WIDTH, D64_SCR_CH_HEIGHT, |
2790 1, 1, | 2832 1, 1, |
2791 NULL, NULL, | 2833 NULL, NULL, |
2792 NULL, | 2834 NULL, |
2793 { | 2835 { |
2794 { DO_FUNC , 0 , 0 , 0, 0, 0, NULL, fmtEncodeMarqPETSCIIData, DF_NORMAL }, | 2836 { DO_FUNC , 0 , 0 , 0, 0, 0, NULL, fmtEncodeCocaPETSCIIData, DF_NORMAL }, |
2795 { DO_COPY , DS_SCREEN_RAM , 0x085a - 0x0801, 0, 0, 0, NULL, NULL, DF_NORMAL }, | 2837 { DO_COPY , DS_SCREEN_RAM , 0x085a - 0x0801, 0, 0, 0, NULL, NULL, DF_NORMAL }, |
2796 { DO_COPY , DS_COLOR_RAM , 0x0c5a - 0x0801, 0, 0, 0, NULL, NULL, DF_NORMAL }, | 2838 { DO_COPY , DS_COLOR_RAM , 0x0c5a - 0x0801, 0, 0, 0, NULL, NULL, DF_NORMAL }, |
2839 | |
2797 { DO_SET_MEM_LO , DS_D020 , 0x0c42 - 0x0801, 0, 0, 0, NULL, NULL, DF_NORMAL }, | 2840 { DO_SET_MEM_LO , DS_D020 , 0x0c42 - 0x0801, 0, 0, 0, NULL, NULL, DF_NORMAL }, |
2798 { DO_SET_MEM_LO , DS_BGCOL , 0x0c43 - 0x0801, 0, 0, 0, NULL, NULL, DF_NORMAL }, | 2841 { DO_SET_MEM_LO , DS_BGCOL , 0x0c43 - 0x0801, 0, 0, 0, NULL, NULL, DF_NORMAL }, |
2799 | 2842 |
2800 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, | 2843 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, |
2801 } | 2844 } |