From a993bd3f7fd33c2dc891038f6a0da150ac4919b0 Mon Sep 17 00:00:00 2001 From: Wolfgang Thaller Date: Tue, 22 Jan 2019 18:28:44 +0100 Subject: [PATCH] documentation update --- LaunchAPPL/LaunchAPPL.cfg.example | 22 +- README.md | 14 +- docs/BFLT.pdf | Bin 106620 -> 0 bytes docs/uClinux - BFLT Binary Flat Format.html | 225 -------------------- 4 files changed, 24 insertions(+), 237 deletions(-) delete mode 100644 docs/BFLT.pdf delete mode 100644 docs/uClinux - BFLT Binary Flat Format.html diff --git a/LaunchAPPL/LaunchAPPL.cfg.example b/LaunchAPPL/LaunchAPPL.cfg.example index a34401bc3b..81de764f00 100644 --- a/LaunchAPPL/LaunchAPPL.cfg.example +++ b/LaunchAPPL/LaunchAPPL.cfg.example @@ -20,7 +20,7 @@ # ########### A real Mac connected via a serial cable - # Prerequisited: + # Prerequisites: # - A Mac with a modem port, and any classic Mac system software # - The LaunchAPPLServer application # (`Retro68-build/build-target/LaunchAPPL/Server/`) running on that Mac @@ -36,6 +36,25 @@ # serial-baud = 19200 +# ########### A real Mac running Mac OS X + + # Prerequisites + # - A Mac running Mac OS X that is reachable via ssh + # - LaunchAPPL compiled for that Mac + +# ########### A real Mac connected via TCP/IP + + # Prerequisites: + # - An old Mac connected to your local TCP/IP network + # - System Software that supports MacTCP or OpenTransport + # - LanchAPPLServer compiled by Retro68 for your old Mac + # - A firewall that protects your Mac from the open internet + # (LaunchAPPLServer opens an unsecured TCP port and executes any application it receives there!) + +# emulator = tcp +# tcp-address = 192.168.0.42 # IP address of your mac + + # ########### Mini vMac (old 68K Macs) # To use Mini vMac with LaunchAPPL, you need to supply the ROM file, @@ -87,4 +106,3 @@ # executor-option = -appearance # uncommenting these two lines # executor-option = windows # is seriously not recommended. - diff --git a/README.md b/README.md index 4374caea4f..b25ca06ff6 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Installing/Building - Linux, Mac OS X or Windows (via Cygwin) - boost -- CMake 2.8 +- CMake 3.8 or later - GCC dependencies: GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+ - bison version 3.0.2 or later - Apple Universal Interfaces (version 3.x; version 3.4 is tested) @@ -106,7 +106,7 @@ to add that to your `PATH`. If you're building this on a PowerMac running Mac OS X 10.4, tell the build script to use the gcc you've installed via tigerbrew: - ../Retro68/build-toolchain.bash --host-cxx-compiler=g++-5 --host-c-compiler=gcc-5 + ../Retro68/build-toolchain.bash --host-cxx-compiler=g++-7 --host-c-compiler=gcc-7 ### Build options and recompiling @@ -234,13 +234,6 @@ GNU assembler (`powerpc-apple-macos-as`). Well, as long as the .o file does not use global variables or non-local function calls. Used to import glue code from MPW's `Interface.o` library. -### MakeAPPL - -Reads a FLAT executable as output by elf2flt and converts it to -a MacBinary file containing a classic Macintosh application. -The CMake setup for the sample programs no longer uses this, but rather uses -Rez to generate the appropriate resources. - ### PEFTools Tools supporting the Apple's PEF format, the Preferred Executable Format @@ -334,6 +327,7 @@ Currently, LaunchAPPL supports the following methods for launching Mac applicati * executor - launch using Executor * ssh - Invoke the `LaunchAPPL` tool remotely via ssh * serial - Connect to a real Mac running the `LaunchAPPLServer` application via a null modem cable +* tcp - Connect to a real Mac running the `LaunchAPPLServer` application via a completely insecure TCP connection If you're running on a Mac that's old enough to use the `classic` or `carbon` backends, they will work out of the box, just launch an application as follows @@ -347,7 +341,7 @@ copy the file `Retro68/LaunchAPPL/LaunchAPPL.cfg.example` to `~/.LaunchAPPL.cfg` and edit to taste (documentation is provided in comments). **CONTRIBUTION OPPORTUNITY** - This tool can easily be extended with further backends, -so make it work with your favourtite emulator. Just add new subclasses for the +so make it work with your favourite emulator. Just add new subclasses for the `LaunchMethod` and `Launcher` classes, they're documented. ### The Test Suite diff --git a/docs/BFLT.pdf b/docs/BFLT.pdf deleted file mode 100644 index a64f14e4069e70ba036b599f3eb5704c86d64223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106620 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 R&;bwx8VMJYm&aVu`yW&i=5hc4 diff --git a/docs/uClinux - BFLT Binary Flat Format.html b/docs/uClinux - BFLT Binary Flat Format.html deleted file mode 100644 index dfc095419d..0000000000 --- a/docs/uClinux - BFLT Binary Flat Format.html +++ /dev/null @@ -1,225 +0,0 @@ - - - uClinux - BFLT Binary Flat Format - - - - - - - -
- - - -
Beyond Logic
- - - - -

- -
- -
-
-
uClinux - BFLT Binary Flat Format
- -
    -

    -uClinux uses a Binary Flat format commonly known as BFLT. It is a relatively simple -and lightweight executable format based on the original a.out format. It has seen -two major revisions, version 2 and more recently version 4. Version 2 is used by the -m68k-coff compilers and is still in use with the ARM elf2flt converter while version -4 is used with the m68k elf2flt converter. Like many open source projects worked on -by many individuals, little features have creped into versions without the revision -field changing. As a consequence what we detail in each version may not strictly be -the case in all circumstances. Both the 2.0.x and 2.4.x kernels’ bFLT loaders in the -CVS support both formats. Earlier kernels may need to have binfmt_flat.c and flat.c -patched to support version 4, should version 4 binaries report the following message -when loading -

    -
      -bFLT:not found. 
      -bad magic/rev(4,need 2)
      -
    - - -
    -

    -Each flat binary is preceded by a header of the structure shown below in listing 1. It starts -with 4 ASCII bytes, “bFLT” or 0x62, 0x46, 0x4C, 0x54 which identifies the binary -as conforming to the flat format. The next field designates the version number of -the flat header. As mentioned there are two major versions, version 2 and version -4. Each version differs by the supported flags and the format of the relocations. -

    -

    -The next group of fields in the header specify the starting address of each segment -relative to the start of the flat file. Most files start the .text segment at 0x40 -(immediately after the end of the header). -The data_start, data_end and bss_end fields specify the start or finish of the -designated segments. With the absence of text_end and bss_start fields, it is -assumed that the text segment comes first, followed immediately by the data segment. -While the comments for the flat file header would suggest there is a bss segment -somewhere in the flat file, this is not true. bss_end is used to represent the -length of the bss segment, thus should be set to data_end + size of bss. -

    -
    -
    bFLT File Format
    Figure 1 : Flat File Format
    -
    - -
      -struct flat_hdr {
      -	char magic[4];
      -	unsigned long rev;          /* version */
      -	unsigned long entry;        /* Offset of first executable instruction
      -	                               with text segment from beginning of file */
      -	unsigned long data_start;   /* Offset of data segment from beginning of
      -	                               file */
      -	unsigned long data_end;     /* Offset of end of data segment
      -	                               from beginning of file */
      -	unsigned long bss_end;      /* Offset of end of bss segment from beginning
      -	                               of file */
      -
      -	/* (It is assumed that data_end through bss_end forms the bss segment.) */
      -
      -	unsigned long stack_size;   /* Size of stack, in bytes */
      -	unsigned long reloc_start;  /* Offset of relocation records from
      -	                               beginning of file */
      -	unsigned long reloc_count;  /* Number of relocation records */
      -	unsigned long flags;       
      -	unsigned long filler[6];    /* Reserved, set to zero */
      -};
      -
    -

    -

    Listing 1 : The bFLT header structure extracted from flat.h
    -

    -

    -Following the segments’ start and end pointers comes the stack size field specified -in bytes. This is normally set to 4096 by the m68k bFLT converters and can be -changed by passing an argument (-s) to the elf2flt / coff2flt utility. -

    -

    -The next two fields specify the details of the relocations. Each relocation is a -long (32 bits) with the relocation table following the data segment in the flat -binary file. The relocation entries are different per bFLT version. -

    -

    -Version 2 specified a 2 bit type and 30 bit offset per relocation. This causes a -headache with endianess problems. The 30 bit relocation is a pointer relative to -zero where an absolute address is used. The type indicates whether the absolute -address points to .text, .data or .bss. -

    -
      -#define FLAT_RELOC_TYPE_TEXT 0
      -#define FLAT_RELOC_TYPE_DATA 1
      -#define FLAT_RELOC_TYPE_BSS 2
      -
      -struct flat_reloc {
      -#if defined(__BIG_ENDIAN_BITFIELD) /* bit fields, ugh ! */
      -	unsigned long type : 2; 
      -	signed long offset : 30;
      -#elif defined(__LITTLE_ENDIAN_BITFIELD)
      -	signed long offset : 30;
      -	unsigned long type : 2; 
      -#endif
      -
    -

    -

    Listing 2 : Version 2 relocation structures - Not for use in new code.
    -

    -

    -This enables the flat loader to fix-up absolute addressing at runtime by jumping -to the absolute address specified by the relocation entry and adding the loaded -base address to the existing address. -

    -

    -Version 4 removed the need of specifying a relocation type. Each relocation entry -simply contains a pointer to an absolute address in need of fix-up. As the bFLT -loader can determine the length of the .text segment at runtime (data_start - -entry) we can use this to determine what segment the relocation is for. If the -absolute address before fix-up is less that the text length, we can safety -assume the relocation is pointing to the text segment and this add the base address -of this segment to the absolute address. -

    -

    -On the other hand if the absolute address before fix-up is greater than the text -length, then the absolute address must be pointing to .data or .bss. As .bss -always immediately follows the data segment there is no need to have a distinction, -we just add the base address of the data segment and subtract the length of the -text segment. We subtract the text segment as the absolute address in version 4 -is relative to zero and not to the start of the data segment. -

    -

    -Now you could say we may take it one step further. As every absolute address is -referenced to zero, we can simply add the base address of the text segment to -each address needing fix-up. This would be true if the data segment immediately -follows the text segment, but we now have complications of -msep-data where the -text segment can be in ROM and the data segment in another location in RAM. -Therefore we can no longer assume that the .data+.bss segment and text segment -will immediately follow each other. -

    -

    -The last defined field in the header is the flags. This appeared briefly in some -version 2 headers (Typically ARM) but was cemented in place with version 4. The -flags are defined as follows -

    -
      -#define FLAT_FLAG_RAM    0x0001 /* load program entirely into RAM */
      -#define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */
      -#define FLAT_FLAG_GZIP   0x0004 /* all but the header is compressed */
      -
    -

    -

    Listing 3 : New flags defined in Version 4
    -

    -

    -Early version 2 binaries saw both the .text and .data segments loaded into RAM -regardless. XIP (eXecute in Place) was later introduced allowing programs to -execute from ROM with only the data segment being copied into RAM. In version -4, it is now assumed that each binary is loaded from ROM if GOTPIC is true and -FLAT_FLAG_GZIP and FLAT_FLAG_RAM is false. A binary can be forced to load into -RAM by forcing the FLAT_FLAG_RAM flag. -

    -

    -The FLAT_FLAG_GOTPIC informs the loader that a GOT (Global Offset Table) is -present at the start of the data segment. This table includes offsets that -need to be relocated at runtime and thus allows XIP to work. (Data is accessed -through the GOT, thus relocations need not be made to the .text residing in ROM.) The -GOT is terminated with a -1, followed immediately by the data segment. -

    -

    -The FLAT_FLAG_GZIP indicates the binary is compressed with the GZIP algorithm. -The header is left untouched, but the .text, .data and relocations are -compressed. Some bFLT loaders do not support GZIP and will report an error -at loading. -

    - -

    -
    -Acknowledgments to Pauli from Lineo for pointing out some minor errors. -

    - -
-
-
-
Copyright 2001-2005 Craig Peacock - 15th June 2005.
-
- -