bpe_decode: clx sta _bpe_stack, X inx bpe_traversal: dex lda _bpe_stack, X cmp #ENCODED_CHAR_MIN bcc bpe_display cmp #ENCODED_CHAR_MAX bcs bpe_display sec sbc #ENCODED_CHAR_MIN tay lda _bpe_second, Y sta _bpe_stack, X inx lda _bpe_first, Y sta _bpe_stack, X inx bra bpe_traversal bpe_display: ; display char ldy <_bpe_idx sta _bpe_str, Y inc <_bpe_idx cpx #0 bne bpe_traversal bpe_decode_end: rts