This is a quick pre-release binary-only demo of MAPUX, a UNIX-a-like for Amigas without MMUs. This distribution has been compiled on and for an Amiga A1200 with just the usual 2MB of RAM. Currently the only devices are /dev/fdd (the single internal floppy), /dev/tty[0123] (four separate "terminals" using the Amiga's internal video, /dev/null and /dev/mem. A hard disc, or a great deal of patience, is required to actually boot MAPUX. MAPUX may work on other Amigas: they must have a contiguous area of memory from 0 to 2MB (doesn't need to be ChipRAM) and have at least an '020 because of some m/c instructions used. Higher processors may also work (untested) and machines with less memory may work for a limited period (the system uses low memory address first). The MAPUX kernel is a port and enhancement of UZI, a freely distributably V7 kernel for Z80 systems, written from scratch by Douglas Braun. Please direct all reponses to me, not him, as he is not liable in any way shape or for MAPUX's bugs, shortfalls or whatever. You will need Bruno Costa's dd (available from Aminet as /disk/misc/dd.lzh) in order to alter the contents of the floppy disc. The file included with this distribution called 'testdev' is an image of the contents of a standard format floppy disc. This image can be mapipulated by the supplied tools mkfs and ucp, which create a new filesystem and allow files to be read and written respectively. The initial contents of testdev is probably the best place to start, however. ucp, when run gives you a cross between an ftp session and a UNIX shell. get moves files from the AmigaDOS fs to the MAPUX one while put does the opposite. mkdir, rmdir, mknod, chmod and so forth do what you'd expect. fsck requires three arguments: device number (0), isize (block devoted to inode storage) and fsize (total size of device in blocks). An isize of 128 seems to work for me. Device must be 0, and fsize must be 1760. In order to boot MAPUX: - dump the floppy image to the drive using the supplied scriptette 'dwrite'. - reset your 1200 and boot with no startup sequence - cd into wherever you unpacked the archive - execute the command mapgo If all goes well, the file kerim will be loaded into low memory and executed. You will be presented with a short message and a prompt (boot:) enter 0 (device number of the floppy drive) and press return. You should then notice some disc activity then a login: prompt. MAPUX is running. There are three users already set up: root, mcy and tester. All three have the same password as login (in this binary the password is displayed - I don't know why, it didn't before, I'll add it to the bug list). /bin contains some commands written by myself. They are not complete implementations of the UNIX version and none of them accept any flags. When a suitable C library becomes available the BSD commands (or others) may be used instead. Used the function keys f1, f2, f3, and f4 to move between the terminals. Beware that the multiple terminals were not supported in UZI and in MAPUX still, a control-C will send to signal to _all_processes_you_own_ not just those started from the current terminal. This is on the to-fix list. The shell, winsh, is the Well I Never SHell. It's small and largely featureless. It supports IO redirection (>,<, and >>) but not pipes (this is a limitation of winsh, not MAPUX). Variables can be set with "set vname value" and accessed in commands by prefixing vname with a dollar symbol. Some variable names are already set by login. Try these: echo $name echo $realname echo $home echo $path The $path variable is used by the shell when looking for commands. Previous commands can be executed with "!-n" where n is 1-7. Use the command "history" to see what's in the buffer. logout exits from the shell (without sending SIGHUP to running processes - something else for the fix list). Most commands that use filenames also accept wildcards in a twisted kind of way (not regexps, just * and ?). Also they generally accept several filenames on the command line. ls in particular does not behave as you might expect (try 'ls /bin' then 'ls /bin/*'). The supplied commands are: cat filename Dump files to stdout chmod perms file Change file permissions (argument in octal) chown uid gid file Change owner and group of file (uid/gid as numbers) clear Clear the screen cmp file file Compare two files (result is retval, not displayed) echo words Print arguments of stdout kill -signum pid Send a signal to a process ls file Lists the contents of directories mkdir file Creates a new directory (buggy) mknod perms dev file Creates a node in the filesystem (buggy) winsh The rather dodgy shell sleep n Waits for n seconds sync Flushes the buffers (do this before powerdown) emit a b c... Echos decimal ASCII values to stdout init The first process run automatically by MAPUX login Allows one to log into the machine dump file Hexadecimal/ASCII dump of a file error n Turns an error number into an English message ps Lists running processes rm Removes a file (buggy when removing directorys) tetris Slow tetris (think of it as a demo) Other files in the supplied filesystem are: /etc/logins List of devices when login prompts are displayed /etc/passwd The password file in the usual format. Note that currently there is no password encryption /dev/fdd The floppy disc block device /dev/tty Console device (press f1) /dev/null The null device /dev/mem All memory as a character device (used by ps) /dev/tty[123] The other terminals (press f1,f2,f3) There are some known bugs in the commands and in the kernel itself. If you find any, please let me know. If you can narrow them down to a particular circumstance, that's even better (rather than "Sometime when I..."). Parts of the code are copyright other people but freely disributable. I trust they won't sue for lack of acknowldegment in this release. Everything will be included in the forth coming source release. If you want a copy of the source now, send a blank floppy and SSAE to me and I'll return said code (as it currently stands) to you. I'll upload it when I've fixed a few of the more pressing bugs. Note that the most urgent things needed now are harddrive drivers and a native C compiler. If you could help with either of these, please drop me a line. Thanks. My snail address is: Martin Young, 74A Leigh Road, Eastleigh, Hants.