forked from MirrorRepos/RomWBW
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.3 KiB
72 lines
1.3 KiB
/**************************************************************/
|
|
/* sectorio.c 7/30/2012 dwg - read and write physical sectors */
|
|
/**************************************************************/
|
|
|
|
/* 7/30/2012 dwg - wrsector now has c=0 for WRITE call per Wayne */
|
|
|
|
#include "cpmbios.h"
|
|
#include "bioscall.h"
|
|
|
|
int rdsector(drive,track,sector,buffer)
|
|
int drive;
|
|
int track;
|
|
int sector;
|
|
unsigned int buffer;
|
|
{
|
|
ireghl = pSELDSK;
|
|
iregbc = drive;
|
|
iregde = 0;
|
|
bioscall();
|
|
|
|
ireghl = pSETTRK;
|
|
iregbc = track;
|
|
bioscall();
|
|
|
|
ireghl = pSETSEC;
|
|
iregbc = sector;
|
|
bioscall();
|
|
|
|
ireghl = pSETDMA;
|
|
iregbc = buffer;
|
|
bioscall();
|
|
|
|
ireghl = pREAD;
|
|
bioscall();
|
|
return irega;
|
|
}
|
|
|
|
|
|
int wrsector(drive,track,sector,buffer)
|
|
int drive;
|
|
int track;
|
|
int sector;
|
|
unsigned int buffer;
|
|
{
|
|
ireghl = pSELDSK;
|
|
iregbc = drive;
|
|
iregde = 0;
|
|
bioscall();
|
|
|
|
ireghl = pSETTRK;
|
|
iregbc = track;
|
|
bioscall();
|
|
|
|
ireghl = pSETSEC;
|
|
iregbc = sector;
|
|
bioscall();
|
|
|
|
ireghl = pSETDMA;
|
|
iregbc = buffer;
|
|
bioscall();
|
|
|
|
ireghl = pWRITE;
|
|
iregbc = 0; /* default to 0 per wayne 7/30.2012 */
|
|
bioscall();
|
|
return irega;
|
|
}
|
|
|
|
|
|
/********************/
|
|
/* eof - sectorio.c */
|
|
/********************/
|
|
|