home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src6.dms / in.adf / ANGELSRC.DMS / ANGELSRC.adf / SOURCES / intro1 / angels.s < prev    next >
Encoding:
Text File  |  1989-03-06  |  32.7 KB  |  1,360 lines

  1. R:
  2.     move.l    #60,d0
  3.     lsl.l    #6,d0
  4. * SOS *
  5.  
  6. >extern "op_wolf.1bp",font
  7. >extern "angels",sin
  8. >extern "tristar",module 
  9. >extern    "logo",logoo
  10. >extern    "xy",xy
  11.  
  12. ;------ credits ---------------------------------------------------
  13. ;
  14. ;    coding by CORSAIR of DRAGONS
  15. ;    font   by MISTER VIDEO of DRAGONS
  16. ;    music  by LEFFTY of TRISTAR
  17. ;      logo   by LUCYFER of ANGELS
  18. ;
  19. ;------ sauvegarde -----------------------------------------------
  20. ;
  21. ;    A <ret><ret> Y <ret>
  22. ;    WI <ret> RAM:ANGELS <ret> BEG <ret> END <ret>
  23.  
  24. ;------ crunchage sous TETRAPACK ------------------------------
  25. ;
  26. ;    mega crunch : N <ret>
  27. ;    low-mem : $30000 <ret>
  28. ;    high-mem : 50000 <ret>
  29. ;    scan-width : 1500 <ret>
  30. ;    load-type : O <ret>    
  31. ;    filename : RAM:nom du prg a cruncher <ret>
  32. ;    load-adr : $40000 <ret>    
  33. ;    load-type : <ret>
  34. ;         ATTENDRE
  35. ;    jmp adr : $40000 <ret>
  36. ;    flash-reg : 00 <ret>
  37. ;    pro-decrunch : N <ret>
  38. ;    filename : RAM:nom du prg a sauvegarder <ret>    
  39. ;    save again : N <ret>
  40. ;     run now : Y <ret>
  41. ;
  42. ;------ registres divers ------------------------------------------
  43. ;
  44. ;si tu veux pas la music tu mets    music:        = 0
  45. ;sinon, (si tu veux la music), tu mets    music:        = 1
  46.     music:        = 1
  47.     scry:        = 104
  48.  
  49. ;------ registres bp ----------------------------------------------
  50.     bp1:        = $60000
  51.     bp1a:        = bp1+[scry*48]
  52.     bp_log:        = $70000
  53.  
  54. ;------------------------------------------------------------------
  55.     jmp        beg
  56.     org        $40000
  57.     load        $40000
  58.  
  59. ;******************************************************************
  60. ;************** programme principal *******************************
  61. ;******************************************************************
  62.  
  63. beg:        move.l    4.w,a6
  64.         jsr    -132(a6)        ;forbid
  65. ;==================================================================
  66.         move.l    #init,$80.w
  67.         trap    #0
  68. ;==================================================================
  69. if music
  70.         bsr.L    end_music
  71. endif
  72.         move.l    4.w,a6
  73.         lea    gfxn(pc),a1
  74.         jsr    -408(a6)        ;openlib
  75.         move.l    d0,a1
  76.         move.l    38(a1),$dff080
  77.         move    #$8020,$dff096
  78.         jsr    -414(a6)        ;closelib
  79.         jsr    -138(a6)        ;permit
  80.         moveq    #0,d0
  81.         rts
  82.  
  83. ;******************************************************************
  84. ;************** init **********************************************
  85. ;******************************************************************
  86. init:        lea    end,a0
  87.         lea    $7f000,a1
  88. vide_bp:    clr.l    (a0)+
  89.         cmp.l    a0,a1
  90.         bne.s    vide_bp
  91. ;==================================================================
  92.         lea    sin,a0
  93.         lea    sin2,a1
  94.         move    #8192-1,d0
  95. init_sin:    move.b    (a0)+,d1
  96.         ext    d1
  97.         mulu    #48,d1
  98.         move    d1,(a1)+
  99.         dbf    d0,init_sin
  100. ;==================================================================
  101. if music
  102.         bsr.L    init_music
  103. endif
  104.         move.l    #new_copper,$dff080
  105.         
  106. ;******************************************************************
  107. ;************** irq ***********************************************
  108. ;******************************************************************
  109.  
  110. irq_0:        move.l    $dff004,d0
  111.         and.l    #$1ff00,d0
  112.         cmp.l    #$10000,d0
  113.         bne.s    irq_0
  114.         bsr.s    scr
  115.         bsr.L    controle_mouse
  116.         bsr    place
  117. if music
  118.         bsr.L    play
  119. endif
  120.         btst    #6,$bfe001
  121.         bne.s    irq_0
  122.         rte
  123.  
  124. ;******************************************************************
  125. ;************** scr ***********************************************
  126. ;******************************************************************
  127.  
  128. scr:        eor.b    #$01,bp_scr+1
  129.         eor.b    #$01,adr_bp_scr+3
  130.         lea    $dff000,a6
  131.         move    pos_sin(pc),d0
  132.         move    vit(pc),d1
  133.  
  134.         tst.b    tps_scr
  135.         beq.s    ok_sin
  136.         move    pas(pc),d2
  137.         asl    #2,d2
  138.         sub    d2,d1
  139.  
  140. ok_sin:        add    d1,d0
  141.         move    d0,pos_sin
  142. ;==================================================================
  143.         move.l    #$09000000,$40(a6)
  144.         clr.l    $64(a6)
  145.         move.l    bp_scr(pc),$54(a6)
  146.         move    #64+16*64+24,$58(a6)
  147. ;==================================================================
  148.         lea    sin2,a0
  149.         move.l    #$0dfc0000,$40(a6)
  150.         move.l    #$ffffffff,$44(a6)
  151.         move.l    #$002e002e,$60(a6)
  152.         move.l    #$002e002e,$64(a6)
  153.         move.l    #bp_log,d1
  154.         move.l    bp_scr(pc),d3
  155.         move    #8192*2-1,d5
  156.         move    pas(pc),d6
  157.         moveq    #23-1,d4
  158. ;==================================================================
  159. put_sin:    move.l    d3,d2            ;part
  160.         add    d6,d0
  161.         and    d5,d0
  162.         add    (a0,d0.w),d2
  163.         move    #$8000,$44(a6)
  164.         move.l    d1,$50(a6)
  165.         move.l    d2,$54(a6)
  166.         move.l    d2,$4c(a6)
  167.         move    #16*64+1,$58(a6)
  168.         move.l    d3,d2            ;part
  169.         add    d6,d0
  170.         and    d5,d0
  171.         add    (a0,d0.w),d2
  172.         move    #$4000,$44(a6)
  173.         move.l    d1,$50(a6)
  174.         move.l    d2,$54(a6)
  175.         move.l    d2,$4c(a6)
  176.         move    #16*64+1,$58(a6)
  177.         move.l    d3,d2            ;part
  178.         add    d6,d0
  179.         and    d5,d0
  180.         add    (a0,d0.w),d2
  181.         move    #$2000,$44(a6)
  182.         move.l    d1,$50(a6)
  183.         move.l    d2,$54(a6)
  184.         move.l    d2,$4c(a6)
  185.         move    #16*64+1,$58(a6)
  186.         move.l    d3,d2            ;part
  187.         add    d6,d0
  188.         and    d5,d0
  189.         add    (a0,d0.w),d2
  190.         move    #$1000,$44(a6)
  191.         move.l    d1,$50(a6)
  192.         move.l    d2,$54(a6)
  193.         move.l    d2,$4c(a6)
  194.         move    #16*64+1,$58(a6)
  195. ;==================================================================
  196.         move.l    d3,d2            ;part
  197.         add    d6,d0
  198.         and    d5,d0
  199.         add    (a0,d0.w),d2
  200.         move    #$0800,$44(a6)
  201.         move.l    d1,$50(a6)
  202.         move.l    d2,$54(a6)
  203.         move.l    d2,$4c(a6)
  204.         move    #16*64+1,$58(a6)
  205.         move.l    d3,d2            ;part
  206.         add    d6,d0
  207.         and    d5,d0
  208.         add    (a0,d0.w),d2
  209.         move    #$0400,$44(a6)
  210.         move.l    d1,$50(a6)
  211.         move.l    d2,$54(a6)
  212.         move.l    d2,$4c(a6)
  213.         move    #16*64+1,$58(a6)
  214.         move.l    d3,d2            ;part
  215.         add    d6,d0
  216.         and    d5,d0
  217.         add    (a0,d0.w),d2
  218.         move    #$0200,$44(a6)
  219.         move.l    d1,$50(a6)
  220.         move.l    d2,$54(a6)
  221.         move.l    d2,$4c(a6)
  222.         move    #16*64+1,$58(a6)
  223.         move.l    d3,d2            ;part
  224.         add    d6,d0
  225.         and    d5,d0
  226.         add    (a0,d0.w),d2
  227.         move    #$0100,$44(a6)
  228.         move.l    d1,$50(a6)
  229.         move.l    d2,$54(a6)
  230.         move.l    d2,$4c(a6)
  231.         move    #16*64+1,$58(a6)
  232. ;==================================================================
  233.         move.l    d3,d2            ;part
  234.         add    d6,d0
  235.         and    d5,d0
  236.         add    (a0,d0.w),d2
  237.         move    #$0080,$44(a6)
  238.         move.l    d1,$50(a6)
  239.         move.l    d2,$54(a6)
  240.         move.l    d2,$4c(a6)
  241.         move    #16*64+1,$58(a6)
  242.         move.l    d3,d2            ;part
  243.         add    d6,d0
  244.         and    d5,d0
  245.         add    (a0,d0.w),d2
  246.         move    #$0040,$44(a6)
  247.         move.l    d1,$50(a6)
  248.         move.l    d2,$54(a6)
  249.         move.l    d2,$4c(a6)
  250.         move    #16*64+1,$58(a6)
  251.         move.l    d3,d2            ;part
  252.         add    d6,d0
  253.         and    d5,d0
  254.         add    (a0,d0.w),d2
  255.         move    #$0020,$44(a6)
  256.         move.l    d1,$50(a6)
  257.         move.l    d2,$54(a6)
  258.         move.l    d2,$4c(a6)
  259.         move    #16*64+1,$58(a6)
  260.         move.l    d3,d2            ;part
  261.         add    d6,d0
  262.         and    d5,d0
  263.         add    (a0,d0.w),d2
  264.         move    #$0010,$44(a6)
  265.         move.l    d1,$50(a6)
  266.         move.l    d2,$54(a6)
  267.         move.l    d2,$4c(a6)
  268.         move    #16*64+1,$58(a6)
  269. ;==================================================================
  270.         move.l    d3,d2            ;part
  271.         add    d6,d0
  272.         and    d5,d0
  273.         add    (a0,d0.w),d2
  274.         move    #$0008,$44(a6)
  275.         move.l    d1,$50(a6)
  276.         move.l    d2,$54(a6)
  277.         move.l    d2,$4c(a6)
  278.         move    #16*64+1,$58(a6)
  279.         move.l    d3,d2            ;part
  280.         add    d6,d0
  281.         and    d5,d0
  282.         add    (a0,d0.w),d2
  283.         move    #$0004,$44(a6)
  284.         move.l    d1,$50(a6)
  285.         move.l    d2,$54(a6)
  286.         move.l    d2,$4c(a6)
  287.         move    #16*64+1,$58(a6)
  288.         move.l    d3,d2            ;part
  289.         add    d6,d0
  290.         and    d5,d0
  291.         add    (a0,d0.w),d2
  292.         move    #$0002,$44(a6)
  293.         move.l    d1,$50(a6)
  294.         move.l    d2,$54(a6)
  295.         move.l    d2,$4c(a6)
  296.         move    #16*64+1,$58(a6)
  297.         move.l    d3,d2            ;part
  298.         add    d6,d0
  299.         and    d5,d0
  300.         add    (a0,d0.w),d2
  301.         move    #$0001,$44(a6)
  302.         move.l    d1,$50(a6)
  303.         move.l    d2,$54(a6)
  304.         move.l    d2,$4c(a6)
  305.         move    #16*64+1,$58(a6)
  306.         addq    #2,d1
  307.         addq    #2,d3
  308.         dbf    d4,put_sin
  309. ;==================================================================
  310.         tst.b    tps_scr
  311.         beq.s    ok_scr
  312.         subq.b    #1,tps_scr
  313.         rts
  314. ;==================================================================
  315. ok_scr:        move.l    #$c9f00000,$40(a6)
  316.         move.l    #$ffffffff,$44(a6)
  317.         clr.l    $64(a6)
  318.         move.l    #bp_log,$50(a6)
  319.         move.l    #bp_log-2,$54(a6)
  320.         move    #17*64+24,$58(a6)
  321.         subq.b    #1,nb_scr
  322.         beq.s    nv_car
  323.         rts
  324. ;==================================================================
  325. nv_car:        move.b    #4,nb_scr
  326.         move.l    compt(pc),a0
  327.         move.b    (a0)+,d0
  328.         bne.s    pas_fin_scr
  329.         lea    scrtxt(pc),a0
  330.         move.b    (a0)+,d0
  331. pas_fin_scr:    move.l    a0,compt
  332.         cmp.b    #'A',d0
  333.         bne.s    pas_pause
  334.         move.b    #100,tps_scr
  335.         bra.s    nv_car
  336. pas_pause:    lea    ordre(pc),a0
  337.         lea    adr_font-4(pc),a1
  338. ch_font:    addq    #4,a1
  339.         cmp.b    (a0)+,d0
  340.         bne.s    ch_font
  341.         move.l    #$09f00000,$40(a6)
  342.         move.l    #$ffffffff,$44(a6)
  343.         move.l    #$0026002e,$64(a6)
  344.         move.l    (a1),$50(a6)
  345.         move.l    #bp_log+46,$54(a6)
  346.         move    #16*64+1,$58(a6)
  347. fin_scr:    rts
  348.  
  349. ;******************************************************************
  350. ;************** controle mouse ************************************
  351. ;******************************************************************
  352.  
  353. controle_mouse:    move.b    $bfec01,d0
  354.         cmp.b    #$67,d0
  355.         bne.s    pas_ht
  356.         cmp    #2*80,pas
  357.         beq.s    pas_ht
  358.         add    #2,pas
  359. ;==================================================================
  360. pas_ht:        cmp.b    #$65,d0
  361.         bne.s    pas_bas
  362.         cmp    #0,pas
  363.         beq.s    pas_bas
  364.         sub    #2,pas
  365. ;==================================================================
  366. pas_bas:    cmp.b    #$61,d0
  367.         bne.s    pas_g
  368.         cmp    #8*80,vit
  369.         beq.s    pas_g
  370.         add    #8,vit
  371. ;==================================================================
  372. pas_g:        cmp.b    #$63,d0
  373.         bne.s    pas_d
  374.         cmp    #0,vit
  375.         beq.s    pas_d
  376.         sub    #8,vit
  377. pas_d:        rts
  378.  
  379. place:
  380.     add.l    #4,pxy
  381.     cmp.l    #findata,pxy
  382.     blo    encorecourbe
  383.     move.l    #xy,pxy
  384. encorecourbe:
  385.     move.l    pxy,a0
  386.     lea    logoo,a1
  387.     moveq.l    #0,d1
  388.     moveq.l    #0,d2
  389.     move.w    (a0)+,d1
  390.     move.w    (a0)+,d2
  391.     or.w    #$09f0,d2
  392.     lea    $dff000,a5
  393.     move.l    #2-1,d0
  394. copy:
  395.     btst    #14,2(a5)
  396.     bne    copy
  397.     move.l    #$ffffffff,$44(a5)
  398.     move.l    #$00000016,$64(a5)
  399.     move.l    a1,$50(a5)
  400.     move.l    #$63000,d3
  401.     add.w    d1,d3
  402.     move.l    d3,$54(a5)
  403.     move.w    d2,$40(a5)
  404.     move.w    #$0000,$42(a5)
  405.     move.w    #$0f0d,$58(a5)
  406.     add.l    #$3000,d1
  407.     add.l    #26*60,a1
  408.     dbf    d0,copy
  409. rts
  410.  
  411. if music
  412. *************************************************************
  413. **  Amiga FUTURE COMPOSER V1.0 / V1.2  --  Replay routine  **
  414. *************************************************************
  415.  
  416. END_MUSIC:
  417. clr.w onoff
  418. clr.l $dff0a6
  419. clr.l $dff0b6
  420. clr.l $dff0c6
  421. clr.l $dff0d6
  422. move.w #$000f,$dff096
  423. bclr #1,$bfe001
  424. rts
  425.  
  426. INIT_MUSIC:
  427. move.w #1,onoff
  428. bset #1,$bfe001
  429. lea MODULE,a0
  430. lea 100(a0),a1
  431. move.l a1,SEQpoint
  432. move.l a0,a1
  433. add.l 8(a0),a1
  434. move.l a1,PATpoint
  435. move.l a0,a1
  436. add.l 16(a0),a1
  437. move.l a1,FRQpoint
  438. move.l a0,a1
  439. add.l 24(a0),a1
  440. move.l a1,VOLpoint
  441. move.l 4(a0),d0
  442. divu #13,d0
  443.  
  444. lea 40(a0),a1
  445. lea SOUNDINFO+4(pc),a2
  446. moveq #10-1,d1
  447. initloop:
  448. move.w (a1)+,(a2)+
  449. move.l (a1)+,(a2)+
  450. addq.w #4,a2
  451. dbf d1,initloop
  452. moveq #0,d2
  453. move.l a0,d1
  454. add.l 32(a0),d1
  455. sub.l #WAVEFORMS,d1
  456. lea SOUNDINFO(pc),a0
  457. move.l d1,(a0)+
  458. moveq #9-1,d3
  459. initloop1:
  460. move.w (a0),d2
  461. add.l d2,d1
  462. add.l d2,d1
  463. addq.w #6,a0
  464. move.l d1,(a0)+
  465. dbf d3,initloop1
  466.  
  467. move.l SEQpoint(pc),a0
  468. moveq #0,d2
  469. move.b 12(a0),d2        ;Get replay speed
  470. bne.s speedok
  471. move.b #3,d2            ;Set default speed
  472. speedok:
  473. move.w d2,respcnt        ;Init repspeed counter
  474. move.w d2,repspd
  475. INIT2:
  476. clr.w audtemp
  477. move.w #$000f,$dff096        ;Disable audio DMA
  478. move.w #$0780,$dff09a        ;Disable audio IRQ
  479. moveq #0,d7
  480. mulu #13,d0
  481. moveq #4-1,d6            ;Number of soundchannels-1
  482. lea V1data(pc),a0        ;Point to 1st voice data area
  483. lea silent(pc),a1
  484. lea o4a0c8(pc),a2
  485. initloop2:
  486. move.l a1,10(a0)
  487. move.l a1,18(a0)
  488. clr.l 14(a0)
  489. clr.b 45(a0)
  490. clr.b 47(a0)
  491. clr.w 8(a0)
  492. clr.l 48(a0)
  493. move.b #$01,23(a0)
  494. move.b #$01,24(a0)
  495. clr.b 25(a0)
  496. clr.l 26(a0)
  497. clr.w 30(a0)
  498. moveq #$00,d3
  499. move.w (a2)+,d1
  500. move.w (a2)+,d3
  501. divu #$0003,d3
  502. move.b d3,32(a0)
  503. mulu #$0003,d3
  504. andi.l #$00ff,d3
  505. andi.l #$00ff,d1
  506. addi.l #$dff0a0,d1
  507. move.l d1,a6
  508. move.l #$0000,(a6)
  509. move.w #$0100,4(a6)
  510. move.w #$0000,6(a6)
  511. move.w #$0000,8(a6)
  512. move.l d1,60(a0)
  513. clr.w 64(a0)
  514. move.l SEQpoint(pc),(a0)
  515. move.l SEQpoint(pc),52(a0)
  516. add.l d0,52(a0)
  517. add.l d3,52(a0)
  518. add.l d7,(a0)
  519. add.l d3,(a0)
  520. move.w #$000d,6(a0)
  521. move.l (a0),a3
  522. move.b (a3),d1
  523. andi.l #$00ff,d1
  524. lsl.w #6,d1
  525. move.l PATpoint(pc),a4
  526. adda.w d1,a4
  527. move.l a4,34(a0)
  528. clr.l 38(a0)
  529. move.b #$01,33(a0)
  530. move.b #$02,42(a0)
  531. move.b 1(a3),44(a0)
  532. move.b 2(a3),22(a0)
  533. clr.b 43(a0)
  534. clr.b 45(a0)
  535. clr.w 56(a0)
  536. adda.w #$004a,a0    ;Point to next voice's data area
  537. dbf d6,initloop2
  538. rts
  539.  
  540.  
  541. PLAY:
  542. lea pervol(pc),a6
  543. tst.w onoff
  544. bne.s music_on
  545. rts
  546. music_on:
  547. subq.w #1,respcnt        ;Decrease replayspeed counter
  548. bne.s nonewnote
  549. move.w repspd(pc),respcnt    ;Restore replayspeed counter
  550. lea V1data(pc),a0        ;Point to voice1 data area
  551. bsr.L new_note
  552. lea V2data(pc),a0        ;Point to voice2 data area
  553. bsr.L new_note
  554. lea V3data(pc),a0        ;Point to voice3 data area
  555. bsr.L new_note
  556. lea V4data(pc),a0        ;Point to voice4 data area
  557. bsr.L new_note
  558. nonewnote:
  559. clr.w audtemp
  560. lea V1data(pc),a0
  561. bsr.L effects
  562. move.w d0,(a6)+
  563. move.w d1,(a6)+
  564. lea V2data(pc),a0
  565. bsr.L effects
  566. move.w d0,(a6)+
  567. move.w d1,(a6)+
  568. lea V3data(pc),a0
  569. bsr.L effects
  570. move.w d0,(a6)+
  571. move.w d1,(a6)+
  572. lea V4data(pc),a0
  573. bsr.L effects
  574. move.w d0,(a6)+
  575. move.w d1,(a6)+
  576. lea pervol(pc),a6
  577. move.w audtemp(pc),d0
  578. ori.w #$8000,d0            ;Set/clr bit = 1
  579. move.w d0,-(a7)
  580. moveq #0,d1
  581. move.l start1(pc),d2        ;Get samplepointers
  582. move.w offset1(pc),d1        ;Get offset
  583. add.l d1,d2            ;Add offset
  584. move.l start2(pc),d3
  585. move.w offset2(pc),d1
  586. add.l d1,d3
  587. move.l start3(pc),d4
  588. move.w offset3(pc),d1
  589. add.l d1,d4
  590. move.l start4(pc),d5
  591. move.w offset4(pc),d1
  592. add.l d1,d5
  593. move.w ssize1(pc),d0        ;Get sound lengths
  594. move.w ssize2(pc),d1
  595. move.w ssize3(pc),d6
  596. move.w ssize4(pc),d7
  597. move.w (a7)+,$dff096        ;Enable audio DMA
  598. chan1:
  599. lea V1data(pc),a0
  600. tst.w 72(a0)
  601. beq.l chan2
  602. subq.w #1,72(a0)
  603. cmpi.w #1,72(a0)
  604. bne.s chan2
  605. clr.w 72(a0)
  606. move.l d2,$dff0a0        ;Set soundstart
  607. move.w d0,$dff0a4        ;Set soundlength
  608. chan2:
  609. lea V2data(pc),a0
  610. tst.w 72(a0)
  611. beq.s chan3
  612. subq.w #1,72(a0)
  613. cmpi.w #1,72(a0)
  614. bne.s chan3
  615. clr.w 72(a0)
  616. move.l d3,$dff0b0
  617. move.w d1,$dff0b4
  618. chan3:
  619. lea V3data(pc),a0
  620. tst.w 72(a0)
  621. beq.s chan4
  622. subq.w #1,72(a0)
  623. cmpi.w #1,72(a0)
  624. bne.s chan4
  625. clr.w 72(a0)
  626. move.l d4,$dff0c0
  627. move.w d6,$dff0c4
  628. chan4:
  629. lea V4data(pc),a0
  630. tst.w 72(a0)
  631. beq.s setpervol
  632. subq.w #1,72(a0)
  633. cmpi.w #1,72(a0)
  634. bne.s setpervol
  635. clr.w 72(a0)
  636. move.l d5,$dff0d0
  637. move.w d7,$dff0d4
  638. setpervol:
  639. lea $dff0a6,a5
  640. move.w (a6)+,(a5)    ;Set period
  641. move.w (a6)+,2(a5)    ;Set volume
  642. move.w (a6)+,16(a5)
  643. move.w (a6)+,18(a5)
  644. move.w (a6)+,32(a5)
  645. move.w (a6)+,34(a5)
  646. move.w (a6)+,48(a5)
  647. move.w (a6)+,50(a5)
  648. rts
  649.  
  650. NEW_NOTE:
  651. moveq #0,d5
  652. move.l 34(a0),a1
  653. adda.w 40(a0),a1
  654. cmp.w #64,40(a0)
  655. bne.s samepat
  656. move.l (a0),a2
  657. adda.w 6(a0),a2        ;Point to next sequence row
  658. cmpa.l 52(a0),a2    ;Is it the end?
  659. bne.s notend
  660. move.w d5,6(a0)        ;yes!
  661. move.l (a0),a2        ;Point to first sequence
  662. notend:
  663. moveq #0,d1
  664. addq.b #1,spdtemp
  665. cmpi.b #4,spdtemp
  666. bne.s nonewspd
  667. move.b d5,spdtemp
  668. move.b -1(a1),d1    ;Get new replay speed
  669. beq.s nonewspd
  670. move.w d1,respcnt    ;store in counter
  671. move.w d1,repspd
  672. nonewspd:
  673. move.b (a2),d1        ;Pattern to play
  674. move.b 1(a2),44(a0)    ;Transpose value
  675. move.b 2(a2),22(a0)    ;Soundtranspose value
  676.  
  677. move.w d5,40(a0)
  678. lsl.w #6,d1
  679. add.l PATpoint(pc),d1    ;Get pattern pointer
  680. move.l d1,34(a0)
  681. addi.w #$000d,6(a0)
  682. move.l d1,a1
  683. samepat:
  684. move.b 1(a1),d1        ;Get info byte
  685. move.b (a1)+,d0        ;Get note
  686. bne.s ww1
  687. andi.w #%11000000,d1
  688. beq.s noport
  689. bra.s ww11
  690. ww1:
  691. move.w d5,56(a0)
  692. ww11:
  693. move.b d5,47(a0)
  694. move.b (a1),31(a0)
  695.  
  696.         ;31(a0) = PORTAMENTO/INSTR. info
  697.             ;Bit 7 = portamento on
  698.             ;Bit 6 = portamento off
  699.             ;Bit 5-0 = instrument number
  700.         ;47(a0) = portamento value
  701.             ;Bit 7-5 = always zero
  702.             ;Bit 4 = up/down
  703.             ;Bit 3-0 = value
  704. t_porton:
  705. btst #7,d1
  706. beq.s noport
  707. move.b 2(a1),47(a0)    
  708. noport:
  709. andi.w #$007f,d0
  710. beq.s nextnote
  711. move.b d0,8(a0)
  712. move.b (a1),9(a0)
  713. move.b 32(a0),d2
  714. moveq #0,d3
  715. bset d2,d3
  716. or.w d3,audtemp
  717. move.w d3,$dff096
  718. move.b (a1),d1
  719. andi.w #$003f,d1    ;Max 64 instruments
  720. add.b 22(a0),d1
  721. move.l VOLpoint(pc),a2
  722. lsl.w #6,d1
  723. adda.w d1,a2
  724. move.w d5,16(a0)
  725. move.b (a2),23(a0)
  726. move.b (a2)+,24(a0)
  727. move.b (a2)+,d1
  728. andi.w #$00ff,d1
  729. move.b (a2)+,27(a0)
  730. move.b #$40,46(a0)
  731. move.b (a2)+,d0
  732. move.b d0,28(a0)
  733. move.b d0,29(a0)
  734. move.b (a2)+,30(a0)
  735. move.l a2,10(a0)
  736. move.l FRQpoint(pc),a2
  737. lsl.w #6,d1
  738. adda.w d1,a2
  739. move.l a2,18(a0)
  740. move.w d5,50(a0)
  741. move.b d5,26(a0)
  742. move.b d5,25(a0)
  743. nextnote:
  744. addq.w #2,40(a0)
  745. rts
  746.  
  747. EFFECTS:
  748. moveq #0,d7
  749. testsustain:
  750. tst.b 26(a0)        ;Is sustain counter = 0
  751. beq.s sustzero
  752. subq.b #1,26(a0)    ;if no, decrease counter
  753. bra.L VOLUfx
  754. sustzero:        ;Next part of effect sequence
  755. move.l 18(a0),a1    ;can be executed now.
  756. adda.w 50(a0),a1
  757. testeffects:
  758. cmpi.b #$e1,(a1)    ;E1 = end of FREQseq sequence
  759. beq.L VOLUfx
  760. cmpi.b #$e0,(a1)    ;E0 = loop to other part of sequence
  761. bne.s testnewsound
  762. move.b 1(a1),d0        ;loop to start of sequence + 1(a1)
  763. andi.w #$003f,d0
  764. move.w d0,50(a0)
  765. move.l 18(a0),a1
  766. adda.w d0,a1
  767. testnewsound:
  768. cmpi.b #$e2,(a1)    ;E2 = set waveform
  769. bne.s o49c64
  770. moveq #0,d0
  771. moveq #0,d1
  772. move.b 32(a0),d1
  773. bset d1,d0
  774. or.w d0,audtemp
  775. move.w d0,$dff096
  776. move.b 1(a1),d0
  777. andi.w #$00ff,d0
  778. lea SOUNDINFO(pc),a4
  779. add.w d0,d0
  780. move.w d0,d1
  781. add.w d1,d1
  782. add.w d1,d1
  783. add.w d1,d0
  784. adda.w d0,a4
  785. move.l 60(a0),a3
  786. move.l (a4),d1
  787. add.l #WAVEFORMS,d1
  788. move.l d1,(a3)
  789. move.l d1,68(a0)
  790. move.w 4(a4),4(a3)
  791. move.l 6(a4),64(a0)
  792. swap d1
  793. move.w #$0003,72(a0)
  794. tst.w d1
  795. bne.s o49c52
  796. move.w #$0002,72(a0)
  797. o49c52:
  798. clr.w 16(a0)
  799. move.b #$01,23(a0)
  800. addq.w #2,50(a0)
  801. bra.L o49d02
  802. o49c64:
  803. cmpi.b #$e4,(a1)
  804. bne.s testpatjmp
  805. move.b 1(a1),d0
  806. andi.w #$00ff,d0
  807. lea SOUNDINFO(pc),a4
  808. add.w d0,d0
  809. move.w d0,d1
  810. add.w d1,d1
  811. add.w d1,d1
  812. add.w d1,d0
  813. adda.w d0,a4
  814. move.l 60(a0),a3
  815. move.l (a4),d1
  816. add.l #WAVEFORMS,d1
  817. move.l d1,(a3)
  818. move.l d1,68(a0)
  819. move.w 4(a4),4(a3)
  820. move.l 6(a4),64(a0)
  821.  
  822. swap d1
  823. move.w #$0003,72(a0)
  824. tst.w d1
  825. bne.s o49cae
  826. move.w #$0002,72(a0)
  827. o49cae:
  828. addq.w #2,50(a0)
  829. bra.s o49d02
  830. testpatjmp:
  831. cmpi.b #$e7,(a1)
  832. bne.s testnewsustain
  833. move.b 1(a1),d0
  834. andi.w #$00ff,d0
  835. lsl.w #6,d0
  836. move.l FRQpoint(pc),a1
  837. adda.w d0,a1
  838. move.l a1,18(a0)
  839. move.w d7,50(a0)
  840. bra.L testeffects
  841. testnewsustain:
  842. cmpi.b #$e8,(a1)    ;E8 = set sustain time
  843. bne.s o49cea
  844. move.b 1(a1),26(a0)
  845. addq.w #2,50(a0)
  846. bra.L testsustain
  847. o49cea:
  848. cmpi.b #$e3,(a1)
  849. bne.s o49d02
  850. addq.w #3,50(a0)
  851. move.b 1(a1),27(a0)
  852. move.b 2(a1),28(a0)
  853. o49d02:
  854. move.l 18(a0),a1
  855. adda.w 50(a0),a1
  856. move.b (a1),43(a0)
  857. addq.w #1,50(a0)
  858. VOLUfx:
  859. tst.b 25(a0)
  860. beq.s o49d1e
  861. subq.b #1,25(a0)
  862. bra.s o49d70
  863. o49d1e:
  864. subq.b #1,23(a0)
  865. bne.s o49d70
  866. move.b 24(a0),23(a0)
  867. o49d2a:
  868. move.l 10(a0),a1
  869. adda.w 16(a0),a1
  870. move.b (a1),d0
  871. cmpi.b #$e8,d0
  872. bne.s o49d4a
  873. addq.w #2,16(a0)
  874. move.b 1(a1),25(a0)
  875. bra.s VOLUfx
  876. o49d4a:
  877. cmpi.b #$e1,d0
  878. beq.s o49d70
  879. cmpi.b #$e0,d0
  880. bne.s o49d68
  881. move.b 1(a1),d0
  882. andi.l #$003f,d0
  883. subq.b #5,d0
  884. move.w d0,16(a0)
  885. bra.s o49d2a
  886. o49d68:
  887. move.b (a1),45(a0)
  888. addq.w #1,16(a0)
  889. o49d70:
  890. move.b 43(a0),d0
  891. bmi.s o49d7e
  892. add.b 8(a0),d0
  893. add.b 44(a0),d0
  894. o49d7e:
  895. andi.w #$007f,d0
  896. lea PERIODS(pc),a1
  897. add.w d0,d0
  898. move.w d0,d1
  899. adda.w d0,a1
  900. move.w (a1),d0
  901. move.b 46(a0),d7
  902. tst.b 30(a0)
  903. beq.s o49d9e
  904. subq.b #1,30(a0)
  905.  
  906. bra.s o49df4
  907. o49d9e:
  908. move.b d1,d5
  909. move.b 28(a0),d4
  910. add.b d4,d4
  911. move.b 29(a0),d1
  912. tst.b d7
  913. bpl.s o49db4
  914. btst #0,d7
  915. bne.s o49dda
  916. o49db4:
  917. btst #5,d7
  918. bne.s o49dc8
  919. sub.b 27(a0),d1
  920. bcc.s o49dd6
  921. bset #5,d7
  922. moveq #0,d1
  923. bra.s o49dd6
  924. o49dc8:
  925. add.b 27(a0),d1
  926. cmp.b d4,d1
  927. bcs.s o49dd6
  928. bclr #5,d7
  929. move.b d4,d1
  930. o49dd6:
  931. move.b d1,29(a0)
  932. o49dda:
  933. lsr.b #1,d4
  934. sub.b d4,d1
  935. bcc.s o49de4
  936. subi.w #$0100,d1
  937. o49de4:
  938. addi.b #$a0,d5
  939. bcs.s o49df2
  940. o49dea:
  941. add.w d1,d1
  942. addi.b #$18,d5
  943. bcc.s o49dea
  944. o49df2:
  945. add.w d1,d0
  946. o49df4:
  947. eori.b #$01,d7
  948. move.b d7,46(a0)
  949.  
  950. ; DO THE PORTAMENTO THING
  951. moveq #0,d1
  952. move.b 47(a0),d1    ;get portavalue
  953. beq.s a56d0        ;0=no portamento
  954. cmpi.b #$1f,d1
  955. bls.s portaup
  956. portadown: 
  957. andi.w #$1f,d1
  958. neg.w d1
  959. portaup:
  960. sub.w d1,56(a0)
  961. a56d0:
  962. add.w 56(a0),d0
  963. o49e3e:
  964. cmpi.w #$0070,d0
  965. bhi.s nn1
  966. move.w #$0071,d0
  967. nn1:
  968. cmpi.w #$06b0,d0
  969. bls.s nn2
  970. move.w #$06b0,d0
  971. nn2:
  972. moveq #0,d1
  973. move.b 45(a0),d1
  974. rts
  975.  
  976.  
  977.  
  978. pervol: blk.b 16,0    ;Periods & Volumes temp. store
  979. respcnt: dc.w 0        ;Replay speed counter 
  980. repspd:  dc.w 0        ;Replay speed counter temp
  981. onoff:   dc.w 0        ;Music on/off flag.
  982. firseq:     dc.w 0        ;First sequence
  983. lasseq:     dc.w 0        ;Last sequence
  984. audtemp: dc.w 0
  985. spdtemp: dc.w 0
  986.  
  987. V1data:  blk.b 64,0    ;Voice 1 data area
  988. offset1: blk.b 02,0    ;Is added to start of sound
  989. ssize1:  blk.b 02,0    ;Length of sound
  990. start1:  blk.b 06,0    ;Start of sound
  991.  
  992. V2data:  blk.b 64,0    ;Voice 2 data area
  993. offset2: blk.b 02,0
  994. ssize2:  blk.b 02,0
  995. start2:  blk.b 06,0
  996.  
  997. V3data:  blk.b 64,0    ;Voice 3 data area
  998. offset3: blk.b 02,0
  999. ssize3:  blk.b 02,0
  1000. start3:  blk.b 06,0
  1001.  
  1002. V4data:  blk.b 64,0    ;Voice 4 data area
  1003. offset4: blk.b 02,0
  1004. ssize4:  blk.b 02,0
  1005. start4:  blk.b 06,0
  1006.  
  1007. o4a0c8: dc.l $00000000,$00100003,$00200006,$00300009
  1008. SEQpoint: dc.l 0
  1009. PATpoint: dc.l 0
  1010. FRQpoint: dc.l 0
  1011. VOLpoint: dc.l 0
  1012.  
  1013.  
  1014. even
  1015. SILENT: dc.w $0100,$0000,$0000,$00e1
  1016.  
  1017. PERIODS:dc.w $06b0,$0650,$05f4,$05a0,$054c,$0500,$04b8,$0474
  1018.     dc.w $0434,$03f8,$03c0,$038a,$0358,$0328,$02fa,$02d0
  1019.     dc.w $02a6,$0280,$025c,$023a,$021a,$01fc,$01e0,$01c5
  1020.     dc.w $01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d
  1021.     dc.w $010d,$00fe,$00f0,$00e2,$00d6,$00ca,$00be,$00b4
  1022.     dc.w $00aa,$00a0,$0097,$008f,$0087,$007f,$0078,$0071
  1023.     dc.w $0071,$0071,$0071,$0071,$0071,$0071,$0071,$0071
  1024.     dc.w $0071,$0071,$0071,$0071,$0d60,$0ca0,$0be8,$0b40
  1025.     dc.w $0a98,$0a00,$0970,$08e8,$0868,$07f0,$0780,$0714
  1026.     dc.w $1ac0,$1940,$17d0,$1680,$1530,$1400,$12e0,$11d0
  1027.     dc.w $10d0,$0fe0,$0f00,$0e28
  1028.  
  1029. SOUNDINFO:
  1030. ;Offset.l , Sound-length.w , Start-offset.w , Repeat-length.w 
  1031.  
  1032. ;Reserved for samples
  1033.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1034.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1035.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1036.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1037.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1038.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1039.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1040.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1041.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1042.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1043. ;Reserved for synth sounds
  1044.     dc.w $0000,$0000 ,$0010 ,$0000 ,$0010 
  1045.     dc.w $0000,$0020 ,$0010 ,$0000 ,$0010 
  1046.     dc.w $0000,$0040 ,$0010 ,$0000 ,$0010 
  1047.     dc.w $0000,$0060 ,$0010 ,$0000 ,$0010 
  1048.     dc.w $0000,$0080 ,$0010 ,$0000 ,$0010 
  1049.     dc.w $0000,$00a0 ,$0010 ,$0000 ,$0010 
  1050.     dc.w $0000,$00c0 ,$0010 ,$0000 ,$0010 
  1051.     dc.w $0000,$00e0 ,$0010 ,$0000 ,$0010 
  1052.     dc.w $0000,$0100 ,$0010 ,$0000 ,$0010 
  1053.     dc.w $0000,$0120 ,$0010 ,$0000 ,$0010 
  1054.     dc.w $0000,$0140 ,$0010 ,$0000 ,$0010 
  1055.     dc.w $0000,$0160 ,$0010 ,$0000 ,$0010 
  1056.     dc.w $0000,$0180 ,$0010 ,$0000 ,$0010 
  1057.     dc.w $0000,$01a0 ,$0010 ,$0000 ,$0010 
  1058.     dc.w $0000,$01c0 ,$0010 ,$0000 ,$0010 
  1059.     dc.w $0000,$01e0 ,$0010 ,$0000 ,$0010 
  1060.     dc.w $0000,$0200 ,$0010 ,$0000 ,$0010 
  1061.     dc.w $0000,$0220 ,$0010 ,$0000 ,$0010 
  1062.     dc.w $0000,$0240 ,$0010 ,$0000 ,$0010 
  1063.     dc.w $0000,$0260 ,$0010 ,$0000 ,$0010 
  1064.     dc.w $0000,$0280 ,$0010 ,$0000 ,$0010 
  1065.     dc.w $0000,$02a0 ,$0010 ,$0000 ,$0010 
  1066.     dc.w $0000,$02c0 ,$0010 ,$0000 ,$0010 
  1067.     dc.w $0000,$02e0 ,$0010 ,$0000 ,$0010 
  1068.     dc.w $0000,$0300 ,$0010 ,$0000 ,$0010 
  1069.     dc.w $0000,$0320 ,$0010 ,$0000 ,$0010 
  1070.     dc.w $0000,$0340 ,$0010 ,$0000 ,$0010 
  1071.     dc.w $0000,$0360 ,$0010 ,$0000 ,$0010 
  1072.     dc.w $0000,$0380 ,$0010 ,$0000 ,$0010 
  1073.     dc.w $0000,$03a0 ,$0010 ,$0000 ,$0010 
  1074.     dc.w $0000,$03c0 ,$0010 ,$0000 ,$0010 
  1075.     dc.w $0000,$03e0 ,$0010 ,$0000 ,$0010 
  1076.     dc.w $0000,$0400 ,$0008 ,$0000 ,$0008 
  1077.     dc.w $0000,$0410 ,$0008 ,$0000 ,$0008 
  1078.     dc.w $0000,$0420 ,$0008 ,$0000 ,$0008 
  1079.     dc.w $0000,$0430 ,$0008 ,$0000 ,$0008 
  1080.     dc.w $0000,$0440 ,$0008 ,$0000 ,$0008
  1081.     dc.w $0000,$0450 ,$0008 ,$0000 ,$0008
  1082.     dc.w $0000,$0460 ,$0008 ,$0000 ,$0008
  1083.     dc.w $0000,$0470 ,$0008 ,$0000 ,$0008
  1084.     dc.w $0000,$0480 ,$0010 ,$0000 ,$0010
  1085.     dc.w $0000,$04a0 ,$0008 ,$0000 ,$0008
  1086.     dc.w $0000,$04b0 ,$0010 ,$0000 ,$0010
  1087.     dc.w $0000,$04d0 ,$0010 ,$0000 ,$0010
  1088.     dc.w $0000,$04f0 ,$0008 ,$0000 ,$0008
  1089.     dc.w $0000,$0500 ,$0008 ,$0000 ,$0008
  1090.     dc.w $0000,$0510 ,$0018 ,$0000 ,$0018
  1091.  
  1092.  
  1093. WAVEFORMS:
  1094. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1095. dc.w $3f37,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1096. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1097. dc.w $c037,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1098. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1099. dc.w $c0b8,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1100. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1101. dc.w $c0b8,$b027,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1102. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1103. dc.w $c0b8,$b0a8,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1104. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1105. dc.w $c0b8,$b0a8,$a017,$0f07,$ff07,$0f17,$1f27,$2f37
  1106. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1107. dc.w $c0b8,$b0a8,$a098,$0f07,$ff07,$0f17,$1f27,$2f37
  1108. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1109. dc.w $c0b8,$b0a8,$a098,$9007,$ff07,$0f17,$1f27,$2f37
  1110. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1111. dc.w $c0b8,$b0a8,$a098,$9088,$ff07,$0f17,$1f27,$2f37
  1112. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1113. dc.w $c0b8,$b0a8,$a098,$9088,$8007,$0f17,$1f27,$2f37
  1114. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1115. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$0f17,$1f27,$2f37
  1116. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1117. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9017,$1f27,$2f37
  1118. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1119. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$1f27,$2f37
  1120. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1121. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a027,$2f37
  1122. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1123. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a0a8,$2f37
  1124. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1125. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a0a8,$b037
  1126. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1127. dc.w $7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1128. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1129. dc.w $817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1130. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1131. dc.w $8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1132. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1133. dc.w $8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1134. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1135. dc.w $8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1136. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1137. dc.w $8181,$8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1138. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1139. dc.w $8181,$8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1140. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1141. dc.w $8181,$8181,$8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f
  1142. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1143. dc.w $8181,$8181,$8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f
  1144. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1145. dc.w $8181,$8181,$8181,$8181,$817f,$7f7f,$7f7f,$7f7f
  1146. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1147. dc.w $8181,$8181,$8181,$8181,$8181,$7f7f,$7f7f,$7f7f
  1148. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1149. dc.w $8181,$8181,$8181,$8181,$8181,$817f,$7f7f,$7f7f
  1150. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1151. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$7f7f,$7f7f
  1152. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1153. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$817f,$7f7f
  1154. dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$8080
  1155. dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$7f7f
  1156. dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$8080
  1157. dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$807f
  1158. dc.w $8080,$8080,$8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f
  1159. dc.w $8080,$8080,$8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f
  1160. dc.w $8080,$8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1161. dc.w $8080,$8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1162. dc.w $8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1163. dc.w $8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1164. dc.w $8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1165. dc.w $8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1166. dc.w $8080,$9098,$a0a8,$b0b8,$c0c8,$d0d8,$e0e8,$f0f8
  1167. dc.w $0008,$1018,$2028,$3038,$4048,$5058,$6068,$707f
  1168. dc.w $8080,$a0b0,$c0d0,$e0f0,$0010,$2030,$4050,$6070
  1169. dc.w $4545,$797d,$7a77,$7066,$6158,$534d,$2c20,$1812
  1170. dc.w $04db,$d3cd,$c6bc,$b5ae,$a8a3,$9d99,$938e,$8b8a
  1171. dc.w $4545,$797d,$7a77,$7066,$5b4b,$4337,$2c20,$1812
  1172. dc.w $04f8,$e8db,$cfc6,$beb0,$a8a4,$9e9a,$9594,$8d83
  1173. dc.w $0000,$4060,$7f60,$4020,$00e0,$c0a0,$80a0,$c0e0
  1174. dc.w $0000,$4060,$7f60,$4020,$00e0,$c0a0,$80a0,$c0e0
  1175. dc.w $8080,$9098,$a0a8,$b0b8,$c0c8,$d0d8,$e0e8,$f0f8
  1176. dc.w $0008,$1018,$2028,$3038,$4048,$5058,$6068,$707f
  1177. dc.w $8080,$a0b0,$c0d0,$e0f0,$0010,$2030,$4050,$6070
  1178. endif
  1179.  
  1180. ;******************************************************************
  1181. ;************** copper list ***************************************
  1182. ;******************************************************************
  1183. pxy:    dc.l    xy
  1184.  
  1185. new_copper:    dc.l    $1800000,$1820900,$1840900,$1860900    ;00
  1186.         dc.l    $1880c00,$18a0005,$18c0005,$18e0005    ;04
  1187.         dc.l    $1900000,$1920000,$1940000,$1960000    ;08
  1188.         dc.l    $1980000,$19a0000,$19c0000,$19e0000    ;12
  1189.         dc.l    $1a00000,$1a20000,$1a40000,$1a60000    ;16
  1190.         dc.l    $1a80000,$1aa0000,$1ac0000,$1ae0000    ;20
  1191.         dc.l    $1b00000,$1b20000,$1b40000,$1b60000    ;24
  1192.         dc.l    $1b80000,$1ba0000,$1bc0000,$1be0000    ;28
  1193. ;==================================================================
  1194.         dc.l    $08e2081,$09000d1,$0920028,$09400d8
  1195. ;        dc.l    $08e2081,$09020c1,$0920038,$09400d0
  1196.         dc.l    $09687f0,$0960020,$1003000,$1020000
  1197.         dc.l    $1040000,$1080002,$10a0002
  1198. ;==================================================================
  1199.         dc.w    $0e0,bp1/$ffff,$0e2,bp1
  1200.         dc.w    $e4,$6,$e6,$3000
  1201.         dc.w    $e8,$6,$ea,$6000
  1202.         dc.l    $1800000,$8801fffe
  1203. adr_bp_scr:    dc.w    $0e0,bp1a/$ffff,$0e2,bp1a
  1204.         dc.l    $1820330,$8801fffe
  1205.         dc.l    $1820440,$8a01fffe
  1206.         dc.l    $1820550,$8c01fffe
  1207.         dc.l    $1820660,$8e01fffe
  1208.         dc.l    $1820770,$9001fffe
  1209.         dc.l    $1820880,$9201fffe
  1210.         dc.l    $1820990,$9401fffe
  1211.         dc.l    $1820aa0,$9601fffe
  1212.         dc.l    $1820bb0,$9801fffe
  1213.         dc.l    $1820cc0,$9a01fffe
  1214.         dc.l    $1820dd0,$9c01fffe
  1215.         dc.l    $1820ee0,$9e01fffe
  1216.         dc.l    $1820ff0,$a001fffe
  1217.         dc.l    $1820ff1,$1800001,$a201fffe
  1218.         dc.l    $1820fe2,$1800002,$a701fffe
  1219.         dc.l    $1820fd3,$1800003,$ac01fffe
  1220.         dc.l    $1820fc4,$1800004,$b001fffe
  1221.         dc.l    $1820fb5,$1800005,$b401fffe
  1222.         dc.l    $1820fa6,$1800006,$b801fffe
  1223.         dc.l    $1820f97,$1800007,$bb01fffe
  1224.         dc.l    $1820f88,$1800008,$be01fffe
  1225.         dc.l    $1820f79,$1800009,$c101fffe
  1226.         dc.l    $1820f6a,$180000a,$c301fffe
  1227.         dc.l    $1820f5b,$180000b,$c501fffe
  1228.         dc.l    $1820f4c,$180000c,$c601fffe
  1229.         dc.l    $1820f3d,$180000d,$c701fffe
  1230.         dc.l    $1820f2e,$180000e,$c801fffe
  1231.         dc.l    $1820f1f,$180000f,$c901fffe
  1232.         dc.l    $1820f1f,$180001f,$ca01fffe
  1233.         dc.l    $1820f2f,$180002f,$cb01fffe
  1234.         dc.l    $1820f3f,$180003f,$cc01fffe
  1235.         dc.l    $1820f4f,$180004f,$cd01fffe
  1236.         dc.l    $1820f5f,$180005f,$ce01fffe
  1237.         dc.l    $1820f6f,$180006f,$cf01fffe
  1238.         dc.l    $1820f7f,$180007f,$d001fffe
  1239.         dc.l    $1820f8f,$180008f,$d101fffe
  1240.         dc.l    $1820f9f,$180009f,$d201fffe
  1241.         dc.l    $1820faf,$18000af,$d301fffe
  1242.         dc.l    $1820fbf,$18000bf,$d401fffe
  1243.         dc.l    $1820fcf,$18000cf,$d501fffe
  1244.         dc.l    $1820fdf,$18000df,$d601fffe
  1245.         dc.l    $1820fef,$18000ef,$d7dffffe
  1246.         dc.l    $1820fff,$18000ff,$d801fffe
  1247.         dc.b    $20+scry+16+64,$01,$ff,$fe
  1248.         dc.w    $108,-48*2-46,$10a,-48*2-46
  1249.         dc.l    $1820888,$1800088,$da01fffe
  1250.         dc.l    $1820878,$1800078,$dc01fffe
  1251.         dc.l    $1820868,$1800068,$de01fffe
  1252.         dc.l    $1820858,$1800058,$e001fffe
  1253.         dc.l    $1820848,$1800048,$e201fffe
  1254.         dc.l    $1820838,$1800038,$e401fffe
  1255.         dc.l    $1820828,$1800028,$e601fffe
  1256.         dc.l    $1820818,$1800018,$e701fffe
  1257.         dc.l    $1820808,$1800008,$ea01fffe
  1258.         dc.l    $1820707,$1800007,$ec01fffe
  1259.         dc.l    $1820606,$1800006,$ee01fffe
  1260.         dc.l    $1820505,$1800005,$f101fffe
  1261.         dc.l    $1820404,$1800004,$f401fffe
  1262.         dc.l    $1820303,$1800003,$f701fffe
  1263.         dc.l    $1820202,$1800002,$fb01fffe
  1264.         dc.l    $1820101,$1800001,$ff01fffe
  1265.         dc.l    $1820000,$1800000
  1266.         dc.l    -2
  1267.  
  1268. ;******************************************************************
  1269. ;************** donnees divers ************************************
  1270. ;******************************************************************
  1271.  
  1272. gfxn:        dc.b    'graphics.library',0
  1273. posx:        dc.b    0
  1274. posy:        dc.b    0
  1275. ;==================================================================
  1276.         even
  1277. bp_scr:        dc.l    bp1a+$10000
  1278. vit:        dc.w    $78
  1279. pas:        dc.w    $42
  1280. pos_sin:    dc.w    0
  1281.  
  1282. ;******************************************************************
  1283. ;************** donnees scroll ************************************
  1284. ;******************************************************************
  1285.  
  1286.         even
  1287. compt:        dc.l    scrtxt
  1288. nb_scr:        dc.b    4
  1289. tps_scr:    dc.b    0
  1290. ;==================================================================
  1291.         even
  1292. adr_font:    dc.l    li1+00,li1+02,li1+04,li1+06,li1+08
  1293.         dc.l    li1+10,li1+12,li1+14,li1+16,li1+18
  1294.         dc.l    li1+20,li1+22,li1+24,li1+26,li1+28
  1295.         dc.l    li1+30,li1+32,li1+34,li1+36,li1+38
  1296.         dc.l    li2+00,li2+02,li2+04,li2+06,li2+08
  1297.         dc.l    li2+10,li2+12,li2+14,li2+16,li2+18
  1298.         dc.l    li2+20,li2+22,li2+24,li2+26,li2+28
  1299.         dc.l    li2+30,li2+32,li2+34,li2+36,li2+38
  1300.         dc.l    li3+00,li3+02,li3+04,li3+06,li3+08
  1301.         dc.l    li3+10,li3+12,li3+14,li3+16,li3+18
  1302.         dc.l    li3+20,li3+22,li3+24,li3+26,li3+28
  1303.         dc.l    li3+30,li3+32,li3+34,li3+36,li3+38
  1304. ordre:        dc.b    'abcdefghijklmnopqrst'
  1305.         dc.b    'uvwxyz1234567890/()-'
  1306.         dc.b    '.,:!* _@"?'
  1307. ;==================================================================
  1308. ;@    = carre
  1309. ;_    = barre
  1310. ;==================================================================
  1311. scrtxt:        dc.b    '( just try cursor keys )                '
  1312.         dc.b    '_@_@_@_ angels _@_@_@_A      '
  1313.         dc.b    'proudly present you a new crack called '
  1314.         dc.b    'sly spy from ocean.  '
  1315.         dc.b    'call our whq amiga east in states at: '
  1316.         dc.b    '*** 804-499-22-66 ***A      '
  1317.         dc.b    'digital expressions in states at : '
  1318.         dc.b    '*** 813-884-04-64 ***A      '    
  1319.         dc.b    'wreck house in states at : '
  1320.         dc.b    '*** 813-584-60-89 ***A      '
  1321.         dc.b     'escape zone in states at : '
  1322.         dc.b    '*** 704-254-64-48 ***A      '
  1323.         dc.b    'ehq insider bbs in italy at : '
  1324.         dc.b    '*** 39-564-415-697 ***A     '
  1325.         dc.b    'innerspace in swiss at: '
  1326.         dc.b    '*** 41-619-618-03 ***A         '    
  1327.         dc.b    'reign in blood in germany at: '
  1328.         dc.b    '*** 49-203-406-0981 ***A    '
  1329.         dc.b    'the dutch pirate bbs in holland at: '
  1330.         dc.b    '*** 31-011-723-666 ***A     '
  1331.         dc.b    'if you have no modem write to :       '
  1332.         dc.b    'no name bp 10    A 4504 obercorn    A'
  1333.         dc.b     '  luxemburg       A '
  1334.         dc.b    'no name bp 3     A 6040 jumet       A'
  1335.         dc.b    '   belgium        A '
  1336.         dc.b    'paradise greetings to all our friends qnd contacts ' 
  1337.         dc.b    'watch out for more and more production of '
  1338.          dc.b    'angels ...................................'
  1339.         dc.b    '                  ',0
  1340.  
  1341. ;******************************************************************
  1342. ;************** donnees finales ***********************************
  1343. ;******************************************************************
  1344.  
  1345.         even
  1346. font:        blk.b    1920
  1347. li1:        = font
  1348. li2:        = li1+[40*16]
  1349. li3:        = li2+[40*16]
  1350. sin:        blk.b    8192
  1351. xy:        blk.b    1260
  1352. findata:
  1353. logoo:        blk.b    3120
  1354. module:
  1355. end:        = module+[6378*music] +4 & -4
  1356. sin2:        = end
  1357. * END *
  1358.     ori.w    #208/16,d0
  1359. rts
  1360.