U0 RawAccess(I64 drv_let=0) { CDrive *drive = Letter2Drive(drv_let); CBlkDev *bd = Letter2BlkDev(drv_let); I64 blk, old_offset, old_size; U8 *buf = MAlloc(BLK_SIZE); DriveRep; PressAKey; ClassRep(drive); PressAKey; ClassRep(bd); PressAKey; //Temporarily change partition range to full device. //Normally, you are limited to just your partition. //This is obviously dangerous! old_offset =drive->drv_offset; old_size =drive->size; drive->drv_offset = 0; drive->size = bd->max_blk + 1; try { blk = I64Get("Blk to Read: ", old_offset, 0, bd->max_blk); BlkRead(drive, buf, blk, 1); D(buf, BLK_SIZE); } catch PutExcept; drive->drv_offset = old_offset; drive->size = old_size; Free(buf); } RawAccess; //See BlkRead(), BlkWrite(), DriveLock(), DriveUnlock() //DBlk(), DClus(), BlkDevLock() and BlkDevUnlock().