コード例 #1
0
ファイル: Geometry.cpp プロジェクト: cterron/amstrad-toolkit
STDMETHODIMP CGeometry::lt2pt(long lsect, long *cyl, short *head)
{
	HRESULT hr;
	dsk_pcyl_t c;
	dsk_phead_t h;
	hr = MapError(dg_lt2pt(&m_g, lsect, &c, &h));
	*cyl = c;
	*head = h;
	return hr;
}
コード例 #2
0
ファイル: dsksecid.c プロジェクト: charlierobson/EightyOne
LDPUBLIC32 dsk_err_t LDPUBLIC16 dsk_lsecid(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
                                dsk_ltrack_t track, DSK_FORMAT *result)
{
        dsk_err_t e;
        dsk_pcyl_t cyl;
        dsk_psect_t sec;
 
        e = dg_lt2pt(geom, track, &cyl, &sec);
        if (e) return e;
        return dsk_psecid(self, geom, cyl, sec, result);   
}
コード例 #3
0
ファイル: dskseek.c プロジェクト: charlierobson/EightyOne
LDPUBLIC32 dsk_err_t LDPUBLIC16 dsk_lseek(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
                                dsk_ltrack_t track)
{
        dsk_err_t e;
        dsk_pcyl_t cyl;
        dsk_phead_t head;
 
        e = dg_lt2pt(geom, track, &cyl, &head);
        if (e) return e;
        return dsk_pseek(self, geom, cyl, head);
}
コード例 #4
0
ファイル: dsktrkid.c プロジェクト: lipro/libdsk
LDPUBLIC32 dsk_err_t  LDPUBLIC16 dsk_ltrackids(DSK_PDRIVER self,
				const DSK_GEOMETRY *geom,
				dsk_ltrack_t track,
				dsk_psect_t *count, DSK_FORMAT **result)
{
        dsk_err_t e;
        dsk_pcyl_t cyl;
        dsk_psect_t sec;
 
        e = dg_lt2pt(geom, track, &cyl, &sec);
        if (e) return e;
        return dsk_ptrackids(self, geom, cyl, sec, count, result);   

}
コード例 #5
0
ファイル: dsklphys.c プロジェクト: libretro/81-libretro
/* Convert logical sector to physical */
LDPUBLIC32 dsk_err_t LDPUBLIC16  dg_ls2ps(const DSK_GEOMETRY *self,
        /* in */	dsk_lsect_t logical,
        /* out */	dsk_pcyl_t *cyl, dsk_phead_t *head, dsk_psect_t *sec)
{
    if (!self) return DSK_ERR_BADPTR;
    if (!self->dg_sectors || !self->dg_heads) return DSK_ERR_DIVZERO;

    if (logical >= self->dg_cylinders * self->dg_heads * self->dg_sectors)
        return DSK_ERR_BADPARM;

    if (sec) *sec = (dsk_psect_t)((logical % self->dg_sectors) + self->dg_secbase);

    logical /= self->dg_sectors;
    return dg_lt2pt(self, (dsk_ltrack_t)logical, cyl, head);
}