/*MESSAGES.C*/#include "GLOBALS.H";#define FILEMX struct tempptrFILEMX $(  DISK *headm, *endm;$);extern char *malloc();extern int getdrive();extern int getsdata();extern int getcnam();extern char msg2[],msg3[];extern char pr0[];messages()$(  char f0[64];  int ib;  strcpy(f0,"MESSAGES.DAT");  ib = getdrive(f0,'r');  if(ib>0)  $(    printf("\n%s%s\n",pr0,f0);    readm(ib);    close(ib);    printf("\n%s\n",msg3);    getkey();  $)$)/*function readm()*/readm(iocb)int iocb;$(  FILEMX frec;  DISK rec;  CONF *rov;  char buf[MAXM], byt, name[26], *ptr;  char recs[7], messn[8], *rptr;  int sec, lbuf, i, j, k;  frec.headm = NULL;  lbuf=sizeof(buf);  i=bgets(buf,lbuf,iocb);  while(i)  $(    note(iocb,&sec,&byt);    rec.sector = sec;    rec.byte = byt;    i=bgets(buf,lbuf,iocb);    ptr = buf;    if((ptr[122] != 'α') && (ptr[122] != 'β') && i)    $(      printf("\n\nmistake\n\n ");      i = 0;    $)    if(i)    $(      rec.confn = ptr[123];      rec.confn += 256*ptr[124];      rov = getcnam(rec.confn);      rptr = name;      getsdata(rptr,ptr,21,25);      if(sfind(name,db->usern) >= 0)        rec.pers = 'y';      else rec.pers = 'n';      rptr = messn;      getsdata(rptr,ptr,1,7);      k = val(messn);      rec.mesn = k;      if(k < rov->lo)        rov->lo = k;      if(k > rov->hi)        rov->hi = k;      rptr = recs;      getsdata(rptr,ptr,116,6);      k = val(recs);      if(addmes(rec.sector, rec.confn, rec.mesn, rec.byte, rec.pers, &frec))      $(        rov->nmes++;        if(rec.pers == 'y')          rov->npers++;        k--;        for(j=0;j<k;j++)          i=bgets(buf,lbuf,iocb);      $)      else i = 0;    $)  $)  db->mhead = frec.headm;$)/*function addmes()*/static DISK *prev;addmes(s,c,m,b,p,frc)int s,c,m;char b,p;FILEMX *frc;$(  DISK *new;  char *t;  int n, slist;  n = 0;  slist = sizeof(DISK);  t = malloc(slist);  if(t != NULL)  $(    new = (DISK *) t;    new->sector = s;    new->byte = b;    new->confn = c;    new->pers  = p;    new->mesn  = m;    new->dnext = NULL;    if((*frc).headm == NULL)    $(      (*frc).headm = new;      prev = NULL;    $)    else (*frc).endm->dnext = new;    (*frc).endm = new;    new->dprev = prev;    prev = new;    n = 1;  $)  return(n);$)pconf()$(  CONF *rov;  int count;  poke(82,0);  rov = db->lhead;  count = 0;  while(rov != NULL)  $(    printf("\n#%-3d %-33s",rov->cnum,rov->cnam);    count++;    if(count >= 22)    $(      printf("\n>- More -<");      getkey();      count = 0;    $)    rov = rov->cnext;  $)  printf("\n%s",msg2);  getkey();$)note(ib,sc,bt)int ib,*sc;char *bt;$(  ciov(ib,38,-1,-1,-1,-1);  *sc = dpeek(844+(16*ib));  *bt = peek(846+(16*ib));$)point(ib,sc,bt)int ib,sc;char bt;$(  dpoke(844+(16*ib),sc);  poke(846+(16*ib),bt);  return ciov(ib,37,-1,-1,-1,-1);$)