[comp.sys.amiga.tech] 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

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

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

I tried to mail this to zerkle@iris.eecs.ucdavis.edu, but it failed.
It is of more general interest anyway.

You wrote about the devio.c source file:
> I notice the recent (June) date on that.  Is this a fix for the 3000,
> or this this source just for other people to work on?  I would love to
> get MSH: fully working on the 3000, and you are the one to do it.

This is what I am currently using. It looks reasonable to me, but is
not documented, and I suspect it is this part that gives trouble on
the 3000. I hope someone will tell me what the documented way to do
this is. And that should then fix the problem. I hope.

Maybe you could help somewhat by verifying my theory. If you have Xoper
or some other task monitor program, you could try to write to a disk
and then look at the status of MSH: and the messydisk.device. If
the device remains waiting for a signal when it should be writing to
the disk, this confirms my theory. If you can, please let me know
the results with all details of such a test.

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

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<--

jesup@cbmvax.commodore.com (Randell Jesup) (11/08/90)

In article <2286@wn1.sci.kun.nl> rhialto@cs.kun.nl (Olaf Seibert) writes:
>>>[MSH does not work on a 3000]

>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)

	I've verified at the hardware level that the index signal occurs
(at least going into the 8520).

	I didn't see anything obviously wrong with your code, but nothing that
affects such things should have changed.  Note that timing may be different,
for example from the 32-bit chip memory access, processor speed, etc.  However,
properly written code shouldn't care.

	Does it work on an A3000 under 1.3, or is it broken on both 1.3 and
2.0?

-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
Common phrase heard at Amiga Devcon '89: "It's in there!"

bruce@zuhause.MN.ORG (Bruce Albrecht) (11/09/90)

>In article <15704@cbmvax.commodore.com> jesup@cbmvax.commodore.com (Randell Jesup) writes:
>In article <2286@wn1.sci.kun.nl> rhialto@cs.kun.nl (Olaf Seibert) writes:
>>>>[MSH does not work on a 3000]
>	Does it work on an A3000 under 1.3, or is it broken on both 1.3 and
>2.0?

I have not been able to get MSH 1.30 to work on my 3000 under 1.3 and 2.0.  In either
case it tells me that the drive is unreadable.  MSH 1.5 reads and writes on my 3000 
under 1.3, and will read under 2.0, but hangs with the drive active when I try to write.
CrossDOS works fine on 2.0 (haven't installed it on 1.3).  Although the CrossDOS
documentation doesn't indicate that you can do this, I appended the CrossDOS mountlist
to the devs:MountList, and used the system Mount command to mount the CrossDOS device
(which I renamed to A:).
--


bruce@zuhause.mn.org	   

ST00482@auvm.auvm.edu (11/09/90)

Sorry to pop in on this thread without reading it before, so excuse me if
I repeat something said before.

MSH runs fine on my 3000.  All I did was copy the mountlist, handler , and
filesystem to the proper places.  No problems.

dan.

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

ST00482@auvm.auvm.edu writes:

>Sorry to pop in on this thread without reading it before, so excuse me if
>I repeat something said before.

>MSH runs fine on my 3000.  All I did was copy the mountlist, handler , and
>filesystem to the proper places.  No problems.

>dan.


What version of the operating system are you using?  I cannot write 
without hanging the disk.  I cannot 'cd' to MSH: or messyfmt drive 0.

Any help on detailed information about your system would be helpful.\

Thanks,

jil@atanasoff.cs.iastate.edu  (jim)

jdutka@wpi.WPI.EDU (John Dutka) (11/10/90)

In article <jil.658179449@judy.cs.iastate.edu> jil@cs.iastate.edu (James Lathrop) writes:
>What version of the operating system are you using?  I cannot write 
>without hanging the disk.  I cannot 'cd' to MSH: or messyfmt drive 0.

Boot up in 1.3 and use MSH then.  It only works for me on my KS V2.01
machine that way...

--
| husc6!m2c!wpi!jdutka | "Hey, baby - wanna do some HEAT TRANSFER?           |
| jdutka@wpi.wpi.edu   |  Heh, heh, heh!"                                    |
| John Dutka, Jr.      |     -Mechanical Engineers On The Prowl              |
| jdutka%wpi.wpi.edu%mitvma.bitnet __________________________________________|

-- 
| husc6!m2c!wpi!jdutka | "Hey, baby - wanna do some HEAT TRANSFER?           |
| jdutka@wpi.wpi.edu   |  Heh, heh, heh!"                                    |
| John Dutka, Jr.      |     -Mechanical Engineers On The Prowl              |

haeb@ibmpcug.co.uk (Harry Broomhall) (11/11/90)

In article <15704@cbmvax.commodore.com> jesup@cbmvax.commodore.com (Randell Jesup) writes:
> In article <2286@wn1.sci.kun.nl> rhialto@cs.kun.nl (Olaf Seibert) writes:
> >>>[MSH does not work on a 3000]
> 
[stuff deleted]
> 
> 	I didn't see anything obviously wrong with your code, but nothing that
> affects such things should have changed.  Note that timing may be different,
> for example from the 32-bit chip memory access, processor speed, etc.  However,
> properly written code shouldn't care.
> 
> 	Does it work on an A3000 under 1.3, or is it broken on both 1.3 and
> 2.0?
> 

    I have tried this on our 3000.  It works fine using 1.3, but fails
on any write on 2.01 (CBM UK don't seem to have 2.02 yet).
     
    When I say on any write 'Delete' doesn't work either.

    Typical results are anywhere from hang to fireworks!


    Regards,
        Harry.
 
-- 
Automatic Disclaimer:
The views expressed above are those of the author alone and may not
represent the views of the IBM PC User Group.
--