- st->ncyl, st->ntrak, st->nsect);
- chunk = st.nsect*SECTSIZ;
- printf("Testing %s, chunk size is %d bytes\n",buf, chunk);
- printf("Start ...Make sure %s is online\n",buf);
- lseek(fd,0,0);
- for (i=0;i < st.ncyl*st.ntrak; i++) {
-/* for (j=8;j<st.ntrak+8;j++) {
- lseek(fd,(i*st.nspc+((j%st.ntrak)*st.nsect))*SECTSIZ,0);
-*/
- read(fd,buffer, chunk);
-/* } */
- if (i%(st.ntrak*5) == 0) printf("%d\r",i/st.ntrak);
+ st.ncyl, st.ntrak, st.nsect);
+ ioctl(fd, SAIODEBUG, (char *)debug);
+ tracksize = st.nsect * SECTSIZ;
+ bp = malloc(tracksize);
+ printf("Reading in %d byte records\n", tracksize);
+ printf("Start ...make sure drive is on-line\n");
+ lseek(fd, 0, 0);
+ lastsector = st.ncyl * st.nspc;
+ for (sector = 0; sector < lastsector; sector += st.nsect) {
+ if (sector && (sector % (st.nspc * 10)) == 0)
+ printf("cylinder %d\n", sector/st.nspc);
+ read(fd, bp, tracksize);
+ }
+ goto again;
+}
+
+/*
+ * Prompt and verify a device name from the user.
+ */
+getdevice()
+{
+ register char *cp;
+ register struct devsw *dp;
+ int fd;
+
+top:
+ cp = prompt("Device to read? ");
+ if ((fd = open(cp, 2)) < 0) {
+ printf("Known devices are: ");
+ for (dp = devsw; dp->dv_name; dp++)
+ printf("%s ",dp->dv_name);
+ printf("\n");
+ goto top;