@@ -355,76 +355,76 @@ uint32_t* cgia_encode_mode_0(
355355 return rgbbuf ;
356356}
357357
358- CGIA_ENCODE_MODE_0 (, _1bpp , , _shared ) {
358+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _1bpp , , _shared ) {
359359 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 1 , false, false);
360360}
361- CGIA_ENCODE_MODE_0 (, _1bpp , , _mapped ) {
361+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _1bpp , , _mapped ) {
362362 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 1 , false, true);
363363}
364- CGIA_ENCODE_MODE_0 (, _1bpp , _doubled , _shared ) {
364+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _1bpp , _doubled , _shared ) {
365365 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 1 , true, false);
366366}
367- CGIA_ENCODE_MODE_0 (, _1bpp , _doubled , _mapped ) {
367+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _1bpp , _doubled , _mapped ) {
368368 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 1 , true, true);
369369}
370- CGIA_ENCODE_MODE_0 (, _2bpp , , _shared ) {
370+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _2bpp , , _shared ) {
371371 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 2 , false, false);
372372}
373- CGIA_ENCODE_MODE_0 (_multi , _2bpp , , _shared ) {
373+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (_multi , _2bpp , , _shared ) {
374374 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, 2 , false, false);
375375}
376- CGIA_ENCODE_MODE_0 (, _2bpp , , _mapped ) {
376+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _2bpp , , _mapped ) {
377377 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 2 , false, true);
378378}
379- CGIA_ENCODE_MODE_0 (_multi , _2bpp , , _mapped ) {
379+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (_multi , _2bpp , , _mapped ) {
380380 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, 2 , false, true);
381381}
382- CGIA_ENCODE_MODE_0 (, _2bpp , _doubled , _shared ) {
382+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _2bpp , _doubled , _shared ) {
383383 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 2 , true, false);
384384}
385- CGIA_ENCODE_MODE_0 (_multi , _2bpp , _doubled , _shared ) {
385+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (_multi , _2bpp , _doubled , _shared ) {
386386 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, 2 , true, false);
387387}
388- CGIA_ENCODE_MODE_0 (, _2bpp , _doubled , _mapped ) {
388+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _2bpp , _doubled , _mapped ) {
389389 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 2 , true, true);
390390}
391- CGIA_ENCODE_MODE_0 (_multi , _2bpp , _doubled , _mapped ) {
391+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (_multi , _2bpp , _doubled , _mapped ) {
392392 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, 2 , true, true);
393393}
394- CGIA_ENCODE_MODE_0 (, _3bpp , , _shared ) {
394+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _3bpp , , _shared ) {
395395 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 3 , false, false);
396396}
397- CGIA_ENCODE_MODE_0 (_multi , _3bpp , , _shared ) {
397+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (_multi , _3bpp , , _shared ) {
398398 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, 3 , false, false);
399399}
400- CGIA_ENCODE_MODE_0 (, _3bpp , , _mapped ) {
400+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _3bpp , , _mapped ) {
401401 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 3 , false, true);
402402}
403- CGIA_ENCODE_MODE_0 (_multi , _3bpp , , _mapped ) {
403+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (_multi , _3bpp , , _mapped ) {
404404 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, 3 , false, true);
405405}
406- CGIA_ENCODE_MODE_0 (, _3bpp , _doubled , _shared ) {
406+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _3bpp , _doubled , _shared ) {
407407 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 3 , true, false);
408408}
409- CGIA_ENCODE_MODE_0 (_multi , _3bpp , _doubled , _shared ) {
409+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (_multi , _3bpp , _doubled , _shared ) {
410410 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, 3 , true, false);
411411}
412- CGIA_ENCODE_MODE_0 (, _3bpp , _doubled , _mapped ) {
412+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _3bpp , _doubled , _mapped ) {
413413 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 3 , true, true);
414414}
415- CGIA_ENCODE_MODE_0 (_multi , _3bpp , _doubled , _mapped ) {
415+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (_multi , _3bpp , _doubled , _mapped ) {
416416 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, 3 , true, true);
417417}
418- CGIA_ENCODE_MODE_0 (, _4bpp , , _shared ) {
418+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _4bpp , , _shared ) {
419419 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 4 , false, false);
420420}
421- CGIA_ENCODE_MODE_0 (, _4bpp , , _mapped ) {
421+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _4bpp , , _mapped ) {
422422 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 4 , false, true);
423423}
424- CGIA_ENCODE_MODE_0 (, _4bpp , _doubled , _shared ) {
424+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _4bpp , _doubled , _shared ) {
425425 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 4 , true, false);
426426}
427- CGIA_ENCODE_MODE_0 (, _4bpp , _doubled , _mapped ) {
427+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_0 (, _4bpp , _doubled , _mapped ) {
428428 return cgia_encode_mode_0 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, 4 , true, true);
429429}
430430
@@ -461,57 +461,64 @@ uint32_t* cgia_encode_mode_1(
461461 return rgbbuf ;
462462}
463463
464- CGIA_ENCODE_MODE_1 (_1bpp , , _shared ) {
464+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_1bpp , , _shared ) {
465465 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 1 , false, false);
466466}
467- CGIA_ENCODE_MODE_1 (_1bpp , , _mapped ) {
467+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_1bpp , , _mapped ) {
468468 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 1 , false, true);
469469}
470- CGIA_ENCODE_MODE_1 (_1bpp , _doubled , _shared ) {
470+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_1bpp , _doubled , _shared ) {
471471 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 1 , true, false);
472472}
473- CGIA_ENCODE_MODE_1 (_1bpp , _doubled , _mapped ) {
473+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_1bpp , _doubled , _mapped ) {
474474 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 1 , true, true);
475475}
476- CGIA_ENCODE_MODE_1 (_2bpp , , _shared ) {
476+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_2bpp , , _shared ) {
477477 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 2 , false, false);
478478}
479- CGIA_ENCODE_MODE_1 (_2bpp , , _mapped ) {
479+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_2bpp , , _mapped ) {
480480 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 2 , false, true);
481481}
482- CGIA_ENCODE_MODE_1 (_2bpp , _doubled , _shared ) {
482+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_2bpp , _doubled , _shared ) {
483483 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 2 , true, false);
484484}
485- CGIA_ENCODE_MODE_1 (_2bpp , _doubled , _mapped ) {
485+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_2bpp , _doubled , _mapped ) {
486486 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 2 , true, true);
487487}
488- CGIA_ENCODE_MODE_1 (_3bpp , , _shared ) {
488+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_3bpp , , _shared ) {
489489 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 3 , false, false);
490490}
491- CGIA_ENCODE_MODE_1 (_3bpp , , _mapped ) {
491+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_3bpp , , _mapped ) {
492492 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 3 , false, true);
493493}
494- CGIA_ENCODE_MODE_1 (_3bpp , _doubled , _shared ) {
494+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_3bpp , _doubled , _shared ) {
495495 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 3 , true, false);
496496}
497- CGIA_ENCODE_MODE_1 (_3bpp , _doubled , _mapped ) {
497+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_3bpp , _doubled , _mapped ) {
498498 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 3 , true, true);
499499}
500- CGIA_ENCODE_MODE_1 (_4bpp , , _shared ) {
500+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_4bpp , , _shared ) {
501501 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 4 , false, false);
502502}
503- CGIA_ENCODE_MODE_1 (_4bpp , , _mapped ) {
503+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_4bpp , , _mapped ) {
504504 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 4 , false, true);
505505}
506- CGIA_ENCODE_MODE_1 (_4bpp , _doubled , _shared ) {
506+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_4bpp , _doubled , _shared ) {
507507 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 4 , true, false);
508508}
509- CGIA_ENCODE_MODE_1 (_4bpp , _doubled , _mapped ) {
509+ inline __attribute__(( always_inline )) CGIA_ENCODE_MODE_1 (_4bpp , _doubled , _mapped ) {
510510 return cgia_encode_mode_1 (rgbbuf , columns , shared_colors , 4 , true, true);
511511}
512512
513- uint32_t *
514- cgia_encode_mode_2 (uint32_t * rgbbuf , uint32_t columns , uint8_t * character_generator , uint32_t char_shift , bool mapped ) {
513+ uint32_t * cgia_encode_mode_2 (
514+ uint32_t * rgbbuf ,
515+ uint32_t columns ,
516+ uint8_t * character_generator ,
517+ uint32_t char_shift ,
518+ uint8_t shared_colors [8 ],
519+ bool multi ,
520+ bool doubled ,
521+ bool mapped ) {
515522 while (columns ) {
516523 uintptr_t bg_cl_addr = interp_peek_lane_result (interp1 , 1 );
517524 uint8_t bg_cl = * ((uint8_t * )bg_cl_addr );
@@ -520,17 +527,52 @@ cgia_encode_mode_2(uint32_t* rgbbuf, uint32_t columns, uint8_t* character_genera
520527 uintptr_t chr_addr = interp_pop_lane_result (interp0 , 0 );
521528 uint8_t chr = * ((uint8_t * )chr_addr );
522529 uint8_t bits = character_generator [chr << char_shift ];
523- for (int shift = 7 ; shift >= 0 ; shift -- ) {
524- uint bit_set = (bits >> shift ) & 0b1 ;
525- if (bit_set ) {
526- * rgbbuf ++ = cgia_rgb_palette [fg_cl ];
530+ if (multi ) {
531+ for (int shift = 6 ; shift >= 0 ; shift -= 2 ) {
532+ uint color_no = (bits >> shift ) & 0b11 ;
533+ switch (color_no ) {
534+ case 0b00 :
535+ if (mapped ) {
536+ * rgbbuf ++ = cgia_rgb_palette [shared_colors [0 ]];
537+ if (doubled ) * rgbbuf ++ = cgia_rgb_palette [shared_colors [0 ]];
538+ }
539+ else {
540+ rgbbuf ++ ; // transparent pixel
541+ if (doubled ) rgbbuf ++ ;
542+ }
543+ break ;
544+ case 0b01 :
545+ * rgbbuf ++ = cgia_rgb_palette [bg_cl ];
546+ if (doubled ) * rgbbuf ++ = cgia_rgb_palette [bg_cl ];
547+ break ;
548+ case 0b10 :
549+ * rgbbuf ++ = cgia_rgb_palette [fg_cl ];
550+ if (doubled ) * rgbbuf ++ = cgia_rgb_palette [fg_cl ];
551+ break ;
552+ case 0b11 :
553+ * rgbbuf ++ = cgia_rgb_palette [shared_colors [1 ]];
554+ if (doubled ) * rgbbuf ++ = cgia_rgb_palette [shared_colors [1 ]];
555+ break ;
556+ default : abort ();
557+ }
527558 }
528- else {
529- if (mapped ) {
530- * rgbbuf ++ = cgia_rgb_palette [bg_cl ];
559+ }
560+ else {
561+ for (int shift = 7 ; shift >= 0 ; shift -- ) {
562+ uint bit_set = (bits >> shift ) & 0b1 ;
563+ if (bit_set ) {
564+ * rgbbuf ++ = cgia_rgb_palette [fg_cl ];
565+ if (doubled ) * rgbbuf ++ = cgia_rgb_palette [fg_cl ];
531566 }
532567 else {
533- rgbbuf ++ ; // transparent pixel
568+ if (mapped ) {
569+ * rgbbuf ++ = cgia_rgb_palette [bg_cl ];
570+ if (doubled ) * rgbbuf ++ = cgia_rgb_palette [bg_cl ];
571+ }
572+ else {
573+ rgbbuf ++ ; // transparent pixel
574+ if (doubled ) rgbbuf ++ ;
575+ }
534576 }
535577 }
536578 }
@@ -540,16 +582,29 @@ cgia_encode_mode_2(uint32_t* rgbbuf, uint32_t columns, uint8_t* character_genera
540582 return rgbbuf ;
541583}
542584
543- inline uint32_t * __attribute__ ( (always_inline ))
544- cgia_encode_mode_2_shared (uint32_t * rgbbuf , uint32_t columns , uint8_t * character_generator , uint32_t char_shift ) {
545- return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , false);
585+ inline __attribute__((always_inline )) CGIA_ENCODE_MODE_2 (, , _shared ) {
586+ return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, false, false);
546587}
547- inline uint32_t * __attribute__ ( (always_inline ))
548- cgia_encode_mode_2_mapped (uint32_t * rgbbuf , uint32_t columns , uint8_t * character_generator , uint32_t char_shift ) {
549- return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , true);
588+ inline __attribute__((always_inline )) CGIA_ENCODE_MODE_2 (_multi , , _shared ) {
589+ return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, false, false);
550590}
551- uint32_t * cgia_encode_vt (uint32_t * rgbbuf , uint32_t columns , uint8_t * character_generator , uint32_t char_shift ) {
552- abort ();
591+ inline __attribute__((always_inline )) CGIA_ENCODE_MODE_2 (, , _mapped ) {
592+ return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, false, true);
593+ }
594+ inline __attribute__((always_inline )) CGIA_ENCODE_MODE_2 (_multi , , _mapped ) {
595+ return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, false, true);
596+ }
597+ inline __attribute__((always_inline )) CGIA_ENCODE_MODE_2 (, _doubled , _shared ) {
598+ return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, true, false);
599+ }
600+ inline __attribute__((always_inline )) CGIA_ENCODE_MODE_2 (_multi , _doubled , _shared ) {
601+ return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, true, false);
602+ }
603+ inline __attribute__((always_inline )) CGIA_ENCODE_MODE_2 (, _doubled , _mapped ) {
604+ return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, true, true);
605+ }
606+ inline __attribute__((always_inline )) CGIA_ENCODE_MODE_2 (_multi , _doubled , _mapped ) {
607+ return cgia_encode_mode_2 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, true, true);
553608}
554609
555610uint32_t * cgia_encode_mode_3 (uint32_t * rgbbuf , uint32_t columns , bool mapped ) {
@@ -588,92 +643,6 @@ inline uint32_t* __attribute__((always_inline)) cgia_encode_mode_3_mapped(uint32
588643 return cgia_encode_mode_3 (rgbbuf , columns , true);
589644}
590645
591- uint32_t * cgia_encode_mode_4 (
592- uint32_t * rgbbuf ,
593- uint32_t columns ,
594- uint8_t * character_generator ,
595- uint32_t char_shift ,
596- uint8_t shared_colors [2 ],
597- bool doubled ,
598- bool mapped ) {
599- while (columns ) {
600- uintptr_t bg_cl_addr = interp_peek_lane_result (interp1 , 1 );
601- uint8_t bg_cl = * ((uint8_t * )bg_cl_addr );
602- uintptr_t fg_cl_addr = interp_pop_lane_result (interp1 , 0 );
603- uint8_t fg_cl = * ((uint8_t * )fg_cl_addr );
604- uintptr_t chr_addr = interp_pop_lane_result (interp0 , 0 );
605- uint8_t chr = * ((uint8_t * )chr_addr );
606- uint8_t bits = character_generator [chr << char_shift ];
607- for (int shift = 6 ; shift >= 0 ; shift -= 2 ) {
608- uint color_no = (bits >> shift ) & 0b11 ;
609- switch (color_no ) {
610- case 0b00 :
611- if (mapped ) {
612- * rgbbuf ++ = cgia_rgb_palette [shared_colors [0 ]];
613- if (doubled ) * rgbbuf ++ = cgia_rgb_palette [shared_colors [0 ]];
614- }
615- else {
616- rgbbuf ++ ; // transparent pixel
617- if (doubled ) rgbbuf ++ ;
618- }
619- break ;
620- case 0b01 :
621- * rgbbuf ++ = cgia_rgb_palette [bg_cl ];
622- if (doubled ) * rgbbuf ++ = cgia_rgb_palette [bg_cl ];
623- break ;
624- case 0b10 :
625- * rgbbuf ++ = cgia_rgb_palette [fg_cl ];
626- if (doubled ) * rgbbuf ++ = cgia_rgb_palette [fg_cl ];
627- break ;
628- case 0b11 :
629- * rgbbuf ++ = cgia_rgb_palette [shared_colors [1 ]];
630- if (doubled ) * rgbbuf ++ = cgia_rgb_palette [shared_colors [1 ]];
631- break ;
632- default : abort ();
633- }
634- }
635- -- columns ;
636- }
637-
638- return rgbbuf ;
639- }
640-
641- inline uint32_t * __attribute__ ( (always_inline )) cgia_encode_mode_4_shared (
642- uint32_t * rgbbuf ,
643- uint32_t columns ,
644- uint8_t * character_generator ,
645- uint32_t char_shift ,
646- uint8_t shared_colors [2 ]) {
647- return cgia_encode_mode_4 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, false);
648- }
649-
650- inline uint32_t * __attribute__ ( (always_inline )) cgia_encode_mode_4_mapped (
651- uint32_t * rgbbuf ,
652- uint32_t columns ,
653- uint8_t * character_generator ,
654- uint32_t char_shift ,
655- uint8_t shared_colors [2 ]) {
656- return cgia_encode_mode_4 (rgbbuf , columns , character_generator , char_shift , shared_colors , false, true);
657- }
658-
659- inline uint32_t * __attribute__ ( (always_inline )) cgia_encode_mode_4_doubled_shared (
660- uint32_t * rgbbuf ,
661- uint32_t columns ,
662- uint8_t * character_generator ,
663- uint32_t char_shift ,
664- uint8_t shared_colors [2 ]) {
665- return cgia_encode_mode_4 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, false);
666- }
667-
668- inline uint32_t * __attribute__ ( (always_inline )) cgia_encode_mode_4_doubled_mapped (
669- uint32_t * rgbbuf ,
670- uint32_t columns ,
671- uint8_t * character_generator ,
672- uint32_t char_shift ,
673- uint8_t shared_colors [2 ]) {
674- return cgia_encode_mode_4 (rgbbuf , columns , character_generator , char_shift , shared_colors , true, true);
675- }
676-
677646uint32_t * cgia_encode_mode_5 (uint32_t * rgbbuf , uint32_t columns , uint8_t shared_colors [2 ], bool doubled , bool mapped ) {
678647 while (columns ) {
679648 uintptr_t bg_cl_addr = interp_peek_lane_result (interp1 , 1 );
@@ -876,6 +845,10 @@ uint32_t* cgia_encode_mode_7(uint32_t* rgbbuf, uint32_t columns) {
876845 return rgbbuf ;
877846}
878847
848+ uint32_t * cgia_encode_vt (uint32_t * rgbbuf , uint32_t columns , uint8_t * character_generator , uint32_t char_shift ) {
849+ abort ();
850+ }
851+
879852void cgia_encode_sprite (uint32_t * rgbbuf , uint32_t * descriptor , uint8_t * line_data , uint32_t width ) {
880853 struct cgia_sprite_t * dsc = (struct cgia_sprite_t * )descriptor ;
881854
0 commit comments