The Pro Audio Spectrum SCSI controller is now based on the Trantor T128 (which it is considerable closer to), rather than on the 53c400.

This commit is contained in:
OBattler
2024-05-06 13:09:08 +02:00
parent ccc788ff98
commit 4c84cccae7
11 changed files with 165 additions and 262 deletions

View File

@@ -309,6 +309,7 @@
#define BUS_BSY 0x40
#define BUS_RST 0x80
#define BUS_ACK 0x200
/* TODO: Why is this defined to the same value as BUS_ACK?! */
#define BUS_ATN 0x200
#define BUS_ARB 0x8000
#define BUS_SETDATA(val) ((uint32_t) val << 16)

View File

@@ -109,14 +109,10 @@ typedef struct ncr_t {
int data_pos;
int irq;
int simple_pseudo_dma;
uint32_t block_count;
double period;
void *priv;
void (*dma_init_ext)(void *priv, void *ext_priv, int send);
void (*dma_mode_ext)(void *priv, void *ext_priv);
int (*dma_send_ext)(void *priv, void *ext_priv);
int (*dma_initiator_receive_ext)(void *priv, void *ext_priv);
@@ -131,11 +127,11 @@ extern uint32_t ncr5380_get_bus_host(ncr_t *ncr);
extern void ncr5380_bus_read(ncr_t *ncr);
extern void ncr5380_bus_update(ncr_t *ncr, int bus);
extern void ncr5380_write(uint16_t port, uint8_t val, ncr_t *ncr);
extern uint8_t ncr5380_drq(ncr_t *ncr);
extern uint8_t ncr5380_read(uint16_t port, ncr_t *ncr);
#ifdef EMU_DEVICE_H
extern const device_t scsi_lcs6821n_device;
extern const device_t scsi_pas_device;
extern const device_t scsi_rt1000b_device;
extern const device_t scsi_rt1000mc_device;
extern const device_t scsi_t128_device;
@@ -145,7 +141,6 @@ extern const device_t scsi_ls2000_device;
#if defined(DEV_BRANCH) && defined(USE_SUMO)
extern const device_t scsi_scsiat_device;
#endif
extern const device_t scsi_pas_device;
#endif
#endif /*SCSI_NCR5380_H*/

View File

@@ -18,45 +18,34 @@
* Copyright 2017-2024 TheCollector1995.
*/
#ifndef SCSI_NCR53C400_H
#define SCSI_NCR53C400_H
#ifndef SCSI_T128_H
#define SCSI_T128_H
typedef struct ncr53c400_t {
rom_t bios_rom;
mem_mapping_t mapping;
typedef struct t128_t {
ncr_t ncr;
rom_t bios_rom;
mem_mapping_t mapping;
uint8_t ctrl;
uint8_t status;
uint8_t buffer[512];
uint8_t int_ram[0x40];
uint8_t ext_ram[0x600];
uint8_t ext_ram[0x80];
uint8_t block_count;
int block_loaded;
int pos, host_pos;
uint32_t rom_addr;
uint16_t base;
int8_t type;
uint8_t block_count;
uint8_t status_ctrl;
int simple_ctrl;
int block_count_loaded;
int buffer_pos;
int buffer_host_pos;
int busy;
int bios_enabled;
uint8_t pos_regs[8];
pc_timer_t timer;
} ncr53c400_t;
} t128_t;
#define CTRL_DATA_DIR 0x40
#define STATUS_BUFFER_NOT_READY 0x04
#define STATUS_5380_ACCESSIBLE 0x80
extern void t128_write(uint32_t addr, uint8_t val, void *priv);
extern uint8_t t128_read(uint32_t addr, void *priv);
extern void ncr53c400_simple_write(uint8_t val, void *priv);
extern void ncr53c400_write(uint32_t addr, uint8_t val, void *priv);
extern uint8_t ncr53c400_simple_read(void *priv);
extern uint8_t ncr53c400_read(uint32_t addr, void *priv);
extern void ncr53c400_callback(void *priv);
extern void t128_callback(void *priv);
#endif /*SCSI_NCR53C400_H*/
#endif /*SCSI_T128_H*/