home *** CD-ROM | disk | FTP | other *** search
/ Dream 48 / Amiga_Dream_48.iso / Atari / assemblr / pt_src3t.lzh / PT_SRC3T / REPLAY.S < prev    next >
Text File  |  1998-01-19  |  2KB  |  112 lines

  1. ;Example program how to use PT_SRC50.S
  2. ;Generates a 50 Hz interrupt using TimerA.
  3. ; made by: Lance
  4.     opt    a+,o+
  5.  
  6.     pea    sup_rout
  7.     move.w    #$26,-(sp)
  8.     trap    #14
  9.     addq.l    #6,sp
  10.  
  11.     clr.w    -(sp)
  12.     trap    #1
  13.  
  14. sup_rout    bsr    mt_init
  15.     bsr    init_inter
  16. main    bsr    wait_sync
  17.     bsr    mt_update
  18. ; call lower priority TRASH routs from here ->
  19.     cmp.b    #185,$fffffc02.w
  20.     bne.s    main
  21.  
  22.     bsr    stop_inter
  23.  
  24.     bsr    mt_end
  25.  
  26.     rts
  27.  
  28. wait_sync    clr.w    sync
  29. .wait_sync    tst.w    sync
  30.     beq.s    .wait_sync
  31.     rts
  32.  
  33. init_inter    lea    $fffffa00.w,a6
  34.  
  35.     move.w    #$2700,sr
  36.  
  37.     lea    save_eab,a0
  38.     movep.w    $7(a6),d0
  39.     move.w    d0,(a0)
  40.  
  41.     lea    save_mab,a0
  42.     movep.w    $13(a6),d0
  43.     move.w    d0,(a0)
  44.  
  45.     moveq    #$20,d0
  46.     or.b    d0,$7(a6)
  47.     or.b    d0,$13(a6)
  48.  
  49.     bclr.b    #5,$f(a6)
  50.  
  51.     lea    save_TimerA,a0
  52.     move.l    $134.w,(a0)
  53.     lea    TimerA,a0
  54.     move.l    a0,$134.w
  55.  
  56.     lea    save_TADR,a0
  57.     move.b    $1f(a6),(a0)
  58.     lea    save_TACR,a0
  59.     move.b    $19(a6),(a0)
  60.  
  61.     move.b    #1,$1f(a6)
  62.     move.b    #8,$19(a6)
  63.  
  64.     move.l    mt_replay_frames,d0
  65.     lea    $ffff8900.w,a0
  66.     movep.l    d0,$1(a0)
  67.     add.l    mt_replay_len,d0
  68.     movep.l    d0,$d(a0)
  69.     move.w    mt_frequency,$20(a0)
  70.     move.w    #1,(a0)
  71.     move.w    #$2300,sr
  72.  
  73.     rts
  74.  
  75. stop_inter    move.w    #$2700,sr
  76.     lea    $fffffa00.w,a6
  77.  
  78.     move.w    save_eab,d0
  79.     movep.w    d0,$7(a6)
  80.  
  81.     move.w    save_mab,d0
  82.     movep.w    d0,$13(a6)
  83.  
  84.     move.l    save_TimerA,$134.w
  85.     move.b    save_TADR,$1f(a6)
  86.     move.b    save_TACR,$19(a6)
  87.     move.w    #$2300,sr
  88.     clr.w    $ffff8900.w
  89.     rts
  90.  
  91. TimerA    movem.l    d0-d7/a0-a6,-(sp)
  92.     move.w    sr,d0
  93.     move.w    (sp),d1
  94.     andi.w    #$f8ff,d0
  95.     andi.w    #$0700,d1
  96.     or.w    d0,d1
  97.     move.w    d1,sr
  98.     lea    sync,a0
  99.     move.w    #$ffff,(a0)
  100.     bclr.b    #5,$fffffa0f.w
  101.     bsr    mt_vbl
  102. ; your cool code from here ->
  103.     movem.l    (sp)+,d0-d7/a0-a6
  104.     rte
  105. sync    dc.w    0
  106. save_eab    dc.w    0
  107. save_mab    dc.w    0
  108. save_TACR    dc.w    0
  109. save_TADR    dc.w    0
  110. save_TimerA    dc.l    0
  111.     include    "pt_src3t\pt_src50.s"
  112.