42 lines
735 B
C
42 lines
735 B
C
/* gensktab.c 1.4 83/05/13 */
|
||
#include <stdio.h>
|
||
#include "cpmio.h"
|
||
|
||
int skew;
|
||
int *skewtab;
|
||
|
||
/*
|
||
* Generate a skew factor table in skewtab accordine to the
|
||
* global parameters given by skew and sectrk.
|
||
* This routine must be called before any disk (or virtual disk)
|
||
* accesses are attempted.
|
||
*/
|
||
|
||
gen_sktab()
|
||
{
|
||
|
||
int *i, *j;
|
||
char *malloc();
|
||
|
||
if (( skewtab = (int *) malloc(sectrk*4)) == NULL) {
|
||
fprintf(stderr,
|
||
"can't allocate memory for skew sector table\n");
|
||
exit(1);
|
||
}
|
||
*skewtab = 1;
|
||
for (i=skewtab+1; i<skewtab+ sectrk; i++) {
|
||
*i = *(i-1) + skew;
|
||
if (*i > sectrk) {
|
||
*i -= sectrk;
|
||
L1:
|
||
for (j=skewtab; j<i; j++) {
|
||
if (*j == *i) break;
|
||
}
|
||
if (j < i ) {
|
||
++*i;
|
||
goto L1;
|
||
}
|
||
}
|
||
}
|
||
}
|