home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !FALCON / LINEOUT / OUT.ZIP / SOURCE.ZIP / SHOWPIC.SO < prev    next >
Text File  |  2003-11-29  |  3KB  |  149 lines

  1. ; objectformat 1.3
  2.  
  3. ;======= OBJECT EQUATES ====================================================
  4.  
  5. ;======= OBJECT TABLE ======================================================
  6.  
  7.     IFND    DEMO_SYSTEM
  8. testmode:    =    0
  9.     move.l    #Showpic.table,fxAdr
  10.     INCLUDE    TESTER.S
  11.     TEXT
  12.     ENDC    
  13.  
  14. ; Must be first in object!!
  15. Showpic.table:
  16.     DC.L    Showpic.mainLoop
  17.     DC.L    Showpic.init
  18.     DC.L    Showpic.initRT
  19.     DC.L    Showpic.deinitRT
  20.     DC.L    0
  21.  
  22. ;======= INIT SUBROUTINE ===================================================
  23.  
  24. ; OUTPUT:
  25. ; d0.l: 0   = All clear, neg = Error! Not initialized!
  26. Showpic.init:
  27. .success:
  28.     moveq    #0,d0
  29.     rts
  30. .error:    moveq    #-1,d0
  31.     rts
  32.  
  33. ;======= REALTIME INIT SUBROUTINE ==========================================
  34.  
  35. Showpic.initRT:
  36.     move.l    #rts,vbl_gfx
  37.  
  38.     bsr    Showpic.reset
  39.  
  40.     move.w    monitormode,d0
  41.     cmpi.w    #vga60,d0
  42.     beq.s    .vga60
  43.     cmpi.w    #vga100,d0
  44.     beq.s    .vga100
  45.     cmpi.w    #rgb50,d0
  46.     beq.s    .rgb50
  47. ; Unknown monitormode..
  48. .end:    rts
  49. .vga60:    move.l    #vga60_16bit_320_200,resRout
  50.     rts
  51. .vga100:move.l    #vga100_16bit_320_200,resRout
  52.     rts
  53. .rgb50:    move.l    #rgb50_16bit_320_200,resRout
  54.     rts
  55.  
  56. ;======= DEINITIALISATION ROUTINE ==========================================
  57.  
  58. Showpic.deinitRT:
  59.     rts
  60.  
  61. ;======= SCREENINIT SUBROUTINE =============================================
  62.  
  63. Showpic.initScreen:
  64.     movea.l    scr,a0
  65.     bsr.l    CLEAR_320200TSCR
  66.     rts
  67.  
  68. ;======= MAINLOOP SUBROUTINE ===============================================
  69.  
  70. Showpic.mainLoop:
  71.     move.l    frmcnt,d0
  72.     sub.l    lastframecount,d0
  73.     bne.s    .end_screeninit
  74.     bsr    Showpic.initScreen
  75. .end_screeninit:
  76.  
  77. ; Get offsets.
  78.     bsr    Showpic.getFrameNum
  79.     subi.l    #100,d0
  80.     bmi.s    .ok
  81.     clr.w    d0
  82. .ok:    move.w    d0,d1                ; d1.w= t-100
  83.     addi.w    #200,d1                ; d1.w= o2=t-100+200=t-100
  84.     neg.w    d0                ; d0.w= o1=100-t
  85.  
  86. ; Draw top line.
  87.     lea    Showpic.pic+20,a1
  88.     movea.l    scr,a0
  89.     mulu.w    #320*2,d0
  90.     adda.l    d0,a0
  91.     adda.l    d0,a1
  92.     moveq    #80-1,d6
  93. .xloop1:move.l    (a1)+,(a0)+
  94.     move.l    (a1)+,(a0)+
  95.     dbf    d6,.xloop1
  96.  
  97. ; Draw bottom line.
  98.     lea    Showpic.pic+20,a1
  99.     movea.l    scr,a0
  100.     mulu.w    #320*2,d1
  101.     adda.l    d1,a0
  102.     adda.l    d1,a1
  103.     moveq    #80-1,d6
  104. .xloop2:move.l    (a1)+,(a0)+
  105.     move.l    (a1)+,(a0)+
  106.     dbf    d6,.xloop2
  107.  
  108.     movea.l    resRout,a0
  109.     suba.l    a1,a1
  110.     movea.l    scr,a2
  111.     bsr.l    Screen.requestUpdate
  112.     clr.l    resRout
  113.  
  114.     move.w    $0468.w,d0
  115. .wait:    cmp.w    $0468.w,d0
  116.     beq.s    .wait
  117.  
  118.     rts
  119.  
  120. ;======= OBJECT SUBROUTINES ================================================
  121.  
  122. Showpic.reset:
  123.     clr.l    Showpic.framecount
  124.     rts
  125.  
  126. Showpic.getFrameNum:
  127.     move.l    Showpic.framecount,d0
  128.     move.l    d0,d1
  129.     addq.l    #1,d1
  130.     move.l    d1,Showpic.framecount
  131. .ok:    cmpi.w    #vga100,monitormode
  132.     bne.s    .end
  133.     lsr.l    d0
  134. .end:    rts
  135.  
  136. ;======= OBJECT DATA =======================================================
  137.  
  138.     DATA
  139.  
  140. Showpic.pic:
  141.     INCBIN    CREW.APX
  142.  
  143. ;======= OBJECT RESERVES ===================================================
  144.  
  145.     BSS
  146.  
  147. Showpic.framecount:
  148.     DS.L    1
  149.