4 * This file defines the command codes and any other flags used by the
5 * GD-Rom ATAPI packet commands.
7 * Copyright (c) 2005 Nathan Keynes.
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
20 #ifndef lxdream_packet_H
21 #define lxdream_packet_H 1
24 * Valid command codes (hex):
31 * 15 Read session info
52 #define PKT_CMD_TEST_READY 0x00
53 #define PKT_CMD_DRIVE_STATUS 0x10
54 #define PKT_CMD_MODE_SENSE 0x11
55 #define PKT_CMD_MODE_SELECT 0x12
56 #define PKT_CMD_SENSE 0x13
57 #define PKT_CMD_READ_TOC 0x14
58 #define PKT_CMD_SESSION_INFO 0x15
59 #define PKT_CMD_READ_SECTOR 0x30
60 #define PKT_CMD_PLAY_AUDIO 0x20 /* ? */
61 #define PKT_CMD_STATUS 0x40
62 #define PKT_CMD_SPIN_UP 0x70 /* ??? */
63 #define PKT_CMD_71 0x71 /* ??? seems to return garbage */
65 #define PKT_ERR_OK 0x0000
66 #define PKT_ERR_NODISC 0x3A02
67 #define PKT_ERR_BADCMD 0x2005
68 #define PKT_ERR_BADFIELD 0x2405
69 #define PKT_ERR_BADREAD 0x3002
70 #define PKT_ERR_BADREADMODE 0x6405 /* Illegal mode for this track */
71 #define PKT_ERR_READERROR 0x1103 /* Read failed due to uncorrectable error */
72 #define PKT_ERR_RESET 0x2906
75 #define READ_CD_MODE(x) ((x)&0x0E)
76 #define READ_CD_MODE_ANY 0x00
77 #define READ_CD_MODE_CDDA 0x02
78 #define READ_CD_MODE_1 0x04
79 #define READ_CD_MODE_2 0x06
80 #define READ_CD_MODE_2_FORM_1 0x08
81 #define READ_CD_MODE_2_FORM_2 0x0A
83 #define READ_CD_CHANNELS(x) ((x)&0xF0)
84 #define READ_CD_HEADER(x) ((x)&0x80)
85 #define READ_CD_SUBHEAD(x) ((x)&0x40)
86 #define READ_CD_DATA(x) ((x)&0x20)
87 #define READ_CD_RAW(x) ((x)&0x10)
89 #endif /* !lxdream_packet_H */
.