#include <exec/types.h>
#include <exec/memory.h>
#include <devices/trackdisk.h>

main()
{
  struct MsgPort *mport;
  struct IOStdReq *iorequest;
  LONG *buffer;
  char taste;

  buffer = (LONG*)AllocMem(7*512L,MEMF_CHIP);
  mport = CreatePort (0L,0L);
  iorequest = CreateStdIO(mport);
  OpenDevice(TD_NAME,0L,iorequest,0L);
   /* Zuerst muß der Motor eingeschaltet werden */
    iorequest->io_Command = TD_MOTOR;
    iorequest->io_Length = 1L;         /* 1=an  0=aus */
    DoIO(iorequest);
   /* Nun sieben Blocks lesen */
    iorequest->io_Command = CMD_READ;
    iorequest->io_Length = TD_SECTOR * 7;
    iorequest->io_Data = buffer;
    iorequest->io_Offset = TD_SECTOR * 400;
    DoIO(iorequest);
   /* Auf eine Taste warten */
    printf("Bitte eine Taste drÜcken...\n");
    scanf("%c",&taste);
   /* Die gelesenen Blocks zurÜckschreiben */
    iorequest->io_Command = CMD_WRITE;
    iorequest->io_Length = TD_SECTOR * 7;
    iorequest->io_Data = buffer;
    iorequest->io_Offset = TD_SECTOR * 400;
    DoIO(iorequest);
   /* Zum Schluß den Motor ausschalten */
    iorequest->io_Command = TD_MOTOR;
    iorequest->io_Length = 0L;
    DoIO(iorequest);
   /* Device schließen und Speicher freigeben */
  CloseDevice(iorequest);
  DeleteStdIO(iorequest);
  DeletePort(mport);
  FreeMem(buffer,7*512L);
}
