home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #include <exec/types.h>
- #include <exec/io.h>
- #include <exec/execbase.h>
- #include <exec/nodes.h>
- #include <exec/memory.h>
- #include <exec/libraries.h>
- #include <workbench/workbench.h>
- #include <workbench/startup.h>
- #include <devices/trackdisk.h>
- #include <devices/scsidisk.h>
- #include <devices/timer.h>
- #include <devices/inputevent.h>
- #include <libraries/dos.h>
- #include <clib/alib_protos.h>
- #include <clib/exec_protos.h>
- #include <clib/commodities_protos.h>
- #include <clib/wb_protos.h>
- #include <clib/intuition_protos.h>
- #include <intuition/intuition.h>
- #include <intuition/gadgetclass.h>
- #include <graphics/displayinfo.h>
-
- #define VERSION "1.2"
-
- #define BYTES_PER_LINE 16
- #define SENSE_LEN 252
- #define MAX_DATA_LEN 252
- #define MAX_TOC_LEN 804 /* max TOC size = 100 TOC track descriptors */
- #define PAD 0
- #define LINE_BUF (128)
- #define NUM_OF_CDDAFRAMES 75 /* 75 frames per second audio */
- #define CDDALEN 2448 /* 1 frame has max. 2448 bytes (subcode 2) */
-
- #define OFFS_KEY 2
- #define OFFS_CODE 12
-
- typedef struct MsgPort MSGPORT;
- typedef struct IOStdReq IOSTDREQ;
- typedef struct List LIST;
- typedef struct Node NODE;
- typedef struct SCSICmd SCSICMD;
-
- typedef struct
- {
- BYTE code;
- UBYTE *ptr;
- } IDTOSTRING;
-
- typedef struct
- {
- UBYTE opcode;
- UBYTE b1;
- UBYTE b2;
- UBYTE b3;
- UBYTE b4;
- UBYTE control;
- } SCSICMD6;
-
- typedef struct
- {
- UBYTE opcode;
- UBYTE b1;
- UBYTE b2;
- UBYTE b3;
- UBYTE b4;
- UBYTE b5;
- UBYTE b6;
- UBYTE b7;
- UBYTE b8;
- UBYTE control;
- } SCSICMD10;
-
- typedef struct
- {
- UBYTE opcode;
- UBYTE b1;
- UBYTE b2;
- UBYTE b3;
- UBYTE b4;
- UBYTE b5;
- UBYTE b6;
- UBYTE b7;
- UBYTE b8;
- UBYTE b9;
- UBYTE b10;
- UBYTE control;
- } SCSICMD12;
-
- #define SCSI_CMD_TUR 0x00
- #define SCSI_CMD_RZU 0x01
- #define SCSI_CMD_RQS 0x03
- #define SCSI_CMD_FMU 0x04
- #define SCSI_CMD_RAB 0x07
- #define SCSI_CMD_RD 0x08
- #define SCSI_CMD_WR 0x0A
- #define SCSI_CMD_SK 0x0B
- #define SCSI_CMD_INQ 0x12
- #define SCSI_CMD_MSL 0x15
- #define SCSI_CMD_RU 0x16
- #define SCSI_CMD_RLU 0x17
- #define SCSI_CMD_MSE 0x1A
- #define SCSI_CMD_SSU 0x1B
- #define SCSI_CMD_RDI 0x1C
- #define SCSI_CMD_SDI 0x1D
- #define SCSI_CMD_PAMR 0x1E
- #define SCSI_CMD_RCP 0x25
- #define SCSI_CMD_RXT 0x28
- #define SCSI_CMD_WXT 0x2A
- #define SCSI_CMD_SKX 0x2B
- #define SCSI_CMD_WVF 0x2E
- #define SCSI_CMD_VF 0x2F
- #define SCSI_CMD_RDD 0x37
- #define SCSI_CMD_WDB 0x3B
- #define SCSI_CMD_RDB 0x3C
-
- #define SCSI_CMD_COPY 0x18
- #define SCSI_CMD_COMPARE 0x39
- #define SCSI_CMD_COPYANDVERIFY 0x3A
- #define SCSI_CMD_CHGEDEF 0x40
- #define SCSI_CMD_READSUBCHANNEL 0x42
- #define SCSI_CMD_READTOC 0x43
- #define SCSI_CMD_READHEADER 0x44
- #define SCSI_CMD_PLAYAUDIO12 0xA5
- #define SCSI_CMD_PLAYAUDIOTRACKINDEX 0x48
- #define SCSI_CMD_PAUSERESUME 0x4B
-
- extern struct Screen *Scr;
- extern struct Window *MainWnd;
- extern struct TextAttr topaz8;
- extern APTR VisualInfo;
-
- extern UBYTE TOC_NumTracks;
- extern UBYTE TOC_Flags[];
- extern ULONG TOC_Addr[];
- extern char *TOC_Title[];
- extern char *TOC_CDTitle;
- extern char *TOC_CDInterpret;
- extern char TOC_TitleStrs[];
- extern char TOC_CDID[];
- extern char SongPath[128];
- extern BYTE Program[100][9];
- extern char FontName[];
- extern UWORD offy;
-