Jump to content
IGNORED

DOS 3 history?


kheller2

Recommended Posts

Yeah, I've seen with and w/o dot and I swear I saw blue at one time. Would have to dig around in the piles of disks to see if there is a difference. I know i used to buy DOS 3 disks in bulk from some place in the 80s.

IIRC it was Best Electronics who sold them in 100 quantity back in the day fairly cheap, ideal for those who wanted un-notched disks.

Link to comment
Share on other sites

  • 1 year later...

Hmm The DOS 3 mystery deepens... according to Mapping the Atari:

 

3889 F31 DOS 3

If you PEEK here and get 76 ($4C), you have an early version of

DOS 3 (the later version will read 78). To correct some errors in

the earlier FMS files, type this in:

10 FOR N=1 TO 9:READ A,B:POKE A,B:NEXT N

20 DATA 3889,78,3923,78,3943,78,3929,76,389

5,76

30 DATA 3901,77,3935,77,3955,77,2117,240

Yet nothing in there touches location 1816. Is there a DOS 3 map anywhere that states what location 1816 0x718 is used for?

Link to comment
Share on other sites

  • 1 month later...

bump, as there was a podcast and resultant DOS along with it. someone should run it down and put it here... cross posting can be nice. I just remembered this. I can't remember more at the moment. If some one could be so kind and post the links.

Edited by _The Doctor__
Link to comment
Share on other sites

  • 3 years later...

Oh lets bump this thread just for fun.

 

DOS3 FMS:

*       MODS
*               M. W. Colburn           11/29/82
*               1. Release 2
*                  M. W. Colburn        12/29/82
*               2. Release 3
*                  M. W. Colburn        03/07/83
*               3. Release 4 (provide documentation, fix problems)
*                  R. K. Nordin         07/05/83
*               4. Release 9 (bring up to coding standard)
*                  R. K. Nordin         09/21/83
*               5. Release 10 (fix APPEND and NOTE/POINT problems)
*                  J. W. Clark/R. K. Nordin     03/20/84
*               6. Release 11
*                  J. W. Clark/Y. T. Jang   05/01/84

 

Release 11 is what is at AtariMania.

 

  • Like 5
Link to comment
Share on other sites

On 1/24/2022 at 12:23 PM, kheller2 said:

Oh lets bump this thread just for fun.

 

DOS3 FMS:

*       MODS
*               M. W. Colburn           11/29/82
*               1. Release 2
*                  M. W. Colburn        12/29/82
*               2. Release 3
*                  M. W. Colburn        03/07/83
*               3. Release 4 (provide documentation, fix problems)
*                  R. K. Nordin         07/05/83
*               4. Release 9 (bring up to coding standard)
*                  R. K. Nordin         09/21/83
*               5. Release 10 (fix APPEND and NOTE/POINT problems)
*                  J. W. Clark/R. K. Nordin     03/20/84
*               6. Release 11
*                  J. W. Clark/Y. T. Jang   05/01/84

 

Release 11 is what is at AtariMania.

 

Is that from a source listing?

-Thom

Link to comment
Share on other sites

1 hour ago, tschak909 said:

ok, at the risk of pulling teeth, has it been placed anywhere?

-Thom

No it has not and I’m debating about that.  It, the FMS source code for DOS 3, along with other firmware source code for not released floppy devices (mostly Mike B’s work), were given to me by Curt when I was doing some research a few years back on Atari’s floppy drive progression.  It’s also when we were all sorting out the different 1050 firmware levels and supposed bug fixes and the complete 815 firmware code.  ( no I do not have the official 1050 source ). 

Link to comment
Share on other sites

1 minute ago, tschak909 said:

I hope it does not get stuck in limbo, like so much already had. Curt wouldn't want it this way. I would very much like to study it.

 

-Thom

 

I agree.  But first I’ll need to recheck the original conditions under which it was given.  Some things can still be sticky. 

Link to comment
Share on other sites

Actually, the Dos 3 inner workings are in several instances simpler than what we have with Dos 2 and its derivatives. The file pointer is just a 24 bit number, and that's all it needs to read and write the file. There are no bytes to mask out from the file data sectors. Searching for free blocks is just a byte scan, and releasing a sector does not require masking bits. It only has this problem of being wasteful. A major problem.

  • Like 3
Link to comment
Share on other sites

2 hours ago, thorfdbg said:

Actually, the Dos 3 inner workings are in several instances simpler than what we have with Dos 2 and its derivatives. The file pointer is just a 24 bit number, and that's all it needs to read and write the file. There are no bytes to mask out from the file data sectors. Searching for free blocks is just a byte scan, and releasing a sector does not require masking bits. It only has this problem of being wasteful. A major problem.

Do you think that there were plans for a large storage device (hard drive) which DOS 3 was initially intended for, but it got cancelled and they used it for floppies?  Most if not all the disadvantages of DOS 3 become advantages on a hard drive.

  • Like 2
Link to comment
Share on other sites

2 hours ago, thorfdbg said:

Actually, the Dos 3 inner workings are in several instances simpler than what we have with Dos 2 and its derivatives. The file pointer is just a 24 bit number, and that's all it needs to read and write the file. There are no bytes to mask out from the file data sectors. Searching for free blocks is just a byte scan, and releasing a sector does not require masking bits. It only has this problem of being wasteful. A major problem.

yeah, really the only problem with it was its scarcity of allocation units, so they were very large. The filesystem was designed _VERY_ WELL.

 

-Thom

  • Like 1
Link to comment
Share on other sites

30 minutes ago, Stephen said:

Most if not all the disadvantages of DOS 3 become advantages on a hard drive.

The one that doesn't - as with FAT - is the lack of a bitmap allocation table. No problem with small volumes, but as soon as you have tens of thousands of clusters, scanning the FAT for free entries becomes inefficient.

 

FAT32 is a perfect example of this; despite hints in the BPB (absent from FAT16, whose FAT is never more than 128K in size anyway), searching for free clusters can be utterly daunting on a slow system. The exFAT filesystem addresses this by introducing a bitmap table (where each cluster's state is represented by 1/64th the number of bits per cluster entry in the FAT).

  • Like 3
Link to comment
Share on other sites

On 2/1/2022 at 4:02 PM, tschak909 said:

Ok, I will keep asking about it, as I have some definite questions about DOS 3's internals that need to be answered.

-Thom

 

Please continue to ask.  If there is a section that is important let me know and I can take a snippet, while I try to clear this through other channels. 

  • Like 1
Link to comment
Share on other sites

56 minutes ago, kheller2 said:

Please continue to ask.

1) What is the purpose of sectors 10-15 on a DOS 3 disk?

2) What is the exact definition of the first directory entry?

3) What is the meaning of the bits in the status byte of a regular directory entry?

4) Is there any provision for double density disks?

5) Any other special entries in FAT (sector 24) besides $FD, $FE and $FF?

 

(EDIT) A bonus way to crash DOS 3 DUP:

 

a) boot DOS 3 with BASIC on

b) when READY appears, do POKE 82,0

c) type "DOS", press Return.

 

Edited by drac030
  • Like 1
Link to comment
Share on other sites

9 hours ago, drac030 said:

(EDIT) A bonus way to crash DOS 3 DUP:

 

a) boot DOS 3 with BASIC on

b) when READY appears, do POKE 82,0

c) type "DOS", press Return.

 

2445: C6 52     DEC $52

2459: E6 52     INC $52

 

easy to fix

 

In addition, you may be tempted to upgrade the menu to look good in any screen width

 

  • Like 1
Link to comment
Share on other sites

15 hours ago, drac030 said:

1) What is the purpose of sectors 10-15 on a DOS 3 disk?

2) What is the exact definition of the first directory entry?

3) What is the meaning of the bits in the status byte of a regular directory entry?

4) Is there any provision for double density disks?

5) Any other special entries in FAT (sector 24) besides $FD, $FE and $FF?

 

(EDIT) A bonus way to crash DOS 3 DUP:

 

a) boot DOS 3 with BASIC on

b) when READY appears, do POKE 82,0

c) type "DOS", press Return.

 

Take my answers with a grain of salt but lots of pepper:

Sector Map:

***     Disk Sector Map
*
*       Sectors 0001 - 0015     Reserved for Boot Program (15 sectors)
*       Sectors 0016 - 0023     Directory (8 sectors)
*       Sector  0024            VTOC - Volume Table of Contents
*       Sectors 0025 - 0032     Block 0
*       Sectors 0033 - 0040     Block 1
*         ...
*       Sectors 0713 - 0720     Block 86 (last possible on 810)
*         ...
*       Sectors 1033 - 1040     Block 126 (last possible on 1050)

Directory Format:

 

***     Directory Format
*
*       Directory entries are stored on the disk in the 8 designated
*       directory sectors, 16-23.  Each entry is 16 bytes long (see
*       below), so a total of 64 (8*128/16) entries are possible.  The
*       first entry (0) is reserved for disk specific information,
*       including a DOS type byte and a disk size byte.  The remaining
*       63 entries define files.
*
*
*       Entry 0
*
*       Bytes 0 - 13    = 0
*       Byte  14        = Number of available blocks
*                         810 disk drive: 87 ((720-24)/8), maximum
*                         1050 disk drive: 127 ((1040-24)/8), maximum
*       Byte  15        = DOS ID ($A5)
*
*
*       Entries 1 - 63
*
*       Byte  0         = Status
*                               Bit 0 = Open for output
*                               Bit 1 = File protected
*                               Bit 6 = File in use
*                               Bit 7 = File activated
*       Bytes 1 - 8     = Filename primary (left justified)
*       Bytes 9 - 11    = Filename extension (left justified)
*       Byte  12        = Total number of blocks in the file
*       Byte  13        = First block of the file
*       Bytes 14 - 15   = Pointer to EOF within last block

VTOC Layout:

***     VTOC - Volume Table of Contents
*
*       The Volume Table of Contents (VTOC) is a 128-byte table, 1
*       table per disk, that contains block link information for the
*       files on that disk.  The VTOC sector is sector 24 on a disk.
*       Since DOS allocates the first 24 sectors for system overhead,
*       the first available sector for user file storage is sector 25.
*       Thus, the VTOC map starts at sector 25.  Each byte in VTOC
*       represents an 8 sector block.
*
*       Byte n of VTOC corresponds to block n.  Byte 0 corresponds to
*       block 0, which starts at sector 25.  Therefore, byte n of VTOC
*       corresponds to the 8-sector block starting at sector 8*n+25.
*
*       VTOC Bytes
*
*               $00             Block 0
*               $01             Block 1
*                 ...
*               $56             Block 86 (last possible on 810)
*                 ...
*               $7E             Block 126 (last possible on 1050)
*               $7F             Unallocatable block
*
*       VTOC Byte Values
*
*               The value of a VTOC byte describes the status of the
*               corresponding block:
*
*               $00 - $7F       Link from this block to the next
*                               block in the file
*               $80 - $FC       Reserved
*               $FD             Indicates block contains EOF
*               $FE             Indicates block is allocatable
*               $FF             Indicates block is not allocatable

By Support for DD, I'm assuming you mean sectors greater than 128 bytes.  The 1050 and 1450XLD [1983 version] ARE double density drives with MFM encoding, Atari just squeezed more sectors into the track vs increasing sector size.  DD to some folks means 512bytes, btw, not 256.   I'm going to say no, at this point, w/o combing through all the code. But what I have seen are a few hard coded references to 128bytes only. It doesn't seem Atari was thinking beyond that at this point. There is this relevant section from the FMS description:

*       FMS manages files on a diskette through the use of two data
*       structures on the diskette, the Directory and the Volume Table
*       of Contents (VTOC).  The Directory is in a fixed location on the
*       disk and consists of a maximum 63 entries specifying file name,
*       file status, file size, start of file, and end of file (EOF).
*       The 128-byte sectors available to the user are managed in groups
*       of 8, called "blocks".  (A block, thus, is 1024 bytes.)  VTOC is
*       a sector in a fixed location on the disk which describes the
*       allocation of the blocks.  Each of the 128 bytes of VTOC
*       describes the status of a corresponding block, either a link to
*       the next block in the file, an EOF indicator, an indicator of
*       the allocatability of the block, or an indicator of the
*       permanent non-allocatability of the block.

 

The 1983 1450XLD used a MFM drive, double sided where each side was a different drive unit: D1 and D2, hence the questions of DOS3 asking you if source and target are the same disk.  In hindsight, this seems like a very simple (but stupid) design choice on the part of the 1450XLD design and seems like a way to re-use DOS3 and 1050 components vs designing something clean -- which sort of came later.  Or it was a smart choice to keep everything compatible with one another in the 1050 world.  Unlike the 815.

 

I haven't looked much into it of late, but the 1984 1450XLD functioned a bit differently -- and good portions of the firmware and drivers, changes to the OS and the creation of DOS4 by Mike Barall in 1984 makes me think things were going to be a bit different for that device, especially with Mike doing the 1050CR "Persephone" code.

 

And for any lawyers out there, this text is considered a functional specification, not copyrighted code fragments with actual examples. 

 

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

@kheller2 Thanks a lot. This mostly agrees with my guesswork I did years ago:

 

http://atariki.krap.pl/index.php?title=Format_AtariDOS_3&redirect=no

 

although I can see now that I got one or two things wrong then.

 

8 hours ago, kheller2 said:

Bytes 14 - 15 = Pointer to EOF within last block

Well, indeed, but, since a block is 1024 bytes, one could expect this number to be in the range 0-1023. But in fact this is low 16 bits of the file's size in bytes.

 

8 hours ago, kheller2 said:

By Support for DD, I'm assuming you mean sectors greater than 128 bytes.  The 1050 and 1450XLD [1983 version] ARE double density drives with MFM encoding, Atari just squeezed more sectors into the track vs increasing sector size.  DD to some folks means 512bytes, btw, not 256.

I mean our traditional terminology, where 810 is single density, 1050 is dual/enhanced/medium density, and "double" is MFM with 256 bytes per sector (or possibly more). Not the FDC vendor terminology, where FM = single and MFM = double density.

 

One more bonus way to crash the DOS 3 DUP:

 

1) boot with BASIC on

2) when READY appears, do POKE 82,1

3) type "DOS", press Return

4) in the DOS menu, select "F"

 

Also, it seems that "Init disk" (and perhaps some more functions as well) does not work, if you have not listed a directory at least once after a boot.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...