From: meulenbr@ce.philips.nl (Frans Meulenbroeks)
Newsgroups: comp.os.minix
Subject: atari 1.6.23 missing files (2)
Date: 5 Nov 92 10:01:06 GMT
Organization: Philips Consumer Electronics, Eindhoven

As promised here is a.out.h and minix/config.h
You definitely want to glance through minix/config.h before using it.
Look at the atari specific defines.

Enjoy!

Frans.

#!/bin/sh
# This is a shell archive (shar 3.41)
# made 11/05/1992 10:01 UTC by meulenbr@vdpsun6
# Source directory /tmp_mnt/home/meulenbr/priv/minix/1.6.23
#
# existing files will NOT be overwritten unless -c is specified
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#   3960 -rw-r--r-- include/a.out.h
#   7856 -rw-r--r-- include/minix/config.h
#
# ============= include/a.out.h ==============
if test ! -d 'include'; then
    echo 'x - creating directory include'
    mkdir 'include'
fi
if test -f 'include/a.out.h' -a X"$1" != X"-c"; then
	echo 'x - skipping include/a.out.h (File already exists)'
else
echo 'x - extracting include/a.out.h (Text)'
sed 's/^X//' << 'SHAR_EOF' > include/a.out.h &&
/* The <a.out> header file describes the format of executable files. */
X
#ifndef _AOUT_H
#define _AOUT_H
X
struct	exec {			/* a.out header */
X  unsigned char	a_magic[2];	/* magic number */
X  unsigned char	a_flags;	/* flags, see below */
X  unsigned char	a_cpu;		/* cpu id */
X  unsigned char	a_hdrlen;	/* length of header */
X  unsigned char	a_unused;	/* reserved for future use */
X  unsigned short a_version;	/* version stamp (not used at present) */
X  long		a_text;		/* size of text segement in bytes */
X  long		a_data;		/* size of data segment in bytes */
X  long		a_bss;		/* size of bss segment in bytes */
X  long		a_no_entry;	/* in fact: entry point, a_entry */
X  long		a_total;	/* total memory allocated */
X  long		a_syms;		/* size of symbol table */
X
X  /* SHORT FORM ENDS HERE */
X  long		a_trsize;	/* text relocation size */
X  long		a_drsize;	/* data relocation size */
X  long		a_tbase;	/* text relocation base */
X  long		a_dbase;	/* data relocation base */
};
X
#define A_MAGIC0      (unsigned char) 0x01
#define A_MAGIC1      (unsigned char) 0x03
#define BADMAG(X)     ((X).a_magic[0] != A_MAGIC0 ||(X).a_magic[1] != A_MAGIC1)
X
/* CPU Id of TARGET machine (byte order coded in low order two bits) */
#define A_NONE	0x00	/* unknown */
#define A_I8086	0x04	/* intel i8086/8088 */
#define A_M68K	0x0B	/* motorola m68000 */
#define A_NS16K	0x0C	/* national semiconductor 16032 */
#define A_I80386 0x10	/* intel i80386 */
#define A_SPARC	0x17	/* Sun SPARC */
X
#define A_BLR(cputype)	((cputype&0x01)!=0) /* TRUE if bytes left-to-right */
#define A_WLR(cputype)	((cputype&0x02)!=0) /* TRUE if words left-to-right */
X
/* Flags. */
#define A_UZP	0x01	/* unmapped zero page (pages) */
#define A_EXEC	0x10	/* executable */
#define A_SEP	0x20	/* separate I/D */
#define A_PURE	0x40	/* pure text */		/* not used */
#define A_TOVLY	0x80	/* text overlay */	/* not used */
X
/* Offsets of various things. */
#define A_MINHDR	32
#define	A_TEXTPOS(X)	((long)(X).a_hdrlen)
#define A_DATAPOS(X)	(A_TEXTPOS(X) + (X).a_text)
#define	A_HASRELS(X)	((X).a_hdrlen > (unsigned char) A_MINHDR)
#define A_HASEXT(X)	((X).a_hdrlen > (unsigned char) (A_MINHDR +  8))
#define A_HASLNS(X)	((X).a_hdrlen > (unsigned char) (A_MINHDR + 16))
#define A_HASTOFF(X)	((X).a_hdrlen > (unsigned char) (A_MINHDR + 24))
#define A_TRELPOS(X)	(A_DATAPOS(X) + (X).a_data)
#define A_DRELPOS(X)	(A_TRELPOS(X) + (X).a_trsize)
#define A_SYMPOS(X)	(A_TRELPOS(X) + (A_HASRELS(X) ? \
X  			((X).a_trsize + (X).a_drsize) : 0))
X
struct reloc {
X  long r_vaddr;			/* virtual address of reference */
X  unsigned short r_symndx;	/* internal segnum or extern symbol num */
X  unsigned short r_type;	/* relocation type */
};
X
/* r_tyep values: */
#define R_ABBS		0
#define R_RELLBYTE	2
#define R_PCRBYTE	3
#define R_RELWORD	4
#define R_PCRWORD	5
#define R_RELLONG	6
#define R_PCRLONG	7
#define R_REL3BYTE	8
#define R_KBRANCHE	9
X
/* r_symndx for internal segments */
#define S_ABS		((unsigned short)-1)
#define S_TEXT		((unsigned short)-2)
#define S_DATA		((unsigned short)-3)
#define S_BSS		((unsigned short)-4)
X
struct nlist {			/* symbol table entry */
X  char n_name[8];		/* symbol name */
X  long n_value;			/* value */
X  unsigned char	n_sclass;	/* storage class */
X  unsigned char	n_numaux;	/* number of auxiliary entries (not used) */
X  unsigned short n_type;	/* language base and derived type (not used) */
};
X
/* Low bits of storage class (section). */
#define	N_SECT		  07	/* section mask */
#define N_UNDF		  00	/* undefined */
#define N_ABS		  01	/* absolute */
#define N_TEXT		  02	/* text */
#define N_DATA		  03	/* data */
#define	N_BSS		  04	/* bss */
#define N_COMM		  05	/* (common) */
X
/* High bits of storage class. */
#define N_CLASS		0370	/* storage class mask */
#define C_NULL
#define C_EXT		0020	/* external symbol */
#define C_STAT		0030	/* static */
X
/* Function prototypes. */
#ifndef _ANSI_H
#include <ansi.h>
#endif
X
_PROTOTYPE( int nlist, (char *file, struct nlist *nl)			);
X
#endif /* _AOUT_H */
SHAR_EOF
chmod 0644 include/a.out.h ||
echo 'restore of include/a.out.h failed'
Wc_c="`wc -c < include/a.out.h`"
test 3960 -eq "$Wc_c" ||
	echo 'include/a.out.h: original size 3960, current size' "$Wc_c"
fi
# ============= include/minix/config.h ==============
if test ! -d 'include/minix'; then
    echo 'x - creating directory include/minix'
    mkdir 'include/minix'
fi
if test -f 'include/minix/config.h' -a X"$1" != X"-c"; then
	echo 'x - skipping include/minix/config.h (File already exists)'
else
echo 'x - extracting include/minix/config.h (Text)'
sed 's/^X//' << 'SHAR_EOF' > include/minix/config.h &&
#ifndef _CONFIG_H
#define _CONFIG_H
X
/* This file sets configuration parameters for the MINIX kernel, FS, and MM.
X * It is divided up into two main sections.  The first section contains
X * user-settable parameters.  In the second section, various internal system
X * parameters are set based on the user-settable parameters.
X */
X
/*===========================================================================*
X *		This section contains user-settable parameters		     *
X *===========================================================================*/
#define MACHINE        ATARI	/* Must be one of the names listed below */
X
#define IBM_PC             1	/* any  8088 or 80x86-based system */
#define IBM_386_VM         2	/* any 386 (486) with virtual memory enabled */
#define SUN_4             40	/* any Sun SPARC-based system */
#define SUN_4_60	  40	/* Sun-4/60 (aka SparcStation 1 or Campus) */
#define ATARI             60	/* ATARI ST/STe/TT (68000/68030) */
#define AMIGA             61	/* Commodore Amiga (68000) */
#define MACINTOSH         62	/* Apple Macintosh (68000) */
X
X
/* If ROBUST is set to 1, writes of i-node, directory, and indirect blocks
X * from the cache happen as soon as the blocks are modified.  This gives a more
X * robust, but slower, file system.  If it is set to 0, these blocks are not
X * given any special treatment, which may cause problems if the system crashes.
X */
#define ROBUST             0	/* 0 for speed, 1 for robustness */
X
/* if SCREEN is set to 1 graphical screen operations are possible */
#define SCREEN             1	
X
/* The buffer cache should be made as large as you can afford. */
#if INTEL_32BITS
#define NR_BUFS          320	/* # blocks in the buffer cache */
#define NR_BUF_HASH      512	/* size of buf hash table; MUST BE POWER OF 2*/
#endif
X
#if (MACHINE == SUN_4_60)
#define NR_BUFS		 512	/* # blocks in the buffer cache (<=1536) */
#define NR_BUF_HASH	 512	/* size of buf hash table; MUST BE POWER OF 2*/
#endif
X
#if (MACHINE == ATARI)
#define NR_BUFS		1536	/* # blocks in the buffer cache (<=1536) */
#define NR_BUF_HASH	2048	/* size of buf hash table; MUST BE POWER OF 2*/
#endif
X
#ifndef NR_BUFS
#define NR_BUFS           40	/* # blocks in the buffer cache */
#define NR_BUF_HASH       64	/* size of buf hash table; MUST BE POWER OF 2*/
#endif
X
/* The number of map slots determines how big a disk partition can be.
X * Each I_MAP_SLOT allows 8K files; each Z_MAP_SLOT allows 8M of data.
X */
#define I_MAP_SLOTS        8	/* max # of blocks in the inode bit map */
#define Z_MAP_SLOTS       16	/* max # of blocks in the zone bit map */
X
/* Defines for kernel configuration. */
#define AUTO_BIOS          0	/* xt_wini.c - use Western's autoconfig BIOS */
#define C_RS232_INT_HANDLERS 0	/* rs232.c - use slower C int handlers */
#define DEFAULT_CLASS      0	/* floppy.c - 3 or 5 to get only that size */
#define LINEWRAP           0	/* console.c - wrap lines at column 80 */
#define KEYBOARD_84        1	/* set to 1 to swap CTRL & CAPSLOCK keys */
#define NO_HANDSHAKE       1	/* rs232.c - don't use CTS/RTS handshaking */
#define ENABLE_NETWORKING  0	/* enable TCP/IP code */
#define ALLOW_GAP_MESSAGES 1	/* proc.c - allow messages in the gap between
X				 * the end of bss and lowest stack address */
/* Determine which device to use for pipes. */
#define PIPE_DEV    ROOT_DEV	/* put pipes on root device */
X
/* These configuration defines control debugging and unfinished code. */
#define FLOPPY_TIMING      0	/* floppy.c - for fine tuning floppy driver */
#define MONITOR		   0	/* xt_wini.c - monitor loop in w_wait_int */
#define RECORD_FLOPPY_SKEW 0	/* floppy.c - for deciding nr_sectors */
X
/* These configuration defines control worthless code. */
#define SPARE_VIDEO_MEMORY 0	/* misc.c - use memory from any 2nd vid card */
#define SPLIMITS           0	/* mpx*.x - set stack limits (never checked) */
X
/* NR_CONS and NR_RS_LINES determine number of consoles and RS232 lines. */
#define NR_CONS            2	/* how many consoles can system handle */
#define	NR_RS_LINES	   1	/* how many rs232 terminals can system handle*/
X
#if (MACHINE == ATARI)
/* The next define says if you have an ATARI ST or TT */
#define ATARI_TYPE	  TT
#define ST		   1	/* all ST's and Mega ST's */
#define STE		   2	/* all STe and Mega STe's */
#define TT		   3
X
/* This define says whether the keyboard generates VT100 or IBM_PC escapes. */
#define KEYBOARD       VT100	/* either VT100 or IBM_PC */
#define VT100		 100
X
/* The next define determines the kind of partitioning. */
#define PARTITIONING   SUPRA	/* one of the following or ATARI */
#define SUPRA		   1	/*ICD, SUPRA and BMS are all the same */
#define BMS		   1
#define ICD		   1
#define CBHD		   2
#define EICKMANN	   3
X
/* Define the number of hard disk drives on your system. */
#define NR_ACSI_DRIVES	   3	/* typically 0 or 1 */
#define NR_SCSI_DRIVES	   1	/* typically 0 (ST, STe) or 1 (TT) */
X
/* Some systems need to have a little delay after each winchester
X * commands. These systems need FAST_DISK set to 0. Other disks do not
X * need this delay, and thus can have FAST_DISK set to 1 to avoid this delay.
X */
#define FAST_DISK	   1	/* 0 or 1 */
X
/* Note: if you want to make your kernel smaller, you can set NR_FD_DRIVES
X * to 0. You will still be able to boot minix.img from floppy. However, you
X * MUST fetch both the root and usr filesystem from a hard disk
X */
X
/* Define the number of floppy disk drives on your system. */
#define NR_FD_DRIVES	   1	/* 0, 1, 2 */
X
/* This configuration define controls parallel printer code. */
#define PAR_PRINTER	   1	/* disable (0) / enable (1) parallel printer */
X
/* This configuration define controls disk controller clock code. */
#define HD_CLOCK	   1	/* disable (0) / enable (1) hard disk clock */
X
#endif
X
X
/*===========================================================================*
X *	There are no user-settable parameters after this line		     *
X *===========================================================================*/
/* Set the CHIP type based on the machine selected. The symbol CHIP is actually
X * indicative of more than just the CPU.  For example, machines for which
X * CHIP == INTEL are expected to have 8259A interrrupt controllers and the
X * other properties of IBM PC/XT/AT/386 types machines in general. */
#define INTEL             1	/* CHIP type for PC, XT, AT, 386 and clones */
#define M68000            2	/* CHIP type for Atari, Amiga, Macintosh    */
#define SPARC             3	/* CHIP type for SUN-4 (e.g. SPARCstation)  */
X
/* Set the FP_FORMAT type based on the machine selected, either hw or sw    */
#define FP_NONE		  0	/* no floating point support                */
#define FP_IEEE		  1	/* conform IEEE floating point standard     */
X
#if (MACHINE == IBM_PC)
#define CHIP          INTEL
#define SHADOWING	  0
#endif
X
#if (MACHINE == ATARI) || (MACHINE == AMIGA) || (MACHINE == MACINTOSH)
#define CHIP         M68000
#define SHADOWING	  1
#endif
X
#if (MACHINE == SUN_4) || (MACHINE == SUN_4_60)
#define CHIP          SPARC
#define FP_FORMAT   FP_IEEE
#define SHADOWING	  0
#endif
X
#if (MACHINE == ATARI) || (MACHINE == SUN_4)
#define ASKDEV            1	/* ask for boot device */
#define FASTLOAD          1	/* use multiple block transfers to init ram */
#endif
X
#if (ATARI_TYPE == TT) /* and all other 68030's */
#define FPP
#undef SHADOWING
#define SHADOWING 0
#endif
X
#ifndef FP_FORMAT
#define FP_FORMAT   FP_NONE
#endif
X
/* The file buf.h uses MAYBE_WRITE_IMMED. */
#if ROBUST
#define MAYBE_WRITE_IMMED  WRITE_IMMED	/* slower but perhaps safer */
#else
#define MAYBE_WRITE_IMMED 0		/* faster */
#endif
X
#ifndef MACHINE
error "In <minix/config.h> please define MACHINE"
#endif
X
#ifndef CHIP
error "In <minix/config.h> please define MACHINE to have a legal value"
#endif
X
#if (MACHINE == 0)
error "MACHINE has incorrect value (0)"
#endif
X
#endif /* _CONFIG_H */
SHAR_EOF
chmod 0644 include/minix/config.h ||
echo 'restore of include/minix/config.h failed'
Wc_c="`wc -c < include/minix/config.h`"
test 7856 -eq "$Wc_c" ||
	echo 'include/minix/config.h: original size 7856, current size' "$Wc_c"
fi
exit 0
--
Frans Meulenbroeks		Philips Research Laboratories
preferred email address: 	meulenbr@prl.philips.nl
Newsgroups: comp.os.minix