; 追尾ソフトメイン ; .CPU 300HA TIER0 .EQU H'FFFF66 TSR0 .EQU H'FFFF67 TIER1 .EQU H'FFFF70 TSR1 .EQU H'FFFF71 TIER3 .EQU H'FFFF84 TSR3 .EQU H'FFFF85 ;-----リセットベクトル----- .SECTION RESET0,DATA,LOCATE=H'020000 ; .IMPORT _ITU_0,_ITU_1,_ITU_3,_sci_c1 .IMPORT _IRQ0,_IRQ1,_IRQ2 .IMPORT _vcopy,_main .EXPORT _int_ok .DATA.L INIT ; ; .ORG H'020030 .DATA.L IRQ0 ; .ORG H'020034 .DATA.L IRQ1 ; .ORG H'020038 .DATA.L IRQ2 .ORG H'020060 .DATA.L ITU_0 ; .ORG H'020070 .DATA.L ITU_1 ; .ORG H'020090 .DATA.L ITU_3 ; .ORG H'0200E4 .DATA.L RXI1 ; .ORG H'020100 ; INIT: MOV.L #H'03FC10,ER7 ;スタックポインタ設定 @@@@ INIT: MOV.L #H'0FFEC0,ER7 ;スタックポインタ設定 JSR @_vcopy ; VECTER ADDR COPY ; jmp @_main ; ;-----割り込み処理----- ; ITU_0: BCLR #0,@TIER0 ;割り込み停止 BCLR #0,@TSR0 ;Clear IMFA PUSH.L ER0 PUSH.L ER1 JSR @_ITU_0 POP.L ER1 POP.L ER0 BSET #0,@TIER0 ;割り込み再開 RTE ; ITU_1: BCLR #0,@TIER1 ;割り込み停止 BCLR #0,@TSR1 ;Clear IMFA PUSH.L ER0 PUSH.L ER1 JSR @_ITU_1 POP.L ER1 POP.L ER0 BSET #0,@TIER1 ;割り込み再開 RTE ; ITU_3: BCLR #0,@TIER3 ;割り込み停止 BCLR #0,@TSR3 ;Clear IMFA PUSH.L ER0 PUSH.L ER1 JSR @_ITU_3 POP.L ER1 POP.L ER0 BSET #0,@TIER3 ;割り込み再開 RTE ; RXI1: PUSH.L ER0 ; SCI1 受信 PUSH.L ER1 JSR @_sci_c1 POP.L ER1 POP.L ER0 RTE ; IRQ0: PUSH.L ER0 ; 未使用 PUSH.L ER1 JSR @_IRQ0 POP.L ER1 POP.L ER0 RTE ; IRQ1: PUSH.L ER0 ; 赤外リモコン PUSH.L ER1 JSR @_IRQ1 POP.L ER1 POP.L ER0 RTE ; IRQ2: PUSH.L ER0 ; 未使用 PUSH.L ER1 JSR @_IRQ2 POP.L ER1 POP.L ER0 RTE ; _int_ok: ANDC.B #B'01111111,CCR ;割り込み許可 RTS ; .END