Код:
RAM:7254 txt_blks_l: .BYTE 0, 0, $10, $D5, 7, $DB, $7E, $C0, $51, $33, $22, $6E, $C1, $28, $82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
RAM:7270 txt_blks_h: .BYTE 0, $77, $7A, $7A, $7C, $7E, $82, $84, $86, $8A, $8F, $B6, $BC, $BE, $BE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
RAM:734E dep_blocktxt: ; CODE XREF: sub_72D3:loc_732Bp
RAM:734E INC byte_7291
RAM:7351 TAX
RAM:7352 LDA txt_blks_l,X
RAM:7355 STA block_text
RAM:7357 LDA txt_blks_h,X
RAM:735A STA block_text+1
RAM:735C JSR init_depak
RAM:735F LDY #0
RAM:7361 JSR depak_message
RAM:7364 RTS
RAM:7364 ; End of function dep_blocktxt
RAM:7364
RAM:7365
RAM:7365 ; =============== S U B R O U T I N E =======================================
RAM:7365
RAM:7365
RAM:7365 depak_message: ; CODE XREF: dep_blocktxt+13p
RAM:7365 LDX message_num
RAM:7368 BEQ depak
RAM:736A LDY #8
RAM:736C
RAM:736C text_seek: ; CODE XREF: depak_message+11j
RAM:736C ; depak_message+18j
RAM:736C LDA (in_ptr),Y
RAM:736E INC in_ptr
RAM:7370 BNE loc_7374
RAM:7372 INC in_ptr+1
RAM:7374
RAM:7374 loc_7374: ; CODE XREF: depak_message+Bj
RAM:7374 CMP #$FF
RAM:7376 BNE text_seek
RAM:7378 LDA (in_ptr),Y
RAM:737A STA cur_in_bs
RAM:737C DEX
RAM:737D BNE text_seek
RAM:737F
RAM:737F depak: ; CODE XREF: depak_message+3j
RAM:737F ; depak_message+3Ej
RAM:737F JSR pick_char
RAM:7382 CMP #$FF
RAM:7384 BEQ char_decrunched
RAM:7386 CMP #$1B
RAM:7388 BEQ use_second_charset
RAM:738A AND #$1F
RAM:738C TAX
RAM:738D LDA first_char_set,X
RAM:7390 JMP char_decrunched
RAM:7393 ; ---------------------------------------------------------------------------
RAM:7393
RAM:7393 use_second_charset: ; CODE XREF: depak_message+23j
RAM:7393 JSR pick_char
RAM:7396 CMP #$FF
RAM:7398 BEQ char_decrunched
RAM:739A AND #$1F
RAM:739C TAX
RAM:739D LDA second_char_set,X
RAM:73A0
RAM:73A0 char_decrunched: ; CODE XREF: depak_message+1Fj
RAM:73A0 ; depak_message+2Bj ...
RAM:73A0 JSR print_char
RAM:73A3 BCC depak
RAM:73A5 RTS
RAM:73A5 ; End of function depak_message
RAM:73A5
RAM:73A6
RAM:73A6 ; =============== S U B R O U T I N E =======================================
RAM:73A6
RAM:73A6
RAM:73A6 cr_lf: ; CODE XREF: print_char:cc_enterp
RAM:73A6 PHA
RAM:73A7 LDA print_shift
RAM:73A9 CLC
RAM:73AA ADC print_adr
RAM:73AC CMP #$71 ; 'q'
RAM:73AE BCS not_line0
RAM:73B0 LDA #$71 ; 'q'
RAM:73B2 JMP set_line_adr
RAM:73B5 ; ---------------------------------------------------------------------------
RAM:73B5
RAM:73B5 not_line0: ; CODE XREF: cr_lf+8j
RAM:73B5 CMP #$99 ; 'Щ'
RAM:73B7 BCS not_line1
RAM:73B9 LDA #$99 ; 'Щ'
RAM:73BB JMP set_line_adr
RAM:73BE ; ---------------------------------------------------------------------------
RAM:73BE
RAM:73BE not_line1: ; CODE XREF: cr_lf+11j
RAM:73BE LDA #$C1 ; '+'
RAM:73C0
RAM:73C0 set_line_adr: ; CODE XREF: cr_lf+Cj
RAM:73C0 ; cr_lf+15j
RAM:73C0 STA print_adr
RAM:73C2 PLA
RAM:73C3 LDY #0
RAM:73C5 STY print_shift
RAM:73C7 RTS
RAM:73C7 ; End of function cr_lf
RAM:73C7
RAM:73C8
RAM:73C8 ; =============== S U B R O U T I N E =======================================
RAM:73C8
RAM:73C8
RAM:73C8 print_char: ; CODE XREF: sub_733D+5p
RAM:73C8 ; depak_message:char_decrunchedp
RAM:73C8 CMP #$FF
RAM:73CA BEQ cc_endprint
RAM:73CC STY temp_Y
RAM:73CE CMP #$D
RAM:73D0 BNE not_cc_enter
RAM:73D2 LDA inverse_flag
RAM:73D4 BEQ cc_enter
RAM:73D6 LDA #$D
RAM:73D8 JMP not_cc_enter
RAM:73DB ; ---------------------------------------------------------------------------
RAM:73DB
RAM:73DB cc_enter: ; CODE XREF: print_char+Cj
RAM:73DB JSR cr_lf
RAM:73DE JMP next_char
RAM:73E1 ; ---------------------------------------------------------------------------
RAM:73E1
RAM:73E1 not_cc_enter: ; CODE XREF: print_char+8j
RAM:73E1 ; print_char+10j
RAM:73E1 LDY inverse_flag
RAM:73E3 BEQ not_inverted
RAM:73E5 ORA #$80 ; 'А'
RAM:73E7
RAM:73E7 not_inverted: ; CODE XREF: print_char+1Bj
RAM:73E7 LDY print_shift
RAM:73E9 STA (print_adr),Y
RAM:73EB INC print_shift
RAM:73ED
RAM:73ED next_char: ; CODE XREF: print_char+16j
RAM:73ED LDY temp_Y
RAM:73EF CLC
RAM:73F0 RTS
RAM:73F1 ; ---------------------------------------------------------------------------
RAM:73F1
RAM:73F1 cc_endprint: ; CODE XREF: print_char+2j
RAM:73F1 JSR sub_73F6
RAM:73F4 SEC
RAM:73F5 RTS
RAM:73F5 ; End of function print_char
RAM:73F5
RAM:73F6
RAM:73F6 ; =============== S U B R O U T I N E =======================================
RAM:73F6
RAM:73F6
RAM:73F6 sub_73F6: ; CODE XREF: sub_733D+Dp
RAM:73F6 ; print_char:cc_endprintp
RAM:73F6 LDA print_adr
RAM:73F8 CLC
RAM:73F9 ADC print_shift
RAM:73FB SEC
RAM:73FC SBC #72
RAM:73FE STA byte_7292
RAM:7401 RTS
RAM:7401 ; End of function sub_73F6
RAM:7401
RAM:7402
RAM:7402 ; =============== S U B R O U T I N E =======================================
RAM:7402
RAM:7402
RAM:7402 init_depak: ; CODE XREF: dep_blocktxt+Ep
RAM:7402 LDY #8
RAM:7404 STY curr_in_ctr
RAM:7406 LDA block_text
RAM:7408 LDX block_text+1
RAM:740A SEC
RAM:740B SBC #8
RAM:740D STA in_ptr
RAM:740F BCS loc_7412
RAM:7411 DEX
RAM:7412
RAM:7412 loc_7412: ; CODE XREF: init_depak+Dj
RAM:7412 STX in_ptr+1
RAM:7414 LDA (in_ptr),Y
RAM:7416 STA cur_in_bs
RAM:7418 LDA #5
RAM:741A STA cur_char_ctr
RAM:741C LDA #3
RAM:741E STA byte_75
RAM:7420 RTS
RAM:7420 ; End of function init_depak
RAM:7420
RAM:7421
RAM:7421 ; =============== S U B R O U T I N E =======================================
RAM:7421
RAM:7421
RAM:7421 pick_char: ; CODE XREF: depak_message:depakp
RAM:7421 ; depak_message:use_second_charsetp
RAM:7421 LDY curr_in_ctr
RAM:7423 LDX cur_char_ctr
RAM:7425 LDA #0
RAM:7427
RAM:7427 pick_bits: ; CODE XREF: pick_char+Dj
RAM:7427 ROL cur_in_bs
RAM:7429 ROL A
RAM:742A DEY
RAM:742B BEQ pick_next_bs
RAM:742D
RAM:742D cont_bs_strip: ; CODE XREF: pick_char+26j
RAM:742D DEX
RAM:742E BNE pick_bits
RAM:7430 STY curr_in_ctr
RAM:7432 RTS
RAM:7433 ; ---------------------------------------------------------------------------
RAM:7433
RAM:7433 pick_next_bs: ; CODE XREF: pick_char+Aj
RAM:7433 LDY #8
RAM:7435 STY curr_in_ctr
RAM:7437 INC in_ptr
RAM:7439 BNE loc_743D
RAM:743B INC in_ptr+1
RAM:743D
RAM:743D loc_743D: ; CODE XREF: pick_char+18j
RAM:743D PHA
RAM:743E LDA (in_ptr),Y
RAM:7440 CMP #$FF
RAM:7442 BEQ end_pattern
RAM:7444 STA cur_in_bs
RAM:7446 PLA
RAM:7447 JMP cont_bs_strip
RAM:744A ; ---------------------------------------------------------------------------
RAM:744A
RAM:744A end_pattern: ; CODE XREF: pick_char+21j
RAM:744A PLA
RAM:744B LDA #$FF
RAM:744D RTS