mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
orao103: Support new TAP format and format now done properly
This commit is contained in:
parent
bb9f9d297d
commit
5e23dc37a8
@ -11,16 +11,18 @@
|
||||
|
||||
|
||||
#define ORAO_WAV_FREQUENCY 44100
|
||||
#define WAVE_HIGH -32768
|
||||
#define WAVE_LOW 0
|
||||
#define WAVE_HIGH -24576
|
||||
#define WAVE_LOW 24576
|
||||
|
||||
#define ORAO_WAVE_ONE 24
|
||||
#define ORAO_WAVE_ZERO 11
|
||||
#define ORAO_WAVE_ONE 17
|
||||
#define ORAO_WAVE_ZERO 9
|
||||
|
||||
#define ORAO_HEADER_SIZE 360
|
||||
|
||||
static int16_t wave_data; // FIXME: global variables prevent multiple instances
|
||||
static int len;
|
||||
static int len;
|
||||
static int startpos;
|
||||
static bool newformat;
|
||||
|
||||
static void orao_output_wave( int16_t **buffer, int length ) {
|
||||
if ( buffer == nullptr ) {
|
||||
@ -41,7 +43,13 @@ static int orao_cas_to_wav_size( const uint8_t *casdata, int caslen ) {
|
||||
return -1;
|
||||
}
|
||||
size = 0;
|
||||
for (i=ORAO_HEADER_SIZE;i<caslen-ORAO_HEADER_SIZE;i++) {
|
||||
startpos = 0;
|
||||
newformat = true;
|
||||
if (casdata[0]==0x68 && casdata[1]==0x01 && casdata[2]==0x00) {
|
||||
startpos = ORAO_HEADER_SIZE;
|
||||
newformat = false;
|
||||
}
|
||||
for (i=startpos;i<caslen-startpos;i++) {
|
||||
for (j=0;j<8;j++) {
|
||||
b = (casdata[i] >> j) & 1;
|
||||
if (b==0) {
|
||||
@ -56,13 +64,14 @@ static int orao_cas_to_wav_size( const uint8_t *casdata, int caslen ) {
|
||||
}
|
||||
|
||||
static int orao_cas_fill_wave( int16_t *buffer, int length, uint8_t *bytes ) {
|
||||
int i,j,size;
|
||||
int i,j,size,k;
|
||||
uint8_t b;
|
||||
size = 0;
|
||||
if (bytes == nullptr) return -1;
|
||||
for (i=ORAO_HEADER_SIZE;i<len-ORAO_HEADER_SIZE;i++) {
|
||||
for (i=startpos;i<len-startpos;i++) {
|
||||
for (j=0;j<8;j++) {
|
||||
b = (bytes[i] >> j) & 1;
|
||||
k = newformat ? (7-j) : j;
|
||||
b = (bytes[i] >> k) & 1;
|
||||
if (b==0) {
|
||||
wave_data = WAVE_LOW;
|
||||
orao_output_wave(&buffer,ORAO_WAVE_ZERO);
|
||||
|
@ -14,12 +14,10 @@ Ctrl-V turns on keyclick
|
||||
Ctrl-S turns on reversed video
|
||||
|
||||
BC starts BASIC. orao103: EXIT to quit. orao: unknown how to quit.
|
||||
To load use LMEM""
|
||||
|
||||
Todo:
|
||||
- When pasting, shift key doesn't work
|
||||
- orao103: loads its own tapes, but can't load software items
|
||||
- orao: can't load anything
|
||||
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user