SuperCard Pro PC software

Moderators: DrCoolZic, Moderator Team

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

SuperCard Pro PC software

Postby JimDrew » Tue Jan 07, 2014 10:12 pm

This thread is for discussing the SuperCard Pro software. I will update this post to reflect the current version.

Latest release: v1.51

If you already have the SuperCard Pro software installed you can just run it and select the CHECK FOR UPDATE option from the

You can download the software here: http://www.cbmstuff.com/downloads.htm

This software requires firmware v0.9 or later.
Last edited by JimDrew on Fri Nov 21, 2014 1:45 am, edited 7 times in total.
I am the flux ninja

Hippy Dave
Atari Super Hero
Atari Super Hero
Posts: 515
Joined: Sat Jan 10, 2009 5:40 am

Re: SuperCard Pro PC software

Postby Hippy Dave » Thu Jan 09, 2014 7:39 am

Here is a program that compiles on gcc for everybody, and Borland BCC55 for Windows. Cluster.zip has code and Windows command line executable. New version 1.0 bugfix
usage: cluster input-file.scp output-file.scp

Code: Select all

/*
  Copyright by David Savinkoff 2014
  This code is licenced as:
  GNU GENERAL PUBLIC LICENSE Version 2, June 1991
  or (at your option) any later version.

  This program parses a raw .scp flux file and
  variance filters the period by logarithmically
  clustering the data. This allows the .bz2
  compression algorithm to compress a .scp
  file 1/3 smaller than it would have otherwise.
  Running this program twice on the same data
  has no effect.

  This program is little endian.

  To compile:
  gcc -Wall -lm cluster.c -o cluster

  (version 1.0)

  usage: cluster input-file.scp output-file.scp

*/

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <math.h>

#define MIN(x, y) (((x) < (y)) ? (x) : (y))

/* look-up-table has 495 levels in 65536 */
#define SIZE 65536
#define LEVELS 495 /* Odd levels are better */

/* SCP format */
#define TRACKS 166
struct scp
{
    uint8_t  magic[3];           /* 'SCP' */

    uint8_t  minor_version  : 4;
    uint8_t  major_version  : 4;

    uint8_t  machine        : 4;
    uint8_t  manufacturer   : 4;

    uint8_t  track_pass;
    uint8_t  start_track;
    uint8_t  end_track;

    uint8_t  index_flag     : 1;
    uint8_t  tpi_flag       : 1;
    uint8_t  rpm_flag       : 1;
    uint8_t  type_flag      : 1;
    uint8_t  reserved_flags : 4;

    uint8_t  bit_cel1_encoding;

    uint16_t reserved_16;

    uint32_t checksum;

    uint32_t track[TRACKS];
};

struct track
{
    char     magic[3];           /* 'TRK' */
    uint8_t  track_number;
};

struct pass
{
    uint32_t index_time;
    uint32_t track_length;       /* zero track_length terminates track_pass */
    uint32_t data_offset;
};

int string_compare(const char *s1, const char *s2, int count)
{
  while( (*s1 && *s2) && (*s1 == *s2) && --count )
     s1++,s2++;
  return *s1 - *s2;
}

void err(char *string)
{ fputs(string, stderr);
  exit(1);
}

/*
1   read in scp_header and set scp_header->checksum = 0
2   scan track[0-166] for least non-zero offset and make sure it points to
    the first track header. Then read in track_header. Otherwise error.
2.1 read in pass_header,
    (calculate pass_header->data_offset - sizeof(track_header)) /
         sizeof(pass_header) to determine how many revolutions to read in
2.2 process raw data associated with pass_header

3   scan track [0-166] for subsequently larger offsets as in 2
3.1 read in pass_header ... as in 2.1 ... 2.2 ... 3 ...

4   process time stamp at the end of the file.

Parsing in this method is guaranteed to be a sequential stream, and can
check that the file matches its internal specifications.
The checksum is set to zero because it can be set by another program.
Furthermore, multiple rotation track passes are possible on a per track
basis because a zero track_length before 5 passes terminates the passes.
*/

int main(int argc, char *argv[])
{ FILE          *fd1, *fd2;
  struct scp    *scp_header;
  struct pass   *pass_header;
  struct track  *track_header;
  void          *inbuff;
  uint16_t      *in;
  uint32_t       true_track;
  unsigned       data_position;
  unsigned       file_position;
  unsigned       previous_track = 0;
  unsigned       least_track;
  int            track_pass;

  int n, m;

  double p, r, q=SIZE;
  int index[SIZE];

  p = exp(log(SIZE)/(LEVELS*2.0));

  for( n=SIZE-1; n; )
  {
    q = q/p;
    r = q;
    q = q/p;

    for( ; n > (int)q; n--)
      index[n] = (int)(r+0.5);
  }
  index[n] = 0;

/* Usage */
  if(argc != 3)
     err(" usage: cluster input-file.scp output-file.scp\n");

  if(string_compare(argv[1], argv[2], 256) == 0)
     err(" input and output file cannot have the same name\n");

/* memory allocation */
  if( (scp_header = calloc( 1, sizeof(struct scp) )) == NULL )
     err(" scp header calloc error\n");

  if( (track_header = calloc( 1, sizeof(struct track) )) == NULL )
     err(" track header calloc error\n");

  if( (pass_header = calloc( 5, sizeof(struct pass) )) == NULL )
     err(" pass header calloc error\n");

  if( (inbuff = calloc( 1, 2 )) == NULL )
     err(" calloc error\n");

  in = inbuff;

/* open input */
  if( (fd1 = fopen( argv[1], "rb" )) == NULL )
     err(" input file cannot be opened\n");

  if( fread(scp_header, sizeof(struct scp), 1, fd1) != 1 )
     err(" scp header load error\n");

  if( string_compare((char*)scp_header->magic, "SCP", 3) != 0 )
     err(" file is not SCP format floppy data\n");

  scp_header->checksum = 0;

  file_position = sizeof(struct scp);

/* open output */
  if( (fd2 = fopen( argv[2], "wb" )) == NULL )
     err(" output file error\n");

  if( fwrite(scp_header, sizeof(struct scp), 1, fd2) != 1)
     err(" scp header write error\n");

  for(;;)
  {
  /* search for the next sequential track */
    for(least_track = ~0, n = TRACKS ; n--; )
       if( (true_track = scp_header->track[n]) > previous_track )
          least_track = MIN(true_track, least_track);
    previous_track = least_track;

    if(least_track == ~0)
       break;

  /* take up the slack */
    if( least_track >= file_position)
    {
       for( n = least_track-file_position; n--; )
       {
          if( fread(inbuff, 1, 1, fd1) != 1 )
             err(" byte size file read error\n");
          if( fwrite(inbuff, 1, 1, fd2) != 1)
             err(" byte size file write error\n");
          file_position++;
       };
    }
    else
       err(" parse error\n");

  /* process track header */
    if( fread(track_header, sizeof(struct track), 1, fd1) != 1 )
       err(" track header load error\n");

    if( fwrite(track_header, sizeof(struct track), 1, fd2) != 1)
       err(" track header write error\n");

    data_position = sizeof(struct track);
    file_position += sizeof(struct track);

  /* process pass header */
    if( fread(pass_header, sizeof(struct pass), 1, fd1) != 1 )
       err(" pass header load error\n");

    if( fwrite(pass_header, sizeof(struct pass), 1, fd2) != 1)
       err(" pass header write error\n");

    data_position += sizeof(struct pass);
    file_position += sizeof(struct pass);

    track_pass = (pass_header->data_offset - sizeof(struct track))
                 / sizeof(struct pass);

    if(track_pass <= 0 || track_pass > 5)
          err(" track passes out of range\n");

    for(n=1; n < track_pass; n++ )
    {
       if( fread((pass_header+n), sizeof(struct pass), 1, fd1) != 1 )
          err(" pass header load error\n");

       if( fwrite((pass_header+n), sizeof(struct pass), 1, fd2) != 1)
          err(" pass header write error\n");

       data_position += sizeof(struct pass);
       file_position += sizeof(struct pass);
    }

  /* take up the slack */
    if( pass_header->data_offset >= data_position)
    {
       for( n = pass_header->data_offset-data_position; n--; )
       {
          if( fread(inbuff, 1, 1, fd1) != 1 )
             err(" byte size file read error\n");
          if( fwrite(inbuff, 1, 1, fd2) != 1)
             err(" byte size file write error\n");
          file_position++;
       };
    }
    else
       err(" parse error\n");

  /* process track pass data */
    for(m = 0; m < track_pass; m++ )
    {
     /* determine how many track passes to do */
       if( (n = (pass_header+m)->track_length) == 0 )
         break;

       for( ; n-- ; )
       {
         if( fread(inbuff, 2, 1, fd1) != 1 )
            err(" input data reading error\n");

         *in = (*in>>8) + (*in<<8);

         *in = (int16_t)index[ (int)*in ];

         *in = (*in>>8) + (*in<<8);

         if( fwrite(inbuff, 2, 1, fd2) != 1 )
            err(" output data writing error\n");

         file_position += 2;
       }
    }
  }

/* process time stamp */
  for(;;)
  {
     if( fread(inbuff, 1, 1, fd1) != 1 )
          break;

     if( fwrite(inbuff, 1, 1, fd2) != 1 )
          err(" output time stamp writing error\n");
  }
  return 0;
}
You do not have the required permissions to view the files attached to this post.
Last edited by Hippy Dave on Fri Jan 10, 2014 10:10 am, edited 3 times in total.

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Thu Jan 09, 2014 2:19 pm

A few things: first, the checksum is not optional. If its not correct, the file can not be used by the copier. The analyzer will let you view corrupted images (those with a bad checksum).

Secondly, altering the flux data _at all_ can cause the copy not to work. That data can't be altered by any type of averaging, and would definitely present severe issues when a post read normalization routine is used because the affect of surrounding flux transitions for each bit cells would no longer be valid. The flux data needs to stay as-is or writing will be adversely affected.

Your program would need to check IFF_NUMREVS to determine the number of entries contained in the TDH, because the TDH is no longer hard coded at 5 entires - it can be any number.

Reducing the size by making it better compress-able is neat idea, but this is not lossy data here. It has to remain unchanged (exact data/exact length) not only to preserve the original data, but also to allow proper writing back to a disk.
I am the flux ninja

Hippy Dave
Atari Super Hero
Atari Super Hero
Posts: 515
Joined: Sat Jan 10, 2009 5:40 am

Re: SuperCard Pro PC software

Postby Hippy Dave » Thu Jan 09, 2014 6:02 pm

SumSC.zip has C code and a Windows command line executable for making a .scp file checksum.
usage: sumsc input-file.scp output-file.scp

The checksum should be optional because it likely will be optional in a raw flux specification.
Digitally signing a file is more useful than a checksum because file integrity is not an issue.
The cluster program allows the TDH to be a maximum of 5 already.
Note that if cluster.exe ever makes a .scp file better or worse, your original is dodgy. :megaphone:

Code: Select all

/*
  Copyright by David Savinkoff 2014
  This code is licenced as:
  GNU GENERAL PUBLIC LICENSE Version 2, June 1991
  or (at your option) any later version.

  This program makes a checksum for a raw .scp file

  This program is little endian.

  To compile:
  gcc -Wall sumsc.c -o sumsc

  usage: sumsc input-file.scp output-file.scp

*/

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

/* SCP format */
#define TRACKS 166
struct scp
{
    uint8_t  magic[3];           /* 'SCP' */

    uint8_t  minor_version  : 4;
    uint8_t  major_version  : 4;

    uint8_t  machine        : 4;
    uint8_t  manufacturer   : 4;

    uint8_t  track_pass;
    uint8_t  start_track;
    uint8_t  end_track;

    uint8_t  index_flag     : 1;
    uint8_t  tpi_flag       : 1;
    uint8_t  rpm_flag       : 1;
    uint8_t  type_flag      : 1;
    uint8_t  reserved_flags : 4;

    uint8_t  bit_cel1_encoding;

    uint16_t reserved_16;

    uint32_t checksum;

    uint32_t track[TRACKS];
};

struct track
{
    char     magic[3];           /* 'TRK' */
    uint8_t  track_number;
};

struct pass
{
    uint32_t index_time;
    uint32_t track_length;       /* zero track_length terminates track_pass */
    uint32_t data_offset;
};

int string_compare(const char *s1, const char *s2, int count)
{
  while( (*s1 && *s2) && (*s1 == *s2) && --count )
     s1++,s2++;
  return *s1 - *s2;
}

void err(char *string)
{ fputs(string, stderr);
  exit(1);
}

int main(int argc, char *argv[])
{ FILE          *fd1, *fd2;
  struct scp    *scp_header;
  void          *inbuff;
  uint16_t      *in;
  int            n;
  uint8_t       *temp;

/* Usage */
  if(argc != 3)
     err(" usage: sumsc input-file.scp output-file.scp\n");

  if(string_compare(argv[1], argv[2], 256) == 0)
     err(" input and output file cannot have the same name\n");

/* memory allocation */
  if( (scp_header = calloc( 1, sizeof(struct scp) )) == NULL )
     err(" scp header calloc error\n");

  if( (inbuff = calloc( 1, 2 )) == NULL )
     err(" calloc error\n");

  in = inbuff;

/* open input */
  if( (fd1 = fopen( argv[1], "rb" )) == NULL )
     err(" input file cannot be opened\n");

  if( fread(scp_header, sizeof(struct scp), 1, fd1) != 1 )
     err(" scp header load error\n");

  if( string_compare((char*)scp_header->magic, "SCP", 3) != 0 )
     err(" file is not SCP format floppy data\n");

/* open output */
  if( (fd2 = fopen( argv[2], "wb" )) == NULL )
     err(" output file error\n");

  if( fwrite(scp_header, sizeof(struct scp), 1, fd2) != 1)
     err(" scp header write error\n");

/* generate new file with checksum */

  scp_header->checksum = 0;

  temp = (uint8_t *)scp_header->track;

  for( n = TRACKS*4 ; n-- ; )
     scp_header->checksum += (uint32_t)(temp[n]);

  for(;;)
  {
     if( fread(inbuff, 1, 1, fd1) != 1 )
          break;

     if( fwrite(inbuff, 1, 1, fd2) != 1 )
          err(" output time stamp writing error\n");

     scp_header->checksum += (uint32_t)(*in & 255);
  }

  rewind(fd2);

  if( fwrite(scp_header, sizeof(struct scp), 1, fd2) != 1)
     err(" scp header write error\n");

  return 0;
}
You do not have the required permissions to view the files attached to this post.
Last edited by Hippy Dave on Thu Jan 09, 2014 7:50 pm, edited 1 time in total.

User avatar
dlfrsilver
Atari God
Atari God
Posts: 1206
Joined: Mon Jan 31, 2005 1:41 am
Contact:

Re: SuperCard Pro PC software

Postby dlfrsilver » Thu Jan 09, 2014 6:39 pm

Hello Jim :)

Ok, i got my super card pro board today. I did some SCP file images. I found a bug with the SCP tool, when you use the slider to get the track X side X (media controls)

it can't go beyond track 79 side 1 (my drive support 83 tracks, needed to image some amiga games, mostly from Hitec software, like scooby doo, and others).

i get an error message 'error execution 9', 'hint out of range'.

I also tried to image Albedo from Myriad (amiga version), a game using a nasty copy protection scheme (4 us tracks). I have been unable to write back the SCP
file to a floppy. It goes 'KABOOM' after writing 3 tracks (i use 2 revolutions).
Now SPS France representative since the 19th of June 2014. Proud to be an SPS member !

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Thu Jan 09, 2014 7:21 pm

Dave, the checksum is not optional. I don't want the data ever changing. It needs to remain *exactly* as put into the file. If the data is changed, it is no longer a representation of the original disk, and will affect the post read normalization (required prior to writing), this is a write recomp at the flux level - not the decoded level like all write pre-comp routines work in FDC chips.

dlfrsilver, the slider allows 0-82 (83 tracks total). 0-79 is the default, you just need to move the slider (or click the right arrow) to move it to track 82 (the 83rd track).

What version of the SCP program are you using? It won't matter what a disk has for copy protection, SCP handles any bitcell time from ~500ns to 1638.4us (the new firmware update will I am working on extends that out to up to 200ms).
I am the flux ninja

User avatar
dlfrsilver
Atari God
Atari God
Posts: 1206
Joined: Mon Jan 31, 2005 1:41 am
Contact:

Re: SuperCard Pro PC software

Postby dlfrsilver » Thu Jan 09, 2014 7:25 pm

dlfrsilver, the slider allows 0-82 (83 tracks total). 0-79 is the default, you just need to move the slider (or click the right arrow) to move it to track 82 (the 83rd track).

What version of the SCP program are you using? It won't matter what a disk has for copy protection, SCP handles any bitcell time from ~500ns to 1638.4us (the new firmware update will I am working on extends that out to up to 200ms).


I'm using the very latest release of your program v0.96. When i use the disk analyser, and ask for a track beyond track 79 side 1, the SCP program crash with the error message i give you.
Now SPS France representative since the 19th of June 2014. Proud to be an SPS member !

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Fri Jan 10, 2014 5:22 am

I will check it out. Thanks. I do know that the analyzer allows up to track 83, and that should not be allowed so I will fix that with the next version too.
I am the flux ninja

User avatar
Stefan jL
Atari God
Atari God
Posts: 1169
Joined: Thu May 09, 2002 3:21 pm
Location: Sweden
Contact:

Re: SuperCard Pro PC software

Postby Stefan jL » Fri Jan 10, 2014 9:37 pm

dlfrsilver... use version 0.94 that DrCoolZic posted in the other thread, version 0.96 can't save SCP files correctly, you can copy "disk to disk" but not "disk to file". I first thought i had damaged my SCPro but it was just the latest software that was the problem.
Image

User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2144
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: SuperCard Pro PC software

Postby DrCoolZic » Fri Jan 10, 2014 9:56 pm

Stefan jL wrote:dlfrsilver... use version 0.94 that DrCoolZic posted in the other thread, version 0.96 can't save SCP files correctly, you can copy "disk to disk" but not "disk to file". I first thought i had damaged my SCPro but it was just the latest software that was the problem.

Yes 0.96 is bad :(
Jim is working on big modifications for No Flux Area (what he calls strong bits) I may have asked to many things!
0.94 works fine for me. Hopefully next week we should get a new version that fixes these problems and probably new firmware :)
I have modified my SCP parser following the new SCP spec that should also work with NFA (overflow in counter)

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Sat Jan 11, 2014 4:01 am

Apparently I broke the image file support when I started working on the strongbits protection and the change for unlimted number of revolutions. Unfortunately I am at a trade show and my laptop won't power the SCP with enough current to run a 3.5" floppy, so walking through code is not possible at the moment. I am looking for a powered USB hub! :)

Every time the update process is done the old program is saved as scp_vXX.exe (where XX=the version number). This way, if there is a mistake like the image support in v0.96, you can revert back to the previous version.
I am the flux ninja

User avatar
Brume
Red eyes
Red eyes
Posts: 4010
Joined: Mon Apr 22, 2002 10:16 am
Location: France
Contact:

Re: SuperCard Pro PC software

Postby Brume » Mon Jan 13, 2014 12:12 pm

I have received my SCP, too :)
It's a fantastic harware, and I like very much the way it archives a full disk. It's very fast, probably it's the same vein as FastCopy Pro on the real machine. Wow :o

Since latest version of the software is "broken", I've only copied disks. Waiting now for the update in order to create image-disks.

Just one thing is missing for me: the ability to see damaged tracks. I want to use SPC in both cases: archiving original disks + archiving my whole collection of copied stuffs (demos, docs, games, e-zines, tools...). When most of the original disks are still safe, that's not the case of floppies with copied stuffs on them. Plenty of them need a clean up. So I fear to image bad tracks, and testing all images is an impossible task.

So Jim, any hope do include this kind of feature in a next release of the software?

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Mon Jan 13, 2014 2:17 pm

I don't know anything about Atari ST tracks, so there is not much hope for me to add any type of support for testing the tracks.... however, DrCoolZic's Aufit program can analyze image files. I expect to release v0.97 today or tomorrow, and that will allow you to image your disks properly. As I learn about the various systems, I can add some basic checks. But the Aufit program is the perfect tool for Atari ST disks.
I am the flux ninja

User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2144
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: SuperCard Pro PC software

Postby DrCoolZic » Mon Jan 13, 2014 3:39 pm

JimDrew wrote:I don't know anything about Atari ST tracks, so there is not much hope for me to add any type of support for testing the tracks.... however, DrCoolZic's Aufit program can analyze image files. I expect to release v0.97 today or tomorrow, and that will allow you to image your disks properly. As I learn about the various systems, I can add some basic checks. But the Aufit program is the perfect tool for Atari ST disks.

I think what Brume is asking is a basic verification of MFM data as KF does. If the track is not read correctly (invalid MFM) then retries are performed and error message is output. This has nothing to do with Atari.

But yes my program should hopefully provide more information about good bad disk. I will start a new thread on the subject when I find some time ;)

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Mon Jan 13, 2014 5:05 pm

You are always going to have "bad MFM" on a track. The write splice(s) create bad MFM, even sync marks are technically invalid MFM. It will be difficult to make a generic type of checker without knowing the disk structure. I will be adding a DOS copy mode for each of the types of disks that will verify the sector data and revert to copying the track as protected (like it does now) when the DOS fails. I have collected the info from DrCoolZic's website on the Atari ST disk structure (similar to IBM PC) and I already know CBM 64, Amiga, Apple II, TRS-80, CP/M, Roland, and I am looking into Atari 400/800 right now.
I am the flux ninja

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Mon Jan 13, 2014 9:14 pm

Good news.. imaging seems to be working correctly. I just got Operation Neptune, Fire and Forget, and Ghostbusters II in today. Operation Neptune and Fire and Forget worked perfectly. I am testing Ghostbusters II now.
I am the flux ninja

User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2144
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: SuperCard Pro PC software

Postby DrCoolZic » Mon Jan 13, 2014 9:37 pm

JimDrew wrote:Good news.. imaging seems to be working correctly. I just got Operation Neptune, Fire and Forget, and Ghostbusters II in today. Operation Neptune and Fire and Forget worked perfectly. I am testing Ghostbusters II now.

Interesting I just checked and apparently GoshbusterII is using no flux are! Does that mean it is now working on SCP?
Fire and forget uses track 79 with 70 sectors and for this one I can generate directly STX file from scp !
Operation Neptune uses lots of invalid character into gap ... unfortunately on my FD I have 4 tracks I can read on side 1 I will try to clean otherwise I may ask you an SCP copy :)

By the way I have received my head cleaning kits!

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Mon Jan 13, 2014 10:50 pm

I have not added strongbits (no flux area) writing yet. So, Turrican and Ghostbusters II do not yet work. It will require a firmware upgrade to add the NRZ writing routine, so I think I will hold off releasing a firmware upgrade until that has been completed too. v0.97 can be released as it does not require the firmware upgrade, it just uses it if you have it.
I am the flux ninja

User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2144
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: SuperCard Pro PC software

Postby DrCoolZic » Tue Jan 14, 2014 1:44 pm

Question for Jim :)

I have received my "cleaning head floppies". On a PC if you introduce a floppy the system try to read it and I guess this is good enough to clean the head.
What should I do when the floppy is connected to SuperCard Pro?
What I have done is the following:
- I drop several drops of cleaning liquid on the cleaning diskette
- I use SPC to image the diskette and stop the process after few seconds.

Does that sound reasonable?
Any advice?

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Tue Jan 14, 2014 3:32 pm

I generally use the analyzer and just click on the READ TRACK button. That will spin the disk for about 25 seconds before the auto-shutoff engages.
I am the flux ninja

User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2144
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: SuperCard Pro PC software

Postby DrCoolZic » Tue Jan 14, 2014 4:55 pm

JimDrew wrote:I generally use the analyzer and just click on the READ TRACK button. That will spin the disk for about 25 seconds before the auto-shutoff engages.

What is the auto-shuttoff ?

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Tue Jan 14, 2014 8:31 pm

When you turn on the motor to a drive, there is a counter that is enabled. If a program does not shut the motor off after so many seconds (about 25 seconds in this case), then the motor will automatically shutoff. I did this so that 3rd party applications wouldn't leave the motor running forever accidentally.
I am the flux ninja

User avatar
Stefan jL
Atari God
Atari God
Posts: 1169
Joined: Thu May 09, 2002 3:21 pm
Location: Sweden
Contact:

Re: SuperCard Pro PC software

Postby Stefan jL » Sun Jan 26, 2014 7:32 pm

When using the analyzer (ver 0.99) so does it most of the time crash when flux display is enabled on track 80 and above? On some disk images it works while others crash the program.
Image

JimDrew
Atari Super Hero
Atari Super Hero
Posts: 545
Joined: Mon Nov 04, 2013 5:23 pm

Re: SuperCard Pro PC software

Postby JimDrew » Sun Jan 26, 2014 9:01 pm

I have not seen this, but I don't always look at tracks above 79. Do you have the disk type set to Atari ST? Is this in MFM or FLUX mode?
I am the flux ninja

User avatar
Stefan jL
Atari God
Atari God
Posts: 1169
Joined: Thu May 09, 2002 3:21 pm
Location: Sweden
Contact:

Re: SuperCard Pro PC software

Postby Stefan jL » Sun Jan 26, 2014 9:12 pm

yes it is set to Atari ST and it happen with both FLUX and MFM mode, but only when "Flux display" is enabled.
Image


Social Media

     

Return to “SuperCard Pro Disk Copier”

Who is online

Users browsing this forum: No registered users and 1 guest