#define ta_dr %d4 #define ta_ci %d5 #define pa_dr %b1 #define pb_dr %b2 #define pa_wr %d1 #define pb_wr %d2 work=40h ;----------------------------------------------------------------------------- .macro timer_config inter_h,inter_l movl ta_dr,10h movl ta_ci,40h movl ta_dr,0 movl ta_ci,inter_l movl ta_dr,4 movl ta_ci,inter_h .endm ;----------------------------------------------------------------------------- port_cf=00011011b ;----------------------------------------------------------------------------- .macro port_config p_dr movl p_dr,port_cf movl p_dr,0ffh movl p_dr,0 movl p_dr,0 movl p_dr,0 movl p_dr,0 .endm ;----------------------------------------------------------------------------- .macro loop reg,lab subl reg,1 jne lab .endm ;----------------------------------------------------------------------------- jmp START nop jmp exit jmp ITMRA nop nop nop nop ;----------------------------------------------------------------------------- ITMRA: push #d ldr #d,0 bich ta_dr,0eh pop #d rti nop nop jmp exit ;----------------------------------------------------------------------------- start: ldr #a,work ldr #b,18h port_config pa_dr port_config pb_dr ldr #d,0 movl pa_wr,0ffh movl pb_wr,0ffh movl a1,20 $53: movl a0,0 $54: movl pa_wr,055h movl pb_wr,055h movl pa_wr,0aah movl pb_wr,0aah loop a0,$54 loop a1,$53 timer_config 0ffh,0ffh movl a4,055h movl a5,0ffh movl ta_dr,3 movl %a6,0 $10: wait mov pb_wr,%a4 xor a4,a5 loop %a6,$10 exit: slp ;----------------------------------------------------------------------------- .END ;----------------------------------------------------------------------------- ;----------------------------------------------------------------------------- ;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------