; -----------------------------------------------------------------------------
;   熊猫トラ オリジナル
;   0.1秒ごとに、カウントする。タイマー割り込みを使用する
;   KZ80でもちゃんと動きます。
; -----------------------------------------------------------------------------
        .8085
        ASEG
        ORG     8000h
SPEED1  EQU     10       ; カウントするまでの割り込み回数
MODE    EQU     14H     ; 割り込み速度      100ms

PORTA   EQU     0F0H
PORTB   EQU     0F1H
PORTC   EQU     0F2H
CWR1    EQU     0F3H
CWR2    EQU     0F7H

DISP    EQU     0040H
DHEX4   EQU     0049H
        
        ;
        MVI     A,90H
        OUT     CWR1
        OUT     CWR2
        MVI     A,04H
        OUT     PORTC
        
        
        MVI     A,0C3H
        STA     0FF27H
        LXI     H,INT1
        SHLD    0FF28H
        
        DI
        MVI     A,MODE  ; 割り込み速度
        CALL    00A3H   ; タイマーモードの設定
        CALL    009DH   ; タイマー割り込みの許可
        EI
        
        LXI     H,0         ; カウンター
        MVI     E,0
L1:
        ; カウントされるまでループする
        LDA     COUNT
        CMP     E
        JZ      L1
        MOV     E,A
        ; カウント
        MOV     A,L
        ADI     01H
        DAA
        MOV     L,A
        MOV     A,H
        ACI     00H
        DAA
        MOV     H,A
        ; 外部LEDへ出力
        MOV     A,L
        OUT     PORTB
        ; 表示
        MVI     C,5
        CALL    DHEX4
        CALL    DISP
        
        JMP     L1

        ; 割り込み処理ルーチン
        ORG     8080H
INT1:
        PUSH    PSW
        LDA     COUNT2
        DCR     A
        JNZ     INTJ1
        ; カウント
        LDA     COUNT
        INR     A
        STA     COUNT
        ;
        MVI     A,SPEED1
INTJ1:
        STA     COUNT2
        POP     PSW
        RET

COUNT:  DB      1
COUNT2: DB      1
