summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/sol_cas.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2023-09-17 14:47:13 -0400
committer AJR <ajrhacker@users.noreply.github.com>2023-09-17 14:47:13 -0400
commit26a310422adc69167ea180f8ca48b8aca240b2c6 (patch)
treebbdd0974e243a8c7a150a60dafd6e6db7a2486d9 /src/lib/formats/sol_cas.cpp
parent2dc489fb90362a7d2ec6d34f64d899d0e24c1cc8 (diff)
formats: Use multibyte.h functions in more files
Diffstat (limited to 'src/lib/formats/sol_cas.cpp')
-rw-r--r--src/lib/formats/sol_cas.cpp37
1 files changed, 16 insertions, 21 deletions
diff --git a/src/lib/formats/sol_cas.cpp b/src/lib/formats/sol_cas.cpp
index 1e54963953b..8c05a756042 100644
--- a/src/lib/formats/sol_cas.cpp
+++ b/src/lib/formats/sol_cas.cpp
@@ -36,6 +36,8 @@ SVT - The full explanation may be found on the Solace web site,
#include "sol_cas.h"
+#include "multibyte.h"
+
#define WAVEENTRY_LOW -32768
#define WAVEENTRY_HIGH 32767
@@ -82,17 +84,16 @@ static int sol20_output_bit(int16_t *buffer, int sample_pos, bool bit)
static int sol20_output_byte(int16_t *buffer, int sample_pos, uint8_t byte)
{
int samples = 0;
- uint8_t i;
/* start */
samples += sol20_output_bit (buffer, sample_pos + samples, 0);
/* data */
- for (i = 0; i<8; i++)
+ for (uint8_t i = 0; i<8; i++)
samples += sol20_output_bit (buffer, sample_pos + samples, (byte >> i) & 1);
/* stop */
- for (i = 0; i<2; i++)
+ for (uint8_t i = 0; i<2; i++)
samples += sol20_output_bit (buffer, sample_pos + samples, 1);
return samples;
@@ -157,11 +158,10 @@ static void sol20_scan_to_hex(const uint8_t *bytes)
static int sol20_read_hex(const uint8_t *bytes, uint8_t numdigits)
{
int data = 0;
- uint8_t i,chr;
- for (i = 0; i < numdigits; i++)
+ for (uint8_t i = 0; i < numdigits; i++)
{
- chr = bytes[sol20_byte_num];
+ uint8_t chr = bytes[sol20_byte_num];
if ((chr >= '0') && (chr <= '9'))
{
data = (data << 4) | (chr-48);
@@ -196,7 +196,7 @@ static int sol20_read_dec(const uint8_t *bytes)
static int sol20_handle_cassette(int16_t *buffer, const uint8_t *bytes)
{
uint32_t sample_count = 0;
- uint32_t i = 0,t = 0;
+ uint32_t t = 0;
uint16_t cc = 0;
sol20_byte_num = 1;
bool process_d = 0;
@@ -234,7 +234,7 @@ static int sol20_handle_cassette(int16_t *buffer, const uint8_t *bytes)
sol20_byte_num+=2; // bump to parameter
t = sol20_read_dec(bytes) * 140; // convert 10th of seconds to number of ones
- for (i = 0; i < t; i++)
+ for (uint32_t i = 0; i < t; i++)
sample_count += sol20_output_bit(buffer, sample_count, 1);
sol20_scan_to_eol(bytes);
break;
@@ -248,9 +248,9 @@ static int sol20_handle_cassette(int16_t *buffer, const uint8_t *bytes)
}
sol20_byte_num+=2; // bump to file name
- for (i = 0; i < 5; i++)
+ for (uint32_t i = 0; i < 5; i++)
sol20_header[i] = 0x20;
- for (i = 0; i < 5; i++)
+ for (uint32_t i = 0; i < 5; i++)
{
sol20_header[i] = bytes[sol20_byte_num++];
if (sol20_header[i] == 0x20)
@@ -261,29 +261,24 @@ static int sol20_handle_cassette(int16_t *buffer, const uint8_t *bytes)
sol20_header[6] = sol20_read_hex(bytes, 2);
sol20_scan_to_hex(bytes); // bump to length
length = sol20_read_hex(bytes, 4);
- sol20_header[7] = length;
- sol20_header[8] = length >> 8;
+ put_u16le(&sol20_header[7], length);
sol20_scan_to_hex(bytes); // bump to load-address
- i = sol20_read_hex(bytes, 4);
- sol20_header[9] = i;
- sol20_header[10] = i >> 8;
+ put_u16le(&sol20_header[9], sol20_read_hex(bytes, 4));
sol20_scan_to_hex(bytes); // bump to exec-address
- i = sol20_read_hex(bytes, 4);
- sol20_header[11] = i;
- sol20_header[12] = i >> 8;
+ put_u16le(&sol20_header[11], sol20_read_hex(bytes, 4));
sol20_header[13] = 0;
sol20_header[14] = 0;
sol20_header[15] = 0;
sol20_cksm_byte = 0;
- for (i = 0; i < 16; i++)
+ for (uint32_t i = 0; i < 16; i++)
sol20_cksm_byte = sol20_calc_cksm(sol20_cksm_byte, sol20_header[i]);
// write leader
- for (i = 0; i < 100; i++)
+ for (uint32_t i = 0; i < 100; i++)
sample_count += sol20_output_byte(buffer, sample_count, 0);
// write SOH
sample_count += sol20_output_byte(buffer, sample_count, 1);
// write Header
- for (i = 0; i < 16; i++)
+ for (uint32_t i = 0; i < 16; i++)
sample_count += sol20_output_byte(buffer, sample_count, sol20_header[i]);
// write checksum
sample_count += sol20_output_byte(buffer, sample_count, sol20_cksm_byte);