Re: page 1 diskloading (was: 64K VRAM?)

1999-03-25 Thread Marco Antonio Simon dal Poz

On Wed, 24 Mar 1999, shevek wrote:

> On Wed, 24 Mar 1999, Jon De Schrijder wrote:
> 
> > But this routine is only provided in MSX-DOS(2) environment; when in
> > BASIC, a RET instruction is placed at #F36E.  So: disktransfer in page1 in
> > BASIC is probably not possible (or perhaps the F37D entry temporarily
> > changes the #F36E hook; didn't test it); This is logical: BASIC ROM is
> > normally selected in page 1.
> 
> It is not that logical. I want to make a program that is started from
> basic but switches ram to page 1. Than calling the diskrom on f37d with
> dma in page 1 would be useful. Until now, I always avoided it, but I would
> like to know if it would work on every MSX. If so, I could just as well
> use it...

I am sure that for Turbo-R and for port-based disk interfaces (Brazilian
ones) you can do that. For other interfaces, I am not sure, but it should
be possible.

PS: I traced the Turbo-R's diskrom, and I can guarantee that!

Greetings from Brazil!

-
Marco Antonio Simon Dal Pozhttp://www.lsi.usp.br/~mdalpoz
[EMAIL PROTECTED]   "Apple" (c) Copyright 1767, Sir Isaac Newton

/"\
\ / CAMPANHA DA FITA ASCII - CONTRA MAIL HTML
 X  ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
/ \



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: page 1 diskloading (was: 64K VRAM?)

1999-03-24 Thread Erik



Jon De Schrijder schreef:

> On Tue, 23 Mar 1999, shevek wrote:
>
> > On Mon, 22 Mar 1999, Marco Antonio Simon dal Poz wrote:
> >
> > > On Mon, 22 Mar 1999, shevek wrote:
> > >
> > > > On Mon, 22 Mar 1999, Marco Antonio Simon dal Poz wrote:
> > > >
> > > > > For the most part of diskroms, DMA can be in page 1, because they have
> > > > > access to FDC through addresses 7FF8h-7FFCh and also BFF8h-BFFCh, and they
> > > > > transfer a small routine to F1BFh (or something like that) that allows a
> > > > > disk transfer to happen in page 1.
>
> I don't think this is true.



Yes it's true , on all philips , exept for some old VG8230 , also #BFF8 - #BFFC is
used
for accessing the fdd controller , a little code will be placed inside the sector
buffer
and used to transfer data to page 1.
when you put the "fast" diskrom from a NMS8250 inside the VG8230 is will crash
when you want to load msx-dos
when you make a little modification and "mirror" 7FF8 etc to BFF8 it will work

erik de boer

--



>




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: page 1 diskloading (was: 64K VRAM?)

1999-03-24 Thread Nestor Soriano

>> But this routine is only provided in MSX-DOS(2) environment; when in
>> BASIC, a RET instruction is placed at #F36E.  So: disktransfer in page1 in
>> BASIC is probably not possible (or perhaps the F37D entry temporarily
>> changes the #F36E hook; didn't test it); This is logical: BASIC ROM is
>> normally selected in page 1.
>It is not that logical. I want to make a program that is started from
>basic but switches ram to page 1. Than calling the diskrom on f37d with
>dma in page 1 would be useful. Until now, I always avoided it, but I would
>like to know if it would work on every MSX. If so, I could just as well
>use it...

You can also start your program from DOS and switch BIOS on page 0: paging
will be the same as when starting from BASIC and switching RAM on page 1,
but you will have #F36E routine available. This should work. Just try. 8-)


 15th MSX users meeting in Barcelona: May 1th, 1999 

  Konami Man - AKA Nestor Soriano (^ ^)v - Itsumo MSX user

   New address!!http://konamiman.msx.tni.nl
   [EMAIL PROTECTED]   ICQ#: 18281450

 Metal Gear for MSX - (C) Konami 1987  (Nothing new under the sun...)



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: page 1 diskloading (was: 64K VRAM?)

1999-03-24 Thread shevek

On Wed, 24 Mar 1999, Jon De Schrijder wrote:

> But this routine is only provided in MSX-DOS(2) environment; when in
> BASIC, a RET instruction is placed at #F36E.  So: disktransfer in page1 in
> BASIC is probably not possible (or perhaps the F37D entry temporarily
> changes the #F36E hook; didn't test it); This is logical: BASIC ROM is
> normally selected in page 1.

It is not that logical. I want to make a program that is started from
basic but switches ram to page 1. Than calling the diskrom on f37d with
dma in page 1 would be useful. Until now, I always avoided it, but I would
like to know if it would work on every MSX. If so, I could just as well
use it...

Bye,
shevek

---
Visit the internet summercamp via http://polypc47.chem.rug.nl:5002



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




page 1 diskloading (was: 64K VRAM?)

1999-03-24 Thread Jon De Schrijder



On Tue, 23 Mar 1999, shevek wrote:

> On Mon, 22 Mar 1999, Marco Antonio Simon dal Poz wrote:
> 
> > On Mon, 22 Mar 1999, shevek wrote:
> > 
> > > On Mon, 22 Mar 1999, Marco Antonio Simon dal Poz wrote:
> > > 
> > > > For the most part of diskroms, DMA can be in page 1, because they have
> > > > access to FDC through addresses 7FF8h-7FFCh and also BFF8h-BFFCh, and they
> > > > transfer a small routine to F1BFh (or something like that) that allows a
> > > > disk transfer to happen in page 1.

I don't think this is true. The DISKIO(#4010) can transfer data in page 1
through the following mechanism: when data is transferred in page 2 or 3,
no slotswitching is needed. (bit 15 of the startaddress=1) When bit 15 of
the startaddress=0: transfer to page 0 or 1: (also special slotswitching
in page1 is needed when begin of transfer is in page 0 because transfer
can be partially in page 1 too! example: from #100 to #6000)
In that case: DISKIO gets sector bufferaddress in page3: pointer at
address #F34D/E. This seems to be the standard address, both in DOS1 and
DOS2. (It has to be, otherwise a floppydrive (DOS1) diskrom would not
function anymore when running DOS2) This is a 512 bytes buffer, large
enough to fit 1 sector.
So when reading from device: data is transferred to the sectorbuffer. Then
the registers are filled with values like for a normal LDIR (from
sectorbuffer to final destination in memory) and a call is made
to address #F36E (also standard for DOS1 and DOS2 kernels).
Here a routine is provided to make the main ramslot active in page 1. Before
making the ram active, the diskromslotcode is fetched by calling a
'where_am_i' routine in the diskrom (#402D I believe). When ram is
selected in page1 an LDIR instruction is executed and the diskrom is
reselected in page1.

But this routine is only provided in MSX-DOS(2) environment; when in
BASIC, a RET instruction is placed at #F36E.  So: disktransfer in page1 in
BASIC is probably not possible (or perhaps the F37D entry temporarily
changes the #F36E hook; didn't test it); This is logical: BASIC ROM is
normally selected in page 1.

> > > 
> > > Is that MSX-standard or just the case on many MSXs?
> > 
> > The standard doesn't say anything about the method that the diskrom should
> > use. So, it's just the case on many MSXs. The standard only says that the
> > interface should use memory addresses to transfer data between CPU and
> > FDC.
> 
> Ok, but this means that using DMA in page 1 is against MSX standard, or
> not?

don't know; I only noticed the following:
*diskrom DISKIO supports it
*F36E routines provided by DOS1/DOS2
*when you make a diskrom with no support for page1 disktransfer, all
things work fine. I don't think DOS2 uses it; don't know about DOS1.

Can you all confirm this information?

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