Repository navigation
Expand file tree
/
Copy pathdisk_l.z80
More file actions
101 lines (80 loc) · 4.35 KB
/
Copy pathdisk_l.z80
File metadata and controls
101 lines (80 loc) · 4.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
; SAM Coupé Disk Hardware Ports & Mappings
; ----------------------------------------
;
; Author: Simon Cooke (spectecjr@gmail.com)
; Licensed under the MIT license (see LICENSE file).
disk_0_base: EQU 224
disk_1_base: EQU 240
disk_status: EQU 0
disk_command: EQU 0
disk_track: EQU 1
disk_sector: EQU 2
disk_data: EQU 3
disk_side_2: EQU 4
disk_0_status: EQU disk_0_base + disk_status
disk_0_command: EQU disk_0_base + disk_command
disk_0_track: EQU disk_0_base + disk_track
disk_0_sector: EQU disk_0_base + disk_sector
disk_0_data: EQU disk_0_base + disk_data
disk_1_status: EQU disk_1_base + disk_status
disk_1_command: EQU disk_1_base + disk_command
disk_1_track: EQU disk_1_base + disk_track
disk_1_sector: EQU disk_1_base + disk_sector
disk_1_data: EQU disk_1_base + disk_data
; VL1772-02 Disk Controller Commands
; Datasheet: https://datasheetspdf.com/datasheet/VL1772-02.html
disk_command_mask: EQU %11110000
; Type I commands
disk_cmd_restore: EQU %00000000
disk_cmd_seek: EQU %00010000
; Type I Stepping Commands
disk_cmd_step: EQU %00100000
disk_cmd_step_in: EQU %01000000
disk_cmd_step_out: EQU %01100000
; Stepping rate for type I commands:
disk_cmd_stepping_rate_mask: EQU %00000011
disk_cmd_stepping_rate_6ms: EQU %00000000
disk_cmd_stepping_rate_12ms: EQU %00000001
disk_cmd_stepping_rate_2ms: EQU %00000010
; NOTE: SAM Drives support 3ms (according to SAMDOS2)
disk_cmd_stepping_rate_3ms: EQU %00000011
; Type 1,2,3 Command Spin-Up flags
disk_cmd_enable_spin_up_sequence: EQU 0
disk_cmd_disable_spin_up_sequence: EQU %00001000
; Type 1 Track Verify flags
disk_cmd_type1_verify_track_disabled: EQU 0
disk_cmd_type1_verify_track_enabled: EQU %00000100
disk_cmd_update_track_register_on_step: EQU %00010000
disk_cmd_dont_update_track_register_on_step: EQU %00000000
disk_cmd_read_sector: EQU %10000000
disk_cmd_read_multi_sector: EQU %10001000
disk_cmd_write_sector: EQU %10100000
disk_cmd_write_multi_sector: EQU %10110000
disk_cmd_type2_15ms_settling_delay: EQU %00000100
disk_cmd_type2_no_settling_delay: EQU %00000000
disk_cmd_enable_write_precomp: EQU %00000010
disk_cmd_disable_write_precomp: EQU 0
disk_cmd_write_sector_mark_valid: EQU %00000000
disk_cmd_write_sector_mark_deleted: EQU %00000001
; Type III Commands
disk_cmd_read_address: EQU %11000000
disk_cmd_read_track: EQU %11100000
disk_cmd_write_track: EQU %11110000
; Type IV Commands
disk_cmd_terminate_no_interrupt: EQU %11010000
disk_cmd_interrupt_on_index_pulse: EQU %11010100
disk_cmd_immediate_interrupt: EQU %11011000
; Status bits
disk_status_motor_on: EQU %10000000
disk_status_write_protect: EQU %01000000
disk_status_record_type: EQU %00100000
disk_status_record_deleted: EQU %00100000
disk_status_record_valid: EQU %00000000
disk_status_spin_up: EQU %00100000
disk_status_record_not_found: EQU %00010000
disk_status_crc_error: EQU %00001000
disk_status_lost_data: EQU %00000100
disk_status_track_zero: EQU %00000100
disk_status_data_ready: EQU %00000010 ; Data Request Index
disk_status_index_pulse: EQU %00000010
disk_status_busy: EQU %00000001 ; Command is running