home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 19 / AACD19.BIN / CDTools / IDer / Routines / WBHandler.s < prev   
Text File  |  1997-02-18  |  3KB  |  137 lines

  1.     Lea    pr_MsgPort(A4),A0
  2.     CALL    WaitPort,EXEC
  3.     Lea    pr_MsgPort(A4),A0
  4.     CALL    GetMsg
  5.     Move.L    D0,_WBMessage
  6.  
  7. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  8.     OPENLIBRARY    DOS,37
  9.     OPENLIBRARY    ICON,0
  10.     OPENLIBRARY    INTUI,0
  11.  
  12. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  13.     Move.L    _WBMessage(PC),A0
  14.     Move.L    sm_ArgList(A0),A2
  15.     Cmp.L    #0,A2
  16.     Beq    CloseDown
  17.  
  18.     Move.L    sm_NumArgs(A0),D0
  19.     Cmp.L    #1,D0
  20.     Ble.S    .NoArgs
  21.  
  22.     Move.L    A2,_FileName
  23. .NoArgs
  24. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  25.     Move.L    (A2),D1        ;wa_Lock
  26.     CALL    CurrentDir,DOS
  27.     Move.L    D0,_OldDirectory
  28.  
  29.     Move.L    wa_Name(A2),A0
  30.     CALL    GetDiskObject,ICON
  31.     Move.L    D0,_IconObject
  32.     Bne.S    .FoundIcon
  33.  
  34.     Addq    #8,A2        ;try the next icon
  35.     Move.L    wa_Name(A2),A0
  36.  
  37.     CALL    GetDiskObject
  38.     Move.L    D0,_IconObject
  39.     Beq    .NoIcon
  40.  
  41. .FoundIcon    Move.L    _IconObject(PC),A1
  42.     Move.L    do_ToolTypes(A1),A1
  43.     Move.L    A1,_ToolTypes
  44.     Move.l    A1,A4
  45.  
  46. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  47.     Move.L    A4,A0        ;list of tooltypes from icon
  48.     Lea    CrunchedTT(PC),A1
  49.     Clr.B    10(A1)
  50.     CALL    FindToolType
  51.     Tst.L    D0
  52.     Sne    _Crunched
  53.  
  54. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  55.     Move.L    A4,A0        ;list of tooltypes from icon
  56.     Lea    ConfigTT(PC),A1
  57.     Clr.B    6(A1)
  58.     CALL    FindToolType
  59.     Tst.L    D0
  60.     Beq.S    .NoConfigFile
  61.  
  62.     Move.L    D0,A0
  63.     Lea    ConfigName,A1
  64.     Move.L    A1,_Config
  65.     Bsr    StripQuotes
  66. .NoConfigFile
  67. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  68.     Move.L    A4,A0        ;list of tooltypes from icon
  69.     Lea    AppIconTT(PC),A1
  70.     CALL    FindToolType
  71.     Tst.L    D0
  72.     Beq.S    .NoAppData
  73.  
  74.     Not.B    _UseAppIcon
  75.  
  76.     Move.L    D0,A0
  77.     Cmp.B    #0,(A0)
  78.     Beq.S    .NoAppIcon
  79.     Cmp.B    #10,(A0)
  80.     Beq.S    .NoAppIcon
  81.     Move.L    A0,_AppIcon
  82. .NoAppIcon
  83. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  84.     Move.L    A4,A0        ;list of tooltypes from icon
  85.     Lea    AppNameTT(PC),A1
  86.     CALL    FindToolType
  87.     Tst.L    D0
  88.     Beq.S    .NoAppName
  89.  
  90.     Move.L    D0,A0
  91.     Lea    AppIconName,A1
  92.     Move.L    A1,_AppName
  93.  
  94.     Bsr    StripQuotes
  95. .NoAppName
  96. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  97.     Lea    AppIconTT(PC),A1
  98.     Move.B    #'X',7(A1)
  99.  
  100.     Move.L    A4,A0        ;list of tooltypes from icon
  101.     CALL    FindToolType
  102.     Tst.L    D0
  103.     Beq.S    .NoAppIconX
  104.  
  105.     Move.L    D0,D1
  106.     Move.L    #_AppIconX,D2
  107.     CALL    StrToLong,DOS        ;convert a decimal string into a longword
  108. .NoAppIconX
  109. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  110.     Lea    AppIconTT(PC),A1
  111.     Move.B    #'Y',7(A1)
  112.  
  113.     Move.L    A4,A0        ;list of tooltypes from icon
  114.     CALL    FindToolType,ICON
  115.     Tst.L    D0
  116.     Beq.S    .NoAppIconY
  117.  
  118.     Move.L    D0,D1
  119.     Move.L    #_AppIconY,D2
  120.     CALL    StrToLong,DOS        ;convert a decimal string into a longword
  121. .NoAppIconY
  122. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  123. .NoAppData
  124.     Move.L    _IconObject(PC),A0
  125.     Cmp.L    #0,A0
  126.     Beq.S    .NoIcon
  127.     CALL    FreeDiskObject,ICON
  128.     Clr.L    _IconObject
  129.  
  130. .NoIcon    Move.L    _OldDirectory(PC),D1
  131.     Tst.L    D1
  132.     Beq.S    .NoDir
  133.     CALL    CurrentDir,DOS
  134.  
  135. .NoDir    Clr.L    _OldDirectory
  136.     Bra.S    WBReEnter
  137.