email@example.com placing the sentence "
send emulator faq" in the "subject" of the message.
comp.sys.atari.8bitUsenet newsgroup about the Atari 8bit emulator for IBM / MSDOS based computers, PC Xformer 2.0 (XF2 for short). Many people in the 8-bit community had gotten fed up with the XF2-based questions which did not pertain to them, or to the very simple questions which came up time and again which bothered regular readers / digest subscribers.
This file was created to reduce the number of 'newbie' and XF2 questions. Now it's becoming a fairly good reference, and of course includes information on all of the other emulators that have come since then.
This FAQ will present answers to simple questions like "how do I turn off BASIC" (a good answer to that of course is, READ THE FRIGGIN' MANUAL) and "how do I get a disk directory?"
It will also direct people who are unaware of the large amount of Atari 8-bit support (NOT NECESSARILY EMULATOR SUPPORT) and perhaps become a supplement to the many official and unofficial files floating around the net (like the official FAQ, the Vendor/Developer List, the Who's Who list, etc.).
It may not work under the XL/XE Operating System (rare cases), switch to 800 mode.
Be sure you turned BASIC off before trying to load it if it cannot run with BASIC on.
It might be a BASIC program! Be sure you're in BASIC and use the BASIC
RUN" or "
LOAD" (and then "
command. Also, be sure it works with the BASIC you have. Some programs
only run in BASIC XL or XE (which are both cartridge-based BASIC's not
easily available to an emulator), and some run with TurboBASIC XL
(disk-based). (Note: BASIC files usually end in the extension
.BXL," or "
for Atari BASIC, BASIC XL, and TurboBASIC XL, respectively.)
It may just refuse to run on the emulator.
To toggle BASIC on and off in Rainbow, ???.
To toggle BASIC on and off in Atari800, ???.
To toggle BASIC on and off in XL-It!, ???.
To toggle BASIC on and off in ST Xformer, ???.
To toggle BASIC on and off in ACE, ???.
To turn BASIC off on a real Atari, hold the [OPTION] key as you're booting. (This should work on emulators, too, but is usually difficult to accomplish!)
See "Why doesn't this program load?", above.
To exit Rainbow, press [Apple]-[Q] or select "Exit" from the "Apple Menu".
To exit Atari 800, ??? or close the window (in X Window).
To exit XL-It!, ??? or close the window (in X Window).
To exit ST Xformer, ???.
To exit ACE, ??? or close the window (in X Window).
DOS" at the "
Reboot without BASIC on.
Be sure you have a DOS-bootable disk image installed in drive 1 ("D1:").
XFORMER MYDOS45.ATR filename.extTo use a file from your Mac in Rainbow, make sure the disk image in drive 1 has enough space for the file, and select ???. The file will be added to that disk image.
To use Unix files in Atari800, use the H drive. ???.
To use Unix files in XL-It!, ???.
To use MSDOS or Unix files in ACE, ???.
Use the MSDOS program S2PC which allows you to access files within a MyDOS/compatible .ATR disk image. S2PC let's you read, write, delete, change directory, and view the directory of a MyDOS/compatible .ATR disk image. It can be used via command-line parameters from MSDOS, or as a menu.
Use the MSDOS program ATARIMG, which is much like S2PC but has a nicer, more graphical (less-menu driven) interface. (Unfortunately, this doesn't run on all IBM's!)
Use the Mac program Virtual Disk Editor ???.
Simply put, they are Atari disks, stored as files which are as big as the disk they represent (an 88k disk image will be approximately 88k.) .ATR files are used by SIO2PC and APE (see below) as well as most Atari emulators. .XFD files are used by ST Xformer and PC Xformer. .PRO files are like .ATR files, but they include some copy-protection scheme information; these files are used by APE.
Refer to the APE manual and SIO2PC hardware manual for details on this program.
These are a programs which run on IBM/compatibles under MSDOS. (APE also runs fine under "dosemu" for IBM/compatibles running Linux). With the use of of a simple (and relatively inexpensive) cable, the software makes the IBM act as though it were a number of Atari peripherals. SIO2PC emulates up to four disk drives (any drive ID numbers from 1 to 8 are allowed) and a printer. APE emulators up to eight disk drives, a printer, and a modem (RS232). They use disk image files (.ATR's) and can also let the Atari access plain IBM files. SIO2PC does this much like PC XFormer does, making the single file its own disk. APE allows you to navigate your PC's drives through an Atari drive. The printer emulation of these programs redirect Atari "P:" writes to the PC's printer. SIO2PC can also direct the output to the screen or to a plain IBM file. Different text translations/conversions are available. (APE also allows keyboard macros, command key redefinition, the ability to save the current drive/etc. configuration and load it later as a "block", and the ability to both emulate copy protected disks (with it's own extension of the ".ATR" format, the ".PRO" format (which will hopefully be used in future versions of Atari emulators)) and create disk images from copy protected disks (with a special cable). SIO2PC may soon have this ability as well, since the documentations say it has been planned for a while.)
XFSIO is a shell for PC XFormer, XLiT!, APE and SIO2PC which allows you to set the command switches for the previously mentioned programs. It also allows you to comment each 'virtual disk' with up to 132 characters, and can search the database to find which disk a particular title is on.
[*]Disk directory of current directory (like "
dir *.*" in MSDOS and "
ls *" in Unix)
-Disk directory of a disk drive (like "
dir a:\*.*" to "
dir i:\*.*" in MSDOS)
[A]Disk directory (like "
dir <mask>" and optional output destination in MSDOS) You'll be prompted for a directory listing mask (like "D1:*.*" or "D3:GAMES:*.EXE")
[B]Quit to cartridge
[C]Copy file(s) ("[source],[destination]" copies from one place or disk to another, just "[source]" copies from one place on one disk in a drive to the same place on another disk in the same drive (asks for swapping))
[D]Delete file(s) (add "/N" to delete without being prompted first) (add ">*.*" or ":*.*" after a subdirectory name to delete the files within it. A subdirectory name alone will delete the subdirectory (if it is empty and unlocked)). (Acts like both "
del" and "
rd" in MSDOS and "
rm" and "
rmdir" in Unix.)
[E]Rename file(s) (renaming multiple files is allowed, but be careful) (Like "
ren [old] [new]" in MSDOS and "
mv [old] [new]" in Unix. With MyDOS and AtariDOS use "," between old and new masks.)
[F]Locks file(s) from overwrite, deletion and appending (like "
attrib +r [mask]" in MSDOS and "
chmod 555 [mask]" in Unix.) (It makes them "read-only.")
[G]Unlocks file(s) (returns them to their default state).
[H]Writes DOS files to a disk (this creates a disk which boots with the current version of MyDOS you are using and also has the menu file "DUP.SYS" on it as well).
[I]Formats a disk (add "/N" after the drive number to do a quick-format of an already-formatted disk (ie, just a very fast way to delete all the files on the disk.))
[J]Duplicate disk (copies an entire disk, including boot sector, and every other sector!!! When using disk images, as with emulators, SIO2PC or APE, it's much quicker to just copy one .XFD or .ATR to another).
[K]Make binary file: saves memory and makes it binary-loadable. See [L].
[L]Load binary file: loads a compiled program. (like "[filename]" in MSDOS, except any ".EXE", ".COM", ".OBJ", etc. is still required.)
[M]Run at address. Mainly for advanced users. Reboot is "E477", reset is "E474" (these are the hex values of the addresses where the routines to reboot and reset are.)
[N]MEM.SAV: when this is on, whenever you go to DOS (from BASIC, for example) it will write what is in memory to a file "MEM.SAV" so that when DUP.SYS (the menu) loads it isn't lost forever. When you exit DUP.SYS with the "B: Run Cartridge" command, MEM.SAV is reloaded and the environment should be as it was when you left. It's probably quicker to simply "SAVE" your programs (if in a language) which aren't nearly as big as all of the memory that MEM.SAV saves.
[O]Options: this presents the user with some options. Mainly for advanced users or special setups. See the MyDOS docs for details.
[P]Set density. Forces a drive to be recognized at a certain density if MyDOS can't figure it out. (??)
[Q]Make a subdirectory. (like "md" or "mkdir" in MSDOS).
[R]Set default directory. (like "cd" in MSDOS and "cwd" in SpartaDOS) This makes "D:" now the same as a subdirectory or other drive. ie, "D2:" will make all calls to "D:" act as though they are to "D2:" instead. Some programs when prompting for filenames do not add "D:" to the beginning if one is not present, they add "D1:". If you don't trust a program to look to "D:" instead of "D1:" and you want it to look to some place OTHER than "D1:" (ie, where "D:" is pointing which could be a VERY long path list), just add "D:" to the beginning. ALSO, some programs don't even ADD "D:"'s if they aren't in the filenames you give and may give errors (138, for example: device not present, ie, if you said "TESTFILE.DAT" it may think you want "T:" instead of "D:TESTFILE.DAT").
[S]Set ramdisk number. This is also under [O]ptions.
[V]Verify writes. This is also under [O]ptions. When Verify is on, writes will be slower but 100% reliable. With it off, writes will be much faster but possibly not as reliable (on bad disks, for example). Default is off.
AtariDOS 2.5 presents the user with the following commands not present or not the same as MyDOS's commands:
[O]Duplicate file. This is used to copy a file from one disk to another using only one drive. (In MyDOS, giving just a source will make [C]opy act like DOS 2's Duplicate.)
[P]Format Single. In DOS 2.5, this is used to format 88k (Single Density) disks. To format an Enhanced Density (127k) disk, just use [I]. In DOS 2.0, [I] is the only format option and only handles 88k. (I may be wrong, but I have never had a Double Density drive under Atari DOS 2.0 or 2.5!)
To end the digression, the answer to 'how do I access the disk drives' starts with 'you must boot the Atari with a DOS'. Check the 8-bit FAQ and the UMICH and other FTP archives for lists of DOSes available for Ataris, but the most used are Atari DOS (for compatibility with almost ALL older software), MyDOS (for an Atari DOS compatible high-end DOS), and SpartaDOS (for a very high-end DOS which looks much like MS-DOS but unfortunately cannont run all software which runs fine with Atari DOS and MyDOS.) Note: SpartaDOS does NOT run on Atari 400's and 800's (except the cartridge versions and I believe disk version 1.1). Now that you have a DOS loaded, the Atari understands the "D:" device (see below for Atari devices). Since there is more than one disk drive, you have to be able to tell them apart. The Atari uses numbers when it has more than one of the same device, so "D1:" is drive 1, "D2:" is drive 2, "D3:" is drive 3, etc.!
After the "D:" device name comes the filename. Of the most used DOSes, only MyDOS supports lowercase letters in filenames, but since most programs force uppercase entry for filenames, nobody really seems to use lowercase in their filenames.
Here's a comparison to using subdirectories on different DOSes for the Atari and with MSDOS and Unix
root 'GAMES' 'SPACE' within 'GAMES' AtariDOS D: n/a n/a MyDOS D: D:GAMES: D:GAMES:SPACE: SpartaDOS D: D:GAMES> D:GAMES>SPACE> MSDOS (IBM) \ \GAMES\ \GAMES\SPACE\ UNIX / /games/ /games/space/Note, only Atari DOS would be using drive 1 here, all other DOSes are not necessarily using drive 1, and MyDOS and SpartaDOS may already 'be within' a subdirectory.
In MyDOS and SpartaDOS (and MSDOS), you can change the 'current'
or 'default' directory to a different place (a different drive or
a subdirectory). "D:" can stand for "D1:" (like AtariDOS always
does) or "
D2:GAMES:SPACE:"! PLEASE READ THE MYDOS OR
SPARTADOS DOCUMENTS FOR DETAILS ON THIS!
D1:DOCUMENT.TXT,P:" Except for ASCII text files, you'll usually want to print from within a program capable of opening the file, otherwise you'll print garbage. A good rule of thumb is if you can see it when you do a "C"opy to the "E:"ditor, then you can print it by "C"opying it to the "P:"rinter.
LOAD" command followed by a filename (see below). To load and run a program, use the "
RUN" command followed by a filename.
SAVE" command followed by a filename.
LIST" command followed by an optional destination device ("D:file.lst", "P:"rinter) and an option start and end set of lines seperated by (a) comma(s).
LIST 10" to see line 10.
LIST 10,20" to see lines 10 through 20.
LIST 10," to see lines 10 to the end (TurboBASIC XL and BASIC XL(?) only!)
LIST "P:"" prints the listing to the printer. (Beware the graphics characters will probably mess up the printout on most printers!)
LIST "D:A.LST",10,20" saves the listing of lines 10 through 20 to the file "
DOS" to quit BASIC and return to DOS.
BYE" to quit BASIC and exit to the OS's "bye" routines (Atari Memo Pad on 400/800's, Atari logo on 1200XL's, and Self Test on other XL's and XE's). (Note: On 1200XL's, use [HELP] to go to the Self Test when the Atari logo appears).
DIM [name]$(#). Example:
DIM A$(10)- now A$ can contain between 0 and 10 characters.
(Note: Add "32" to the mode number to keep the screen from clearing when it appears. One problem, however, all screens overlay each other so unless you only use certain modes at certain times, parts of some screens will become (or start out) with 'garbage' on them.)
GRAPHICS 0: 40 x 24 x 2 text
GRAPHICS 1: 20 x 24 x 5 text
GRAPHICS 2: 20 x 12 x 5 text
GRAPHICS 3: 40 x 24 x 4 graphics
GRAPHICS 4: 80 x 48 x 2 graphics
GRAPHICS 5: 80 x 48 x 4 graphics
GRAPHICS 6: 160 x 96 x 2 graphics
GRAPHICS 7: 160 x 96 x 4 graphics
GRAPHICS 8: 320 x 192 x 2 graphics
GRAPHICS 9: 80 x 192 x 16 luminence-only graphics
GRAPHICS 10: 80 x 192 x 9 graphics
GRAPHICS 11: 80 x 192 x 16 hue-only graphics
GRAPHICS 12: 40 x 24 x 4-colored text
GRAPHICS 13: 40 x 12 x 4-colored text
GRAPHICS 14: 160 x 192 x 2 graphics
GRAPHICS 15: 160 x 192 x 4 graphics
Commands available in Atari BASIC for manipulating simple graphics include:
PLOTx,y - plot a pixel
POSITIONx,y - position cursor
COLORc - set drawing color (c=color or character value)
DRAWTOx,y - draw a line from cursor location (set with "
DRAWTO" or "
LOCATEx,y,r (where "r" is a varibale where result will be stored)
SETCOLORc,h,l (c=palette location (0 to 4), h=hue (0 to 15, explained below, l=lum, 0 (darkest) to 15 (brightest))
COLOR command colors are not identical to
SETCOLOR command colors:
In 4-color drawing modes, all four of these colors map to the SETCOLOR palette locations:
COLOR 0will draw using the background color, set with
COLOR 1will draw using color "0", set with
COLOR 2will draw using color "1", set with
COLOR 3will draw using color "2", set with
In low-resolution 2-color drawing modes, these two colors map to the SETCOLOR palette locations:
COLOR 0will draw using the background color, set with
COLOR 1will draw using color "0", set with
In the high-resolution 2-color drawing mode (GRAPHICS 8), and in the 2-color text mode, (GRAPHICS 0 and the text windows), these three colors map to the SETCOLOR palette locations:
COLOR 0will draw using the background color, set with
COLOR 2will draw using a color which is the luminence of color "1" and the hue of the background (color "2"):
SETCOLOR 4,hue,luewill change the color of the screen border.
In the GTIA luminence-only graphics mode (GRAPHICS 9), the color specified with "COLOR" is the brightness of the pixels you plot (0 is black/darkest, 15 is white/brightest).
COLOR 0is the background color and pixel hue, set with
SETCOLOR 4,hue,0. Setting the luminence of the background to anything but 0 causes strange things to happen.
In the GTIA paletted graphics mode (GRAPHICS 10), the following colors are used:
COLOR 0is the background color, which is actually Player/Missile 0's color, set with
COLOR 1is PM 1's color,
COLOR 2is PM 2's color,
COLOR 3is PM 3's color,
COLOR 4is color "0",
COLOR 5is color "1",
COLOR 6is color "2",
COLOR 7is color "3",
In the GTIA hue-only mode (GRAPHICS 11), the color you specify is the hue of the pixel (see the "SETCOLOR" color table, above). The luminence of the pixels is based on the value for the background luminence:
SETCOLOR 4,0,lumSets the luminence of all colors except black, which remains darkest (black).
CHR$(253)aka [CONTROL]+ (NOT [CONTROL]+[G])
(Note: "Sh" means "[SHIFT]" and "^" means "[CONTROL]")
Key: AtASCII #: Use: ----------------- -------- --------------------------------------------- Atari none Turn inverse on/off (Atari 400/800 kybds) Inverse [Triangle] none Turn inverse on/off (Atari XL/XE kybds) CAPS none Turns caps-mode to lowercase (400/800 OS) CAPS none Toggles caps-mode from upper to lower (XL/XE) Sh-CAPS none Turns caps-mode to uppercase (all OSes) Ct-CAPS none Turns caps-mode to [Control]-[Lock] (all) Up ([^-]) 28 Move cursor up Down ([^=]) 29 Move cursor down Left ([^+]) 30 Move cursor left Right ([^*]) 31 Move cursor right Space 32 Move cursor right (overwrites w/Space char) BackSpace 126 Move cursor left (deletes previous char) Delete ([ShBkspc]) 156 Deletes a (logical) line (1-3 physical lines) Insert ([Sh>]) 157 Inserts a physical line Ct-Delete ([^Bksp]) 254 Deletes char under cursor, pulls rest left Ct-Insert ([^>]) 255 Inserts space under cursor, pushes rest right ClearScn ([^<]) 125 Clears screen Bell ([^2]) 253 Sounds buzzer TAB 127 Moves cursor to next TABstop ClrTAB ([^TAB]) 158 Clears any TABstop under cursor SetTAB ([ShTAB]) 159 Sets a TABstop under cursor ESC 27 Sets ESCape (next edit char after is shown, not done, non-edit chars shown (like normal)) RETURN 155 Sends End Of Line (moves cursor to lowerleft of next line, accepts input)
Note: Inverse characters have values of the normal version of the characters plus 128. (The only non-viewable inverse character is inverse-ESC, or what would be the [ESC],[RETURN] combination. The character exists, but must be set into screen RAM by hand.)
POKE 77,0" at least once every few minutes (IF the screen is active, otherwise turning it off would be kinda useless).
POKE 77,128", voila! instant attract mode!
XIO 32,#1,0,0,"D:FILE,OLDFILE"renames file
XIO 33,#1,0,0,"D:OLDFILE"deletes file
XIO 34,#1,0,0,"D:GAMES"creates a directory in My- & Sparta-DOS
XIO 35,#1,0,0,"D:NEWFILE"locks a file from over-write and deletion
XIO 36,#1,0,0,"D:NEWFILE"UNlocks a locked file
XIO 40,#1,4,0,"D:PROG.OBJ"loads and runs a binary file (like "L" in Atari and MyDOS)
XIO 40,#1,5,0,"D:PROG.OBJ"loads a binary file (like "L" in Atari and MyDOS with the "/N" option)
XIO 41,#1,0,0,"D:GAMES"changes default directory that drive/subdirectory (all calls to "D:" will now occur within that drive/directory)
XIO 254,#1,0,0,"D2:"FORMAT a disk (in Atari DOS 2.5, this is format 'enhanced', to format 'single' density, use XIO 253) (in MyDOS, this is format, but not 'enhanced', use:
XIO 253,#[channel],1,0,"D[drive]:"for formatting a drive in enhanced mode).
If you have double-density Atari disks, you can use the program "Util" on the IBM which can read double-density Atari disks. Please see the Atari 8-bit FAQ for more details.
If you have an Atari 1050 disk drive, you can use the program MULE to copy files, one file at a time, 20k chunks at a time, from the Atari to the IBM. You first must format a 180k disk on your IBM, then run MULE on your Atari to get a file onto the MULE disk, then run MULE on the IBM to get the file onto the IBM. Tedious, isn't it? MULE wasn't meant to be a fully-functional program, just a demo to show that this was even possible.
If you're fortunate to have a Black Box interface on your Atari, you can get an external IBM drive and the Black Box's add-on, the Floppy-Board and simply copy files from your Atari disks or hard drive(s) onto IBM disks via the floppy board, then load them up on your IBM.
You can use SIO2PC or APE, which are programs for IBM's which turn your IBM into a set of Atari disk drives. You need an "SIO2PC cable" or something similar (which you can purchase, assembled or unassembled, or buy parts and build it yourself) and the SIO2PC or APE software (available at UMICH).
SIO2PC users: Connect your IBM to your Atari, load SIO2PC, and then run the program FILE2PC on the Atari to transfer files to the IBM's hard drive. Or instead create a disk image within SIO2PC and copy files from one disk (a real Atari floppy) to another (the SIO2PC image) with the Atari or MyDOS "C"opy command. If you want to extract files out of the SIO2PC disk image file and store them on your IBM's hard drive or floppies as single files, either again use FILE2PC or use S2PC, an IBM program which can extract files from or add files to MyDOS-compatible SIO2PC disk images!
APE users: You can turn one of the 8 Atari drives into a "PC-Mirror" drive, allowing access to save and load files directly onto your PC's disks.
Yes! There's an IBM program out called "DCM2DSK".
There's also C source to a very similar program called "DCMTOATR" which works on PC's (a PC executable version comes in the archive) and Unix and probably any other system with a good C compiler.