summary refs log tree commit diff
path: root/src/drive.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/drive.h')
-rw-r--r--src/drive.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/drive.h b/src/drive.h
index b9fb1f2..c41712a 100644
--- a/src/drive.h
+++ b/src/drive.h
@@ -11,14 +11,14 @@ extern const uint8_t BITRATE_PER_TRACK[40];
 extern const uint8_t GCR_CONV[16];
 
 typedef struct drive_s {
-	bool spinning;
+	volatile bool spinning;
 	uint8_t timer;
 	uint8_t *image;
 
-	uint8_t track;
-	uint8_t halftrack;
-	uint32_t image_ptr;
-	uint8_t sector;
+	volatile uint8_t track;
+	volatile uint8_t halftrack;
+	volatile uint32_t image_ptr;
+	volatile uint8_t sector;
 	uint8_t byte;
 
 	uint16_t gcr_word;
@@ -33,10 +33,10 @@ typedef struct drive_s {
 
 	uint8_t current_idx;
 	uint8_t lookahead_idx;
-	uint16_t unlatched[DRIVE_LOOKAHEAD];
-	uint16_t latched[DRIVE_LOOKAHEAD];
-	bool sync[DRIVE_LOOKAHEAD];
-	bool byte_ready[DRIVE_LOOKAHEAD];
+	volatile uint16_t unlatched[DRIVE_LOOKAHEAD];
+	volatile uint16_t latched[DRIVE_LOOKAHEAD];
+	volatile bool sync[DRIVE_LOOKAHEAD];
+	volatile bool byte_ready[DRIVE_LOOKAHEAD];
 } drive_t;
 
 void drive_init(drive_t *drive);