home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 15 / AACD15.ISO / AACD / Programming / MultiDesktop / desk / t.asm < prev    next >
Encoding:
Assembly Source File  |  1997-03-27  |  5.0 KB  |  310 lines

  1. ;:ts=8
  2. ;#include "multidesktop.h"
  3. ;
  4. ;struct MultiDesktopBase *MultiDesktopBase;
  5.     global    _MultiDesktopBase,4
  6. ;extern struct ExecBase  *SysBase;
  7. ;APTR IntuitionBase,GfxBase;
  8.     global    _IntuitionBase,4
  9.     global    _GfxBase,4
  10. ;
  11. ;/* ---- Text einer ID-Nummer ermitteln */
  12. ;/*
  13. ;  ID-Nummer:
  14. ;
  15. ;  "Text"       für keine Umwandlung, Ergebnis = "Text"
  16. ;  "xxx:Text"   für ID xxx aus dem angegebenen Katalog
  17. ;  "xxx§Text"   für ID xxx aus dem MultiDesktop-Katalog (System-
  18. ;ID)
  19. ;*/
  20. ;
  21. ;ULONG Catalog=7466L;
  22.     dseg
  23.     ds    0
  24.     public    _Catalog
  25. _Catalog:
  26.     dc.l    $1d2a
  27.     cseg
  28. ;
  29. ;UBYTE *FindIt(cat,id)
  30. ; struct Catalog *cat;
  31.     public    _FindIt
  32. _FindIt:
  33.     link    a5,#.2
  34.     movem.l    .3,-(sp)
  35. ; UBYTE           *id;
  36. ;{
  37. ; UBYTE num[30];
  38. ; BOOL  hasNum,sysID;
  39. ; ULONG catID;
  40. ; int   i;
  41. ;
  42. ; if(id==NULL) return(NULL);
  43.     tst.l    12(a5)
  44.     bne    .4
  45.     move.l    #0,d0
  46. .5
  47.     movem.l    (sp)+,.3
  48.     unlk    a5
  49.     rts
  50. ;
  51. ; hasNum=sysID=FALSE;
  52. .4
  53.     clr.w    -34(a5)
  54.     clr.w    -32(a5)
  55. ; i=0;
  56.     clr.l    -42(a5)
  57. ; printf("<%c>\n",'§');
  58.     pea    -89
  59.     pea    .1+0
  60.     jsr    _printf
  61.     add.w    #8,sp
  62. ; printf("Scan=");
  63.     pea    .1+6
  64.     jsr    _printf
  65.     add.w    #4,sp
  66. ; while((id[i]!=0x00)&&(i<20))
  67. .6
  68.     move.l    -42(a5),d0
  69.     move.l    12(a5),a0
  70.     tst.b    (a0,d0.l)
  71.     beq    .7
  72.     cmp.l    #20,-42(a5)
  73.     bge    .7
  74. ;  {
  75. ;   if(id[i]==':')
  76. ;    {
  77.     move.l    -42(a5),d0
  78.     move.l    12(a5),a0
  79.     cmp.b    #58,(a0,d0.l)
  80.     bne    .8
  81. ;     num[i]=0x00;
  82.     move.l    -42(a5),d0
  83.     lea    -30(a5),a0
  84.     clr.b    (a0,d0.l)
  85. ;     hasNum=TRUE;
  86.     move.w    #1,-32(a5)
  87. ;     break;
  88.     bra    .7
  89. ;    }
  90. ;   else if(id[i]=='§')
  91. .8
  92. ;    {
  93.     move.l    -42(a5),d0
  94.     move.l    12(a5),a0
  95.     move.l    #0,d1
  96.     move.b    (a0,d0.l),d1
  97.     cmp.l    #-89,d1
  98.     bne    .9
  99. ;     num[i]=0x00;
  100.     move.l    -42(a5),d0
  101.     lea    -30(a5),a0
  102.     clr.b    (a0,d0.l)
  103. ;     hasNum=TRUE;
  104.     move.w    #1,-32(a5)
  105. ;     sysID=TRUE;
  106.     move.w    #1,-34(a5)
  107. ;     printf("<STOP>");
  108.     pea    .1+12
  109.     jsr    _printf
  110.     add.w    #4,sp
  111. ;     break;
  112.     bra    .7
  113. ;    }
  114. ;   else
  115. .9
  116. ;    {  num[i]=id[i]; printf("%c  %ld\n",num[i],num[i]=='§'); }
  117.     move.l    -42(a5),d0
  118.     move.l    12(a5),a0
  119.     move.l    -42(a5),d1
  120.     lea    -30(a5),a1
  121.     move.b    (a0,d0.l),(a1,d1.l)
  122.     move.l    -42(a5),d0
  123.     lea    -30(a5),a0
  124.     move.l    #0,d1
  125.     move.b    (a0,d0.l),d1
  126.     cmp.l    #-89,d1
  127.     bne    .10
  128.     move.l    #1,d2
  129.     bra    .11
  130. .10
  131.     move.l    #0,d2
  132. .11
  133.     move.l    d2,-(sp)
  134.     move.l    -42(a5),d3
  135.     lea    -30(a5),a1
  136.     move.l    #0,d2
  137.     move.b    (a1,d3.l),d2
  138.     move.l    d2,-(sp)
  139.     pea    .1+19
  140.     jsr    _printf
  141.     lea    12(sp),sp
  142. ;   i++;
  143.     add.l    #1,-42(a5)
  144. ;  }
  145.     bra    .6
  146. .7
  147. ;
  148. ; puts("\n---------");
  149.     pea    .1+28
  150.     jsr    _puts
  151.     add.w    #4,sp
  152. ;
  153. ; if(!hasNum)
  154. ;   return(id);
  155.     tst.w    -32(a5)
  156.     bne    .12
  157.     move.l    12(a5),d0
  158.     bra    .5
  159. ;
  160. ; printf("Num=%s\n",&num);
  161. .12
  162.     pea    -30(a5)
  163.     pea    .1+39
  164.     jsr    _printf
  165.     add.w    #8,sp
  166. ;
  167. ; catID=atol(&num);
  168.     pea    -30(a5)
  169.     jsr    _atol
  170.     add.w    #4,sp
  171.     move.l    d0,-38(a5)
  172. ; if(catID==0)
  173. ;   return(id);
  174.     tst.l    -38(a5)
  175.     bne    .13
  176.     move.l    12(a5),d0
  177.     bra    .5
  178. ;
  179. ; if(sysID)
  180. .13
  181. ;   cat=Catalog;
  182.     tst.w    -34(a5)
  183.     beq    .14
  184.     move.l    _Catalog,8(a5)
  185. ;
  186. ; printf("Num=%ld\n",catID);
  187. .14
  188.     move.l    -38(a5),-(sp)
  189.     pea    .1+47
  190.     jsr    _printf
  191.     add.w    #8,sp
  192. ; printf("Cat=%ld\n",cat);
  193.     move.l    8(a5),-(sp)
  194.     pea    .1+56
  195.     jsr    _printf
  196.     add.w    #8,sp
  197. ;}
  198.     bra    .5
  199. .2    equ    -42
  200. .3    reg    
  201. .1
  202.     dc.b    60,37,99,62,10,0,83,99,97,110,61,0,60,83,84
  203.     dc.b    79,80,62,0,37,99,32,32,37,108,100,10,0,10,45
  204.     dc.b    45,45,45,45,45,45,45,45,0,78,117,109,61,37,115
  205.     dc.b    10,0,78,117,109,61,37,108,100,10,0,67,97,116,61
  206.     dc.b    37,108,100,10,0
  207.     ds    0
  208. ;
  209. ;main()
  210. ;{
  211.     public    _main
  212. _main:
  213.     link    a5,#.16
  214.     movem.l    .17,-(sp)
  215. ; struct Node *node;
  216. ; struct List  list;
  217. ; BOOL         b1,b2;
  218. ; long i,j;
  219. ;
  220. ; IntuitionBase=OpenLibrary("intuition.library",0L);
  221.     clr.l    -(sp)
  222.     pea    .15+0
  223.     jsr    _OpenLibrary
  224.     add.w    #8,sp
  225.     move.l    d0,_IntuitionBase
  226. ; GfxBase=OpenLibrary("graphics.library",0L);
  227.     clr.l    -(sp)
  228.     pea    .15+18
  229.     jsr    _OpenLibrary
  230.     add.w    #8,sp
  231.     move.l    d0,_GfxBase
  232. ; MultiDesktopBase=OpenLibrary("multidesktop.library",0L);
  233.     clr.l    -(sp)
  234.     pea    .15+35
  235.     jsr    _OpenLibrary
  236.     add.w    #8,sp
  237.     move.l    d0,_MultiDesktopBase
  238. ; if(MultiDesktopBase)
  239. ;  {
  240.     tst.l    _MultiDesktopBase
  241.     beq    .18
  242. ;   DesktopStartup(0L,STARTUP_ALERTHANDLER|STARTUP_TRAPHANDLER);
  243. ;
  244.     pea    3
  245.     clr.l    -(sp)
  246.     jsr    _DesktopStartup
  247.     add.w    #8,sp
  248. ;   puts("Programm gestartet!");
  249.     pea    .15+56
  250.     jsr    _puts
  251.     add.w    #4,sp
  252. ;
  253. ;   FindIt(345L,"3§Test!");
  254.     pea    .15+76
  255.     pea    345
  256.     jsr    _FindIt
  257.     add.w    #8,sp
  258. ;
  259. ;   DesktopExit();
  260.     jsr    _DesktopExit
  261. ;   CloseLibrary(MultiDesktopBase);
  262.     move.l    _MultiDesktopBase,-(sp)
  263.     jsr    _CloseLibrary
  264.     add.w    #4,sp
  265. ;   printf("Avail=%ld\n",AvailMem(MEMF_ANY));
  266.     clr.l    -(sp)
  267.     jsr    _AvailMem
  268.     add.w    #4,sp
  269.     move.l    d0,-(sp)
  270.     pea    .15+84
  271.     jsr    _printf
  272.     add.w    #8,sp
  273. ;  }
  274. ; else
  275.     bra    .19
  276. .18
  277. ;   puts("No Libs!");
  278.     pea    .15+95
  279.     jsr    _puts
  280.     add.w    #4,sp
  281. .19
  282. ;}
  283. .20
  284.     movem.l    (sp)+,.17
  285.     unlk    a5
  286.     rts
  287. .16    equ    -30
  288. .17    reg    
  289. .15
  290.     dc.b    105,110,116,117,105,116,105,111,110,46,108,105,98,114,97
  291.     dc.b    114,121,0,103,114,97,112,104,105,99,115,46,108,105,98
  292.     dc.b    114,97,114,121,0,109,117,108,116,105,100,101,115,107,116
  293.     dc.b    111,112,46,108,105,98,114,97,114,121,0,80,114,111,103
  294.     dc.b    114,97,109,109,32,103,101,115,116,97,114,116,101,116,33
  295.     dc.b    0,51,-89,84,101,115,116,33,0,65,118,97,105,108,61
  296.     dc.b    37,108,100,10,0,78,111,32,76,105,98,115,33,0
  297.     ds    0
  298. ;
  299.     public    _AvailMem
  300.     public    _CloseLibrary
  301.     public    _DesktopExit
  302.     public    _DesktopStartup
  303.     public    _OpenLibrary
  304.     public    _atol
  305.     public    _puts
  306.     public    _printf
  307.     public    .begin
  308.     dseg
  309.     end
  310.