// #LAYOUT# STD * #TAKE // #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE // // Screen code to PETSCII conversion - see: // // - https://www.lemon64.com/forum/viewtopic.php?t=66362 // - https://sta.c64.org/cbm64scrtopetext.html // screen_code_to_petscii: cmp #$20 bcc s2p_adc_40 // $00-$1F -> $40-$5F cmp #$40 bcc s2p_end // $20-$3F -> $20-$3F cmp #$60 bcc s2p_adc_80 // $40-$5F -> $C0-$DF cmp #$80 bcc s2p_adc_40 // $60-$7F -> $A0-$BF // Here we have to check for quote mode bit QTSW bmi screen_code_to_petscii_quote // Not quote mode - continue cmp #$A0 bcc s2p_adc_C0 // $80-$9F -> $40-$5F cmp #$C0 bcc s2p_adc_80 // $A0-$BF -> $20-$3F cmp #$E0 bcc s2p_end // $C0-$DF -> $C0-$DF clc bcc s2p_adc_C0 // $E0-$FF -> $A0-$BF s2p_adc_40: adc #$40 // Carry already clear s2p_end: rts s2p_adc_80: adc #$80 // Carry already clear rts screen_code_to_petscii_quote: cmp #$C0 bcc s2p_adc_80 // $80-$BF -> $00-$3F clc // FALLTROUGH $C0-$FF -> $80-$BF s2p_adc_C0: adc #$C0 // Carry already clear rts