home *** CD-ROM | disk | FTP | other *** search
/ Supremacy 1 / Supremacy-1.iso / DEMOS / M-N / NECROSYS.ZIP / GLOP.S < prev    next >
Text File  |  1997-03-05  |  12KB  |  681 lines

  1. DMA    =    $ffff8900
  2. Master_Volume    =    %0000010011000000   0 -> 40    40
  3. Left_Volume    =    %0000010101000000   0 -> 20    20
  4. Right_Volume    =    %0000010100000000   0 -> 20    20
  5. Treble    =    %0000010010000000   0 -> 24    6
  6. Bass    =    %0000010001000000   0 -> 24    4
  7. Mixing    =    %0000010000000000   00 = -12 Db
  8.               ; 01 = Mix Sample & YM
  9.               ; 10 = Sample Only ( <- /!\ )
  10.               ; 11 = Reserved
  11. Sound_Lenght    =    186000
  12.  
  13. Prg_Add    =    $2000
  14. Vbl_Flag    =    Prg_Add-10
  15. Vbl_Flag2    =    Prg_Add-12
  16.  
  17. Mask    =    $07ff
  18.  
  19.     Section TEXT
  20.  
  21. *    Supervisor mode for... Well... For supervisor calls
  22.  
  23.     clr.l    -(sp)
  24.     move    #$20,-(sp)
  25.     trap    #1
  26.     addq.l    #6,sp
  27.  
  28.     clr.b    $484.w
  29.  
  30. *    Memory shrink for AES calls
  31.  
  32.     move.l    a7,a5
  33.     move.l    4(a5),a5
  34.     move.l    $c(a5),d0
  35.     add.l    $14(a5),d0
  36.     add.l    $1c(a5),d0
  37.     add.l    #$500,d0
  38.     move.l    d0,d1
  39.     add.l    a5,d1
  40.     and.l    #-2,d1
  41.     move.l    d1,a7
  42.  
  43.     move.l    d0,-(sp)
  44.     move.l    a5,-(sp)
  45.     clr    -(sp)
  46.     move    #$4a,-(sp)    Mshrink
  47.     trap    #1
  48.  
  49.     lea    Haha(pc),a7
  50.  
  51. *    Application initialisation
  52.  
  53.     move    #10,control    APPL_INIT
  54.     clr    control+2
  55.     move    #1,control+4
  56.     clr.l    control+6
  57.     bsr    AES
  58.  
  59. *    Give a new address for File buffer
  60.  
  61.     pea    New_DTA(pc)    New DTA address
  62.     move    #$1a,-(sp)    FSETDTA
  63.     trap    #1
  64.     addq.l    #6,sp
  65.  
  66. *    Switch to low resolution
  67.  
  68.     move    #4,-(sp)
  69.     trap    #14
  70.     addq.l    #2,sp
  71.     move    d0,Old_Resol+2       Save current resolution
  72.  
  73.     clr    -(sp)
  74.     move.l    #($100000-Sound_Lenght-32000)&$ffff00,-(sp)
  75.     move.l    (sp),Old_Screen
  76.     move.l    (sp),-(sp)
  77.     move    #5,-(sp)
  78.     trap    #14
  79.     add.l    #12,sp
  80.  
  81. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  82. *           Load giga-mighty-wonder-music!              *
  83. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  84.  
  85.     clr    -(sp)    Normal access
  86.     pea    Default(pc)    File to search
  87.     move    #$4e,-(sp)
  88.     trap    #1    Hop hop!
  89.     addq.l    #8,sp
  90.  
  91.     tst    d0
  92.     beq.s    No_Problem    Music found !!! Great!!
  93.  
  94.     pea    No_Music(pc)
  95.     move    #9,-(sp)
  96.     trap    #1    Bouuuuuhhhh! No music...
  97.     addq.l    #6,sp
  98.  
  99.     move    #7,-(sp)
  100.     trap    #1
  101.     addq.l    #2,sp
  102.  
  103.     bra    Quit_Prog
  104.  
  105. No_Problem    move.l    #$100000-Sound_Lenght,a0
  106.     move.l    a0,-(sp)
  107.     bsr    FileOpen
  108.  
  109.     clr.l    Default
  110.     clr.l    Default+4
  111.     clr.l    Default+8
  112.     clr.l    Default+12
  113.  
  114. *    Relocate music
  115.  
  116.     move.l    (sp)+,a0
  117.     bsr    Relocate
  118.  
  119. *    Warning
  120.  
  121.     pea    Boring_Music(pc)
  122.     move    #9,-(sp)
  123.     trap    #1
  124.     addq.l    #6,sp
  125.  
  126. *    Interruption & vectors initialisation
  127.  
  128.     move    #$2700,sr
  129.  
  130.     move.l    $70.w,__Old_VBL+2
  131.  
  132.     lea    $fffffa00.w,a1
  133.     lea    __Old_MFP(pc),a0
  134.  
  135.     move.l    $06(a1),2(a0)
  136.     move.l    $12(a1),10(a0)
  137.     move    $16(a1),18(a0)
  138.     move    $1a(a1),24(a0)
  139.     move    $20(a1),30(a0)
  140.  
  141.     clr    Vbl_Flag.w
  142.     clr    Vbl_Flag2.w
  143.     clr.l    $6c.w
  144.     clr.l    $74.w
  145.  
  146.     movem.l    $ffff8240.w,d0-d7
  147.     movem.l    d0-d7,Old_Colors
  148.  
  149. *    Set DMA-Chip to good values
  150.  
  151.     move    #Mask,(DMA+$24).w  Set Mask
  152.  
  153.     move    #Master_Volume+1,d0
  154.     bsr    Send_CMD
  155.     move    #Treble+6,d0
  156.     bsr    Send_CMD
  157.     move    #Bass+4,d0
  158.     bsr    Send_CMD
  159.     move    #Left_Volume+20,d0
  160.     bsr    Send_CMD
  161.     move    #Right_Volume+20,d0
  162.     bsr    Send_CMD
  163.     move    #Mixing+2,d0
  164.     bsr    Send_CMD
  165.  
  166.     move    #Master_Volume+40,d0
  167.     bsr    Send_CMD    Master Volume -> Max
  168.     move    #$0003,DMA.w
  169.  
  170.     move.l    #$100000-Sound_Lenght,a0
  171.     jsr    (a0)    Install Vbl-Replay
  172.  
  173. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  174. *                    Main loop                  *
  175. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  176.  
  177. *    Change palette
  178.  
  179. __Hop    movem.l    New_Colors(pc),d0-d7
  180.     movem.l    d0-d7,$ffff8240.w
  181.  
  182.     move.l    Old_Screen(pc),d0
  183.     move    d0,-(sp)
  184.     move.b    (sp)+,d0
  185.     move.l    d0,$ffff8200.w
  186.  
  187.     move    #$2700,sr
  188.  
  189. __Old_VBL    move.l    #0,$74.w
  190.  
  191.     lea    $fffffa00.w,a0
  192. __Old_MFP    move.l    #0,$06(a0)
  193.     move.l    #0,$12(a0)
  194.     move    #0,$16(a0)
  195.     move    #0,$1a(a0)
  196.     move    #0,$20(a0)
  197.  
  198.     move    #-1,Vbl_Flag2.w
  199.  
  200.     move    #$2300,sr
  201.  
  202.     bsr    Fileselect
  203.  
  204. *    Test if HELP key has been hit
  205.  
  206.     tst    Keyboard
  207.     beq.s    .Released
  208.  
  209.     btst.s    #$7,$fffffc02.w
  210.     beq.s    .Pushed
  211.     clr    Keyboard
  212.  
  213. .Released    cmpi.b    #$62,$fffffc02.w
  214.     bne.s    .Pushed
  215.  
  216.     move    #-1,Keyboard
  217.     eori    #$0003,DMA.w
  218. .Pushed
  219.  
  220. *    Verify user answer
  221.  
  222.     tst    int_out+2
  223.     beq    Quit_Prog0    Branch if cancel selected
  224.  
  225. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  226. *             Load selected .PIF file              *
  227. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  228.  
  229.     clr    -(sp)    Normal access
  230.     pea    Default(pc)    File to search
  231.     move    #$4e,-(sp)
  232.     trap    #1    Hop hop!
  233.     addq.l    #8,sp
  234.  
  235.     tst    d0
  236.     bne    __Hop    File not found !!! 
  237.  
  238.     lea    Haha(pc),a0    Buffer address
  239.     move.l    #$100000-Sound_Lenght,a1
  240.     suba.l    a0,a1
  241.     move.l    a1,d7
  242.     lsr.l    #2,d7
  243.  
  244.     moveq    #0,d0
  245. .Loop_Clear    move.l    d0,(a0)+
  246.     subq.l    #1,d7
  247.     bne.s    .Loop_Clear
  248.  
  249.     lea    Haha(pc),a0    Buffer address
  250.     bsr    FileOpen
  251.  
  252. *    Get rid of interrupts
  253.  
  254.     clr    Vbl_Flag2.w
  255.     clr.l    $fffffa12.w
  256.  
  257. *    Depack program
  258.  
  259.     lea    Haha(pc),a0    Address of packed program
  260.     cmpi.l    #'TP10',(a0)
  261.     beq.s    .Good_File
  262.  
  263.     pea    Bad_File(pc)
  264.     move    #9,-(sp)
  265.     trap    #1
  266.     addq.l    #6,sp
  267.  
  268.     move    #7,-(sp)
  269.     trap    #1
  270.     addq.l    #2,sp
  271.  
  272.     bra    __Hop
  273.  
  274. .Good_File    move.l    a0,d0
  275.     add.l    New_DTA+26(pc),d0
  276.     andi.l    #$00fffffe,d0
  277.     addq.l    #2,d0
  278.     move.l    d0,a1
  279.     move.l    a1,-(sp)
  280.     bsr    Depack
  281.  
  282. *    Relocate program
  283.  
  284.     movea.l    (sp),a0
  285.     bsr    Relocate
  286.  
  287. *    Run it...
  288.  
  289.     movea.l    (sp)+,a0
  290.     jsr    (a0)
  291.  
  292.     clr    Vbl_Flag.w
  293.     clr    Vbl_Flag2.w
  294.  
  295.     bra    __Hop
  296.  
  297. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  298. *                    Exit part                  *
  299. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  300.  
  301. Quit_Prog0    move.b    #$ff,$484.w
  302.  
  303. Old_Resol    move    #0,-(sp)
  304.     move.l    Old_Screen(pc),-(sp)
  305.     move.l    (sp),-(sp)
  306.     move    #5,-(sp)
  307.     trap    #14
  308.     add.l    #12,sp
  309.  
  310.     clr    DMA.w
  311.  
  312.     movem.l    Old_Colors(pc),d0-d7
  313.     movem.l    d0-d7,$ffff8240.w
  314. Quit_Prog
  315.  
  316. *    Close AES Application
  317.  
  318.     move    #19,control    APPL_EXIT
  319.     clr    control+2
  320.     move    #1,control+4
  321.     clr.l    control+6
  322.     bsr    AES
  323.  
  324. *    Back to user mode
  325.  
  326.     clr.l    -(sp)
  327.     move    #$20,-(sp)
  328.     trap    #1
  329.     addq.l    #6,sp
  330.  
  331. *    Babaillle !!
  332.  
  333.     clr    -(sp)
  334.     trap    #1
  335.  
  336. *    Input: A0 = Address of Program to Relocate
  337.  
  338. Relocate    lea    28(a0),a1    Start Of Real Prg
  339.     move.l    a1,d0    Save Address
  340.  
  341.     addq.l    #2,a0
  342.     move.l    (a0)+,d1    Size of TEXT Section
  343.     add.l    (a0)+,d1    + Size of DATA Section
  344.     move.l    (a0)+,d7    Skip size of BSS Section
  345.     add.l    (a0)+,d1    + Size of Labels Section (Shouldn't Exist!!)
  346.     lea    (a1,d1.l),a0    Relocation Table Address
  347.     move.l    a0,-(sp)
  348.  
  349.     move.l    (a0)+,d1    1st Offset on .L
  350.     beq.s    .End_Reloc    No Relocation Needed
  351.     adda.l    d1,a1    Else Add to Current Pointer
  352.     add.l    d0,(a1)    Relocate
  353.  
  354.     moveq    #0,d1
  355. .Loop_Relocate    move.b    (a0)+,d1    Get Next Offset on .B
  356.     beq.s    .End_Reloc    End Relocation Now
  357.     cmpi.b    #1,d1    Compare to Special value
  358.     bne.s    .Dont_Add_Byte
  359.     lea    $fe(a1),a1    Add Special Value
  360.     bra.s    .Loop_Relocate
  361. .Dont_Add_Byte    adda    d1,a1    Add Normal Value
  362.     add.l    d0,(a1)    Relocate
  363.     bra.s    .Loop_Relocate
  364.  
  365. .End_Reloc    move.l    (sp)+,a0
  366.     lsr.l    #2,d7
  367.     moveq    #0,d0
  368.  
  369. .Clear_BSS    move.l    d0,(a0)+
  370.     subq.l    #1,d7
  371.     bpl.s    .Clear_BSS
  372.  
  373.     rts
  374.  
  375. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  376. *          Depack source code for Tetrapack 1.0 (AXEL/HMD 1994)              *
  377. *                A0 = Start of packed data                  *
  378. *                A1 = Address where to put depacked data              *
  379. *                          *
  380. * Warning: the routine uses quite an important work area on stack so make *
  381. *                 sure that stack size is at least 5kb.              *
  382. * √√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√ *
  383.  
  384. Work_Space    =    18+4084+98+74            ; workspace
  385.  
  386. Depack    movem.l    d0-a5,-(a7)
  387.  
  388.     cmp.l    #'TP10',(a0)+
  389.     bne    Exit
  390.  
  391.     link    a6,#-Work_Space
  392.     move.l    a7,a6
  393.  
  394.     add.l    (a0)+,a1
  395.     move.l    (a0)+,d0
  396.     lea    (a0,d0.l),a2
  397.     move.b    -(a2),d7
  398.  
  399.     moveq    #18,d2
  400.     bsr    Testbit
  401.     bcc.s    .skip
  402.     moveq    #8,d4
  403.     bsr    Readtree
  404.  
  405. .skip    move.w    d2,(a6)
  406.     lea    Table1(pc),a4
  407.  
  408. Block    move.w    #18,2(a6)
  409.     move.w    (a6),d2
  410.     bsr    Testbit
  411.     bcs.s    .next
  412.     moveq    #8,d4
  413.     bsr    Readtree
  414.     move.w    d3,2(a6)
  415.  
  416. .next    moveq    #3,d4
  417.     bsr    Readtree
  418.     move.w    d3,4(a6)
  419.     bsr    Readtree
  420.     move.w    d3,6(a6)
  421.     
  422.     clr.b    8(a6)
  423.     
  424.     bsr    Testbit
  425.     bcc.s    .length
  426.     
  427.     not.b    8(a6)
  428.     moveq    #0,d0
  429.     bsr    Readbits
  430.     move.b    d1,9(a6)
  431.     moveq    #2,d0
  432.     bsr    Readbits
  433.     move.b    9(a6),d0
  434.     add.b    d1,d1
  435.     add.b    d0,d1
  436.     moveq    #0,d2
  437.     moveq    #14,d3
  438.     add.b    d0,d3
  439.  
  440. .make    cmp.b    d0,d1
  441.     bne.s    .norm
  442.     move.b    d3,10(a6,d2.w)
  443.     bra.s    .cont
  444.  
  445. .norm    move.b    d0,10(a6,d2.w)
  446.  
  447. .cont    addq.b    #2,d0
  448.     addq.b    #1,d2
  449.     cmp.b    #7,d2
  450.     bne.s    .make
  451.     move.b    d1,17(a6)
  452.     bchg    #0,9(a6)
  453.  
  454. .length    moveq    #14,d0
  455.     bsr    Readbits
  456.     move.l    a1,a3
  457.     sub.w    d1,a3
  458.  
  459. Decrunch    move.w    2(a6),d1
  460.     bsr    Readcode
  461.     btst    #8,d0
  462.     bne.s    String
  463.     move.b    d0,-(a1)
  464.  
  465. Test    cmp.l    a1,a3
  466.     bne.s    Decrunch
  467.     cmp.l    a0,a2
  468.     beq    Done
  469.     bra    Block
  470.  
  471. String    move.w    4(a6),d1
  472.     bsr    Readcode
  473.     move.w    d0,d2
  474.     add.w    d2,d2
  475.     move.w    (a4,d2.w),d2
  476.     subq.w    #1,d0
  477.     bpl.s    .bigger
  478.     bsr    Testbit
  479.     bcc.s    .offset
  480.     subq.w    #1,d2
  481.     bra.s    .offset
  482.  
  483. .bigger    bsr.s    Readbits
  484.     add.w    d1,d2
  485.  
  486. .offset    move.w    6(a6),d1
  487.     bsr.s    Readcode
  488.     move.w    d0,d3
  489.     add.w    d3,d3
  490.     move.w    Table2-Table1(a4,d3.w),d3
  491.     
  492.     tst.b    8(a6)
  493.     beq.s    .normal
  494.     
  495.     moveq    #0,d4
  496.     subq.w    #1,d0
  497.     bmi.s    .skip
  498.     bsr.s    Readbits
  499.     lsl.w    #4,d1
  500.     move.w    d1,d4
  501.  
  502. .skip    moveq    #2,d0
  503.     bsr.s    Readbits
  504.     cmp.b    #7,d1
  505.     beq.s    .special
  506.     move.b    10(a6,d1.w),d1
  507.     bra.s    .add
  508.  
  509. .special    bsr.s    Testbit
  510.     bcs.s    .more
  511.     move.b    17(a6),d1
  512.     bra.s    .add
  513.  
  514. .more    moveq    #2,d0
  515.     bsr.s    Readbits
  516.     add.b    d1,d1
  517.     add.b    9(a6),d1
  518.  
  519. .add    add.w    d4,d1
  520.     bra.s    .string
  521.  
  522. .normal    addq.w    #3,d0
  523.     bsr.s    Readbits
  524.  
  525. .string    add.w    d3,d1
  526.     lea    1(a1,d1.w),a5
  527.  
  528. .copy    move.b    -(a5),-(a1)
  529.     dbra    d2,.copy
  530.     bra    Test
  531.  
  532. Done    lea    Work_Space(a6),a6
  533.     unlk    a6
  534.  
  535. Exit    movem.l    (a7)+,d0-a5
  536.  
  537.     rts
  538.  
  539. Readbits    moveq    #0,d1
  540.  
  541. .read    add.b    d7,d7
  542.     bne.s    .skip
  543.     move.b    -(a2),d7
  544.     addx.b    d7,d7
  545.  
  546. .skip    addx.w    d1,d1
  547.     dbra    d0,.read
  548.  
  549.     rts
  550.     
  551. Testbit    add.b    d7,d7
  552.     bne.s    ret
  553.     move.b    -(a2),d7
  554.     addx.b    d7,d7
  555.  
  556. ret    rts    
  557.  
  558. Readcode    move.w    (a6,d1.w),d0
  559.     bpl.s    ret
  560.     bsr.s    Testbit
  561.     bcs.s    .right
  562.     move.w    2(a6,d1.w),d1
  563.     bra.s    Readcode
  564.  
  565. .right    move.w    4(a6,d1.w),d1
  566.     bra.s    Readcode
  567.     
  568. Readtree    bsr.s    Testbit
  569.     bcs.s    .node
  570.     move.w    d4,d0
  571.     bsr.s    Readbits
  572.     move.w    d2,d3
  573.     addq.w    #2,d2
  574.     move.w    d1,(a6,d3.w)
  575.     rts
  576.  
  577. .node    move.w    d2,d3
  578.     addq.w    #6,d2
  579.     move.w    #-1,(a6,d3.w)
  580.     move.w    d3,-(sp)
  581.     bsr.s    Readtree
  582.     move.w    (sp),d0
  583.     move.w    d3,2(a6,d0.w)
  584.     bsr.s    Readtree
  585.     move.w    (sp)+,d0
  586.     move.w    d3,4(a6,d0.w)
  587.     move.w    d0,d3
  588.     rts
  589.  
  590. Table1    dc.w    2,2+1,2+1+2,2+1+2+4,2+1+2+4+8,2+1+2+4+8+16,2+1+2+4+8+16+32
  591.     dc.w    2+1+2+4+8+16+32+64,2+1+2+4+8+16+32+64+128,2+1+2+4+8+16+32+64+128+256
  592.     dc.w    2+1+2+4+8+16+32+64+128+256+512,2+1+2+4+8+16+32+64+128+256+512+1024
  593.     dc.w    2+1+2+4+8+16+32+64+128+256+512+1024+2048
  594.  
  595. Table2    dc.w    0,16,16+32,16+32+64,16+32+64+128,16+32+64+128+256
  596.     dc.w    16+32+64+128+256+512,16+32+64+128+256+512+1024
  597.     dc.w    16+32+64+128+256+512+1024+2048
  598.     dc.w    16+32+64+128+256+512+1024+2048+4096
  599.     EVEN
  600. End_Unpacker
  601.  
  602. FileOpen    move    #2,-(sp)
  603.     pea    Default(pc)    File to load
  604.     move    #$3d,-(sp)    Fopen
  605.     trap    #1
  606.     addq.l    #8,sp
  607.  
  608.     move.l    d0,d7    Save Handle
  609.     bmi.s    .Quit_Read
  610.  
  611.     move.l    a0,-(sp)    File address
  612.     move.l    New_DTA+26(pc),-(sp)    Lenght
  613.     move    d7,-(sp)    Handle
  614.     move    #$3f,-(sp)    Fread
  615.     trap    #1
  616.     add.l    #12,sp
  617.     bmi.s    .Quit_Read
  618.  
  619.     move    d7,-(sp)    Handle
  620.     move    #$3e,-(sp)    Fclose
  621.     trap    #1
  622.     addq.l    #4,sp
  623.  
  624. .Quit_Read    rts
  625.  
  626. Fileselect    move    #90,control    FSEL_INPUT
  627.     move    #0,control+2
  628.     move    #2,control+4
  629.     move    #2,control+6
  630.     move    #0,control+8
  631.     move.l    #Path,addr_in
  632.     move.l    #Default,addr_in+4
  633.     bsr    AES
  634.  
  635.     rts
  636.  
  637. AES    move.l    #Params,d1
  638.     move    #$c8,d0
  639.     trap    #2
  640.     rts
  641.  
  642. Send_CMD    cmpi    #Mask,(DMA+$24).w
  643.     bne.s    *-6
  644.     move    d0,(DMA+$22).w
  645.  
  646.     rts
  647.  
  648.     Section DATA
  649.  
  650. Keyboard    dc.w    0
  651. Old_Screen    dc.l    0
  652.  
  653. New_Colors    dc.l    $00000000,$00000000,$00000000,$00000000
  654.     dc.l    $00000000,$00000000,$00000000,$00000357
  655. Old_Colors    ds.l    8
  656.  
  657. No_Music    dc.b    $1b,"ESorry!! No music file found!",0
  658. Boring_Music    dc.b    $1b,"EGlop! If the music upsets you,push HELP! ",0
  659. Bad_File    dc.b    $1b,"ENot a .PAF File!! (You dumb ass!)",0
  660.     EVEN
  661.  
  662. Path    dc.b    "a:\*.PIF"
  663.     dcb.l    18,0
  664. Default    dc.b    "zikeumuh.zik",0,0,0,0
  665.  
  666. Params    dc.l    control,global,int_in,int_out
  667.     dc.l    addr_in,addr_out
  668. global    ds.l    8
  669. control    ds.l    5
  670. int_in
  671. int_out    dc.w    0
  672.     dc.w    0
  673. addr_in    ds.l    64
  674. addr_out    ds.l    64
  675.  
  676. New_DTA    ds.l    11
  677.  
  678.     Section BSS
  679.  
  680.     ds.b    6*1024
  681. Haha    END