APPENDIX SEVENTEEN

DOS 2.5 And The 1050 Drive

The latest version of DOS (Disk Operating System) for the XL and XE computers is 2.5. It offers several advantages over the earlier ver- sions (including the ill-received DOS 3.0), including dual-density formatting, new XIO formatting commands available from BASIC, a RAMDISK program for the 130XE, and greater compatibility with DOS 2.0. If you use DOS 3.0, I suggest you get a copy of 2.5 as soon as you can. DOS 2.5 formats a track with 26 sectors instead of the 18 DOS 2.0 han- dles; this means a disk with 1010 sectors free instead of 707 (leaving 931 free sectors with DOS and DUP.SYS files on a disk). The 1050 (not the 810) drive can automatically sense which density the disk in the drive is using. DOS 2.0 can read a 2.5 disk but the additional sectors are invisible to it.

New BASIC Commands for DOS 2.5

When you OPEN a disk from BASIC to get a directory read (see loca- tion 1792; $700 in the Addenda section), you normally use OPEN #1,6,0,"D:*.*." Now, if you use OPEN #1,7,0,"D:*.*," DOS will specify files which occupy disk sectors that can't be accessed by 2.0 with angle brackets, like . These files are invisible to DOS 2.0 when reading a directory; they can't be loaded, nor do they show up in the directory. Formatting the disk by the XIO command is enhanced. The usual method is XIO 254, #1,0,0,"D1:." This will format the disk, trying first for dual density, and if the drive doesn't support it, formatting in single (2.0) density. XIO 253, #1,0,0,"D1:" formats a disk with single density only (a new option--P--has been added to the DOS menu to format in single density as well). XIO 253, #1,34,0,"D1:" will format a disk in dual density only.

RAMdisk for the 130XE

DOS 2.5 includes a special program called RAMDISK.SYS. This loads up when the disk is booted and determines if your computer is a 130XE. If so, it runs a small program which creates a "disk drive" out of the 64K extended memory bank. The RAMdisk acts just like a real disk, except that it's faster. It is formatted into 499 sectors and a direc- tory and has the drive number D8:. DOS 2.5 supports drives 1-8, but is initialized to drives 1, 2, and 8, so if you have other drives, change location 1802 ($70A); that is, if you have three drives and the RAMdisk, POKE 1802, 135. All bits in location 1802 now represent pos- sible drives. When it runs, RAMDISK.SYS copies MEM.SAV and DUPSYS to the RAMdisk, then modifies a location so that you call up DUP.SYS from the RAMdisk rather than D1:. This brings up DOS almost immediately when you leave BASIC. However, if you want to delete DUP.SYS from the memory drive and call it up from drive 1 as usual, type POKE 5439, ASC("1"), this points DOS back to the original drive. You can also delete MEM.SAV from D8: if you don't need it.

DOS 2.5 Boot Sector and Memory Map

Locations 1792-1812 ($700-$714) are loaded directly into RAM from the boot sector (sector 1) on a disk. Refer back to the section in the 400/800 memory map tar more explanation. These are from an article by Neil Harris in the Atari Explorer; they are locations Atari promises to support in the future:

1792 700 BFLG

Boot flag; always equals 0.

1793 701 BRCNT

Number of sectors in the disk boot; three--the first three on the disk.

1794,1795 702,703 BLDADDR

Boot load address; where DOS is loaded into memory; always 1792 ($700).

1796,1797 704,705 BINTAD

DOS initialization address; always 5440 ($1540).

1798-1800 706-708 BCONT

JMP instruction to jump to the address where the boot program continues execution; 1812 ($714).

1801 709 SABYTE

Maximum number of concurrently open files--usually three.

1802 70A DRVBYT

Drive allocation byte; one bit per drive.

1803 70B SAFBFW

Unused.

1804,1805 70C,70D SASA

Buffer allocation address for drives and files.

1806 70E DFSFLG

Reads zero if there is no DOS.SYS on disk, nonzero if present.

1807,1808 70F,710 DFLINK

Points to first sector of the DOS.SYS file.

1809 711 BLDISP

Number of displacement bytes to sector link bytes (last three); always 125 ($7D).

1810,1811 712,713 DFLADDR

Address of the FMS (D:) handler table; 1995 ($7CB).

1812 714 XBCONT

Boot program begins here.

1900 76C BSIO

BASIC SIO routines.

1906 772 BSIOR

FMS disk handler routines.

1913 779 ....

Write verify flag; 80 ($50) turns it off, 87 ($57) turns it on.

1995 7CB DFMSDH

FMS handler table. Has data in it different from 2.0 handler.

2016 7E0 DINIT

DOS initialization routine.

4993 1381 FBC

Start of the FMS file control blocks; first of eight.

5121 1401 FILDIR

128-byte buffer for a disk directory sector.

5439 153F ....

POKE with 49 (ASC("1")) to reroute DOS to call DUP.SYS from D1: rather than D8: when using the RAMdisk--you can then delete DUP.SYS and MEM.SAV from the RAMdisk for extra space. See location 1923 ($783) in the Addenda.

5440 1540 MINIDUP

Start of permanently resident portion of DUP.SYS.

5540 154A SFLOAD

Entry to DUP.SYS's routine to load binary files.

5542 15A6 STLOAD

Used with SFLOAD.

5545 15A9 LOAD

Used with SFLOAD.

Return to Table of Contents | Previous Chapter | Next Chapter