|
|
Power 6/32 Unix version 1.21
#include "vdfmt.h"
#include "cmd.h"
/*
*/
to_track(daddr)
dskadr daddr;
{
return ((daddr.cylinder * CURRENT->ntrak) + daddr.track);
}
/*
*/
dskadr *from_track(trk)
int trk;
{
static dskadr temp;
temp.cylinder = trk / CURRENT->ntrak;
temp.track = trk % CURRENT->ntrak;
temp.sector = 0;
return &temp;
}
/*
*/
to_sector(daddr)
dskadr daddr;
{
return ((to_track(daddr) * CURRENT->nsec) + daddr.sector);
}
/*
*/
dskadr *from_sector(sec)
unsigned int sec;
{
static dskadr temp;
temp = *from_track((int)(sec / CURRENT->nsec));
temp.sector = sec % CURRENT->nsec;
return &temp;
}
/*
**
*/
print_unix_block(dskaddr)
dskadr dskaddr;
{
char fs;
int blk;
int sec_per_blk=DEV_BSIZE / CURRENT->secsize;
indent();
blk = to_sector(dskaddr) / sec_per_blk;
print("** Warning - Unable to relocate sector %d:\n",to_sector(dskaddr));
indent();
print("to map out using BADSECT use the following values:\n");
indent();
for(fs = 0; fs < 8; fs++) {
int s, l;
s = CURRENT->partition[fs].par_start;
l = CURRENT->partition[fs].par_len;
if((blk < (s+l)) && (blk >= s)) {
print("On the '%c' Partition use block %d.\n",
fs+'a', blk-s);
}
}
exdent(3);
}
dskadr *from_unix(par, block)
unsigned char par;
unsigned int block;
{
unsigned int sector;
register int fs;
static dskadr dskaddr;
fs = tolower(par) - 'a';
if((fs < 8) && (block <= CURRENT->partition[fs].par_len)) {
sector = CURRENT->partition[fs].par_start;
sector += block;
sector *= DEV_BSIZE;
sector /= CURRENT->secsize;
dskaddr = *from_sector(sector);
}
else {
dskaddr.cylinder = -1;
dskaddr.track = -1;
dskaddr.sector = -1;
}
return &dskaddr;
}
blkzero(addr, len)
register char *addr;
register int len;
{
while(len--)
*(addr++) = (char)0;
}
blkcopy(from, to, len)
register char *from;
register char *to;
register int len;
{
while(len--)
*(to++) = *(from++);
}
boolean blkcmp(a, b, len)
register char *a;
register char *b;
register int len;
{
while(len--) {
if(*(a++) != *(b++))
return false;
}
return true;
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.