home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga Shareware Floppies / ma42.dms / ma42.adf / IconPP / IconPP.S < prev    next >
Encoding:
Text File  |  2002-10-23  |  32.8 KB  |  2,282 lines

  1. ; Assemble it with disabled UCase=LCase option !
  2.  
  3. RT_FILEREQ        =0
  4.  
  5. _LVOrtAllocRequestA    =-30
  6. _LVOrtFreeRequest    =-36
  7. _LVOrtChangeReqAttrA    =-48
  8. _LVOrtFileRequestA    =-54
  9. _LVOrtFreeFileList    =-60
  10. _LVOrtGetStringA    =-72
  11.  
  12. rtfl_Next        =0
  13. rtfl_Name        =8
  14. rtfi_Dir        =16
  15.  
  16. RT_ReqPos        =$80000003
  17. RTGS_Width        =$80000020
  18. RTFI_Flags        =$80000028
  19. RTFI_Height        =$80000029
  20. RTFI_AllowEmpty        =$8000002d
  21. RTFI_Dir        =$80000032
  22. RTFI_MatchPat        =$80000033
  23. RTGS_AllowEmpty        =$80000050
  24. RTGS_CenterText        =$80000064
  25.  
  26. REQPOS_POINTER        =0
  27. FREQF_MULTISELECT    =1
  28. FREQF_PATGAD        =$10
  29. FREQF_SELECTDIRS    =$1000
  30.  
  31. program:
  32.     move.l    sp,stack
  33.  
  34.     move.l    4,a6
  35.     move.b    21(a6),sysver
  36.  
  37.     move.l    a0,a0store
  38.  
  39.     lea    windowcopy(pc),a0
  40.     lea    window,a1
  41.     bsr.w    move
  42.     lea    executenamecopy(pc),a0
  43.     lea    executename,a1
  44.     bsr.w    move
  45.     lea    assigncmdcopy(pc),a0
  46.     lea    assigncmd,a1
  47.     bsr.w    move
  48.  
  49.     move.l    4,a6
  50.     lea    dosname(pc),a1
  51.     jsr    -408(a6)
  52.     move.l    d0,dosbase
  53.  
  54.     move.l    4,a6
  55.     lea    gfxname(pc),a1
  56.     jsr    -408(a6)
  57.     move.l    d0,gfxbase
  58.  
  59.     move.l    4,a6
  60.     lea    intname(pc),a1
  61.     jsr    -408(a6)
  62.     move.l    d0,intbase
  63.  
  64.     lea    iconname(pc),a1
  65.     clr.l    d0
  66.     move.l    4,a6
  67.     jsr    -552(a6)
  68.     move.l    d0,iconbase
  69.     beq.w    quit
  70.  
  71.     suba.l    a1,a1
  72.     move.l    4,a6
  73.     jsr    -294(a6)
  74.     move.l    d0,a3
  75.  
  76.     move.l    152(a3),stdcd
  77.  
  78.     tst.l    172(a3)
  79.     bne.w    fromcli
  80.  
  81.     lea    92(a3),a0
  82.     move.l    4,a6
  83.     jsr    -384(a6)
  84.     move.l    4,a6
  85.     lea    92(a3),a0
  86.     jsr    -372(a6)
  87.     move.l    d0,wbmsg
  88.  
  89.     move.l    wbmsg,a0
  90.     move.l    28(a0),wbnumargs
  91.     sub.l    #2,wbnumargs
  92.     tst.l    wbnumargs
  93.     bpl.s    numargs_ok
  94.     bsr.w    openio
  95.     bsr.w    printinfo
  96.     move.l    dosbase,a6
  97.     move.l    #200,d1
  98.     jsr    -198(a6)
  99.     bsr.w    closeio
  100.     bra.w    quit
  101. numargs_ok:
  102.     move.l    $24(a0),a0
  103.     cmp.l    #0,a0
  104.     beq.w    quit
  105.  
  106.     move.l    a0,wbargs
  107.     move.l    a0,wbargadress
  108.     add.l    #16,wbargadress
  109.  
  110.     move.l    wbargs,a0
  111.     move.l    8(a0),d1
  112.     beq.w    quit
  113.     move.l    dosbase,a6
  114.     jsr    -126(a6)
  115.  
  116.     move.l    wbargs,a0
  117.     move.l    12(a0),a0
  118.     move.l    a0,prgnameadress
  119.  
  120. returnfromcli:
  121.     move.l    prgnameadress,a0
  122.     bsr.w    moveprogram
  123.  
  124.     move.l    prgnameadress,a0
  125.     move.l    iconbase,a6
  126.     jsr    -78(a6)
  127.     tst.l    d0
  128.     bne.s    icon_noerror
  129.     lea    nofile(pc),a0
  130.     bsr.w    error
  131.     bra.w    quit
  132. icon_noerror:
  133.     move.l    d0,diskobject
  134.     move.l    d0,a1
  135.     move.l    $36(a1),a1
  136.     move.l    a1,tooltypearray
  137.  
  138.     lea    tooltypestable(pc),a0
  139.     bsr.w    tooltypes
  140.  
  141.     tst.b    screenflag
  142.     beq.b    screenok
  143.  
  144.     move.w    s_sx(pc),w_sx
  145.  
  146.     lea    newscreen(pc),a0
  147.     move.l    intbase,a6
  148.     jsr    -198(a6)
  149.     move.l    d0,screen
  150.     tst.l    d0
  151.     beq.s    screenerr
  152.  
  153.     move.l    screen(pc),w_screen
  154.  
  155.     lea    newwindow(pc),a0
  156.     move.l    intbase,a6
  157.     jsr    -204(a6)
  158.     move.l    d0,windowp
  159.     tst.l    d0
  160.     bne.s    screenok
  161.  
  162.     move.l    screen(pc),a0
  163.     move.l    intbase,a6
  164.     jsr    -66(a6)
  165.  
  166. screenerr:
  167.     lea    noscr(pc),a0
  168.     bsr.w    error
  169.     tst.l    d0
  170.     bne.w    noclosescr
  171.  
  172. screenok:
  173.     tst.b    prgtype
  174.     bne.s    typeset
  175.     bsr.w    analyse
  176. typeset:
  177.     cmp.b    #1,prgtype
  178.     beq.w    segment
  179.     cmp.b    #2,prgtype
  180.     beq.w    loadabsolute
  181.  
  182.     bsr.w    openio
  183.  
  184.     move.l    prgadr(pc),d1
  185.     move.l    windowfile,d2
  186.     moveq    #0,d3
  187.     tst.b    outputflag
  188.     beq.s    inout
  189.     move.l    d2,d3
  190.     moveq    #0,d2
  191. inout:
  192.     move.l    dosbase,a6
  193.     jsr    -222(a6)
  194.  
  195. returnhere:
  196.     move.l    stack,sp
  197.  
  198.     bsr.w    cacheon
  199.  
  200.     move.l    currentdir,d1
  201.     beq.s    nounlock
  202.     move.l    dosbase,a6
  203.     jsr    -90(a6)
  204.  
  205. nounlock:
  206.     tst.l    allocdone
  207.     beq.s    nounalloc
  208.  
  209.     move.l    4,a6
  210.     move.l    allocadr,a1
  211.     move.l    alloclen,d0
  212.     jsr    -210(a6)
  213.  
  214. nounalloc:
  215.     tst.b    scrcloseflag
  216.     beq.s    noscrclose
  217.     tst.l    windowp
  218.     beq.s    noscrclose
  219.  
  220. message:
  221.     move.l    dosbase,a6
  222.     moveq    #20,d1
  223.     jsr    -198(a6)
  224.  
  225.     move.l    windowp,a0
  226.     move.l    86(a0),a0
  227.     move.l    4,a6
  228.     jsr    -372(a6)
  229.     tst.l    d0
  230.     beq.s    message
  231.     move.l    d0,a1
  232.     move.l    20(a1),d2
  233.  
  234.     move.l    4,a6
  235.     jsr    -378(a6)
  236.  
  237.     cmp.l    #512,d2
  238.     bne.s    message
  239.  
  240. noscrclose:
  241.     tst.l    windowp
  242.     beq.s    noclosewindow
  243.  
  244.     move.l    windowp,a0
  245.     move.l    intbase,a6
  246.     jsr    -72(a6)
  247.  
  248. noclosewindow:
  249.     tst.l    screen
  250.     beq.s    noclosescr
  251.  
  252.     move.l    screen,a0
  253.     move.l    intbase,a6
  254.     jsr    -66(a6)
  255.  
  256. noclosescr:
  257.     move.l    intbase,a6
  258.     jsr    -210(a6)
  259.  
  260.     tst.b    resflag
  261.     beq.b    norescue
  262.     move.l     gfxbase,a4
  263.     move.l    38(a4),$dff080
  264.     clr.w    $dff088
  265.     move.w    #%1000000110100000,$dff096
  266.  
  267.     tst.l    view
  268.     bne.s    setview
  269.  
  270.     move.l    gfxbase,a6
  271.     move.l    34(a6),view
  272.  
  273.     suba.l    a1,a1
  274.     jsr    -222(a6)
  275.  
  276. setview:
  277.     move.l    view,a1
  278.     move.l    gfxbase,a6
  279.     jsr    -222(a6)
  280.  
  281. norescue:
  282.     tst.l    windowfile
  283.     beq.w    nocloseio
  284.  
  285.     tst.b    outputflag
  286.     beq.s    o_newcli
  287.  
  288.     move.l    dosbase,a6
  289.     move.l    #150,d1
  290.     jsr    -198(a6)
  291.  
  292. o_newcli:
  293.     bsr.w    closeio
  294.  
  295. quit:
  296.     move.l    stack,sp
  297.  
  298.     move.l    stdcd,d1
  299.     move.l    dosbase,a6
  300.     jsr    -126(a6)
  301.  
  302.     tst.l    diskobject
  303.     beq.s    nofreediskobject
  304.     move.l    iconbase,a6
  305.     move.l    diskobject,a0
  306.     jsr    -90(a6)
  307.  
  308. nofreediskobject:
  309.     tst.l    iconbase
  310.     beq.s    nocloseicon
  311.     move.l    iconbase,a1
  312.     move.l    4,a6
  313.     jsr    -414(a6)
  314.  
  315. nocloseicon:
  316.     move.l    gfxbase,a1
  317.     move.l    4,a6
  318.     jsr    -414(a6)
  319.  
  320.     move.l    dosbase,a1
  321.     move.l    4,a6
  322.     jsr    -414(a6)
  323.  
  324.     bsr.w    closereq
  325.  
  326.     tst.l    wbmsg
  327.     beq.s    nowb
  328.     move.l    4.w,a6
  329.     jsr    -132(a6)
  330.     move.l    wbmsg,a1
  331.     move.l    4.w,a6
  332.     jsr    -378(a6)
  333.  
  334. nowb:
  335.  
  336.     clr.l    d0
  337.     rts
  338.  
  339. openio:
  340.     tst.l    wbmsg
  341.     beq.s    noopenio
  342.     move.l    #window,d1
  343.     move.l    #$3ed,d2
  344.     move.l    dosbase,a6
  345.     jsr    -30(a6)
  346.     move.l    d0,windowfile
  347. noopenio:
  348.     rts
  349.  
  350. closeio:
  351.     move.l    windowfile,d1
  352.     move.l    dosbase,a6
  353.     jsr    -36(a6)
  354. nocloseio:
  355.     rts
  356.  
  357. fromcli:
  358.     move.l    a0store,a0
  359.     cmp.b    #10,(a0)
  360.     beq.s    showinfo
  361.  
  362.     cmp.b    #'"',(a0)
  363.     bne.s    fcli_noquote
  364.     adda.l    #1,a0
  365. fcli_noquote:
  366.     move.l    a0,prgnameadress
  367. fcli_loop:
  368.     cmp.b    #10,(a0)+
  369.     bne.s    fcli_loop
  370.     move.b    #0,-(a0)
  371.     cmp.b    #'"',-(a0)
  372.     bne.w    returnfromcli
  373.     move.b    #0,(a0)
  374.     bra.w    returnfromcli
  375.  
  376. showinfo:
  377.     move.l    dosbase,a6
  378.     jsr    -60(a6)
  379.     tst.l    d0
  380.     beq.s    showend
  381.     bsr.w    printinfo
  382. showend:
  383.     bra.w    quit
  384.     rts
  385.  
  386. ; d0 - output window file
  387.  
  388. printinfo:
  389.     move.l    d0,windowfile
  390.  
  391.     lea    infoprint,a0
  392.     move.l    (a0)+,d2
  393.     move.l    (a0)+,d3
  394. infoloop:
  395.  
  396.     move.l    a0,-(sp)
  397.     move.l    dosbase,a6
  398.     move.l    windowfile,d1
  399.     jsr    -48(a6)
  400.     move.l    (sp)+,a0
  401.  
  402.     move.l    (a0)+,d2
  403.     tst.l    d2
  404.     beq.s    realend
  405.     move.l    (a0)+,d3
  406.  
  407.     movem.l    a0/d2/d3,-(sp)
  408.     move.l    windowfile,d1
  409.     move.l    #buffer,d2
  410.     move.l    #1,d3
  411.     move.l    dosbase,a6
  412.     jsr    -42(a6)
  413.     movem.l    (sp)+,a0/d2/d3
  414.     bra.s    infoloop
  415.  
  416. realend:
  417.     rts
  418.  
  419. analyse:
  420.     move.l    prgnameadress,a0
  421.     bsr.w    fsize
  422.     move.l    protection,d0
  423.     btst    #6,d0
  424.     beq.s    noscript
  425.     bsr.w    execute
  426. noscript:
  427.     tst.l    loadadr
  428.     beq.s    noabsolute
  429.     bsr.w    abs
  430. noabsolute:
  431.     move.b    interruptsflag,d0
  432.     or.b    multitaskingflag,d0
  433.     tst.b    d0
  434.     beq.s    noloadseg
  435.     bsr.w    lseg
  436. noloadseg:
  437.     rts
  438.  
  439. moveprogram:
  440.     move.l    prgadr,a1
  441.     move.b    #'"',(a1)+
  442.     bsr.w    move
  443.     move.b    #'"',-1(a1)
  444.     move.b    #0,(a1)+
  445.     rts
  446.  
  447. segment:
  448.     move.l    prgnameadress,d1
  449.     move.l    dosbase,a6
  450.     jsr    -150(a6)
  451.     tst.l    d0
  452.     beq.w    returnhere
  453.     move.l    d0,segmentadr
  454.  
  455.     bsr.b    opt
  456.  
  457.     move.l    segmentadr,d0
  458.     asl.l    #2,d0
  459.     add.l    #4,d0
  460.     move.l    d0,a5
  461.     move.l    paramsadr,a0
  462.     move.l    4,a6
  463.     jsr    (a5)
  464.  
  465.     move.l    stack,sp
  466.  
  467.      bsr.b    opton
  468.  
  469.     move.l    segmentadr,d1
  470.     move.l    dosbase,a6
  471.     jsr    -156(a6)
  472.     bra.w    returnhere
  473.  
  474. enter:
  475.     dc.b    10,0
  476. segmentadr:
  477.     dc.l    0
  478.  
  479. opt:
  480.     tst.b    interruptsflag
  481.     beq.s    nointoff
  482.     move.w    #%0100000000000000,$dff09a
  483. nointoff:
  484.     tst.b    multitaskingflag
  485.     beq.s    nomultioff
  486.     move.l    4,a6
  487.     jsr    -132(a6)
  488. nomultioff:
  489.     rts
  490.  
  491. opton:
  492.     tst.b    interruptsflag
  493.     beq.s    nointon
  494.     move.w    #%1100000000000000,$dff09a
  495. nointon:
  496.     tst.b    multitaskingflag
  497.     beq.s    nomultion
  498.     move.l    4,a6
  499.     jsr    -138(a6)
  500. nomultion:
  501.     rts
  502.  
  503. loadabsolute:
  504.     tst.l    loadadr
  505.     beq.b    laend
  506.  
  507.     move.l    prgnameadress,a0
  508.     bsr.w    fsize
  509.  
  510.     move.l    prgnameadress,d1
  511.     move.l    #$3ed,d2
  512.     move.l    dosbase,a6
  513.     jsr    -30(a6)
  514.     tst.l    d0
  515.     beq.s    laend
  516.     move.l    d0,file
  517.  
  518.     move.l    file,d1
  519.     move.l    loadadr,d2
  520.     move.l    filesize,d3
  521.     move.l    dosbase,a6
  522.     jsr    -42(a6)
  523.  
  524.     bsr.w    opt
  525.  
  526.     move.l    jumpadr,a5
  527.     move.l    paramsadr,a0
  528.     move.l    4,a6
  529.     jsr    (a5)
  530.  
  531.     move.l    stack,sp
  532.  
  533.     bsr.w    opton
  534.  
  535.     move.l    file,d1
  536.     move.l    dosbase,a6
  537.     jsr    -36(a6)
  538.  
  539. laend:
  540.     bra.w    returnhere
  541.  
  542. allocdone:
  543.     dc.l    0
  544.  
  545. tooltypes:
  546.     movem.l    d0-d7/a0-a6,-(sp)
  547.     move.l    a0,a2
  548. toolloop:
  549.     move.l    (a2)+,a1
  550.     cmp.l    #0,a1
  551.     beq.w    toolend
  552.  
  553.     move.l    a2,-(sp)
  554.     move.l    tooltypearray,a0
  555.     move.l    iconbase,a6
  556.     jsr    -96(a6)
  557.     move.l    (sp)+,a2
  558.     tst.l    d0
  559.     beq.w    notool2
  560.     move.l    d0,a0
  561. nextarg:
  562.     move.l    (a2)+,a1
  563.     cmp.l    #0,a1
  564.     beq.s    notool
  565.     move.l    (a2)+,d1
  566.     cmp.l    #'b',d1
  567.     bne.s    argnob
  568.     bsr.b    asciidoliczba
  569.     cmp.l    #$80000000,d0
  570.     bne.s    here___
  571.     moveq    #1,d0
  572. here___:
  573.     move.b    d0,(a1)
  574.     bra.s    nexttool
  575. argnob:    cmp.l    #'w',d1
  576.     bne.s    argnow
  577.     bsr.s    asciidoliczba
  578.     cmp.l    #$80000000,d0
  579.     beq.s    nexttool
  580.     move.w    d0,(a1)
  581.     bra.s    nexttool
  582. argnow:    cmp.l    #'l',d1
  583.     bne.s    argnol
  584.     bsr.s    asciidoliczba
  585.     cmp.l    #$80000000,d0
  586.     beq.s    nexttool
  587.     move.l    d0,(a1)
  588.     bra.s    nexttool
  589. argnol:
  590.     tst.l    d1
  591.     beq.s    a_jump
  592.     movem.l    d1-d7/a0-a6,-(sp)
  593.     move.l    d1,a1
  594.     move.l    iconbase,a6
  595.     jsr    -102(a6)
  596.     movem.l    (sp)+,d1-d7/a0-a6
  597.     tst.w    d0
  598.     beq.s    nexttool
  599. a_jump:    movem.l    d0-d7/a0-a6,-(sp)
  600.     jsr    (a1)
  601.     movem.l    (sp)+,d0-d7/a0-a6
  602. nexttool:
  603.     bra.s    nextarg
  604. notool:    bra.w    toolloop
  605. toolend:
  606.     movem.l    (sp)+,d0-d7/a0-a6
  607.     rts
  608. notool2:
  609.     move.l    (a2)+,a1
  610.     cmp.l    #0,a1
  611.     beq.s    notool
  612.     move.l    (a2)+,d1
  613.     bra.s    notool2
  614.  
  615. asciidoliczba:
  616.     movem.l    a1-a6/d1-d7,-(sp)
  617. asloop:
  618.     move.b    (a0)+,d0
  619.     tst.b    d0
  620.     beq.s    aserr
  621.     cmp.b    #',',d0
  622.     beq.s    aserr
  623.     cmp.b    #'$',d0
  624.     beq.s    hexlicz
  625.     cmp.b    #'0',d0
  626.     blt.s    asloop
  627.     cmp.b    #'9',d0
  628.     bgt.s    asloop
  629.     suba.l    #1,a0
  630. asloop2:
  631.     move.b    (a0)+,d0
  632.     tst.b    d0
  633.     beq.s    aslicz
  634.     cmp.b    #'0',d0
  635.     blt.s    aslicz
  636.     cmp.b    #'9',d0
  637.     bgt.s    aslicz
  638.     bra.s    asloop2
  639. aslicz:    move.l    a0,-(sp)
  640.     suba.l    #1,a0
  641.     lea    mnozonko,a1
  642.     clr.l    d0
  643.     clr.l    d1
  644. asconv:
  645.     move.b    -(a0),d1
  646.     cmp.b    #'-',d1
  647.     beq.s    ascneg
  648.     sub.b    #'0',d1
  649.     tst.b    d1
  650.     bmi.s    ascend
  651.     cmp.b    #10,d1
  652.     bge.s    ascend
  653.     move.l    (a1)+,d2
  654.     ext.w    d1
  655.     tst.w    d1
  656.     beq.s    asconv
  657.     sub.w    #1,d1
  658. mululoop:
  659.     add.l    d2,d0
  660.     dbf    d1,mululoop
  661.     bra.s    asconv
  662. ascend:    move.l    (sp)+,a0
  663. asend:    movem.l    (sp)+,a1-a6/d1-d7
  664.     rts
  665. aserr:    move.l    #$80000000,d0
  666.     movem.l    (sp)+,a1-a6/d1-d7
  667.     rts
  668.     
  669. ascneg:    neg.l    d0
  670.     bra.s    ascend
  671.  
  672. hexlicz:
  673.     move.b    (a0)+,d0
  674.     bsr.b    hexdocyfra
  675.     cmp.b    d1,d0
  676.     bne.s    hexlicz
  677.  
  678.     move.l    a0,-(sp)
  679.     suba.l    #1,a0
  680.  
  681.     clr.l    d2
  682.     clr.l    d3
  683. hexloop:
  684.     move.b    -(a0),d0
  685.     bsr.b    hexdocyfra
  686.     cmp.b    d0,d1
  687.     beq.s    hexend
  688.     ext.w    d1
  689.     ext.l    d1
  690.     asl.l    d2,d1
  691.     addq    #4,d2
  692.     add.l    d1,d3
  693.     bra.s    hexloop
  694. hexend:
  695.     move.l    (sp)+,a0
  696.     move.l    d3,d0
  697.     movem.l    (sp)+,a1-a6/d1-d7
  698.     rts
  699.  
  700. ; d0 - ascii
  701. ; d1 - cyfra
  702.  
  703. hexdocyfra:
  704.     movem.l    d2/a5,-(sp)
  705.     lea    hexcyfry,a5
  706. hdcloop:
  707.     move.b    (a5)+,d2
  708.     move.b    (a5)+,d1
  709.     tst.b    d2
  710.     beq.s    hdcerr
  711.     cmp.b    d0,d2
  712.     bne.s    hdcloop
  713.     movem.l    (sp)+,d2/a5
  714.     rts
  715. hdcerr:
  716.     move.b    d0,d1
  717.     movem.l    (sp)+,d2/a5
  718.     rts
  719.  
  720. hexcyfry:
  721.     dc.b    '0',0,'1',1,'2',2,'3',3,'4',4,'5',5,'6',6,'7',7,'8',8,'9',9
  722.     dc.b    'a',10,'b',11,'c',12,'d',13,'e',14,'f',15
  723.     dc.b    'A',10,'B',11,'C',12,'D',13,'E',14,'F',15
  724.     dc.b    0,0
  725.  
  726. mnozonko:
  727.     dc.l    1,10,100,1000,10000,100000,1000000
  728.  
  729. movename:
  730.     lea    window,a1
  731.     bsr.b    move
  732.     rts
  733.  
  734. argmove:
  735.     tst.b    quoteflag
  736.     beq.s    am_noq
  737.     move.b    #'"',(a1)+
  738. am_noq:    bsr.b    move
  739.     tst.b    quoteflag
  740.     beq.s    am_noq2
  741.     move.b    #'"',-1(a1)
  742.     adda.l    #1,a1
  743. am_noq2:
  744.     move.b    #' ',-(a1)
  745.     rts
  746.  
  747. move:
  748. n_loop:
  749.     move.b    (a0)+,d0
  750.     move.b    d0,(a1)+
  751.     bne.s    n_loop
  752.     rts
  753.  
  754. argmovenq:
  755. mnq_loop:
  756.     move.b    (a0)+,d0
  757.     move.b    d0,(a1)+
  758.     bne.s    mnq_loop
  759.     move.b    #' ',-(a1)
  760.     rts
  761.  
  762. moveparams:
  763.     movem.l    a2/d1/d2,-(sp)
  764.     clr.l    d1
  765. mp_loop:
  766.     bsr.b    argsoptionscheck
  767.     move.b    (a0)+,d0
  768.     cmp.b    #'»',d0
  769.     bne.s    nonextline
  770.  
  771.     move.l    tooltypearray,a2
  772.     addq    #1,d1
  773.     move.l    d1,d2
  774. mp_loop2:
  775.     move.l    (a2)+,a0
  776.     cmp.l    #0,a0
  777.     beq.s    mp_end
  778.     cmp.b    #'»',(a0)+
  779.     bne.s    mp_loop2
  780.     subq    #1,d2
  781.     bne.s    mp_loop2
  782.     bra.s    mp_loop
  783.  
  784. nonextline:
  785.     move.b    d0,(a1)+
  786.     bne.s    mp_loop
  787. mp_end:
  788.     movem.l    (sp)+,a2/d1/d2
  789.     rts
  790.  
  791. ; a0 - source
  792. ; a1 - destination
  793.  
  794. argsoptionscheck:
  795.     movem.l    d0-d7/a2-a6,-(sp)
  796.     move.l    a0,orgsource
  797.     move.l    a1,orgdest
  798.     lea    argsadresses,a2
  799.     lea    argsoptions,a3
  800.     lea    textadresses,a4
  801. aoc_loop:
  802.     move.l    (a2)+,a5
  803.     cmp.l    #0,a5
  804.     beq.s    aoc_done
  805. aoc_loop2:
  806.     move.b    (a3)+,d1
  807.     beq.s    aoc_equal
  808.     move.b    (a0)+,d0
  809.     beq.s    aoc_done
  810.     cmp.b    #'*',d1
  811.     bne.s    aoc_nowildcard
  812.     move.l    a1,-(sp)
  813.     move.l    a3,a1
  814.     bsr.b    aoc_wildcard
  815.     move.l    a1,a3
  816.     move.l    (sp)+,a1
  817.     bra.s    aoc_loop2
  818. aoc_nowildcard:
  819.     cmp.b    d0,d1
  820.     beq.s    aoc_loop2
  821. aoc_loop3:
  822.     tst.b    (a3)+
  823.     bne.s    aoc_loop3
  824.     move.l    orgsource,a0
  825.     move.l    orgdest,a1
  826.     bra.s    aoc_loop
  827. aoc_equal:
  828.     move.l    orgsource,a2
  829.     move.l    a0,orgsource
  830.     move.l    a2,a0
  831.     jsr    (a5)
  832.     move.l    a1,orgdest
  833.     movem.l    (sp)+,d0-d7/a2-a6
  834.     move.l    orgsource,a0
  835.     move.l    orgdest,a1
  836.     bra.w    argsoptionscheck
  837. aoc_done:
  838.     movem.l    (sp)+,d0-d7/a2-a6
  839.     move.l    orgsource,a0
  840.     move.l    orgdest,a1
  841.     rts
  842.  
  843. ; a0 - source
  844. ; a1 - cmp text
  845.  
  846. aoc_wildcard:
  847.     movem.l    d0-d1,-(sp)
  848.     move.b    (a1)+,d0
  849. aocw_loop:
  850.     move.b    (a0)+,d1
  851.     beq.s    aocw_error
  852.     cmp.b    d0,d1
  853.     bne.s    aocw_loop    
  854.     movem.l    (sp)+,d0-d1
  855.     suba.l    #1,a0
  856.     suba.l    #1,a1
  857.     rts
  858. aocw_error:
  859.     movem.l    (sp)+,d0-d1
  860.     rts
  861.  
  862. getadresses:
  863.     lea    adresses,a1
  864.     clr.l    (a1)
  865.     clr.l    4(a1)
  866.     clr.l    8(a1)
  867.     clr.l    12(a1)
  868. ga_loop:
  869.     move.b    (a0)+,d0
  870.     beq.s    nomore
  871.     cmp.b    #'}',d0
  872.     beq.s    nomore
  873.     cmp.b    #'"',d0
  874.     bne.s    ga_loop
  875.     move.l    a0,(a1)+
  876. ga_loop2:
  877.     move.b    (a0)+,d0
  878.     beq.s    nomore
  879.     cmp.b    #'"',d0
  880.     bne.s    ga_loop2
  881.     move.b    #0,-1(a0)
  882.     bra.s    ga_loop
  883. nomore:
  884.     rts
  885.  
  886. argfilereqmulti:
  887. ;------------------------
  888.     move.l    a1,-(sp)
  889.     bsr.b    getadresses
  890.     move.l    adresses+8,a0
  891.     cmp.l    #0,a0
  892.     beq.s    afrm_nodeffile
  893.     lea    filebuffer,a1
  894.     bsr.w    move
  895. afrm_nodeffile:
  896.     move.l    adresses+12,a0
  897.     cmp.l    #0,a0
  898.     beq.s    afrm_nopattern
  899.     lea    pattern,a1
  900.     bsr.w    move
  901. afrm_nopattern:
  902.     move.l    adresses+4,a0
  903.     cmp.l    #0,a0
  904.     beq.s    afrm_nodir
  905.     lea    directory,a1
  906.     bsr.w    move
  907. afrm_nodir:
  908.     lea    filebuffer,a0
  909.     move.l    adresses,a1
  910.     bsr.w    multirequest
  911.     tst.l    d0
  912.     beq.w    quit
  913.     bmi.w    noreqerr
  914.     move.l    (sp)+,a1
  915.     bsr.w    argmovenq
  916.     rts
  917. ;------------------------
  918.  
  919. argfilereqwbmulti:
  920. ;------------------------
  921.     bsr.w    arggetfromwbmulti
  922.     tst.l    d0
  923.     beq.b    arg_end
  924. ;------------------------
  925.     bsr.b    argfilereqmulti
  926. ;------------------------
  927.     rts
  928.  
  929. argfilereq:
  930. ;------------------------
  931.     move.l    a1,-(sp)
  932.     bsr.w    getadresses
  933.     move.l    adresses+8,a0
  934.     cmp.l    #0,a0
  935.     beq.s    afr_nodeffile
  936.     lea    filebuffer,a1
  937.     bsr.w    move
  938. afr_nodeffile:
  939.     move.l    adresses+12,a0
  940.     cmp.l    #0,a0
  941.     beq.s    afr_nopattern
  942.     lea    pattern,a1
  943.     bsr.w    move
  944. afr_nopattern:
  945.     move.l    adresses+4,a0
  946.     cmp.l    #0,a0
  947.     beq.s    afr_nodir
  948.     lea    directory,a1
  949.     bsr.w    move
  950. afr_nodir:
  951.     lea    filebuffer,a0
  952.     move.l    adresses,a1
  953.     bsr.w    request
  954.     tst.l    d0
  955.     beq.w    quit
  956.     bmi.w    noreqerr
  957.     move.l    (sp)+,a1
  958.     bsr.w    argmovenq
  959.     rts
  960. ;------------------------
  961. arg_end:
  962.     rts
  963.  
  964. arggetstring:
  965. ;------------------------
  966.     move.l    a1,-(sp)
  967.     bsr.w    getadresses
  968.     lea    stringbuffer,a1
  969.     move.l    adresses+4,a0
  970.     cmp.l    #0,a0
  971.     beq.s    nodefanswer
  972.     bsr.w    move
  973. nodefanswer:
  974.     lea    stringbuffer,a0
  975.     move.l    adresses,a1
  976.     bsr.w    getstring
  977.     tst.l    d0
  978.     beq.w    quit
  979.     bmi.w    noreqerr
  980.     move.l    (sp)+,a1
  981.     lea    stringbuffer,a0
  982.     bsr.w    argmovenq
  983. ;------------------------
  984.     rts
  985.  
  986. arggetoption:
  987. ;------------------------
  988.     move.l    a1,-(sp)
  989.     bsr.w    getadresses
  990.     move.l    adresses,a1
  991.     move.l    adresses+4,a2
  992.     bsr.w    requester
  993.     tst.l    d0
  994.     bmi.w    noreqerr
  995.     move.l    adresses+8,a0
  996.     lea    gadstable,a1
  997.     moveq.l    #1,d2
  998. count_loop:
  999.     move.b    (a2)+,d1
  1000.     beq.s    count_end
  1001.     cmp.b    #'|',d1
  1002.     bne.s    count_loop
  1003.     addq    #1,d2
  1004.     bra.s    count_loop
  1005. count_end:
  1006.     move.l    a0,(a1)+
  1007. ago_loop:
  1008.     move.b    (a0)+,d1
  1009.     beq.s    ago_eog
  1010.     cmp.b    #'|',d1
  1011.     bne.s    ago_loop
  1012.     move.b    #0,-1(a0)
  1013.     move.l    a0,(a1)+
  1014.     bra.s    ago_loop
  1015. ago_eog:
  1016.     tst.w    d0
  1017.     bne.s    nolastgad
  1018.     move.w    d2,d0
  1019. nolastgad:
  1020.     sub.w    #1,d0
  1021.     lea    gadstable,a1
  1022.     asl.w    #2,d0
  1023.     move.l    (a1,d0.w),a0
  1024.     cmp.l    #0,a0
  1025.     beq.w    quit
  1026.     move.l    (sp)+,a1
  1027.     bsr.w    argmovenq
  1028. ;------------------------
  1029.     rts
  1030.  
  1031. argfilereqwb:
  1032.     bsr.b    arggetfromwb
  1033.     tst.l    d0
  1034.     beq.w    arg_end
  1035. ;------------------------
  1036.     bsr.w    argfilereq
  1037. ;------------------------
  1038.     rts
  1039.  
  1040. arggetstringwb:
  1041.     bsr.b    arggetfromwb
  1042.     tst.l    d0
  1043.     beq.w    arg_end
  1044. ;------------------------
  1045.     bsr.w    arggetstring
  1046. ;------------------------
  1047.     rts
  1048.  
  1049. arggetfromwbmulti
  1050.     bsr.b    arggetfromwb
  1051.     tst.l    d0
  1052.     bne.s    agfwbm_nowbarg
  1053.     move.b    #' ',(a1)+
  1054. agfwm_loop:
  1055.     bsr.b    arggetfromwb
  1056.     move.b    #' ',(a1)+
  1057.     tst.l    d0
  1058.     beq.s    agfwm_loop
  1059.     suba.l    #1,a1
  1060.     clr.l    d0
  1061.     rts
  1062. agfwbm_nowbarg:
  1063.     moveq    #-1,d0
  1064.     rts
  1065.  
  1066. arggetfromwb:
  1067. ;------------------------
  1068.     sub.l    #1,wbnumargs
  1069.     move.l    wbnumargs,d0
  1070.     tst.l    d0
  1071.     bmi.s    nowbarg
  1072.     movem.l    a0-a2,-(sp)
  1073.     move.l    wbargadress,a2
  1074.     move.l    (a2),a0
  1075.     move.l    4(a2),a1
  1076.     lea    filebuffer,a2
  1077.     bsr.b    joindirandfile
  1078.     movem.l    (sp)+,a0-a2
  1079.     lea    filebuffer,a0
  1080.     add.l    #8,wbargadress
  1081.     bsr.w    argmove
  1082.     moveq    #0,d0
  1083.     rts
  1084. nowbarg:
  1085.     moveq    #-1,d0
  1086.     rts
  1087. ;------------------------
  1088.     rts
  1089.  
  1090. noreqerr:
  1091.     lea    noreq,a0
  1092.     bsr.w    error
  1093.     bra.w    quit
  1094.  
  1095. ; a0 - directory lock
  1096. ; a1 - file
  1097. ; a2 - buffer
  1098.  
  1099. joindirandfile:
  1100.     move.l    a0,d1
  1101.     move.l    a1,d3
  1102.     move.l    a2,d2
  1103.     lea    directories,a1
  1104.     lea    diradresses,a2
  1105.     bsr.w    fileinfo
  1106.     move.l    a1,(a2)+
  1107.     move.l    name,a0
  1108.     bsr.w    move
  1109. jdaf_loop:
  1110.     movem.l    d0/a0-a1/a6,-(sp)
  1111.     move.l    dosbase,a6
  1112.     jsr    -210(a6)
  1113.     move.l    d0,d1
  1114.     movem.l    (sp)+,d0/a0-a1/a6
  1115.     tst.l    d1
  1116.     beq.s    noparent
  1117.     bsr.w    fileinfo
  1118.     move.l    a1,(a2)+
  1119.  
  1120.     move.l    name,a0
  1121.     bsr.w    move
  1122.     bra.s    jdaf_loop
  1123. noparent:
  1124.     move.l    -(a2),a0
  1125.     move.l    d2,a1
  1126.     bsr.w    move
  1127.     move.b    #':',-1(a1)
  1128. jdirsloop:
  1129.     move.l    -(a2),a0
  1130.     cmp.l    #0,a0
  1131.     beq.s    jdirsend
  1132.     bsr.w    move
  1133.     move.b    #'/',-1(a1)
  1134.     bra.s    jdirsloop
  1135. jdirsend:
  1136.     move.l    d3,a0
  1137.     bsr.w    move
  1138.     rts
  1139.  
  1140. wbnumargs:
  1141.     dc.l    0
  1142. wbargadress:
  1143.     dc.l    0
  1144.  
  1145. argsadresses:
  1146.     dc.l    argfilereq
  1147.     dc.l    arggetstring
  1148.     dc.l    arggetoption
  1149.     dc.l    arggetfromwb
  1150.     dc.l    argfilereqwb
  1151.     dc.l    arggetstringwb
  1152.     dc.l    argfilereqmulti
  1153.     dc.l    arggetfromwbmulti
  1154.     dc.l    argfilereqwbmulti
  1155.     dc.l    0
  1156.  
  1157. argsoptions:
  1158.     dc.b    '{F *}',0
  1159.     dc.b    '{S *}',0
  1160.     dc.b    '{O *}',0
  1161.     dc.b    '{W}',0
  1162.     dc.b    '{FW *}',0
  1163.     dc.b    '{SW *}',0
  1164.     dc.b    '{FM *}',0
  1165.     dc.b    '{WM}',0
  1166.     dc.b    '{FWM *}',0
  1167.  
  1168.     even
  1169.  
  1170. cacheoff:
  1171.     cmp.b    #37,sysver
  1172.     blt.s    cache_end
  1173.  
  1174.     moveq    #0,d0            ;Get old cache state
  1175.     moveq    #0,d1            ;
  1176.     move.l    4,a6
  1177.     jsr    -648(a6)        ; CacheControl
  1178.     move.l    d0,oldcache
  1179.  
  1180.     move.l    d0,d1            ;Clear only SET bits to avoid masking
  1181.     moveq    #0,d0            ;d1 with -1
  1182.     move.l    4,a6
  1183.     jsr    -648(a6)
  1184.  
  1185.     rts
  1186.  
  1187. cacheon:
  1188.     cmp.b    #37,sysver
  1189.     blt.s    cache_end
  1190.  
  1191.     move.l    oldcache,d1
  1192.     moveq    #-1,d0
  1193.     move.l    4,a6
  1194.     jsr    -648(a6)
  1195.  
  1196. cache_end:
  1197.     rts
  1198.  
  1199. assign:
  1200.     lea    assignargs,a1
  1201.     bsr.w    move
  1202.  
  1203.     move.l    #assigncmd,d1
  1204.     move.l    #0,d2
  1205.     move.l    #0,d3
  1206.     move.l    dosbase,a6
  1207.     jsr    -222(a6)
  1208.  
  1209.     rts
  1210.  
  1211. cd:
  1212.     lea    cddir,a1
  1213.     bsr.w    move
  1214.     move.l    #cddir,d1
  1215.     moveq.l    #-2,d2
  1216.     move.l    dosbase,a6
  1217.  
  1218.     jsr    -84(a6)
  1219.     tst.l    d0
  1220.     beq.s    cdend
  1221.     move.l    d0,currentdir
  1222.     move.l    d0,d1
  1223.     move.l    dosbase,a6
  1224.     jsr    -126(a6)
  1225. cdend:    rts
  1226.  
  1227. param:
  1228.     tst.b    prgtype
  1229.     bne.s    par_end
  1230.     move.l    prgadr,a1
  1231. loop:    move.b    (a1)+,d0
  1232.     bne.s    loop
  1233.     move.b    #' ',-1(a1)
  1234.     move.l    a1,paramsadr
  1235.     bsr.w    moveparams
  1236. par_end:
  1237.     rts
  1238.  
  1239. paramsadr:
  1240.     dc.l    enter
  1241.  
  1242. execute:
  1243.     move.l    #executename,prgadr
  1244.     rts
  1245. lseg:
  1246.     move.b    #1,prgtype
  1247.     rts
  1248. abs:
  1249.     move.b    #2,prgtype
  1250.     rts
  1251. setexec:
  1252.     move.b    #3,prgtype
  1253.     rts
  1254.  
  1255. nop:    rts
  1256.  
  1257. doff:
  1258.     move.b    #1,resflag
  1259.     move.w    #%000000110100000,$dff096
  1260.     move.w    #0,$dff100
  1261.     move.w    #0,$dff102
  1262.     move.w    #0,$dff104
  1263.     move.w    #0,$dff106
  1264.     move.w    #0,$dff108
  1265.     move.w    #0,$dff10a
  1266.     move.w    #0,$dff1fc
  1267.     rts
  1268.  
  1269. setpal:
  1270.     move.w    #32,$dff1dc
  1271.     move.b    #1,resflag
  1272.     rts
  1273. setntsc:
  1274.     move.w    #0,$dff1dc
  1275.     move.b    #1,resflag
  1276.     rts
  1277.  
  1278. resc:    move.b    #1,resflag
  1279.     rts
  1280.  
  1281. noresc:
  1282.     move.b    #0,resflag
  1283.     rts
  1284.  
  1285. output:
  1286.     move.b    #1,outputflag
  1287.     rts
  1288. inpout:
  1289.     clr.b    outputflag
  1290.     rts
  1291.  
  1292.  
  1293. ; a0 - filename
  1294.  
  1295. ; d0 - size
  1296.  
  1297. fsize:
  1298.     movem.l    d0-d7/a0-a6,-(sp)
  1299.  
  1300.     move.l    a0,d1
  1301.     moveq    #-2,d2
  1302.     move.l    dosbase,a6
  1303.     jsr    -84(a6)
  1304.     tst.l    d0
  1305.     beq.s    lerr
  1306.     move.l    d0,d1
  1307.  
  1308.     move.l    d1,-(sp)
  1309.     bsr.b    fileinfo
  1310.     move.l    (sp)+,d1
  1311.  
  1312.     move.l    dosbase,a6
  1313.     jsr    -90(a6)
  1314.  
  1315. loadend:
  1316.     movem.l    (sp)+,d0-d7/a0-a6
  1317.     move.l    filesize,d0
  1318.     rts
  1319.  
  1320. ; d1 - lock
  1321.  
  1322. fileinfo:
  1323.     movem.l    d0-d2/a0-a6,-(sp)
  1324.     move.l    #fileinfoblk,d2
  1325.     addq.l    #3,d2
  1326.     and.l    #$fffffffc,d2
  1327.     move.l    d2,fileinfoadr
  1328.     move.l    fileinfoadr,d2
  1329.     move.l    dosbase,a6
  1330.     jsr    -102(a6)
  1331.     move.l    fileinfoadr,a0
  1332.     move.l    124(a0),filesize
  1333.     move.l    116(a0),protection
  1334.     move.l    a0,name
  1335.     add.l    #8,name
  1336.     movem.l    (sp)+,d0-d2/a0-a6
  1337.     rts
  1338.  
  1339. name:
  1340.     dc.l    0
  1341.  
  1342. lerr:
  1343.     move.l    #0,filesize
  1344.     move.l    #0,protection
  1345.     move.l    #0,name
  1346.     movem.l    (sp)+,d0-d7/a0-a6
  1347.     moveq    #0,d0
  1348.     rts
  1349.  
  1350. protection:
  1351.     dc.l    0
  1352.  
  1353. ioff:
  1354.     move.b    #1,interruptsflag
  1355.     rts
  1356. moff:
  1357.     move.b    #1,multitaskingflag
  1358.     rts
  1359.  
  1360. w_close:
  1361.     move.l    intbase,a6
  1362.     jsr    -78(a6)
  1363.     rts
  1364.  
  1365. lv:
  1366.     move.b    #1,resflag
  1367.     move.l    gfxbase,a6
  1368.     move.l    34(a6),view
  1369.     suba.l    a1,a1
  1370.     jsr    -222(a6)
  1371.     rts
  1372.  
  1373. ; a0 - error text
  1374.  
  1375. error:
  1376.     move.l    a0,a1
  1377. e_sfg:    tst.b    (a1)+
  1378.     bne.s    e_sfg
  1379.     move.l    a1,a2
  1380.     moveq    #1,d1
  1381. e_loop:
  1382.     move.b    (a2)+,d0
  1383.     beq.s    e_end
  1384.     cmp.b    #'|',d0
  1385.     bne.s    e_loop
  1386.     move.l    a2,a3
  1387.     addq    #1,d1
  1388.     bra.s    e_loop
  1389. ; a0 - error text
  1390. ; a1 - gadgets
  1391. ; a2 - end of text
  1392. ; a3 - second gadget
  1393. ; d1 - number of gadgets
  1394. e_end:
  1395.     cmp.b    #1,d1            ; only information ?
  1396.     bne.s    noclierror
  1397.     tst.l    wbmsg            ; from cli ?
  1398.     bne.s    noclierror
  1399.     movem.l    a0/a1/d1,-(sp)
  1400.     move.l    dosbase,a6
  1401.     jsr    -60(a6)            ; output
  1402.     movem.l    (sp)+,a0/a1/d1
  1403.     tst.l    d0
  1404.     beq.s    noclierror        ; no output window !
  1405.     move.b    #10,-1(a1)
  1406.     move.l    d0,d1
  1407.     move.l    a0,d2
  1408.     move.l    a1,d3
  1409.     sub.l    a0,d3
  1410.     move.l    dosbase,a6
  1411.     jsr    -48(a6)            ; write
  1412.     rts
  1413. noclierror:
  1414.     movem.l    a1-a3,-(sp)
  1415.     move.l    a1,a2
  1416.     move.l    a0,a1
  1417.     bsr.w    requester
  1418.     movem.l    (sp)+,a1-a3
  1419.     tst.l    d0
  1420.     bmi.s    noreqlib
  1421.     rts
  1422.  
  1423. ;    -no req.library !-
  1424.  
  1425. noreqlib:
  1426.     cmp.b    #3,d1
  1427.     bge.w    toomanygads
  1428.  
  1429.     move.b    #0,-(a3)
  1430.  
  1431.     lea    alertbuf,a3
  1432.     move.l    #20,d3
  1433.  
  1434. nextline:
  1435.     move.b    #0,(a3)+
  1436.     moveq    #0,d0
  1437.  
  1438.     move.l    a0,-(sp)
  1439. e_eofl:    addq    #1,d0
  1440.     move.b    (a0)+,d2
  1441.     beq.s    e_eof
  1442.     cmp.b    #10,d2
  1443.     bne.s    e_eofl
  1444. e_eof:    move.l    (sp)+,a0
  1445.  
  1446.     moveq    #80,d2
  1447.     sub.w    d0,d2
  1448.     add.w    #1,d2
  1449.     asl.w    #2,d2
  1450.     move.b    d2,(a3)+
  1451.     move.b    d3,(a3)+
  1452. emm_loop:
  1453.     move.b    (a0)+,d2
  1454.     cmp.b    #10,d2
  1455.     bne.s    e_nenter
  1456.     add.l    #10,d3
  1457.     move.b    #0,(a3)+
  1458.     move.b    #1,(a3)+
  1459.     bra.s    nextline
  1460. e_nenter:
  1461.     move.b    d2,(a3)+
  1462.     tst.b    d2
  1463.     bne.s    emm_loop
  1464.  
  1465.     add.l    #20,d3
  1466.  
  1467.     cmp.b    #2,d1
  1468.     bne.s    e_displayalert
  1469.  
  1470.     move.b    #1,(a3)+
  1471.     move.b    #0,(a3)+
  1472.     move.l    a2,d0
  1473.     sub.l    a1,d0
  1474.     add.l    #26,d0
  1475.     moveq    #80,d2
  1476.     sub.w    d0,d2
  1477.     asl.w    #2,d2
  1478.     move.b    d2,(a3)+
  1479.     move.b    d3,(a3)+
  1480.  
  1481.     move.l    a1,-(sp)
  1482.     move.l    a3,a1
  1483.     lea    lmbtext,a0
  1484.     bsr.w    argmovenq
  1485.     move.l    (sp)+,a0
  1486.     bsr.w    argmovenq
  1487.     move.w    #14,d0
  1488. e_sloop:
  1489.     move.b    #' ',(a1)+
  1490.     dbf    d0,e_sloop
  1491.     move.l    a0,-(sp)
  1492.     lea    rmbtext,a0
  1493.     bsr.w    argmovenq
  1494.     move.l    (sp)+,a0
  1495.     bsr.w    move
  1496.     move.b    #0,(a1)+
  1497.  
  1498.     add.l    #20,d3
  1499.  
  1500. e_displayalert:
  1501.     move.l    intbase,a6
  1502.     lea    alertbuf,a0
  1503.     move.l    d3,d1
  1504.     jsr    -90(a6)
  1505.     rts
  1506.  
  1507. toomanygads:
  1508.     moveq    #-1,d0
  1509.     rts
  1510.  
  1511. exec    =    4
  1512. oldoplib        =-408
  1513. closelib        =-414
  1514.  
  1515. openreq
  1516.     tst.l    reqbase
  1517.     bne.s    noopenreq
  1518.     movem.l    d0/d1/a0/a1/a6,-(sp)
  1519.     move.l    exec,a6
  1520.     lea    reqname,a1
  1521.     jsr    oldoplib(a6)
  1522.     move.l    d0,reqbase
  1523.     movem.l    (sp)+,d0/d1/a0/a1/a6
  1524. noopenreq:
  1525.     rts
  1526. closereq:
  1527.     tst.l    reqbase
  1528.     beq.s    noclose
  1529.     move.l    exec,a6
  1530.     move.l    reqbase,a1
  1531.     jsr    closelib(a6)
  1532. noclose:
  1533.     rts
  1534.  
  1535. ; *** wyswietlenie requestera ***
  1536. ; a1 - tekst w requesterze
  1537. ; a2 - gadzety
  1538.  
  1539. ; d0 - numer wcisnietego gadzetu
  1540.  
  1541. requester:
  1542.     bsr.b    openreq
  1543.     tst.l    reqbase
  1544.     beq.w    rtend
  1545.     move.l    a1,-(sp)
  1546.     move.l    reqbase(pc),a6
  1547.     moveq.l    #0,d0
  1548.     lea    zero,a0
  1549.     jsr    -30(a6)
  1550.     move.l    d0,reqfile
  1551.     move.l    (sp)+,a1
  1552.  
  1553.     move.l    reqbase(pc),a6
  1554.     move.l    reqfile(pc),a3
  1555.     lea    reqtaglist(pc),a0
  1556.     jsr    -66(a6)
  1557.  
  1558.     move.l    d0,-(sp)
  1559.     bsr.w    freereq
  1560.     move.l    (sp)+,d0
  1561.  
  1562.     rts    
  1563.  
  1564.  
  1565. ;==========================================================================;
  1566. ; in:
  1567. ; a0 - buffer
  1568. ; a1 - window name
  1569.  
  1570. ; out:
  1571. ; d0 - 0=cancel
  1572.  
  1573. getstring:
  1574.     bsr.w    openreq
  1575.     tst.l    reqbase
  1576.     beq.w    rtend
  1577.     move.l    a0,chars
  1578.     move.l    a1,tytul
  1579.  
  1580.     move.l    reqbase,a6    ;!!! a6 !!! nie uzywac
  1581.     move.l    #250,d0
  1582.     move.l    chars,a1
  1583.     move.l    tytul,a2
  1584.     move.l    #0,a3
  1585.     move.l    #gstaglist,a0
  1586.     jsr    _LVOrtGetStringA(a6)
  1587.     rts
  1588.  
  1589. ; in:
  1590. ; a0 - filename buffer
  1591. ; a1 - window name
  1592.  
  1593. ; out:
  1594. ; a0 - filenames
  1595.  
  1596. multirequest:
  1597.     bsr.w    openreq
  1598.     tst.l    reqbase
  1599.     beq.w    rtend
  1600.     move.l    a0,nazwa
  1601.     move.l    a1,tytul
  1602.  
  1603.     move.l    reqbase,a6    ;!!! a6 !!! nie uzywac
  1604.                     ;przydzielenie structury
  1605.     move.l    #RT_FILEREQ,d0
  1606.     move.l    #zero,a0
  1607.     jsr    _LVOrtAllocRequestA(a6)
  1608.     tst.l    d0
  1609.     bne.b    r.nerr
  1610.     bra.w    rtend
  1611. r.nerr    move.l    d0,reqfile
  1612.     
  1613. ;--------------------------------------------------------------;
  1614.     move.l    reqfile,a1
  1615.     lea    addtag,a0
  1616.     move.l    reqbase,a6
  1617.     jsr    _LVOrtChangeReqAttrA(a6)
  1618.                     ;wywo£anie requestera
  1619.     move.l    reqfile,a1
  1620.     move.l    nazwa,a2
  1621.     move.l    tytul,a3
  1622.     move.l    #taglistmulti,a0
  1623.     move.l    reqbase,a6
  1624.     jsr    _LVOrtFileRequestA(a6)
  1625.         ;tutaj powinna znajdowac sie nasza procedura ktora
  1626.         ;operuje na wybranym zbiorze
  1627.     movem.l    d0,-(sp)
  1628.  
  1629. ;--------------------------------------------------------------;
  1630.     move.l    reqfile,a0
  1631.     move.l    rtfi_Dir(a0),a0        ;teraz w a0 znajduje sie adres
  1632.                     ;nazwy katalogu...
  1633.     move.l    d0,filelist
  1634.     move.l    d0,a4
  1635.  
  1636.     lea    string,a1
  1637. multiloop:
  1638.     move.b    #' ',-1(a1)
  1639.     lea    directory,a3
  1640.     move.l    rtfl_Name(a4),a2
  1641.     move.l    a0,-(sp)
  1642.     bsr.b    joinreqnames
  1643.     move.l    (sp)+,a0
  1644.     move.l    rtfl_Next(a4),a4
  1645.     cmp.l    #0,a4
  1646.     bne.s    multiloop
  1647.  
  1648.     move.l    filelist,a0
  1649.     move.l    reqbase,a6
  1650.     jsr    _LVOrtFreeFileList(a6)
  1651.  
  1652.     bsr.w    freereq
  1653.     lea    string,a0
  1654.     movem.l    (sp)+,d0
  1655.     rts
  1656.  
  1657. filelist:
  1658.     dc.l    0
  1659.  
  1660. ; a0 - directory
  1661. ; a1 - dest. buffer
  1662. ; a2 - file
  1663. ; a3 - directory buffer
  1664.  
  1665. ; changed: a0,a1,a2,a3,d0
  1666.  
  1667. joinreqnames:
  1668.     tst.b    quoteflag
  1669.     beq.s    jrn_noq
  1670.     move.b    #'"',(a1)+
  1671. jrn_noq:
  1672.     move.b    (a0)+,d0
  1673.     move.b    d0,(a3)+
  1674.     tst.b    d0
  1675.     beq.s    req_nx
  1676.     move.b    d0,(a1)+
  1677. req_lop:
  1678.     move.b    (a0)+,d0
  1679.     move.b    d0,(a1)+
  1680.     move.b    d0,(a3)+
  1681.     tst.b    d0
  1682.     bne.s    req_lop
  1683.     subq    #1,a1
  1684.     cmp.b    #':',-1(a1)
  1685.     beq.s    req_nx
  1686.     move.b    #'/',(a1)+
  1687. req_nx:    move.b    (a2)+,d0
  1688.     move.b    d0,(a1)+
  1689.     tst.b    d0
  1690.     bne.s    req_nx
  1691.     tst.b    quoteflag
  1692.     beq.s    jrn_noq2
  1693.     move.b    #'"',-1(a1)
  1694.     move.b    #0,(a1)+
  1695. jrn_noq2:
  1696.     rts
  1697.  
  1698. ; in:
  1699. ; a0 - filename buffer
  1700. ; a1 - window name
  1701.  
  1702. ; out:
  1703. ; a0 - filename
  1704.  
  1705. request:
  1706.     bsr.w    openreq
  1707.     tst.l    reqbase
  1708.     beq.w    rtend
  1709.     move.l    a0,nazwa
  1710.     move.l    a1,tytul
  1711.  
  1712.     move.l    reqbase,a6    ;!!! a6 !!! nie uzywac
  1713.                     ;przydzielenie structury
  1714.     move.l    #RT_FILEREQ,d0
  1715.     move.l    #zero,a0
  1716.     jsr    _LVOrtAllocRequestA(a6)
  1717.     tst.l    d0
  1718.     bne.b    mr.nerr
  1719.     bra.b    rtend
  1720. mr.nerr    move.l    d0,reqfile
  1721.     
  1722. ;--------------------------------------------------------------;
  1723.                     ;wywo£anie requestera
  1724.     move.l    reqfile,a1
  1725.     lea    addtag,a0
  1726.     move.l    reqbase,a6
  1727.     jsr    _LVOrtChangeReqAttrA(a6)
  1728.     move.l    reqfile,a1
  1729.     move.l    nazwa,a2
  1730.     move.l    tytul,a3
  1731.     move.l    #taglist,a0
  1732.     jsr    _LVOrtFileRequestA(a6)
  1733.         ;tutaj powinna znajdowac sie nasza procedura ktora
  1734.         ;operuje na wybranym zbiorze
  1735.     move.l    d0,-(sp)
  1736.  
  1737. ;--------------------------------------------------------------;
  1738.     move.l    reqfile,a0
  1739.     move.l    rtfi_Dir(a0),a0        ;teraz w a0 znajduje sie adres
  1740.                     ;nazwy katalogu...
  1741.     lea    string,a1
  1742.     lea    directory,a3
  1743.     bsr.w    joinreqnames
  1744.     bsr.b    freereq
  1745.     lea    string,a0
  1746.     move.l    (sp)+,d0
  1747.     rts
  1748.  
  1749. freereq:
  1750.     move.l    reqfile,a1
  1751.     move.l    reqbase,a6
  1752.     jsr    _LVOrtFreeRequest(a6)
  1753.     rts
  1754.  
  1755. rtend:    moveq    #-1,d0
  1756.     rts
  1757. ;==========================================================================;
  1758. eror    dc.l    0    
  1759. zero    dc.l    0
  1760.  
  1761. reqbase    dc.l    0
  1762. req    dc.l    0
  1763. reqfile    dc.l    0
  1764. reqfont    dc.l    0
  1765. reqname    dc.b    'reqtools.library',0
  1766.     even
  1767.  
  1768. reqtaglist:
  1769.     dc.l    RT_ReqPos,REQPOS_POINTER
  1770.     dc.l    0,0
  1771.  
  1772. taglist:
  1773.     dc.l    RT_ReqPos,REQPOS_POINTER
  1774.     dc.l    RTFI_Flags,FREQF_PATGAD
  1775.     dc.l    RTFI_Height,1000
  1776.     dc.l    RTFI_AllowEmpty,1
  1777.     dc.l    0,0
  1778.  
  1779. gstaglist:
  1780.     dc.l    RT_ReqPos,REQPOS_POINTER
  1781.     dc.l    RTGS_Width,320
  1782.     dc.l    RTGS_CenterText,1
  1783.     dc.l    RTGS_AllowEmpty,1
  1784.     dc.l    0,0
  1785.  
  1786. taglistmulti:
  1787.     dc.l    RT_ReqPos,REQPOS_POINTER
  1788.     dc.l    RTFI_Flags,FREQF_PATGAD+FREQF_MULTISELECT+FREQF_SELECTDIRS
  1789.     dc.l    RTFI_Height,1000
  1790.     dc.l    RTFI_AllowEmpty,1
  1791.     dc.l    0,0
  1792.  
  1793. addtag:
  1794.     dc.l    RTFI_MatchPat,pattern
  1795.     dc.l    RTFI_Dir,directory
  1796.     dc.l    0,0
  1797.  
  1798. tytul:    dc.l    reqname
  1799.  
  1800. interruptsflag:
  1801.     dc.b    0
  1802. multitaskingflag:
  1803.     dc.b    0
  1804.  
  1805.     even
  1806.  
  1807. quoteoff:
  1808.     clr.b    quoteflag
  1809.     rts
  1810. setclose:
  1811.     add.l    #512,w_idcmp
  1812.     add.l    #8,w_flags
  1813.     move.b    #1,scrcloseflag
  1814.     rts
  1815.  
  1816. allocate:
  1817.     cmp.l    #0,allocadr
  1818.     beq.s    noalloc
  1819.  
  1820.     move.l    allocadr,a1
  1821.     move.l    alloclen,d0
  1822.     move.l    4,a6
  1823.     jsr    -204(a6)
  1824.     move.l    d0,allocdone
  1825.     tst.l    d0
  1826.     bne.s    noalloc
  1827.  
  1828.     lea    nomem(pc),a0
  1829.     bsr.w    error
  1830.     tst.l    d0
  1831.     bne.w    returnhere
  1832. noalloc:
  1833.     rts
  1834.  
  1835. quoteflag:
  1836.     dc.b    1
  1837. scrcloseflag:
  1838.     dc.b    0
  1839.     even
  1840.  
  1841. tooltypestable:
  1842.     dc.l    toolcd,cd,0,0
  1843.     dc.l    quotes,quoteoff,off,0
  1844.     dc.l    tool,moveprogram,0,0
  1845.     dc.l    win,movename,0,0
  1846.     dc.l    assign0,assign,0,0
  1847.     dc.l    assign1,assign,0,0
  1848.     dc.l    assign2,assign,0,0
  1849.     dc.l    assign3,assign,0,0
  1850.     dc.l    assign4,assign,0,0
  1851.     dc.l    assign5,assign,0,0
  1852.     dc.l    assign6,assign,0,0
  1853.     dc.l    assign7,assign,0,0
  1854.     dc.l    assign8,assign,0,0
  1855.     dc.l    assign9,assign,0,0
  1856.     dc.l    toolparams,param,0,0
  1857.     dc.l    type,setexec,executable,execute,script,lseg,loadsegment,abs,absolute,0
  1858.     dc.l    load,loadadr,'l',0
  1859.     dc.l    jump,jumpadr,'l',0
  1860.     dc.l    alloc,allocadr,'l',alloclen,'l',allocate,0,0
  1861.     dc.l    killaga,doff,hardware,lv,loadview,0
  1862.     dc.l    system,setpal,pal,setntsc,ntsc,0
  1863.     dc.l    wintype,output,onlyoutput,inpout,inputoutput,0
  1864.     dc.l    rescue,resc,on,noresc,off,0
  1865.     dc.l    inter,ioff,off,0
  1866.     dc.l    multi,moff,off,0
  1867.     dc.l    screenclose,setclose,on,0
  1868.     dc.l    screentxt,s_sx,'w',s_sy,'w',s_viewmodes,'w',screenflag,'b',0
  1869.     dc.l    workbench,w_close,close,0
  1870.     dc.l    cache,cacheoff,off,0
  1871.     dc.l    0
  1872.  
  1873. screenflag:
  1874.     dc.b    0
  1875.  
  1876.     even
  1877.  
  1878. newscreen:
  1879.     dc.w    0,0
  1880. s_sx:    dc.w    0
  1881. s_sy:    dc.w    0
  1882.     dc.w    1
  1883.     dc.b    0,1
  1884. s_viewmodes:
  1885.     dc.w    0
  1886.     dc.w    $f
  1887.     dc.l    0
  1888.     dc.l    sname
  1889.     dc.l    0
  1890.     dc.l    0
  1891. sname:
  1892.     dc.b    'IconPP screen',0
  1893. screen:
  1894.     dc.l    0
  1895. newwindow:
  1896.     dc.w    0,0
  1897. w_sx:    dc.w    0
  1898. w_sy:    dc.w    12
  1899.     dc.b    0,0
  1900. w_idcmp:
  1901.     dc.l    0
  1902. w_flags:
  1903.     dc.l    $800
  1904.     dc.l    0
  1905.     dc.l    0
  1906.     dc.l    sname
  1907. w_screen:
  1908.     dc.l    0
  1909.     dc.l    0
  1910.     dc.w    0,0,10000,10000
  1911.     dc.w    $f
  1912. windowp:
  1913.     dc.l    0
  1914. tool:
  1915.     dc.b    'TOOL',0
  1916. quotes:
  1917.     dc.b    'QUOTES',0
  1918. executable:
  1919.     dc.b    'EXECUTABLE',0
  1920. system:
  1921.     dc.b    'SYSTEM',0
  1922. hardware:
  1923.     dc.b    'HARDWARE',0
  1924. loadview:
  1925.     dc.b    'LOADVIEW',0
  1926. workbench:
  1927.     dc.b    'WORKBENCH',0
  1928. close:
  1929.     dc.b    'CLOSE',0
  1930. screentxt:
  1931.     dc.b    'SCREEN',0
  1932. screenclose:
  1933.     dc.b    'SCRCLOSE',0
  1934. inter:
  1935.     dc.b    'INTERRUPTS',0
  1936. multi:
  1937.     dc.b    'MULTITASKING',0
  1938. load:
  1939.     dc.b    'LOAD',0
  1940. jump:
  1941.     dc.b    'JUMP',0
  1942. alloc:
  1943.     dc.b    'ALLOCATE',0
  1944. loadsegment:
  1945.     dc.b    'LOADSEGMENT',0
  1946. absolute:
  1947.     dc.b    'ABSOLUTE',0
  1948. wintype:
  1949.     dc.b    'WINTYPE',0
  1950. onlyoutput:
  1951.     dc.b    'OUTPUT',0
  1952. inputoutput:
  1953.     dc.b    'NEWCLI',0
  1954. killaga:
  1955.     dc.b    'KILLAGA',0
  1956. on:
  1957.     dc.b    'ON',0
  1958. off:
  1959.     dc.b    'OFF',0
  1960. pal:
  1961.     dc.b    'PAL',0
  1962. ntsc:
  1963.     dc.b    'NTSC',0
  1964. type:
  1965.     dc.b    'TYPE',0
  1966. script:
  1967.     dc.b    'SCRIPT',0
  1968. assign0:
  1969.     dc.b    'ASSIGN',0
  1970. assign1:
  1971.     dc.b    'ASSIGN1',0
  1972. assign2:
  1973.     dc.b    'ASSIGN2',0
  1974. assign3:
  1975.     dc.b    'ASSIGN3',0
  1976. assign4:
  1977.     dc.b    'ASSIGN4',0
  1978. assign5:
  1979.     dc.b    'ASSIGN5',0
  1980. assign6:
  1981.     dc.b    'ASSIGN6',0
  1982. assign7:
  1983.     dc.b    'ASSIGN7',0
  1984. assign8:
  1985.     dc.b    'ASSIGN8',0
  1986. assign9:
  1987.     dc.b    'ASSIGN9',0
  1988. toolcd:
  1989.     dc.b    'CD',0
  1990. toolparams:
  1991.     dc.b    'PARAMS',0
  1992. rescue:
  1993.     dc.b    'RESCUE',0
  1994. win:
  1995.     dc.b    'WINDOW',0
  1996. cache:
  1997.     dc.b    'CACHE',0
  1998.  
  1999.     even
  2000.  
  2001. nomem:
  2002.     dc.b    'No memory at load address !',10
  2003.     dc.b    'The program will destroy something in memory.',0
  2004.     dc.b    'abort loading|load it, anyway !',0
  2005.  
  2006. noscr:
  2007.     dc.b    'Cannot open screen !',0
  2008.     dc.b    'abort loading|ignore',0
  2009.  
  2010. nofile:
  2011.     dc.b    "Cannot find the program or it's icon !",0
  2012.     dc.b    "That's terrible !",0
  2013. noreq:
  2014.     dc.b    'Cannot open reqtools.library !',0,0
  2015.     even
  2016.  
  2017. prgadr:
  2018.     dc.l    prgname
  2019.  
  2020. oldcache:
  2021.     dc.l    0
  2022.  
  2023. sysver:
  2024.     dc.b    0
  2025.  
  2026. resflag:
  2027.     dc.b    0
  2028. outputflag:
  2029.     dc.b    1
  2030. prgtype:
  2031.     dc.b    0
  2032.  
  2033.     even
  2034.  
  2035. diskobject:
  2036.     dc.l    0
  2037. tooltypearray:
  2038.     dc.l    0
  2039.  
  2040. dosname:
  2041.     dc.b    'dos.library',0
  2042. iconname:
  2043.     dc.b    'icon.library',0
  2044. gfxname:
  2045.     dc.b    'graphics.library',0
  2046. intname:
  2047.     dc.b    'intuition.library',0
  2048.  
  2049.     even
  2050.  
  2051. cl:
  2052.     dc.l    $ffdffffe
  2053.     dc.l    $fffffffe
  2054.  
  2055. infoprint:
  2056.     dc.l    info1,info2-info1
  2057.     dc.l    info2,info3-info2
  2058.     dc.l    info3,info4-info3
  2059.     dc.l    info4,info5-info4
  2060.     dc.l    info5,info6-info5
  2061.     dc.l    info6,info7-info6
  2062.     dc.l    0
  2063.  
  2064. info1:
  2065.  dc.b 10
  2066.  dc.b 27,'[2mIconPP v.3.0 by PP/TERMOS/UNION',27,'[0m',10
  2067.  dc.b 10
  2068.  dc.b 'List of tooltypes:',10
  2069.  dc.b '    TOOL=Program name',10
  2070.  dc.b '    TYPE=EXECUTABLE | LOADSEGMENT | SCRIPT | ABSOLUTE',10
  2071.  dc.b '    WINDOW=Window file',10
  2072.  dc.b '    WINTYPE=NEWCLI',10
  2073.  dc.b '    CD=Directory name',10
  2074.  dc.b '    ASSIGN1=Name Directory',10
  2075.  dc.b '    ASSIGN2=Name Directory',10
  2076.  dc.b '    ......................',10
  2077.  dc.b '    ASSIGN9=Name Directory',10
  2078.  dc.b '    PARAMS=Parameters',10
  2079.  dc.b '    QUOTES=OFF',10
  2080.  dc.b 'ENTER to continue...'
  2081. info2:
  2082.  dc.b 155,65
  2083.  dc.b '                    ',155,65,10
  2084.  dc.b '    KILLAGA=HARDWARE | LOADVIEW',10
  2085.  dc.b '    SYSTEM=PAL | NTSC',10
  2086.  dc.b '    WORKBENCH=CLOSE',10
  2087.  dc.b '    SCREEN=X size,Y size,Viewmode',10
  2088.  dc.b '    SCRCLOSE=ON',10
  2089.  dc.b '    RESCUE=OFF',10
  2090.  dc.b '    ALLOCATE=Address,Size',10
  2091.  dc.b '    CACHE=OFF',10
  2092.  dc.b '    MULTITASKING=OFF',10
  2093.  dc.b '    INTERRUPTS=OFF',10
  2094.  dc.b '    LOAD=Load address',10
  2095.  dc.b '    JUMP=Jump address',10
  2096.  dc.b 10
  2097.  dc.b 'ENTER to continue...'
  2098. info3:
  2099.  dc.b 155,65
  2100.  dc.b '                    ',155,65,10
  2101.  dc.b 'List of viewmodes:',10
  2102.  dc.b 10
  2103.  dc.b '    $8000 - hires',10
  2104.  dc.b '    $20   - superhires',10
  2105.  dc.b '    $8    - double scan',10
  2106.  dc.b '    $4    - interlace',10
  2107.  dc.b 10
  2108.  dc.b 10
  2109.  dc.b 'ENTER to continue...'
  2110. info4
  2111.  dc.b 155,65
  2112.  dc.b '                    ',155,65,10
  2113.  dc.b 'List of arguments:',10
  2114.  dc.b 10
  2115.  dc.b '    {F "something" "dir" "def" "pat"} brings you file requester',10
  2116.  dc.b '    {S "something" "def"} will get string',10
  2117.  dc.b '    {O "text" "gad1|gad2|...gadx" "op1|op2|...opx"}',10
  2118.  dc.b '        will get option from requester.',10
  2119.  dc.b '    {W} will get any argument from Workbench',10
  2120.  dc.b '    {FW "something" "dir" "def" "pat"} will get filename from Workbench',10
  2121.  dc.b '    {SW "something" "def"} will get string from Workbench',10
  2122.  dc.b '    {FM "something" "dir" "def" "pat"} - multiselect file requester',10
  2123.  dc.b '    {WM} - multiselection from Workbench',10
  2124.  dc.b '    {FWM "something" "dir" "def" "pat"} - multiselection from',10
  2125.  dc.b '        Workbench or requester',10
  2126.  dc.b 10
  2127.  dc.b 'ENTER to continue...'
  2128. info5:
  2129.  dc.b 155,65
  2130.  dc.b '                    ',155,65,10
  2131.  dc.b '"something"'," is the name of requester's window",10
  2132.  dc.b '"dir" is default directory',10
  2133.  dc.b '"text"'," is the text in requester's window",10
  2134.  dc.b '"gad1"-"gadx" is the text in gadgets',10
  2135.  dc.b '"op1"-"opx" - options',10
  2136.  dc.b '"def" - default answer',10
  2137.  dc.b '"pat" - file match pattern',10
  2138.  dc.b 10
  2139.  dc.b 10
  2140.  dc.b 'If you want to contact me, here is my address:',10
  2141.  dc.b 10,27,'[2m'
  2142.  dc.b 'Piotr Pawlow',10
  2143.  dc.b 'ul. Lewartowskiego 12 m.46',10
  2144.  dc.b '00-185 Warszawa',10
  2145.  dc.b 'Polska',10,27,'[0m'
  2146.  dc.b 'ENTER to continue...'
  2147. info6:
  2148.  dc.b 155,65
  2149.  dc.b '                    ',155,65,10
  2150.  dc.b 10
  2151.  dc.b 'If you use this program on any PD/shareware or commercial pack,',10
  2152.  dc.b 'please send me a copy of it !',10
  2153.  dc.b 10
  2154. info7:
  2155.  
  2156. lmbtext:
  2157.     dc.b    'LMB -',0
  2158. rmbtext:
  2159.     dc.b    'RMB -',0
  2160.  
  2161. windowcopy:
  2162.     dc.b    'CON:0/0/640/150/IconPP v.3.0 by PP of Termos output window/AUTO/CLOSE',0
  2163. executenamecopy:
  2164.     dc.b    'C:EXECUTE ',0
  2165. assigncmdcopy:
  2166.     dc.b    'c:assign ',0
  2167.  
  2168.     dc.b    '$VER: IconPP 3.0 (12.04.95)',0
  2169.  
  2170.     section    nico,BSS
  2171.  
  2172. buffer:
  2173.     ds.b    10
  2174. adresses:
  2175.     ds.l    4
  2176.  
  2177. gadstable:
  2178.     ds.l    10
  2179.  
  2180.     ds.l    1
  2181.  
  2182. diradresses:
  2183.     ds.l    20
  2184. directories:
  2185.     ds.b    1024
  2186.  
  2187. chars:
  2188.     ds.l    1
  2189.  
  2190. stringbuffer:
  2191.     ds.b    256
  2192.  
  2193. nazwa:
  2194.     ds.l    1
  2195.  
  2196. filebuffer:
  2197.     ds.b    256
  2198.  
  2199.     ds.b    1
  2200. string:
  2201.     ds.b    2048
  2202.  
  2203. directory:
  2204.     ds.b    256
  2205.  
  2206.     even
  2207.  
  2208. filesize:
  2209.     ds.l    1
  2210. fileinfoadr:
  2211.     ds.l    1
  2212.  
  2213.     even
  2214.  
  2215. fileinfoblk:
  2216.     ds.b    262
  2217.  
  2218. currentdir:
  2219.     ds.l    1
  2220.  
  2221. cddir:    ds.b    256
  2222.  
  2223. assigncmd:
  2224.     ds.b    9
  2225. assignargs:
  2226.     ds.b    256
  2227.  
  2228.     even
  2229.  
  2230. textadresses:
  2231.     ds.l    20
  2232.  
  2233. orgsource:
  2234.     ds.l    1
  2235. orgdest:
  2236.     ds.l    1
  2237.  
  2238. dosbase:
  2239.     ds.l    1
  2240. iconbase:
  2241.     ds.l    1
  2242. gfxbase:
  2243.     ds.l    1
  2244. intbase:
  2245.     ds.l    1
  2246. wbmsg:    ds.l    1
  2247. wbargs:
  2248.     ds.l    1
  2249. file:
  2250.     ds.l    1
  2251. windowfile:
  2252.     ds.l    1
  2253. window:
  2254.     ds.b    256
  2255. executename:
  2256.     ds.b    10
  2257. prgname:
  2258.     ds.b    2048
  2259. stack:
  2260.     ds.l    1
  2261. loadadr:
  2262.     ds.l    1
  2263. jumpadr:
  2264.     ds.l    1
  2265. allocadr:
  2266.     ds.l    1
  2267. alloclen:
  2268.     ds.l    1
  2269. copperlist:
  2270.     ds.l    1
  2271. prgnameadress:
  2272.     ds.l    1
  2273. a0store:
  2274.     ds.l    1
  2275. view:    ds.l    1
  2276. alertbuf:
  2277.     ds.b    256
  2278. stdcd:
  2279.     ds.l    1
  2280. pattern:
  2281.     ds.b    80
  2282.