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 $BK,1$dangerous$BK,0$! 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 $LK,"BlkRead",A="MN:BlkRead"$(), $LK,"BlkWrite",A="MN:BlkWrite"$(), $LK,"DriveLock",A="MN:DriveLock"$(), $LK,"DriveUnlock",A="MN:DriveUnlock"$() //$LK,"DBlk",A="MN:DBlk"$(), $LK,"DClus",A="MN:DClus"$(), $LK,"BlkDevLock",A="MN:BlkDevLock"$() and $LK,"BlkDevUnlock",A="MN:BlkDevUnlock"$().