The trackdisk device lets you add a software interrupt handler that will be Cause()'ed when a disk insert or remove occurs. Within the handler, you may only call the status commands that can use IOF_QUICK. You add a software interrupt handler by passing an ioexttd to the device with a pointer to an Interrupt structure set in io_Data, the length of the structure set in io_Length and td_addchangeint set in io_command. DiskIO->iotd_Req.io_Length = sizeof(struct Interrupt) DiskIO->iotd_Req.io_Data = (APTR)Disk_Interrupt; DiskIO->iotd_Req.io_Command = TD_ADDCHANGEINT; SendIO((struct IORequest *)DiskIO); Going, going, gone. ------------------- This command does not return when executed. It holds onto the IORequest until the td_remchangeint command is executed with that same IORequest. Hence, you must use SendIO() with this command.