[comp.sys.amiga] Should CrossDos/MSH work on my 3000?

crash@ckctpa.UUCP (Frank J. Edwards) (10/08/90)

I'm not sure where the problem with this is, but the MSDOS-compatibility
programs don't like my 3000.  I presume its due to CPU timing loops which
are being thrown off by the '030.  Does anyone know of fixes/patches/etc
to either CrossDos or MSH that would fix the problem?

Thanks much; I need to be able to xfer files with my office and I *DON'T*
want to use a MessyDOS machine at all if I don't have to...
-----
Frank J. Edwards		ComputerKnowledge Corp
Phone:  (813) 786-3675		(214) 385-9700 / (800) 227-9700

An A3000 with 16M of SCRAM and 2M of CHIP memory...  Glorious!!!
    -- Me

jil@cs.iastate.edu (James Lathrop) (10/09/90)

     ls MSH:
     dir MSH:
     copy MSH:*.* to sys:temp all

work fine.  Another problem is that messyfmt hangs the 3000, so you have
to format your disks on an MS/DOS machine.

-- Jim

rhialto@cs.kun.nl (Olaf Seibert) (10/10/90)

In article <08Oct90.151432.944@ckctpa.UUCP> crash@ckctpa.UUCP (Frank J. Edwards) writes:
>I'm not sure where the problem with this is, but the MSDOS-compatibility
>programs don't like my 3000.  I presume its due to CPU timing loops which
>are being thrown off by the '030.  Does anyone know of fixes/patches/etc
>to either CrossDos or MSH that would fix the problem?

I can't speak for CrossDOS, only for MSH since I wrote it. There are
certainly no timing loops in MSH. In fact, there is no timing in MSH at
all. (There is only a case of please-start-the-dma-as-soon-after-an-
index-interrupt, and onviously the faster this goes the better). The
problem might be that MSH uses some disk custom registers directly
(though as little as possible) instead of through trackdisk.device.
Furthermore it only supports 1.3-type packets, though I don't think
this should really matter. It also installs disk index and disk block
interrupt handlers though a not-really documented way.

If you find out what the problem is, please let me know.

>Frank J. Edwards		ComputerKnowledge Corp
--
Olaf 'Rhialto' Seibert                               rhialto@cs.kun.nl
How can you be so stupid if you're identical to me? -Robert Silverberg
--
Olaf 'Rhialto' Seibert                               rhialto@cs.kun.nl
How can you be so stupid if you're identical to me? -Robert Silverberg

zerkle@iris.ucdavis.edu (Dan Zerkle) (10/11/90)

In article <08Oct90.151432.944@ckctpa.UUCP> crash@ckctpa.UUCP (Frank J. Edwards) writes:
>I'm not sure where the problem with this is, but the MSDOS-compatibility
>programs don't like my 3000.  I presume its due to CPU timing loops which
>are being thrown off by the '030.  Does anyone know of fixes/patches/etc
>to either CrossDos or MSH that would fix the problem?

I have been able to get MSH to read but not write (or format).  I also
got one very nasty crash when unarchiving a .zip file with PKAZIP to
the hard drive.  It did it in the middle of a write, so the hard drive
was corrupted.  Any hints on how to write much appreciated!

             Dan Zerkle  zerkle@iris.ucdavis.edu  (916) 754-0240
           Amiga...  Because life is too short for boring computers.

rhialto@cs.kun.nl (Olaf Seibert) (10/12/90)

In article <7811@ucdavis.ucdavis.edu> zerkle@iris.ucdavis.edu (Dan Zerkle) writes:
>In article <08Oct90.151432.944@ckctpa.UUCP> crash@ckctpa.UUCP (Frank J. Edwards) writes:
>>[MSH does not work on a 3000]
>
>I have been able to get MSH to read but not write (or format).

I think that the messydisk.device indefinitely waits for an index
interrupt. The way these things are installed is not really documented,
as far as I know, except by suggestive names in a structure.  What
usually is the problem when messydisk can't write, is that the
IndexIntCode doesn't get called for some reason. (Usually these are
hardware problems, so not my problem ;-) The ~~~ marked part is what is
questionable. But if it can read, the block interrupt works, so why
doesn't the index interrupt work?  Specifically, what I do is the
following: (file devio.c excerpted)

/*-
 * $Id: devio.c,v 1.30 90/06/04 23:18:52 Rhialto Rel $
-*/

struct DiskResource *DRResource;/* Argh! A global variable! */
void *CiaBResource;		/* And yet another! */


_SafeEnableICR: move.l	_CiaBResource,a6
		move.b	4+1(sp),d0
		jsr	_LVOSetICR(a6)      ; clear pending interrupt
		move.b	4+1(sp),d0
		or.b	#$80,d0 	    ; then enable it
		jsr	_LVOAbleICR(a6)
		rts
;;;;
;
;   Disk index interrupt code.
;   is_Data (A1) is the value to stuff into the DSKLEN register.
;   A0 points to the custom chips already.
;   It then enables the disk block interrupt and disables the
;   index interrupt.

_IndexIntCode:
;	 movem.l A2-A4/D2-D7,-(sp)
	move.w	#dskdmaoff,Dsklen(a0)
	move.w	a1,Dsklen(a0)
	move.w	a1,Dsklen(a0)       ; this enables the DMA
	move.w	#intf_setclr|intf_dskblk,Intena(a0)
	move.l	_CiaBResource,a6
	move.b	#ciaicrf_flg,d0
	jsr	_LVOAbleICR(a6)     ; disable index interrupt
;	 movem.l (sp)+,A2-A4/D2-D7
	rts
;;;;
;
;   Disk DMA finished interrupt code.
;   (a1) is the task to Signal, 4(a1) is the signal mask to use.
;   Disables the disk block finished interrupt.

_DskBlkIntCode:
	move.w	#dskdmaoff,Dsklen(a0)   ; disable disk DMA
	move.w	#intf_dskblk,Intena(a0) ; disable the interrupt
	move.w	#intf_dskblk,Intreq(a0) ; clear 'diskblock finished' flag
	move.l	4(a1),d0            ; signal mask
	move.l	(a1),a1             ; task to signal
	jsr	_LVOSignal(a6)
	rts

    struct {
	struct Task *task;
	ulong signal;
    } tasksig;

    tasksig.task = FindTask(NULL);
    tasksig.signal = 1L << unit->mu_DmaSignal;

    (this is done once on the initialisation of the device's unit:)
    unit->mu_DRUnit.dru_Index.is_Node.ln_Pri = 32; /* high pri for index int */
    unit->mu_DRUnit.dru_Index.is_Code = IndexIntCode;
    unit->mu_DRUnit.dru_DiscBlock.is_Code = DskBlkIntCode;

    unit->mu_DRUnit.dru_Index.is_Data = (APTR) ((WLEN >> 1)|DSKDMAEN| dskwrite);
    unit->mu_DRUnit.dru_DiscBlock.is_Data = (APTR) &tasksig;

    /* Clear signal bit */
    SetSignal(0L, tasksig.signal);

    /* Allocate drive and install index and block interrupts */
		      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    GetDrive(&unit->mu_DRUnit);

    /* Select correct drive and side */
    /* Set up disk parameters */
    /* Set up disk buffer address */
    /* Enable disk DMA */
	/* Enable disk index interrupt to start the whole thing. */
	SafeEnableICR((int) CIAICRF_FLG);
    Wait(tasksig.signal);
    FreeDrive();

void	       *
GetDrive(drunit)
register struct DiskResourceUnit *drunit;
{
	Basically just GetUnit(drunit);
	Note no AllocUnit() is done, because trackdisk already
	has done this so we fail if we try.
}

void
FreeDrive()
{
    GiveUnit();
}

>             Dan Zerkle  zerkle@iris.ucdavis.edu  (916) 754-0240
--
Olaf 'Rhialto' Seibert                               rhialto@cs.kun.nl
How can you be so stupid if you're identical to me? -Robert Silverberg
--
Olaf 'Rhialto' Seibert                               rhialto@cs.kun.nl
How can you be so stupid if you're identical to me? -Robert Silverberg

chanson@isis.cs.du.edu (Chris Hanson) (10/13/90)

>Another problem is that messyfmt hangs the 3000
 
  In my experience, MessyFmt hangs ANY machine running 2.0. 3000's, my 2000
at work, and my 500 at home. But the handler and filesystem both seem to be
rock solid.
 
  Are you sure? [Enter 42 to Continue]

Chris - Xenon
 
-- 
#define chanson Christopher_Eric_Hanson || Lord_Xenon || Kelson_Haldane 
I work, but you don't know who I work for. And they don't know I'm here.

::I'm @ chanson@nyx.cs.du.edu

jms@tardis.Tymnet.COM (Joe Smith) (10/13/90)

In article <08Oct90.151432.944@ckctpa.UUCP> crash@ckctpa.UUCP (Frank J. Edwards) writes:
>I'm not sure where the problem with this is, but the MSDOS-compatibility
>programs don't like my 3000.  I presume its due to CPU timing loops which
>are being thrown off by the '030.  Does anyone know of fixes/patches/etc
>to either CrossDos or MSH that would fix the problem?

Dos-2-Dos version 2.0 (1987) does not work on an A3000.  It hangs when it
tries to access the disk (both internal and external 3.5 and external 5.25).

Extras:PCUtil/PCFormat does not work on an A3000 with 5.25 disk, even when
booted up with AmigaDOS-1.3.  It turns DF2's motor on and hangs with:
"Verifying Track 26", "Tracks Remaining -2".

CrossDOS 4.00a (July 10, 1990) works correctly on an A3000.  The package
now comes with the "2.0 compatible" sticker.

I had to purchase CrossDOS when all the other programs failed me, it works
great.
-- 
Joe Smith (408)922-6220 | SMTP: jms@tardis.tymnet.com or jms@gemini.tymnet.com
BT Tymnet Tech Services | UUCP: ...!{ames,pyramid}!oliveb!tymix!tardis!jms
PO Box 49019, MS-C41    | BIX: smithjoe | 12 PDP-10s still running! "POPJ P,"
San Jose, CA 95161-9019 | humorous dislaimer: "My Amiga 3000 speaks for me."

rbabel@babylon.UUCP (Ralph Babel) (10/15/90)

In article <1285@tardis.Tymnet.COM> jms@tardis.Tymnet.COM
(Joe Smith) writes:

> Dos-2-Dos version 2.0 (1987) does not work on an A3000.

Try V3.4.

Ralph

joseph@valnet.UUCP (Joseph P. Hillenburg) (10/15/90)

jms@tardis.Tymnet.COM (Joe Smith) writes:

> In article <08Oct90.151432.944@ckctpa.UUCP> crash@ckctpa.UUCP (Frank J. Edwar
> >I'm not sure where the problem with this is, but the MSDOS-compatibility
> >programs don't like my 3000.  I presume its due to CPU timing loops which
> >are being thrown off by the '030.  Does anyone know of fixes/patches/etc
> >to either CrossDos or MSH that would fix the problem?
> 
> Dos-2-Dos version 2.0 (1987) does not work on an A3000.  It hangs when it
> tries to access the disk (both internal and external 3.5 and external 5.25).
> 
> Extras:PCUtil/PCFormat does not work on an A3000 with 5.25 disk, even when
> booted up with AmigaDOS-1.3.  It turns DF2's motor on and hangs with:
> "Verifying Track 26", "Tracks Remaining -2".
> 
> CrossDOS 4.00a (July 10, 1990) works correctly on an A3000.  The package
> now comes with the "2.0 compatible" sticker.
> 
> I had to purchase CrossDOS when all the other programs failed me, it works
> great.
> -- 
> Joe Smith (408)922-6220 | SMTP: jms@tardis.tymnet.com or jms@gemini.tymnet.co
> BT Tymnet Tech Services | UUCP: ...!{ames,pyramid}!oliveb!tymix!tardis!jms
> PO Box 49019, MS-C41    | BIX: smithjoe | 12 PDP-10s still running! "POPJ P,"
> San Jose, CA 95161-9019 | humorous dislaimer: "My Amiga 3000 speaks for me."

So when the hell are we going to see LapLink/Amiga? I'd really like to 
use that, considerinng it'd blow away Dos-2-Dos. (And Mac-2-Dos if it had 
the right tools)

-Joseph Hillenburg

UUCP: ...iuvax!valnet!joseph
ARPA: valnet!joseph@iuvax.cs.indiana.edu
INET: joseph@valnet.UUCP

stefanb@cip-s03.informatik.rwth-aachen.de (Stefan Becker) (10/16/90)

jms@tardis.Tymnet.COM (Joe Smith) writes:

>In article <08Oct90.151432.944@ckctpa.UUCP> crash@ckctpa.UUCP (Frank J. Edwards) writes:
>Dos-2-Dos version 2.0 (1987) does not work on an A3000.  It hangs when it
>tries to access the disk (both internal and external 3.5 and external 5.25).

Dos-2-Dos V3.4 does work on an A3000 with WB2.0.

	Stefan

Mail  : Stefan Becker, Holsteinstrasse 9, W-5100 Aachen  ///    Only
Phone : +49-241-505705   FIDO: 2:242/7.6    Germany     ///  Amiga makes
Domain: stefanb@cip-s02.informatik.rwth-aachen.de   \\\///  it possible..
Bang  : ..mcvax!unido!rwthinf!cip-s02!stefanb        \XX/  -->A3000/25<--