comparison lc8951.h @ 2144:10e4439d8f13

Fix speed of CDC to PCM RAM DMA
author Michael Pavone <pavone@retrodev.com>
date Sat, 26 Mar 2022 00:54:47 -0700
parents 28b6453cf7e3
children 8e6fb2c06024
comparison
equal deleted inserted replaced
2143:67f20f9188b0 2144:10e4439d8f13
8 typedef struct { 8 typedef struct {
9 lcd8951_byte_recv_fun byte_handler; 9 lcd8951_byte_recv_fun byte_handler;
10 void *handler_data; 10 void *handler_data;
11 uint32_t cycle; 11 uint32_t cycle;
12 uint32_t clock_step; 12 uint32_t clock_step;
13 uint32_t cycles_per_byte;
13 uint32_t decode_end; 14 uint32_t decode_end;
14 uint32_t transfer_end; 15 uint32_t transfer_end;
16 uint32_t next_byte_cycle;
15 uint16_t sector_counter; 17 uint16_t sector_counter;
16 18
17 uint8_t buffer[0x4000]; 19 uint8_t buffer[0x4000];
18 20
19 uint8_t regs[16]; 21 uint8_t regs[16];
29 uint8_t ar_mask; 31 uint8_t ar_mask;
30 uint8_t sync_counter; 32 uint8_t sync_counter;
31 } lc8951; 33 } lc8951;
32 34
33 void lc8951_init(lc8951 *context, lcd8951_byte_recv_fun byte_handler, void *handler_data); 35 void lc8951_init(lc8951 *context, lcd8951_byte_recv_fun byte_handler, void *handler_data);
36 void lc8951_set_dma_multiple(lc8951 *context, uint32_t multiple);
34 void lc8951_run(lc8951 *context, uint32_t cycle); 37 void lc8951_run(lc8951 *context, uint32_t cycle);
35 void lc8951_reg_write(lc8951 *context, uint8_t value); 38 void lc8951_reg_write(lc8951 *context, uint8_t value);
36 uint8_t lc8951_reg_read(lc8951 *context); 39 uint8_t lc8951_reg_read(lc8951 *context);
37 void lc8951_ar_write(lc8951 *context, uint8_t value); 40 void lc8951_ar_write(lc8951 *context, uint8_t value);
38 void lc8951_write_byte(lc8951 *context, uint32_t cycle, int sector_offset, uint8_t byte); 41 void lc8951_write_byte(lc8951 *context, uint32_t cycle, int sector_offset, uint8_t byte);