• Please review our updated Terms and Rules here

Does your CP/M Computer use COMPLEMENTED Data????

ldkraemer

Veteran Member
Joined
Mar 14, 2013
Messages
2,625
Location
Chaffee, MO
If your CP/M Computer uses COMPLEMENTED Data, such as these Computers:
Code:
Columbia Commander 964 - DSDD 48 tpi 5.25" - 512 x 10
Columbia 1600 - DSDD 96 tpi 5.25" - 512 x 10
Columbia M64 - SSDD 48 tpi 5.25" - 512 x 10
Compustar Model 30 - DSDD 48 tpi 5.25" - 512 x 10
Compustar 30 Super IOS - DSDD 48 tpi 5.25" - 512 x 10
Michels and Kleberhoff CP/M 3 - DSDD 96 tpi 5.25" - 512 x 10
Michels and Kleberhoff CP/M 3 - DSDD 48 tpi 5.25" - 512 x 10
Sharp MZ-80 - DSDD 48 tpi 5.25" - 512 x 10
Sharp MZ-80B - DSDD 48 tpi 5.25" - 512 x 10
Shelton SIG/NET 2 - SSDD 48 tpi 5.25" - 512 x 10
Shelton SIG/NET 2 - DSDD 48 tpi 5.25" - 512 x 10
Shelton SIG/NET 2 - DSDD 96 tpi 5.25" - 512 x 10
Superbrain JR - SSDD 48 tpi 5.25" - 512 x 10
Superbrain 40 track - SSDD 48 tpi 5.25" - 512 x 10
Superbrain QD - DSDD 48 tpi 5.25" - 512 x 10
Superbrain II - DSDD 96 tpi 5.25" - 512 x 10
Superbrain - SSDD 48 tpi 5.25" - 128 x 30
Wren Executive - SSDD 96 tpi 5.25" - 512 x 10
You may be interested in an easy way to access the Data Files with cpmtools. The method is explained in detail on
the Debian Forum https://forums.debian.net/viewtopic.php?t=112244

Scroll to the End of the Tutorial for the COMPLEMENTED Section.


Larry
 
Good grief, Larry--how about a simple C snippet to complement the data in a pipe?
Code:
#include <stdio.h>
#include <unistd.h>
#include <inttypes.h>

#define BUFSZ 4096

int main (void) 
{
    unsigned char buffer[BUFSZ];
    int i, check;
    uint64_t total = 0;

    while ((check = read(0, buffer, BUFSZ)) > 0) 
    {
        for (i = 0; i < check; i++) 
          buffer[i] = ~buffer[i];
        write(1, buffer, check);
        total += check;
    }

    fprintf(stderr, "Bitcomp processed %lu bytes.\n", total);
    return 0;
}

To answer tradde's question (since Larry's just copying from 22Disk), the reason is simple. Bus polarity. Originally, there was only the 1771 and then the 1791, which take low-true interfaces. If your architecture uses high-true, you had two choices--add logic to complement the bus or simply use the FDC in complement mode. You save a few cents by doing the latter.
 
Back
Top