From 506f6160489a6a2727c8b16d97eb917f384f5959 Mon Sep 17 00:00:00 2001 From: Shamus Hammons Date: Wed, 25 May 2005 04:54:05 +0000 Subject: [PATCH] No longer needed (bye bye!) --- src/cdbios.cpp | 586 ------------------------------------------------- src/cdi.cpp | 318 --------------------------- 2 files changed, 904 deletions(-) delete mode 100644 src/cdbios.cpp delete mode 100644 src/cdi.cpp diff --git a/src/cdbios.cpp b/src/cdbios.cpp deleted file mode 100644 index d3e4161..0000000 --- a/src/cdbios.cpp +++ /dev/null @@ -1,586 +0,0 @@ -// -// CD BIOS core -// -// by David Raingeard -// GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Caz (BeOS) -// Cleanups by James L. Hammons -// -// David R.: -// 02/20/2002: Fixed sector to MSF conversion -// 02/19/2002: Fixed a bug in TOC encoding function -// - -#include "cdbios.h" - -/* Added by SDLEMU (http://sdlemu.ngemu.com */ -/* Some GCC UNIX includes */ -#ifdef __GCCUNIX__ -#include -#endif - -#define ERR_FLAG 0x3e00 -#define CD_TOC 0x2c00 -#define BIOS_VER 0x3004 - -#define CDBIOS_INIT 0 -#define CDBIOS_INITM 1 -#define CDBIOS_INITF 2 - -#define CD_INIT 0x3000 -#define CD_MODE 0x3006 -#define CD_ACK 0x300C -#define CD_JERI 0x3012 -#define CD_SPIN 0x3018 -#define CD_STOP 0x301E -#define CD_MUTE 0x3024 -#define CD_UMUTE 0x302A -#define CD_PAUSE 0x3030 -#define CD_UPAUSE 0x3036 -#define CD_READ 0x303C -#define CD_UREAD 0x3042 -#define CD_SETUP 0x3048 -#define CD_PTR 0x304E -#define CD_OSAMP 0x3054 -#define CD_GETTOC 0x306A -#define CD_INITM 0x3060 -#define CD_INITF 0x3066 - -char * cdbios_command[] = - { "init", "mode", "ack", "jeri", "spin", "stop", "mute", "umute", "pause", "upause", - "read", "uread", "setup", "ptr", "osamp", "getoc", "initm", "initf", - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - -#define CDROM_AUDIO_MODE 0 -#define CDROM_DATA_MODE 1 - -#define CDROM_SINGLE_SPEED 0 -#define CDROM_DOUBLE_SPEED 1 - -#define CDROM_STATUS_OK 0 -#define CDROM_STATUS_ERROR 1 - -uint32 cdrom_mode = CDROM_DATA_MODE; -uint32 cdrom_speed = CDROM_SINGLE_SPEED; -uint32 cdrom_oversample_factor = 1; -uint32 cdbios_session = 0; - -uint32 cdrom_destination_buffer_beginning; -uint32 cdrom_destination_buffer_end; -uint32 cdrom_time_code; -uint32 cdrom_seek_only; -uint32 cdrom_partition_marker; -uint32 cdrom_circular_buffer_size; - -uint32 cdbios_init_type; -uint32 * cdbios_sector_lut; -uint32 cdbios_init_done = 0; - - -void cdbios_build_sector_lut(void) -{ - uint32 last_sector=0; - int32 offset=0; - uint32 sector=0; - - s_cdi_track *last_track=&cdi_descriptor->sessions[cdi_descriptor->nb_of_sessions-1].tracks[cdi_descriptor->sessions[cdi_descriptor->nb_of_sessions-1].nb_of_tracks-1]; - - last_sector=last_track->start_lba+last_track->total_length-1; - - - cdbios_sector_lut=(uint32*)malloc((last_sector+1)*sizeof(uint32)); - memset(cdbios_sector_lut,0xff,(last_sector+1)*sizeof(uint32)); - - for (int session=0;sessionnb_of_sessions;session++) - { - for (int track=0;tracksessions[session].nb_of_tracks;track++) - { - s_cdi_track *current_track=&cdi_descriptor->sessions[session].tracks[track]; - - if (offset<((int32)(current_track->start_lba-1))) - { - fprintf(log_get(),"cdbios: postgap between %i and %i\n",offset,current_track->start_lba-1); - - // fill-in postgap - for (;offsetstart_lba;offset++) - { - cdbios_sector_lut[offset]=0xffffffff; - } - - } - fprintf(log_get(),"cdbios: data between %i and %i\n",offset,current_track->start_lba+current_track->total_length-1); - for (;offsetstart_lba+current_track->total_length;offset++) - { - cdbios_sector_lut[offset]=sector; - sector++; - } - - } - } - -} - -void cdbios_get_time(uint32 sectors, uint32 *mm, uint32 *ss, uint32 *ff) -{ - uint32 _sectors=sectors; - - uint32 _mm=(sectors/(60*75)); - sectors-=(_mm*(60*75)); - uint32 _ss=(sectors/75); - sectors-=(_ss*75); - uint32 _ff=sectors; - - *mm=_mm; - *ss=_ss; - *ff=_ff; - - -// fprintf(log_get(),"[%.2i:%.2i:%.2i]\n",_mm,_ss,_ff); -} - -void cdbios_encode_toc(void) -{ - int i; - uint32 base=CD_TOC; - - JaguarWriteByte(base++,0x00); - JaguarWriteByte(base++,0x00); - JaguarWriteByte(base++,0x01); - - int nbtracks=0; - for (i=0;inb_of_sessions;i++) - nbtracks+=cdi_descriptor->sessions[i].nb_of_tracks; - - JaguarWriteByte(base++,nbtracks+1); - JaguarWriteByte(base++,cdi_descriptor->nb_of_sessions); - - uint32 mm=0; - uint32 ss=0; - uint32 ff=0; - - cdbios_get_time(cdi_descriptor->sessions[cdi_descriptor->nb_of_sessions-1].tracks[cdi_descriptor->sessions[cdi_descriptor->nb_of_sessions-1].nb_of_tracks-1].start_lba+ - cdi_descriptor->sessions[cdi_descriptor->nb_of_sessions-1].tracks[cdi_descriptor->sessions[cdi_descriptor->nb_of_sessions-1].nb_of_tracks-1].length+ - cdi_descriptor->sessions[cdi_descriptor->nb_of_sessions-1].tracks[cdi_descriptor->sessions[cdi_descriptor->nb_of_sessions-1].nb_of_tracks-1].pregap_length, - &mm,&ss,&ff); - - JaguarWriteByte(base++,mm); - JaguarWriteByte(base++,ss); - JaguarWriteByte(base++,ff); - - int track_count=1; - for (i=0;inb_of_sessions;i++) - for (int j=0;jsessions[i].nb_of_tracks;j++) - { - s_cdi_track *track=&cdi_descriptor->sessions[i].tracks[j]; - -// fprintf(log_get(),"track %i\n",track_count); - - JaguarWriteByte(base++,track_count); - cdbios_get_time(track->start_lba+track->pregap_length,&mm,&ss,&ff); - JaguarWriteByte(base++,mm); - JaguarWriteByte(base++,ss); - JaguarWriteByte(base++,ff); - JaguarWriteByte(base++,i); - cdbios_get_time(track->length,&mm,&ss,&ff); - JaguarWriteByte(base++,mm); - JaguarWriteByte(base++,ss); - JaguarWriteByte(base++,ff); - - track_count++; - } - - cdi_tracks_count=track_count; - cdi_tracks=(s_cdi_track**)malloc(track_count*sizeof(s_cdi_track*)); - track_count=0; - for (i=0;inb_of_sessions;i++) - { - for (int j=0;jsessions[i].nb_of_tracks;j++) - { - cdi_tracks[track_count]=&cdi_descriptor->sessions[i].tracks[j]; - track_count++; - } - } -} - -void cdbios_decode_toc(void) -{ - uint32 addr=0x2c00; - uint32 nb_tracks; - - fprintf(log_get(),"cdbios: toc:\n"); - fprintf(log_get(),"cdbios:\n"); - addr+=2; - fprintf(log_get(),"cdbios: minimum track number: %i\n",JaguarReadByte(addr++)); - fprintf(log_get(),"cdbios: maximum track number: %i\n",nb_tracks=JaguarReadByte(addr++)); - fprintf(log_get(),"cdbios: number of sessions : %i\n",JaguarReadByte(addr++)); - fprintf(log_get(),"cdbios: start of last lead out time: %.2i:%.2i:%.2i\n", - JaguarReadByte(addr++),JaguarReadByte(addr++),JaguarReadByte(addr++)); - - uint32 mm,ss,ff; - - nb_tracks--; - - while (nb_tracks) - { - fprintf(log_get(),"cdbios:\n"); - fprintf(log_get(),"cdbios: track : %i\n",JaguarReadByte(addr++)); - - mm=JaguarReadByte(addr++); - ss=JaguarReadByte(addr++); - ff=JaguarReadByte(addr++); - - fprintf(log_get(),"cdbios: start at : %.2i:%.2i:%.2i\n",mm,ss,ff); - fprintf(log_get(),"cdbios: session : %i\n",JaguarReadByte(addr++)); - - mm=JaguarReadByte(addr++); - ss=JaguarReadByte(addr++); - ff=JaguarReadByte(addr++); - - fprintf(log_get(),"cdbios: duration : %.2i:%.2i:%.2i\n",mm,ss,ff); - nb_tracks--; - } -} - -void cd_bios_boot(char *filename) -{ - cd_bios_init(); - - - cdi_fp=cdi_open(filename); - cdi_descriptor=cdi_get_descriptor(cdi_fp,log_get()); - if (cdi_descriptor==0) - { - fprintf(log_get(),"cdi: bad image\n"); - cdi_close(cdi_fp); - return; - } - cdi_dump_descriptor(log_get(),cdi_descriptor); - cdbios_build_sector_lut(); - - uint8 *code=cdi_extract_boot_code(cdi_fp,cdi_descriptor); - - // copy the code to ram - for (uint32 i=0;i>1) & 0x01; - uint32 cdrom_speed = data & 0x01; - JaguarWriteWord(ERR_FLAG, CDROM_STATUS_OK); - -// fprintf(log_get(),"cdbios: %s\n",(cdrom_mode==CDROM_AUDIO_MODE)?"audio mode":"data mode"); -// fprintf(log_get(),"cdbios: %s\n",(cdrom_speed==CDROM_DOUBLE_SPEED)?"double speed":"single speed"); -} - -void cdbios_cmd_ack(void) -{ - JaguarWriteWord(ERR_FLAG,CDROM_STATUS_OK); -} - -void cdbios_cmd_jeri(void) -{ - JaguarWriteWord(ERR_FLAG,CDROM_STATUS_OK); -} - -void cdbios_cmd_spin(void) -{ -// uint16 spin=(1<<(s68000context.dreg[0]&0xffff)); - uint16 spin = (1 << (m68k_get_reg(NULL, M68K_REG_D0) & 0xFFFF)); - cdbios_session = spin; - JaguarWriteWord(ERR_FLAG, CDROM_STATUS_OK); -// fprintf(log_get(),"cdbios: switching to session %i\n",spin); -} - -void cdbios_cmd_stop(void) -{ - JaguarWriteWord(ERR_FLAG,CDROM_STATUS_OK); -} - -void cdbios_cmd_mute(void) -{ - JaguarWriteWord(ERR_FLAG,CDROM_STATUS_OK); -} - -void cdbios_cmd_umute(void) -{ - JaguarWriteWord(ERR_FLAG,CDROM_STATUS_OK); -} - -void cdbios_cmd_pause(void) -{ - JaguarWriteWord(ERR_FLAG,CDROM_STATUS_OK); -} - -void cdbios_cmd_upause(void) -{ - JaguarWriteWord(ERR_FLAG,CDROM_STATUS_OK); -} -void cdi_read_block(uint32 sector, uint8 *buffer, uint32 count) -{ - while (count) - { - cdi_load_sector(cdbios_sector_lut[sector],buffer); - buffer+=2352; - sector++; - count--; - } -} - -void cdbios_cmd_read(void) -{ - static uint8 cdbios_sector[2352]; - -/* cdrom_destination_buffer_beginning=s68000context.areg[0]; - cdrom_destination_buffer_end=s68000context.areg[1]; - cdrom_time_code=(s68000context.dreg[0])&0x7fffffff; - cdrom_seek_only=s68000context.dreg[0]&0x80000000;*/ - cdrom_destination_buffer_beginning = m68k_get_reg(NULL, M68K_REG_A0); - cdrom_destination_buffer_end = m68k_get_reg(NULL, M68K_REG_A1); - cdrom_time_code = m68k_get_reg(NULL, M68K_REG_D0) & 0x7FFFFFFF; - cdrom_seek_only = m68k_get_reg(NULL, M68K_REG_D0) & 0x80000000; - -/* cdrom_partition_marker=s68000context.dreg[1]; - if (s68000context.dreg[2]!=0) - cdrom_circular_buffer_size=(1<> 20) & 0x0F)) + ((cdrom_time_code >> 16) & 0x0F); - uint32 ss = (10 * ((cdrom_time_code >> 12) & 0x0F)) + ((cdrom_time_code >> 8) & 0x0F); - uint32 ff = (10 * ((cdrom_time_code >> 4) & 0x0F)) + ((cdrom_time_code >> 0) & 0x0F); - - fprintf(log_get(),"cdbios: read(0x%.8x, 0x%.8x, %.2i:%.2i:%.2i, %i) %s\n", - cdrom_destination_buffer_beginning, - cdrom_destination_buffer_end, - mm,ss,ff, - cdrom_circular_buffer_size,cdrom_seek_only?"(seek only)":""); - - if (!cdrom_seek_only) - { - if (cdbios_init_type==CDBIOS_INITM) - { - fprintf(log_get(),"cdbios: partition marker: %c%c%c%c (0x%.8x)\n", - ((cdrom_partition_marker>>24)&0xff), - ((cdrom_partition_marker>>16)&0xff), - ((cdrom_partition_marker>>8)&0xff), - (cdrom_partition_marker&0xff), - cdrom_partition_marker - ); - } - if (((int32)cdrom_circular_buffer_size)==-1) - cdrom_circular_buffer_size=0xffffffff; - - uint32 track_offset=((ss+(60*mm))*75)+ff; - - fprintf(log_get(),"cdbios: track offset: %i\n",track_offset); - uint32 nb_sectors=(cdrom_destination_buffer_end-cdrom_destination_buffer_beginning)/2352; - uint32 reste=(cdrom_destination_buffer_end-cdrom_destination_buffer_beginning)%2352; - uint32 buffer_offset=0; - uint32 nb_bytes_to_read=cdrom_destination_buffer_end-cdrom_destination_buffer_beginning+1; - - if (cdbios_init_type==CDBIOS_INITF) - { -// if (cdrom_destination_buffer_beginning==0x00046000) -// return; - - uint8 *buffer=(uint8*)malloc((nb_sectors+1)*2352); - cdi_read_block(track_offset,buffer,nb_sectors+1); - for (uint32 k=0;k>24)&0xff))&& - (alias[1]==((cdrom_partition_marker>>16)&0xff))&& - (alias[2]==((cdrom_partition_marker>>8)&0xff))&& - (alias[3]==((cdrom_partition_marker>>0)&0xff)) - ) - { - marker_count--; - if (marker_count) - { - alias+=3; - } - else - { - exit(0); - alias+=4; - for (uint32 k=0;k -#include -#include - -#define O_BINARY (0) -#endif - -#define CDI_V2 0x80000004 -#define CDI_V3 0x80000005 -#define CDI_V35 0x80000006 - -static uint8 cdi_track_start_mark[10] = - { 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF }; - -int cdi_fp; -uint32 cdi_load_address; -uint32 cdi_code_length; -s_cdi_descriptor * cdi_descriptor; -s_cdi_track ** cdi_tracks; -uint32 cdi_tracks_count; - - -int cdi_open(char * path) -{ - WriteLog("CDI: Opening %s\n", path); - return open(path, O_BINARY | O_RDONLY); -} - -void cdi_close(int fp) -{ - WriteLog("CDI: Closing\n"); - close(fp); -} - - -s_cdi_descriptor * cdi_get_descriptor(int fp, FILE * stdfp) -{ - s_cdi_descriptor * descriptor; - uint32 previous_position = 0; - - if (fp == -1) - return 0; - - descriptor = (s_cdi_descriptor *)malloc(sizeof(s_cdi_descriptor)); - - if (descriptor == NULL) - return 0; - - lseek(fp, 0, SEEK_END); - descriptor->length = lseek(fp, 0LL, SEEK_CUR); - - if (descriptor->length < 8) - { - if (stdfp) - fprintf(stdfp, "CDI: Image is too short (%i bytes)\n", (int)descriptor->length); - free(descriptor); - return 0; - } - - lseek(fp, descriptor->length - 8, SEEK_SET); - read(fp, &descriptor->version, 4); - read(fp, &descriptor->header_offset, 4); - lseek(fp, descriptor->header_offset, SEEK_SET); - read(fp, &descriptor->nb_of_sessions, 2); - - descriptor->sessions=(s_cdi_session *)malloc(descriptor->nb_of_sessions * sizeof(s_cdi_session)); - - if (descriptor->sessions == NULL) - { - free(descriptor); - return 0; - } - - if (stdfp) - fprintf(stdfp, "CDI: %i sessions\n", descriptor->nb_of_sessions); - - uint32 track_position = 0; - for(uint16 session=0; sessionnb_of_sessions; session++) - { - read(fp, &descriptor->sessions[session].nb_of_tracks, 2); - descriptor->sessions[session].tracks = (s_cdi_track *)malloc(descriptor->sessions[session].nb_of_tracks * sizeof(s_cdi_track)); - - if (stdfp) - fprintf(stdfp, "CDI:\nCDI: Reading session %i (%i tracks)\n", session, descriptor->sessions[session].nb_of_tracks); - - for (uint16 track=0; tracksessions[session].nb_of_tracks; track++) - { - static char current_start_mark[10]; - s_cdi_track * current_track=&descriptor->sessions[session].tracks[track]; - if (stdfp) - fprintf(stdfp, "CDI:\nCDI: \t\tReading track %i\n",track); - - uint32 temp_value; - - read(fp, &temp_value, 4); - - if (temp_value != 0) - lseek(fp, 8, SEEK_CUR); // extra data (DJ 3.00.780 and up) - - read(fp, current_start_mark, 10); - - if (memcmp(cdi_track_start_mark, current_start_mark, 10)) - { - if (stdfp) - fprintf(stdfp, "CDI: Could not find the track start mark\n"); - return 0; - } - - read(fp, current_start_mark, 10); - - if (memcmp(cdi_track_start_mark, current_start_mark, 10)) - { - if (stdfp) - fprintf(stdfp, "CDI: Could not find the track start mark\n"); - return 0; - } - - lseek(fp, 4, SEEK_CUR); - read(fp, ¤t_track->filename_length, 1); - lseek(fp, current_track->filename_length, SEEK_CUR); - - lseek(fp, 11, SEEK_CUR); - lseek(fp, 4, SEEK_CUR); - lseek(fp, 4, SEEK_CUR); - read(fp, &temp_value, 4); - - if (temp_value == 0x80000000) - lseek(fp, 8, SEEK_CUR); // DJ4 - - lseek(fp, 2, SEEK_CUR); - - read(fp, ¤t_track->pregap_length, 4); - - if (current_track->pregap_length != 150) - WriteLog("CDI: Warning: Pregap different than 150\n"); - - read(fp, ¤t_track->length, 4); - - if (stdfp) - fprintf(stdfp, "CDI: \t\t\tPregap length: %i\n", (int)current_track->pregap_length); - if (stdfp) - fprintf(stdfp, "CDI: \t\t\tLength: %i\n", (int)current_track->length); - - lseek(fp, 6, SEEK_CUR); - - read(fp, ¤t_track->mode, 4); - - if (stdfp) - fprintf(stdfp, "CDI: \t\t\tMode: %i\n", (int)current_track->mode); - - lseek(fp, 12, SEEK_CUR); - read(fp, ¤t_track->start_lba, 4); - - if (stdfp) - fprintf(stdfp, "CDI: \t\t\tStart LBA: %i\n", (int)current_track->start_lba); - - read(fp, ¤t_track->total_length, 4); - - if (stdfp) - fprintf(stdfp, "CDI: \t\t\tTotal length: %i\n", (int)current_track->total_length); - - lseek(fp, 16, SEEK_CUR); - read(fp, ¤t_track->sector_size_value, 4); - - if (stdfp) - fprintf(stdfp, "CDI: \t\t\tSector size: %i\n", (int)current_track->sector_size_value); - - switch(current_track->sector_size_value) - { - case 0: current_track->sector_size = 2048; break; - case 1: current_track->sector_size = 2336; break; - case 2: current_track->sector_size = 2352; break; - default: - { - if (stdfp) - fprintf(stdfp, "CDI: \t\t\tUnsupported %i bytes sector\n", (int)current_track->sector_size_value); - return 0; - } - } - - if (current_track->mode > 2) - if (stdfp) - fprintf(stdfp, "CDI: \t\t\tTrack mode %i not supported\n", (int)current_track->mode); - - lseek(fp, 29, SEEK_CUR); - - if (descriptor->version != CDI_V2) - { - lseek(fp, 5, SEEK_CUR); - read(fp, &temp_value, 4); - - if (temp_value == 0xFFFFFFFF) - lseek(fp, 78, SEEK_CUR); // extra data (DJ 3.00.780 and up) - } - - current_track->position = track_position; - track_position += (current_track->pregap_length+current_track->length) * current_track->sector_size; - previous_position = track_position; - } - - lseek(fp, 4, SEEK_CUR); - lseek(fp, 8, SEEK_CUR); - - if (descriptor->version != CDI_V2) - lseek(fp, 1, SEEK_CUR); - - } - - if (descriptor->header_offset == 0) - return 0; - - return descriptor; -} - -void cdi_dump_descriptor(FILE * fp, s_cdi_descriptor * cdi_descriptor) -{ - fprintf(fp, "CDI: %i Mb\n", (int)(cdi_descriptor->length >> 20)); - fprintf(fp, "CDI: Format version "); - switch(cdi_descriptor->version) - { - case CDI_V2: - fprintf(fp, "2\n"); - break; - case CDI_V3: - fprintf(fp, "3\n"); - break; - case CDI_V35: - fprintf(fp, "3.5\n"); - break; - default: - fprintf(fp, "unknown\n"); - } - fprintf(fp, "CDI: %i sessions\n", cdi_descriptor->nb_of_sessions); -} - -uint8 * cdi_extract_boot_code(int fp, s_cdi_descriptor * cdi_descriptor) -{ - s_cdi_track * boot_track = &cdi_descriptor->sessions[1].tracks[0]; - uint32 boot_track_size = boot_track->length * boot_track->sector_size; - - uint8 * boot_track_data = (uint8 *)malloc(boot_track_size); - lseek(fp, 2 + (boot_track->position), SEEK_SET); - read(fp, boot_track_data, boot_track_size); - - uint32 * boot_track_data_32 = (uint32 *)boot_track_data; - uint32 offset = 0; - while (offset < (boot_track_size >> 2)) - { - if (boot_track_data_32[offset] == 0x49205452) - break; - offset++; - } - if (offset == (boot_track_size >> 2)) - { - WriteLog("CDI: Cannot find the boot code\n"); - return NULL; - } - -//This is likely wrong, but won't get a chance to fix it until I can get a CD image -//to work with... - offset = (offset << 2) + 4; - uint16 * data16 = (uint16 *)&boot_track_data[offset]; - cdi_load_address = *data16++; - cdi_load_address <<= 16; - cdi_load_address |= *data16++; - cdi_code_length = *data16++; - cdi_code_length <<= 16; - cdi_code_length |= *data16++; - WriteLog("CDI: Load address: %08X\n", cdi_load_address); - WriteLog("CDI: Length: %08X\n", cdi_code_length); -//No need for byte swapping any more... -/* WriteLog("cdi: byte swapping boot code\n"); - - for(uint32 i=0; i<(cdi_code_length >> 1); i++) - { - uint16 sdata = data16[i]; - sdata = (sdata >> 8) | (sdata << 8); - data16[i] = sdata; - }*/ - - return (uint8 *)data16; -} - -void cdi_load_sector(uint32 sector, uint8 * buffer) -{ - if (sector == 0xFFFFFFFF) - { - memset(buffer, 0x00, 2352); - return; - } - - sector *= 2352; - - lseek(cdi_fp, 2+sector, SEEK_SET); - read(cdi_fp, buffer, 2352); - -//This is probably not needed any more... -/* // byte swap - for (uint32 i=0;i<2352;i+=2) - { - uint8 sdata=buffer[i+0]; - buffer[i+0]=buffer[i+1]; - buffer[i+1]=sdata; - }*/ -} -- 2.37.2