if(dirbuf[0] == 0) {
if(_c64_fs_dirbuf[0] == 0) {
c64_fs_readdir(register struct c64_fs_dir *d,	       register struct c64_fs_dirent *f){  struct directory_entry *de;  int i;    readdirbuf(d->track, d->sect);  de = (struct directory_entry *)&dirbuf[d->ptr];  for(i = 0; i < 16; ++i) {    if(de->name[i] == 0xa0) {      de->name[i] = 0;      break;    }  }  strncpy(f->name, de->name, 16);  f->track = de->track;  f->sect = de->sect;  /* Save directory entry as a cache for a file open that might follow     this readdir. */  memcpy(&lastdirent, f, sizeof(struct c64_fs_dirent));    if(d->ptr == 226) {    if(dirbuf[0] == 0) {      return 1;    }    d->track = dirbuf[0];    d->sect = dirbuf[1];    d->ptr = 2;  } else {    d->ptr += 32;  }  return 0;}