home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / dema / droolthis / start_dema2.s < prev    next >
Text File  |  1997-04-08  |  92KB  |  5,004 lines

  1. ùúùúÿØOÿØOÿØOÿØOÿØOÿØOÿØOÿØOÿØOBlit:    macro
  2.     btst    #14,2(a6)
  3.     dc.w    $66f8
  4.     endm
  5.  
  6. ; FileFormat offsets
  7. sd_songname    EQU    0    ;songname offset
  8. sd_sampleinfo    EQU    20    ;first sample starts here
  9. sd_numofpatt    EQU    950    ;number of patterns are stored here
  10. sd_pattpos    EQU    952    ;pattern positions table is here
  11. sd_mahokakt    EQU    1080    ;"M.K." :)
  12. sd_patterndata    EQU    1084    ;first pattern starts at this position
  13.  
  14. ; Song offsets. W/L/B means word/longword/byte length.
  15. n_note        EQU    0      ;W
  16. n_cmd        EQU    2      ;W
  17. n_cmdlo        EQU    3      ;low B of cmd
  18. n_start        EQU    4      ;L
  19. n_length    EQU    8      ;W
  20. n_loopstart    EQU    10     ;L
  21. n_replen    EQU    14     ;W
  22. n_period    EQU    16     ;W
  23. n_finetune    EQU    18     ;B
  24. n_volume    EQU    19     ;B
  25. n_dmabit    EQU    20     ;W
  26. n_toneportdirec    EQU    22     ;B
  27. n_toneportspeed    EQU    23     ;B
  28. n_wantedperiod    EQU    24     ;W
  29. n_vibratocmd    EQU    26     ;B
  30. n_vibratopos    EQU    27     ;B
  31. n_tremolocmd    EQU    28     ;B
  32. n_tremolopos    EQU    29     ;B
  33. n_wavecontrol    EQU    30     ;B
  34. n_glissfunk    EQU    31     ;B
  35. n_sampleoffset    EQU    32     ;B
  36. n_pattpos    EQU    33     ;B
  37. n_loopcount    EQU    34     ;B
  38. n_funkoffset    EQU    35     ;B
  39. n_wavestart    EQU    36     ;L
  40. n_reallength    EQU    40     ;W
  41. n_trigger    EQU    42     ;B
  42. n_samplenum    EQU    43     ;B
  43.  
  44. _LVOExec        =4
  45. _LVOOldOpenLib    =-408
  46. _LVOCloseLibrary    =-414
  47. _LVOOpenScreen    =-198
  48. _LVOCloseScreen    =-66
  49. _LVOOpenWindow    =-204
  50. _LVOCloseWindow    =-72
  51. _LVOAutoRequest    =-348
  52. _LVOWaitPort    =-384
  53. _LVOGetMsg        =-372
  54. _LVOText        =-60
  55. _LVOMove        =-240
  56. _LVOSetAPen        =-342
  57. _LVOOpenDiskFont    =-30
  58. _LVOOpenFont    =-72
  59. _LVOSetFont        =-66
  60. _LVOAskSoftStyle    =-84
  61. _LVOSetSoftStyle    =-90
  62. _LVOCloseFont    =-78
  63. _LVOPrintIText    =-216
  64. _LVOSetRGB4        =    -288
  65. _LVOGetRGB4        =    -582
  66. _LVOLoadRGB4        =    -192
  67. _LVOMoveScreen        =    -162
  68. _LVODeleteFile    =    -72
  69. _LVOOpen    =    -30
  70. _LVOClose    =    -36
  71. _LVORead    =    -42
  72. _LVOWrite    =    -48
  73. _LVOInput    =    -54
  74. _LVOOutput    =    -60
  75. _LVOSeek    =    -66
  76. _LVORename    =    -78
  77. _LVOLock    =    -84
  78. _LVOUnLock    =    -90
  79. _LVODupLock    =    -96
  80. _LVOExaminIVE    
  81. _LVOExNext    =    -108
  82. _LVOInfo    =    -114
  83. _LVOCreateDir    =    -120
  84. _LVOCurrentDir    =    -126
  85. _LVOIoErr    =    -132
  86. _LVOCreateProc    =    -138
  87. _LVOExit    =    -144
  88. _LVOLoadSeg    =    -150
  89. _LVOUnLoadSeg    =    -156
  90. _LVOGetPacket    =    -162
  91. _LVOQueuePacket    =    -168
  92. _LVODeviceProc    =    -174
  93. _LVOSetComment    =    -180
  94. _LVOSetProtection=    -186
  95. _LVODateStamp    =    -192
  96. _LVODelay    =    -198
  97. _LVOWaitForChar    =    -204
  98. _LVOParentDir    =    -210
  99. _LVOIsInteractive=    -216
  100. _LVOFreeMem    =    -$d2
  101. _LVOAllocMem    =    -$c6
  102. _LVOAcces_mode    =     -2
  103. _LVOOpenWorkBench=    -210
  104.  
  105.  
  106. WBENCHSCREEN    =    $0001
  107. CUSTOMSCREEN    =    $000F
  108. SHOWTITLE    =    $0010
  109. BEEPING        =    $0020
  110. CUSTOMBITMAP    =    $0040
  111. SCREENBEHIND    =    $0080
  112. SCREENQUIET    =    $0100
  113. STDSCREENHEIGHT    =    -1
  114.  
  115.  
  116.  
  117.  
  118. ILE_COLOROW=16
  119. CREDITS_MODULO_S=64
  120. CREDITS_MODULO_P=2
  121. ILE_KOPIUJ=64
  122. OFFSET1=-41
  123. OFFSET=198
  124. OFFSET2=240
  125. ILE_W_DOOL=4
  126. ILE_DODAC=OFFSET2*ILE_W_DOOL    ;-4
  127. ILE_ZOOM=3
  128. ODD=$FF-$25
  129. IL_LINI=$135-$25
  130. ILE_REZERWOWAC=IL_LINI*12+20
  131. ILE_SCROLUJ=1600
  132. ILEP=280000
  133.  
  134. ZOOOM    =    3
  135. WYS    =    71
  136.  
  137.     section code,code_c
  138.  
  139. STARTF1:
  140.  
  141.     move.l    #0000,$dff1fc
  142.     move.w    #$c00,$dff106
  143.  
  144.     move.l    #$180000,d0
  145.  
  146.     move.l    d0,ADRES_PAMIECI
  147.  
  148.     move.l    #ILEP,d7
  149.     move.l    ADRES_PAMIECI,a1
  150. BBBIII:
  151.     move.b    #$00,(a1)+
  152.     dbf    d7,BBBIII
  153.  
  154.     add.l    d0,PICTR1
  155.     add.l    d0,PICTR2
  156.     add.l    d0,PICTR3
  157.     add.l    d0,PICTR4
  158.  
  159.  
  160.     move.l    #picture+ILE_W_DOOL*40,a0
  161.     move.l    PICTR1,a1
  162.     add.l    #42,a1
  163.     jsr    x_zoom
  164.  
  165.     move.l    #picture+71*40+ILE_W_DOOL*40,a0
  166.     move.l    PICTR2,a1
  167.     add.l    #42,a1
  168.     jsr    x_zoom
  169.  
  170.     move.l    #picture+71*40+71*40+ILE_W_DOOL*40,a0
  171.     move.l    PICTR3,a1
  172.     add.l    #42,a1
  173.     jsr    x_zoom
  174.  
  175.     move.l    #picture+71*40+71*40+71*40+ILE_W_DOOL*40,a0
  176.     move.l    PICTR4,a1
  177.     add.l    #42,a1
  178.     jsr    x_zoom
  179.  
  180.  
  181.     move.l    ADRES_PAMIECI,d0
  182.     add.l    #80*1024,d0
  183.     move.l    d0,BUF1
  184.     add.l    d0,PICTR1K
  185.     add.l    d0,PICTR2K
  186.     add.l    d0,PICTR3K
  187.     move.l    d0,a0        ; Where decrunch it
  188.     move.l    #PICTUREKOLO,a1    ; What must be decrunch
  189.     jsr    DECRUNCH
  190.  
  191.     move.l    ADRES_PAMIECI,d0
  192.     add.l    #$3200*3,d0
  193.     add.l    #80*1024,d0
  194.     add.l    d0,creditsa
  195.     move.l    d0,a0        ; Where decrunch it
  196.     move.l    #CREDITS,a1    ; What must be decrunch
  197.     jsr    DECRUNCH
  198.  
  199.     move.l    ADRES_PAMIECI,d0
  200.     add.l    #$3200*3,d0
  201.     add.l    #80*1024,d0
  202.     add.l    #10000,d0
  203.  
  204.     move.l    d0,GET_C_COLORS_LIST
  205.     add.l    #34*4,d0
  206.     move.l    d0,GET_C_COLORS_LIST_BUF
  207.     add.l    #34*4,d0
  208.     move.l    d0,COLOR_WHITE
  209.     add.l    #100,d0
  210.     move.l    d0,TABLE_DRAW
  211.     add.l    #2000,d0
  212.     move.l    #SHADE_TABLE,a0
  213.     move.l    #E_SHADE_TABLE,a1
  214.     move.l    d0,(a0)+
  215.     move.l    d0,(a1)+
  216.     add.l    #$8000,d0
  217.     move.l    d0,(a0)+
  218.     move.l    d0,(a1)+
  219.     add.l    #$8000,d0
  220.     move.l    d0,(a0)+
  221.     move.l    d0,(a1)+
  222.     add.l    #$8000,d0
  223.     move.l    d0,(a0)+
  224.     move.l    d0,(a1)+
  225.     add.l    #$8000,d0
  226.     move.l    d0,(a0)+
  227.     move.l    d0,(a1)+
  228.     add.l    #$8000,d0
  229.  
  230.  
  231.  
  232.     bra    BLEF
  233.  
  234. X_ZOOM:
  235.     moveq    #0,d0
  236.     moveq    #0,d1
  237.     moveq    #0,d2
  238.     moveq    #0,d3
  239.     moveq    #0,d4
  240.     moveq    #0,d5
  241.     moveq    #0,d6
  242.     moveq    #0,d7
  243.     move.w    #15,d7
  244.     move.w    #$00008000,RORL
  245. X_ZOOM_LOOP_BPL1:
  246.     move.w    #ZOOOM,d6
  247. X_ZOOM_LOOP_BPL12:
  248.     add.w    #1,PUNKT
  249.  
  250.     jsr    WAIT_BLITTER
  251.     move.l    a0,$dff050
  252.     move.l    a1,d1
  253.  
  254.     move.w    PUNKT,d0
  255.     sub.w    ROLM,d0
  256.     And.w    #$fff0,d0
  257.     Lsr.w    #3,d0
  258.     Add.w    d0,d1
  259.     Add.l    #0,d1    
  260.  
  261.     move.l    d1,$dff054
  262.     move.l    d1,$dff04c
  263.     move.w    RORL,$dff044
  264.     move.w    #000,$dff046
  265.  
  266.     move.w    PUNKT,d0
  267.     sub.w    ROLM,d0
  268.     And.w    #$000f,d0
  269.     Lsl.w    #8,d0
  270.     Lsl.w    #4,d0
  271.     Or.w    #$0dfc,d0
  272.  
  273.     move.w    d0,$dff040
  274.     move.w    #0000,$dff042
  275.     move.w    #236,$dff062
  276.     move.w    #036,$dff064
  277.     move.w    #236,$dff066
  278.     move.w    #[WYS*64+2],$dff058
  279.  
  280.     btst #6,$bfe001
  281.     beq.w X_ZOOM_EXIT
  282.  
  283.     cmp.w    #320*4,PUNKT
  284.     bgt    X_ZOOM_EXIT
  285.  
  286. X_ZOMM:
  287.     dbf    d6,X_ZOOM_LOOP_BPL12
  288.     ror.w    #1,RORL
  289.     add.w    #1,ROLM
  290.     dbf    d7,X_ZOOM_LOOP_BPL1
  291.     add.l    #2,a0
  292.     move.w    #0,ROLM
  293.     move.w    #15,d7
  294.     move.w    #$0008000,RORL
  295.     bra    X_ZOOM_LOOP_BPL1
  296. X_ZOOM_EXIT:
  297.     move.w    #0,PUNKT
  298.     rts
  299. PUNKT:    dc.w    0
  300. RORL:    dc.l    0
  301. ROLM:    dc.w    0
  302.  
  303.  
  304. DECRUNCH:
  305.     clr.l    d0
  306.     clr.l    d1
  307.     clr.l    d2
  308.     clr.l    d3
  309.     clr.l    d4
  310.     clr.l    d5
  311.     clr.l    d6
  312.     clr.l    d7
  313.     move.l    (a1),d7
  314.     add.l    #4,a1
  315. DCR_LOOP:
  316.     clr.l    d0
  317.     move.b    (a1)+,d0
  318.     sub.l    #1,d7
  319.     tst.l    d7
  320.     beq    DCR_E
  321.     btst    #7,d0
  322.     bne    DCR_F1
  323.     move.b    (a1)+,d1
  324.     sub.l    #1,d7
  325. DCR_F:
  326.     move.b    d1,(a0)+
  327.     dbf    d0,DCR_F
  328.     tst.l    d7
  329.     beq    DCR_E
  330.     jmp    DCR_LOOP
  331. DCR_F1:
  332.     bclr    #7,d0
  333. DCR_F2:
  334.     move.b    (a1)+,(a0)+
  335.     sub.l    #1,d7
  336.     tst.l    d7
  337.     beq    DCR_E
  338.  
  339.     dbf    d0,DCR_F2
  340.     jmp    DCR_LOOP
  341. DCR_E:
  342.     rts
  343.  
  344.  
  345.  
  346.     ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  347.     ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  348.     ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  349.     ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  350.     ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  351.     ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  352.  
  353. BLEF:
  354.  
  355. POCZATEK:
  356.     lea     $dff000,a6        ; ZABICIE PRZERWAN
  357.      move.w  $1c(a6),Mem
  358.      move.w  $02(a6),Mem+2
  359.      or.l    #$80008000,Mem
  360.      move.w  #$7fff,$9a(a6)
  361.         jsr    pt_InitMusic
  362.         jsr    PRZERWANIE_INIT
  363.  
  364.  
  365.     move.l    _LVOExec,a6            ; exec do a6
  366.     lea    DosName(pc),a1    ; nazwa do a1
  367.     jsr    _LVOOldOpenLib(a6)        ; Open library
  368.     move.l    d0,DosBase        ; baza do bufora
  369.     beq    End
  370.  
  371.     move.l    _LVOExec,a6            ; exec do a6
  372.     lea    IntuiName(pc),a1    ; nazwa do a1
  373.     jsr    _LVOOldOpenLib(a6)        ; Open library
  374.     move.l    d0,IntuiBase        ; baza do bufora
  375.     beq    End
  376.  
  377.     move.l    _LVOExec,a6            ; exec do a6
  378.     lea    GraphName(pc),a1    ; nazwa do a1
  379.     jsr    _LVOOldOpenLib(a6)        ; Open library
  380.     move.l    d0,GraphBase        ; baza do bufora
  381.     beq    End
  382.  
  383.     move.l    IntuiBase(pc),a6
  384.     jsr    _LVOOpenWorkBench(a6)    
  385.     move.l    d0,WBHandle
  386.  
  387. ILE_COLORS=2    
  388.  
  389. GET_C_ILE_COLORS=32
  390.  
  391.     move.l    GET_C_COLORS_LIST,a5
  392.     move.l    GET_C_COLORS_LIST_BUF,a4
  393.     move.l    #GET_C_ILE_COLORS,d5
  394.  
  395. GET_C_COLORS_GET:
  396.     move.l    GraphBase,a6
  397.     move.l    WbHandle,a0
  398.     lea    $2c(a0),a0        ; Viev PORT
  399.     move.l    4(a0),a0
  400.     move.l    d5,d0            ; nr koloru
  401.  
  402.     move.l    #GET_C_ILE_COLORS,d3
  403.     sub.l    d0,d3
  404.     move.l    d3,d0
  405.     jsr    _LVOGetRGB4(a6)
  406.     move.w    d0,(a5)+
  407.     move.w    d0,(a4)+
  408.     dbf    d5,GET_C_COLORS_GET
  409.  
  410.     move.l    #16,d7
  411.  
  412. GET_C_MOUSE:
  413.  
  414.     move.l    GET_C_COLORS_LIST,a0 
  415.     move.l    COLOR_WHITE,a1
  416.     jsr    GET_C_FADE_PROCEDURE
  417.  
  418.     move.l    GraphBase,a6
  419.     move.l    WbHandle,a0
  420.     lea    $2c(a0),a0        ; Viev PORT
  421.     move.l    #GET_C_ILE_COLORS,d0            ; ilosc kolorow
  422.     move.l    GET_C_COLORS_LIST,a1
  423.     jsr    _LVOLoadRGB4(a6)
  424.  
  425.     jsr    WAIT255
  426.     jsr    WAIT255
  427.  
  428.     dbf    d7,GET_C_MOUSE
  429.  
  430.         
  431. BITPLANY:                ; organizacja bitplanow
  432.         move.l PICTR1,d0
  433.         move.w d0,BITPLAN1+2
  434.         swap d0
  435.         move.w d0,BITPLAN0+2
  436.         move.l PICTR2,d0
  437.         move.w d0,BITPLAN3+2
  438.         swap d0
  439.         move.w d0,BITPLAN2+2
  440.         move.l PICTR3,d0
  441.         move.w d0,BITPLAN5+2
  442.         swap d0
  443.         move.w d0,BITPLAN4+2
  444.         move.l PICTR4,d0
  445.         move.w d0,BITPLAN7+2
  446.         swap d0
  447.         move.w d0,BITPLAN6+2
  448.  
  449.         jsr    USTAW_VIRTUAL_SPRITES
  450.         jsr    ZOOM
  451.         jsr    CHANGE_PALETTE
  452.  
  453.         move.l #CopperList,$dff080
  454.         clr.w  $dff088
  455.     jsr    SCR
  456.     rts
  457. MOUSE:
  458.     jsr    WAIT255
  459.     jsr    WAIT255
  460.     jsr    MOUSE_WALL1
  461.  ;*** Koni. Dema ***
  462.         jsr    pt_StopMusic
  463.     move.l    STARY_WEKTOR,$6c
  464.  
  465.      lea     $dff000,a6
  466.      move.w  Mem,$9a(a6)
  467.      move.w  Mem+2,$96(a6)
  468.  
  469. End    
  470. ;    ** CloseGraph:
  471.     move.l    _LVOExec,a6            ; exec do a6
  472.     move.l    GraphBase(pc),a1    ; baza do a1
  473.     jsr    _LVOCloseLibrary(a6)    ; zamknij
  474. ;    ** CloseIntui:
  475.     move.l    _LVOExec,a6            ; exec do a6
  476.     move.l    IntuiBase(pc),a1    ; baza do a1
  477.     jsr    _LVOCloseLibrary(a6)    ; zamknij
  478. ;    ** CloseDos:
  479.     move.l    _LVOExec,a6            ; exec do a6
  480.     move.l    DosBase(pc),a1        ; baza do a1
  481.     jsr    _LVOCloseLibrary(a6)    ; zamknij
  482.  
  483. ERREND1:
  484.     move.l    _LVOExec,a6
  485.     move.l    #ILEP,d0
  486.     move.l    ADRES_PAMIECI,a1
  487.     jsr    _LVOFreeMem(a6)
  488.  
  489. ERREND:
  490.     rts
  491.  
  492. IntuiName:    dc.b    "intuition.library",0
  493. GraphName:    dc.b    "graphics.library",0
  494. DosName:    dc.b    'dos.library',0
  495.         even
  496. WBHandle:    dc.l    0
  497. Ile_Zjechal    dc.l    0
  498. ScreenHandle:    dc.l    0
  499. IntuiBase:    dc.l    0
  500. ReqBase:    dc.l    0
  501. GraphBase:    dc.l    0
  502. DiskFontBase:    dc.l    0
  503. DosBase:    dc.l    0
  504.  
  505. pt_InitMusic
  506.     MOVEM.L    D0-D3/A0-A2,-(SP)
  507.     move.l    #pt_data,a0
  508.     MOVE.L    A0,pt_SongDataPtr
  509.     LEA    sd_pattpos(A0),A1
  510.     MOVEQ    #128-1,D0
  511.     MOVEQ    #0,D1
  512.     MOVEQ    #0,D2
  513.     moveq    #$1e,d3
  514. pt_lop2 MOVE.B    (A1)+,D1
  515.     CMP.B    D2,D1
  516.     BLE.B    pt_lop
  517.     MOVE.L    D1,D2
  518. pt_lop    DBRA    D0,pt_lop2
  519.     ADDQ.W    #1,d2
  520.     ASL.L    #8,D2
  521.     ASL.L    #2,D2
  522.     LEA    4(A1,D2.L),A2
  523.     LEA    pt_SampleStarts(PC),A1
  524.     ADD.W    #2*20+2,A0        ;find first sample length
  525.     MOVEQ    #31-1,D0
  526. pt_lop3 MOVE.L    A2,(A1)+
  527.     MOVEQ    #0,D1
  528.     MOVE.W    (A0),D1
  529.     ASL.L    #1,D1
  530.     ADD.L    D1,A2
  531.     ADD.L    D3,A0
  532.     DBRA    D0,pt_lop3
  533.     MOVE.B    #6,pt_Speed        ;default speed
  534.     OR.B    #2,$BFE001
  535.     MOVEQ    #0,D0
  536.     LEA    $DFF000,A0
  537.     MOVE.W    D0,$A8(A0)
  538.     MOVE.W    D0,$B8(A0)
  539.     MOVE.W    D0,$C8(A0)
  540.     MOVE.W    D0,$D8(A0)
  541.     CLR.B    pt_SongPos
  542.     CLR.B    pt_Counter
  543.     CLR.B    pt_PattPos
  544.     MOVEM.L    (SP)+,D0-D3/A0-A2
  545.     RTS
  546.  
  547. pt_StopMusic
  548.     MOVEM.L    D0/A0,-(SP)
  549.     MOVEQ    #0,D0
  550.     LEA    $DFF000,A0
  551.     MOVE.W    D0,$A8(A0)
  552.     MOVE.W    D0,$B8(A0)
  553.     MOVE.W    D0,$C8(A0)
  554.     MOVE.W    D0,$D8(A0)
  555.     MOVE.W    #$000F,$DFF096        ;stop AudioDMA activity
  556.     MOVEM.L    (SP)+,D0/A0
  557.     RTS
  558.  
  559. pt_PlayMusic
  560.     MOVEM.L    D0-D7/A0-A6,-(SP)
  561.     MOVE.L    pt_SongDataPtr(PC),A0
  562.     ADDQ.L    #1,pt_Counter
  563.     MOVE.L    pt_Counter(PC),D0
  564.     CMP.L    pt_CurrSpeed(PC),D0
  565.     BLO.B    pt_NoNewNote
  566.     CLR.L    pt_Counter
  567.     TST.B    pt_PattDelayTime2
  568.     BEQ.B    pt_GetNewNote
  569.     BSR.B    pt_NoNewAllChannels
  570.     BRA.W    pt_dskip
  571.  
  572. pt_NoNewNote
  573.     BSR.B    pt_NoNewAllChannels
  574.     BRA.W    pt_NoNewPositionYet
  575.  
  576. pt_NoNewAllChannels
  577.     LEA    pt_audchan1temp(PC),A6
  578.     LEA    $DFF0A0,A5
  579.     BSR.W    pt_CheckEffects
  580.     LEA    pt_audchan2temp(PC),A6
  581.     LEA    $DFF0B0,A5
  582.     BSR.W    pt_CheckEffects
  583.     LEA    pt_audchan3temp(PC),A6
  584.     LEA    $DFF0C0,A5
  585.     BSR.W    pt_CheckEffects
  586.     LEA    pt_audchan4temp(PC),A6
  587.     LEA    $DFF0D0,A5
  588.     BRA.W    pt_CheckEffects
  589.  
  590. pt_GetNewNote
  591.     LEA    12(A0),A3
  592.     LEA    sd_pattpos(A0),A2
  593.     LEA    sd_patterndata(A0),A0
  594.     MOVEQ    #0,D1
  595.     MOVE.L    pt_SongPosition(PC),D0
  596.     MOVE.B    0(a2,D0.W),D1
  597.     ASL.L    #8,D1                ;*1024
  598.     ASL.L    #2,D1
  599.  
  600.     ADD.L    pt_PatternPosition(PC),D1
  601.     MOVE.L    D1,pt_PatternPtr
  602.     CLR.W    pt_DMACONtemp
  603.     LEA    $DFF0A0,A5
  604.     LEA    pt_audchan1temp(PC),A6
  605.     MOVEQ    #1,D2
  606.     BSR.W    pt_PlayVoice
  607.     MOVEQ    #0,D0
  608.     MOVE.B    n_volume(A6),D0
  609.     MOVE.W    D0,8(A5)
  610.     LEA    $DFF0B0,A5
  611.     LEA    pt_audchan2temp(PC),A6
  612.     MOVEQ    #2,D2
  613.     BSR.B    pt_PlayVoice
  614.     MOVEQ    #0,D0
  615.     MOVE.B    n_volume(A6),D0
  616.     MOVE.W    D0,8(A5)
  617.     LEA    $DFF0C0,A5
  618.     LEA    pt_audchan3temp(PC),A6
  619.     MOVEQ    #3,D2
  620.     BSR.B    pt_PlayVoice
  621.     MOVEQ    #0,D0
  622.     MOVE.B    n_volume(A6),D0
  623.     MOVE.W    D0,8(A5)
  624.     LEA    $DFF0D0,A5
  625.     LEA    pt_audchan4temp(PC),A6
  626.     MOVEQ    #4,D2
  627.     BSR.B    pt_PlayVoice
  628.     MOVEQ    #0,D0
  629.     MOVE.B    n_volume(A6),D0
  630.     MOVE.W    D0,8(A5)
  631.     BRA.W    pt_SetDMA
  632.  
  633. pt_CheckMetronome
  634.     CMP.B    pt_MetroChannel,D2
  635.     BNE.W    pt_Return
  636.     MOVE.B    pt_MetroSpeed,D2
  637.     BEQ.W    pt_Return
  638.     MOVE.L    pt_PatternPosition,D3
  639.     LSR.L    #4,D3
  640.     DIVU    D2,D3
  641.     SWAP    D3
  642.     TST.W    D3
  643.     BNE.W    pt_Return
  644.     AND.L    #$00000FFF,(A6)
  645.     OR.L    #$10D6F000,(A6)     ;Play sample $1F at period $0D6 (214)
  646.     RTS
  647.  
  648. pt_PlayVoice
  649.     TST.L    (A6)
  650.     BNE.B    pt_plvskip
  651.     BSR.W    pt_PerNop
  652. pt_plvskip
  653.     MOVE.L    0(a0,D1.L),(A6)        ;Read one track from pattern
  654.     BSR.B    pt_CheckMetronome
  655.     ADDQ.L    #4,D1
  656.     MOVEQ    #0,D2
  657.     MOVE.B    n_cmd(A6),D2        ;Get lower 4 bits of instrument
  658.     AND.B    #$F0,D2
  659.     LSR.B    #4,D2
  660.     MOVE.B    (A6),D0            ;Get higher 4 bits of instrument
  661.     AND.B    #$F0,D0
  662.     OR.B    D0,D2
  663.     TST.B    D2
  664.     BEQ.B    pt_SetRegisters        ;Instrument was zero
  665.     MOVEQ    #0,D3
  666.     LEA    pt_SampleStarts(PC),A1
  667.     MOVE    D2,D4
  668.     MOVE.B    D2,n_samplenum(A6)
  669.     SUBQ.L    #1,D2
  670.     LSL.L    #2,D2
  671.     MULU    #30,D4
  672.     MOVE.L    0(a1,D2.L),n_start(A6)
  673.     MOVE.W    0(a3,D4.L),n_length(A6)
  674.     MOVE.W    0(a3,D4.L),n_reallength(A6)
  675.     MOVE.B    2(A3,D4.L),n_finetune(A6)
  676.     MOVE.B    3(A3,D4.L),n_volume(A6)
  677.     MOVE.W    4(A3,D4.L),D3         ;Get repeat
  678.     TST.W    D3
  679.     BEQ.B    pt_NoLoop
  680.     MOVE.L    n_start(A6),D2        ;Get start
  681.     ASL.W    #1,D3
  682.     ADD.L    D3,D2            ;Add repeat
  683.     MOVE.L    D2,n_loopstart(A6)
  684.     MOVE.L    D2,n_wavestart(A6)
  685.     MOVE.W    4(A3,D4.L),D0        ;Get repeat
  686.     ADD.W    6(A3,D4.L),D0        ;Add replen
  687.     MOVE.W    D0,n_length(A6)
  688.     MOVE.W    6(A3,D4.L),n_replen(A6)    ;Save replen
  689.     BRA.B    pt_SetRegisters
  690.  
  691. pt_NoLoop
  692.     MOVE.L    n_start(A6),D2
  693.     ADD.L    D3,D2
  694.     MOVE.L    D2,n_loopstart(A6)
  695.     MOVE.L    D2,n_wavestart(A6)
  696.     MOVE.W    6(A3,D4.L),n_replen(A6)    ;Save replen
  697. pt_SetRegisters
  698.     MOVE.W    (A6),D0
  699.     AND.W    #$0FFF,D0
  700.     BEQ.W    pt_CheckMoreEffects    ;If no note ->
  701.     MOVE.W    2(A6),D0
  702.     AND.W    #$0FF0,D0
  703.     CMP.W    #$0E50,D0         ;finetune?
  704.     BEQ.B    pt_DoSetFineTune
  705.     MOVE.B    2(A6),D0
  706.     AND.B    #$0F,D0
  707.     CMP.B    #3,D0            ;TonePortamento?
  708.     BEQ.B    pt_ChkTonePorta
  709.     CMP.B    #5,D0            ;TonePortamento + VolSlide?
  710.     BEQ.B    pt_ChkTonePorta
  711.     CMP.B    #9,D0            ;Sample Offset?
  712.     BNE.B    pt_SetPeriod
  713.     BSR.W    pt_CheckMoreEffects
  714.     BRA.B    pt_SetPeriod
  715.  
  716. pt_DoSetFineTune
  717.     BSR.W    pt_SetFineTune
  718.     BRA.B    pt_SetPeriod
  719.  
  720. pt_ChkTonePorta
  721.     BSR.W    pt_SetTonePorta
  722.     BRA.W    pt_CheckMoreEffects
  723.  
  724. pt_SetPeriod
  725.     MOVEM.L    D0-D1/A0-A1,-(SP)
  726.     MOVE.W    (A6),D1
  727.     AND.W    #$0FFF,D1
  728.     LEA    pt_PeriodTable(PC),A1
  729.     MOVEQ    #0,D0
  730.     MOVEQ    #$24,D7
  731. pt_ftuloop
  732.     CMP.W    0(a1,D0.W),D1
  733.     BHS.B    pt_ftufound
  734.     ADDQ.L    #2,D0
  735.     DBRA    D7,pt_ftuloop
  736. pt_ftufound
  737.     MOVEQ    #0,D1
  738.     MOVE.B    n_finetune(A6),D1
  739.     MULU    #37*2,D1
  740.     ADD.L    D1,A1
  741.     MOVE.W    0(a1,D0.W),n_period(A6)
  742.     MOVEM.L    (SP)+,D0-D1/A0-A1
  743.  
  744.     MOVE.W    2(A6),D0
  745.     AND.W    #$0FF0,D0
  746.     CMP.W    #$0ED0,D0
  747.     BEQ.W    pt_CheckMoreEffects
  748.  
  749.     MOVE.W    n_dmabit(A6),$DFF096
  750.     BTST    #2,n_wavecontrol(A6)
  751.     BNE.B    pt_vibnoc
  752.     CLR.B    n_vibratopos(A6)
  753. pt_vibnoc
  754.     BTST    #6,n_wavecontrol(A6)
  755.     BNE.B    pt_trenoc
  756.     CLR.B    n_tremolopos(A6)
  757. pt_trenoc
  758.     MOVE.W    n_length(A6),4(A5)    ;Set length
  759.     MOVE.L    n_start(A6),(A5)    ;Set start
  760.     BNE.B    pt_sdmaskp
  761.     CLR.L    n_loopstart(A6)
  762.     MOVEQ    #1,D0
  763.     MOVE.W    D0,4(A5)
  764.     MOVE.W    D0,n_replen(A6)
  765. pt_sdmaskp
  766.     MOVE.W    n_period(A6),D0
  767.     MOVE.W    D0,6(A5)        ;Set period
  768.     ST    n_trigger(A6)
  769.     MOVE.W    n_dmabit(A6),D0
  770.     OR.W    D0,pt_DMACONtemp
  771.     BRA.W    pt_CheckMoreEffects
  772.  
  773. pt_SetDMA
  774.     move.b    pt_timeout,$bfe701    ;TimerB HI
  775.     move.b    pt_timeout+1,$bfe601    ;TimerB LO
  776.     move.b    #%000011001,$bfef01    ;set commandbits: OneShot & CLK & Start
  777. pt_timerwait1
  778.     btst    #0,$bfef01        ;timeout on timerB? (ICR TimerB)
  779.     bne.s    pt_timerwait1        ;nope...
  780.     MOVE.W    pt_DMACONtemp,D0
  781.     AND.W    pt_ActiveChannels,D0    ;mask out inactive channels
  782.     OR.W    #$8000,D0
  783.     MOVE.W    D0,$DFF096
  784.     move.b    pt_timeout,$bfe701    ;TimerB HI
  785.     move.b    pt_timeout+1,$bfe601    ;TimerB LO
  786.     move.b    #%000011001,$bfef01    ;set commandbits: OneShot & CLK & Start
  787. pt_timerwait2
  788.     btst    #0,$bfef01        ;timeout on timerB? (ICR TimerB)
  789.     bne.s    pt_timerwait2        ;nope...
  790.     LEA    $DFF000,A5
  791.     LEA    pt_audchan4temp(PC),A6
  792.     MOVE.L    n_loopstart(A6),$D0(A5)
  793.     MOVE.W    n_replen(A6),$D4(A5)
  794.     LEA    pt_audchan3temp(PC),A6
  795.     MOVE.L    n_loopstart(A6),$C0(A5)
  796.     MOVE.W    n_replen(A6),$C4(A5)
  797.     LEA    pt_audchan2temp(PC),A6
  798.     MOVE.L    n_loopstart(A6),$B0(A5)
  799.     MOVE.W    n_replen(A6),$B4(A5)
  800.     LEA    pt_audchan1temp(PC),A6
  801.     MOVE.L    n_loopstart(A6),$A0(A5)
  802.     MOVE.W    n_replen(A6),$A4(A5)
  803.  
  804. pt_dskip
  805.     ADD.L    #16,pt_PatternPosition
  806.     MOVE.B    pt_PattDelayTime,D0
  807.     BEQ.B    pt_dskpc
  808.     MOVE.B    D0,pt_PattDelayTime2
  809.     CLR.B    pt_PattDelayTime
  810. pt_dskpc
  811.     TST.B    pt_PattDelayTime2
  812.     BEQ.B    pt_dskpa
  813.     SUBQ.B    #1,pt_PattDelayTime2
  814.     BEQ.B    pt_dskpa
  815.     SUB.L    #16,pt_PatternPosition
  816. pt_dskpa
  817.     TST.B    pt_PBreakFlag
  818.     BEQ.B    pt_nnpysk
  819.     SF    pt_PBreakFlag
  820.     MOVEQ    #0,D0
  821.     MOVE.B    pt_PBreakPosition(PC),D0
  822.     LSL.W    #4,D0
  823.     MOVE.L    D0,pt_PatternPosition
  824.     CLR.B    pt_PBreakPosition
  825. pt_nnpysk
  826.     CMP.L    #1024,pt_PatternPosition
  827.     BNE.B    pt_NoNewPositionYet
  828. pt_NextPosition    
  829.     MOVEQ    #0,D0
  830.     MOVE.B    pt_PBreakPosition(PC),D0
  831.     LSL.W    #4,D0
  832.     MOVE.L    D0,pt_PatternPosition
  833.     CLR.B    pt_PBreakPosition
  834.     CLR.B    pt_PosJumpAssert
  835.     ADDQ.L    #1,pt_SongPosition
  836.     AND.L    #$7F,pt_SongPosition
  837.     MOVE.L    pt_SongPosition(PC),D1
  838.     MOVE.L    pt_SongDataPtr(PC),A0
  839.     CMP.B    sd_numofpatt(A0),D1
  840.     BLO.B    pt_NoNewPositionYet
  841.     CLR.L    pt_SongPosition
  842. pt_NoNewPositionYet
  843.     TST.B    pt_PosJumpAssert
  844.     BNE.B    pt_NextPosition
  845.     MOVEM.L    (SP)+,D0-D7/A0-A6
  846.     RTS
  847.  
  848. pt_CheckEffects
  849.     BSR.B    pt_chkefx2
  850.     MOVEQ    #0,D0
  851.     MOVE.B    n_volume(A6),D0
  852.     MOVE.W    D0,8(A5)
  853.     RTS
  854.  
  855. pt_chkefx2
  856.     BSR.W    pt_UpdateFunk
  857.     MOVE.W    n_cmd(A6),D0
  858.     AND.W    #$0FFF,D0
  859.     BEQ.B    pt_Return
  860.     MOVE.B    n_cmd(A6),D0
  861.     AND.B    #$0F,D0
  862.     TST.B    D0
  863.     BEQ.B    pt_Arpeggio
  864.     CMP.B    #1,D0
  865.     BEQ.W    pt_PortaUp
  866.     CMP.B    #2,D0
  867.     BEQ.W    pt_PortaDown
  868.     CMP.B    #3,D0
  869.     BEQ.W    pt_TonePortamento
  870.     CMP.B    #4,D0
  871.     BEQ.W    pt_Vibrato
  872.     CMP.B    #5,D0
  873.     BEQ.W    pt_TonePlusVolSlide
  874.     CMP.B    #6,D0
  875.     BEQ.W    pt_VibratoPlusVolSlide
  876.     CMP.B    #$E,D0
  877.     BEQ.W    pt_ECommands
  878. pt_SetBack
  879.     MOVE.W    n_period(A6),6(A5)
  880.     CMP.B    #7,D0
  881.     BEQ.W    pt_Tremolo
  882.     CMP.B    #$A,D0
  883.     BEQ.W    pt_VolumeSlide
  884.     CMP.B    #8,D0
  885.     BEQ.W    pt_CompSet
  886. pt_Return
  887.     RTS
  888.  
  889. pt_CompSet:
  890.     MOVE.B    n_cmdlo(A6),D0
  891.     AND.B    #$0F,D0
  892.     move.b    d0,MCBIT
  893.     rts
  894.  
  895. pt_PerNop
  896.     MOVE.W    n_period(A6),6(A5)
  897.     RTS
  898.  
  899. pt_Arpeggio
  900.     MOVEQ    #0,D0
  901.     MOVE.L    pt_Counter(PC),D0
  902.     DIVS    #3,D0
  903.     SWAP    D0
  904.     CMP.W    #1,D0
  905.     BEQ.B    pt_Arpeggio1
  906.     CMP.W    #2,D0
  907.     BEQ.B    pt_Arpeggio2
  908. pt_Arpeggio0
  909.     MOVE.W    n_period(A6),D2
  910.     BRA.B    pt_ArpeggioSet
  911.  
  912. pt_Arpeggio1
  913.     MOVEQ    #0,D0
  914.     MOVE.B    n_cmdlo(A6),D0
  915.     LSR.B    #4,D0
  916.     BRA.B    pt_ArpeggioFind
  917.  
  918. pt_Arpeggio2
  919.     MOVEQ    #0,D0
  920.     MOVE.B    n_cmdlo(A6),D0
  921.     AND.B    #15,D0
  922. pt_ArpeggioFind
  923.     ASL.W    #1,D0
  924.     MOVEQ    #0,D1
  925.     MOVE.B    n_finetune(A6),D1
  926.     MULU    #37*2,D1
  927.     LEA    pt_PeriodTable(PC),A0
  928.     ADD.L    D1,A0
  929.     MOVEQ    #0,D1
  930.     MOVE.W    n_period(A6),D1
  931.     MOVEQ    #$24,D7
  932. pt_arploop
  933.     MOVE.W    0(a0,D0.W),D2
  934.     CMP.W    (A0),D1
  935.     BHS.B    pt_ArpeggioSet
  936.     ADDQ.L    #2,A0
  937.     DBRA    D7,pt_arploop
  938.     RTS
  939.  
  940. pt_ArpeggioSet
  941.     MOVE.W    D2,6(A5)
  942.     RTS
  943.  
  944. pt_FinePortaUp
  945.     TST.L    pt_Counter
  946.     BNE.W    pt_Return
  947.     MOVE.B    #$0F,pt_LowMask
  948. pt_PortaUp
  949.     MOVEQ    #0,D0
  950.     MOVE.B    n_cmdlo(A6),D0
  951.     AND.B    pt_LowMask,D0
  952.     MOVE.B    #$FF,pt_LowMask
  953.     SUB.W    D0,n_period(A6)
  954.     MOVE.W    n_period(A6),D0
  955.     AND.W    #$0FFF,D0
  956.     CMP.W    #$0071,D0
  957.     BPL.B    pt_PortaUskip
  958.     AND.W    #$F000,n_period(A6)
  959.     OR.W    #$0071,n_period(A6)
  960. pt_PortaUskip
  961.     MOVE.W    n_period(A6),D0
  962.     AND.W    #$0FFF,D0
  963.     MOVE.W    D0,6(A5)
  964.     RTS
  965.  
  966. pt_FinePortaDown
  967.     TST.L    pt_Counter
  968.     BNE.W    pt_Return
  969.     MOVE.B    #$0F,pt_LowMask
  970. pt_PortaDown
  971.     CLR.W    D0
  972.     MOVE.B    n_cmdlo(A6),D0
  973.     AND.B    pt_LowMask,D0
  974.     MOVE.B    #$FF,pt_LowMask
  975.     ADD.W    D0,n_period(A6)
  976.     MOVE.W    n_period(A6),D0
  977.     AND.W    #$0FFF,D0
  978.     CMP.W    #$0358,D0
  979.     BMI.B    pt_Portadskip
  980.     AND.W    #$F000,n_period(A6)
  981.     OR.W    #$0358,n_period(A6)
  982. pt_Portadskip
  983.     MOVE.W    n_period(A6),D0
  984.     AND.W    #$0FFF,D0
  985.     MOVE.W    D0,6(A5)
  986.     RTS
  987.  
  988. pt_SetTonePorta
  989.     MOVE.L    A0,-(SP)
  990.     MOVE.W    (A6),D2
  991.     AND.W    #$0FFF,D2
  992.     MOVEQ    #0,D0
  993.     MOVE.B    n_finetune(A6),D0
  994.     MULU    #37*2,D0
  995.     LEA    pt_PeriodTable(PC),A0
  996.     ADD.L    D0,A0
  997.     MOVEQ    #0,D0
  998. pt_StpLoop
  999.     CMP.W    0(a0,D0.W),D2
  1000.     BHS.B    pt_StpFound
  1001.     ADDQ.W    #2,D0
  1002.     CMP.W    #37*2,D0
  1003.     BLO.B    pt_StpLoop
  1004.     MOVEQ    #35*2,D0
  1005. pt_StpFound
  1006.     MOVE.B    n_finetune(A6),D2
  1007.     AND.B    #8,D2
  1008.     BEQ.B    pt_StpGoss
  1009.     TST.W    D0
  1010.     BEQ.B    pt_StpGoss
  1011.     SUBQ.W    #2,D0
  1012. pt_StpGoss
  1013.     MOVE.W    0(a0,D0.W),D2
  1014.     MOVE.L    (SP)+,A0
  1015.     MOVE.W    D2,n_wantedperiod(A6)
  1016.     MOVE.W    n_period(A6),D0
  1017.     CLR.B    n_toneportdirec(A6)
  1018.     CMP.W    D0,D2
  1019.     BEQ.B    pt_ClearTonePorta
  1020.     BGE.W    pt_Return
  1021.     MOVE.B    #1,n_toneportdirec(A6)
  1022.     RTS
  1023.  
  1024. pt_ClearTonePorta
  1025.     CLR.W    n_wantedperiod(A6)
  1026.     RTS    
  1027.  
  1028. pt_TonePortamento
  1029.     MOVE.B    n_cmdlo(A6),D0
  1030.     BEQ.B    pt_TonePortNoChange
  1031.     MOVE.B    D0,n_toneportspeed(A6)
  1032.     CLR.B    n_cmdlo(A6)
  1033. pt_TonePortNoChange
  1034.     TST.W    n_wantedperiod(A6)
  1035.     BEQ.W    pt_Return
  1036.     MOVEQ    #0,D0
  1037.     MOVE.B    n_toneportspeed(A6),D0
  1038.     TST.B    n_toneportdirec(A6)
  1039.     BNE.B    pt_TonePortaUp
  1040. pt_TonePortaDown
  1041.     ADD.W    D0,n_period(A6)
  1042.     MOVE.W    n_wantedperiod(A6),D0
  1043.     CMP.W    n_period(A6),D0
  1044.     BGT.B    pt_TonePortaSetPer
  1045.     MOVE.W    n_wantedperiod(A6),n_period(A6)
  1046.     CLR.W    n_wantedperiod(A6)
  1047.     BRA.B    pt_TonePortaSetPer
  1048.  
  1049. pt_TonePortaUp
  1050.     SUB.W    D0,n_period(A6)
  1051.     MOVE.W    n_wantedperiod(A6),D0
  1052.     CMP.W    n_period(A6),D0
  1053.     BLT.B    pt_TonePortaSetPer
  1054.     MOVE.W    n_wantedperiod(A6),n_period(A6)
  1055.     CLR.W    n_wantedperiod(A6)
  1056.  
  1057. pt_TonePortaSetPer
  1058.     MOVE.W    n_period(A6),D2
  1059.     MOVE.B    n_glissfunk(A6),D0
  1060.     AND.B    #$0F,D0
  1061.     BEQ.B    pt_GlissSkip
  1062.     MOVEQ    #0,D0
  1063.     MOVE.B    n_finetune(A6),D0
  1064.     MULU    #37*2,D0
  1065.     LEA    pt_PeriodTable(PC),A0
  1066.     ADD.L    D0,A0
  1067.     MOVEQ    #0,D0
  1068. pt_GlissLoop
  1069.     CMP.W    0(a0,D0.W),D2
  1070.     BHS.B    pt_GlissFound
  1071.     ADDQ.W    #2,D0
  1072.     CMP.W    #37*2,D0
  1073.     BLO.B    pt_GlissLoop
  1074.     MOVEQ    #35*2,D0
  1075. pt_GlissFound
  1076.     MOVE.W    0(a0,D0.W),D2
  1077. pt_GlissSkip
  1078.     MOVE.W    D2,6(A5)         ;Set period
  1079.     RTS
  1080.  
  1081. pt_Vibrato
  1082.     MOVE.B    n_cmdlo(A6),D0
  1083.     BEQ.B    pt_Vibrato2
  1084.     MOVE.B    n_vibratocmd(A6),D2
  1085.     AND.B    #$0F,D0
  1086.     BEQ.B    pt_vibskip
  1087.     AND.B    #$F0,D2
  1088.     OR.B    D0,D2
  1089. pt_vibskip
  1090.     MOVE.B    n_cmdlo(A6),D0
  1091.     AND.B    #$F0,D0
  1092.     BEQ.B    pt_vibskip2
  1093.     AND.B    #$0F,D2
  1094.     OR.B    D0,D2
  1095. pt_vibskip2
  1096.     MOVE.B    D2,n_vibratocmd(A6)
  1097. pt_Vibrato2
  1098.     MOVE.L    A4,-(SP)
  1099.     MOVE.B    n_vibratopos(A6),D0
  1100.     LEA    pt_VibratoTable(PC),A4
  1101.     LSR.W    #2,D0
  1102.     AND.W    #$001F,D0
  1103.     MOVEQ    #0,D2
  1104.     MOVE.B    n_wavecontrol(A6),D2
  1105.     AND.B    #$03,D2
  1106.     BEQ.B    pt_vib_sine
  1107.     LSL.B    #3,D0
  1108.     CMP.B    #1,D2
  1109.     BEQ.B    pt_vib_rampdown
  1110.     MOVE.B    #255,D2
  1111.     BRA.B    pt_vib_set
  1112. pt_vib_rampdown
  1113.     TST.B    n_vibratopos(A6)
  1114.     BPL.B    pt_vib_rampdown2
  1115.     MOVE.B    #255,D2
  1116.     SUB.B    D0,D2
  1117.     BRA.B    pt_vib_set
  1118. pt_vib_rampdown2
  1119.     MOVE.B    D0,D2
  1120.     BRA.B    pt_vib_set
  1121. pt_vib_sine
  1122.     MOVE.B    0(A4,D0.W),D2
  1123. pt_vib_set
  1124.     MOVE.B    n_vibratocmd(A6),D0
  1125.     AND.W    #15,D0
  1126.     MULU    D0,D2
  1127.     LSR.W    #7,D2
  1128.     MOVE.W    n_period(A6),D0
  1129.     TST.B    n_vibratopos(A6)
  1130.     BMI.B    pt_VibratoNeg
  1131.     ADD.W    D2,D0
  1132.     BRA.B    pt_Vibrato3
  1133. pt_VibratoNeg
  1134.     SUB.W    D2,D0
  1135. pt_Vibrato3
  1136.     MOVE.W    D0,6(A5)
  1137.     MOVE.B    n_vibratocmd(A6),D0
  1138.     LSR.W    #2,D0
  1139.     AND.W    #$003C,D0
  1140.     ADD.B    D0,n_vibratopos(A6)
  1141.     MOVE.L    (SP)+,A4
  1142.     RTS
  1143.  
  1144. pt_TonePlusVolSlide
  1145.     BSR.W    pt_TonePortNoChange
  1146.     BRA.W    pt_VolumeSlide
  1147.  
  1148. pt_VibratoPlusVolSlide
  1149.     BSR.B    pt_Vibrato2
  1150.     BRA.W    pt_VolumeSlide
  1151.  
  1152. pt_Tremolo
  1153.     MOVE.L    A4,-(SP)
  1154.     MOVE.B    n_cmdlo(A6),D0
  1155.     BEQ.B    pt_Tremolo2
  1156.     MOVE.B    n_tremolocmd(A6),D2
  1157.     AND.B    #$0F,D0
  1158.     BEQ.B    pt_treskip
  1159.     AND.B    #$F0,D2
  1160.     OR.B    D0,D2
  1161. pt_treskip
  1162.     MOVE.B    n_cmdlo(A6),D0
  1163.     AND.B    #$F0,D0
  1164.     BEQ.B    pt_treskip2
  1165.     AND.B    #$0F,D2
  1166.     OR.B    D0,D2
  1167. pt_treskip2
  1168.     MOVE.B    D2,n_tremolocmd(A6)
  1169. pt_Tremolo2
  1170.     MOVE.B    n_tremolopos(A6),D0
  1171.     LEA    pt_VibratoTable(PC),A4
  1172.     LSR.W    #2,D0
  1173.     AND.W    #$001F,D0
  1174.     MOVEQ    #0,D2
  1175.     MOVE.B    n_wavecontrol(A6),D2
  1176.     LSR.B    #4,D2
  1177.     AND.B    #$03,D2
  1178.     BEQ.B    pt_tre_sine
  1179.     LSL.B    #3,D0
  1180.     CMP.B    #1,D2
  1181.     BEQ.B    pt_tre_rampdown
  1182.     MOVE.B    #255,D2
  1183.     BRA.B    pt_tre_set
  1184. pt_tre_rampdown
  1185.     TST.B    n_vibratopos(A6)
  1186.     BPL.B    pt_tre_rampdown2
  1187.     MOVE.B    #255,D2
  1188.     SUB.B    D0,D2
  1189.     BRA.B    pt_tre_set
  1190. pt_tre_rampdown2
  1191.     MOVE.B    D0,D2
  1192.     BRA.B    pt_tre_set
  1193. pt_tre_sine
  1194.     MOVE.B    0(A4,D0.W),D2
  1195. pt_tre_set
  1196.     MOVE.B    n_tremolocmd(A6),D0
  1197.     AND.W    #15,D0
  1198.     MULU    D0,D2
  1199.     LSR.W    #6,D2
  1200.     MOVEQ    #0,D0
  1201.     MOVE.B    n_volume(A6),D0
  1202.     TST.B    n_tremolopos(A6)
  1203.     BMI.B    pt_TremoloNeg
  1204.     ADD.W    D2,D0
  1205.     BRA.B    pt_Tremolo3
  1206. pt_TremoloNeg
  1207.     SUB.W    D2,D0
  1208. pt_Tremolo3
  1209.     BPL.B    pt_TremoloSkip
  1210.     CLR.W    D0
  1211. pt_TremoloSkip
  1212.     CMP.W    #$40,D0
  1213.     BLS.B    pt_TremoloOk
  1214.     MOVE.W    #$40,D0
  1215. pt_TremoloOk
  1216.     MOVE.W    D0,8(A5)
  1217.     MOVE.B    n_tremolocmd(A6),D0
  1218.     LSR.W    #2,D0
  1219.     AND.W    #$003C,D0
  1220.     ADD.B    D0,n_tremolopos(A6)
  1221.     MOVE.L    (SP)+,A4
  1222.     ADDQ.L    #4,SP
  1223.     RTS
  1224.  
  1225. pt_SampleOffset
  1226.     MOVEQ    #0,D0
  1227.     MOVE.B    n_cmdlo(A6),D0
  1228.     BEQ.B    pt_sononew
  1229.     MOVE.B    D0,n_sampleoffset(A6)
  1230. pt_sononew
  1231.     MOVE.B    n_sampleoffset(A6),D0
  1232.     LSL.W    #7,D0
  1233.     CMP.W    n_length(A6),D0
  1234.     BGE.B    pt_sofskip
  1235.     SUB.W    D0,n_length(A6)
  1236.     LSL.W    #1,D0
  1237.     ADD.L    D0,n_start(A6)
  1238.     RTS
  1239. pt_sofskip
  1240.     MOVE.W    #1,n_length(A6)
  1241.     RTS
  1242.  
  1243. pt_VolumeSlide
  1244.     MOVEQ    #0,D0
  1245.     MOVE.B    n_cmdlo(A6),D0
  1246.     LSR.B    #4,D0
  1247.     TST.B    D0
  1248.     BEQ.B    pt_VolSlideDown
  1249. pt_VolSlideUp
  1250.     ADD.B    D0,n_volume(A6)
  1251.     CMP.B    #$40,n_volume(A6)
  1252.     BMI.B    pt_vsuskip
  1253.     MOVE.B    #$40,n_volume(A6)
  1254. pt_vsuskip
  1255.     MOVE.B    n_volume(A6),D0
  1256.     RTS
  1257.  
  1258. pt_VolSlideDown
  1259.     MOVEQ    #0,D0
  1260.     MOVE.B    n_cmdlo(A6),D0
  1261.     AND.B    #$0F,D0
  1262. pt_VolSlideDown2
  1263.     SUB.B    D0,n_volume(A6)
  1264.     BPL.B    pt_vsdskip
  1265.     CLR.B    n_volume(A6)
  1266. pt_vsdskip
  1267.     MOVE.B    n_volume(A6),D0
  1268.     RTS
  1269.  
  1270. pt_PositionJump
  1271.     MOVEQ    #0,D0
  1272.     MOVE.B    n_cmdlo(A6),D0
  1273.     SUBQ.B    #1,D0
  1274.     MOVE.L    D0,pt_SongPosition
  1275. pt_pj2    CLR.B    pt_PBreakPosition
  1276.     ST     pt_PosJumpAssert
  1277.     RTS
  1278.  
  1279. pt_VolumeChange
  1280.     MOVEQ    #0,D0
  1281.     MOVE.B    n_cmdlo(A6),D0
  1282.     CMP.B    #$40,D0
  1283.     BLS.B    pt_VolumeOk
  1284.     MOVEQ    #$40,D0
  1285. pt_VolumeOk
  1286.     MOVE.B    D0,n_volume(A6)
  1287.     RTS
  1288.  
  1289. pt_PatternBreak
  1290.     MOVEQ    #0,D0
  1291.     MOVE.B    n_cmdlo(A6),D0
  1292.     MOVE.L    D0,D2
  1293.     LSR.B    #4,D0
  1294.     MULU    #10,D0
  1295.     AND.B    #$0F,D2
  1296.     ADD.B    D2,D0
  1297.     CMP.B    #63,D0
  1298.     BHI.B    pt_pj2
  1299.     MOVE.B    D0,pt_PBreakPosition
  1300.     ST    pt_PosJumpAssert
  1301.     RTS
  1302.  
  1303. pt_SetSpeed
  1304.     MOVE.B    3(A6),D0
  1305.     AND.W    #$FF,D0
  1306.     BEQ.B    pt_SpeedNull
  1307. ;    CMP.W    #32,D0            ;change this for lev6/CIA users
  1308. ;    BLO.B    normspd            ;it updates the countervalues (Tempo)
  1309. ;    MOVE.W    D0,RealTempo        ;for the BPM timer
  1310. ;    MOVEM.L    D0-D7/A0-A6,-(SP)
  1311. ;    ST    UpdateTempo
  1312. ;    JSR    SetTempo
  1313. ;    MOVEM.L    (SP)+,D0-D7/A0-A6
  1314. ;    RTS
  1315. pt_normspd
  1316.     CLR.L    pt_Counter
  1317.     MOVE.W    D0,pt_CurrSpeed+2
  1318.     RTS
  1319. pt_SpeedNull
  1320.     RTS
  1321.  
  1322. pt_CheckMoreEffects
  1323.     MOVE.B    2(A6),D0
  1324.     AND.B    #$0F,D0
  1325.     CMP.B    #$9,D0
  1326.     BEQ.W    pt_SampleOffset
  1327.     CMP.B    #$B,D0
  1328.     BEQ.W    pt_PositionJump
  1329.     CMP.B    #$D,D0
  1330.     BEQ.B    pt_PatternBreak
  1331.     CMP.B    #$E,D0
  1332.     BEQ.B    pt_ECommands
  1333.     CMP.B    #$F,D0
  1334.     BEQ.B    pt_SetSpeed
  1335.     CMP.B    #$C,D0
  1336.     BEQ.W    pt_VolumeChange
  1337.     BRA.W    pt_PerNop
  1338.  
  1339. pt_ECommands
  1340.     MOVE.B    n_cmdlo(A6),D0
  1341.     AND.B    #$F0,D0
  1342.     LSR.B    #4,D0
  1343.     BEQ.B    pt_FilterOnOff
  1344.     CMP.B    #1,D0
  1345.     BEQ.W    pt_FinePortaUp
  1346.     CMP.B    #2,D0
  1347.     BEQ.W    pt_FinePortaDown
  1348.     CMP.B    #3,D0
  1349.     BEQ.B    pt_SetGlissControl
  1350.     CMP.B    #4,D0
  1351.     BEQ.W    pt_SetVibratoControl
  1352.     CMP.B    #5,D0
  1353.     BEQ.W    pt_SetFineTune
  1354.     CMP.B    #6,D0
  1355.     BEQ.W    pt_JumpLoop
  1356.     CMP.B    #7,D0
  1357.     BEQ.W    pt_SetTremoloControl
  1358.     CMP.B    #8,D0
  1359.     BEQ.W    pt_KarplusStrong
  1360.     CMP.B    #$E,D0
  1361.     BEQ.W    pt_PatternDelay
  1362.     CMP.B    #9,D0
  1363.     BEQ.W    pt_RetrigNote
  1364.     CMP.B    #$A,D0
  1365.     BEQ.W    pt_VolumeFineUp
  1366.     CMP.B    #$B,D0
  1367.     BEQ.W    pt_VolumeFineDown
  1368.     CMP.B    #$C,D0
  1369.     BEQ.W    pt_NoteCut
  1370.     CMP.B    #$D,D0
  1371.     BEQ.W    pt_NoteDelay
  1372.     CMP.B    #$F,D0
  1373.     BEQ.W    pt_FunkIt
  1374.     RTS
  1375.  
  1376. pt_FilterOnOff
  1377.     MOVE.B    n_cmdlo(A6),D0
  1378.     AND.B    #1,D0
  1379.     ASL.B    #1,D0
  1380.     AND.B    #$FD,$BFE001
  1381.     OR.B    D0,$BFE001
  1382.     RTS    
  1383.  
  1384. pt_SetGlissControl
  1385.     MOVE.B    n_cmdlo(A6),D0
  1386.     AND.B    #$0F,D0
  1387.     AND.B    #$F0,n_glissfunk(A6)
  1388.     OR.B    D0,n_glissfunk(A6)
  1389.     RTS
  1390.  
  1391. pt_SetVibratoControl
  1392.     MOVE.B    n_cmdlo(A6),D0
  1393.     AND.B    #$0F,D0
  1394.     AND.B    #$F0,n_wavecontrol(A6)
  1395.     OR.B    D0,n_wavecontrol(A6)
  1396.     RTS
  1397.  
  1398. pt_SetFineTune
  1399.     MOVE.B    n_cmdlo(A6),D0
  1400.     AND.B    #$0F,D0
  1401.     MOVE.B    D0,n_finetune(A6)
  1402.     RTS
  1403.  
  1404. pt_JumpLoop
  1405.     TST.L    pt_Counter
  1406.     BNE.W    pt_Return
  1407.     MOVE.B    n_cmdlo(A6),D0
  1408.     AND.B    #$0F,D0
  1409.     BEQ.B    pt_SetLoop
  1410.     TST.B    n_loopcount(A6)
  1411.     BEQ.B    pt_jumpcnt
  1412.     SUB.B    #1,n_loopcount(A6)
  1413.     BEQ.W    pt_Return
  1414. pt_jmploop
  1415.     MOVE.B    n_pattpos(A6),pt_PBreakPosition
  1416.     ST    pt_PBreakFlag
  1417.     RTS
  1418.  
  1419. pt_jumpcnt
  1420.     MOVE.B    D0,n_loopcount(A6)
  1421.     BRA.B    pt_jmploop
  1422.  
  1423. pt_SetLoop
  1424.     MOVE.L    pt_PatternPosition,D0
  1425.     LSR.L    #4,D0
  1426.     AND.B    #63,D0
  1427.     MOVE.B    D0,n_pattpos(A6)
  1428.     RTS
  1429.  
  1430. pt_SetTremoloControl
  1431.     MOVE.B    n_cmdlo(A6),D0
  1432.     AND.B    #$0F,D0
  1433.     LSL.B    #4,D0
  1434.     AND.B    #$0F,n_wavecontrol(A6)
  1435.     OR.B    D0,n_wavecontrol(A6)
  1436.     RTS
  1437.  
  1438. pt_KarplusStrong
  1439.     MOVEM.L    D1-D2/A0-A1,-(SP)
  1440.     MOVE.L    n_loopstart(A6),A0
  1441.     MOVE.L    A0,A1
  1442.     MOVE.W    n_replen(A6),D0
  1443.     ADD.W    D0,D0
  1444.     SUBQ.W    #2,D0
  1445. pt_karplop
  1446.     MOVE.B    (A0),D1
  1447.     EXT.W    D1
  1448.     MOVE.B    1(A0),D2
  1449.     EXT.W    D2
  1450.     ADD.W    D1,D2
  1451.     ASR.W    #1,D2
  1452.     MOVE.B    D2,(A0)+
  1453.     DBRA    D0,pt_karplop
  1454.     MOVE.B    (A0),D1
  1455.     EXT.W    D1
  1456.     MOVE.B    (A1),D2
  1457.     EXT.W    D2
  1458.     ADD.W    D1,D2
  1459.     ASR.W    #1,D2
  1460.     MOVE.B    D2,(A0)
  1461.     MOVEM.L    (SP)+,D1-D2/A0-A1
  1462.     RTS
  1463.  
  1464. pt_RetrigNote
  1465.     MOVE.L    D1,-(SP)
  1466.     MOVEQ    #0,D0
  1467.     MOVE.B    n_cmdlo(A6),D0
  1468.     AND.B    #$0F,D0
  1469.     BEQ.W    pt_rtnend
  1470.     MOVE.L    pt_Counter,D1
  1471.     BNE.B    pt_rtnskp
  1472.     MOVE.W    n_note(A6),D1
  1473.     AND.W    #$0FFF,D1
  1474.     BNE.W    pt_rtnend
  1475.     MOVE.L    pt_Counter,D1
  1476. pt_rtnskp
  1477.     DIVU    D0,D1
  1478.     SWAP    D1
  1479.     TST.W    D1
  1480.     BNE.W    pt_rtnend
  1481. pt_DoRetrg
  1482.     MOVE.W    n_dmabit(A6),$DFF096    ;Audio DMA off
  1483.     MOVE.L    n_start(A6),(A5)    ;Set sampledata pointer
  1484.     MOVE.W    n_length(A6),4(A5)    ;Set length
  1485.     MOVE.W    n_period(A6),6(A5)
  1486.     MOVEQ    #0,D0
  1487.     MOVE.B    n_volume(A6),D0
  1488.  
  1489.     move.b    pt_timeout,$bfe701    ;TimerB HI
  1490.     move.b    pt_timeout+1,$bfe601    ;TimerB LO
  1491.     move.b    #%000011001,$bfef01    ;set commandbits: OneShot & CLK & Start
  1492. pt_timerwait3
  1493.     btst    #0,$bfef01        ;timeout on timerB? (ICR TimerB)
  1494.     bne.s    pt_timerwait3        ;nope...
  1495.  
  1496.     MOVE.W    n_dmabit(A6),D0
  1497.     BSET    #15,D0
  1498.     MOVE.W    D0,$DFF096
  1499.  
  1500.     move.b    pt_timeout,$bfe701    ;TimerB HI
  1501.     move.b    pt_timeout+1,$bfe601    ;TimerB LO
  1502.     move.b    #%000011001,$bfef01    ;set commandbits: OneShot & CLK & Start
  1503. pt_timerwait4
  1504.     btst    #0,$bfef01        ;timeout on timerB? (ICR TimerB)
  1505.     bne.s    pt_timerwait4        ;nope...
  1506.  
  1507.     MOVE.L    n_loopstart(A6),(A5)
  1508.     MOVE.L    n_replen(A6),4(A5)
  1509. pt_rtnend
  1510.     MOVE.L    (SP)+,D1
  1511.     RTS
  1512.  
  1513. pt_VolumeFineUp
  1514.     TST.L    pt_Counter
  1515.     BNE.W    pt_Return
  1516.     MOVEQ    #0,D0
  1517.     MOVE.B    n_cmdlo(A6),D0
  1518.     AND.B    #$F,D0
  1519.     BRA.W    pt_VolSlideUp
  1520.  
  1521. pt_VolumeFineDown
  1522.     TST.L    pt_Counter
  1523.     BNE.W    pt_Return
  1524.     MOVEQ    #0,D0
  1525.     MOVE.B    n_cmdlo(A6),D0
  1526.     AND.B    #$0F,D0
  1527.     BRA.W    pt_VolSlideDown2
  1528.  
  1529. pt_NoteCut
  1530.     MOVEQ    #0,D0
  1531.     MOVE.B    n_cmdlo(A6),D0
  1532.     AND.B    #$0F,D0
  1533.     CMP.L    pt_Counter,D0
  1534.     BNE.W    pt_Return
  1535.     CLR.B    n_volume(A6)
  1536.     RTS
  1537.  
  1538. pt_NoteDelay
  1539.     MOVEQ    #0,D0
  1540.     MOVE.B    n_cmdlo(A6),D0
  1541.     AND.B    #$0F,D0
  1542.     CMP.L    pt_Counter,D0
  1543.     BNE.W    pt_Return
  1544.     MOVE.W    (A6),D0
  1545.     AND.W    #$0FFF,D0
  1546.     BEQ.W    pt_Return
  1547.     MOVE.L    D1,-(SP)
  1548.     BRA.W    pt_DoRetrg
  1549.  
  1550. pt_PatternDelay
  1551.     TST.L    pt_Counter
  1552.     BNE.W    pt_Return
  1553.     MOVEQ    #0,D0
  1554.     MOVE.B    n_cmdlo(A6),D0
  1555.     AND.B    #$0F,D0
  1556.     TST.B    pt_PattDelayTime2
  1557.     BNE.W    pt_Return
  1558.     ADDQ.B    #1,D0
  1559.     MOVE.B    D0,pt_PattDelayTime
  1560.     RTS
  1561.  
  1562. pt_FunkIt
  1563.     TST.L    pt_Counter
  1564.     BNE.W    pt_Return
  1565.     MOVE.B    n_cmdlo(A6),D0
  1566.     AND.B    #$0F,D0
  1567.     LSL.B    #4,D0
  1568.     AND.B    #$0F,n_glissfunk(A6)
  1569.     OR.B    D0,n_glissfunk(A6)
  1570.     TST.B    D0
  1571.     BEQ.W    pt_Return
  1572. pt_UpdateFunk
  1573.     MOVEM.L    A0/D1,-(SP)
  1574.     MOVEQ    #0,D0
  1575.     MOVE.B    n_glissfunk(A6),D0
  1576.     LSR.B    #4,D0
  1577.     BEQ.B    pt_funkend
  1578.     LEA    pt_FunkTable(PC),A0
  1579.     MOVE.B    0(a0,D0.W),D0
  1580.     ADD.B    D0,n_funkoffset(A6)
  1581.     BTST    #7,n_funkoffset(A6)
  1582.     BEQ.B    pt_funkend
  1583.     CLR.B    n_funkoffset(A6)
  1584.     MOVE.L    n_loopstart(A6),D0
  1585.     MOVEQ    #0,D1
  1586.     MOVE.W    n_replen(A6),D1
  1587.     ADD.L    D1,D0
  1588.     ADD.L    D1,D0
  1589.     MOVE.L    n_wavestart(A6),A0
  1590.     ADDQ.L    #1,A0
  1591.     CMP.L    D0,A0
  1592.     BLO.B    pt_funkok
  1593.     MOVE.L    n_loopstart(A6),A0
  1594. pt_funkok
  1595.     MOVE.L    A0,n_wavestart(A6)
  1596.     MOVEQ    #-1,D0
  1597.     SUB.B    (A0),D0
  1598.     MOVE.B    D0,(A0)
  1599. pt_funkend
  1600.     MOVEM.L    (SP)+,A0/D1
  1601.     RTS
  1602.  
  1603. pt_FunkTable
  1604.     dc.b 0,5,6,7,8,10,11,13,16,19,22,26,32,43,64,128
  1605.  
  1606. pt_VibratoTable    
  1607.     dc.b 0,24,49,74,97,120,141,161
  1608.     dc.b 180,197,212,224,235,244,250,253
  1609.     dc.b 255,253,250,244,235,224,212,197
  1610.     dc.b 180,161,141,120,97,74,49,24
  1611.  
  1612. pt_PeriodTable
  1613. ; -> Tuning 0
  1614.     dc.w    856,808,762,720,678,640,604,570,538,508,480,453
  1615.     dc.w    428,404,381,360,339,320,302,285,269,254,240,226
  1616.     dc.w    214,202,190,180,170,160,151,143,135,127,120,113,0
  1617. ; -> Tuning 1
  1618.     dc.w    850,802,757,715,674,637,601,567,535,505,477,450
  1619.     dc.w    425,401,379,357,337,318,300,284,268,253,239,225
  1620.     dc.w    213,201,189,179,169,159,150,142,134,126,119,113,0
  1621. ; -> Tuning 2
  1622.     dc.w    844,796,752,709,670,632,597,563,532,502,474,447
  1623.     dc.w    422,398,376,355,335,316,298,282,266,251,237,224
  1624.     dc.w    211,199,188,177,167,158,149,141,133,125,118,112,0
  1625. ; -> Tuning 3
  1626.     dc.w    838,791,746,704,665,628,592,559,528,498,470,444
  1627.     dc.w    419,395,373,352,332,314,296,280,264,249,235,222
  1628.     dc.w    209,198,187,176,166,157,148,140,132,125,118,111,0
  1629. ; -> Tuning 4
  1630.     dc.w    832,785,741,699,660,623,588,555,524,495,467,441
  1631.     dc.w    416,392,370,350,330,312,294,278,262,247,233,220
  1632.     dc.w    208,196,185,175,165,156,147,139,131,124,117,110,0
  1633. ; -> Tuning 5
  1634.     dc.w    826,779,736,694,655,619,584,551,520,491,463,437
  1635.     dc.w    413,390,368,347,328,309,292,276,260,245,232,219
  1636.     dc.w    206,195,184,174,164,155,146,138,130,123,116,109,0
  1637. ; -> Tuning 6
  1638.     dc.w    820,774,730,689,651,614,580,547,516,487,460,434
  1639.     dc.w    410,387,365,345,325,307,290,274,258,244,230,217
  1640.     dc.w    205,193,183,172,163,154,145,137,129,122,115,109,0
  1641. ; -> Tuning 7
  1642.     dc.w    814,768,725,684,646,610,575,543,513,484,457,431
  1643.     dc.w    407,384,363,342,323,305,288,272,256,242,228,216
  1644.     dc.w    204,192,181,171,161,152,144,136,128,121,114,108,0
  1645. ; -> Tuning -8
  1646.     dc.w    907,856,808,762,720,678,640,604,570,538,508,480
  1647.     dc.w    453,428,404,381,360,339,320,302,285,269,254,240
  1648.     dc.w    226,214,202,190,180,170,160,151,143,135,127,120,0
  1649. ; -> Tuning -7
  1650.     dc.w    900,850,802,757,715,675,636,601,567,535,505,477
  1651.     dc.w    450,425,401,379,357,337,318,300,284,268,253,238
  1652.     dc.w    225,212,200,189,179,169,159,150,142,134,126,119,0
  1653. ; -> Tuning -6
  1654.     dc.w    894,844,796,752,709,670,632,597,563,532,502,474
  1655.     dc.w    447,422,398,376,355,335,316,298,282,266,251,237
  1656.     dc.w    223,211,199,188,177,167,158,149,141,133,125,118,0
  1657. ; -> Tuning -5
  1658.     dc.w    887,838,791,746,704,665,628,592,559,528,498,470
  1659.     dc.w    444,419,395,373,352,332,314,296,280,264,249,235
  1660.     dc.w    222,209,198,187,176,166,157,148,140,132,125,118,0
  1661. ; -> Tuning -4
  1662.     dc.w    881,832,785,741,699,660,623,588,555,524,494,467
  1663.     dc.w    441,416,392,370,350,330,312,294,278,262,247,233
  1664.     dc.w    220,208,196,185,175,165,156,147,139,131,123,117,0
  1665. ; -> Tuning -3
  1666.     dc.w    875,826,779,736,694,655,619,584,551,520,491,463
  1667.     dc.w    437,413,390,368,347,328,309,292,276,260,245,232
  1668.     dc.w    219,206,195,184,174,164,155,146,138,130,123,116,0
  1669. ; -> Tuning -2
  1670.     dc.w    868,820,774,730,689,651,614,580,547,516,487,460
  1671.     dc.w    434,410,387,365,345,325,307,290,274,258,244,230
  1672.     dc.w    217,205,193,183,172,163,154,145,137,129,122,115,0
  1673. ; -> Tuning -1
  1674.     dc.w    862,814,768,725,684,646,610,575,543,513,484,457
  1675.     dc.w    431,407,384,363,342,323,305,288,272,256,242,228
  1676.     dc.w    216,203,192,181,171,161,152,144,136,128,121,114,0
  1677.  
  1678. pt_audchan1temp    dc.l    0,0,0,0,0,$00010000,0,0,0,0,0
  1679. pt_audchan2temp    dc.l    0,0,0,0,0,$00020000,0,0,0,0,0
  1680. pt_audchan3temp    dc.l    0,0,0,0,0,$00040000,0,0,0,0,0
  1681. pt_audchan4temp    dc.l    0,0,0,0,0,$00080000,0,0,0,0,0
  1682.  
  1683. pt_SampleStarts    dcb.l    31,0
  1684.  
  1685. pt_timeout    dc.w    330        ;CIA-B timeout-value
  1686. pt_Counter    dc.l    0
  1687. pt_CurrSpeed    dc.l    6
  1688. pt_PattPos    dc.w    0
  1689. pt_DMACONtemp    dc.w    0
  1690. pt_ActiveChannels
  1691.         dc.w    %00001111
  1692. pt_PatternPtr    dc.l    0
  1693. pt_PatternPosition
  1694.         dc.l    0
  1695. pt_SongPosition    dc.l    0    
  1696. pt_SongDataPtr    dc.l    0
  1697. pt_MetroSpeed    dc.b    0
  1698. pt_MetroChannel    dc.b    0
  1699. pt_Speed    dc.b    6
  1700. pt_SongPos    dc.b    0
  1701. pt_PBreakPosition
  1702.         dc.b    0
  1703. pt_PosJumpAssert
  1704.         dc.b    0
  1705. pt_PBreakFlag    dc.b    0
  1706. pt_LowMask    dc.b    0
  1707. pt_PattDelayTime
  1708.         dc.b    0
  1709. pt_PattDelayTime2
  1710.         dc.b    0
  1711.         even
  1712. pt_data:    incbin    "df0:mods/mod.hand4"
  1713.  
  1714. MCBIT:    dc.b    0
  1715.     even
  1716.  
  1717.  
  1718. WAIT_BLITTER:
  1719. waitblit:    btst    #$e,$dff002
  1720. waitblit2:    btst    #$e,$dff002
  1721.         bne.s    waitblit2
  1722.         rts
  1723. WAIT255:
  1724.     cmp.b #$fe,$dff006
  1725.     bne.s WAIT255
  1726. WAIT255a:
  1727.     cmp.b #$FF,$dff006
  1728.     bne.s WAIT255a
  1729.     rts
  1730.  
  1731. BLIT1:
  1732.  
  1733.     jsr    WAIT_BLITTER
  1734.     move.l    a0,$dff050
  1735.     move.l    #S1,$dff054
  1736.     move.w    #$ffff,$dff044
  1737.     move.w    #$ffff,$dff046
  1738.     move.w    #$0000,$dff042
  1739.     move.w    #$09f0,$dff040
  1740.     move.w    #CREDITS_MODULO_S,$dff064
  1741.     move.w    #CREDITS_MODULO_P,$dff066
  1742.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1743.  
  1744.     jsr    WAIT_BLITTER
  1745.     add.l    #2,a0
  1746.     move.l    a0,$dff050
  1747.     move.l    #S2,$dff054
  1748.     move.w    #$ffff,$dff044
  1749.     move.w    #$ffff,$dff046
  1750.     move.w    #$0000,$dff042
  1751.     move.w    #$09f0,$dff040
  1752.     move.w    #CREDITS_MODULO_S,$dff064
  1753.     move.w    #CREDITS_MODULO_P,$dff066
  1754.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1755.  
  1756.     jsr    WAIT_BLITTER
  1757.     add.l    #2,a0
  1758.     move.l    a0,$dff050
  1759.     move.l    #S3,$dff054
  1760.     move.w    #$ffff,$dff044
  1761.     move.w    #$ffff,$dff046
  1762.     move.w    #$0000,$dff042
  1763.     move.w    #$09f0,$dff040
  1764.     move.w    #CREDITS_MODULO_S,$dff064
  1765.     move.w    #CREDITS_MODULO_P,$dff066
  1766.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1767.  
  1768.     jsr    WAIT_BLITTER
  1769.     add.l    #2,a0
  1770.     move.l    a0,$dff050
  1771.     move.l    #S4,$dff054
  1772.     move.w    #$ffff,$dff044
  1773.     move.w    #$ffff,$dff046
  1774.     move.w    #$0000,$dff042
  1775.     move.w    #$09f0,$dff040
  1776.     move.w    #CREDITS_MODULO_S,$dff064
  1777.     move.w    #CREDITS_MODULO_P,$dff066
  1778.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1779.  
  1780.     jsr    WAIT_BLITTER
  1781.     add.l    #2,a0
  1782.     move.l    a0,$dff050
  1783.     move.l    #S5,$dff054
  1784.     move.w    #$ffff,$dff044
  1785.     move.w    #$ffff,$dff046
  1786.     move.w    #$0000,$dff042
  1787.     move.w    #$09f0,$dff040
  1788.     move.w    #CREDITS_MODULO_S,$dff064
  1789.     move.w    #CREDITS_MODULO_P,$dff066
  1790.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1791.  
  1792.     jsr    WAIT_BLITTER
  1793.     add.l    #2,a0
  1794.     move.l    a0,$dff050
  1795.     move.l    #S6,$dff054
  1796.     move.w    #$ffff,$dff044
  1797.     move.w    #$ffff,$dff046
  1798.     move.w    #$0000,$dff042
  1799.     move.w    #$09f0,$dff040
  1800.     move.w    #CREDITS_MODULO_S,$dff064
  1801.     move.w    #CREDITS_MODULO_P,$dff066
  1802.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1803.  
  1804.     jsr    WAIT_BLITTER
  1805.      add.l    #2,a0
  1806.     move.l    a0,$dff050
  1807.     move.l    #S7,$dff054
  1808.     move.w    #$ffff,$dff044
  1809.     move.w    #$ffff,$dff046
  1810.     move.w    #$0000,$dff042
  1811.     move.w    #$09f0,$dff040
  1812.     move.w    #CREDITS_MODULO_S,$dff064
  1813.     move.w    #CREDITS_MODULO_P,$dff066
  1814.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1815.  
  1816.     
  1817.     jsr    WAIT_BLITTER
  1818.     add.l    #2,a0
  1819.     move.l    a0,$dff050
  1820.     move.l    #S8,$dff054
  1821.     move.w    #$ffff,$dff044
  1822.     move.w    #$ffff,$dff046
  1823.     move.w    #$0000,$dff042
  1824.     move.w    #$09f0,$dff040
  1825.     move.w    #CREDITS_MODULO_S,$dff064
  1826.     move.w    #CREDITS_MODULO_P,$dff066
  1827.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1828.  
  1829.         sub.l    #14,a0
  1830.  
  1831.     jsr    WAIT_BLITTER
  1832.     add.l    #64*66,a0
  1833.     move.l    a0,$dff050
  1834.     move.l    #S1+2,$dff054
  1835.     move.w    #$ffff,$dff044
  1836.     move.w    #$ffff,$dff046
  1837.     move.w    #$0000,$dff042
  1838.     move.w    #$09f0,$dff040
  1839.     move.w    #CREDITS_MODULO_S,$dff064
  1840.     move.w    #CREDITS_MODULO_P,$dff066
  1841.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1842.  
  1843.     jsr    WAIT_BLITTER
  1844.     add.l    #2,a0
  1845.     move.l    a0,$dff050
  1846.     move.l    #S2+2,$dff054
  1847.     move.w    #$ffff,$dff044
  1848.     move.w    #$ffff,$dff046
  1849.     move.w    #$0000,$dff042
  1850.     move.w    #$09f0,$dff040
  1851.     move.w    #CREDITS_MODULO_S,$dff064
  1852.     move.w    #CREDITS_MODULO_P,$dff066
  1853.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1854.  
  1855.     jsr    WAIT_BLITTER
  1856.     add.l    #2,a0
  1857.     move.l    a0,$dff050
  1858.     move.l    #S3+2,$dff054
  1859.     move.w    #$ffff,$dff044
  1860.     move.w    #$ffff,$dff046
  1861.     move.w    #$0000,$dff042
  1862.     move.w    #$09f0,$dff040
  1863.     move.w    #CREDITS_MODULO_S,$dff064
  1864.     move.w    #CREDITS_MODULO_P,$dff066
  1865.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1866.  
  1867.     jsr    WAIT_BLITTER
  1868.     add.l    #2,a0
  1869.     move.l    a0,$dff050
  1870.     move.l    #S4+2,$dff054
  1871.     move.w    #$ffff,$dff044
  1872.     move.w    #$ffff,$dff046
  1873.     move.w    #$0000,$dff042
  1874.     move.w    #$09f0,$dff040
  1875.     move.w    #CREDITS_MODULO_S,$dff064
  1876.     move.w    #CREDITS_MODULO_P,$dff066
  1877.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1878.  
  1879.     jsr    WAIT_BLITTER
  1880.     add.l    #2,a0
  1881.     move.l    a0,$dff050
  1882.     move.l    #S5+2,$dff054
  1883.     move.w    #$ffff,$dff044
  1884.     move.w    #$ffff,$dff046
  1885.     move.w    #$0000,$dff042
  1886.     move.w    #$09f0,$dff040
  1887.     move.w    #CREDITS_MODULO_S,$dff064
  1888.     move.w    #CREDITS_MODULO_P,$dff066
  1889.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1890.  
  1891.     jsr    WAIT_BLITTER
  1892.     add.l    #2,a0
  1893.     move.l    a0,$dff050
  1894.     move.l    #S6+2,$dff054
  1895.     move.w    #$ffff,$dff044
  1896.     move.w    #$ffff,$dff046
  1897.     move.w    #$0000,$dff042
  1898.     move.w    #$09f0,$dff040
  1899.     move.w    #CREDITS_MODULO_S,$dff064
  1900.     move.w    #CREDITS_MODULO_P,$dff066
  1901.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1902.  
  1903.     jsr    WAIT_BLITTER
  1904.     add.l    #2,a0
  1905.     move.l    a0,$dff050
  1906.     move.l    #S7+2,$dff054
  1907.     move.w    #$ffff,$dff044
  1908.     move.w    #$ffff,$dff046
  1909.     move.w    #$0000,$dff042
  1910.     move.w    #$09f0,$dff040
  1911.     move.w    #CREDITS_MODULO_S,$dff064
  1912.     move.w    #CREDITS_MODULO_P,$dff066
  1913.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1914.  
  1915.     jsr    WAIT_BLITTER
  1916.     add.l    #2,a0
  1917.     move.l    a0,$dff050
  1918.     move.l    #S8+2,$dff054
  1919.     move.w    #$ffff,$dff044
  1920.     move.w    #$ffff,$dff046
  1921.     move.w    #$0000,$dff042
  1922.     move.w    #$09f0,$dff040
  1923.     move.w    #CREDITS_MODULO_S,$dff064
  1924.     move.w    #CREDITS_MODULO_P,$dff066
  1925.     move.w    #[ILE_KOPIUJ*64+1],$dff058
  1926.     rts
  1927.  
  1928. PRZERWANIE_INIT:
  1929.     move.l    $6c,STARY_WEKTOR
  1930.     move.l    #PRZERWANIE_LOOP,$6c
  1931.     move.w    #%1100000000100000,$dff09a    ; intena
  1932.     rts
  1933.  
  1934. STARY_WEKTOR:
  1935.     dc.l    0
  1936. PRZERWANIE_LOOP:
  1937.  
  1938.  
  1939.     movem.l    d0-d7/a0-a6,-(a7)
  1940.  
  1941.     move.w    $dff01e,d0        ; intreqr
  1942.     and.w    #%100000,d0
  1943.     beq.b    NIE_TO_PRZERWANIE
  1944.     move.w    #%0000000000100000,$dff09c    ; intreq
  1945.  
  1946.     jsr    pt_PlayMusic
  1947.  
  1948.     movem.l    (a7)+,d0-d7/a0-a6
  1949.     rte
  1950. NIE_TO_PRZERWANIE:
  1951.     movem.l    (a7)+,d0-d7/a0-a6
  1952.     rte    
  1953.  
  1954. USTAW_SPRITES:
  1955.         move.l    #CopperList,a0
  1956.  
  1957.         move.l #SPRITTE1,d0    ;    N
  1958.         move.w d0,6(a0)
  1959.         swap d0
  1960.         move.w d0,2(a0)
  1961.         add.l    #8,a0
  1962.         move.l #SPRITTE2,d0    ;    N
  1963.         move.w d0,6(a0)
  1964.         swap d0
  1965.         move.w d0,2(a0)
  1966.         add.l    #8,a0
  1967.         move.l #SPRITTE3,d0    ;    T
  1968.         move.w d0,6(a0)
  1969.         swap d0
  1970.         move.w d0,2(a0)
  1971.         add.l    #8,a0
  1972.         move.l #SPRITTE4,d0    ;    T
  1973.         move.w d0,6(a0)
  1974.         swap d0
  1975.         move.w d0,2(a0)
  1976.         add.l    #8,a0
  1977.         move.l #SPRITTE5,d0    ;    T
  1978.         move.w d0,6(a0)
  1979.         swap d0
  1980.         move.w d0,2(a0)
  1981.         add.l    #8,a0
  1982.         move.l #SPRITTE6,d0    ;    T
  1983.         move.w d0,6(a0)
  1984.         swap d0
  1985.         move.w d0,2(a0)
  1986.         add.l    #8,a0
  1987.         move.l #SPRITTE7,d0    ;    T
  1988.         move.w d0,6(a0)
  1989.         swap d0
  1990.         move.w d0,2(a0)
  1991.         add.l    #8,a0
  1992.         move.l #SPRITTE8,d0    ;    T
  1993.         move.w d0,6(a0)
  1994.         swap d0
  1995.         move.w d0,2(a0)
  1996.  
  1997.         rts
  1998.  
  1999. USTAW_VIRTUAL_SPRITES:
  2000.         move.l    #CopperList,a0
  2001.  
  2002.         move.l #VIRSPR,d0
  2003.         move.w d0,6(a0)
  2004.         swap d0
  2005.         move.w d0,2(a0)
  2006.  
  2007.         move.l #VIRSPR,d0
  2008.         move.w d0,14(a0)
  2009.         swap d0
  2010.         move.w d0,10(a0)
  2011.  
  2012.         move.l #VIRSPR,d0
  2013.         move.w d0,22(a0)
  2014.         swap d0
  2015.         move.w d0,18(a0)
  2016.  
  2017.         move.l #VIRSPR,d0
  2018.         move.w d0,30(a0)
  2019.         swap d0
  2020.         move.w d0,26(a0)
  2021.  
  2022.         move.l #VIRSPR,d0
  2023.         move.w d0,38(a0)
  2024.         swap d0
  2025.         move.w d0,34(a0)
  2026.  
  2027.         move.l #VIRSPR,d0
  2028.         move.w d0,46(a0)
  2029.         swap d0
  2030.         move.w d0,42(a0)
  2031.  
  2032.         move.l #VIRSPR,d0
  2033.         move.w d0,54(a0)
  2034.         swap d0
  2035.         move.w d0,50(a0)
  2036.  
  2037.         move.l #VIRSPR,d0
  2038.         move.w d0,62(a0)
  2039.         swap d0
  2040.         move.w d0,58(a0)
  2041.  
  2042.         rts
  2043.  
  2044. ZOOM:
  2045.     move.l    #IL_LINI,d7
  2046.     move.l    #0,d5
  2047.     move.l    #ZOOMER,a0
  2048.     move.l    START_POSITION,d0
  2049.     move.l    END_POSITION,d1
  2050.     move.w    #$0108,d2
  2051.     move.w    #$010a,d3
  2052.     move.l    #ILE_ZOOM,d4
  2053.     rol.l    #8,d4
  2054.     rol.l    #8,d4
  2055.     rol.l    #8,d4
  2056.  
  2057. ZOOM_LOOP:
  2058.     btst    #0,CCBIT
  2059.     bne    ZZZ
  2060.     cmp.l    #ODD,d5
  2061.     beq    ZOOM_END
  2062.     bgt    ZOOM_END
  2063. ZZZ:
  2064.     move.l    d0,(a0)+
  2065.     move.w    d2,(a0)+
  2066.     move.w    #OFFSET1,(a0)+
  2067.     move.w    d3,(a0)+
  2068.     move.w    #OFFSET1,(a0)+
  2069.  
  2070.     add.l    #ILE_ZOOM,d5
  2071.     sub.l    #ILE_ZOOM,d7
  2072.     cmp.l    #$0,d7
  2073.     beq    ZOOM_END1
  2074.     bmi    ZOOM_END1
  2075.     add.l    d4,d0
  2076.     btst    #0,CCBIT
  2077.     bne    ZZZ1
  2078.     cmp.l    #ODD,d5
  2079.     beq    ZOOM_END2
  2080.     bgt    ZOOM_END2
  2081. ZZZ1:
  2082.     move.l    d0,(a0)+
  2083.     move.w    d2,(a0)+
  2084.     move.w    #OFFSET,(a0)+
  2085.     move.w    d3,(a0)+
  2086.     move.w    #OFFSET,(a0)+
  2087.  
  2088.     add.l    #$01000000,d0
  2089.     add.l    #1,d5
  2090.     sub.l    #1,d7
  2091.     cmp.l    #$0,d7
  2092.     beq    ZOOM_END1
  2093.     bmi    ZOOM_END1
  2094.     bra    ZOOM_LOOP
  2095. ZOOM_END1:
  2096.     move.l    #$FFFFFFFE,(a0)
  2097.     rts
  2098. ZOOM_END:
  2099.     bset    #0,CCBIT
  2100.     move.l    #$FFDFFFFE,(a0)+
  2101.     bra    ZZZ
  2102. ZOOM_END2:
  2103.     bset    #0,CCBIT
  2104.     move.l    #$FFDFFFFE,(a0)+
  2105.     bra    ZZZ1
  2106. SCR:
  2107.     move.w    #ILE_SCROLUJ,d7
  2108.     move.w    #$00FF,SCROLL+2
  2109. SCROLL_PR:
  2110.     btst    #1,CCBIT
  2111.     bne    FADESCREDS
  2112.  
  2113.     btst    #2,CCBIT
  2114.     bne    FADESCREDS12
  2115.  
  2116.     cmp.b    #$01,MCBIT
  2117.     beq    EBPILS
  2118.  
  2119.     btst    #3,CCBIT
  2120.     bne    FADES
  2121.  
  2122.     cmp.w    #1500,d7
  2123.     beq    ZMSP1
  2124.  
  2125.     cmp.w    #1280,d7
  2126.     beq    ZPSPV
  2127.  
  2128.     cmp.w    #1260,d7
  2129.     beq    ZMSP2
  2130.  
  2131.     cmp.w    #940,d7
  2132.     beq    ZPSPV
  2133.  
  2134.     cmp.w    #920,d7
  2135.     beq    ZMSP3
  2136.  
  2137.     cmp.w    #600,d7
  2138.     beq    ZPSPV
  2139.  
  2140.     cmp.w    #580,d7
  2141.     beq    ZMSP4
  2142.  
  2143.     cmp.w    #260,d7
  2144.     beq    ZPSPV
  2145.  
  2146.     cmp.w    #220,d7
  2147.     beq    FADE_BEGIN
  2148.  
  2149. SCROLL_BACK:
  2150.     jsr    WAIT255
  2151.     move.w    SCROLL+2,d0
  2152.     cmp.w    #$0000,d0
  2153.     beq    ADDUJ
  2154.     sub.w    #$0011,SCROLL+2
  2155.     dbf    d7,SCROLL_PR
  2156. EBPILS:
  2157.     rts
  2158. FADES:
  2159.     move.l    #COLORMAP,a0
  2160.     add.l    #2,a0
  2161.     move.l    #31,d7
  2162. TO_BLACK:
  2163.     moveq    #0,d1
  2164.     move.w    (a0),d0
  2165.     cmp.w    #0,d0
  2166.     beq    NEXT_C
  2167. CH1:
  2168.     and.w    #$00F,d0
  2169.     cmp.w    #0,d0
  2170.     beq    CH2
  2171.     sub.w    #$001,d0
  2172.     add.w    d0,d1
  2173. CH2:
  2174.     move.w    (a0),d0
  2175.     and.w    #$0F0,d0
  2176.     cmp.w    #0,d0
  2177.     beq    CH3
  2178.     sub.w    #$010,d0
  2179.     add.w    d0,d1
  2180. CH3:
  2181.     move.w    (a0),d0
  2182.     and.w    #$F00,d0
  2183.     cmp.w    #0,d0
  2184.     beq    NEXT_C
  2185.     sub.w    #$100,d0
  2186.     add.w    d0,d1
  2187. NEXT_C:
  2188.     move.w    d1,(a0)+
  2189.     add.l    #2,a0
  2190.     dbf    d7,TO_BLACK
  2191.     bra    SCROLL_BACK
  2192.  
  2193. FADE_BEGIN:
  2194.     bset    #3,CCBIT
  2195.     bra    SCROLL_BACK
  2196.  
  2197. ZMSP1:
  2198.     jsr    USTAW_VIRTUAL_SPRITES
  2199.  
  2200.     bset    #2,CCBIT
  2201.  
  2202.     move.w    #$0000,CREDCOLOR+2
  2203.     move.w    #$0000,CREDCOLOR+6
  2204.     move.w    #$0000,CREDCOLOR+10
  2205.     move.w    #$0000,CREDCOLOR+14
  2206.     move.w    #$0000,CREDCOLOR+18
  2207.     move.w    #$0000,CREDCOLOR+22
  2208.     move.w    #$0000,CREDCOLOR+26
  2209.     move.w    #$0000,CREDCOLOR+30
  2210.     move.w    #$0000,CREDCOLOR+34
  2211.     move.w    #$0000,CREDCOLOR+38
  2212.     move.w    #$0000,CREDCOLOR+42
  2213.     move.w    #$0000,CREDCOLOR+46
  2214.     move.w    #$0000,CREDCOLOR+50
  2215.     move.w    #$0000,CREDCOLOR+54
  2216.     move.w    #$0000,CREDCOLOR+58
  2217.     move.w    #$0000,CREDCOLOR+62
  2218.  
  2219.     move.l    creditsa,a0
  2220.     jsr    BLIT1
  2221.     jsr    USTAW_SPRITES
  2222.     bra    SCROLL_BACK
  2223.  
  2224. ZMSP2:
  2225.     jsr    USTAW_VIRTUAL_SPRITES
  2226.  
  2227.     bset    #2,CCBIT
  2228.  
  2229.     move.w    #$0000,CREDCOLOR+2
  2230.     move.w    #$0000,CREDCOLOR+6
  2231.     move.w    #$0000,CREDCOLOR+10
  2232.     move.w    #$0000,CREDCOLOR+14
  2233.     move.w    #$0000,CREDCOLOR+18
  2234.     move.w    #$0000,CREDCOLOR+22
  2235.     move.w    #$0000,CREDCOLOR+26
  2236.     move.w    #$0000,CREDCOLOR+30
  2237.     move.w    #$0000,CREDCOLOR+34
  2238.     move.w    #$0000,CREDCOLOR+38
  2239.     move.w    #$0000,CREDCOLOR+42
  2240.     move.w    #$0000,CREDCOLOR+46
  2241.     move.w    #$0000,CREDCOLOR+50
  2242.     move.w    #$0000,CREDCOLOR+54
  2243.     move.w    #$0000,CREDCOLOR+58
  2244.     move.w    #$0000,CREDCOLOR+62
  2245.  
  2246.     move.w    #180*$100+100,spritte1
  2247.     move.w    #180*$100+65*$100,spritte1+2
  2248.     move.w    #180*$100+100+8,spritte2
  2249.     move.w    #180*$100+65*$100,spritte2+2
  2250.     move.w    #180*$100+100+8+8,spritte3
  2251.     move.w    #180*$100+65*$100,spritte3+2
  2252.     move.w    #180*$100+100+8+8+8,spritte4
  2253.     move.w    #180*$100+65*$100,spritte4+2
  2254.     move.w    #180*$100+100+8+8+8+8,spritte5
  2255.     move.w    #180*$100+65*$100,spritte5+2
  2256.     move.w    #180*$100+100+8+8+8+8+8,spritte6
  2257.     move.w    #180*$100+65*$100,spritte6+2
  2258.     move.w    #180*$100+100+8+8+8+8+8+8,spritte7
  2259.     move.w    #180*$100+65*$100,spritte7+2
  2260.     move.w    #180*$100+100+8+8+8+8+8+8+8,spritte8
  2261.     move.w    #180*$100+65*$100,spritte8+2
  2262.     move.l    creditsa,a0
  2263.     add.l    #16,a0
  2264.     jsr    BLIT1
  2265.     jsr    USTAW_SPRITES
  2266.     bra    SCROLL_BACK
  2267.  
  2268. ZMSP3:
  2269.     jsr    USTAW_VIRTUAL_SPRITES
  2270.  
  2271.     bset    #2,CCBIT
  2272.  
  2273.     move.w    #$0000,CREDCOLOR+2
  2274.     move.w    #$0000,CREDCOLOR+6
  2275.     move.w    #$0000,CREDCOLOR+10
  2276.     move.w    #$0000,CREDCOLOR+14
  2277.     move.w    #$0000,CREDCOLOR+18
  2278.     move.w    #$0000,CREDCOLOR+22
  2279.     move.w    #$0000,CREDCOLOR+26
  2280.     move.w    #$0000,CREDCOLOR+30
  2281.     move.w    #$0000,CREDCOLOR+34
  2282.     move.w    #$0000,CREDCOLOR+38
  2283.     move.w    #$0000,CREDCOLOR+42
  2284.     move.w    #$0000,CREDCOLOR+46
  2285.     move.w    #$0000,CREDCOLOR+50
  2286.     move.w    #$0000,CREDCOLOR+54
  2287.     move.w    #$0000,CREDCOLOR+58
  2288.     move.w    #$0000,CREDCOLOR+62
  2289.  
  2290.     move.w    #80*$100+70,spritte1
  2291.     move.w    #80*$100+65*$100,spritte1+2
  2292.     move.w    #80*$100+70+8,spritte2
  2293.     move.w    #80*$100+65*$100,spritte2+2
  2294.     move.w    #80*$100+70+16,spritte3
  2295.     move.w    #80*$100+65*$100,spritte3+2
  2296.     move.w    #80*$100+70+24,spritte4
  2297.     move.w    #80*$100+65*$100,spritte4+2
  2298.     move.w    #80*$100+70+32,spritte5
  2299.     move.w    #80*$100+65*$100,spritte5+2
  2300.     move.w    #80*$100+70+40,spritte6
  2301.     move.w    #80*$100+65*$100,spritte6+2
  2302.     move.w    #80*$100+70+48,spritte7
  2303.     move.w    #80*$100+65*$100,spritte7+2
  2304.     move.w    #80*$100+70+56,spritte8
  2305.     move.w    #80*$100+65*$100,spritte8+2
  2306.  
  2307.     move.l    creditsa,a0
  2308.     add.l    #16+16,a0
  2309.     jsr    BLIT1
  2310.     jsr    USTAW_SPRITES
  2311.     bra    SCROLL_BACK
  2312. FADESCREDS:
  2313.     cmp.b    #0,WAITED
  2314.     bne    FADESCREDS_END
  2315.     move.b    #5,WAITED
  2316.     cmp.w    #$0ddd,CREDCOLOR+6
  2317.     beq    FADESCREDS1
  2318.     sub.w    #$0111,CREDCOLOR+6
  2319.     sub.w    #$0111,CREDCOLOR+22
  2320.     sub.w    #$0111,CREDCOLOR+38
  2321.     sub.w    #$0111,CREDCOLOR+54
  2322. FADESCREDS1:
  2323.     cmp.w    #$0999,CREDCOLOR+10
  2324.     beq    FADESCREDS2
  2325.     sub.w    #$0111,CREDCOLOR+10
  2326.     sub.w    #$0111,CREDCOLOR+26
  2327.     sub.w    #$0111,CREDCOLOR+42
  2328.     sub.w    #$0111,CREDCOLOR+58
  2329. FADESCREDS2:
  2330.     cmp.w    #$0555,CREDCOLOR+14
  2331.     beq    FADESCREDS3
  2332.     sub.w    #$0111,CREDCOLOR+14
  2333.     sub.w    #$0111,CREDCOLOR+30
  2334.     sub.w    #$0111,CREDCOLOR+46
  2335.     sub.w    #$0111,CREDCOLOR+62
  2336.     bra    FADESCREDS_END
  2337. FADESCREDS3:
  2338.     bclr    #1,CCBIT
  2339. FADESCREDS_END:
  2340.     sub.b    #1,WAITED
  2341.     bra    SCROLL_BACK
  2342.  
  2343. FADESCREDS12:
  2344.     cmp.b    #0,WAITED
  2345.     bne    FADESCREDS_END1
  2346.     move.b    #1,WAITED
  2347.     cmp.w    #$0FFF,CREDCOLOR+6
  2348.     beq    FADESCREDS11
  2349.     add.w    #$0111,CREDCOLOR+6
  2350.     add.w    #$0111,CREDCOLOR+22
  2351.     add.w    #$0111,CREDCOLOR+38
  2352.     add.w    #$0111,CREDCOLOR+54
  2353.     add.w    #$0111,CREDCOLOR+10
  2354.     add.w    #$0111,CREDCOLOR+26
  2355.     add.w    #$0111,CREDCOLOR+42
  2356.     add.w    #$0111,CREDCOLOR+58
  2357.     add.w    #$0111,CREDCOLOR+14
  2358.     add.w    #$0111,CREDCOLOR+30
  2359.     add.w    #$0111,CREDCOLOR+46
  2360.     add.w    #$0111,CREDCOLOR+62
  2361.     bra    FADESCREDS_END1
  2362. FADESCREDS11:
  2363.     bclr    #2,CCBIT
  2364.     bset    #1,CCBIT
  2365.     move.b    #1,WAITED
  2366. FADESCREDS_END1:
  2367.     sub.b    #1,WAITED
  2368.     bra    SCROLL_BACK
  2369.  
  2370. ZMSP4:
  2371.     jsr    USTAW_VIRTUAL_SPRITES
  2372.  
  2373.     bset    #2,CCBIT
  2374.  
  2375.     move.w    #$0000,CREDCOLOR+2
  2376.     move.w    #$0000,CREDCOLOR+6
  2377.     move.w    #$0000,CREDCOLOR+10
  2378.     move.w    #$0000,CREDCOLOR+14
  2379.     move.w    #$0000,CREDCOLOR+18
  2380.     move.w    #$0000,CREDCOLOR+22
  2381.     move.w    #$0000,CREDCOLOR+26
  2382.     move.w    #$0000,CREDCOLOR+30
  2383.     move.w    #$0000,CREDCOLOR+34
  2384.     move.w    #$0000,CREDCOLOR+38
  2385.     move.w    #$0000,CREDCOLOR+42
  2386.     move.w    #$0000,CREDCOLOR+46
  2387.     move.w    #$0000,CREDCOLOR+50
  2388.     move.w    #$0000,CREDCOLOR+54
  2389.     move.w    #$0000,CREDCOLOR+58
  2390.     move.w    #$0000,CREDCOLOR+62
  2391.  
  2392.     move.w    #180*$100+160,spritte1
  2393.     move.w    #180*$100+65*$100,spritte1+2
  2394.     move.w    #180*$100+160+8,spritte2
  2395.     move.w    #180*$100+65*$100,spritte2+2
  2396.     move.w    #180*$100+160+8+8,spritte3
  2397.     move.w    #180*$100+65*$100,spritte3+2
  2398.     move.w    #180*$100+160+8+8+8,spritte4
  2399.     move.w    #180*$100+65*$100,spritte4+2
  2400.     move.w    #180*$100+160+8+8+8+8,spritte5
  2401.     move.w    #180*$100+65*$100,spritte5+2
  2402.     move.w    #180*$100+160+8+8+8+8+8,spritte6
  2403.     move.w    #180*$100+65*$100,spritte6+2
  2404.     move.w    #180*$100+160+8+8+8+8+8+8,spritte7
  2405.     move.w    #180*$100+65*$100,spritte7+2
  2406.     move.w    #180*$100+160+8+8+8+8+8+8+8,spritte8
  2407.     move.w    #180*$100+65*$100,spritte8+2
  2408.  
  2409.     move.l    creditsa,a0
  2410.     add.l    #16+16+16,a0
  2411.     jsr    BLIT1
  2412.     jsr    USTAW_SPRITES
  2413.     bra    SCROLL_BACK
  2414.  
  2415. ZPSPV:
  2416.     jsr    USTAW_VIRTUAL_SPRITES
  2417.     bra    SCROLL_BACK
  2418. ADDUJ:
  2419.     move.w    #$00FF,SCROLL+2
  2420.     add.l    #2,PICTR1
  2421.     add.l    #2,PICTR2
  2422.     add.l    #2,PICTR3
  2423.     add.l    #2,PICTR4
  2424.     move.l PICTR1,d0
  2425.     move.w d0,BITPLAN1+2
  2426.     swap d0
  2427.     move.w d0,BITPLAN0+2
  2428.     move.l PICTR2,d0
  2429.     move.w d0,BITPLAN3+2
  2430.     swap d0
  2431.     move.w d0,BITPLAN2+2
  2432.     move.l PICTR3,d0
  2433.     move.w d0,BITPLAN5+2
  2434.     swap d0
  2435.     move.w d0,BITPLAN4+2
  2436.     move.l PICTR4,d0
  2437.     move.w d0,BITPLAN7+2
  2438.     swap d0
  2439.     move.w d0,BITPLAN6+2
  2440.     bra    SCROLL_PR
  2441.  
  2442. CHANGE_PALETTE:
  2443.     move.l    #COLORMAP,a0
  2444.     move.w    #15,d7
  2445.     move.l    #PALETTE,a1
  2446. CHPL:
  2447.     add.l    #2,a0
  2448.     move.w    (a1)+,(a0)+
  2449.     dbf    d7,CHPL
  2450.     rts
  2451.  
  2452.  
  2453.  
  2454. MOUSE_WALL1:
  2455.     move.l    SHADE_TABLE,a6
  2456.     move.l    a6,PLANE
  2457.     jsr    CHANGE_PALETTE1
  2458.  
  2459.         move.l PICTR1K,d0
  2460.         move.w d0,BITPLAN1w+2
  2461.         swap d0
  2462.         move.w d0,BITPLAN0w+2
  2463.         move.l PICTR2K,d0
  2464.         move.w d0,BITPLAN3w+2
  2465.         swap d0
  2466.         move.w d0,BITPLAN2w+2
  2467.         move.l PICTR3K,d0
  2468.         move.w d0,BITPLAN5w+2
  2469.         swap d0
  2470.         move.w d0,BITPLAN4w+2
  2471.         move.l plane,d0
  2472.         move.w d0,BITPLAN7w+2
  2473.         swap d0
  2474.         move.w d0,BITPLAN6w+2
  2475.         move.l plane,d0
  2476.         move.w d0,BITPLAN9w+2
  2477.         swap d0
  2478.         move.w d0,BITPLAN8w+2
  2479.  
  2480.         lea    $dff000,a6
  2481.         move.l  #copperlistwall,$80(a6)
  2482.         clr.w   $88(a6)
  2483.         move.w    #200,GLEMBIA
  2484.         move.w    #4,ANGL
  2485.         move.w    #105,d7
  2486.  
  2487.     move.l    #SHADE_TABLE,a0
  2488.     move.l    (a0)+,PLANE
  2489.     jsr    WAIT_BLITTER
  2490.     jsr    CLEARSCREEN
  2491.     move.l    (a0)+,PLANE
  2492.     jsr    WAIT_BLITTER
  2493.     jsr    CLEARSCREEN
  2494.     move.l    (a0)+,PLANE
  2495.     jsr    WAIT_BLITTER
  2496.     jsr    CLEARSCREEN
  2497.     move.l    (a0)+,PLANE
  2498.     jsr    WAIT_BLITTER
  2499.     jsr    CLEARSCREEN
  2500.     move.l    (a0)+,PLANE
  2501.     jsr    WAIT_BLITTER
  2502.     jsr    CLEARSCREEN
  2503.  
  2504. MOUSE1:
  2505.     move.w    d7,ROTBUF
  2506.     jsr    ODDOD
  2507.     jsr    WAIT
  2508.     move.l    #WAL1I,COORDS_1
  2509.     move.l    #WAL1D,datalines
  2510.     move.w    ANGLEZ,BUFOR1
  2511.     jsr    WAIT_BLITTER
  2512.     jsr    CLEARSCREEN
  2513.     jsr    ROTATE
  2514.     jsr    WAIT_BLITTER
  2515.     jsr    DRAWLINES
  2516.     jsr    WAIT_BLITTER
  2517.     jsr    FILL
  2518.     jsr    CHBUFSb
  2519.     move.l    #WAL2I,COORDS_1
  2520.     move.l    #WAL2D,datalines
  2521.     move.w    BUFOR1,ANGLEZ
  2522.     jsr    WAIT_BLITTER
  2523.     jsr    CLEARSCREEN
  2524.     jsr    ROTATE
  2525.     jsr    WAIT_BLITTER
  2526.     jsr    DRAWLINES
  2527.     jsr    WAIT_BLITTER
  2528.     jsr    FILL
  2529.     jsr    CHBUFSb1
  2530.     move.w    ROTBUF,d7
  2531.     dbf    d7,mouse1
  2532.     jsr    MOUSE_HAND
  2533.     rts
  2534.  
  2535. MOUSE_HAND:
  2536.     cmp.b    #$07,MCBIT
  2537.     bne    MOUSE_HAND
  2538.     jsr    CHANGE_PALETTE5
  2539.     jsr    WAIT255
  2540.     jsr    WAIT255
  2541.     jsr    CHANGE_PALETTE2
  2542.         move.w    #160,GLEMBIA
  2543.         move.w    #4,ANGL
  2544.         move.w    #0,ANGX
  2545.         move.w    #0,ANGY
  2546.         move.w    #45,d7
  2547. MOUSE_HAND1:
  2548.         add.w    #2,glembia
  2549.         move.w    d7,ROTBUF
  2550.         jsr    WAIT
  2551.         jsr    WAIT_BLITTER
  2552.         jsr    CLEARSCREEN
  2553.         move.l    #H1,COORDS_1
  2554.         move.l    #H1D,datalines
  2555.         jsr    ROTATE
  2556.         jsr    WAIT_BLITTER
  2557.         jsr    DRAWLINES
  2558.         jsr    WAIT_BLITTER
  2559.         jsr    FILL
  2560.         jsr    CHBUFSb
  2561.  
  2562.     jsr    WAIT_BLITTER
  2563.     jsr    CLEARSCREEN
  2564.     move.l    #H2,COORDS_1
  2565.     move.l    #H2D,datalines
  2566.     jsr    ROTATE
  2567.     jsr    WAIT_BLITTER
  2568.     jsr    DRAWLINES
  2569.     jsr    WAIT_BLITTER
  2570.     jsr    FILL
  2571.     jsr    CHBUFSb1
  2572.     move.w    ROTBUF,d7
  2573.     dbf    d7,MOUSE_HAND1
  2574.     move.w    #2,ANGL
  2575.     move.w    #8,ANGX
  2576.     move.w    #0,ANGY
  2577.     move.w    #0,CCBIT
  2578.     move.w    #320,d7
  2579.     move.w    #161,XPZ
  2580.     move.w    #128,YPZ
  2581.  
  2582. MOUSE_HAND2:
  2583.     move.w    d7,ROTBUF
  2584.     jsr    WAIT
  2585.     cmp.b    #$02,MCBIT
  2586.     beq    BLOB3
  2587.     btst    #1,CCBIT
  2588.     bne    BLOB1
  2589.     jsr    CHANGE_PALETTE4
  2590.     bra    BLOB2
  2591. BLOB1:
  2592.     jsr    CHANGE_PALETTE2
  2593. BLOB2:
  2594.     jsr    WAIT_BLITTER
  2595.     jsr    CLEARSCREEN
  2596.     move.l    #H1,COORDS_1
  2597.     move.l    #H1D,datalines
  2598.     jsr    ROTATE
  2599.     jsr    WAIT_BLITTER
  2600.     jsr    DRAWLINES
  2601.     jsr    WAIT_BLITTER
  2602.     jsr    FILL
  2603.     jsr    CHBUFSb
  2604.     jsr    WAIT_BLITTER
  2605.     jsr    CLEARSCREEN
  2606.     move.l    #H2,COORDS_1
  2607.     move.l    #H2D,datalines
  2608.     jsr    ROTATE
  2609.     jsr    WAIT_BLITTER
  2610.     jsr    DRAWLINES
  2611.     jsr    WAIT_BLITTER
  2612.     jsr    FILL
  2613.     jsr    CHBUFSb1
  2614.     move.w    ROTBUF,d7
  2615.     bra    MOUSE_HAND2
  2616. BLOB3:
  2617.     jsr    CHANGE_PALETTE5
  2618.     jsr    WAIT
  2619.     jsr    CHANGE_PALETTE3
  2620.     jsr    WAIT
  2621.     move.b    #$02,d0
  2622.     jsr    WAITMC
  2623.     jsr    CHANGE_PALETTE5
  2624.     jsr    WAIT
  2625.     jsr    CHANGE_PALETTE3
  2626.     jsr    WAIT
  2627.     move.b    #$02,d0
  2628.     jsr    WAITMC
  2629.     jsr    CHANGE_PALETTE5
  2630.     jsr    WAIT
  2631.     jsr    CHANGE_PALETTE3
  2632.     jsr    WAIT
  2633.     move.b    #$02,d0
  2634.     jsr    WAITMC
  2635.     jsr    CHANGE_PALETTE5
  2636.     jsr    WAIT
  2637.     jsr    CHANGE_PALETTE3
  2638.     jsr    WAIT
  2639.     move.b    #$02,d0
  2640.     jsr    WAITMC
  2641.     jsr    CHANGE_PALETTE5
  2642.     jsr    WAIT
  2643.     jsr    CHANGE_PALETTE3
  2644.     jsr    WAIT
  2645.     move.b    #$02,d0
  2646.     jsr    WAITMC
  2647. TUNEL:
  2648.     move.l    #SHADE_TABLE,a0
  2649.     move.l    (a0)+,PLANE
  2650.     jsr    WAIT_BLITTER
  2651.     jsr    CLEARSCREEN
  2652.     move.l    (a0)+,PLANE
  2653.     jsr    WAIT_BLITTER
  2654.     jsr    CLEARSCREEN
  2655.     move.l    (a0)+,PLANE
  2656.     jsr    WAIT_BLITTER
  2657.     jsr    CLEARSCREEN
  2658.     move.l    (a0)+,PLANE
  2659.     jsr    WAIT_BLITTER
  2660.     jsr    CLEARSCREEN
  2661.     move.l    (a0)+,PLANE
  2662.     jsr    WAIT_BLITTER
  2663.     jsr    CLEARSCREEN
  2664.  
  2665.         move.l PLANE,d0
  2666.         move.w d0,BITPLAN1w+2
  2667.         swap d0
  2668.         move.w d0,BITPLAN0w+2
  2669.         move.l PLANE,d0
  2670.         move.w d0,BITPLAN3w+2
  2671.         swap d0
  2672.         move.w d0,BITPLAN2w+2
  2673.         move.l PLANE,d0
  2674.         move.w d0,BITPLAN5w+2
  2675.         swap d0
  2676.         move.w d0,BITPLAN4w+2
  2677.         move.l PLANE,d0
  2678.         move.w d0,BITPLAN7w+2
  2679.         swap d0
  2680.         move.w d0,BITPLAN6w+2
  2681.         move.l PLANE,d0
  2682.         move.w d0,BITPLAN9w+2
  2683.         swap d0
  2684.         move.w d0,BITPLAN8w+2
  2685.  
  2686.     jsr    CHANGE_PALETTE6
  2687.  
  2688.     ;po rot transform
  2689.  
  2690.  
  2691.     move.w    #220,GLEMBIA
  2692.     move.w    ANGLEZ,BUFOR2
  2693.     move.w    #0,ANGLEZ
  2694.     move.w    #0,ANGLEY
  2695.     move.w    #0,ANGLEX
  2696.  
  2697.     move.w    #0,ANGL
  2698.     move.w    #0,ANGY
  2699.     move.w    #0,ANGX
  2700.  
  2701.     move.w    #-6,ang1
  2702.     move.w    #-6,ang2
  2703.     move.w    #-6,ang3
  2704.     move.w    #-6,ang4
  2705.     move.w    #-6,ang5
  2706.     move.w    #-6,ang6
  2707.     move.w    #-6,ang7
  2708.     move.w    #-6,ang8
  2709.  
  2710. mouse1T:
  2711.     jsr    WAIT
  2712.     jsr    TUNEL_LOOP
  2713.     jsr    WAIT
  2714.     jsr    TUNEL_LOOP
  2715.     cmp.b    #$0A,MCBIT
  2716.     bne    mouse1T
  2717.     move.b    #00,MCBIT
  2718.     jsr    CHANGE_PALETTE5
  2719.     jsr    WAIT
  2720.     jsr    WAIT
  2721.     jsr    CHANGE_PALETTE6
  2722.     jsr    WAIT
  2723.     jsr    WAIT
  2724.     move.w    #6,ang1
  2725.     move.w    #6,ang2
  2726.     move.w    #6,ang3
  2727.     move.w    #6,ang4
  2728.     move.w    #6,ang5
  2729.     move.w    #6,ang6
  2730.     move.w    #6,ang7
  2731.     move.w    #6,ang8
  2732.  
  2733. mouse2T:
  2734.     jsr    WAIT
  2735.     jsr    TUNEL_LOOP
  2736.     cmp.b    #$0A,MCBIT
  2737.     bne    mouse2T
  2738.     move.b    #00,MCBIT
  2739.     jsr    CHANGE_PALETTE5
  2740.     jsr    WAIT
  2741.     jsr    WAIT
  2742.     jsr    CHANGE_PALETTE6
  2743.     jsr    WAIT
  2744.     jsr    WAIT
  2745.  
  2746.     move.w    #-6,ang1
  2747.     move.w    #-6,ang2
  2748.     move.w    #-6,ang3
  2749.     move.w    #-6,ang4
  2750.     move.w    #-6,ang5
  2751.     move.w    #-6,ang6
  2752.     move.w    #-6,ang7
  2753.     move.w    #-6,ang8
  2754.  
  2755. mouse4T:
  2756.     jsr    WAIT
  2757.     jsr    TUNEL_LOOP
  2758.     cmp.b    #$0A,MCBIT
  2759.     bne    mouse4T
  2760.     move.b    #00,MCBIT
  2761.     jsr    CHANGE_PALETTE5
  2762.     jsr    WAIT
  2763.     jsr    WAIT
  2764.     jsr    CHANGE_PALETTE6
  2765.     jsr    WAIT
  2766.     jsr    WAIT
  2767.  
  2768.     move.w    #4,ang1
  2769.     move.w    #4,ang2
  2770.     move.w    #4,ang3
  2771.     move.w    #4,ang4
  2772.     move.w    #6,ang5
  2773.     move.w    #6,ang6
  2774.     move.w    #6,ang7
  2775.     move.w    #6,ang8
  2776.  
  2777. mouse5T:
  2778.     jsr    WAIT
  2779.     jsr    TUNEL_LOOP
  2780.     cmp.b    #$0A,MCBIT
  2781.     bne    mouse5T
  2782.     move.b    #00,MCBIT
  2783.     jsr    CHANGE_PALETTE5
  2784.     jsr    WAIT
  2785.     jsr    WAIT
  2786.     jsr    CHANGE_PALETTE6
  2787.     jsr    WAIT
  2788.     jsr    WAIT
  2789.  
  2790.     move.w    #-4,ang1
  2791.     move.w    #-4,ang2
  2792.     move.w    #-4,ang3
  2793.     move.w    #-4,ang4
  2794.     move.w    #-4,ang5
  2795.     move.w    #-4,ang6
  2796.     move.w    #-4,ang7
  2797.     move.w    #-4,ang8
  2798.  
  2799. mouse6T:
  2800.     jsr    WAIT
  2801.     jsr    TUNEL_LOOP
  2802.     cmp.b    #$0A,MCBIT
  2803.     bne    mouse6T
  2804.     move.b    #00,MCBIT
  2805.     jsr    CHANGE_PALETTE5
  2806.     jsr    WAIT
  2807.     jsr    WAIT
  2808.     jsr    CHANGE_PALETTE6
  2809.     jsr    WAIT
  2810.     jsr    WAIT
  2811.  
  2812.     move.w    #6,ang1
  2813.     move.w    #6,ang2
  2814.     move.w    #2,ang3
  2815.     move.w    #6,ang4
  2816.     move.w    #6,ang5
  2817.     move.w    #2,ang6
  2818.     move.w    #6,ang7
  2819.     move.w    #6,ang8
  2820.  
  2821.     move.w    #14,d7
  2822. mouse7T1:
  2823.     move.w    d7,ROTBUF
  2824. mouse7T:
  2825.     jsr    WAIT255
  2826.     jsr    TUNEL_LOOP
  2827.     cmp.b    #$0A,MCBIT
  2828.     bne    mouse7T
  2829.     move.b    #00,MCBIT
  2830.     jsr    CHANGE_PALETTE5
  2831.     jsr    WAIT255
  2832.     jsr    WAIT255
  2833.     jsr    CHANGE_PALETTE6
  2834.     jsr    WAIT255
  2835.     jsr    WAIT255
  2836.  
  2837.     move.w    #-8,ang1
  2838.     move.w    #-8,ang2
  2839.     move.w    #-8,ang3
  2840.     move.w    #-8,ang4
  2841.     move.w    #-8,ang5
  2842.     move.w    #-8,ang6
  2843.     move.w    #-8,ang7
  2844.     move.w    #-8,ang8
  2845.  
  2846. mouse8T:
  2847.     jsr    WAIT255
  2848.     jsr    TUNEL_LOOP
  2849.     cmp.b    #$0A,MCBIT
  2850.     bne    mouse8T
  2851.     move.b    #00,MCBIT
  2852.     jsr    CHANGE_PALETTE5
  2853.     jsr    WAIT255
  2854.     jsr    WAIT255
  2855.     jsr    CHANGE_PALETTE6
  2856.     jsr    WAIT255
  2857.     jsr    WAIT255
  2858.  
  2859.     move.w    #8,ang1
  2860.     move.w    #8,ang2
  2861.     move.w    #8,ang3
  2862.     move.w    #8,ang4
  2863.     move.w    #8,ang5
  2864.     move.w    #8,ang6
  2865.     move.w    #8,ang7
  2866.     move.w    #8,ang8
  2867.  
  2868.     move.w    ROTBUF,d7
  2869.     dbf    d7,mouse7T1
  2870.  
  2871.  
  2872.     jsr    WAIT255
  2873.     jsr    TUNEL_LOOP
  2874.     jsr    WAIT255
  2875.     jsr    TUNEL_LOOP
  2876.     jsr    WAIT255
  2877.     jsr    TUNEL_LOOP
  2878.     jsr    WAIT255
  2879.     jsr    TUNEL_LOOP
  2880.     jsr    WAIT255
  2881.     jsr    TUNEL_LOOP
  2882.     jsr    WAIT255
  2883.     jsr    TUNEL_LOOP
  2884.     jsr    WAIT255
  2885.     jsr    TUNEL_LOOP
  2886.     jsr    WAIT255
  2887.     jsr    TUNEL_LOOP
  2888.  
  2889. ENDT:
  2890.  
  2891.     jsr    CHANGE_PALETTE5
  2892.     jsr    WAIT255
  2893.     jsr    WAIT255
  2894.     jsr    WAIT255
  2895.     jsr    WAIT255
  2896.     jsr    CHANGE_PALETTE6
  2897.     jsr    WAIT255
  2898.     jsr    WAIT255
  2899.  
  2900.         move.l PLANE,d0
  2901.         move.w d0,BITPLAN1wl+2
  2902.         swap d0
  2903.         move.w d0,BITPLAN0wl+2
  2904.  
  2905.         lea    $dff000,a6
  2906.         move.l  #copper,$80(a6)
  2907.         clr.w   $88(a6)
  2908. END1:
  2909.     jsr    WAIT
  2910.     cmp.b    #$03,MCBIT
  2911.     bne    END1
  2912.     move.w    #$0000,COLORMAP12+2    
  2913.     move.w    #$0000,COLORMAP12+6    
  2914. END2:
  2915.     jsr    WAIT
  2916.     cmp.b    #$04,MCBIT
  2917.     bne    END2
  2918.     move.w    #$0000,BLIB2+2    
  2919.     move.w    #$0000,BLIB2+6    
  2920.  
  2921.  
  2922. END3:
  2923.     jsr    WAIT
  2924.     cmp.b    #$05,MCBIT
  2925.     bne    END3
  2926.     move.w    #$0000,BLIB1+2    
  2927.     move.w    #$0000,BLIB1+6    
  2928.  
  2929. END4:
  2930.     jsr    WAIT
  2931.     cmp.b    #$06,MCBIT
  2932.     bne    END4
  2933.     jsr    CHANGE_PALETTE5
  2934.     jsr    WAIT255
  2935.     jsr    WAIT255
  2936.     jsr    CHANGE_PALETTE6
  2937.     jsr    WAIT255
  2938.     jsr    WAIT255
  2939.  
  2940.     move.l    #PICTURE,a6
  2941.     move.l    a6,PLANE
  2942.     jsr    CHANGE_PALETTE7
  2943.  
  2944.         move.l #SCREEN1,d0
  2945.         move.w d0,BITPLAN17+2
  2946.         swap d0
  2947.         move.w d0,BITPLAN07+2
  2948.  
  2949.         move.l #endpart+40,d0
  2950.         move.w d0,BITPLAN1e+2
  2951.         swap d0
  2952.         move.w d0,BITPLAN0e+2
  2953.         move.l #endpart+40*31,d0
  2954.         move.w d0,BITPLAN3e+2
  2955.         swap d0
  2956.         move.w d0,BITPLAN2e+2
  2957.         move.l #endpart+40*31+40*30,d0
  2958.         move.w d0,BITPLAN5e+2
  2959.         swap d0
  2960.         move.w d0,BITPLAN4e+2
  2961.         move.l #endpart+40*31+40*30+40*30,d0
  2962.         move.w d0,BITPLAN7e+2
  2963.         swap d0
  2964.         move.w d0,BITPLAN6e+2
  2965.  
  2966.     lea    $dff000,a6
  2967.     move.l  #copperlist7,$80(a6)
  2968.     clr.w   $88(a6)
  2969.  
  2970.  
  2971. Mousem:
  2972.     Bsr    Start
  2973.     jsr    BLIT1a
  2974.     move.w    #19,d7
  2975. blee:
  2976.     move.w    d7,bjb
  2977.       jsr    WAIT255
  2978.     jsr    BLITs
  2979.     move.w    bjb,d7
  2980.     dbf    d7,blee
  2981.     bra    Mousem
  2982.  
  2983. BLITs:
  2984.     jsr    WAIT_BLITTER
  2985.     move.l    #SCREEN1+40,$dff050
  2986.     move.l    #SCREEN1,$dff054
  2987.     move.l    #$FFFFFFFF,$dff044
  2988.     move.w    #$09f0,$dff040
  2989.     move.w    #$0000,$dff042
  2990.     move.w    #0000,$dff064
  2991.     move.w    #0000,$dff066
  2992.     move.w    #[255*64+20],$dff058
  2993.  
  2994.     rts
  2995.  
  2996.  
  2997.  
  2998.  
  2999. BLIT1a:
  3000.     jsr    WAIT_BLITTER
  3001.     move.l    #SCREEN,$dff050
  3002.     move.l    #SCREEN1+200*40,d1
  3003.  
  3004.     move.w    #300,d0
  3005.     sub.w    XL,d0
  3006.     divs    #2,d0
  3007.     And.w    #$fff0,d0
  3008.     Lsr.w    #3,d0
  3009.     Add.w    d0,d1
  3010.     Add.l    #0,d1    
  3011.  
  3012.     move.l    d1,$dff054
  3013.     move.l    #$FFFFFFF,$dff044
  3014.     move.w    #000,$dff046
  3015.     move.w    #300,d0
  3016.     sub.w    XL,d0
  3017.     divs    #2,d0
  3018.     And.w    #$000f,d0
  3019.     Lsl.w    #8,d0
  3020.     Lsl.w    #4,d0
  3021.     Or.w    #$09f0,d0
  3022.     move.w    d0,$dff040
  3023.     move.w    #0000,$dff042
  3024.     move.w    #0000,$dff064
  3025.  
  3026.     move.w    #0000,$dff066
  3027.     move.w    #[18*64+20],$dff058
  3028.  
  3029.     jsr    WAIT_BLITTER
  3030.     LEA    $DFF000,A6
  3031.     MOVE.L    #SCREEN,$54(A6)
  3032.     MOVE.l    #$0,$66(A6)
  3033.     MOVE.W    #%0000000100000000,$40(A6)
  3034.     MOVE.W    #0,$42(A6)
  3035.     MOVE.W    #19*64+20,$58(A6)
  3036.     rts
  3037.  
  3038. Start:
  3039.     Move.l    #187,d7
  3040.     Lea    Screen+40,a0
  3041.  
  3042.  
  3043. Loop:
  3044.     Moveq    #0,d0
  3045.     Move.b    (a1)+,d0
  3046.     Tst    d0
  3047.     Beq    Exit1f
  3048.  
  3049.     Cmp.b    #' ',d0
  3050.     Bne    NoSpace
  3051.     Add.w    #10,Text_X        ;<-- space
  3052.     Bra    Loop
  3053. NoSpace:
  3054.  
  3055.     Cmp.b    #10,d0
  3056.     Bne    NoReturn
  3057. ;    Add.l    #80*12,Text_Y
  3058.     move.w    Text_X,XL
  3059.     Move.w    #10,Text_X    
  3060.     Bra    exit2f
  3061. NoReturn:
  3062.  
  3063.     Sub.b    #32,d0
  3064.     Lsl.w    #2,d0
  3065.     Lea    PropFonts,a0
  3066.     Add.w    d0,a0
  3067.  
  3068.     Bsr    PiszLitera
  3069.  
  3070.     Moveq    #0,d0
  3071.     Move.b    -1(a1),d0
  3072.     Sub.b    #32,d0
  3073.     Lsl.w    #1,d0
  3074.  
  3075.     Lea    SzerTab,a0
  3076.     Move.w    (a0,d0.w),d1
  3077.     Add.w    d1,Text_X
  3078.     Add.w    #1,Text_X
  3079.     Bra    Loop
  3080.  
  3081. Exit1f:
  3082.     Lea    Text,a1
  3083.  
  3084. Exit2f:
  3085.  
  3086.     Rts
  3087.  
  3088. ; a0 - adres litery
  3089. PiszLitera:
  3090.      Btst    #14,$dff002
  3091.      Bne    PiszLitera
  3092.  
  3093.     Move.l    a0,$50(a6)
  3094.     
  3095.     Move.l    #Screen,d1
  3096.     Move.w    Text_X,d0
  3097.     And.w    #$fff0,d0
  3098.     Lsr.w    #3,d0
  3099.     Add.w    d0,d1
  3100.     Add.l    Text_Y,d1
  3101.  
  3102.     Move.l    d1,$54(a6)
  3103.     Move.l    d1,$4c(a6)
  3104.  
  3105.     Move.w    #$ffff,$44(a6)
  3106.     Move.w    #$ffff,$46(a6)
  3107.     Move.w    #0244,$64(a6)
  3108.     Move.w    #0036,$62(a6)
  3109.     Move.w    #0036,$66(a6)
  3110.  
  3111.     Move.w    Text_X,d0
  3112.     And.w    #$000f,d0
  3113.     Lsl.w    #8,d0
  3114.     Lsl.w    #4,d0
  3115.     Or.w    #$0dfc,d0
  3116.  
  3117.     Move.w    d0,$40(a6)
  3118.     Move.w    #$0000,$42(a6)
  3119.     Move.w    #64*19+2,$58(a6)
  3120.      Rts
  3121. XL:    
  3122.     dc.w    0
  3123.  
  3124. Text_X:
  3125.     dc.w    10
  3126.  
  3127. Text_Y:
  3128.     dc.l    0
  3129.  
  3130. SzerTab:
  3131.     ; !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ ]
  3132.     ;---    ---  - --------------   - -----------------------------
  3133.     dc.w    10,6,12        ; !"
  3134.     dc.w    1,2,3,4        ;#$%&
  3135.     dc.w    5,6,6        ;'()
  3136.     dc.w    1,2        ;*+
  3137.     dc.w    6        ;,
  3138.     dc.w    1        ;-
  3139. ;./0123456789:;
  3140.     dc.w    6,12,12,6,12,12,12,12,12,12,12,12,6,5
  3141.     dc.w    1,2,3,12,4    ;<=>?@
  3142. ;ABCDEFGHIJKLMNOPQRSTUVWXYZ[ ]
  3143.     dc.w    12,12,12,12,12,10,12,12,4,12,12,10,12,12,12,12,12
  3144.     dc.w    12,12,10,12,12,12,12,12,12,5,1,5
  3145.  
  3146.     ;******************** MENU *****
  3147.  
  3148. TEXT:
  3149.     INCBIN    'df0:lolo.txt'
  3150.     DC.B    0
  3151.         even
  3152.         
  3153.  
  3154. PropFonts:
  3155.     incbin    "df0:Fonty1.RAW"
  3156.  
  3157. Screen:
  3158.     Blk.b    $5000,$00
  3159. Screen1:
  3160.     Blk.b    $5000,$00
  3161.  
  3162. CHANGE_PALETTE7:
  3163.     move.l    #COLORMAP7,a0
  3164.     move.w    #31,d7
  3165.     move.l    #PALETTE7,a1
  3166. CHPL7:
  3167.     add.l    #2,a0
  3168.     move.w    (a1)+,(a0)+
  3169.     dbf    d7,CHPL7
  3170.     rts
  3171.  
  3172. CopperList7:
  3173.         dc.w    $0120,$0000        ; SpritePointers
  3174.         dc.w    $0122,$0000
  3175.         dc.w    $0124,$0000
  3176.         dc.w    $0126,$0000
  3177.         dc.w    $0128,$0000
  3178.         dc.w    $012a,$0000
  3179.         dc.w    $012c,$0000
  3180.         dc.w    $012e,$0000
  3181.         dc.w    $0130,$0000
  3182.         dc.w    $0132,$0000
  3183.         dc.w    $0134,$0000
  3184.         dc.w    $0136,$0000
  3185.         dc.w    $0138,$0000
  3186.         dc.w    $013a,$0000
  3187.         dc.w    $013c,$0000
  3188.         dc.w    $013e,$0000
  3189. COLORMAP7:
  3190.         dc.w    $0180,$0000        ; ColorMap
  3191.         dc.w    $0182,$0CEF
  3192.         dc.w    $0184,$09AB
  3193.         dc.w    $0186,$0555
  3194.         dc.w    $0188,$0222
  3195.         dc.w    $018a,$0000
  3196.         dc.w    $018c,$0111
  3197.         dc.w    $018e,$0333
  3198.         dc.w    $0190,$0F00
  3199.         dc.w    $0192,$0A00
  3200.         dc.w    $0194,$0600
  3201.         dc.w    $0196,$0300
  3202.         dc.w    $0198,$0FC6
  3203.         dc.w    $019a,$0FA0
  3204.         dc.w    $019c,$0F60
  3205.         dc.w    $019e,$0B50
  3206.         dc.w    $01a0,$0000
  3207.         dc.w    $01a2,$0FFF
  3208.         dc.w    $01a4,$0FFF
  3209.         dc.w    $01a6,$0FFF
  3210.         dc.w    $01a8,$0000
  3211.         dc.w    $01aa,$0FFF
  3212.         dc.w    $01ac,$0FFF
  3213.         dc.w    $01ae,$0FFF
  3214.         dc.w    $01b0,$0000
  3215.         dc.w    $01b2,$0FFF
  3216.         dc.w    $01b4,$0FFF
  3217.         dc.w    $01b6,$0FFF
  3218.         dc.w    $01b8,$0000
  3219.         dc.w    $01ba,$0FFF
  3220.         dc.w    $01bc,$0FFF
  3221.         dc.w    $01be,$0FFF
  3222.  
  3223.         dc.w    $0102,$0000        ; bplcon1
  3224.         dc.w    $0104,$0024        ; bplcon2
  3225.         dc.w    $0108,$0000        ; bpl1mod
  3226.         dc.w    $010a,$0000        ; bpl2mod
  3227.         dc.w    $008e,$2c81        ; diwstrt
  3228.         dc.w    $0090,$14C1        ; diwstop
  3229.         dc.w    $0092,$0038        ; ddfstrt
  3230.         dc.w    $0094,$00D0        ; ddfstop
  3231.  
  3232. BITPLAN07        dc.w    $00e0,$0000        ; Pointers to BitMap
  3233. BITPLAN17        dc.w    $00e2,$0000
  3234.  
  3235. BITPLAN27        dc.w    $00e4,$0000
  3236. BITPLAN37        dc.w    $00e6,$0000
  3237.  
  3238. BITPLAN47        dc.w    $00e8,$0000
  3239. BITPLAN57        dc.w    $00ea,$0000
  3240.  
  3241. BITPLAN67        dc.w    $00ec,$0000
  3242. BITPLAN77        dc.w    $00ee,$0000
  3243.  
  3244. BITPLAN87        dc.w    $00f0,$0000
  3245. BITPLAN97        dc.w    $00f2,$0000
  3246.  
  3247. BITPLAN107        dc.w    $00f4,$0000
  3248. BITPLAN117        dc.w    $00f6,$0000
  3249.  
  3250.         dc.w    $0100,$1200        ; bplcon0
  3251.         dc.w    $4001,$ff00
  3252.         dc.w    $182,$000
  3253.         dc.w    $4101,$ff00
  3254.         dc.w    $182,$111
  3255.         dc.w    $4201,$ff00
  3256.         dc.w    $182,$222
  3257.         dc.w    $4301,$ff00
  3258.         dc.w    $182,$333
  3259.         dc.w    $4401,$ff00
  3260.         dc.w    $182,$444
  3261.         dc.w    $4501,$ff00
  3262.         dc.w    $182,$555
  3263.         dc.w    $4601,$ff00
  3264.         dc.w    $182,$666
  3265.         dc.w    $4701,$ff00
  3266.         dc.w    $182,$777
  3267.         dc.w    $4801,$ff00
  3268.         dc.w    $182,$888
  3269.         dc.w    $4901,$ff00
  3270.         dc.w    $182,$999
  3271.  
  3272.         dc.w    $f001,$ff00
  3273.         dc.w    $182,$888
  3274.         dc.w    $f101,$ff00
  3275.         dc.w    $182,$777
  3276.         dc.w    $f201,$ff00
  3277.         dc.w    $182,$666
  3278.         dc.w    $f301,$ff00
  3279.         dc.w    $182,$555
  3280.         dc.w    $f401,$ff00
  3281.         dc.w    $182,$444
  3282.         dc.w    $f501,$ff00
  3283.         dc.w    $182,$333
  3284.         dc.w    $f601,$ff00
  3285.         dc.w    $182,$222
  3286.         dc.w    $f701,$ff00
  3287.         dc.w    $182,$111
  3288.         dc.w    $f801,$ff00
  3289.         dc.w    $182,$000
  3290. BIL1:        dc.w    $ff01,$ff00
  3291.         dc.w    $0100,$4200        ; bplcon0
  3292.  
  3293.         
  3294. BITPLAN0e        dc.w    $00e0,$0000        ; Pointers to BitMap
  3295. BITPLAN1e        dc.w    $00e2,$0000
  3296.  
  3297. BITPLAN2e        dc.w    $00e4,$0000
  3298. BITPLAN3e        dc.w    $00e6,$0000
  3299.  
  3300. BITPLAN4e        dc.w    $00e8,$0000
  3301. BITPLAN5e        dc.w    $00ea,$0000
  3302.  
  3303. BITPLAN6e        dc.w    $00ec,$0000
  3304. BITPLAN7e        dc.w    $00ee,$0000
  3305.  
  3306. BITPLAN8e        dc.w    $00f0,$0000
  3307. BITPLAN9e        dc.w    $00f2,$0000
  3308.  
  3309. BITPLAN10e        dc.w    $00f4,$0000
  3310. BITPLAN11e        dc.w    $00f6,$0000
  3311.  
  3312. BIL2:        dc.w    $0201,$ff00
  3313.  
  3314.         dc.w    $0120,$0000        ; SpritePointers
  3315.         dc.w    $0122,$0000
  3316.         dc.w    $0124,$0000
  3317.         dc.w    $0126,$0000
  3318.         dc.w    $0128,$0000
  3319.         dc.w    $012a,$0000
  3320.         dc.w    $012c,$0000
  3321.         dc.w    $012e,$0000
  3322.         dc.w    $0130,$0000
  3323.         dc.w    $0132,$0000
  3324.         dc.w    $0134,$0000
  3325.         dc.w    $0136,$0000
  3326.         dc.w    $0138,$0000
  3327.         dc.w    $013a,$0000
  3328.         dc.w    $013c,$0000
  3329.         dc.w    $013e,$0000
  3330. COLORMAPE:
  3331.         dc.w    $0180,$0000        ; ColorMap
  3332.         dc.w    $0182,$0012
  3333.         dc.w    $0184,$0334
  3334.         dc.w    $0186,$0545
  3335.         dc.w    $0188,$0656
  3336.         dc.w    $018a,$0667
  3337.         dc.w    $018c,$0878
  3338.         dc.w    $018e,$0a88
  3339.         dc.w    $0190,$0997
  3340.         dc.w    $0192,$0ca9
  3341.         dc.w    $0194,$0dbc
  3342.         dc.w    $0196,$0dca
  3343.         dc.w    $0198,$0deb
  3344.         dc.w    $019a,$0fda
  3345.         dc.w    $019c,$0fea
  3346.         dc.w    $019e,$0ffc
  3347.         dc.w    $01a0,$0000
  3348.         dc.w    $01a2,$0000
  3349.         dc.w    $01a4,$0000
  3350.         dc.w    $01a6,$0000
  3351.         dc.w    $01a8,$0000
  3352.         dc.w    $01aa,$0000
  3353.         dc.w    $01ac,$0000
  3354.         dc.w    $01ae,$0000
  3355.         dc.w    $01b0,$0000
  3356.         dc.w    $01b2,$0000
  3357.         dc.w    $01b4,$0000
  3358.         dc.w    $01b6,$0000
  3359.         dc.w    $01b8,$0000
  3360.         dc.w    $01ba,$0000
  3361.         dc.w    $01bc,$0000
  3362.         dc.w    $01be,$0000
  3363.  
  3364.         DC.L    $FFFFFFFE
  3365. endpart:
  3366.     incbin    'df0:endpart.raw'
  3367. PALETTE7:
  3368.         dc.w    $000,$000,$222,$333,$444,$555,$666,$777
  3369.         dc.w    $888,$999,$AAA,$BBB,$CCC,$DDD,$EEE,$FFF
  3370.  
  3371.         dc.w    $f46,$999,$999,$999,$999,$999,$999,$999
  3372.         dc.w    $f46,$999,$999,$999,$999,$999,$999,$999
  3373.  
  3374.  
  3375.  
  3376. WAITMC:
  3377.     move.b    MCBIT,d1
  3378.     cmp.b    d0,d1
  3379.     bne    WAITMC
  3380.     rts
  3381.     ;po rot transform
  3382. ODDOD:
  3383.     move.l    #WAL1I,a0
  3384.     move.w    #24,d7
  3385. ODDOD1:
  3386.     add.l    #2,a0
  3387.     cmp.w    #-180,(a0)
  3388.     blt    ODDOD11
  3389.     sub.w    #4,(a0)
  3390. ODDOD11:
  3391.     add.l    #4,a0
  3392.     dbf    d7,ODDOD1
  3393.  
  3394.     move.l    #WAL2I,a0
  3395.     move.w    #23,d7
  3396. ODDOD2:
  3397.     add.l    #2,a0
  3398.     cmp.w    #180,(a0)
  3399.     bgt    ODDOD21
  3400.     add.w    #4,(a0)
  3401. ODDOD21:
  3402.     add.l    #4,a0
  3403.     dbf    d7,ODDOD2
  3404.     rts
  3405. WAIT:
  3406.     CMP.B    #$FE,$DFF006
  3407.     BNE    WAIT
  3408. WAITREAL:
  3409.     CMP.B    #$FF,$DFF006
  3410.     BNE    WAITREAL
  3411.     rts
  3412. CLEARSCREEN:
  3413.     jsr    WAIT_BLITTER
  3414.     LEA    $DFF000,A6
  3415.     MOVE.L    PLANE,$54(A6)
  3416.     MOVE.l    #$0,$66(A6)
  3417.     MOVE.W    #%0000000100000000,$40(A6)
  3418.     MOVE.W    #0,$42(A6)
  3419.     MOVE.W    #256*64+20,$58(A6)
  3420.     rts    
  3421. ROTATE:
  3422.     move.l    COORDS_1,A5
  3423.     move.l    TABLE_DRAW,A2
  3424.     LEA    COSTABLE,A3
  3425.     LEA    SINTABLE,A4
  3426.     move.w    ANGL,d0
  3427.     ADD.W    d0,ANGLEZ
  3428.     ANDI.W    #$1Fe,ANGLEZ
  3429.     move.w    ANGY,d0
  3430.     ADD.W    d0,ANGLEY
  3431.     ANDI.W    #$1Fe,ANGLEY
  3432.     move.w    ANGX,d0
  3433.     ADD.W    d0,ANGLEX
  3434.     ANDI.W    #$1Fe,ANGLEX
  3435.  
  3436.     cmp.w    #$100,ANGLEX
  3437.     bne    AZ1
  3438.     bchg    #1,CCBIT
  3439. AZ1:
  3440.     cmp.w    #$20,ANGLEX
  3441.     bne    AZ2
  3442.     bchg    #1,CCBIT
  3443. AZ2:
  3444.     MOVE.W    (A5)+,D7
  3445. LOOP_CALC_COORDS5a:
  3446.     MOVEM.W    (A5)+,D0-D2
  3447.  
  3448.  
  3449.  
  3450. Rotacja_Y5a:            ;os Y
  3451.     MOVE.W    ANGLEY,A0
  3452.     MOVE.W    D0,D4
  3453.     MOVE.W    D2,D5
  3454.     MULS    (A3,A0.W),D4
  3455.     MULS    (A4,A0.W),D5
  3456.     SUB.L    D5,D4
  3457.     ASR.L    #8,D4
  3458.     MOVE.W    D4,D6
  3459.     MOVE.W    D0,D4
  3460.     MOVE.W    D2,D5
  3461.     MULS    (A4,A0.W),D4
  3462.     MULS    (A3,A0.W),D5
  3463.     ADD.L    D4,D5
  3464.     ASR.L    #8,D5
  3465.     MOVE.W    D6,D0
  3466.     MOVE.W    D5,D2
  3467.  
  3468.  
  3469.  
  3470. Rotacja_X5a:            ;os X
  3471.     MOVE.W    ANGLEX,A0
  3472.     MOVE.W    D1,D4
  3473.     MOVE.W    D2,D5
  3474.     MULS    (A3,A0.W),D4
  3475.     MULS    (A4,A0.W),D5
  3476.     SUB.L    D5,D4
  3477.     ASR.L    #8,D4
  3478.     MOVE.W    D4,D6
  3479.     MOVE.W    D1,D4
  3480.     MOVE.W    D2,D5
  3481.     MULS    (A4,A0.W),D4
  3482.     MULS    (A3,A0.W),D5
  3483.     ADD.L    D4,D5
  3484.     ASR.L    #8,D5
  3485.     MOVE.W    D6,D1
  3486.     MOVE.W    D5,D2
  3487.  
  3488. Rotacja_Z5a:            ;os Z
  3489.     MOVE.W    ANGLEZ,A0
  3490.     MOVE.W    D0,D4
  3491.     MOVE.W    D1,D5
  3492.     MULS    (A3,A0.W),D4
  3493.     MULS    (A4,A0.W),D5
  3494.     SUB.L    D5,D4
  3495.     ASR.L    #8,D4
  3496.     MOVE.W    D4,D6
  3497.     MOVE.W    D0,D4
  3498.     MOVE.W    D1,D5
  3499.     MULS    (A4,A0.W),D4
  3500.     MULS    (A3,A0.W),D5
  3501.     ADD.L    D4,D5
  3502.     ASR.L    #8,D5
  3503.     MOVE.W    D6,D0
  3504.     MOVE.W    D5,D1
  3505.  
  3506. Perspektywa5a:                    ;perspektywa
  3507.  
  3508. Z_ADD5a:    ADD.W    GLEMBIA,D2
  3509.     NEG.W    D2
  3510.     EXT.L    D0
  3511.     EXT.L    D1
  3512.     ASL.L    #8,D0
  3513.     ASL.L    #8,D1
  3514.     DIVS    D2,D0
  3515.     DIVS    D2,D1
  3516.     ADD.W    XPZ,D0
  3517.     ADD.W    YPZ,D1
  3518.     MOVE.W    D0,(A2)+
  3519.     MOVE.W    D1,(A2)+
  3520.     DBF    D7,LOOP_CALC_COORDS5a
  3521.     rts
  3522. DRAWLINES:
  3523.         move.l    TABLE_DRAW,A4
  3524.         move.l    DATALINES,A5
  3525.         MOVE.L    PLANE,A0
  3526.         MOVE.W    (A5)+,D7
  3527. LOOP_FOR_DRAW:
  3528.         MOVEM.W    (A5)+,D4-D5
  3529.         LSL.W    #2,D4
  3530.         LSL.W    #2,D5
  3531.         MOVEM.W    (A4,D4.W),D0-D1
  3532.         MOVEM.W    (A4,D5.W),D2-D3
  3533.         MOVEM.L    D7,-(A7)
  3534.         Bsr    Clip
  3535.         MOVEM.L    (A7)+,D7
  3536.         DBF    D7,LOOP_FOR_DRAW
  3537. ENDLO:
  3538.         RTS
  3539. clip    tst.w    d0
  3540.     blt.s    clipa
  3541.     tst.w    d2
  3542.     blt.s    clipa
  3543.     tst.w    d1
  3544.     blt.s    clipa
  3545.     tst.w    d3
  3546.     blt.s    clipa
  3547.     cmp.w    #xmax,d0
  3548.     bgt.s    clipa
  3549.     cmp.w    #xmax,d2
  3550.     bgt.s    clipa
  3551.     cmp.w    #ymax,d1
  3552.     bgt.s    clipa
  3553.     cmp.w    #ymax,d3
  3554.     bgt.w    clipa
  3555. druw
  3556.     bra    draw
  3557. clipa    cmp.w    d3,d1
  3558.     blt.s    this
  3559.     exg    d0,d2
  3560.     exg    d1,d3
  3561. this    move.w    d0,zx1
  3562.     move.w    d2,zx2
  3563.     move.w    d1,zy1
  3564.     move.w    d3,zy2
  3565.  
  3566.     moveq    #1,d4
  3567.     move.w    d4,d5
  3568.     tst.w    d0
  3569.     bge.s    ml1
  3570.     moveq    #xmin,d4
  3571.     bra.s    ml2
  3572. ml1    cmp.w    #xmax,d0
  3573.     ble.s    ml2
  3574.     move.w    #xmax,d4
  3575. ml2    tst.w    d1
  3576.     bge.s    ml3
  3577.     moveq    #ymin,d5
  3578.     bra.s    ml4
  3579. ml3    cmp.w    #ymax,d1
  3580.     ble.s    ml4
  3581.     move.w    #ymax,d5
  3582. ml4    
  3583.     moveq    #1,d6
  3584.     moveq    #1,d7
  3585.     tst.w    d2
  3586.     bge.s    mx1
  3587.     moveq    #xmin,d6
  3588.     bra.s    mx2
  3589. mx1    cmp.w    #xmax,d2
  3590.     ble.s    mx2
  3591.     move.w    #xmax,d6
  3592. mx2    tst.w    d3
  3593.     bge.s    mx3
  3594.     moveq    #ymin,d7
  3595.     bra.s    mx4
  3596. mx3    cmp.w    #ymax,d3
  3597.     ble.s    mx4
  3598.     move.w    #ymax,d7
  3599. mx4    
  3600.     cmp.w    d4,d6
  3601.     bne.s    md1
  3602.     cmp.w    #1,d4    ;+
  3603.     bne    lineout
  3604. md1    cmp.w    d5,d7
  3605.     bne.s    md2
  3606.     cmp.w    #1,d5
  3607.     bne    lineout
  3608. md2    cmp.w    #1,d4
  3609.     beq    clip1
  3610.  
  3611.     move.w    d1,d6        ; cut left for 1 pixel
  3612.     sub.w    d3,d6
  3613.     move.w    d4,d7
  3614.     sub.w    d0,d7
  3615.     muls    d7,d6
  3616.     move.w    d2,d7
  3617.     sub.w    d0,d7
  3618.     beq    lineout
  3619.     divs    d7,d6
  3620.     sub.w    d6,d1
  3621.     move.w    d4,d0
  3622.     
  3623.     moveq    #1,d4
  3624.     moveq    #1,d5
  3625.     tst.w    d0
  3626.     bge.s    ms1
  3627.     moveq    #xmin,d4
  3628.     bra.s    ms2
  3629. ms1    cmp.w    #xmax,d0
  3630.     ble.s    ms2
  3631.     move.w    #xmax,d4
  3632. ms2    tst.w    d1
  3633.     bge.s    ms3
  3634.     moveq    #ymin,d5
  3635.     bra.s    clip1
  3636. ms3    cmp.w    #ymax,d1
  3637.     ble.s    clip1
  3638.     move.w    #ymax,d5
  3639. clip1    
  3640.     cmp.w    #1,d5    ;+
  3641.     beq    clip2
  3642.  
  3643.     move.w    d2,d6        ; cut up for 1 pixel
  3644.     sub.w    d0,d6
  3645.     move.w    d5,d7
  3646.     sub.w    d1,d7
  3647.     muls    d7,d6
  3648.     move.w    d3,d7
  3649.     sub.w    d1,d7
  3650.     beq    lineout
  3651.     divs    d7,d6
  3652.     add.w    d6,d0
  3653.     move.w    d5,d1
  3654. clip2    
  3655.     moveq    #1,d4
  3656.     moveq    #1,d5
  3657.     tst.w    d2
  3658.     bge.s    mz1
  3659.     moveq    #xmin,d4
  3660.     bra.s    mz2
  3661. mz1    cmp.w    #xmax,d2
  3662.     ble.s    mz2
  3663.     move.w    #xmax,d4
  3664. mz2    tst.w    d3
  3665.     bge.s    mz3
  3666.     moveq    #ymin,d5
  3667.     bra.s    mz4
  3668. mz3    cmp.w    #ymax,d3
  3669.     ble.s    mz4
  3670.     move.w    #ymax,d5
  3671. mz4    
  3672.     cmp.w    #1,d4
  3673.     beq    clip3
  3674.     
  3675.     move.w    d1,d6        ; cut left for 2 pixel
  3676.     sub.w    d3,d6
  3677.     move.w    d4,d7
  3678.     sub.w    d0,d7
  3679.     muls    d7,d6
  3680.     move.w    d2,d7
  3681.     sub.w    d0,d7
  3682.     beq    lineout
  3683.     divs    d7,d6
  3684.     move.w    d1,d7
  3685.     sub.w    d6,d7
  3686.     move.w    d7,d3
  3687.     move.w    d4,d2
  3688.     
  3689.     moveq    #1,d4
  3690.     moveq    #1,d5
  3691.     tst.w    d2
  3692.     bge.s    mv1
  3693.     moveq    #xmin,d4
  3694.     bra.s    mv2
  3695. mv1    cmp.w    #xmax,d2
  3696.     ble.s    mv2
  3697.     move.w    #xmax,d4
  3698. mv2    tst.w    d3
  3699.     bge.s    mv3
  3700.     moveq    #ymin,d5
  3701.     bra.s    clip3
  3702. mv3    cmp.w    #ymax,d3
  3703.     ble.s    clip3
  3704.     move.w    #ymax,d5
  3705. clip3    
  3706.     cmp.w    #1,d5
  3707.     beq    clip4
  3708.  
  3709.     move.w    d2,d6        ; cut right for 2 pixel
  3710.     sub.w    d0,d6
  3711.     move.w    d5,d7
  3712.     sub.w    d1,d7
  3713.     muls    d7,d6
  3714.     move.w    d3,d7
  3715.     sub.w    d1,d7
  3716.     beq    lineout
  3717.     divs    d7,d6
  3718.     move.w    d0,d7
  3719.     add.w    d6,d7
  3720.     move.w    d7,d2    
  3721.     move.w    d5,d3
  3722. clip4
  3723.     cmp.w    d0,d2
  3724.     bne.s    clip5
  3725.     cmp.w    d1,d3
  3726.     beq    lineout    ; kreska poza ekranem
  3727. clip5
  3728.     movem.w    d0-d3,-(a7)
  3729.     bsr    draw
  3730.     movem.w    (a7)+,d0-d3
  3731.  
  3732.     cmp.w    #xmax,d0
  3733.     beq    exit1
  3734.     cmp.w    #xmax,d2
  3735.     bne    zero2
  3736.  
  3737.     move.w    d2,d0
  3738.     move.w    d3,d1    
  3739.     move.w    zy2,d3
  3740.     tst.w    d3
  3741.     bge.s    cli1
  3742.     moveq    #ymin,d3
  3743. cli1    cmp.w    #ymax,d3
  3744.     ble.s    cli2
  3745.     move.w    #ymax,d3
  3746. cli2
  3747.     bra    draw
  3748.  
  3749. exit1
  3750.     move.w    d0,d2
  3751.     move.w    zy1,d3
  3752.     tst.w    d3
  3753.     bge.s    cli3
  3754.     moveq    #ymin,d3
  3755. cli3    cmp.w    #ymax,d3
  3756.     ble.s    cli4
  3757.     move.w    #ymax,d3
  3758. cli4
  3759.     bra    draw
  3760.  
  3761. lineout
  3762.     cmp.w    #xmax,zx1
  3763.     bgt.s    outn
  3764.     cmp.w    #xmax,zx2
  3765.     bgt.s    outn
  3766.     rts
  3767.  
  3768. outn    move.w    zy1,d1
  3769.     move.w    zy2,d3
  3770.     tst.w    d1
  3771.     bpl.s    otn1
  3772.     moveq    #ymin,d1
  3773. otn1    cmp.w    #ymax,d1
  3774.     blt.s    otn2
  3775.     move.w    #ymax,d1
  3776. otn2    
  3777.     tst.w    d3
  3778.     bpl.s    otn3
  3779.     moveq    #ymin,d3
  3780. otn3    cmp.w    #ymax,d3
  3781.     blt.s    otn4
  3782.     move.w    #ymax,d3
  3783. otn4
  3784.     move.w    #xmax,d0
  3785.     move.w    #xmax,d2
  3786.     bra    Draw
  3787. zero2:    rts
  3788.  
  3789. zx1    dc.w    0
  3790. zx2    dc.w    0
  3791. zy1    dc.w    0
  3792. zy2    dc.w    0
  3793.  
  3794. Draw:
  3795.         Movem.l    D0-A6,-(SP)
  3796.         Cmp.w    D1,D3
  3797.         Beq.w    No_Line
  3798.         Bge.b    P_1
  3799.         Exg    D2,D0
  3800.         Exg    D1,D3
  3801. P_1:
  3802.         Addq.b    #1,D1
  3803.         Moveq    #$f,D4
  3804.         And.b    D2,D4
  3805.         Ror.l    #$4,D4
  3806.         Sub.w    D3,D1
  3807.         Neg.w    D1
  3808.  
  3809.         Move.w    D3,D5
  3810.         Asl.w    #5,D5    ;Mulu #40,D3
  3811.         Asl.w    #3,D3
  3812.         Add.w    D5,d3
  3813.  
  3814.         Sub.w    D2,D0
  3815.         Blt.b    p_5
  3816.         Cmp.w    D0,D1
  3817.         Bge.b    P_4
  3818.         Ori.l    #$0b4a001b,D4
  3819.         Bra.b    P_9
  3820. P_4:
  3821.         Ori.l    #$0b4a0005,D4
  3822.         Exg    D0,D1
  3823.         Bra.b    P_9
  3824. P_5:
  3825.         Neg.w    D0
  3826.         Cmp.w    D0,D1
  3827.         Bge.b    P_8
  3828.         Ori.l    #$0b4a001f,D4
  3829.         Bra.b    P_9
  3830. P_8:
  3831.         Ori.l    #$0b4a000f,D4
  3832.         Exg    D0,D1
  3833. P_9:
  3834.         Asl.w    #1,D1
  3835.         Asr.w    #$3,D2
  3836.         Andi.l    #$0000ffff,D2
  3837.         Add.l    D2,D3
  3838.         Move.w    D1,D2
  3839.         Sub.w    D0,D2
  3840.         Sub.w    D0,D2
  3841.         Bge.b    P_10
  3842.         Bset    #6,D4
  3843. P_10:
  3844.         Asl.w    #6,d0
  3845.         Add.w    #$42,d0
  3846.  
  3847.     jsr    WAIT_BLITTER
  3848.         Move.w    d1,$62(A6)
  3849.         Move.w    d2,$64(A6)
  3850.         Move.l    #-1,$44(A6)
  3851.         Move.w    #40,$60(A6)
  3852.         Move.l    #$ffff8000,$72(A6)
  3853.         Add.l    PLANE,d3
  3854. OK:
  3855.         Move.W    D2,$52(A6)
  3856.         Move.l    D4,$40(A6)
  3857.         Move.l    D3,$48(A6)
  3858.         Move.l    D3,$54(A6)
  3859.         Move.w    D0,$58(A6)
  3860. No_Line:
  3861.         Movem.l    (SP)+,D0-A6
  3862.         Rts
  3863.  
  3864. FILL:
  3865.         jsr    WAIT_BLITTER
  3866.         LEA    $DFF000,A0
  3867.         Move.w    #$9f0,$40(A0)
  3868.         Move.w    #%01010,$42(A0)
  3869.         Move.l    #$ffffffff,$44(A0)
  3870.         Move.l    PLANE,D0
  3871.         Add.w    #256*40-2,D0
  3872.         Move.l    D0,$50(A0)
  3873.         Move.l    D0,$54(A0)
  3874.         Clr.w    $64(A0)
  3875.         Clr.w    $66(A0)
  3876.         Move.w    #256*64+20,$58(A0)
  3877.         jsr    WAIT_BLITTER
  3878.         rts
  3879.  
  3880. CHBUFS:
  3881.     MOVE.L    ACT_ADRES,A0
  3882.     CMP.L    #E_SHADE_TABLE,A0
  3883.     BNE    CLOO
  3884.     MOVE.L    #SHADE_TABLE,ACT_ADRES
  3885. CLOO:
  3886.     ADDQ.L    #4,ACT_ADRES
  3887.     MOVE.L    ACT_ADRES,A0
  3888.     MOVE.L    (A0)+,PLANE
  3889.     MOVE.L    (A0)+,D0
  3890.     MOVE.W    D0,BITPLAN1w+2
  3891.     SWAP    D0
  3892.     MOVE.W    D0,BITPLAN0w+2
  3893.     MOVE.L    (A0)+,D0
  3894.     MOVE.W    D0,BITPLAN3w+2
  3895.     SWAP    D0
  3896.     MOVE.W    D0,BITPLAN2w+2
  3897.     MOVE.L    (A0)+,D0
  3898.     MOVE.W    D0,BITPLAN5w+2
  3899.     SWAP    D0
  3900.     MOVE.W    D0,BITPLAN4w+2
  3901.     MOVE.L    (A0)+,D0
  3902.     MOVE.W    D0,BITPLAN7w+2
  3903.     SWAP    D0
  3904.     MOVE.W    D0,BITPLAN6w+2
  3905. ;    MOVE.L    (A0)+,D0
  3906. ;    MOVE.W    D0,BITPLAN9w+2
  3907. ;    SWAP    D0
  3908. ;    MOVE.W    D0,BITPLAN8w+2
  3909.     RTS
  3910.  
  3911. CHBUFSb:
  3912.     MOVE.L    ACT_ADRES,A0
  3913.     CMP.L    #E_SHADE_TABLE,A0
  3914.     BNE    CLOOb
  3915.     MOVE.L    #SHADE_TABLE,ACT_ADRES
  3916. CLOOb:
  3917.     ADDQ.L    #4,ACT_ADRES
  3918.     MOVE.L    ACT_ADRES,A0
  3919.     MOVE.L    (A0)+,D0
  3920.     MOVE.L    (A0)+,PLANE
  3921.     MOVE.W    D0,BITPLAN9w+2
  3922.     SWAP    D0
  3923.     MOVE.W    D0,BITPLAN8w+2
  3924.     RTS
  3925. CHBUFSb1:
  3926.     MOVE.L    ACT_ADRES,A0
  3927.     CMP.L    #E_SHADE_TABLE,A0
  3928.     BNE    CLOOb1
  3929.     MOVE.L    #SHADE_TABLE,ACT_ADRES
  3930. CLOOb1:
  3931.     ADDQ.L    #4,ACT_ADRES
  3932.     MOVE.L    ACT_ADRES,A0
  3933.     MOVE.L    (A0)+,D0
  3934.     MOVE.L    (A0)+,PLANE
  3935.     MOVE.W    D0,BITPLAN7w+2
  3936.     SWAP    D0
  3937.     MOVE.W    D0,BITPLAN6w+2
  3938.     RTS
  3939. SHADE_TABLE:
  3940.     DC.L    0,0,0,0,0
  3941. E_SHADE_TABLE:
  3942.     DC.L    0,0,0,0,0
  3943. ACT_ADRES:
  3944.     DC.L    SHADE_TABLE
  3945. xmin=0
  3946. ymin=0
  3947. xmax=319
  3948. ymax=255
  3949.  
  3950.  
  3951. ANGLEX:        DC.W        0
  3952. ANGLEZ:        DC.W        0
  3953. ANGLEY:        DC.W        0
  3954.  
  3955. CHANGE_PALETTE6:
  3956.     move.l    #COLORMAP1,a0
  3957.     move.w    #31,d7
  3958.     move.l    #PALETTE6,a1
  3959. CHPL6:
  3960.     add.l    #2,a0
  3961.     move.w    (a1)+,(a0)+
  3962.     dbf    d7,CHPL6
  3963.     rts
  3964.  
  3965. CHANGE_PALETTE1:
  3966.     move.l    #COLORMAP1,a0
  3967.     move.w    #31,d7
  3968.     move.l    #PALETTE1,a1
  3969. CHPL1:
  3970.     add.l    #2,a0
  3971.     move.w    (a1)+,(a0)+
  3972.     dbf    d7,CHPL1
  3973.     rts
  3974.  
  3975. CHANGE_PALETTE2:
  3976.     move.l    #COLORMAP1,a0
  3977.     move.w    #31,d7
  3978.     move.l    #PALETTE2,a1
  3979. CHPL2:
  3980.     add.l    #2,a0
  3981.     move.w    (a1)+,(a0)+
  3982.     dbf    d7,CHPL2
  3983.     rts
  3984. CHANGE_PALETTE4:
  3985.     move.l    #COLORMAP1,a0
  3986.     move.w    #31,d7
  3987.     move.l    #PALETTE4,a1
  3988. CHPL4:
  3989.     add.l    #2,a0
  3990.     move.w    (a1)+,(a0)+
  3991.     dbf    d7,CHPL4
  3992.     rts
  3993.  
  3994. CHANGE_PALETTE3:
  3995.     move.l    #COLORMAP1,a0
  3996.     move.w    #31,d7
  3997.     move.l    COLOR_WHITE,a1
  3998. CHPL3:
  3999.     add.l    #2,a0
  4000.     move.w    (a1)+,(a0)+
  4001.     dbf    d7,CHPL3
  4002.     rts
  4003.  
  4004. CHANGE_PALETTE5:
  4005.     move.l    #COLORMAP1,a0
  4006.     move.w    #31,d7
  4007. CHPL5:
  4008.     add.l    #2,a0
  4009.     move.w    #$FFF,(a0)+
  4010.     dbf    d7,CHPL5
  4011.     rts
  4012.  
  4013.  
  4014. GET_C_FADE_PROCEDURE:
  4015. GET_C_il_COLORS=30    ; -1
  4016.  
  4017.     move.l    #GET_C_il_COLORS,d0
  4018.     moveq    #0,d1
  4019.     moveq    #0,d2
  4020.     moveq    #0,d4
  4021.  
  4022. GET_C_FADE_LOOP:
  4023.     moveq    #0,d4        ; ABY NIE DZILALO W KOLKO
  4024.     move.w    (a0),d4        ; d4 jaki kolor po zmianie
  4025.     move.w    (a0),d1        ; KOLORKI DO d1 i d2
  4026.     move.w    (a1),d2
  4027.     cmp.w    d1,d2        ; CZY ROWNE ???
  4028.     beq    GET_C_FADE_OK_END    ; JESLI TAK TO ZREZYGNUJ Z PROCEDURY DLA TEGO KOLORU
  4029. GET_C_FADE_WIEKSZY:    
  4030.     move.w    (a0),d1        ; KOLORKI DO d1 i d2
  4031.     move.w    (a1),d2
  4032.     and.w    #$00f,d1    ; MASKI DLA POZOSTALYCH BITOW
  4033.     and.w    #$00f,d2
  4034.     cmp.w    d1,d2        ; JESLI 0-ych 8 BITOW TAKIE SAME TO OMIN
  4035.     beq    GET_C_FADE_0_OK_P
  4036.     bmi    GET_C_FADE_ADD_0
  4037.     add.w    #$001,d1
  4038.     move.w    d1,d4
  4039.     bra    GET_C_FADE_0_OK
  4040. GET_C_FADE_ADD_0
  4041.     sub.w    #$001,d1
  4042.     move.w    d1,d4        ; ZMIENIONY KOLOR do d4
  4043.     bra    GET_C_FADE_0_OK
  4044. GET_C_FADE_0_OK_P:
  4045.     move.w    (a1),d1
  4046.     and.w    #$00f,d1
  4047.     move.w    d1,d4    
  4048.  
  4049. GET_C_FADE_0_OK:
  4050.     move.w    (a0),d1        ; KOLORKI DO d1 i d2
  4051.     move.w    (a1),d2
  4052.     and.w    #$0f0,d1    ; MASKI DLA 2-ich 8 BITOW
  4053.     and.w    #$0f0,d2
  4054.     cmp.w    d1,d2        ; JESLI 1-Ych 8 BITOW TAKIE SAME TO OMIN
  4055.     beq    GET_C_FADE_1_OK_P
  4056.     bmi    GET_C_FADE_ADD_1
  4057.     add.w    #$010,d1
  4058.     and.w    #$f0f,d4
  4059.     add.w    d1,d4
  4060.     bra    GET_C_FADE_1_OK
  4061. GET_C_FADE_ADD_1
  4062.     sub.w    #$010,d1
  4063.     and.w    #$f0f,d4
  4064.     add.w    d1,d4        ; ZMIENIONY KOLOR do d4
  4065.     bra    GET_C_FADE_1_OK
  4066. GET_C_FADE_1_OK_P:
  4067.     move.w    (a1),d1
  4068.     and.w    #$0f0,d1
  4069.     and.w    #$f0f,d4
  4070.     add.w    d1,d4    
  4071. GET_C_FADE_1_OK:
  4072.     move.w    (a0),d1        ; KOLORKI DO d1 i d2
  4073.     move.w    (a1),d2
  4074.     and.w    #$f00,d1    ; MASKI DLA 2-ich 8 BITOW 
  4075.     and.w    #$f00,d2
  4076.     cmp.w    d1,d2        ; JESLI 2-ICH 8 BITOW TAKIE SAME TO OMIN
  4077.     beq    GET_C_FADE_OK_END_P
  4078.     bmi    GET_C_FADE_ADD_2
  4079.     add.w    #$100,d1
  4080.     and.w    #$0ff,d4
  4081.     add.w    d1,d4
  4082.     bra    GET_C_FADE_OK_END
  4083. GET_C_FADE_ADD_2
  4084.     sub.w    #$100,d1
  4085.     and.w    #$0ff,d4
  4086.     add.w    d1,d4        ; ZMIENIONY KOLOR do d4
  4087.     bra    GET_C_FADE_OK_END
  4088. GET_C_FADE_OK_END_P:
  4089.     move.w    (a1),d1
  4090.     and.w    #$f00,d1
  4091.     and.w    #$0ff,d4
  4092.     add.w    d1,d4    
  4093. GET_C_FADE_OK_END:
  4094.     move.w    d4,(a0)
  4095.     add.l    #2,a0        ; PRZESUN KOLORY o .L
  4096.     add.l    #2,a1
  4097.     dbf    d0,GET_C_FADE_LOOP    ; TYLE PETLI ILE KOLOROW
  4098.     rts
  4099.  
  4100.  
  4101. TUNEL_LOOP:
  4102.     jsr    CHBUFS
  4103.     jsr    CLEARSCREEN
  4104.         
  4105.     move.w    BUF1,ANGLEZ
  4106.     move.w    ANG1,ANGL
  4107.     move.w    GLE1,GLEMBIA
  4108.     move.l    #TUNEL1I,COORDS_1
  4109.     move.l    #TUNEL1D,datalines
  4110.     jsr    ROTATE
  4111.     jsr    DRAWLINES
  4112.     move.w    SPEED,D0
  4113.     sub.w    D0,GLEMBIA
  4114.     cmp.w    #80,GLEMBIA
  4115.     bgt    BZZ1
  4116.     move.w    #200+120+120+120+120+120+120+120,GLEMBIA
  4117.     move.b    #1,CCBIT
  4118.     move.w    STPOL,ANGLEZ
  4119. BZZ1:
  4120.     move.w    GLEMBIA,GLE1
  4121.     move.w    ANGLEZ,BUF1
  4122.  
  4123.     move.w    BUF2,ANGLEZ
  4124.     move.w    ANG2,ANGL
  4125.     move.w    GLE2,GLEMBIA
  4126.     move.l    #TUNEL1I,COORDS_1
  4127.     move.l    #TUNEL1D,datalines
  4128.     jsr    ROTATE
  4129.     jsr    DRAWLINES
  4130.     move.w    SPEED,D0
  4131.     sub.w    D0,GLEMBIA
  4132.     cmp.w    #80,GLEMBIA
  4133.     bgt    BZZ2
  4134.     move.w    #200+120+120+120+120+120+120+120,GLEMBIA
  4135.     move.b    #2,CCBIT
  4136.     move.w    STPOL,ANGLEZ
  4137. BZZ2:
  4138.     move.w    GLEMBIA,GLE2
  4139.     move.w    ANGLEZ,BUF2
  4140.  
  4141.     move.w    BUF3,ANGLEZ
  4142.     move.w    ANG3,ANGL
  4143.     move.w    GLE3,GLEMBIA
  4144.     move.l    #TUNEL1I,COORDS_1
  4145.     move.l    #TUNEL1D,datalines
  4146.     jsr    ROTATE
  4147.     jsr    DRAWLINES
  4148.     move.w    SPEED,D0
  4149.     sub.w    D0,GLEMBIA
  4150.     cmp.w    #80,GLEMBIA
  4151.     bgt    BZZ3
  4152.     move.w    #200+120+120+120+120+120+120+120,GLEMBIA
  4153.     move.b    #3,CCBIT
  4154.     move.w    STPOL,ANGLEZ
  4155. BZZ3:
  4156.     move.w    GLEMBIA,GLE3
  4157.     move.w    ANGLEZ,BUF3
  4158.  
  4159.     move.w    BUF4,ANGLEZ
  4160.     move.w    ANG4,ANGL
  4161.     move.w    GLE4,GLEMBIA
  4162.     move.l    #TUNEL1I,COORDS_1
  4163.     move.l    #TUNEL1D,datalines
  4164.     jsr    ROTATE
  4165.     jsr    DRAWLINES
  4166.     move.w    SPEED,D0
  4167.     sub.w    D0,GLEMBIA
  4168.     cmp.w    #80,GLEMBIA
  4169.     bgt    BZZ4
  4170.     move.w    #200+120+120+120+120+120+120+120,GLEMBIA
  4171.     move.b    #4,CCBIT
  4172.     move.w    STPOL,ANGLEZ
  4173. BZZ4:
  4174.     move.w    GLEMBIA,GLE4
  4175.     move.w    ANGLEZ,BUF4
  4176.  
  4177.     move.w    BUF5,ANGLEZ
  4178.     move.w    ANG5,ANGL
  4179.     move.w    GLE5,GLEMBIA
  4180.     move.l    #TUNEL1I,COORDS_1
  4181.     move.l    #TUNEL1D,datalines
  4182.     jsr    ROTATE
  4183.     jsr    DRAWLINES
  4184.     move.w    SPEED,D0
  4185.     sub.w    D0,GLEMBIA
  4186.     cmp.w    #80,GLEMBIA
  4187.     bgt    BZZ5
  4188.     move.w    #200+120+120+120+120+120+120+120,GLEMBIA
  4189.     move.b    #5,CCBIT
  4190.     move.w    STPOL,ANGLEZ
  4191. BZZ5:
  4192.     move.w    GLEMBIA,GLE5
  4193.     move.w    ANGLEZ,BUF5
  4194.  
  4195.     move.w    BUF6,ANGLEZ
  4196.     move.w    ANG6,ANGL
  4197.     move.w    GLE6,GLEMBIA
  4198.     move.l    #TUNEL1I,COORDS_1
  4199.     move.l    #TUNEL1D,datalines
  4200.     jsr    ROTATE
  4201.     jsr    DRAWLINES
  4202.     move.w    SPEED,D0
  4203.     sub.w    D0,GLEMBIA
  4204.     cmp.w    #80,GLEMBIA
  4205.     bgt    BZZ6
  4206.     move.w    #200+120+120+120+120+120+120+120,GLEMBIA
  4207.     move.b    #6,CCBIT
  4208.     move.w    STPOL,ANGLEZ
  4209.  
  4210. BZZ6:
  4211.     move.w    GLEMBIA,GLE6
  4212.     move.w    ANGLEZ,BUF6
  4213.  
  4214.     move.w    BUF7,ANGLEZ
  4215.     move.w    ANG7,ANGL
  4216.     move.w    GLE7,GLEMBIA
  4217.     move.l    #TUNEL1I,COORDS_1
  4218.     move.l    #TUNEL1D,datalines
  4219.     jsr    ROTATE
  4220.     jsr    DRAWLINES
  4221.     move.w    SPEED,D0
  4222.     sub.w    D0,GLEMBIA
  4223.     cmp.w    #80,GLEMBIA
  4224.     bgt    BZZ7
  4225.     move.w    #200+120+120+120+120+120+120+120,GLEMBIA
  4226.     move.b    #7,CCBIT
  4227.     move.w    STPOL,ANGLEZ
  4228. BZZ7:
  4229.     move.w    GLEMBIA,GLE7
  4230.     move.w    ANGLEZ,BUF7
  4231.  
  4232.     move.w    BUF8,ANGLEZ
  4233.     move.w    ANG8,ANGL
  4234.     move.w    GLE8,GLEMBIA
  4235.     move.l    #TUNEL1I,COORDS_1
  4236.     move.l    #TUNEL1D,datalines
  4237.     jsr    ROTATE
  4238.     jsr    DRAWLINES
  4239.     move.w    SPEED,D0
  4240.     sub.w    D0,GLEMBIA
  4241.     cmp.w    #80,GLEMBIA
  4242.     bgt    BZZ8
  4243.     move.w    #200+120+120+120+120+120+120+120,GLEMBIA
  4244.     move.b    #8,CCBIT
  4245.     move.w    STPOL,ANGLEZ
  4246. BZZ8:
  4247.     move.w    GLEMBIA,GLE8
  4248.     move.w    ANGLEZ,BUF8
  4249.  
  4250.     jsr    FILL
  4251.     blit
  4252.     rts
  4253.  
  4254.  
  4255. CopperList:
  4256.         dc.w    $0120,$0000        ; SpritePointers
  4257.         dc.w    $0122,$0000
  4258.         dc.w    $0124,$0000
  4259.         dc.w    $0126,$0000
  4260.         dc.w    $0128,$0000
  4261.         dc.w    $012a,$0000
  4262.         dc.w    $012c,$0000
  4263.         dc.w    $012e,$0000
  4264.         dc.w    $0130,$0000
  4265.         dc.w    $0132,$0000
  4266.         dc.w    $0134,$0000
  4267.         dc.w    $0136,$0000
  4268.         dc.w    $0138,$0000
  4269.         dc.w    $013a,$0000
  4270.         dc.w    $013c,$0000
  4271.         dc.w    $013e,$0000
  4272. COLORMAP:
  4273.         dc.w    $0180,$0000
  4274.         dc.w    $0182,$0CEF
  4275.         dc.w    $0184,$09AB
  4276.         dc.w    $0186,$0555
  4277.         dc.w    $0188,$0222
  4278.         dc.w    $018a,$0000
  4279.         dc.w    $018c,$0111
  4280.         dc.w    $018e,$0333
  4281.         dc.w    $0190,$0F00
  4282.         dc.w    $0192,$0A00
  4283.         dc.w    $0194,$0600
  4284.         dc.w    $0196,$0300
  4285.         dc.w    $0198,$0FC6
  4286.         dc.w    $019a,$0FA0
  4287.         dc.w    $019c,$0F60
  4288.         dc.w    $019e,$0B50
  4289. CREDCOLOR:    dc.w    $01a0,$0000
  4290.         dc.w    $01a2,$0ddd
  4291.         dc.w    $01a4,$0999
  4292.         dc.w    $01a6,$0555
  4293.         dc.w    $01a8,$0000
  4294.         dc.w    $01aa,$0ddd
  4295.         dc.w    $01ac,$0999
  4296.         dc.w    $01ae,$0555
  4297.         dc.w    $01b0,$0000
  4298.         dc.w    $01b2,$0ddd
  4299.         dc.w    $01b4,$0999
  4300.         dc.w    $01b6,$0555
  4301.         dc.w    $01b8,$0000
  4302.         dc.w    $01ba,$0ddd
  4303.         dc.w    $01bc,$0999
  4304.         dc.w    $01be,$0555
  4305.  
  4306. SCROLL:        dc.w    $0102,$0000        ; bplcon1
  4307.         dc.w    $0104,$0024        ; bplcon2
  4308.         dc.w    $0108,$FFD7        ; bpl1mod
  4309.         dc.w    $010a,$FFD7        ; bpl2mod
  4310.         dc.w    $008e,$2c81        ; diwstrt
  4311.         dc.w    $0090,$30C1        ; diwstop
  4312.         dc.w    $0092,$0030        ; ddfstrt
  4313.         dc.w    $0094,$00D0        ; ddfstop
  4314. BitMapPtrs:
  4315. BITPLAN0        dc.w    $00e0,$0000        ; Pointers to BitMap
  4316. BITPLAN1        dc.w    $00e2,$0000
  4317. BITPLAN2        dc.w    $00e4,$0000
  4318. BITPLAN3        dc.w    $00e6,$0000
  4319. BITPLAN4        dc.w    $00e8,$0000
  4320. BITPLAN5        dc.w    $00ea,$0000
  4321. BITPLAN6        dc.w    $00ec,$0000
  4322. BITPLAN7        dc.w    $00ee,$0000
  4323. BITPLAN8        dc.w    $00f0,$0000
  4324. BITPLAN9        dc.w    $00f2,$0000
  4325. BITPLAN10        dc.w    $00f4,$0000
  4326. BITPLAN11        dc.w    $00f6,$0000
  4327.         dc.w    $0100,$4a00        ; bplcon0
  4328. ZOOMER:
  4329.         blk.b    ILE_REZERWOWAC,00
  4330.         even
  4331.  
  4332. PICTUREKOLO:
  4333.     incbin    "df0:bcr/c1.boc"
  4334.     even
  4335. PICTURE:
  4336.     incbin    "df0:logo1.raw"
  4337.     even
  4338. PALETTE:
  4339.     incbin    "df0:bcr/paletteLOGO.raw"
  4340.     even
  4341. CREDITS:
  4342.     incbin    "df0:bcr/cr1.boc"
  4343.     even
  4344.         ; ­­­­­ SPRITTE SECTION
  4345. VIRSPR:
  4346.     dc.w    0,0,0,0
  4347. SPRITTE1:
  4348.     dc.w    78*$100+70+80,78*$100+65*$100
  4349. S1:    blk.w    65*2,0    ;$FFFF
  4350.     dc.l    0
  4351. SPRITTE2:
  4352.     dc.w    78*$100+78+80,78*$100+65*$100
  4353. S2:    blk.w    65*2,0    ;$FFFF
  4354.     dc.l    0
  4355. SPRITTE3:
  4356.     dc.w    78*$100+86+80,78*$100+65*$100
  4357. S3:    blk.w    65*2,0    ;$FFFF
  4358.     dc.l    0
  4359. SPRITTE4:
  4360.     dc.w    78*$100+94+80,78*$100+65*$100
  4361. S4:    blk.w    65*2,0    ;$FFFF
  4362.     dc.l    0
  4363. SPRITTE5:
  4364.     dc.w    78*$100+102+80,78*$100+65*$100
  4365. S5:    blk.w    65*2,0    ;$FFFF
  4366.     dc.l    0
  4367. SPRITTE6:
  4368.     dc.w    78*$100+110+80,78*$100+65*$100
  4369. S6:    blk.w    65*2,0    ;$FFFF
  4370.     dc.l    0
  4371. SPRITTE7:
  4372.     dc.w    78*$100+118+80,78*$100+65*$100
  4373. S7:    blk.w    65*2,0    ;$FFFF
  4374.     dc.l    0
  4375. SPRITTE8:
  4376.     dc.w    78*$100+126+80,78*$100+65*$100
  4377. S8:    blk.w    65*2,0    ;$FFFF
  4378.     dc.l    0
  4379.  
  4380.  
  4381. CCBIT        dc.w    0    
  4382. START_POSITION:    dc.l    $2501ff00
  4383. END_POSITION:    dc.l    $fe01ff00
  4384.  
  4385. PICTR1:        dc.l    ILE_DODAC
  4386. PICTR2:        dc.l    OFFSET2*(80)+ILE_DODAC
  4387. PICTR3:        dc.l    OFFSET2*(80*2)+ILE_DODAC
  4388. PICTR4:        dc.l    OFFSET2*(80*3)+ILE_DODAC
  4389.  
  4390. PICTR1K:    dc.l    0
  4391. PICTR2K:    dc.l    10240
  4392. PICTR3K:    dc.l    20480
  4393.  
  4394. BUF1:    dc.l    0
  4395. WAITED:    dc.b    1
  4396.     even
  4397.  
  4398. MEM:    dc.l    0
  4399.  
  4400. GET_C_COLORS_LIST:    dc.l    0
  4401. GET_C_COLORS_LIST_BUF:    dc.l    0
  4402.  
  4403. COLOR_WHITE:    dc.l    0
  4404.  
  4405. CopperListwall:
  4406.         dc.w    $0120,$0000        ; SpritePointers
  4407.         dc.w    $0122,$0000
  4408.         dc.w    $0124,$0000
  4409.         dc.w    $0126,$0000
  4410.         dc.w    $0128,$0000
  4411.         dc.w    $012a,$0000
  4412.         dc.w    $012c,$0000
  4413.         dc.w    $012e,$0000
  4414.         dc.w    $0130,$0000
  4415.         dc.w    $0132,$0000
  4416.         dc.w    $0134,$0000
  4417.         dc.w    $0136,$0000
  4418.         dc.w    $0138,$0000
  4419.         dc.w    $013a,$0000
  4420.         dc.w    $013c,$0000
  4421.         dc.w    $013e,$0000
  4422. COLORMAP1:
  4423.         dc.w    $0180,$0000        ; ColorMap
  4424.         dc.w    $0182,$0CEF
  4425.         dc.w    $0184,$09AB
  4426.         dc.w    $0186,$0555
  4427.         dc.w    $0188,$0222
  4428.         dc.w    $018a,$0000
  4429.         dc.w    $018c,$0111
  4430.         dc.w    $018e,$0333
  4431.         dc.w    $0190,$0F00
  4432.         dc.w    $0192,$0A00
  4433.         dc.w    $0194,$0600
  4434.         dc.w    $0196,$0300
  4435.         dc.w    $0198,$0FC6
  4436.         dc.w    $019a,$0FA0
  4437.         dc.w    $019c,$0F60
  4438.         dc.w    $019e,$0B50
  4439.         dc.w    $01a0,$0000
  4440.         dc.w    $01a2,$0FFF
  4441.         dc.w    $01a4,$0FFF
  4442.         dc.w    $01a6,$0FFF
  4443.         dc.w    $01a8,$0000
  4444.         dc.w    $01aa,$0FFF
  4445.         dc.w    $01ac,$0FFF
  4446.         dc.w    $01ae,$0FFF
  4447.         dc.w    $01b0,$0000
  4448.         dc.w    $01b2,$0FFF
  4449.         dc.w    $01b4,$0FFF
  4450.         dc.w    $01b6,$0FFF
  4451.         dc.w    $01b8,$0000
  4452.         dc.w    $01ba,$0FFF
  4453.         dc.w    $01bc,$0FFF
  4454.         dc.w    $01be,$0FFF
  4455.         dc.w    $0102,$0000        ; bplcon1
  4456.         dc.w    $0104,$0024        ; bplcon2
  4457.         dc.w    $0108,$0000        ; bpl1mod
  4458.         dc.w    $010a,$0000        ; bpl2mod
  4459.         dc.w    $008e,$2c81        ; diwstrt
  4460.         dc.w    $0090,$2cC1        ; diwstop
  4461.         dc.w    $0092,$0038        ; ddfstrt
  4462.         dc.w    $0094,$00D0        ; ddfstop
  4463. BITPLAN0w        dc.w    $00e0,$0000        ; Pointers to BitMap
  4464. BITPLAN1w        dc.w    $00e2,$0000
  4465.  
  4466. BITPLAN2w        dc.w    $00e4,$0000
  4467. BITPLAN3w        dc.w    $00e6,$0000
  4468.  
  4469. BITPLAN4w        dc.w    $00e8,$0000
  4470. BITPLAN5w        dc.w    $00ea,$0000
  4471.  
  4472. BITPLAN6w        dc.w    $00ec,$0000
  4473. BITPLAN7w        dc.w    $00ee,$0000
  4474.  
  4475. BITPLAN8w        dc.w    $00f0,$0000
  4476. BITPLAN9w        dc.w    $00f2,$0000
  4477.  
  4478. BITPLAN10w        dc.w    $00f4,$0000
  4479. BITPLAN11w        dc.w    $00f6,$0000
  4480.  
  4481. BPL0:        dc.w    $0100,$5200        ; bplcon0
  4482.         DC.L    $FFFFFFFE
  4483.  
  4484. Copper:        dc.w    $0120,$0000        ; SpritePointers
  4485.         dc.w    $0122,$0000
  4486.         dc.w    $0124,$0000
  4487.         dc.w    $0126,$0000
  4488.         dc.w    $0128,$0000
  4489.         dc.w    $012a,$0000
  4490.         dc.w    $012c,$0000
  4491.         dc.w    $012e,$0000
  4492.         dc.w    $0130,$0000
  4493.         dc.w    $0132,$0000
  4494.         dc.w    $0134,$0000
  4495.         dc.w    $0136,$0000
  4496.         dc.w    $0138,$0000
  4497.         dc.w    $013a,$0000
  4498.         dc.w    $013c,$0000
  4499.         dc.w    $013e,$0000
  4500. COLORMAP12:
  4501.         dc.w    $0180,$0666        ; ColorMap
  4502.         dc.w    $0182,$0666
  4503.         dc.w    $0184,$0000
  4504.         dc.w    $0186,$0000
  4505.         dc.w    $0188,$0222
  4506.         dc.w    $018a,$0000
  4507.         dc.w    $018c,$0111
  4508.         dc.w    $018e,$0333
  4509.         dc.w    $0190,$0F00
  4510.         dc.w    $0192,$0A00
  4511.         dc.w    $0194,$0600
  4512.         dc.w    $0196,$0300
  4513.         dc.w    $0198,$0FC6
  4514.         dc.w    $019a,$0FA0
  4515.         dc.w    $019c,$0F60
  4516.         dc.w    $019e,$0B50
  4517.         dc.w    $01a0,$0000
  4518.         dc.w    $01a2,$0FFF
  4519.         dc.w    $01a4,$0FFF
  4520.         dc.w    $01a6,$0FFF
  4521.         dc.w    $01a8,$0000
  4522.         dc.w    $01aa,$0FFF
  4523.         dc.w    $01ac,$0FFF
  4524.         dc.w    $01ae,$0FFF
  4525.         dc.w    $01b0,$0000
  4526.         dc.w    $01b2,$0FFF
  4527.         dc.w    $01b4,$0FFF
  4528.         dc.w    $01b6,$0FFF
  4529.         dc.w    $01b8,$0000
  4530.         dc.w    $01ba,$0FFF
  4531.         dc.w    $01bc,$0FFF
  4532.         dc.w    $01be,$0FFF
  4533.         dc.w    $0102,$0000        ; bplcon1
  4534.         dc.w    $0104,$0024        ; bplcon2
  4535.         dc.w    $0108,$0000        ; bpl1mod
  4536.         dc.w    $010a,$0000        ; bpl2mod
  4537.         dc.w    $008e,$2c81        ; diwstrt
  4538.         dc.w    $0090,$2cC1        ; diwstop
  4539.         dc.w    $0092,$0038        ; ddfstrt
  4540.         dc.w    $0094,$00D0        ; ddfstop
  4541. BITPLAN0wl        dc.w    $00e0,$0000        ; Pointers to BitMap
  4542. BITPLAN1wl        dc.w    $00e2,$0000
  4543.  
  4544. BITPLAN2wl        dc.w    $00e4,$0000
  4545. BITPLAN3wl        dc.w    $00e6,$0000
  4546.  
  4547. BITPLAN4wl        dc.w    $00e8,$0000
  4548. BITPLAN5wl        dc.w    $00ea,$0000
  4549.  
  4550. BITPLAN6wl        dc.w    $00ec,$0000
  4551. BITPLAN7wl        dc.w    $00ee,$0000
  4552.  
  4553. BITPLAN8wl        dc.w    $00f0,$0000
  4554. BITPLAN9wl        dc.w    $00f2,$0000
  4555.  
  4556. BITPLAN10wl        dc.w    $00f4,$0000
  4557. BITPLAN11wl        dc.w    $00f6,$0000
  4558.  
  4559.         dc.w    $0100,$1200        ; bplcon0
  4560.         dc.w    $6001,$FF00
  4561. BLIB1        dc.w    $180,$666
  4562.         dc.w    $182,$666
  4563.     
  4564.         dc.w    $f001,$FF00
  4565. BLIB2        dc.w    $180,$666
  4566.         dc.w    $182,$666
  4567.  
  4568.         DC.L    $FFFFFFFE
  4569.  
  4570. PALETTE1:
  4571.         dc.w    $000,$000,$000,$000,$000,$000,$000,$000
  4572.         dc.w    $09c,$000,$055,$077,$099,$0bb,$0dd,$0ff
  4573.  
  4574.         dc.w    $09c,$000,$055,$077,$099,$0bb,$0dd,$0ff
  4575.         dc.w    $069,$000,$022,$044,$066,$088,$0AA,$0CC
  4576.  
  4577. PALETTE2:
  4578.         dc.w    $069,$000,$022,$044,$066,$088,$0AA,$0CC
  4579.         dc.w    $022,$000,$022,$044,$066,$088,$0AA,$0CC
  4580.         dc.w    $022,$022,$022,$022,$022,$022,$022,$022
  4581.         dc.w    $000,$000,$022,$044,$066,$088,$0AA,$0CC
  4582.  
  4583. PALETTE4:
  4584.         dc.w    $069,$000,$022,$044,$066,$088,$0AA,$0CC
  4585.         dc.w    $022,$022,$022,$022,$022,$022,$022,$022
  4586.         dc.w    $022,$000,$022,$044,$066,$088,$0AA,$0CC
  4587.         dc.w    $000,$000,$022,$044,$066,$088,$0AA,$0CC
  4588.  
  4589. PALETTE6:
  4590.         dc.w    $000,$111,$222,$333,$444,$555,$666,$777
  4591.         dc.w    $888,$999,$aaa,$bbb,$ccc,$ddd,$eee,$fff
  4592.         dc.w    $000,$111,$222,$333,$444,$555,$666,$777
  4593.         dc.w    $888,$999,$aaa,$bbb,$ccc,$ddd,$eee,$fff
  4594.  
  4595.  
  4596.  
  4597. ******************************************
  4598. *** LINE OBJECT IN FORMAT VECTOR EDIT. ***
  4599. ******************************************
  4600. H1:
  4601.     dc.w    67
  4602.     dc.w    160-56,133-127,0
  4603.     dc.w    160-58,146-127,0
  4604.     dc.w    160-69,145-127,0
  4605.     dc.w    160-71,151-127,0
  4606.     dc.w    160-60,154-127,0
  4607.     dc.w    160-58,174-127,0
  4608.     dc.w    160-102,153-127,0
  4609.     dc.w    160-99,143-127,0
  4610.     dc.w    160-81,149-127,0
  4611.     dc.w    160-80,143-127,0
  4612.     dc.w    160-98,140-127,0
  4613.     dc.w    160-97,130-127,0    ;H
  4614.     dc.w    160-74,186-127,0
  4615.     dc.w    160-85,198-127,0
  4616.     dc.w    160-128,181-127,0
  4617.     dc.w    160-116,172-127,0
  4618.     dc.w    160-98,182-127,0
  4619.     dc.w    160-95,179-127,0
  4620.     dc.w    160-108,162-127,0
  4621.     dc.w    160-103,154-127,0    ;A
  4622.     dc.w    160-85,189-127,0
  4623.     dc.w    160-93,186-127,0
  4624.     dc.w    160-90,182-127,0    ;/\
  4625.     dc.w    160-92,206-127,0
  4626.     dc.w    160-100,212-127,0
  4627.     dc.w    160-113,206-127,0
  4628.     dc.w    160-110,218-127,0
  4629.     dc.w    160-123,224-127,0
  4630.     dc.w    160-130,183-127,0    ;V
  4631.     dc.w    160-126,225-127,0
  4632.     dc.w    160-144,230-127,0
  4633.     dc.w    160-146,222-127,0
  4634.     dc.w    160-137,220-127,0
  4635.     dc.w    160-138,217-127,0
  4636.     dc.w    160-144,219-127,0
  4637.     dc.w    160-147,211-127,0
  4638.     dc.w    160-141,208-127,0
  4639.     dc.w    160-142,205-127,0
  4640.     dc.w    160-157,211-127,0
  4641.     dc.w    160-160,190-127,0
  4642.     dc.w    160-137,186-127,0    ;E
  4643.     dc.w    160-194,225-127,0
  4644.     dc.w    160-214,215-127,0
  4645.     dc.w    160-203,174-127,0
  4646.     dc.w    160-192,181-127,0
  4647.     dc.w    160-197,200-127,0
  4648.     dc.w    160-194,201-127,0
  4649.     dc.w    160-185,185-127,0
  4650.     dc.w    160-173,189-127,0
  4651.     dc.w    160-203,214-127,0
  4652.     dc.w    160-201,205-127,0
  4653.     dc.w    160-196,207-127,0
  4654.     dc.w    160-243,189-127,0
  4655.     dc.w    160-259,157-127,0
  4656.     dc.w    160-220,146-127,0
  4657.     dc.w    160-217,154-127,0
  4658.     dc.w    160-237,164-127,0
  4659.     dc.w    160-235,167-127,0
  4660.     dc.w    160-216,157-127,0
  4661.     dc.w    160-211,164-127,0
  4662.     dc.w    160-262,147-127,0
  4663.     dc.w    160-264,133-127,0
  4664.     dc.w    160-252,132-127,0
  4665.     dc.w    160-250,145-127,0
  4666.     dc.w    160-246,145-127,0
  4667.     dc.w    160-248,132-127,0
  4668.     dc.w    160-223,130-127,0
  4669.     dc.w    160-222,141-127,0
  4670. H1D:
  4671.     dc.w    67
  4672.     dc.w    0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,0
  4673.     dc.w    12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,12
  4674.     dc.w    20,21,21,22,22,20
  4675.     dc.w    23,24,24,25,25,26,26,27,27,28,28,23
  4676.     dc.w    29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38
  4677.     dc.w    38,39,39,40,40,29
  4678.     dc.w    41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,41
  4679.     dc.w    49,50,50,51,51,49
  4680.     dc.w    52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,52
  4681.     dc.w    60,61,61,62,62,63,63,60,64,65,65,66,66,67,67,64
  4682. H2:
  4683.     dc.w    54
  4684.     dc.w    160-264,121-127,0
  4685.     dc.w    160-256,89-127,0
  4686.     dc.w    160-244,92-127,0
  4687.     dc.w    160-249,113-127,0
  4688.     dc.w    160-241,114-127,0
  4689.     dc.w    160-234,93-127,0
  4690.     dc.w    160-217,100-127,0
  4691.     dc.w    160-223,124-127,0    ;C
  4692.     dc.w    160-251,77-127,0
  4693.     dc.w    160-228,49-127,0
  4694.     dc.w    160-221,57-127,0
  4695.     dc.w    160-231,69-127,0
  4696.     dc.w    160-229,71-127,0
  4697.     dc.w    160-222,63-127,0
  4698.     dc.w    160-215,70-127,0
  4699.     dc.w    160-222,77-127,0
  4700.     dc.w    160-220,79-127,0
  4701.     dc.w    160-207,63-127,0
  4702.     dc.w    160-197,75-127,0
  4703.     dc.w    160-216,97-127,0    ;E
  4704.     dc.w    160-182,25-127,0
  4705.     dc.w    160-152,23-127,0
  4706.     dc.w    160-142,37-127,0
  4707.     dc.w    160-142,51-127,0
  4708.     dc.w    160-153,64-127,0
  4709.     dc.w    160-175,66-127,0    ;D
  4710.     dc.w    160-169,33-127,0
  4711.     dc.w    160-159,32-127,0
  4712.     dc.w    160-154,38-127,0
  4713.     dc.w    160-154,45-127,0
  4714.     dc.w    160-160,50-127,0
  4715.     dc.w    160-166,50-127,0    ; srodek D
  4716.     dc.w    160-120,31-127,0
  4717.     dc.w    160-103,40-127,0
  4718.     dc.w    160-114,84-127,0
  4719.     dc.w    160-126,73-127,0
  4720.     dc.w    160-121,59-127,0
  4721.     dc.w    160-126,56-127,0
  4722.     dc.w    160-133,70-127,0
  4723.     dc.w    160-146,66-127,0    ;A
  4724.     dc.w    160-113,39-127,0
  4725.     dc.w    160-116,54-127,0
  4726.     dc.w    160-123,50-127,0    ;srodek A
  4727.     dc.w    160-94,56-127,0
  4728.     dc.w    160-83,56-127,0
  4729.     dc.w    160-87,78-127,0
  4730.     dc.w    160-68,78-127,0
  4731.     dc.w    160-68,92-127,0
  4732.     dc.w    160-92,87-127,0
  4733.     dc.w    160-105,96-127,0
  4734.     dc.w    160-111,87-127,0    ;Y
  4735.     dc.w    160-98,77-127,0
  4736.  
  4737.     dc.w    160-91,104-127,0
  4738.     dc.w    160-71,111-127,0
  4739.     dc.w    160-78,121-127,0    ;trojkat
  4740. H2D:
  4741.     dc.w    54
  4742.     dc.w    0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,0
  4743.     dc.w    8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17
  4744.     dc.w    18,18,19,19,8
  4745.     dc.w    20,21,21,22,22,23,23,24,24,25,25,20
  4746.     dc.w    26,27,27,28,28,29,29,30,30,31,31,26
  4747.     dc.w    32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,32
  4748.     dc.w    40,41,41,42,42,40
  4749.     dc.w    43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,43
  4750.     dc.w    52,53,53,54,54,52
  4751. WAL1I:
  4752.     dc.w 26
  4753.     dc.w 180-60,160,0
  4754.     dc.w 180-60,100,0
  4755.     dc.w 220-60,100,0
  4756.     dc.w 220-60,80,0
  4757.     dc.w 240-60,80,0
  4758.     dc.w 240-60,80,0
  4759.     dc.w 240-60,60,0
  4760.     dc.w 180-60,60,0
  4761.     dc.w 180-60,40,0
  4762.     dc.w 200-60,40,0
  4763.     dc.w 200-60,20,0
  4764.     dc.w 240-60,20,0
  4765.     dc.w 240-60,0,0
  4766.     dc.w 180-60,0,0
  4767.     dc.w 180-60,-20,0
  4768.     dc.w 220-60,-20,0
  4769.     dc.w 220-60,-40,0
  4770.     dc.w 260-60,-40,0
  4771.     dc.w 260-60,-60,0
  4772.     dc.w 200-60,-60,0
  4773.     dc.w 200-60,-80,0
  4774.     dc.w 240-60,-80,0
  4775.     dc.w 240-60,-100,0
  4776.     dc.w 180-60,-100,0
  4777.     dc.w 180-60,-160,0
  4778.     dc.w 260-60,-160,0
  4779.     dc.w 260-60,160,0
  4780.  
  4781. WAL1D:
  4782.     dc.w 26
  4783.     dc.w 0,1,1,2,2,3,3,4,4,5
  4784.     dc.w 5,6,6,7,7,8,8,9,9,10
  4785.     dc.w 10,11,11,12,12,13,13,14,14,15
  4786.     dc.w 15,16,16,17,17,18,18,19,19,20
  4787.     dc.w 20,21,21,22,22,23,23,24,24,25
  4788.     dc.w 25,26,26,0
  4789.  
  4790. WAL2I:
  4791.     dc.w 25
  4792.     dc.w -240+60,160,0
  4793.     dc.w -240+60,100,0
  4794.     dc.w -200+60,100,0
  4795.     dc.w -200+60,80,0
  4796.     dc.w -180+60,80,0
  4797.     dc.w -180+60,60,0
  4798.     dc.w -240+60,60,0
  4799.     dc.w -240+60,40,0
  4800.     dc.w -220+60,40,0
  4801.     dc.w -220+60,20,0
  4802.     dc.w -180+60,20,0
  4803.     dc.w -180+60,0,0
  4804.     dc.w -240+60,0,0
  4805.     dc.w -240+60,-20,0
  4806.     dc.w -200+60,-20,0
  4807.     dc.w -200+60,-40,0
  4808.     dc.w -160+60,-40,0
  4809.     dc.w -160+60,-60,0
  4810.     dc.w -220+60,-60,0
  4811.     dc.w -220+60,-80,0
  4812.     dc.w -180+60,-80,0
  4813.     dc.w -180+60,-100,0
  4814.     dc.w -240+60,-100,0
  4815.     dc.w -240+60,-160,0
  4816.     dc.w -260+60,-160,0
  4817.     dc.w -260+60,160,0
  4818. WAL2D:
  4819.     dc.w 25
  4820.     dc.w 0,1,1,2,2,3,3,4,4,5
  4821.     dc.w 5,6,6,7,7,8,8,9,9,10
  4822.     dc.w 10,11,11,12,12,13,13,14,14,15
  4823.     dc.w 15,16,16,17,17,18,18,19,19,20
  4824.     dc.w 20,21,21,22,22,23,23,24,24,25
  4825.     dc.w 25,0
  4826.  
  4827. TUNEL1I:
  4828.     dc.w 31
  4829.     dc.w -60,80,-20
  4830.     dc.w -100,80,-20
  4831.     dc.w -100,80,20
  4832.     dc.w -60,80,20
  4833.     dc.w -60,-80,-20
  4834.     dc.w -100,-80,-20
  4835.     dc.w -100,-80,20
  4836.     dc.w -60,-80,20
  4837.     dc.w 100,-80,-20
  4838.     dc.w 60,-80,-20
  4839.     dc.w 60,-80,20
  4840.     dc.w 100,-80,20
  4841.     dc.w 100,80,-20
  4842.     dc.w 60,80,-20
  4843.     dc.w 60,80,20
  4844.     dc.w 100,80,20
  4845.     dc.w 60,120,20
  4846.     dc.w 60,80,20
  4847.     dc.w 60,80,-20
  4848.     dc.w 60,120,-20
  4849.     dc.w -60,120,20
  4850.     dc.w -60,80,20
  4851.     dc.w -60,80,-20
  4852.     dc.w -60,120,-20
  4853.     dc.w -60,-80,20
  4854.     dc.w -60,-120,20
  4855.     dc.w -60,-120,-20
  4856.     dc.w -60,-80,-20
  4857.     dc.w 60,-80,20
  4858.     dc.w 60,-120,20
  4859.     dc.w 60,-120,-20
  4860.     dc.w 60,-80,-20
  4861.  
  4862. TUNEL1D:
  4863.     dc.w 31
  4864.     dc.w 0,1,1,2,2,3,3,0,4,5
  4865.     dc.w 5,6,6,7,7,4,8,9,9,10
  4866.     dc.w 10,11,11,8,12,13,13,14,14,15
  4867.     dc.w 15,12,16,17,17,18,18,19,19,16
  4868.     dc.w 20,21,21,22,22,23,23,20,24,25
  4869.     dc.w 25,26,26,27,27,24,28,29,29,30
  4870.     dc.w 30,31,31,28
  4871.  
  4872. TABLE_DRAW:    dc.l    0
  4873.  
  4874. ************************
  4875. *** SIN & COS TABLES ***
  4876. ************************
  4877. sintable:
  4878.     dc.w    1,-5,-12,-18,-24,-30,-37,-43
  4879.     dc.w    -49,-55,-61,-67,-73,-79,-85,-91
  4880.     dc.w    -97,-103,-108,-114,-120,-125,-131,-136
  4881.     dc.w    -141,-146,-151,-156,-161,-166,-171,-176
  4882.     dc.w    -180,-184,-189,-193,-197,-201,-205,-208
  4883.     dc.w    -212,-215,-219,-222,-225,-228,-230,-233
  4884.     dc.w    -236,-238,-240,-242,-244,-246,-247,-249
  4885.     dc.w    -250,-251,-252,-253,-254,-254,-255,-255
  4886.     dc.w    -255,-255,-255,-254,-254,-253,-252,-251
  4887.     dc.w    -250,-249,-247,-246,-244,-242,-240,-238
  4888.     dc.w    -236,-233,-230,-228,-225,-222,-219,-215
  4889.     dc.w    -212,-208,-205,-201,-197,-193,-189,-184
  4890.     dc.w    -180,-176,-171,-166,-161,-156,-151,-146
  4891.     dc.w    -141,-136,-131,-125,-120,-114,-108,-103
  4892.     dc.w    -97,-91,-85,-79,-73,-67,-61,-55
  4893.     dc.w    -49,-43,-37,-30,-24,-18,-12,-5
  4894.     dc.w    1,6,13,19,25,31,38,44
  4895.     dc.w    50,56,62,68,74,80,86,92
  4896.     dc.w    98,104,109,115,121,126,132,137
  4897.     dc.w    142,147,152,158,162,167,172,177
  4898.     dc.w    181,185,190,194,198,202,206,209
  4899.     dc.w    213,216,220,223,226,229,231,234
  4900.     dc.w    237,239,241,243,245,247,248,250
  4901.     dc.w    251,252,253,254,255,255,256,256
  4902.     dc.w    256,256,256,255,255,254,253,252
  4903.     dc.w    251,250,248,247,245,243,241,239
  4904.     dc.w    237,234,231,229,226,223,220,216
  4905.     dc.w    213,209,206,202,198,194,190,185
  4906.     dc.w    181,177,172,167,162,157,152,147
  4907.     dc.w    142,137,132,126,121,115,109,104
  4908.     dc.w    98,92,86,80,74,68,62,56
  4909.     dc.w    50,44,38,31,25,19,13,6
  4910.  
  4911. costable:
  4912.     dc.w    256,256,256,255,255,254,253,252
  4913.     dc.w    251,250,248,247,245,243,241,239
  4914.     dc.w    237,234,231,229,226,223,220,216
  4915.     dc.w    213,209,206,202,198,194,190,185
  4916.     dc.w    181,177,172,167,162,157,152,147
  4917.     dc.w    142,137,132,126,121,115,109,104
  4918.     dc.w    98,92,86,80,74,68,62,56
  4919.     dc.w    50,44,38,31,25,19,13,6
  4920.     dc.w    1,-5,-12,-18,-24,-30,-37,-43
  4921.     dc.w    -49,-55,-61,-67,-73,-79,-85,-91
  4922.     dc.w    -97,-103,-108,-114,-120,-125,-131,-136
  4923.     dc.w    -141,-146,-151,-156,-161,-166,-171,-176
  4924.     dc.w    -180,-184,-189,-193,-197,-201,-205,-208
  4925.     dc.w    -212,-215,-219,-222,-225,-228,-230,-233
  4926.     dc.w    -236,-238,-240,-242,-244,-246,-247,-249
  4927.     dc.w    -250,-251,-252,-253,-254,-254,-255,-255
  4928.     dc.w    -255,-255,-255,-254,-254,-253,-252,-251
  4929.     dc.w    -250,-249,-247,-246,-244,-242,-240,-238
  4930.     dc.w    -236,-233,-230,-228,-225,-222,-219,-215
  4931.     dc.w    -212,-208,-205,-201,-197,-193,-189,-184
  4932.     dc.w    -180,-176,-171,-166,-161,-156,-151,-146
  4933.     dc.w    -141,-136,-131,-125,-120,-114,-108,-103
  4934.     dc.w    -97,-91,-85,-79,-73,-67,-61,-55
  4935.     dc.w    -49,-43,-37,-30,-24,-18,-12,-5
  4936.     dc.w    1,6,13,19,25,31,38,44
  4937.     dc.w    50,56,62,68,74,80,86,92
  4938.     dc.w    98,104,109,115,121,126,132,137
  4939.     dc.w    142,147,152,158,162,167,172,177
  4940.     dc.w    181,185,190,194,198,202,206,209
  4941.     dc.w    213,216,220,223,226,229,231,234
  4942.     dc.w    237,239,241,243,245,247,248,250
  4943.     dc.w    251,252,253,254,255,255,256,256
  4944.  
  4945.  
  4946. PLANE:        DC.L    0
  4947.  
  4948.  
  4949. SPEED    dc.w    30
  4950. GLEMBIA    dc.w    0
  4951. ODLICZ    dc.w    0
  4952. BUFOR1    dc.w    0
  4953. BUFOR2    dc.w    0
  4954. OBR    dc.w    0
  4955.  
  4956. ANGL    dc.w    0
  4957. ANGX    dc.w    0
  4958. ANGY    dc.w    0
  4959.  
  4960. XPZ    dc.w    156
  4961. YPZ    dc.w    124
  4962.  
  4963. ANG1    dc.w    0
  4964. GLE1    dc.w    200
  4965.  
  4966. BUF2    dc.w    0
  4967. ANG2    dc.w    0
  4968. GLE2    dc.w    200+120
  4969.  
  4970. BUF3    dc.w    0
  4971. ANG3    dc.w    0
  4972. GLE3    dc.w    200+120+120
  4973.  
  4974. BUF4    dc.w    0
  4975. ANG4    dc.w    0
  4976. GLE4    dc.w    200+120+120+120
  4977.  
  4978. BUF5    dc.w    0
  4979. ANG5    dc.w    0
  4980. GLE5    dc.w    200+120+120+120+120
  4981.  
  4982. BUF6    dc.w    0
  4983. ANG6    dc.w    0
  4984. GLE6    dc.w    200+120+120+120+120+120
  4985.  
  4986. BUF7    dc.w    0
  4987. ANG7    dc.w    0
  4988. GLE7    dc.w    200+120+120+120+120+120+120
  4989.  
  4990. BUF8    dc.w    0
  4991. ANG8    dc.w    0
  4992. GLE8    dc.w    200+120+120+120+120+120+120+120
  4993.  
  4994. STPOL    dc.w    0
  4995.  
  4996. COORDS_1:    dc.l    0
  4997. datalines:    dc.l    0
  4998.  
  4999. ROTBUF    dc.w    0
  5000. ADRES_PAMIECI    dc.l    0
  5001. creditsa    dc.l    0
  5002. ANGB    dc.w    0
  5003. bjb    dc.l    0
  5004.