1
0
mirror of https://github.com/pevans/erc-c.git synced 2024-11-27 20:51:17 +00:00

Make encode/decode more testable with return codes

This commit is contained in:
Peter Evans 2018-02-04 00:21:39 -06:00
parent 8009a33bd4
commit 1245ddec55
2 changed files with 22 additions and 0 deletions

View File

@ -34,6 +34,10 @@ apple2_dec_dos(vm_segment *dest, vm_segment *src)
{
int i, doff, tracklen;
if (dest == NULL || src == NULL) {
return OK;
}
for (i = 0, doff = 0; i < ENC_NUM_TRACKS; i++) {
tracklen = apple2_dec_track(dest, src, doff, i);
@ -56,6 +60,15 @@ apple2_dec_dos(vm_segment *dest, vm_segment *src)
int
apple2_dec_nib(vm_segment *dest, vm_segment *src)
{
// It's "ok" if you pass in NULL params; the only time you ever
// would is in testing, because we presume you are testing some
// other aspect of the code there. (Good example: when your test is
// not actually testing apple2_dec_nib, but something that calls
// it.)
if (dest == NULL || src == NULL) {
return OK;
}
return vm_segment_copy(dest, src, 0, 0, src->size);
}

View File

@ -25,6 +25,10 @@ apple2_enc_dos(vm_segment *src)
vm_segment *dest;
int i, doff = 0;
if (src == NULL) {
return NULL;
}
// Use the nibbilized size for a 140k image file
dest = vm_segment_create(_140K_NIB_);
@ -65,6 +69,11 @@ apple2_enc_nib(vm_segment *src)
{
vm_segment *dest;
// No src segment, no return data.
if (src == NULL) {
return NULL;
}
dest = vm_segment_create(src->size);
vm_segment_copy(dest, src, 0, 0, src->size);