|
|
1.1 root 1: /* dirhdl.c 1.7 83/05/13 */
2:
3: #include <stdio.h>
4: #include "cpmio.h"
5:
6: /* Display cp/m directory on stdout */
7:
8: dispdir()
9: {
10:
11: int cnt;
12: int filecnt = 0;
13: int blkcnt ;
14:
15: for (cnt=0; cnt<maxdir; cnt++) {
16: if ((dirbuf+cnt)->status != (char) 0xe5) {
17: if ((dirbuf+cnt)->extno == '\0' ) {
18: printf("%.8s %.3s",(dirbuf+cnt)->name,
19: (dirbuf+cnt)->ext);
20: if (++filecnt%4 == 0)
21: printf("\n");
22: else
23: printf(" : ");
24: }
25: }
26: }
27: blkcnt = blks_used();
28: if (filecnt%4 > 0) printf("\n");
29: if (filecnt == 0)
30: printf("No files\n");
31: else
32: printf(
33: "Total of %d files. %d blocks used, %d blocks free.\n"
34: ,filecnt, blkcnt,seclth*sectrk*(tracks-2)/blksiz - blkcnt);
35: return;
36: }
37:
38: getdir()
39:
40: {
41:
42: int bl, blks;
43: int offset = 0;
44:
45: blks = maxdir*32/blksiz;
46: if ((maxdir*32)%blksiz > 0)
47: ++blks;
48: for (bl = 0; blks > 0; bl++, blks--) {
49: if (getblock(bl,dirbuf+offset,-1) == EOF) {
50: fprintf(stderr, "getdir: fatal error\n");
51: exit (0);
52: }
53: offset += blksiz/32;
54: }
55: }
56:
57:
58: savedir()
59:
60: {
61:
62: int bl, blks;
63: int offset = 0;
64:
65: blks = maxdir*32/blksiz;
66: if ((maxdir*32)%blksiz > 0)
67: ++blks;
68: for (bl = 0; blks > 0; bl++, blks--) {
69: if (putblock(bl,dirbuf+offset,-1) == EOF) {
70: fprintf(stderr, "savedir: fatal error\n");
71: exit (0);
72: }
73: offset += blksiz/32;
74: }
75: }
76:
77: /* Search the cp/m directory for the file given by the input
78: * parameters, return -1 if not found,
79: * directory index to the file's first extent is
80: * returned if found.
81: */
82:
83: searchdir(name,ext)
84: char *name, *ext;
85:
86: {
87: int ind;
88:
89: for (ind = 0; ind < maxdir; ++ind)
90: {
91: if ((dirbuf+ind)->status == (char) 0xe5) continue;
92: if ((strncmp(name,(dirbuf+ind)->name,8) == 0) &&
93: (strncmp(ext, (dirbuf+ind)->ext, 3) == 0) &&
94: ((dirbuf+ind)->extno == '\0')) return(ind);
95: }
96: return(-1);
97: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.