LIST 28 ============================================================================ ;##### RAM Map ##### org 8000h ; ← RAM領域に変数を定義 rx_fifo_1 ds 2048 tx_fifo ds 2048 rx_fifo_2 ds 2048 rx_top_1 ds 2 rx_end_1 ds 2 rx_top_2 ds 2 rx_end_2 ds 2 tx_top ds 2 tx_end ds 2 rsb1 ds 1 dcb1 ds 1 channel1 ds 1 keyno1 ds 1 rsb2 ds 1 dcb2 ds 1 channel2 ds 1 keyno2 ds 1 ;##### INT / NMI ##### org 0020h ; ← MIDI受信割り込みルーチン(1) dw _midi1_ _midi1_: ex af,af' exx ld de,(rx_top_1) ld a,10000000b or d ld h,a ld l,e in a,(sio_a+0) ; ← シリアルポートからデータ入力 ld (hl),a ; ← これを受信FIFOに積む inc de res 3,d ld (rx_top_1),de exx ex af,af' ei reti org 0080h ; ← MIDI受信割り込みルーチン(2) dw _midi2_ _midi2_: ex af,af' exx ld de,(rx_top_2) ld a,11000000b or d ld h,a ld l,e in a,(sio_a+0) ; ← シリアルポートからデータ入力 ld (hl),a ; ← これを受信FIFOに積む inc de res 3,d ld (rx_top_2),de exx ex af,af' ei reti ;##### Main ##### loop: ; ← メインからの呼び出し部分 call rx_data_check_1 ; ← [SIO-A]データを送信FIFOに積む call tx_data_check call rx_data_check_2 ; ← [SIO-B]データを送信FIFOに積む call tx_data_check jr loop ============================================================================