Re: S/F motor off

1999-08-22 Thread Laurens Holst

> I've written a text about it and attached to this mail,

Great!


> Greetz,
> jon
> 
> ps. the new IDE interface is almost finished

Great!


> pps. I'll continue my work on Compass 2.0 (I will do my best to have a
> beta ready at Bussum fair)

Great!


~Grauw


--
><
  email me: [EMAIL PROTECTED] or ICQ: 10196372
 visit the Datax homepage at http://datax.cjb.net/
MSX fair Bussum / MSX Marathon homepage: http://msxfair.cjb.net/
><



MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-08-22 Thread Jon De Schrijder

Hi all,

when cleaning up my email, I came across the following:

Maarten ter Huurne wrote:
> 
> At 01:20 AM 07/25/99 +0200, you wrote:
> 
> >] By the way, do you know a way to find the DiskROM slot ID for a drive under
> >] DOS2? Under DOS1 you can use the #FB21 table, but I doubt that will work
> >] under DOS2, which supports re-arragning drive letters, gaps in drive
> >] letters (A,B,H) etc.
> >
> >I think that the FB21 table is the only viable method. Though, it will
> indeed
> >only give a mapping of the physical drive to the interface. Not of the
> >logical drive to the interface. Stupid DOS2...
> 
> Anyone knows of a mapping from logical drive to physical drive?
> 
> Bye,
> Maarten
> 

I've written a text about it and attached to this mail,

Greetz,
jon

ps. the new IDE interface is almost finished
pps. I'll continue my work on Compass 2.0 (I will do my best to have a
beta ready at Bussum fair)

File: DRIVENUM.TXT - 22/08/1999
Subject: Informative text about drivenumbers in the MSX system
By: [EMAIL PROTECTED] / Compjoetania TNG

There are 3 different kinds of 'driveletters' or 'drivenumbers':

1. the local drivenumber
2. the physical drivenumber
3. the logical drivenumber

Storage media are connected to the MSX by means of a diskinterface in a system slot. 
The software in such an interface is called a 'diskrom'. There can be a maximum of 4 
diskinterfaces connected to one MSX. Each diskinterface can be used to control more 
than one drive. 
Example 1: in most MSX2 models there is already an internal diskrom present to control 
two floppydrives.
Example 2: the partitions on a harddisk are treated as separate drives connected to 
one (hard)diskinterface

The drives connected to each diskinterface are identified with their 'local 
drivenumber'. This is a number counting from 0 without any 'gaps'. If there are 5 
drives connected to a diskinterface, their local drivenumbers *must* be 0, 1, 2, 3 and 
4.
When using the standard diskrom routines like DISKIO (#4010), the local drivenumber is 
passed in the A register.

When the MSX computer is turned on, all diskinterfaces install themselves into the 
system. There is an 8-byte table at address #FB21:
#FB21: number of drives connected to the 1st interface
#FB22: slotcode of the 1st interface
#FB23: number of drives connected to the 2nd interface
#FB24: slotcode of the 2nd interface
#FB25: number of drives connected to the 3rd interface
#FB26: slotcode of the 3rd interface
#FB27: number of drives connected to the 4th interface
#FB28: slotcode of the 4th interface

Each drive is given a physical drivenumber starting from the first interface. Example: 
if there are 3 drives connected to the first interface and two drives connected to the 
second and none to the other interfaces, then the situation is as follows:
local drive 0 on the 1st interface = physical drive 1
local drive 1 on the 1st interface = physical drive 2
local drive 2 on the 1st interface = physical drive 3
local drive 0 on the 2nd interface = physical drive 4
local drive 1 on the 2nd interface = physical drive 5

The number of physical drives is limited to 8. (When a diskrom installs itself, it 
should check that no more than 8 physical drives are created.)

Driveletters (e.g. A: B: ...) used in programs represent *always* logical 
drivenumbers. (There is one exception, see below)
A: =always logical drive 1
B: =always logical drive 2
C: =always logical drive 3
...
H: =always logical drive 8

In DOS1 environment there is no difference between the logical and the physical 
drivenumber. So logical drive 1 corresponds with physical drive 1, etc. (Also in the 
case of 1 floppydrive with logical drives A: and B:, there are two physical drives 1 
and 2.)

In native DOS2 environment there can be difference between the logical and the 
physical drivenumber. This is achieved by using the command ASSIGN or by the DOS 
function call #6A. With ASSIGN you can remap a logical drive to another physical 
drive. Example:
ASSIGN C: A:

This will redirect all access to logical drive C: to the first physical drive. Note 
that in this case 'A:' represent the first *physical* drive. This is the only 
exception, in all other cases 'X:' represent a logical drive.

When you want to access a drive directly, this is by using the standard 
diskromroutines like DISKIO (#4010), you need two things: the slotcode of the diskrom 
the drive is connected to and the local drivenumber of the drive you want to access. 
The following code can be used to do this:

;input:  (drive) contains logical drivenumber (A:=1 B:=2 ...)
;output: (drive) contains physical drivenumber (A:=1 B:=2 ...)
;No Carry=diskrom found
;(local) contains local drivenumber on the interface
;(slot)  contains slotcode of corresponding diskrom
;Carry=error diskrom not found

LD   C,#6F  ;get DOS kernel version
CALL BDOS
LD   A,B
CP   2
JR   C,DOS1 ;in DOS1 physical=log

Re: S/F motor off

1999-07-25 Thread Maarten ter Huurne

At 01:20 AM 07/25/99 +0200, you wrote:

>] By the way, do you know a way to find the DiskROM slot ID for a drive under
>] DOS2? Under DOS1 you can use the #FB21 table, but I doubt that will work
>] under DOS2, which supports re-arragning drive letters, gaps in drive
>] letters (A,B,H) etc.
>
>I think that the FB21 table is the only viable method. Though, it will
indeed 
>only give a mapping of the physical drive to the interface. Not of the 
>logical drive to the interface. Stupid DOS2...

Anyone knows of a mapping from logical drive to physical drive?

Bye,
Maarten




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-24 Thread Alex Wulms

] By the way, do you know a way to find the DiskROM slot ID for a drive under
] DOS2? Under DOS1 you can use the #FB21 table, but I doubt that will work
] under DOS2, which supports re-arragning drive letters, gaps in drive
] letters (A,B,H) etc.
I think that the FB21 table is the only viable method. Though, it will indeed 
only give a mapping of the physical drive to the interface. Not of the 
logical drive to the interface. Stupid DOS2...


Kind regards,
Alex Wulms


-- 
Alex Wulms/XelaSoft - MSX of anders NIX - Linux 4 ever
See my homepage for info on the  *** XSA *** format
http://www.inter.nl.net/users/A.P.Wulms




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-21 Thread Adriano Camargo Rodrigues da Cunha


Maarten,

> >] #401F: Stop drive served by this DiskROM.
> Does it stop _all_ drives server by that DiskROM or does it take some kind
> of parameter?

I disassembled many DiskROMs I have, and all of them disables ALL
drives served by that DiskROM. No parameter is required.

So, I concluded that I can't stop a given drive by myself, right?
I mean, if I started spinning drives A, B and C and I want to stop
only drive B, I can't do it by calling diskROM, right? The only way is
using direct access, right?


Adriano Camargo Rodrigues da Cunha   ([EMAIL PROTECTED])
Engenharia de Computacao - UNICAMP
http://www.adrpage.cjb.net   MSX-TR:I have one.And you?

* Computers can never replace human stupidity. *



MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-16 Thread Adriano Camargo Rodrigues da Cunha


> An old, but effective trick is the following:
>   LD  B, 255
> Loop: CALL$FD9F
>   DJNZLoop

Better put CALL 0FD9Fh between a PUSH BC/POP BC pair. I had
problems without this, 'cause FD9Fh destroys register B contents.


Adriano Camargo Rodrigues da Cunha   ([EMAIL PROTECTED])
Engenharia de Computacao - UNICAMP
http://www.adrpage.cjb.net   MSX-TR:I have one.And you?

* The only thing worse than X Windows: (X Windows) - X *



MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: Target: slowflop F700 (was Re: S/F motor off)

1999-07-12 Thread Laurens Holst

> Calling 256 times #FD9F still sounds a bit "tricky-wicky" to me. Moreover,
> the F700 patch turns #FD9F intro a simple RET, leaving the motor spinning
> forever.

Calling FD9F 256 times is one thing: compatible.
And you can use the other way of 'patching' the F700 which was suggested;
disable the VDP interrupts while loading from or saving to disk.

I remember some clubs could build other DiskROMs in Sony-computers... A lot
of people have 'patched' their computer that way... Then the drive will be
fast for ALL programs, not only the F700-patched programs (I don't think I
will add a 'F700-patch' to my game either).


~Grauw




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-12 Thread Maarten ter Huurne

Roberto Pinna wrote:

>Indeed... if you use B or BC you should push it, but what if you don't??
>(grin!)
>
>As far as I know $FD9F (H.TIMI), 'corrupts' not only BC, but as far as I
>know all registers, except IX, IY, and the shadow registers. If you
>really need them afterwards.. push everything on the stack.

It's not a question of using B afterwards, B is the loop counter!


MkII wrote:

>Killing interrupts or RETing #FD9F (at least someone who also uses #
>instead of h!) causes spinning-forever drive motor 8:(

I suggested killing interrupts during disk loading, not full-time.

And about RETting #FD9F, it's very easy to solve: simply copy the 5 bytes
of the hook entry to some memory location and then call that 256 times
after you're done loading.
But #401F is a nicer way, although it's more difficult.

A warning in advance: DOS2's disk change feature won't function well if the
interrupt routine is not called. Usually, it counts the time after a disk
access. Since it is physically impossible to swap a disk in less than about
a second, it's safe to assume the disk isn't changed if the last access is
more recent. But if you stop calling #FD9F, time will be "frozen" for DOS2
and it won't detect disk changes at all.
Ofcourse, for ESE-RAM this is not a problem, but for floppy it is. To solve
it, invalidate the DOS2 disk buffers (sector cache) using the BDOS call for
that purpose.

>Also, I'm planning to play background music while loading, so I need
>standard interrupts enabled.

Good luck! Playing music while loading is very difficult...

The reason: almost all DiskROMs turn off the interrupt for long periods
during loading. So unless you're willing to write custom FDC drivers (and
mail them to the UZIX team ;), you'll have to cope with long intervals
between interrupts.

You could make special music that still sounds nice when played while loading.
NOP played some kind of "music" while loading in Unknown Reality.
And for Almost Real we had a part planned where MSX-AUDIO ADPCM samples
were played while loading, using NOP's SampBox format. This "required" 256K
of sample RAM: the 32K version was very boring. This part didn't make it
into the released version, because it took too much disk space, required
non-standard hardware (256K sample RAM) and it needed debugging.

>>That's because the SONY DiskROM has a different "algorithm" for the drive
>>LED: it only turns on when that drive is selected. This is not connected to
>>the slowdown.
>
>I see. The light is unlit after loading but the motor is still spinning.

The motor does stop spinning automatically (by hardware), but not at the
same time as the LED goes out.

>Yeah. Now I'd like to know the actual causes of the slowdown. What does the
>interrupt do in a F700 to slow it down 400%?!?!?!?!?

Just an idea: maybe it's only a bit too slow. If it is called inbetween
sectors and doesn't return in time, the next sector will have passed the
head and the DiskROM will have to wait nearly a full rotation.
If this is true, an interleaved-formatted disk would be about equally fast
on a F700 and on for example a 8250.

Or maybe the F700 DiskROM turns on interrupts more frequently than other
models? You could measure this by installing a counter on #FD9F or #FD9A
and see how much counts it gets while loading a fixed amount of data on a
F700 and on a 8250 (take the average over a few runs).

Bye,
Maarten



MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-12 Thread Maarten ter Huurne

At 10:35 PM 7/11/99 +0200, you wrote:

>] #401F: Stop drive served by this DiskROM.
>] I'm not sure whether this stops a specific drive or all drives connected
>] to
>] the called DiskROM. On the 8250, it stops all drives. On some machines,
>] where the motors stops automatically, #401F is simply a "RET".
>It only stops the drives served by the diskrom. I prefer to use this
>function.

Yes, but what I don't know is:
Does it stop _all_ drives server by that DiskROM or does it take some kind
of parameter? It could be that the 8250 DiskROM does more than it should
do. I have no documentation for this call, what I know is from disassembling.
One document even describes #401F as "nothing (RET)". This was probably
someone disassembling as well, but on a Sony instead of a Philips.

>] #4029: Stop all drives.
>] Be careful using this, it may stop drives you don't want to stop. See
>] other mail.
>This function does not work properly on the MSX turbo R under DOS2. The DOS2 
>of the MSX turbo R contains a small bug in the call to the CPU switching 
>routine. So, please don't use this function at all.

Thanks for the warning.

By the way, do you know a way to find the DiskROM slot ID for a drive under
DOS2? Under DOS1 you can use the #FB21 table, but I doubt that will work
under DOS2, which supports re-arragning drive letters, gaps in drive
letters (A,B,H) etc.

Bye,
Maarten



MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




RE: S/F motor off

1999-07-12 Thread Patrick Kramer

> >This method worked perfectly on the Philips MSX computers. The Turbo-R
> >on the other hand doesn't need such a routine, since the spindle motor
> >is switched off automatically after a certain time.
> 
How? Does it have dedicated hardware?

I don't know, but I do know the Sony F700 works the same.
The drive always stops, as it is not controlled by counting down
through fd9f. How it IS controlled, I don't know...Maybe a simple one-shot,
triggered by drive-access?

If it is a Philips, you could POKE the counter to 1 so it will take
only 1 interrupt to stop. But this would not be 100% compatible I guess.

Greetz,
Patrick





MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Target: slowflop F700 (was Re: S/F motor off)

1999-07-11 Thread MkII

>] Generally, calling #FD9F 256 times works very well.
>]
>] If for some reason you want to stop drives directly, use these DiskROM
>] routines:
>]
>] #401F: Stop drive served by this DiskROM.
>] I'm not sure whether this stops a specific drive or all drives connected to
>] the called DiskROM. On the 8250, it stops all drives. On some machines,
>] where the motors stops automatically, #401F is simply a "RET".
>It only stops the drives served by the diskrom. I prefer to use this function.

I'll try this one. Thanks you all for the info.

Calling 256 times #FD9F still sounds a bit "tricky-wicky" to me. Moreover,
the F700 patch turns #FD9F intro a simple RET, leaving the motor spinning
forever.

Does the F700 slowdown apply only at file level or also at sector level? Is
it usual on the "F700 world" to have installed that speedup patch? Or F700
users are just that patient!!!???

Mk2




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-11 Thread MkII

>> Gee... as long as YOU PUSH BC INTO THE STACK BEFORE CALLING #FD9F!!!
>>
>> Hard to believe perhaps, but #FD9F trashes B in my NMS 8250 + ESE-RAM.
>
>Jeez, you don't have to shout

I guess the corrupted B register jammed the CAPS flag.!.2!?@#! 8:?

>Indeed... if you use B or BC you should push it, but what if you don't??
>(grin!)

[DEAD BLACK SCREEN]

Grin indeed.

>About your next message (about the Turbo-R). I cannot find the schematic
>right now (I have it. somewhere), but it has indeed some hardware to
>turn off the motor. Eventually building such a circuit is quite easy.
>If no data is read/written within a certain time, just change the state
>of the line which controls the spindle motor.

Just interesting. I want one.

Kisses.

Mk2




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-11 Thread Alex Wulms

] At 05:13 AM 7/10/99 +0200, you wrote:
] 
] >What's the best system-friendly way to stop floppy disk (or whatever
] >spinning device) motor before taking over system?
] 
] Generally, calling #FD9F 256 times works very well.
] 
] If for some reason you want to stop drives directly, use these DiskROM
] routines:
] 
] #401F: Stop drive served by this DiskROM.
] I'm not sure whether this stops a specific drive or all drives connected to
] the called DiskROM. On the 8250, it stops all drives. On some machines,
] where the motors stops automatically, #401F is simply a "RET".
It only stops the drives served by the diskrom. I prefer to use this function.

] 
] #4029: Stop all drives.
] Be careful using this, it may stop drives you don't want to stop. See other
] mail.
This function does not work properly on the MSX turbo R under DOS2. The DOS2 
of the MSX turbo R contains a small bug in the call to the CPU switching 
routine. So, please don't use this function at all.


Kind regards,
Alex Wulms
 

-- 
Alex Wulms/XelaSoft - MSX of anders NIX - Linux 4 ever
See my homepage for info on the  *** XSA *** format
http://www.inter.nl.net/users/A.P.Wulms




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-11 Thread Alex Wulms

] As far as I know $FD9F (H.TIMI), 'corrupts' not only BC, but as far as I
] know all registers, except IX, IY, and the shadow registers. If you
] really need them afterwards.. push everything on the stack.
Since FD9F is a hook, which can point to any kind of routine, it can change 
all registers. Even IX, IY and the shadow registers.

When you call FD9F to stop the drive, you can be sure that all registers WILL 
be destroyed. Because you are sure that it contains an interslotcall 
instruction to the diskrom. The interslotcall routine uses IX, IY and the 
shadowregisters as working registers during the slotswitch. And the normal 
registers will be used by the routine that you called...



Kind regards,
Alex Wulms

-- 
Alex Wulms/XelaSoft - MSX of anders NIX - Linux 4 ever
See my homepage for info on the  *** XSA *** format
http://www.inter.nl.net/users/A.P.Wulms




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-11 Thread Roberto Pinna

> Gee... as long as YOU PUSH BC INTO THE STACK BEFORE CALLING #FD9F!!!
> 
> Hard to believe perhaps, but #FD9F trashes B in my NMS 8250 + ESE-RAM.


Jeez, you don't have to shout

Indeed... if you use B or BC you should push it, but what if you don't??
(grin!)

As far as I know $FD9F (H.TIMI), 'corrupts' not only BC, but as far as I
know all registers, except IX, IY, and the shadow registers. If you
really need them afterwards.. push everything on the stack.


About your next message (about the Turbo-R). I cannot find the schematic
right now (I have it. somewhere), but it has indeed some hardware to
turn off the motor. Eventually building such a circuit is quite easy.
If no data is read/written within a certain time, just change the state
of the line which controls the spindle motor.



GreeTz,
Roberto


MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-11 Thread MkII

>This method worked perfectly on the Philips MSX computers. The Turbo-R
>on the other hand doesn't need such a routine, since the spindle motor
>is switched off automatically after a certain time.

How? Does it have dedicated hardware?




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-11 Thread MkII

>> well..
>>
>> LD  B, 255
>> Loop:   CALL$FD9F
>> DJNZLoop
>>
>> does the trick,

Gee... as long as YOU PUSH BC INTO THE STACK BEFORE CALLING #FD9F!!!

Hard to believe perhaps, but #FD9F trashes B in my NMS 8250 + ESE-RAM.

Mk2




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-10 Thread Maarten ter Huurne

At 05:13 AM 7/10/99 +0200, you wrote:

>What's the best system-friendly way to stop floppy disk (or whatever
>spinning device) motor before taking over system?

Generally, calling #FD9F 256 times works very well.

If for some reason you want to stop drives directly, use these DiskROM
routines:

#401F: Stop drive served by this DiskROM.
I'm not sure whether this stops a specific drive or all drives connected to
the called DiskROM. On the 8250, it stops all drives. On some machines,
where the motors stops automatically, #401F is simply a "RET".

#4029: Stop all drives.
Be careful using this, it may stop drives you don't want to stop. See other
mail.

You might wonder: How do you know which drive corresponds to which DiskROM?
There is a table for that: at #FB21 there are 4 entries of 2 bytes each.
The first byte is the number of drives connected to a DiskROM, the second
byte is the slot ID of the DiskROM. The DiskROMs are ordered in the same
order as the drive letters. On DOS1 anyway, I don't know how DOS2's
"ASSIGN" is implemented.

>Bearing in mind that data may have been loaded from another device (HD,
>ZIP, CD-ROM, RAMDISK...) which may or may not need to stop its motor when
>not in use for a long time.

The safest is to check the Drive Parameter Block before stopping a drive's
motor. Floppy media ID is #F8 or #F9 (others as well, but those are not
used on MSX), HD is #F0.

>Once more, Lady System Killer strikes back.

I bet the Beatles would have called you Lady System Destroyer... ;)

>A dishwasher has no BDOS nor GUI &'s also a home appliance 8;9

Not yet...
Using Back Orifice 2010, hackers will be able to remotely turn on and off
your dishwasher.

Bye,
Maarten



MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-10 Thread Maarten ter Huurne

At 07:27 AM 7/10/99 -0400, you wrote:

>xor a
>ld ($f1c1),a

This will turn off the floppy drive on a standard system, but I'm not sure
it will work on any system. The address #F1C1 is in a data structure that
doesn't have a fixed address, although it seems to be assigned the same
address on many machines.

I once wrote a routine to turn off any drive. It ended up stopping the
motor of Henrik Gilvad's hard disk. The problem is that the interface
didn't turn the motor back on so it crashed. Only after a reboot everything
worked again.

The strange thing is that I actually tested the routine on Yobi's harddisk,
which didn't stop. But the interfaces were probably different, Yobi had a
BERT and Henrik probably a Novaxis.

>Every time a disk-operation is done, the address $f1c1 is filled with
>255 because of the fact if it's not done, and e.g. the end of a file
>is not reached, the drive keeps spinning, so when there is read again
>the drive doesn't have to search the right sector again.. When this
>address is 0 the disk-drive light is turned off when the next interrupt
>occurs..

I thought "0" means that the drive was already turned off and "1" means it
will be turned off next interrupt (when the counter reaches zero).

Bye,
Maarten



MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-10 Thread Laurens Holst

> well..
>
> LD  B, 255
> Loop:   CALL$FD9F
> DJNZLoop
>
> does the trick,

Perfect. You don't need speed that much after loading from disk so this
little delay to stop the drive doesn't matter.


> but this is much faster:
>
> xor a
> ld ($f1c1),a

No!!! I know that it works, but the adress is not fixed!!!
That means that in a future update of Dos this adress might change,
resulting in all programs using this trick corrupting data it shouldn't.

So please... don't.


~Grauw





MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-10 Thread Jon De Schrijder



[EMAIL PROTECTED] wrote:
> 
> heya...
> 
> well..
> 
> LD  B, 255
> Loop:   CALL$FD9F
> DJNZLoop
> 
> does the trick, but this is much faster:
> 
> xor a
> ld ($f1c1),a

Ooooh no!!!

that will only work if the internal floppydrive is the only diskrom
present in your system. In that case the area from #F1C1..#F1C8 is used
for it. With other (harddisk)interfaces in the system, this area is
located somewhere else. In that case writing to #F1C1 can cause nothing
but trouble!

Therefore the best method is to call the fd9f hook 255 times. Works for
all configurations.

> mzl.
> d-fader^TwZ
> 

> Yep, I still have a lot to learn!..>

indeed ;)

Greetz,
jon




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-10 Thread twz

heya...


well..

LD  B, 255
Loop:   CALL$FD9F
DJNZLoop

does the trick, but this is much faster:

xor a
ld ($f1c1),a

It's like this..

Every time a disk-operation is done, the address $f1c1 is filled with
255 because of the fact if it's not done, and e.g. the end of a file
is not reached, the drive keeps spinning, so when there is read again
the drive doesn't have to search the right sector again.. When this
address is 0 the disk-drive light is turned off when the next interrupt
occurs..

mzl.
d-fader^TwZ
 

---
Get free personalized email at http://www.iname.com


MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




Re: S/F motor off

1999-07-09 Thread Roberto Pinna

> What's the best system-friendly way to stop floppy disk (or whatever
> spinning device) motor before taking over system?


Hello,

An old, but effective trick is the following:


LD  B, 255
Loop:   CALL$FD9F
DJNZLoop

This method worked perfectly on the Philips MSX computers. The Turbo-R
on the other hand doesn't need such a routine, since the spindle motor
is switched off automatically after a certain time.

GreeTz,
Roberto


MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)




S/F motor off

1999-07-09 Thread MkII

Talking about flashing drive LEDs...

What's the best system-friendly way to stop floppy disk (or whatever
spinning device) motor before taking over system?

Bearing in mind that data may have been loaded from another device (HD,
ZIP, CD-ROM, RAMDISK...) which may or may not need to stop its motor when
not in use for a long time.

Once more, Lady System Killer strikes back.

A dishwasher has no BDOS nor GUI &'s also a home appliance 8;9

Kisses.

Mk2




MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)