ATA_defs.asm 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. ;;; ----------------------------------------------------------------------
  2. ;;; ATA IDE drive stuff
  3. IDE_REG_data = 0
  4. IDE_REG_error = 1 ; when reading
  5. IDE_REG_count = 2 ; number of sectors to read/write
  6. IDE_REG_LBA0 = 3
  7. IDE_REG_LBA8 = 4
  8. IDE_REG_LBA16 = 5
  9. IDE_REG_LBA24 = 6 ; b4 = drive#=0, b6=LBA=1, b5+7=1
  10. IDE_REG_sector = 3
  11. IDE_REG_cylinderlo = 4
  12. IDE_REG_cylinderhi = 5
  13. IDE_REG_head = 6 ; b4 = drive#, b6=LBA=0
  14. IDE_REG_status = 7 ; when reading
  15. IDE_REG_command = 7 ; when writing
  16. IDE_head_drive = 16 ; various bit fields
  17. IDE_head_LBA = 64
  18. IDE_head_extras = 128 + 32 ; required MFM codes
  19. IDE_status_Busy = 128
  20. IDE_status_Ready = 64
  21. IDE_status_DataReq = 8
  22. IDE_status_Err = 1
  23. IDE_DCR_SRST = $04
  24. IDE_CMD_IdentifyDrive = $EC
  25. IDE_CMD_Idle = $95
  26. IDE_CMD_InitDriveParams = $91
  27. IDE_CMD_ReadSector = $20
  28. IDE_CMD_Seek = $70
  29. IDE_CMD_Recalibrate = $10
  30. IDE_CMD_SetFeatures = $EF
  31. IDE_CMD_WriteSector = $30
  32. ;;; ----------------------------------------------------------------------