Atari LiteDOS
 for 400/800 XL/XE Atari Homecomputers
"just your basic DOS needs"

(previously known as TinyDOS)
Updated: September-2018

Why?: Just for the fun of coding for the Atari.
:-D

"E.T. phone home"


SMALL: uses only 2k, 4k more free memory !
FAST: boots in 2-3 seconds.
SIMPLE: load/copy files wasn't this easy.
COMPATIBLE: reads Atari DOS 2.0 2.5 MyDOS and other compatible disks.

Available memory


Running RW-test / Loading the 850 using the build-in ("DOS")


 

(DOWNLOAD 1.06)
PLEASE LEAVE FEEDBACK
To: "mr-atari @ mr-atari . com" (remove the spaces).
No feedback, No nuts, No glory, No evolution.....

27-7-2018: BUGFIX, LiteINIT v1.1, thanks to 'Łukasz Maśko'
10-8-2018: CHANGE; removed DOS 1.0 support, ADDED; AUTORUN and more disk-sizes.
September 2018: Added ERASE and RENAME to the command-shell, added Power-up "P" in the command-shell.

Quick manual:

LiteDOS is just like any other DOS version you know for the atari 8 bit.
The difference is, that it is small (only 2k in size) and has no special functions (like append).
This means your programs can be 4k bigger or you can simply use more memory.
Wildcards are allowed (using * and ?).

Files can be loaded and saved like you used to.
SAVE or LIST will save files, were LOAD or ENTER will load them.
D:MYFILE.BAS is a valid file-name and wildcards are allowed (using * and ? to search for letters in the filename).
So D:MY*.???" will probably access the same file.
If your language supports the DIR command, files will be listed as usual.

To get started, just boot your LiteDOS disk as you would have done with any other DOS.

Please note:
*) You can not open files from C: and D: at the same time, due to shared buffer-memory.
*) Reading from C: and writing to D: is no problem.
*) LiteDOS is so small, it even runs on a 8k unexpanded Atari 400/800, if you have one. ;-)
*) Reading DD-disks from other DOS-types is supported, but compatibility can be an issue, since in this mode it uses undefined/free memory as a sector-buffer.



Command-shell:

LiteDOS comes with a small build-in command-line, with some basic functions, frequently used.
Other functions, like Format/Init a new disk, are done with external programs.
Build-in functions are to support stuff we know as LOAD COPY DIRECTORY ERASE and RENAME.
Current external programs are LiteINIT (Format/init-tool) and Lite850 (to load the 850-drivers into memory).

 

ENTER:
You can enter the command-shell using DOS <return> or boot without a cartridge/language installed.
Once in the command-shell, you get a prompt ">" in the left margin.

The command-shell is non destructive, so you can enter and leave it without loosing your work .
Of course this only is valid if you do not load or perform memory alternated commands....
But doing a DIRECTORY is completely safe. :-)

 

EXIT:
Exit the shell by simply pressing <return> at the beginning of any line.

 

RE-BOOT/POWER-UP:
If you want to re-boot/power-up, press P <return>

 

DIRECTORY:
Type <number> <return>
This will list all files on the disk, including free sectors if this is a LiteDOS disk.
Alternatively you can type <D1:*.*> or any other wildcard/knows letters to get a list of files from D1 (in this example).
So when you have a large LiteDOS or a MyDOS disk with subdirectories, typing Dx:ARIE*.* <enter>
will give a list of all files (in all directories) starting with ARIE on drive <x>
Large directories can be paused with CONTROL-1 or stopped with <BREAK>.

File-size is 3 digits in inverse video, values over 999 will be shown as +++.

Please note:
*) The DIRECTORY command will set the internal drive-ID to <x>

 

LOAD:
After you have done a directory-listing, simple navigate to the file you want to load.
Overtype the first character of the file-size with L and press <return>.
The loader will only load binary files or basic files, if the header is correct, it does not check the filename for EXE,BAS,etc.
- Binary files are loaded and executed as the file-layout specifies.
If the file does not want to run/init, you will return to the command-shell.
- Basic files will return to the cartridge/language after loading, using a soft-reset.

Alternatively, if you (partially) know the filename and on what drive it is, you can
type L3:MYFILE.BAS or L3:MY*.* for example to load your basic-program from drive-3.

 

COPY:
After you have done a directory-listing, simple navigate to the file you want to copy.
Overtype the first two characters of the file-size with C<x>. Where <x> is the destination drive.
This will copy the file to any LiteDOS formatted disk.
If you know the file to copy and are on the correct internal drive (source file), you can alternatively
type Cx:MYFILE.BAS. This will search and copy MYFILE.BAS from the internal drive-ID to drive <x>.

Please note:
*) The command-shell can only copy between drives.
*) You can copy from any supported DOS-type to LiteDOS.
*) You should not use wildcards, due to a bug/incompatibility, the matching letters are filled-in as "?" and used for the destination file.

 

ERASE:
After you have done a directory-listing, simple navigate to the file you want to erase.
Overtype the first character of the file-size with E and press <return>.
This will effectively free al sectors the file has in use and set the filename to deleted.

 

RENAME:
After you have done a directory-listing, simple navigate to the file you want to rename.
Overtype the first character of the file-size with R, navigate to the end of the file name and type ,NEWNAME BAS. and press <return>.
Make sure the old and new name is 11 characters long, padded with SPACE.
Do not forget the comma as separator and dot as end.

 

Easy to find/load programs of which you forgot the name:
Go to the command-shell.
Do a DIRECTORY of the drive.
Navigate to the file and press L<return> to load it.
Or remember the name and press <return> on a empty line to return to your cartridge/language.

 

I am ACTUALLY still writing this DOS-version from scratch just for the fun of coding.
If you have tips, tricks, remarks or incompatible files?
Just drop me an email (zip/attach the software you are running).
To: "mr-atari @ mr-atari . com" (remove the spaces).

 

Some notes/tips:
-The Command-Line is entered using the DOS-command (DOS <enter>).
-File-names are in 8.3 format, like D:MYFILE01.BAS
 Wildcards (using '*' and/or '?') is supported, like D:MYFILE01.??? or D:MY*.* or D:MY*.B??
-Loading from SubDirectories (MyDOS) is supported, LiteDOS will search subdirectories for the first matching file specified.
-USE LiteINIT to format and initialize new disks, supported are:
 90k   810/1050/XF551 SD     [720 sectors, 24 or 8 files]
 130k 1050/XF551        MD    [1040 sectors, 24 files]
 256k  HardDrive/CF     HDD  [2048 sectors, 24 files]
 512k  HardDrive/CF     HDD  [4096 sectors, 56 files]
 1Mb  HardDrive/CF      HDD  [8192 sectors, 120 files]
 2Mb  HardDrive/CF      HDD  [16384 sectors 248 files]
 4Mb  HardDrive/CF      HDD  [32768 sectors, 510 files]
 8Mb  HardDrive/CF      HDD  [65535 sectors, 510 files]



To make it this tiny, I made a lot of compromises with the OS resources.
Like sharing buffer-areas and not supporting other/special functions.
But then, what the hack, the standard user only wants to load/save his work.
The occasional IO on multiply files is still is possible, you just need to handle 1 READ- plus 1 WRITE-file at a time.
Same goes for devices C: and D: that share there resources, 1 device can be opened for READ at a time.
 

;---------------------------------------------------------------------------------------------------------------------------
; LITEDOS SOURCE CODE (C) MR-ATARI 2018
;---------------------------------------------------------------------------------------------------------------------------
; SIZE 2k (GOAL), $0700-$0Fxx
;
; SUPPORT LOAD/SAVE/LIST/ENTER/OPEN/GET/PUT ETC. CALLED BY USERS (PROGRAM-LANGUAGE)
; SUPPORT BINARY LOAD/EXECUTE (COMMAND-LINE).
; SUPPORTS BASIC LOAD (COMMAND-LINE).
;
; COMPATIBLE WITH ANYDOS USING VTOC-SECTORS 360-368 AND SUB-DIRECTORIES
;
; TO SUPPORT LARGER DISKS, CLUSTERS OF 2 SECTORS MINIMUM ARE USED
; TO MINIMIZE MEMORY USAGE IT USES/SHARES THE CASSETTE BUFFER FOR READ-IO
; TO SUPPORT MORE/LESS FILES, VTOC-SIZE IS LINKED TO CLUSTER-SIZE
;
; MAXIMUM OPEN FILES :     2 (1 READ/DIR, 1 WRITE)
; SPECIAL FUNCTIONS :       NONE
; MAXIMUM FILES ON DISK : 8-510 (DEPENDING ON CLUSTERS/DISK SIZE)
; CLUSTER SIZE :                 2-128 (256b-32k, DEPENDING ON DISK SIZE)
; MAXIMUM DISK SIZE :        READ 8/16Mb SD/DD(*), WRITE 8Mb SD
; DENSITY SUPPORT :          READ SD/DD(*), WRITE SD
; OS-SUPPORT :                   400/800/XL/XE
;
; (*) CAN BE INCOMPATIBLE WITH RUNNING SOFTWARE, USES PAGE 4 AS READ-BUFFER
;-------------------------------------------------------------------
; FMS SD-SECTOR LAYOUT
;
; BYTE FUNCTION
; 0-124 125 BYTES OF DATA (MAX)
; 125    8 BIT LINK-SECTOR-HI               ;LAST SECTOR OF FILE READS ZERO
; 126    8 BIT LINK-SECTOR-LO               ;LAST SECTOR OF FILE READS ZERO
; 127    BYTES IN USE                            ;LAST SECTOR OF FILE READS LESS THEN 125
;-------------------------------------------------------------------
; VTOC/DIRECTORY LAYOUT
; 2-128 SECTORS, 360-361/256-383  ;CLUSTER-SIZE DEPENDENT
; 1 SECTOR VTOC #360                   ;ALWAYS #360
;
; BYTE FUNCTION
; 0        FLAG                                  ;$60 LITEDOS, COMPATIBILITY, "PROTECTED FILE"
;                                                     ;%0000.0000 EMPTY
;                                                     ;%0XX0.XXXX IN USE BY SOMETHING
;                                                     ;%XXX1.XXXX MYDOS SUBDIRECTORY-LINK
;                                                     ;%1XXX.XXXX DELETED
; 1,2 SIZE SECTORS                         ;LO, HI
; 3,4 START FILE/SUB (16 BIT)         ;LO, HI
; 5-12 FILENAME                             ;8 CHARACTERS, PADDES WITH SPACE
; 13-15 EXT                                    ;3 CHARACTERS, PADDED WITH SPACE
;-------------------------------------------------------------------
; LITEDOS VTOC LAYOUT, SECTOR 360
;
; BYTE FUNCTION
; 0             DOSTYPE               ;MINUS+(CLUSTER-SIZE)
; 1,2          DISKSIZE               ;USABLE SECTORS (720/1040/X-1)
; 3-15        "LiteDOS(c)MrA"     ;COPYRIGHTS
; 16-31      "------VTOC------"   ;TEXT
; 32-95      BITMAP LITEDOS   ;64 BYTES EQUALS 512 CLUSTERS (510 FILES)
; 96-111    "-----512BIT-----"    ;TEXT
; 112         RESERVED
; 113,114   FREE SECTORS      ;FREE SECTORS ON DISK (NOT CLUSTERS)
; 115-127  "FreeSectors"          ;TEXT
;-------------------------------------------------------------------
; SOME SUPPORTED FORMATS:
; DISK SECTORS CLUSTER-SIZE VTOC-BUFFER FILES
; 810     720      2 SECTORS    45 BYTES 8
; 810     720      4 SECTORS    22.5 BYTES 24
; 1050  1040     4 SECTORS    32.5 BYTES 24
; HDD   2048     4 SECTORS    64 BYTES 24
; HDD   4096     8 SECTORS    64 BYTES 56
; HDD   8192   16 SECTORS    64 BYTES 120
; HDD 16384   32 SECTORS    64 BYTES 248
; HDD 32768   64 SECTORS    64 BYTES 510
; HDD 65536 128 SECTORS    64 BYTES 510
;-------------------------------------------------------------------