home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !FALCON / AGGRESSN / MOTION.ZIP / MOTION / PALSDSP7.S < prev    next >
Text File  |  1999-01-03  |  14KB  |  725 lines

  1.  
  2.     OPT    d+,c-,p=68030
  3.  
  4. showrastertime    = 0
  5. linewidth    = 320*2
  6. screenkorkeus    = 128
  7. leveys        = 128
  8. xsize        = 128-16
  9. ysize        = 128
  10. superpixels    = 1        ; 0 = disabled, 1 = enabled
  11. raster        = 0
  12. motion        = 1
  13. memory        = 1536
  14.  
  15.  
  16. ;      /| __    _    /  __      
  17. ;     / |/ _ __| \  <  <    _   
  18. ;    /__|\ // _| / / \  \ |/ \  |
  19. ;   <   | \ \ /|< <_  >  >|\_/|\|
  20. ;    \  |    \ | \ \ / _/ |   | | 
  21. ;     \        |    /
  22. ;
  23.  
  24. Overdose_Beyond_Braindamage
  25.     include freeintx.s
  26.     even
  27.  
  28. DEMO:
  29.     move.w    activepoint,d0
  30.     move.l    (activelist,pc,d0.w*4),a0
  31.     jsr    (a0)
  32.     rts
  33.  
  34. viimeinen
  35.     st     Space_Pressed
  36.     rts
  37.  
  38. activepoint    dc.w    0    
  39. activelist    
  40.     DC.L    DSP_LOAD
  41.     DC.L    initplasma
  42.     DC.L    motionplasma
  43.     dc.l    viimeinen
  44.  
  45.  
  46. ;------------
  47. tuomioTV:
  48. .HHT    SET     $fe    *fe    ; Horizontal Hold Timer
  49. .HBB    SET     $41+32     $cb    *cb    ; Horizontal Border Begin
  50. .HBE    SET     0+32     $27-$27    *27    ; Horizontal Border End
  51. .HDB    SET     0+32     $2e-40    *1c    ; Horizontal Display Begin
  52. .HDE    SET     $41+32     $8f+40    *7d    ; Horizontal Display End
  53. .HSS    SET     $d8    *d8    ; Horizontal Synchro Start
  54.  
  55. .VFT    SET    $271    *271    ; (31250/Hz!1) ; V FREQUENCY
  56. .VBB    SET     $247    *265    ; V BORDER BLANK
  57. .VBE    SET     $47    *2f    ; ($265-$02f)/2 = 283 LINES
  58. .VDB    SET     $47    *57    ; V DISPLAY SIZE (256 lines..)
  59. .VDE    SET     $247    *237    ; ($237-$057)/2 = 240 LINES
  60. .VSS    SET     $26b    *26b    ; V SYNCHRO START (<FREQUENCY!)
  61. .VCLK    SET    $183    *181    ; Video Clock
  62. .VCO    SET    $001        ; Video Control
  63. .WIDE    set    320        ;screen wide (words)
  64. .modulo    set    0        ;screen modulo
  65. .VMODE    set    $110        ;screen mode (true)
  66. ; Video Control TV Bits                3 2 1 0
  67. ;    Horizontal Resolution-------------------+-+ + +
  68. ;        00: LORES (320 Pixels)            | |
  69. ;        01: HIRES (640 Pixels)            | |
  70. ;        10: SUPER HIRES (1280 Pixels)        | |
  71. ;            (shires seems to work with        | |
  72. ;             16 colors only (???))        | |
  73. ;    Interlace-----------------------------------' |
  74. ;        To enable interlacing, set VFT          |
  75. ;        bit 0 to logic 0.              |
  76. ;    Vertical Resolution---------------------------'
  77. ;        0: 200 lines
  78. ;        1: 100 lines
  79.  
  80.     dc.w    .HHT&$1ff,.HBB&$1ff,.HBE&$1ff,.HDB&$1ff,.HDE&$1ff,.HSS&$1ff
  81.     dc.w    .VFT&$3ff,.VBB&$3ff,.VBE&$3ff,.VDB&$3ff,.VDE&$3ff,.VSS&$3ff
  82.     dc.w    .VCLK&$1ff,.VCO&$00f
  83.     dc.l    .wide,.modulo,.vmode
  84.  
  85.  
  86. address.screen1:DS.L    1
  87. address.screen2:DS.L    1
  88.  
  89. *********************************************************************************
  90. *
  91. * Motion plasma
  92. *
  93. *********************************************************************************
  94.  
  95. initplasma:
  96.     move.l    #tuomiotv,pointertv
  97.     jsr    middlesetscreen
  98.     move.w    #$2300,sr
  99.  
  100.     move.l    #screen+256,d0
  101.     clr.b    d0
  102.     move.l    d0,address.screen1
  103.     move.l    d0,adr_screen1
  104.     move.l    d0,d1
  105.     add.l    #384*300*2,d1
  106.     move.l    d1,address.screen2
  107.  
  108.     bsr    presin
  109.  
  110.     move.w    #$2700,sr
  111.     move.b    #%00000000,$fffffa07.w
  112.     move.b    #%11000000,$fffffa09.w
  113.     move.b    #%00000000,$fffffa13.w
  114.     move.b    #%11000000,$fffffa15.w
  115.     move.l    #key_r,$118.w
  116.     move.w    #$2300,sr
  117.  
  118.     IFEQ    superpixels-1
  119.     move.w    #$00c7,$ffff8282.w    hht
  120.     move.w    #$00a0,$ffff8284.w    hbb
  121.     move.w    #$001f,$ffff8286.w    hbd
  122.     move.w    #$02c7,$ffff8288.w    hdb
  123.     move.w    #$0096,$ffff828a.w    hde
  124.     move.w    #$00aa,$ffff828c.w    hss
  125.  
  126.     move.w    #$0271,$ffff82a2.w    vft
  127.     move.w    #$0265,$ffff82a4.w    vbd
  128.     move.w    #$002f,$ffff82a6.w    vbe
  129.     move.w    #$004b,$ffff82a8.w    vdb
  130.     move.w    #$004b+512,$ffff82aa.w    vde
  131.     move.w    #$026b,$ffff82ac.w    vss
  132.  
  133.     move.b    #$02,$ffff820a.w    st 50hz
  134.     move.w    #$0186,$ffff82c0.w    vclock
  135.     move.w    #$000,$ffff8266.w    
  136.     move.w    #$100,$ffff8266.w    spshift (vmode)
  137.     move.w    #$001,$ffff82c2.w    vco
  138.     move.w    #$140,$ffff8210.w    wide
  139.     ENDC
  140.  
  141.     bsr    venko_write_curves_init
  142.     bsr    venko_write_gfx
  143.  
  144.     move.l    #omavbl,own_vbl
  145.     addq.w    #1,activepoint
  146.  
  147.     rts
  148.  
  149. omavbl:
  150.     move.l    #$0,$ffff9800.w
  151.     rts
  152.  
  153. motionplasma:
  154.     bsr    venko_write_curves
  155.     bsr    venko_write_values
  156.     bsr    plasmie
  157. *    move.l    #$ffff00ff,$ffff9800.w
  158.     rts
  159.  
  160.  
  161. sinposz:DC.W    0
  162.  
  163. plasmie:
  164.     bsr    altervalues
  165.     bsr    yrotate
  166.  
  167.     movec    cacr,d0
  168.     bclr    #8,d0
  169.     movec    d0,cacr
  170.  
  171.     lea    $ffffa202.w,a1    
  172.     lea    $ffffa206.w,a0        ;read words..
  173.  
  174. .lpx    btst    #0,(a1)        
  175.     beq.s    .lpx
  176.     move.w    (a0),d0
  177.     cmp.w    #$babe,d0
  178.     bne    reset
  179.  
  180. .lp1    btst    #1,(a1)        
  181.     beq.s    .lp1
  182.     move.l    #0,-2(a0)
  183. .lp2    btst    #1,(a1)        ; pakko hidastaa lukemista...
  184.     beq.s    .lp2        ; ts. pakko nopeuttaa dsp-kirjoitusta
  185.  
  186.     move.l    address.screen1(pc),a3
  187.     lea    16*2(a3),a3
  188.     move.w    abbaa(pc),d5
  189.     *add.w    d5,a3
  190.     IFNE    raster
  191.     eor.w    #2,abbaa
  192.     move.l    #linewidth-xsize*6,a5
  193.     ELSE
  194.     move.l    #linewidth-xsize*4,a5
  195.     ENDC
  196.     move.l    #pic+65536,d3
  197.     move.l    #motiontab+65536*2,d4
  198.     asr.l    d4
  199.     clr.l    d1
  200.     move.w    #ysize-1,d6
  201. .ylp1:
  202.     moveq    #xsize/8-1,d7
  203.     clr.w    d2
  204.     IFNE    raster
  205.     eor.w    #2,d5
  206.     ENDC
  207.     add.w    d5,a3
  208. .xlp1:
  209.     REPT    4
  210.     IFNE    motion
  211.     move.w    (a0),d2
  212.     move.w    d3,(a3)+
  213.     IFNE    raster
  214.     addq.l    #2,a3
  215.     ENDC
  216.     move.w    (a3),d4
  217.     add.w    (d4.l*2),d2
  218.     move.w    d2,(a3)+
  219.  
  220.     move.w    (a0),d3
  221.     move.w    d2,(a3)+
  222.     IFNE    raster
  223.     addq.l    #2,a3
  224.     ENDC
  225.     move.w    (a3),d4
  226.     add.w    (d4.l*2),d3
  227.     move.w    d3,(a3)+
  228.     ELSE
  229.     move.w    (a0),d2
  230.     move.w    d2,(a3)+
  231.     IFNE    raster
  232.     addq.l    #2,a3
  233.     ENDC
  234.     move.w    d2,(a3)+
  235.     move.w    (a0),d2
  236.     move.w    d2,(a3)+
  237.     IFNE    raster
  238.     addq.l    #2,a3
  239.     ENDC
  240.     move.w    d2,(a3)+
  241.     ENDC
  242.     ENDR
  243.     dbf    d7,.xlp1
  244.     sub.w    d5,a3
  245.     add.l    a5,a3
  246. .lpf    btst    #1,(a1)
  247.     beq.s    .lpf
  248.     dbf    d6,.ylp1
  249.     rts
  250. aaa:
  251. abbaa:    DC.W    0
  252.  
  253.  
  254. ; yhdistä y-distin sinikäyrään rotaation y-komponentit
  255.  
  256. yrotate:
  257.     lea    sin2b(pc),a6
  258.     lea    sin5b(pc),a5
  259.     lea    sin(pc),a0
  260.     move.w    angle1(pc),d0
  261.     lea    (a0,d0.w*2),a0
  262.     move.w    64*2(a0),d0        ; - cos = y(x)
  263.     sub.w    #128,d0
  264.     neg.w    d0
  265.     muls    z(pc),d0
  266.     asr.l    #8,d0
  267.     move.l    d0,a1
  268.     move.w    d0,d1
  269.     muls    #-screenkorkeus/2,d1
  270.     move.w    (a0),d0            ; sin = x(x)
  271.     sub.w    #128,d0
  272.  muls    #3,d0
  273.  asr.l    d0
  274.     muls    z(pc),d0
  275.     asr.l    #8,d0
  276.     move.l    d0,a2
  277.     move.w    d0,d2
  278.     muls    #-leveys/2,d2
  279.  
  280.     move.w    (a0),d0            ; sin = y(y)
  281.     sub.w    #128,d0
  282.     muls    z(pc),d0
  283.     asr.l    #8,d0
  284.     move.l    d0,d6
  285.     move.w    d0,d3
  286.     muls    #-screenkorkeus/2,d3
  287.     move.w    64*2(a0),d0        ; cos = x(y)
  288.     sub.w    #128,d0
  289.  muls    #3,d0
  290.  asr.l    d0
  291.     muls    z(pc),d0
  292.     asr.l    #8,d0
  293.     move.l    d0,a0
  294.     move.w    d0,d4
  295.     muls    #-leveys/2,d4
  296.  
  297.     add.l    #128<<8,d2
  298.  
  299.     moveq    #2*xsize/4-1,d7
  300. .lp1:
  301.     REPT    4
  302.     move.l    d1,d0
  303.     move.l    d2,d5
  304.     asr.l    #8,d5
  305.     move.b    d5,d0
  306.     move.w    d0,(a6)+
  307.  
  308.     move.l    d3,d0
  309.     move.l    d4,d5
  310.     asr.l    #8,d5
  311.     move.b    d5,d0
  312.     move.w    d0,(a5)+
  313.  
  314.     add.l    a1,d1
  315.     add.l    a2,d2
  316.     add.l    d6,d3
  317.     add.l    a0,d4
  318.     ENDR
  319.     dbf    d7,.lp1
  320.     rts
  321.  
  322.  
  323. altervalues:
  324.     move.w    angle1(pc),d0
  325.     add.w    #1,d0
  326.     and.w    #$ff,d0
  327.     move.w    d0,angle1
  328.     move.w    sinposz(pc),d0
  329.     add.w    #6,d0
  330.     and.w    #$3ff,d0
  331.     move.w    d0,sinposz
  332.  
  333.     lea    sin(pc),a0
  334.     move.w    sinposz(pc),d0
  335.     asr.w    #2,d0
  336.     lea    (a0,d0.w*2),a0
  337.     move.w    (a0),d0
  338.     add.w    d0,d0
  339.     add.w    d0,d0
  340.     add.w    #96,d0
  341.     move.w    d0,z
  342.     rts
  343.  
  344. sinsize:    DC.L    0
  345. delay1:        DC.W    0
  346. delay2:        DC.W    0
  347.  
  348. presin:
  349.     lea    sin(pc),a0
  350.     lea    256*2(a0),a1
  351.     move.w    #128*7-1,d7
  352. .sinlp1:
  353.     move.l    (a0)+,(a1)+
  354.     dbf    d7,.sinlp1
  355.  
  356.     move.l    #motiontab+65536*2,d0
  357.     and.l    #-65536*2,d0
  358.     move.l    d0,a1
  359.     moveq    #0,d2
  360.     move.w    #32768-1,d7
  361.     move.w    #%0011100111100111,d3
  362. .motionlp1:
  363.     REPT    2
  364.     move.w    d2,d0
  365.     move.w    d0,d1        1
  366.     move.w    d0,d4
  367.     and.w    #%11111,d0
  368.     and.w    #%11111100000,d1
  369.     and.w    #%1111100000000000,d4
  370.     mulu    #3,d0
  371.     mulu    #3,d1
  372.     mulu    #3,d4
  373.     lsr.w    #2,d0    
  374.     lsr.w    #2,d1    
  375.     lsr.l    #2,d4    
  376.     and.w    #%11111,d0
  377.     and.w    #%11111100000,d1
  378.     and.w    #%1111100000000000,d4
  379.     or.w    d1,d0
  380.     or.w    d4,d0
  381.  
  382. *    lsr.w    #2,d1        1
  383. *    and.w    d3,d1        1
  384. *    sub.w    d1,d0        1
  385.  
  386.     move.w    d0,(a1)+
  387.     addq.l    #1,d2
  388.     ENDR
  389.     dbf    d7,.motionlp1
  390.  
  391.     lea    picture,a0
  392.     move.l    #pic+65536,d0
  393.     clr.w    d0
  394.     move.l    d0,a1
  395.     move.w    #128-1,d6
  396. .ylp1:
  397.     move.w    #128-1,d7
  398. .xlp1:
  399.     move.w    (a0)+,d0
  400.     IFNE    motion
  401.     and.w    #$e0,d0
  402.     lsl.w    #8-2,d0
  403.     move.b    (a0)+,d1
  404.     and.w    #$f0,d1
  405.     lsl.w    #1,d1
  406.     or.w    d1,d0
  407.     move.b    (a0)+,d1
  408.     and.w    #$e0,d1
  409.     lsr.w    #5,d1
  410.     or.w    d1,d0
  411.     ELSE
  412.     and.w    #$f8,d0
  413.     lsl.w    #8,d0
  414.     move.b    (a0)+,d1
  415.     and.w    #$fc,d1
  416.     lsl.w    #3,d1
  417.     or.w    d1,d0
  418.     move.b    (a0)+,d1
  419.     and.w    #$f8,d1
  420.     lsr.w    #3,d1
  421.     or.w    d1,d0
  422.     ENDC
  423.     move.w    d0,(256*128.l,a1)
  424.     move.w    d0,(a1)+
  425.     dbf    d7,.xlp1
  426.     *lea    320*3-128*6(a0),a0
  427.     dbf    d6,.ylp1
  428.     rts
  429. aaaaa
  430.     lea    picture+320*3*64+3*64+15,a0
  431.     move.l    #pic+65536,d0
  432.     clr.w    d0
  433.     move.l    d0,a1
  434.     move.w    #128*2-1,d6
  435. .ylp1:
  436.     move.w    #128*2-1,d7
  437. .xlp1:
  438.     move.b    (a0)+,d0
  439.     and.w    #$e0,d0
  440.     lsl.w    #8-2,d0
  441.     move.b    (a0)+,d1
  442.     and.w    #$f0,d1
  443.     lsl.w    #1,d1
  444.     or.w    d1,d0
  445.     move.b    (a0)+,d1
  446.     and.w    #$e0,d1
  447.     lsr.w    #5,d1
  448.     or.w    d1,d0
  449.     move.w    d0,(a1)+
  450.     dbf    d7,.xlp1
  451.     lea    320*3-128*6(a0),a0
  452.     dbf    d6,.ylp1
  453.     rts
  454.  
  455. ; 0    x steppaa joka pixel 
  456. ; 1    x sama
  457. ; 2    x sama
  458. ; 3    x0 offset scanline alkuun
  459. ; 4    x1 sama
  460. ; 5    y steppaa joka scanline (sin*leveys)
  461. ; 6    y sama 
  462. ; 7    y steppaa joka pikseli
  463.  
  464. ;---------------------------------------------
  465. venko_write_values:
  466.     lea    incs(pc),a0
  467.     lea    baset(pc),a1
  468.     lea    modit(pc),a2
  469.  
  470.     moveq    #8-1,d7
  471. .inclp1:
  472.     move.w    (a2)+,d0
  473.     move.w    (a1),d1
  474.     move.w    d1,d2
  475.     add.w    (a0)+,d1
  476.     and.w    d0,d1
  477.     not.w    d0
  478.     and.w    d0,d2
  479.     or.w    d1,d2
  480.     move.w    d2,(a1)+
  481.     dbf    d7,.inclp1
  482.  
  483.     lea    $ffffa202.w,a1    
  484.     lea    $ffffa206.w,a0
  485.  
  486. .lpx    btst    #0,(a1)        
  487.     beq.s    .lpx
  488.     move.w    (a0),d0
  489.     cmp.w    #$babe,d0
  490.     bne    reset
  491.  
  492. .lp    btst    #1,(a1)        
  493.     beq.s    .lp        
  494.  
  495.     move.l    #1,-2(a0)        ; feed x and y size,bases,steps,mods
  496.  
  497.     lea    infot(pc),a2
  498.     moveq    #26-1,d7
  499. .infolp1:
  500. .lp2    btst    #1,(a1)        
  501.     beq.s    .lp2        
  502.     move.w    (a2)+,(a0)
  503.     dbf    d7,.infolp1
  504.     rts
  505.  
  506. ;---------------------------------------------
  507. venko_write_gfx:
  508.     lea    $ffffa202.w,a1    
  509.     lea    $ffffa206.w,a0
  510.  
  511. .lpx    btst    #0,(a1)        
  512.     beq.s    .lpx
  513.     move.w    (a0),d0
  514.     cmp.w    #$babe,d0
  515.     bne    reset
  516.  
  517. .lp    btst    #1,(a1)        
  518.     beq.s    .lp        
  519.  
  520.     move.l    #3,-2(a0)        ; feed gfx
  521.  
  522.     move.l    #pic+65536,d0
  523.     clr.w    d0
  524.     move.l    d0,a2
  525.     moveq    #128-1,d6
  526. .ylp1:
  527.     moveq    #128-1,d7
  528. .xlp1:
  529. .lp2    btst    #1,(a1)        
  530.     beq.s    .lp2        
  531.     move.w    (a2)+,(a0)
  532.     dbf    d7,.xlp1
  533.     dbf    d6,.ylp1
  534.     rts
  535.  
  536. infot:
  537.     dc.w    xsize
  538.     dc.w    ysize
  539. baset:    dc.w    $0400,$1000,$0200,$1000,$0200,$0500,$1000,$1000    ;base
  540. stepit:    dc.w    $0001,$0004,$0000,$0002,$0001,$0001,$0003,$0004    ;step
  541. modit:    dc.w    $00ff,$00ff,$00ff,$00ff,$00ff,$00ff,$00ff,$00ff    ;mod
  542.  
  543. incs:    DC.W    $0000,$0001,$0000,$0002,$0000,$0000,$0001,$0003 ;base increments
  544.  
  545. ;---------------------------------------------
  546. venko_write_curves_init:
  547.     lea    nullsin(pc),a2
  548.     move.w    #$200,d6
  549.     bsr    feed
  550.     lea    countsin(pc),a2
  551.     move.w    #$300,d6
  552.     bsr    feed
  553.  
  554.     lea    sin(pc),a0
  555.     lea    dspsin(pc),a1
  556.     move.w    #$10,d1
  557.     move.w    #256-1,d7
  558. .lp1dsp:
  559.     move.w    (a0)+,d0
  560.     mulu    d1,d0
  561.     asr.l    #8,d0
  562.     move.w    d0,(a1)+
  563.     dbf    d7,.lp1dsp
  564.     move.w    #$1000,d6
  565.     lea    dspsin(pc),a2
  566.     bsr    feed
  567.     rts
  568.  
  569. ;---------------------------------------------
  570. venko_write_curves:
  571.     lea    sin2b(pc),a2
  572.     move.w    #$400,d6
  573.     bsr    feed
  574.     lea    sin5b(pc),a2
  575.     move.w    #$500,d6
  576.     bsr    feed
  577.     rts
  578.  
  579. feed:
  580.     lea    $ffffa202.w,a1    
  581.     lea    $ffffa206.w,a0
  582.  
  583. .lpx    btst    #0,(a1)        
  584.     beq.s    .lpx
  585.     move.w    (a0),d0
  586.     cmp.w    #$babe,d0
  587.     bne    reset
  588.  
  589. .lp    btst    #1,(a1)        
  590.     beq.s    .lp        
  591.  
  592.     move.l    #2,-2(a0)    ; feed curve
  593. .lp2    btst    #1,(a1)        
  594.     beq.s    .lp2        
  595.     move.w    d6,(a0)        ; base location in x ram
  596. .lp3    btst    #1,(a1)        
  597.     beq.s    .lp3    
  598.     move.w    #256,(a0)    ; length
  599.  
  600.     move.w    #256-1,d7
  601. .curvelp1:
  602. .lp4    btst    #1,(a1)        
  603.     beq.s    .lp4
  604.     move.w    (a2)+,d0
  605.     ext.l    d0
  606.     add.l    d0,d0
  607.     move.l    d0,-2(a0)
  608.     dbf    d7,.curvelp1
  609.     rts
  610.  
  611. nullsin:
  612.     DCB.W    256,0
  613. countsin:
  614. n    SET    0
  615.     REPT    256
  616.     DC.W    n
  617. n    SET    n+1
  618.     ENDR
  619.  
  620. sin2b:    DS.W    256*2
  621. sin5b:    DS.W    256*2
  622.  
  623. ;---------------------------------------------
  624. tuomio_read
  625. *    lea    $ffffa202.w,a1    
  626. *    lea    $ffffa206.w,a0        ;read words..
  627. *    lea    z_buffer,a2
  628. *
  629. *.lp    btst    #0,(a1)        
  630. *    beq.s    .lp        
  631. *    move.w    #384-1,d0
  632. *.lp2    
  633. *    move.w    (a0),(a2)+
  634. *    move.w    (a0),(a2)+
  635. *    move.w    (a0),(a2)+        ;get z,txt,x_off
  636. *    dbf    d0,.lp2
  637.     rts
  638.  
  639. ;---------------------------------------------
  640. ;  DSP ROUTINES..
  641. ;------------------------------------------------------------------------
  642. DSP_LOAD:
  643.     move.w    #$2300,sr
  644.     MOVE.W    #1,-(SP)
  645.     move.l    #(dsp_end-dsp_boot)/3,-(sp)
  646.     move.l    #dsp_boot+9,-(sp)        ;devpac56:n headereita
  647.     MOVE.W    #$6e,-(SP)
  648.     TRAP    #14
  649.     LEA    12(SP),SP
  650.     tst.l    d0
  651.     bmi    reset            ;dsp melted beyond braindamage..
  652.     tst.l    d1
  653.     bmi    reset            ;dsp melted beyond braindamage..
  654.  
  655.     addq.w    #1,activepoint
  656.     rts
  657.  
  658. dsp_boot
  659.     incbin    "dsp\venko3.p56",0
  660.     even
  661. dsp_end
  662.     even
  663. ;----------------------------------------
  664.  
  665. angle1:    DC.W    0
  666. z:    DC.W    64
  667.  
  668. dspsin:    DCB.W    256
  669. sin:
  670.     DC.W    $007F,$0082,$0085,$0088,$008B,$008E,$0091,$0094
  671.     DC.W    $0097,$009B,$009E,$00A1,$00A4,$00A7,$00AA,$00AD
  672.     DC.W    $00B0,$00B2,$00B5,$00B8,$00BB,$00BE,$00C0,$00C3
  673.     DC.W    $00C6,$00C8,$00CB,$00CD,$00D0,$00D2,$00D5,$00D7
  674.     DC.W    $00D9,$00DB,$00DD,$00DF,$00E2,$00E3,$00E5,$00E7
  675.     DC.W    $00E9,$00EB,$00EC,$00EE,$00EF,$00F1,$00F2,$00F4
  676.     DC.W    $00F5,$00F6,$00F7,$00F8,$00F9,$00FA,$00FB,$00FB
  677.     DC.W    $00FC,$00FD,$00FD,$00FE,$00FE,$00FE,$00FE,$00FE
  678.     DC.W    $00FE,$00FE,$00FE,$00FE,$00FE,$00FE,$00FD,$00FD
  679.     DC.W    $00FC,$00FB,$00FB,$00FA,$00F9,$00F8,$00F7,$00F6
  680.     DC.W    $00F5,$00F3,$00F2,$00F1,$00EF,$00EE,$00EC,$00EA
  681.     DC.W    $00E9,$00E7,$00E5,$00E3,$00E1,$00DF,$00DD,$00DB
  682.     DC.W    $00D9,$00D7,$00D4,$00D2,$00CF,$00CD,$00CA,$00C8
  683.     DC.W    $00C5,$00C3,$00C0,$00BD,$00BB,$00B8,$00B5,$00B2
  684.     DC.W    $00AF,$00AC,$00A9,$00A6,$00A3,$00A0,$009D,$009A
  685.     DC.W    $0097,$0094,$0091,$008E,$008B,$0088,$0084,$0081
  686.     DC.W    $007F,$007C,$0079,$0076,$0073,$006F,$006C,$0069
  687.     DC.W    $0066,$0063,$0060,$005D,$005A,$0057,$0054,$0051
  688.     DC.W    $004E,$004B,$0048,$0046,$0043,$0040,$003D,$003B
  689.     DC.W    $0038,$0035,$0033,$0030,$002E,$002C,$0029,$0027
  690.     DC.W    $0025,$0022,$0020,$001E,$001C,$001A,$0018,$0017
  691.     DC.W    $0015,$0013,$0011,$0010,$000E,$000D,$000C,$000A
  692.     DC.W    $0009,$0008,$0007,$0006,$0005,$0004,$0003,$0002
  693.     DC.W    $0002,$0001,$0001,$0000,$0000,$0000,$0000,$0000
  694.     DC.W    $0000,$0000,$0000,$0000,$0000,$0001,$0001,$0001
  695.     DC.W    $0002,$0003,$0003,$0004,$0005,$0006,$0007,$0008
  696.     DC.W    $0009,$000B,$000C,$000D,$000F,$0010,$0012,$0014
  697.     DC.W    $0015,$0017,$0019,$001B,$001D,$001F,$0021,$0023
  698.     DC.W    $0025,$0028,$002A,$002C,$002F,$0031,$0034,$0036
  699.     DC.W    $0039,$003C,$003E,$0041,$0044,$0047,$0049,$004C
  700.     DC.W    $004F,$0052,$0055,$0058,$005B,$005E,$0061,$0064
  701.     DC.W    $0067,$006A,$006D,$0071,$0074,$0077,$007A,$007D
  702.     DS.W    256*7
  703.  
  704.     DATA
  705.  
  706. picture:
  707.     INCBIN    eye.c24
  708. *    rept    64
  709. *    dcb.l    64,$000000
  710. *    dcb.l    64,$ffffff
  711. *    endr
  712. *    rept    64
  713. *    dcb.l    64,$ffffff
  714. *    dcb.l    64,$000000
  715. *    endr
  716.     *INCBIN    c:\sources\joker.c24
  717.     *INCBIN    c:\sources\atari.ppm
  718.  
  719.     BSS
  720.  
  721. screen:    DCB.W    128*256*2,0
  722. pic:    DS.W    256*384+32768
  723. motiontab:
  724.     DS.B    65536*3
  725.