/* Observer.c zeigt ständig die Namen aller eingelegten Disketten (DF0: - DF3) an. © 1989, by Ølli/Ultimate Computer Arts Landsberge 5 4322 Sprockhövel West Germany für Lettuce-C V5.04, mit "cback.o" linken Hinweis: Die System-Gadgets werden nicht mehr angezeigt, trotzdem kann man das Fenster bewegen, nach vorne/hinten clicken, schließen! Geschrieben für das AmigaJUICE-Diskmagazin. AmigaJUICE gibts gegen Leerdisk und Rückumschlag, oder DM 4,-, beim Autor (siehe oben!) */ char *_procname="Big Brother is watching you!"; long _priority=0; long _BackGroundIO=0; long _stack=2624; #include #include #include #include #include #include /* meine private tr.lib */ #include struct InfoData di; struct NewWindow nw={640-483,0,483,19,2,0,CLOSEWINDOW|DISKINSERTED|DISKREMOVED|REFRESHWINDOW|ACTIVEWINDOW|INACTIVEWINDOW, RMBTRAP|WINDOWDRAG|WINDOWDEPTH|WINDOWCLOSE|SIMPLE_REFRESH, 0,0,0,0,0,0,0,0,0,WBENCHSCREEN}; struct Window *w; struct RastPort *rp; char drive[5]={"DF0:"}; void _main(void); void exit(void); char *exam(int); void doit(void); char *exam(n) int n; { long lock; struct DosList *dl; char *str; drive[2]='0'+n; if(!(lock=Lock(drive,SHARED_LOCK))) { return(IoErr()==218?"drive not mounted":"no disk in drive"); } Info(lock,&di); UnLock(lock); dl=BADDR(di.id_VolumeNode); str=BADDR(dl->dol_Name); return(&str[1]); } void doit() { int c; ClearScreen(rp); setapen(1); move(0,0); draw(482,0); draw(482,18); draw(0,18); draw(0,0); setapen(2); move(0,9); draw(482,9); move(241,0); draw(241,18); setapen(3); for(c=0; c<4; c++) { move((c&1)?242:1,(c&2)?16:7); textf("%-30.30s",exam(c)); } } void _main() { openlibs(); if(!(w=OpenWindow(&nw))) exit(); rp=w->RPort; setdoserror((struct Window*)-1); SetWindowTitles(w,0,"The Observer - written & © 1990 by Ølli"); doit(); for(;;) { wgetmsg(); if(class==CLOSEWINDOW) { CloseWindow(w); exit(); } doit(); } }