Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.os.msdos.programmer > #121 > unrolled thread

Running (Free)DOS from ROM

Started byRuud <ruud.baltissen@gmail.com>
First post2011-08-05 10:08 -0700
Last post2011-09-01 17:34 -0700
Articles 20 on this page of 36 — 10 participants

Back to article view | Back to comp.os.msdos.programmer


Contents

  Running (Free)DOS from ROM Ruud <ruud.baltissen@gmail.com> - 2011-08-05 10:08 -0700
    Re: Running (Free)DOS from ROM Ross Ridge <rridge@csclub.uwaterloo.ca> - 2011-08-05 14:20 -0400
    Re: Running (Free)DOS from ROM "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-06 03:49 -0400
      Re: Running (Free)DOS from ROM Ruud <ruud.baltissen@gmail.com> - 2011-08-10 09:54 -0700
        Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-12 10:17 -0700
          Re: Running (Free)DOS from ROM Ross Ridge <rridge@csclub.uwaterloo.ca> - 2011-08-12 14:54 -0400
            Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-12 14:54 -0700
              Re: Running (Free)DOS from ROM Single Stage to Orbit <alex.buell@munted.org.uk> - 2011-08-12 23:22 +0100
              Re: Running (Free)DOS from ROM "Esra Sdrawkcab" <admin@127.0.0.1> - 2011-08-17 18:18 +0100
          Re: Running (Free)DOS from ROM Single Stage to Orbit <alex.buell@munted.org.uk> - 2011-08-12 22:54 +0100
            Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-12 15:45 -0700
              Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-12 18:38 -0700
                Re: Running (Free)DOS from ROM Ross Ridge <rridge@csclub.uwaterloo.ca> - 2011-08-12 23:40 -0400
                  Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-13 09:46 -0700
                    Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-13 16:04 -0700
                      Re: Running (Free)DOS from ROM Kalle Olavi Niemitalo <kon@iki.fi> - 2011-08-14 12:35 +0300
                        Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-14 09:48 -0700
          Re: Running (Free)DOS from ROM "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-14 02:36 -0400
            Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-14 10:04 -0700
              Re: Running (Free)DOS from ROM "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-15 03:42 -0400
                Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-15 10:05 -0700
          Re: Running (Free)DOS from ROM Ruud <ruud.baltissen@gmail.com> - 2011-08-14 00:33 -0700
            Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-14 10:09 -0700
              Re: Running (Free)DOS from ROM Ruud <ruud.baltissen@gmail.com> - 2011-08-15 12:44 -0700
                Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-16 16:05 -0700
                  Re: Running (Free)DOS from ROM "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-17 07:01 -0400
                    Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-17 11:07 -0700
                      Re: Running (Free)DOS from ROM "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-18 03:26 -0400
                      Re: Running (Free)DOS from ROM dg1261 <dgREMOVE-THIS1261@cs.com> - 2011-08-18 08:18 +0000
                        Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-18 10:23 -0700
                          Re: Running (Free)DOS from ROM Jim Leonard <mobygamer@gmail.com> - 2011-08-18 11:20 -0700
                            Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-18 17:29 -0700
                              Re: Running (Free)DOS from ROM "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-19 03:52 -0400
                          Re: Running (Free)DOS from ROM dg1261 <dgREMOVE-THIS1261@cs.com> - 2011-08-19 00:30 +0000
                            Re: Running (Free)DOS from ROM monahanz <monahan@vitasoft.org> - 2011-08-20 17:08 -0700
                              Re: Running (Free)DOS from ROM "s_dubrovich@yahoo.com" <s_dubrovich@yahoo.com> - 2011-09-01 17:34 -0700

Page 1 of 2  [1] 2  Next page →


#121 — Running (Free)DOS from ROM

FromRuud <ruud.baltissen@gmail.com>
Date2011-08-05 10:08 -0700
SubjectRunning (Free)DOS from ROM
Message-ID<6b6811ce-3541-47db-bd6d-4ec53eb5c182@e3g2000vby.googlegroups.com>
Hallo allemaal,


I'm hobbying more then a bit with some old IBM PC-XT (compatibles).
And I found an old REX EPROM card capable of handling up to sixteen
27512s, good for 1 MByte of data. IMHO enough to contain the most used
files of FreeDOS or MS-DOS. But how to do it?

I know I need a kind of device driver to tell DOS with what device, in
this case the EPROM card, is dealing. Problem: drivers are only loaded
_after_ various other files have been loaded. The PC knows this
because the BIOS contains info how to deal with a floppy drive. Or
with an hard disk drive thanks to the EPROM on the HDD card. Having
written
my own BIOS which I can adapt to my own needs, I won't need an extra
EPROM though :)

I'm sure I could figure it out myself after some time (I think) but if
anybody has done this before and wants to share the knowledge, I would
be very pleased!

Thank you very much in advance!


Groetjes, Ruud Baltissen

[toc] | [next] | [standalone]


#122

FromRoss Ridge <rridge@csclub.uwaterloo.ca>
Date2011-08-05 14:20 -0400
Message-ID<j1hc8v$rf0$1@rumours.uwaterloo.ca>
In reply to#121
Ruud  <ruud.baltissen@gmail.com> wrote:
>I'm sure I could figure it out myself after some time (I think) but if
>anybody has done this before and wants to share the knowledge, I would
>be very pleased!

I haven't done anything like this, and I doubt anyone has, but I'm
wondering what the problem you're actually facing is.  You seem to know
the obvious solutions, a block-mode device driver, an INT 13h hooking
boot ROM, or adding the functionality to your own BIOS.  You don't like
the first option, but I don't see what's preventing you from implementing
one of the second two solutions.

					Ross Ridge

-- 
 l/  //	  Ross Ridge -- The Great HTMU
[oo][oo]  rridge@csclub.uwaterloo.ca
-()-/()/  http://www.csclub.uwaterloo.ca/~rridge/ 
 db  //	  

[toc] | [prev] | [next] | [standalone]


#123

From"Rod Pemberton" <do_not_have@noavailemail.cmm>
Date2011-08-06 03:49 -0400
Message-ID<j1irmm$gjr$1@speranza.aioe.org>
In reply to#121
"Ruud" <ruud.baltissen@gmail.com> wrote in message
news:6b6811ce-3541-47db-bd6d-4ec53eb5c182@e3g2000vby.googlegroups.com...
>
> I'm hobbying more then a bit with some old IBM PC-XT (compatibles).
> And I found an old REX EPROM card capable of handling up to sixteen
> 27512s, good for 1 MByte of data. IMHO enough to contain the most used
> files of FreeDOS or MS-DOS. But how to do it?
>
> I know I need a kind of device driver to tell DOS with what device, in
> this case the EPROM card, is dealing. Problem: drivers are only loaded
> _after_ various other files have been loaded. The PC knows this
> because the BIOS contains info how to deal with a floppy drive. Or
> with an hard disk drive thanks to the EPROM on the HDD card. Having
> written
> my own BIOS which I can adapt to my own needs, I won't need an extra
> EPROM though :)
>
> I'm sure I could figure it out myself after some time (I think) but if
> anybody has done this before and wants to share the knowledge, I would
> be very pleased!
>

Sorry, not I ...

I would guess that you should just have the BIOS emulate a harddisk using
the data on the EEPROM.  IIRC, the first IBM PCs had no hard drive routines
in their BIOS.  AIUI, their hard drives had their own interface cards which
also had ROM routines on that card.  Later on, the BIOS gained interrupt
routines for hard drives.  AIUI, Int 13h was originally for floppies and is
redirected to Int 40h if a hard disk is found.  If a hard disk is found,
then Int 13h is for hard disk.  I'm assuming Int 13h must redirect floppies
to Int 40h when a hard disk is installed.  AIUI, the BIOS will enable ROM
code for other devices.  Apparently, it searches for AA55h signature between
640KB and 1MB on 2KB boundaries to locate other BIOS routines, e.g., video
BIOS, add in cards, etc.  So, as I see it, you're emulating a "ramdisk", via
your own add in device routines placed somewhere between 640K and 1MB in
ROM/EPROM/EEPROM that need an AA55h on a 2KB boundary, probably trapping Int
13h, maybe Int 18h and/or 19h, or somesuch ...  E.g., the "new" Int 13h
would need to "know" that it was accesses the EPROM and use different
routines from what it uses for a hard drive or floppy.

1981 BIOS Int 13h floppy support: 1981 for IBM PC
1984 BIOS extended Int 13h hard disk support: 1984 for IBM AT
1992 IBM/MS Int 13h extensions
1994 Phoenix EDD 1.0 - BIOS extended Int 13h CHS translation
1996 BBS (Bios Boot Spec) 1.01 - boot devices w/out Int 13h support
   (BBS adjusts Int 18h and 19h operation also)
1998 Phoenix EDD 3.0 - BIOS extended Int 13h for 28-bit LBA

Some of those might be work a look, e.g., BBS.


Rod Pemberton
(from comp.os.msdos.programmer)

[toc] | [prev] | [next] | [standalone]


#125

FromRuud <ruud.baltissen@gmail.com>
Date2011-08-10 09:54 -0700
Message-ID<6e31a256-92cf-4746-ad84-375bf8a160cb@b19g2000yqj.googlegroups.com>
In reply to#123
Hallo Rod,


> I would guess that you should just have the BIOS emulate a harddisk using
> the data on the EEPROM.

BINGO, I knew there should be a "simple" solution but I simply didn't
see it!

Thank you very much !!!


Groetjes, Ruud Baltissen
www.Baltissen.org

[toc] | [prev] | [next] | [standalone]


#126

Frommonahanz <monahan@vitasoft.org>
Date2011-08-12 10:17 -0700
Message-ID<8aa88c74-8511-4148-bbe3-2994ff90e17e@t30g2000prm.googlegroups.com>
In reply to#125
On Aug 10, 9:54 am, Ruud <ruud.baltis...@gmail.com> wrote:
> Hallo Rod,
>
> > I would guess that you should just have the BIOS emulate a harddisk using
> > the data on the EEPROM.
>
> BINGO, I knew there should be a "simple" solution but I simply didn't
> see it!
>
> Thank you very much !!!
>
> Groetjes, Ruud Baltissenwww.Baltissen.org

Ruud, I'm in the process of writing my own BIOS to allow MS-DOS
(Actually PC-DOS V2.1) run on an S-100 Bus system (see for example:-
http://s100computers.com/Software%20Folder/8086%20Monitor/8086%20Monitor.htm)

I currently have is as far as reading 5" 360K disk. I am about to try
and add an HDisk. I was going to first try and add a 1.4M 3" floppy.
My question is:  if I return the correct disk parameters  to Int 13H
will DOS V2.1 be able to read the disk (even though 1.4 disks were not
available at the time).

Obviously I will try for later versions of DOS later. But right now
they will not floppy boot. Clearly more work needed!

Do you have a link to your bios code or a summary of it? I cannot get
your www.Baltissen.org to link up.

John

[toc] | [prev] | [next] | [standalone]


#127

FromRoss Ridge <rridge@csclub.uwaterloo.ca>
Date2011-08-12 14:54 -0400
Message-ID<j23ssv$vf1$1@rumours.uwaterloo.ca>
In reply to#126
monahanz  <monahan@vitasoft.org> wrote:
>I currently have is as far as reading 5" 360K disk. I am about to try
>and add an HDisk. I was going to first try and add a 1.4M 3" floppy.
>My question is:  if I return the correct disk parameters  to Int 13H
>will DOS V2.1 be able to read the disk (even though 1.4 disks were not
>available at the time).

The easiest way to find out would be to get a PC with both a 5 1/4"
and 3 1/2' disk drive, boot MS-DOS 2.1 on it and see if it can acess
the 3 1/2" drive.  You can probably do this in virtual machine if you
don't have the hardware.

					Ross Ridge

-- 
 l/  //	  Ross Ridge -- The Great HTMU
[oo][oo]  rridge@csclub.uwaterloo.ca
-()-/()/  http://www.csclub.uwaterloo.ca/~rridge/ 
 db  //	  

[toc] | [prev] | [next] | [standalone]


#128

Frommonahanz <monahan@vitasoft.org>
Date2011-08-12 14:54 -0700
Message-ID<3b4db1dc-76a2-45c9-a791-07a259061f99@s18g2000prc.googlegroups.com>
In reply to#127
On Aug 12, 11:54 am, Ross Ridge <rri...@csclub.uwaterloo.ca> wrote:
> monahanz  <mona...@vitasoft.org> wrote:
> >I currently have is as far as reading 5" 360K disk. I am about to try
> >and add an HDisk. I was going to first try and add a 1.4M 3" floppy.
> >My question is:  if I return the correct disk parameters  to Int 13H
> >will DOS V2.1 be able to read the disk (even though 1.4 disks were not
> >available at the time).
>
> The easiest way to find out would be to get a PC with both a 5 1/4"
> and 3 1/2' disk drive, boot MS-DOS 2.1 on it and see if it can acess
> the 3 1/2" drive.  You can probably do this in virtual machine if you
> don't have the hardware.
>
>                                         Ross Ridge
>
> --
>  l/  //   Ross Ridge -- The Great HTMU
> [oo][oo]  rri...@csclub.uwaterloo.ca
> -()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
>  db  //  

Well I tried that experiment. Used A: PC-DOS V2.1 and had a 1.44M B:
with files (from a DOS V3.3 system copy).
Doing  DIR B: gave garbage file names.
Could not erase files either to try and  create my own "V2.1"
directory.
Not sure what the problem is since both use FAT12.

Interestingly I cannot get MS-DOS V3.3 to BOOT.  If I could I would be
in great shape. It hangs half way through the boot process. Any ideas?

[toc] | [prev] | [next] | [standalone]


#130

FromSingle Stage to Orbit <alex.buell@munted.org.uk>
Date2011-08-12 23:22 +0100
Message-ID<lllgh8-50e.ln1@nntp.local.net>
In reply to#128
On Fri, 2011-08-12 at 14:54 -0700, monahanz wrote:
> Well I tried that experiment. Used A: PC-DOS V2.1 and had a 1.44M B:
> with files (from a DOS V3.3 system copy).
> Doing  DIR B: gave garbage file names.
> Could not erase files either to try and  create my own "V2.1"
> directory.
> Not sure what the problem is since both use FAT12.

Looks like the floppy disk controller isn't being set up correctly to
read/write 1.44MB floppies. 
-- 
Tactical Nuclear Kittens

[toc] | [prev] | [next] | [standalone]


#149

From"Esra Sdrawkcab" <admin@127.0.0.1>
Date2011-08-17 18:18 +0100
Message-ID<op.v0dbovx6hswpfo@dell3100>
In reply to#128
On Fri, 12 Aug 2011 22:54:23 +0100, monahanz <monahan@vitasoft.org> wrote:

> On Aug 12, 11:54 am, Ross Ridge <rri...@csclub.uwaterloo.ca> wrote:
>> monahanz  <mona...@vitasoft.org> wrote:
>> >I currently have is as far as reading 5" 360K disk. I am about to try
>> >and add an HDisk. I was going to first try and add a 1.4M 3" floppy.
>> >My question is:  if I return the correct disk parameters  to Int 13H
>> >will DOS V2.1 be able to read the disk (even though 1.4 disks were not
>> >available at the time).
>>
>> The easiest way to find out would be to get a PC with both a 5 1/4"
>> and 3 1/2' disk drive, boot MS-DOS 2.1 on it and see if it can acess
>> the 3 1/2" drive.  You can probably do this in virtual machine if you
>> don't have the hardware.
>>
>>                                         Ross Ridge
>>
>> --
>>  l/  //   Ross Ridge -- The Great HTMU
>> [oo][oo]  rri...@csclub.uwaterloo.ca
>> -()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
>>  db  //
>
> Well I tried that experiment. Used A: PC-DOS V2.1 and had a 1.44M B:
> with files (from a DOS V3.3 system copy).
> Doing  DIR B: gave garbage file names.
> Could not erase files either to try and  create my own "V2.1"
> directory.
> Not sure what the problem is since both use FAT12.
>

do you need drivparm?

http://webpages.charter.net/danrollins/techhelp/0279.HTM

> Interestingly I cannot get MS-DOS V3.3 to BOOT.  If I could I would be
> in great shape. It hangs half way through the boot process. Any ideas?


-- 
[dash dash space newline sig]

"Nuns! NUNS! Reverse! Reverse!"

[toc] | [prev] | [next] | [standalone]


#129

FromSingle Stage to Orbit <alex.buell@munted.org.uk>
Date2011-08-12 22:54 +0100
Message-ID<u1kgh8-v2d.ln1@nntp.local.net>
In reply to#126
On Fri, 2011-08-12 at 10:17 -0700, monahanz wrote:
> if I return the correct disk parameters  to Int 13H
> will DOS V2.1 be able to read the disk (even though 1.4 disks were not
> available at the time). 

Yes definitely as long as the floppy disk controller supports it. 
-- 
Tactical Nuclear Kittens

[toc] | [prev] | [next] | [standalone]


#131

Frommonahanz <monahan@vitasoft.org>
Date2011-08-12 15:45 -0700
Message-ID<480676f2-43d9-4231-a96e-46b5302b4fff@t20g2000prf.googlegroups.com>
In reply to#129
On Aug 12, 2:54 pm, Single Stage to Orbit <alex.bu...@munted.org.uk>
wrote:
> On Fri, 2011-08-12 at 10:17 -0700, monahanz wrote:
> > if I return the correct disk parameters  to Int 13H
> > will DOS V2.1 be able to read the disk (even though 1.4 disks were not
> > available at the time).
>
> Yes definitely as long as the floppy disk controller supports it.
> --
> Tactical Nuclear Kittens

That sounds like good news to me. However I would like to be sure I
understand you correctly (as I am going to have to write a chunk of
software.  The good news is I control the r/w to the FDC 100% in the
BIOS.

So is it correct that if I read/write sectors to a 1.44M floppy (after
returning the Disk paramaters, sec/track, cylinders, etc.,Int 13,
AH=8) that DOS 2.1 will respond correctly even though 1.44 Disks were
not widely used at that time. (only 1.2M 5" drives).

Likewise along exactly the same lines, I control 100% the HDISK
controller. Can I get way for the IBM "Standard Drive types" --
obviously staying within the limits of a FAT12.

[toc] | [prev] | [next] | [standalone]


#132

Frommonahanz <monahan@vitasoft.org>
Date2011-08-12 18:38 -0700
Message-ID<f1651e66-4b50-4375-9921-c9e1ce378b7b@y19g2000pre.googlegroups.com>
In reply to#131
On Aug 12, 3:45 pm, monahanz <mona...@vitasoft.org> wrote:
> On Aug 12, 2:54 pm, Single Stage to Orbit <alex.bu...@munted.org.uk>
> wrote:
>
> > On Fri, 2011-08-12 at 10:17 -0700, monahanz wrote:
> > > if I return the correct disk parameters  to Int 13H
> > > will DOS V2.1 be able to read the disk (even though 1.4 disks were not
> > > available at the time).
>
> > Yes definitely as long as the floppy disk controller supports it.
> > --
> > Tactical Nuclear Kittens
>
> That sounds like good news to me. However I would like to be sure I
> understand you correctly (as I am going to have to write a chunk of
> software.  The good news is I control the r/w to the FDC 100% in the
> BIOS.
>
> So is it correct that if I read/write sectors to a 1.44M floppy (after
> returning the Disk paramaters, sec/track, cylinders, etc.,Int 13,
> AH=8) that DOS 2.1 will respond correctly even though 1.44 Disks were
> not widely used at that time. (only 1.2M 5" drives).
>
> Likewise along exactly the same lines, I control 100% the HDISK
> controller. Can I get way for the IBM "Standard Drive types" --
> obviously staying within the limits of a FAT12.

Been thinking some more. How Does/would V2.01 DOS know how many
directory entries (or the size of the FAT table) if it has never seen
a 1.44M floppy disk

[toc] | [prev] | [next] | [standalone]


#133

FromRoss Ridge <rridge@csclub.uwaterloo.ca>
Date2011-08-12 23:40 -0400
Message-ID<j24rni$om5$1@rumours.uwaterloo.ca>
In reply to#132
monahanz  <monahan@vitasoft.org> wrote:
>Been thinking some more. How Does/would V2.01 DOS know how many
>directory entries (or the size of the FAT table) if it has never seen
>a 1.44M floppy disk

The BIOS Parameter Block at the start of the disk should give it necessary
information.

						Ross Ridge

-- 
 l/  //	  Ross Ridge -- The Great HTMU
[oo][oo]  rridge@csclub.uwaterloo.ca
-()-/()/  http://www.csclub.uwaterloo.ca/~rridge/ 
 db  //	  

[toc] | [prev] | [next] | [standalone]


#134

Frommonahanz <monahan@vitasoft.org>
Date2011-08-13 09:46 -0700
Message-ID<f426252c-e40f-4fad-98f2-cef8340416b1@d8g2000prf.googlegroups.com>
In reply to#133
On Aug 12, 8:40 pm, Ross Ridge <rri...@csclub.uwaterloo.ca> wrote:
> monahanz  <mona...@vitasoft.org> wrote:
> >Been thinking some more. How Does/would V2.01 DOS know how many
> >directory entries (or the size of the FAT table) if it has never seen
> >a 1.44M floppy disk
>
> The BIOS Parameter Block at the start of the disk should give it necessary
> information.
>
>                                                 Ross Ridge
>
> --
>  l/  //   Ross Ridge -- The Great HTMU
> [oo][oo]  rri...@csclub.uwaterloo.ca
> -()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
>  db  //  

Thanks I will start programming though I am suspecious since the BIOS
PB returns a value in BL (1-4) corresponding to the disk type.
Presumably DOS 2.1 never heard of a type 4.   Also I was under the
impression that the Disk Parameter Block was internal in the BIOS and
used only by the FDC chip. Am I wrong.

John

[toc] | [prev] | [next] | [standalone]


#135

Frommonahanz <monahan@vitasoft.org>
Date2011-08-13 16:04 -0700
Message-ID<5c977c37-205b-4939-811e-bbc35b21879e@c8g2000prn.googlegroups.com>
In reply to#134
On Aug 13, 9:46 am, monahanz <mona...@vitasoft.org> wrote:
> On Aug 12, 8:40 pm, Ross Ridge <rri...@csclub.uwaterloo.ca> wrote:
>
> > monahanz  <mona...@vitasoft.org> wrote:
> > >Been thinking some more. How Does/would V2.01 DOS know how many
> > >directory entries (or the size of the FAT table) if it has never seen
> > >a 1.44M floppy disk
>
> > The BIOS Parameter Block at the start of the disk should give it necessary
> > information.
>
> >                                                 Ross Ridge
>
> > --
> >  l/  //   Ross Ridge -- The Great HTMU
> > [oo][oo]  rri...@csclub.uwaterloo.ca
> > -()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
> >  db  //  
>
> Thanks I will start programming though I am suspecious since the BIOS
> PB returns a value in BL (1-4) corresponding to the disk type.
> Presumably DOS 2.1 never heard of a type 4.   Also I was under the
> impression that the Disk Parameter Block was internal in the BIOS and
> used only by the FDC chip. Am I wrong.
>
> John

Well FWIW, my suspicions were correct.  When I installed the R/W FDC
functions for a 1.44M 3” disk on a freshly formatted disk from a PC, I
can write files correctly to the disk. No errors with a /V.
However when I run CHKDSK on B:
I get back “Probably non-DOS Disk”
If I hit CR I then see the capacity of the disk is only ~360K.  DOS
V2.1 is assuming it’s a 360K disk.
 I’m trying to determine if I am feed it something incorrect.
For INT 13H, AH=8 I returned:-
	XOR	AX,AX
	MOV	BH,0		;Always
	MOV	BL,04H		;0=Unknown, 1=360K, 2=1.2M, 3=720K, 4=1.44M
	MOV	CH,4FH		;Max Track 79
	MOV	CL,18		;Max sector
	MOV	DH,1		;Max heads
	MOV	DL,2			;Number of floppy disks!
	LES	DI,DWORD PTR FDISK_3PARM_TBL	;Return with drive paramater table
	mov   byte ptr IBM_DISK_STATUS,0	;show OK
	RET

FDISK_3PARM_TBL
                db      0AFH	;For 3" 1.44M Disks
                db      2
                db      25		 ;Time delay for motor
                db      2              ;512 byte sectors
                db      12H         ;18 sectors per track
                db      1BH	  ;GAP length
                db      0FFH	  ;DTL
                db      6CH	  ;GAP length for format
                db      0F6H	  ;Fill byte for format
                db      0FH	  ;Head settle time
                db      8		  ;Motor stat time

I use none of the above DP values in my BIOS but do return a pointer
to them for Int 13H (AH=8)
Can anybody give me some suggestions?
John

[toc] | [prev] | [next] | [standalone]


#138

FromKalle Olavi Niemitalo <kon@iki.fi>
Date2011-08-14 12:35 +0300
Message-ID<87bovs72uv.fsf@Niukka.kon.iki.fi>
In reply to#135
monahanz <monahan@vitasoft.org> writes:

> 	LES	DI,DWORD PTR FDISK_3PARM_TBL	;Return with drive paramater table

That looks wrong.  "LES DI, something" reads a pointer from
memory to ES:DI...

> FDISK_3PARM_TBL
>                 db      0AFH	;For 3" 1.44M Disks
>                 db      2
>                 db      25		 ;Time delay for motor
>                 db      2              ;512 byte sectors

...but the data at FDISK_3PARM_TBL is not a pointer.
So I think you'll just get constant ES=0219h and DI=02AFh,
which is of course useless to the caller.
Better use PUSH+POP+MOV like you do in int13hAH25.

[toc] | [prev] | [next] | [standalone]


#139

Frommonahanz <monahan@vitasoft.org>
Date2011-08-14 09:48 -0700
Message-ID<74091658-0d53-4883-a239-a8187e7da6d8@q12g2000prf.googlegroups.com>
In reply to#138
On Aug 14, 2:35 am, Kalle Olavi Niemitalo <k...@iki.fi> wrote:
> monahanz <mona...@vitasoft.org> writes:
> >    LES     DI,DWORD PTR FDISK_3PARM_TBL    ;Return with drive paramater table
>
> That looks wrong.  "LES DI, something" reads a pointer from
> memory to ES:DI...
>
> > FDISK_3PARM_TBL
> >                 db      0AFH       ;For 3" 1.44M Disks
> >                 db      2
> >                 db      25          ;Time delay for motor
> >                 db      2              ;512 byte sectors
>
> ...but the data at FDISK_3PARM_TBL is not a pointer.
> So I think you'll just get constant ES=0219h and DI=02AFh,
> which is of course useless to the caller.
> Better use PUSH+POP+MOV like you do in int13hAH25.

You were correct Kalle. I changed the code to:-
IS_144M_DISK:
	MOV	DI,Offset FDISK_3PARM_TBL	;Return with drive paramater table in
ES:DI
	MOV	AX,CS
	MOV	ES,AX				;And segment int ES:

	XOR	        AX,AX				 ;Disk paramaters for 1.44M 3" Drive
	MOV	BH,0				;Always
	MOV	BL,04H				;0=Unknown, 1=360K, 2=1.2M, 3=720K, 4=1.44M
	MOV	CH,4FH				;Max Track 79
	MOV	CL,18				;Max sector
	MOV	DH,1				;Max heads
	MOV	DL,2				         ;Number of floppy disks!
	mov     byte ptr IBM_DISK_STATUS,0	;show OK
	retf    2				                 ;throw flags on return (remember we got
here via an INT)

and checked it was working OK by loading DEBUG and @100H enetering:-
MOV AH,08H
MOV DL,1
INT 13H
NOP
NOP

then G=100 108
I examined the registers in particular ES:DI and all is fine.

However I still cannot get DOS 2.1 to recognize the B: drive as a
1.44M capacity drive.  I wondering if I should "fool" the system into
thinking it is a Hard Disk. Would that work. What different needs to
be done.

[toc] | [prev] | [next] | [standalone]


#136

From"Rod Pemberton" <do_not_have@noavailemail.cmm>
Date2011-08-14 02:36 -0400
Message-ID<j27qdl$k8d$1@speranza.aioe.org>
In reply to#126
"monahanz" <monahan@vitasoft.org> wrote in message
news:8aa88c74-8511-4148-bbe3-2994ff90e17e@t30g2000prm.googlegroups.com...
>
> I currently have is as far as reading 5" 360K disk. I am about to
> try and add an HDisk. I was going to first try and add a 1.4M
> 3" floppy.  My question is:  if I return the correct disk parameters
> to Int 13H will DOS V2.1 be able to read the disk (even though
> 1.4 disks were not available at the time).
>

The information I have indicates the listed disks were added with listed
version:

MS-DOS 1.00 160KB 5.25" SS/SD floppy disks
MS-DOS 1.10 320KB 5.25" DS/SD floppy disks
MS-DOS 1.25 360KB 5.25" DS/DD floppy disks
MS-DOS 3.00 1.2MB 5.25" DS/HD floppy disks
MS-DOS 3.20 720KB 3.5"  DS/DD floppy disks
MS-DOS 3.30 1.44MB 3.5" DS/HD floppy disks

HTH,


Rod Pemberton

[toc] | [prev] | [next] | [standalone]


#140

Frommonahanz <monahan@vitasoft.org>
Date2011-08-14 10:04 -0700
Message-ID<ac8e56ee-e83d-4cb4-be26-39701e4d080d@j37g2000prh.googlegroups.com>
In reply to#136
On Aug 13, 11:36 pm, "Rod Pemberton" <do_not_h...@noavailemail.cmm>
wrote:
> "monahanz" <mona...@vitasoft.org> wrote in message
>
> news:8aa88c74-8511-4148-bbe3-2994ff90e17e@t30g2000prm.googlegroups.com...
>
>
>
> > I currently have is as far as reading 5" 360K disk. I am about to
> > try and add an HDisk. I was going to first try and add a 1.4M
> > 3" floppy.  My question is:  if I return the correct disk parameters
> > to Int 13H will DOS V2.1 be able to read the disk (even though
> > 1.4 disks were not available at the time).
>
> The information I have indicates the listed disks were added with listed
> version:
>
> MS-DOS 1.00 160KB 5.25" SS/SD floppy disks
> MS-DOS 1.10 320KB 5.25" DS/SD floppy disks
> MS-DOS 1.25 360KB 5.25" DS/DD floppy disks
> MS-DOS 3.00 1.2MB 5.25" DS/HD floppy disks
> MS-DOS 3.20 720KB 3.5"  DS/DD floppy disks
> MS-DOS 3.30 1.44MB 3.5" DS/HD floppy disks
>
> HTH,
>
> Rod Pemberton

Thanks Rob. Yes I had the same information, but from above some people
are telling me if I return the correct DP table I can get 2.0 to work
with a 1.44M disk.

I would go to a V3.0 however the boot hangs on my hardware. The
problem is I am adapting my BIOS for a non PC setup (S100 System).
There must be something different in the Int calls in 3.0 that is not
in 2.0. I just cannot figure it out - still looking.  What I cannot
understand is that I have an "unimplemented INT trap" for all the 8086
Ints., yet it picks up nothing. Must be looking for some unusual
returned value in the same Ints I implement for V2.0

[toc] | [prev] | [next] | [standalone]


#142

From"Rod Pemberton" <do_not_have@noavailemail.cmm>
Date2011-08-15 03:42 -0400
Message-ID<j2aima$f57$1@speranza.aioe.org>
In reply to#140
"monahanz" <monahan@vitasoft.org> wrote in message
news:ac8e56ee-e83d-4cb4-be26-39701e4d080d@j37g2000prh.googlegroups.com...
>
> I would go to a V3.0 however the boot hangs on my hardware. The
> problem is I am adapting my BIOS for a non PC setup (S100 System).
> There must be something different in the Int calls in 3.0 that is not
> in 2.0. I just cannot figure it out - still looking.  What I cannot
> understand is that I have an "unimplemented INT trap" for all the 8086
> Ints., yet it picks up nothing. Must be looking for some unusual
> returned value in the same Ints I implement for V2.0
>

Have you implemented a BIOS interrupt trace?

You could print out to the screen which BIOS Int is called, it's AX, and
maybe BX.

Or, you could use the TF cpu flag to trace the assembly, but that requires a
bit more work.

For personal use, I've written a few DOS TSRs that trace interrupts.  They
write to the last line in a narrow column on the right hand side of the
screen.  I use Int 10h, AH=06h "SCROLL UP WINDOW" to set the text window
area and to scroll the output in that column up.  If you save the last
interrupt, you can compare it and only output new interrupts.  I output an
asterisk if the interrupt is repeated.  I'd think that should work for BIOS
also as long as the text screen is setup correctly.


Rod Pemberton


[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | comp.os.msdos.programmer


csiph-web