Big-DOS Copyright 1995 by Rainer Seitel Big-DOS is freeware. For details and the content of this package refer to bigdos.txt! Features -------- Big-DOS is an ISO 9293 filesystem that replaces the GEMDOS of TOS (not KAOS and not ASH-MagiC!). GEMDOS / ISO 9293:1987 / MS-DOS filesystem 32 Drives: A..Z1..6 or A..Z[\]^_` Up to 65518 cluster. 1 to 64 sectors per cluster. More than 65535 sectors and therefore every MS-DOS partition possible. That means also more than 32 Mbyte. 1 or 2 FAT. The legal characters are - configurable for each drive - resticted for GEMDOS, d-characters as in ISO 9293 resp. ISO 9660 or MS-DOS. You know in advance, that a MS-DOS computer or a restictive CD writing software can read all files. With setter.ttp from the HSModem archive, or the GEM version of Setter, from Markus Kohm, this can be permanently set in Big-DOS. The disk label will also be written to an MS-DOS boot sector. Works with or without MiNT. Big-DOS tries to lock removable cartridges using XHDI, if there were open files on it. (HDDRIVER, hdpSTACK, HuSHI) For TOS 1.04 and 1.06 no POOLFIX3.PRG, PFIX_CB.PRG or POOLFX92.PRG is needed. For TOS 4 no F030HFIX.PRG is needed. 94 standard handles fore open files, instead of 75. Cookies DATE and TIME as in DTCOOKIE and LED-Panel. Shows names of the loaded accessories. All GEMDOS Functions of TOS including Srealloc(). Srealloc() at present shows debug informationen. For very old programms, as Alcyon C, Cconws() is converted from CP/M-68K to GEMDOS. Aborting a tos programm by Control-C returns EBREAK (-68) instead of EINVFN (-32) like KAOS and ASH-MagiC. Mxalloc() ignoreres memory protection bits. Maddalt() takes memory with address below 16$ 40 0000 as ST-RAM. Sync() writes all buffers. Own Dcntl() opcodes as shown in dateisys.txt and FUTIME and KER_DOSLIMITS. With Dcntl(FUTIME, ...) date and time of a directory could be changed (e. g. by a backup program). Fattrib() can clear a from MS-DOS wrongly set archiv bit of disk labels. You can also change hidden and system bits of directories. DESKTOP, Gemini or Selectric, e. g. shows them only if you wish hidden files. Dlock() at present returns EACCDN (-36) if there are open files, EINVFN else. Dpathconf() Sysconf() Fxattr() returns as Inode the start cluster or - for an empty file - start cluster of directory + byte-position in the directory * 2^11. Drives can be configured for upper/lower case names. (--> Setter or dosmode.tos) That's a good test for own programs. Dpathconf(..., DP_TRUNC) can be configured returning DP_AUTOTRUNC instead of DP_DOSTRUNC. That is e. g. usefull for Gemini. Since MiNT handles Dpathconf() itself, this feature won't work with MiNT. Installing Big-DOS ------------------ BIGDOS.PRG (for the Falcon at present BIGDOS-F.PRG) should be the first program in your AUTO folder after the boot selector. In any case before every program in the GEMDOS trap which not use XBRA. BIGDOS.PRG installs itself at the end of the XBRA chain. (This works at least with MetaDOS, CHK_OFLS, NVDI, Overscan, AES-Font and HSModem.) Overscan must be placed after NVDI and before Big-DOS! LED-Panel must start after Big-DOS for a correct display of time. After rebooting, all should work normal. For MS-DOS partitions bigger than 32 Mbyte, you also need a hard disk driver which can handle big MS-DOS partitions (type 6) and allows access to more than 65535 sectors via Rwabs(). This should be a driver with XHDI 1.20, because Big-DOS tries to change the DOS limits via XHDOSLimits(). This function could be checked with XHDItest.ttp. For Atari's AHDI 6.061 a binary diff is included. (You need `Binary Patch' from Robert Federle. Search for `bptch1??.*' or `bdiff???.*'.) Place AHDI.PRG and BINPATCH.TTP in the directory of Big-DOS. Then start BINPATCH.TTP with the parameter `ahdi6061.bdf'. If you don't boot with AHDI, you can copy AHDIBIGD.PRG to your AUTO-Folder for testing. If you boot AHDI, you have to rename SHDRIVER.SYS on your boot partition and then copy AHDIBIGD.PRG to the root directory and rename it to SHDRIVER.SYS. If you don't use Big-DOS further, you have to remove the patched AHDI, avoiding that incompatible partitions were offered to TOS! You have been warned! AHDI doesn't work with hard disks with 2^21 sectors or more (1 Gbyte)! For bug reports see XHDItest.ttp below! Drivers, I had tested and the least version for good co-working: AHDI 6.061 with my patch, AHDI6061.ZIP Doesn't check DOS limits, doesn't lock removable cartridges. HDDRIVER 4.51, actual 6.10, search for demo HDDRIV*.ZIP Checks DOS limits, locks removable cartridges. CBHD 4.50, actual 5.02, search for CBHD???.TOS Checks DOS limits, doesn't lock removable cartridges. Sundries -------- DOSMODE.TOS shows and alter the legal characters for filenames on each drive: GEMDOS: A..Z0..9!#$%&'()-@^_`{}~"+,;<=>[]| and capital umlauts ISO: A..Z0..9_ MS-DOS: A..Z0..9!#$%&'()-@^_`{}~ and capital umlauts With setter.ttp from the HSModem archive, or the GEM version of Setter, from Markus Kohm, this can be permanently set in Big-DOS. XHDITEST.TTP shows for all or a given drive letter the partition size, bad values in the BPB, name and XHDI version of the hard disk driver and tests the DOS-limits function: :-( not available :-/ available, but could not change the limits :-) available and could change the limits With > as last argument, the standard output will be stored in xhditest.log. With >file in the given file. With HDDRIVER save to a floppy! Please include this file in your bug report. The only disk monitor for Atari's I know, that can handle MS-DOS partitions bigger than 32 Mbyte is the SED 5.66 from Anton Stepper and Claus Brod. It was selled with the german book Scheibenkleister - Massenspeicher am ST. And even this one needs a patch. You need the original source code, a GFA-BASIC interpreter 3.5 or 3.6 and the second version of my sed_566diffs.zip. Diskus 3.4x mainly works with big MS-DOS partitions. Problems were mainly caused by wrong error alert boxes. Known problems -------------- Big-DOS, NVDI and the Screenblaster driver doesn't work together. Omit one of them. Known problems of other programs -------------------------------- Getbpb() of TOS doesn't use the value reserved sectors including boot sector from the boot sector of floppy disks, but adding 1. So don't blame Big-DOS for the miss of this ISO 9293 feature. ;-) During my tests, the ICD driver only pretend to work with MS-DOS media, but it doesn't work! CHK_OFLS up to 1.02 crashes. Ddelete() cannot delete a current directory, but returns ECWD (-47) instead. Geminis Mupfel 1A ignores this, and without Big-DOS the deleted directory still is its current one. Only NEWDESK of TOS 2.05 to TOS 4.04 is alowed to delete its current directorys. Grrr! Fattrib(, , attrib) is a 16-bit parameter! If undefined bits were set, EACCDN (-36) is returend. If a program tries to create a file or directory with an illegal character, and ignores EBADRQ (-5), it probably crashes. Applications, which manipulate the memory management using undocumented variables, won't work. At least with an old version from TSFM.CPX, diskettes can be formatted with a too short FAT. Big-DOS ignores them. With HDDRIVER up to 4.50, changes of the XHDI DOS limits works only after a media change. So insert MS-DOS media after the Desktop has started or update to 4.51. The new version also set the correct media byte. In CBHD 4.53 XHDI is useless. With CBHD at least up to 4.57, after inserting a new disk, this disk cannot accessed by XHDI. That's why the disk lock doesn't work. There are several Programs that initialize the filesystem not correct. By the first access or after a media change, an error message is printed on the screen. If you type J or Y for yes the correct value will be written on disk. Contact the responsible programmer and tell him about the bug. (Now you can switch off this check with Setter.) BigDOS: FAT start of ?: shall be $F?, $FF, $FF [$FF]! Write? [YN] BigDOS: Media byte in boot sector of ?: is $??, shall be $F?! Write? [YN] Expression of thanks -------------------- Special thanks to Martin Drrschnabel and Norbert Fettig, for their contribution to the start of this program. New versions ------------ Updates by post are available from foreign countries against 2 reply coupon (fr: coupon-rponse international) for postage and 1 reply coupon for a floppy disk ISO type 302 (90 mm [ 3.5 in], HD). Postal address: Rainer Seitel Zaystrae 13 D-76437 Rastatt Germany e-mail: MausNet: Rainer Seitel @ KA Internet: Rainer_Seitel@ka.maus.de (prefered, no mail > 16 Kbyte per day!) Rainer.Seitel@stud.uni-karlsruhe.de Source of supply: BBS MAUS Karlsruhe, +49 721 358887, 2400-28800 bps, public access 08:00Z/03:00, german menu. http://www.uni-karlsruhe.de/~Rainer.Seitel/bigdos.html http://wwwrzstud.rz.uni-karlsruhe.de/~ujo7/bigdos.html (use this one for links) The actual version of CBHD is first at BBS MAUS Salzgitter, +49 5341 852024, analog and ISDN X.75. News ---- In Big-DOS 2 from 1995-10-10: Problems with TT and Falcon fixed. In Big-DOS 3 from 1995-10-22: Partitions whith BPB.numcl == 0 will be ignored. No crash if HDDRIVER is started before Big-DOS. XHDItest.ttp with german text if _AKP = $??????01??, else english. In Big-DOS 4 from 1995-11-09: Mshrink() works with Alternate-RAM. In Big-DOS 5 from 1995-12-03: Protected Minix partitions or disks will be ignored. Drive checking in Dpathconf() corrected. Mupfel ls without path works. Fxattr() correded. XHDItest.ttp can store to a file and use also Getbpb(). XHDOSLimits() only at start, instead before every Getbpb(). In Big-DOS 6 from 1996-01-14: NUM_FILEHANDLE -= 28, since MetaDOS uses handles from 100 to 199. The legal characters can permanently set for each drive with setter.ttp from the RS232 driver HSModem oder the GEM version from Markus Kohm. Fxattr("subdirectory\") is the same as Fxattr("subdirectory"). Bug fixed, that could occur with sectors 2048 byte. Some floppy disks were ignored because of a wrong test for the FAT size. XHDItest.ttp says, why Big-DOS ignores a drive in spite of a valid BPB. In Big-DOS 7 from 1996-09-25, Falcon version from 1996-12-22: The sector size of MS-DOS disks is no longer fixed to 512 bytes. If a hard disk driver with XHDI is started after Big-DOS, the DOS limits were changed by the next access. The XHDI cookie is checked before every XHDI call. Freeing a locked removable disk works again. The pool extension is correctly taken from spanish TOS 1.00. Big-DOS installs itself at the end of the XBRA chain. (Overscan, see above) Instead of an OSHEADER with pointers to mifl and act_pd of Big-DOS, the variables of the ROM GEMDOS were used. After a media change, the internal repeat of the access is back. Drives can be configured for upper/lower case names. Fxattr() returns for root directories of DOS media the creation time. Fclose() doesn't bomb with XHDI drivers after a Fdup(). XHDItest.ttp ignores a not connected drive B:. In Big-DOS 8 from 1997-01-05: Setter configuration block was defect in version 7.