home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 298.lha / PopInfo_v3.1 / PopInfo.h < prev    next >
C/C++ Source or Header  |  1980-12-04  |  8KB  |  248 lines

  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <stdlib.h>
  4. #include <exec/types.h>
  5. #include <exec/tasks.h>
  6. #include <exec/memory.h>
  7. #include <exec/execbase.h>
  8. #include <intuition/intuitionbase.h>
  9. #include <devices/trackdisk.h>
  10. #include <devices/timer.h>
  11. #include <libraries/dosextens.h>
  12. #include <proto/all.h>
  13. #include <pragma/all.h>
  14. #include <string.h>
  15. #include <dos.h>
  16. #include "PopInfo.i"
  17.  
  18. #define DF0 1
  19. #define DF1 2
  20. #define DF2 3
  21. #define DF3 4
  22. #define BLK 5
  23. #define SAVE 6
  24. #define LOAD 7
  25. #define WIPE 8
  26. #define EXIT 9
  27.  
  28. /* Image-Ed Image generation */
  29.  
  30. /* Start of Image data */
  31. USHORT popgad1ImageData[]={
  32.    /* Plane 0 */
  33.    0x0000, 0x0000, 0x3fff, 0xfff0, 0x3dfb, 0xdff0, 
  34.    0x3dd7, 0x5df0, 0x3dd7, 0x5df0, 0x3df7, 0x5ff0, 
  35.    0x3df7, 0x5ff0, 0x3df7, 0x5ff0, 0x3dfb, 0xdff0, 
  36.    0x3fff, 0xfff0, 0x3fff, 0xfff0, 0x2fba, 0xfdf0, 
  37.    0x3bba, 0xfbb0, 0x3baa, 0xfbb0, 0x3baa, 0xfbb0, 
  38.    0x3baa, 0xfbb0, 0x3bb6, 0xfbb0, 0x2fba, 0xfdf0, 
  39.    0x3fff, 0xfff0, 0x0000, 0x0000, 
  40.    /* Plane 1 */
  41.    0xffff, 0xfffc, 0xffff, 0xfffc, 0xfe1c, 0x61fc, 
  42.    0xfeeb, 0xaefc, 0xfeeb, 0xaefc, 0xfe1b, 0xa1fc, 
  43.    0xfefb, 0xaffc, 0xfefb, 0xaffc, 0xfefc, 0x6ffc, 
  44.    0xffff, 0xfffc, 0xffff, 0xfffc, 0xf05d, 0x063c, 
  45.    0xfdcd, 0x7ddc, 0xfdd5, 0x7ddc, 0xfdd5, 0x0ddc, 
  46.    0xfdd5, 0x7ddc, 0xfdd9, 0x7ddc, 0xf05d, 0x7e3c, 
  47.    0xffff, 0xfffc, 0xffff, 0xfffc
  48. };
  49. /* End of Image data */
  50.  
  51. struct Image popgad1Image={
  52.     0,0,     /* LeftEdge, TopEdge */
  53.     30,20,2,     /* Width, Height, Depth */
  54.     &popgad1ImageData[0],     /* ImageData */
  55.     0x3,0x0,     /* PlanePick, PlaneOnOff */
  56.     NULL     /* NextImage */
  57. };
  58.  
  59. /* Start of Image data */
  60. USHORT popgad2ImageData[]={
  61.    /* Plane 0 */
  62.    0x0000, 0x0000, 0x3fff, 0xfff0, 0x3ff3, 0xfff0, 
  63.    0x3fe7, 0xfff0, 0x3fcf, 0xfff0, 0x3fcf, 0xfff0, 
  64.    0x3fcf, 0xfff0, 0x3fcf, 0xfff0, 0x3fcf, 0xfff0, 
  65.    0x3fe7, 0xfff0, 0x3fe7, 0xfff0, 0x3fe7, 0xfff0, 
  66.    0x3ff3, 0xfff0, 0x3ff3, 0xfff0, 0x3fff, 0xfff0, 
  67.    0x3ff3, 0xfff0, 0x3ff3, 0xfff0, 0x3ff3, 0xfff0, 
  68.    0x3fff, 0xfff0, 0x0000, 0x0000, 
  69.    /* Plane 1 */
  70.    0xffff, 0xfffc, 0xffff, 0xfffc, 0xfffc, 0x7ffc, 
  71.    0xfff8, 0x3ffc, 0xfff0, 0x1ffc, 0xfff0, 0x1ffc, 
  72.    0xfff0, 0x1ffc, 0xfff0, 0x1ffc, 0xfff0, 0x1ffc, 
  73.    0xfff8, 0x3ffc, 0xfff8, 0x3ffc, 0xfff8, 0x3ffc, 
  74.    0xfffc, 0x7ffc, 0xfffc, 0x7ffc, 0xffff, 0xfffc, 
  75.    0xfffc, 0x7ffc, 0xfffc, 0x7ffc, 0xfffc, 0x7ffc, 
  76.    0xffff, 0xfffc, 0xffff, 0xfffc
  77. };
  78. /* End of Image data */
  79.  
  80. struct Image popgad2Image={
  81.     0,0,     /* LeftEdge, TopEdge */
  82.     30,20,2,     /* Width, Height, Depth */
  83.     &popgad2ImageData[0],     /* ImageData */
  84.     0x3,0x0,     /* PlanePick, PlaneOnOff */
  85.     NULL     /* NextImage */
  86. };
  87.  
  88. struct Gadget popgad={
  89.     NULL,0,10,30,20,GADGHIMAGE|GADGIMAGE,RELVERIFY,BOOLGADGET,
  90.     (APTR)&popgad1Image,(APTR)&popgad2Image,NULL,NULL,NULL,NULL,NULL};
  91.  
  92. /* End of Image-Ed Image generation */
  93.  
  94. USHORT popstay1[]={
  95.     0xFFFF,0x8E63,0xB5AD,0xB5AD,0x8DA3,0xBDAF,0xBDAF,0xBE6F,0xFFFF};
  96. USHORT popstay2[]={
  97.     0xFFFF,0xC895,0xB565,0xBD65,0xCD0B,0xF56B,0xB56B,0xCD6B,0xFFFF};
  98.  
  99. struct Image pim1={
  100.     0,0,16,9,1,&popstay1[0],0x1,0x0,NULL};
  101. struct Image pim2={
  102.     0,0,16,9,1,&popstay2[0],0x1,0x0,NULL};
  103. struct Gadget popstaygad={
  104.     NULL,0,-8,16,9,GADGHIMAGE|GADGIMAGE|GRELBOTTOM,RELVERIFY|TOGGLESELECT,
  105.     BOOLGADGET,(APTR)&pim1,(APTR)&pim2,NULL,NULL,NULL,NULL,NULL};
  106.  
  107. short xyborder[]={
  108.     -1,-1,50,-1,50,11,-1,11,-1,-1};
  109. struct Border Border={
  110.     0,0,2,0,JAM1,5,xyborder,NULL};
  111. struct IntuiText exittext={
  112.     3,0,JAM1,10,2,NULL,"EXIT",NULL};
  113. struct IntuiText wipetext={
  114.     3,0,JAM1,10,2,NULL,"WIPE",NULL};
  115. struct IntuiText loadtext={
  116.     3,0,JAM1,10,2,NULL,"LOAD",NULL};
  117. struct IntuiText savetext={
  118.     3,0,JAM1,10,2,NULL,"SAVE",NULL};
  119. struct IntuiText blktext={
  120.     3,0,JAM2,10,2,NULL,"BLK1",NULL};
  121. struct IntuiText df3text={
  122.     3,0,JAM1,10,2,NULL,"DF3:",NULL};
  123. struct IntuiText df2text={
  124.     3,0,JAM1,10,2,NULL,"DF2:",NULL};
  125. struct IntuiText df1text={
  126.     3,0,JAM1,10,2,NULL,"DF1:",NULL};
  127. struct IntuiText df0text={
  128.     3,0,JAM1,10,2,NULL,"DF0:",NULL};
  129.  
  130. struct Gadget exitgadget={
  131.     NULL,584,117,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  132.     &exittext,NULL,NULL,EXIT,NULL};
  133. struct Gadget wipegadget={
  134.     &exitgadget,584,103,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  135.     &wipetext,NULL,NULL,WIPE,NULL};
  136. struct Gadget loadgadget={
  137.     &wipegadget,584,89,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  138.     &loadtext,NULL,NULL,LOAD,NULL};
  139. struct Gadget savegadget={
  140.     &loadgadget,584,75,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  141.     &savetext,NULL,NULL,SAVE,NULL};
  142. struct Gadget blkgadget={
  143.     &savegadget,584,61,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  144.     &blktext,NULL,NULL,BLK,NULL};
  145. struct Gadget df3gadget={
  146.     &blkgadget,584,47,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  147.     &df3text,NULL,NULL,DF3,NULL};
  148. struct Gadget df2gadget={
  149.     &df3gadget,584,33,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  150.     &df2text,NULL,NULL,DF2,NULL};
  151. struct Gadget df1gadget={
  152.     &df2gadget,584,19,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  153.     &df1text,NULL,NULL,DF1,NULL};
  154. struct Gadget df0gadget={
  155.     &df1gadget,584,5,50,11,GADGHCOMP,RELVERIFY,BOOLGADGET,(APTR)&Border,NULL,
  156.     &df0text,NULL,NULL,DF0,NULL};
  157.  
  158. struct NewWindow SWindow={
  159.     0,10,30,30,3,0,GADGETUP,RMBTRAP|WINDOWDRAG|BORDERLESS|SMART_REFRESH,
  160.     &popgad,NULL,"Pop!",NULL,NULL,0,0,0,0,WBENCHSCREEN};
  161.  
  162. struct NewWindow MWindow={
  163.     0,10,639,0,-1,-1,CLOSEWINDOW|INACTIVEWINDOW|GADGETUP|DISKINSERTED|RAWKEY|
  164.     DISKREMOVED|REFRESHWINDOW|MOUSEBUTTONS,WINDOWCLOSE|INACTIVEWINDOW|ACTIVATE|
  165.     SMART_REFRESH|RMBTRAP|WINDOWDEPTH|WINDOWDRAG|WINDOWSIZING,&popstaygad,
  166.     NULL,"PopInfo v3.1 © Copyright 1989 Jonathan Potter",NULL,NULL,
  167.     90,21,639,0,WBENCHSCREEN};
  168.  
  169. struct NewWindow LWindow={
  170.     0,0,640,200,-1,-1,GADGETUP,ACTIVATE|RMBTRAP|SMART_REFRESH,
  171.     &df0gadget,NULL,NULL,NULL,NULL,0,0,0,0,WBENCHSCREEN};
  172.  
  173. struct NewWindow WWindow={
  174.     170,85,300,30,-1,-1,MOUSEBUTTONS|RAWKEY|INACTIVEWINDOW,ACTIVATE|RMBTRAP,
  175.     NULL,NULL,NULL,NULL,NULL,0,0,0,0,WBENCHSCREEN};
  176.  
  177. struct IntuitionBase *IntuitionBase;
  178. struct Window *Window, *CWindow;
  179. struct Screen *scr;
  180. struct Port *diskport;
  181. struct IOStdReq *diskreq;
  182. struct IntuiMessage *Msg;
  183. struct FileLock *lock;
  184. struct InfoData *data;
  185. struct DosLibrary *DosBase;
  186. struct DeviceList *devlist;
  187. struct RootNode *rootnode;
  188. struct DosInfo *dosinfo;
  189. struct GfxBase *GfxBase;
  190. struct FileInfoBlock *finfo;
  191. struct DateStamp now;
  192. struct timerequest TimeReq;
  193. struct MsgPort *TimerPort;
  194.  
  195. FILE *bbsavefile;
  196. char txt[80], wintit[]="PopInfo v3.1 © Copyright 1989 Jonathan Potter";
  197. char bootblock[]={
  198.     'D','O','S',0,0xC0,0x20,0x0F,0x19,0x00,0x00,0x03,0x70,0x43,0xFA,0x00,
  199.     0x18,0x4E,0xAE,0xFF,0xA0,0x4A,0x80,0x67,0x0A,0x20,0x40,0x20,0x68,0x00,
  200.     0x16,0x70,0x00,0x4E,0x75,0x70,0xFF,0x60,0xFA,0x64,0x6F,0x73,0x2E,0x6C,
  201.     0x69,0x62,0x72,0x61,0x72,0x79,0x00,0x00,0x00,0x00,0x00};
  202. short ScreenHeight, ScreenWidth;
  203.  
  204. struct IntuiText mesg={
  205.     1,0,JAM1,10,12,NULL,txt,NULL};
  206.  
  207. int oldpri,numdevs,nondos,nodisk,flag,flag2,sbbflag,a,b,c,x,y,savebb,
  208.      dnum,sum,lastsum,error,nsbb[4],oldw,oldh,oldtop,oldleft,maxnumdevs,
  209.      onumdevs,namep,popflag,ractreq,xyz,fast,chipt,total,hours,mins,secs,
  210.      checkbbs,VirusBase,day,month,year;
  211. UBYTE devname[4];
  212. char *volumename, *filename, *bbmess, *status;
  213. unsigned int *point1;
  214. unsigned int *point2;
  215. USHORT *popgad1_chip, *popgad2_chip, *popstay1_chip, *popstay2_chip;
  216. UBYTE *diskbuffer;
  217. char TimeBuffer[9], DateBuffer[9];
  218.  
  219. struct TextAttr TopazText={
  220.     "topaz.font",8,0,0};
  221.  
  222. #define iprint Window->RPort
  223. #define cprint CWindow->RPort
  224. #define CHIPMEMORY (AvailMem(MEMF_CHIP) >> 10)*1024
  225. #define FASTMEMORY (AvailMem(MEMF_FAST) >> 10)*1024
  226. #define TOTALMEMORY CHIPMEMORY+FASTMEMORY
  227. #define WINDOWMESSAGE 1L<<Window->UserPort->mp_SigBit
  228. #define TIMERMESSAGE 1L<<TimerPort->mp_SigBit
  229.  
  230. char *virusdesc[]={
  231.     "  Not recognised as a virus.  ",
  232.     "    SCA virus recognised!!    ",
  233.     "BYTE BANDIT virus recognised!!",
  234.     "BYTE WARRIOR virus recognised!",
  235.     " NORTHSTAR virus recognised!! ",
  236.     "  REVENGE virus recognised!!  ",
  237.     "  OBELISK virus recognised!!  ",
  238.     " PENTAGON virus recognised!!! ",
  239.     " SYSTEM Z virus recognised!!! ",
  240.     "    HCS VIRUS recognised!!    ",
  241.     "DISK-DOKTOR VIRUS recognised!!",
  242.     "LAMER EX'TOR VIRUS recognised!",
  243.     " ULTRAFOX VIRUS recognised!!  ",
  244.     " GRAFFITI VIRUS recognised!!  ",
  245.     "16 BIT CREW VIRUS recognised!!",
  246.     " PHANTASM VIRUS recognised!!  ",
  247.     "OLD N. STAR VIRUS recognised!!"};
  248.