4749:
load and relocation method(s) used, the individual features included, and the configuration options specified in the command line. Due to the large number of command line switches and options supported (around fifty switches with multiple possible settings) there is a high number of feature combinations with uncountable dependencies resulting in endless number of different target images. FreeKEYB's
Dynamic Dead Code Elimination technique manages to resolve these dependencies and remove dead code and data is not restricted to include or exclude a somewhat limited number of modules or whole sub-routines and fix up some dispatch tables as in classical TSR programming, but works at byte level able to remove individual instructions in the middle of larger routines distributed all over the code to handle a particular case or support a specific feature special tools are used to analyze the code and create fixup tables automated using conditional defines to declare the various cases not only optional at assembly time but at initialization time without the overhead of having at least some amount of dead code left in the runtime image to keep track of all the dependencies between these conditionals, dynamically build and relocate the runtime image, fix up all the references between these small, changing, and moving binary parts still allowing to use the tiny .COM/.SYS style model is done at initialization time
392:, to play this role. However, Rosetta had a fairly steep performance overhead, so developers were encouraged to offer both PPC and Intel binaries, using Universal binaries. The obvious cost of Universal binary is that every installed executable file is larger, but in the years since the release of the PPC, hard-drive space has greatly outstripped executable size; while a Universal binary might be double the size of a single-platform version of the same application, free-space resources generally dwarf the code size, which becomes a minor issue. In fact, often a Universal-binary application will be smaller than two single-architecture applications because program resources can be shared rather than duplicated. If not all of the architectures are required, the
4786:, so you can at installation time specify which components of the driver you want and which you don't. This goes to an extent of dynamic loadable modularization and late linkage I have not seen under DOS so far. If you do not like the screen saver, macros, the calculator, or mouse support, or <almost anything else>, you can specify this at the command line, and FreeKEYB, while taking all the dependencies between the routines into account, will completely remove all the code fragments, which deal with that feature and are not necessary to provide the requested functionality, before the driver relocates the image into the target location and makes itself resident.
752:). Since DOS does not reject files with a .COM extension to be loaded per DEVICE and does not test for FFFFFFFFh, it is possible to combine a COM program and a device driver into the same file by placing a jump instruction to the entry point of the embedded COM program within the first four bytes of the file (three bytes are usually sufficient). If the embedded program and the device driver sections share a common portion of code, or data, it is necessary for the code to deal with being loaded at offset +0100h as a .COM style program, and at +0000h as a device driver. For shared code loaded at the "wrong" offset but not designed to be
3510:). Programs, such as Bridger Mitchell's JETLDR.COM, that load these modules from files into memory can use the ID string to validate the file, that is, to make sure that it is the kind of module that the user has stated it to be. User mistakes and damaged files can thus be detected. The header, thus, now stands as follows: rst db 'Z3TXT',0 ; null-terminated ID ; 12345678 ; must be 8 characters, db 'PROGNAME' ; pad with spaces ; 123 ; must be 3 characters db 'ENG' ; name of language dw LENGTH ; length of module
606:, which is decoded as a "RET" instruction by x86 processors, thereby gracefully exiting the program, while it will be decoded as "JP 103h" instruction by 8080 processors and simply jump to the next instruction in the program. Similar, the CP/M assembler Z80ASM+ by SLR Systems would display an error message when erroneously run on DOS.
3190:= directives prior to any INSTALL= statements, regardless of their order in the file. software may require the mouse driver to be present as a device driver, as mouse drivers have always been device drivers back in the old times. These mouse drivers have had specific device driver names depending on which protocol they used ("
3707:
reached the end of the file when it has read the last record (basic unit of disk space) allocated to the file. The disk directory entry for each file contains a list of the disk records allocated to that file. This method relies on the size of the file, rather than its content, to locate the end of the file.
3706:
is possible because CONTROL-Z is seldom used as data in ASCII files. In a non-ASCII file, however, CONTROL-Z is just as likely to occur as any other character. Therefore, it cannot be used as the end-of-file marker. CP/M uses a different method to mark the end of a non-ASCII file. CP/M assumes it has
685:
and DOS do not share a common file extension for executables. Thus, it is not normally possible to confuse executables. However, early versions of DOS had so much in common with CP/M in terms of its architecture that some early DOS programs were developed to share binaries containing executable code.
407:
In addition, Multi-Architecture Binary executables can contain code for both 32-bit and 64-bit versions of PowerPC and x86, allowing applications to be shipped in a form that supports 32-bit processors but that makes use of the larger address space and wider data paths when run on 64-bit processors.
4748:
FreeKEYB builds the driver's runtime image at initialization time depending on the type of machine it is being loaded on, the type of keyboard, layout, country and code page used, the type of mouse and video adapter(s) installed, the other drivers loaded on that system, the operating system and the
3054:
manual) switching between them at runtime the OS interface in WordStar is quite narrow and well abstracted the WordStar 3.2x overlays are 100% identical between the DOS and CP/M-86 versions. There is a runtime switch which chooses between calling INT 21h (DOS) and INT E0h (CP/M-86). WS.COM is not
3123:
FreeKEYB is a true .COM and .SYS driver (tiny model) in one. You can safely overwrite the first JMP, that's part of what I meant by "tricky header". you can replace the FFFFh:FFFFh by a 3-byte jump and a pending DB FFh. It works with MS-DOS, PC DOS, DR-DOS, and most probably any other DOS
4716:
depending on the underlying hardware, operating system, and driver configuration as well as the selected feature set and locale (about sixty configuration switches with hundreds of options for an almost unlimited number of possible combinations). This complexity and the dynamics are hidden from
1043:
format called Arm64X. An Arm64X binary contains all the content that would be in separate x64/Arm64EC and Arm64 binaries, but merged into one more efficient file on disk. Visual C++ toolset has been upgraded to support producing such binaries. And when building Arm64X binaries are technically
548:
In order to avoid this, some methods have been devised to build fat binaries which contain both a CP/M-80 and a DOS program, preceded by initial code which is interpreted correctly on both platforms. The methods either combine two fully functional programs each built for their corresponding
1573:
opcode C3h) will implicitly jump to the start of its code segment as well, thereby eventually reaching the INT 20h as well. In CP/M-86, the zero page is structured differently and there is no CALL 5 interface, but the stack return method and BDOS function 0 (but now through
1288:
embedded into the executable file alongside any number of alternative binary code snippets conditionally build a size- or speed-optimized runtime image of a program or driver necessary to perform (or not perform) a particular function in a particular target environment at
815:
and higher incorporate a safety feature developed by
Matthias R. Paul: If these files are called inappropriately, tiny embedded stubs will just display some file version information and exit gracefully. Additionally, the message is specifically crafted to follow certain
208:, when 80 MB hard drives were a common size, these utilities were sometimes useful, as program code was generally a large percentage of overall drive usage, and stripping the unneeded members of a fat binary would free up a significant amount of space on a hard drive.
4827:, die die jeweils notwendigen Bestandteile des Treibers erst zum Installationszeitpunkt zusammenbastelt und reloziert, so daß keine ungenutzten Code- oder Datenbereiche mehr resident bleiben (z.B. wenn jemand ein bestimmtes FreeKEYB-Feature nicht benötigt).
233:
operating system, starting with NeXTSTEP 3.1. In NeXTSTEP, they were called "Multi-Architecture
Binaries". Multi-Architecture Binaries were originally intended to allow software to be compiled to run both on NeXT's Motorola 68k-based hardware and on Intel
4442:
563:) in the .COM file have to be valid code for both 8086 and 8080 processors, which would cause the processors to branch into different locations within the code. For example, the utilities in Simeon Cran's emulator MyZ80 start with the opcode sequence
1545:
before passing control to a loaded program, they can, for as long as the stack is flat, also be exited by issuing a RET (opcode C9h) instruction, thereby falling into the terminating code at offset 0 in the zero page. Although DOS has a dedicated
646:
is never appropriate as the first byte of a program for any x86 processor (it has different meanings for different generations, but is never a meaningful first byte); the executable loader in some versions of DOS rejects COM files that start with
423:), Apple included utilities which allowed applications to be targeted for both Intel and PowerPC architecture; universal binaries could eventually contain up to four versions of the executable code (32-bit PowerPC, 32-bit x86, 64-bit PowerPC, and
287:
was able to run. For example, it was possible to choose the target architectures with multiple '-arch' options (with the architecture as argument). This was a convenient way to distribute a program for NeXTStep running on different architectures.
311:(2001), and NeXT's Multi-Architecture Binaries continued to be supported by the operating system. Under Mac OS X, Multi-Architecture Binaries can be used to support multiple variants of an architecture, for instance to have different versions of
1835:
3701:
character in the file after the last data character. If the file contains an exact multiple of 128 characters, in which case adding the CONTROL-Z would waste 127 characters, CP/M does not do so. Use of the CONTROL-Z character as the
2222:
446:
format; Universal 2 binary files are Multi-Architecture Binary files containing both x86-64 and ARM64 executable code, allowing the binary to run natively on both 64-bit Intel and 64-bit Apple silicon. Additionally, Apple introduced
567:. An 8086 sees this as a jump and reads its next instruction from offset +154h whereas an 8080 or compatible processor goes straight through and reads its next instruction from +103h. A similar sequence used for this purpose is
1030:
emulation, making it a useful "universal" machine code target. Fatpack is a loader that demonstrates the concept: it includes a 32-bit x86 program that tries to run the executables packed into its resource sections one by one.
1025:
format used by
Windows does not allow assigning code to platforms, it is still possible to make a loader program that dispatches based on architecture. This is because desktop versions of Windows on ARM have support for 32-bit
3283:
so modifiziert, daß er - falls fälschlicherweise als normales
Programm gestartet - ohne Absturz zur Kommandozeile zurückkehrt. Wann diese Sicherheitsfunktion in die offizielle Version Einzug halten wird, ist jedoch noch nicht
1565:(the equivalent to CP/M's zero page), where the system had previously planted an INT 20h instruction. Also, a loaded program's initial stack is prepared to hold a word of 0, so that a program issuing a near return RETN (
1747:
families of operating systems contain similar data but are organized differently and incompatible. Since the entry points into the data structures are at different offsets in the file it is possible to create "fat"
185:, but emulated code generally runs slower than native code. Applications released as "fat binaries" took up more storage space, but they ran at full speed on either platform. This was achieved by packaging both a
475:. However, by 2008, some of their Macs used 32-bit EFI and some used 64-bit EFI. For this reason, Apple extended the EFI specification with "fat" binaries that contained both 32-bit and 64-bit EFI binaries.
272:). This structure defines the offset (from the start of the file) at which to find the file, the alignment, the size and the CPU type and subtype which the Mach-O binary (within the archive) is targeted at.
3501:
module should never be executed, but at a cost of one byte we could protect ourself against that outside chance. The header also contained the string of characters "Z3TXT" followed by a null (0) byte. Many
4163:
3198:
for example), and some software may search for these drivers in order to find out the correct type of mouse to be used. Another advantage would be that device drivers usually consume less memory (no
1786:
3761:
4130:
3324:
989:
One hard drive partition can be booted on different machines with different CPU architectures, for development and experimentation. Same root file system, different kernel and CPU architecture.
3540:
3206:) It's basically a tricky file header, a different code to parse the command line, a different entry point and exit line, and some segment magics to overcome the ORG 0 / ORG 100h difference.
2234:
1146:
files) containing dedicated executable code sections for one or more specific GPU architectures from which the CUDA runtime can choose from at load-time. Fat binaries are also supported by
204:
Fat binaries were larger than programs supporting only the PowerPC or 68k, which led to the creation of a number of utilities that would strip out the unneeded version. In the era of small
2590:
registers. The magic sequence is EB 52 EB: XCHG MOV D,D XCHG but that means the DOS code ends up quite a way away from the start of the program. More fun can be had with self-extract
373:. Apple promoted the distribution of new applications that support both PowerPC and x86 natively by using executable files in Multi-Architecture Binary format. Apple calls such programs "
3287:(NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger
2873:, you can use ZXCC FATBNSEA.COM FATBIN combines a CP/M-80 .COM file and a DOS .COM file to produce one that will work on both systems. M3C4SEA.COM M3CONV version 4 - converts
4098:
Wang, Perry H.; Collins, Jamison D.; Chinya, Gautham N.; Jiang, Hong; Tian, Xinmin; Girkar, Milind; Pearce, Lisa; Lueh, Guei-Yuan; Yakoushkin, Sergey; Wang, Hong (2007-08-22).
1764:-headed files are not necessary. The shipped files are nevertheless "fat" for including a tiny executable stub just displaying an embedded message when invoked inappropriately.
4620:
189:-compiled version and a PowerPC-compiled version of the same program into their executable files. The older 68K code (CFM-68K or classic 68K) continued to be stored in the
2889:
is the program that was used to generate these self-unpacking archives. This version (2.11) can generate archives which unpack themselves under CP/M or DOS. You will need
2065:
808:, not COM-style programs. Trying to load COUNTRY.SYS with a DEVICE statement or executing IBMBIO.COM or IBMDOS.COM at the command prompt will cause unpredictable results.
4352:
4584:
72:
with code compatible with all operating systems, which executes a jump to the appropriate section. Alternative implementations store different executables in different
2133:
2086:
1250:(FMV): versions of the same function are written into the program, and a piece of code decides which one to use by detecting the CPU's capabilities (such as through
2643:
disassembly that translates to 'EX DE,HL; INC BC;' The 3rd byte is 'JUMP' followed by the 16-bit address specified as yy xx you'll have a .COM file that runs on
2586:
DOS protection feature The idea is based on the utilities in Simeon Cran's MYZ80 emulator; the DOS-protection header in those goes one better by not changing any
1930:
602:
Another method to keep a DOS-compatible operating system from erroneously executing .COM programs for CP/M-80 and MSX-DOS machines is to start the 8080 code with
4200:
1226:(IR), but on the other hand machine code may need to be stored too (for speed or compatibility). An LTO object containing both IR and machine code is known as a
545:
of the two processor families are not compatible, attempting to start a program under the wrong operating system leads to incorrect and unpredictable behaviour.
3618:
2197:
2166:
4155:
2615:
4943:
3830:
2367:
2324:
4967:
4919:
4066:
Wang, Perry H.; Collins, Jamison D.; Chinya, Gautham N.; Jiang, Hong; Tian, Xinmin; Girkar, Milind; Yang, Nick Y.; Lueh, Guei-Yuan; Wang, Hong (June 2007).
1898:
3579:
3506:
modules include such identifiers. In this category are resident command packages (RCPs), flow command packages (FCPs), and environment descriptor modules (
4418:. Proceedings of the IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS). Boston, Massachusetts, USA. pp. 163–174.
4811:
640:, as well as a "RET" instruction for 8080-compatible processors which leads to a graceful exit if the file is executed under older versions of CP/M-80.
262:) defines how many Mach-O Files the archive contains (how many instances of the same program for different architectures). After this header, there are
3753:
4099:
1246:, a programmer may wish to make use of some newer instruction set extensions while keeping compatibility with an older CPU. This can be achieved with
3527:
2110:
1869:
358:
61:
which can consequently be run on multiple processor types. This results in a file larger than a normal one-architecture binary file, thus the name.
2924:
2719:
2574:
2528:
1052:
The following approaches are similar to fat binaries in that multiple versions of machine code of the same purpose are provided in the same file.
3335:
2900:
400:
command-line applications can be used to remove versions from the Multi-Architecture Binary image, thereby creating what is sometimes called a
384:
Universal binary format was not necessary for forward migration of pre-existing native PowerPC applications; from 2006 to 2011, Apple supplied
303:
Apple
Computer acquired NeXT in 1996 and continued to work with the OPENSTEP code. Mach-O became the native object file format in Apple's free
242:
running NeXTSTEP, with a single binary file for both platforms. It was later used to allow OPENSTEP applications to run on PCs and the various
3291:
collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the
4515:
4346:
4232:
2421:
4296:
3308:
3150:
3111:
1138:
into some SASS (Streaming
Assembler) binary executable code for the actually present target GPU. The executables can also include so called
4770:
4427:
4384:
3267:
2861:
containing a number of smaller files. When you run one, it will create its smaller files The self-extract archive programs will run under
2265:
1801:
451:
dynamic binary translation for x86 to Arm64 instruction set to allow users to run applications that do not have
Universal binary variants.
2676:
1702:. However, MS-DOS and PC DOS do not provide crash-protected system files at all, and these file names are neither used nor needed in
1280:
A similar, but byte-level granular approach originally devised by
Matthias R. Paul and Axel C. Frinke is to let a small self-discarding,
246:
platforms OPENSTEP supported. Multi-Architecture Binary files are in a special archive format, in which a single file stores one or more
4045:
3732:
3163:
3022:
2466:), but describes the general "self-identifying program" concept of platform-independent programs (PIPs) through what the authors call a
2427:
3979:
3710:
1265:
Many math libraries feature hand-written assembly routines that are automatically chosen according to CPU capability. Examples include
381:" as perhaps a way to distinguish this new transition from the previous transition, or other uses of Multi-Architecture Binary format.
4736:
3210:
a device driver is a bit more tricky as you have to leave the driver header where it is and only relocate the remainder of the driver
1983:
370:
4554:
4012:
3234:
2759:
2442:
1760:
4.00 (and higher) include an improved parser capable of reading both types of formats (and variants), even at the same time, so that
571:. John C. Elliott's FATBIN is a utility to combine a CP/M-80 and a DOS .COM file into one executable. His derivative of the original
3712:
3677:
2791:
1821:
924:
binaries with some meta data indicating which binary to use on what architecture. Additionally to the CPU architecture abstraction (
899:
703:
250:
subfiles for each architecture supported by the Multi-Architecture Binary. Every Multi-Architecture Binary starts with a structure (
5014:
4606:
4466:
2053:
5038:
4990:
4521:
4329:. IEEE/ACM Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS). Denver, Colorado, USA:
2768:(NB. FATBN101.COM 22k 1997-04-01 FATBIN v1.01. Creates fat binary files which will run under both CP/M and DOS. Distributed in a
2032:
885:, CP/M, DOS, and Windows), it prevents "binary garbage" from being displayed when a file is accidentally printed at the console.
3852:
2515:
Wilkinson, William "Bill" Albert; Seligman, Cory; Drushel, Richard F.; Harston, Jonathan Graham; Elliott, John C. (1999-02-17).
4321:
3663:
2818:
2405:
435:
3515:
4576:
3171:
2842:
2742:.COM file to create one which runs on both platforms. It was used to create: MSODBALL 2.05 - convert floppy discs between
1345:
1123:
983:
781:
3513:
4875:
3296:
2121:
2098:
4852:
4824:
4783:
4693:
4662:
3575:
3536:
3187:
2361:. Vol. 8, no. 2. St. Joseph, Michigan, USA: Heath/Zenith Users' Group (HUG). pp. 55–57. #85. P/N 885-2085.
1554:
1294:
963:
921:
745:
541:
binaries. In both cases programs are loaded at offset +100h and executed by jumping to the first byte in the file. As the
472:
1561:
programs DOS also emulates CP/M's behaviour to some extent: A program can terminate itself by jumping to offset 0 in its
2455:
2362:
1919:
1362:
1243:
1158:
1088:
937:
736:
by convention, although this is not a requirement. This is fixed up dynamically by the operating system when the driver
3471:
3451:
3423:
3375:
992:
Applications provided by network share or USB sticks, will work on multiple systems. This is also helpful for creating
4188:
3263:
NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte
Details, Bugs und Workarounds
1558:
1223:
198:
3449:
3403:
772:
Under DOS, some files, by convention, have file extensions which do not reflect their actual file type. For example,
760:, except for that in this case it has to be done by the loaded program itself; this is similar to the situation with
3605:
2989:
2616:"Microsoft Money crashes during import of account transactions or when changing a payee of a downloaded transaction"
2594:
archives. Start one with defb 0EBh, 018h, '-pms-' and it's treated as a valid archive by the PMA utilities, sends
2186:
2155:
4647:
4264:
3428:. Z-System Corner - Some New Applications of Type-4 Programs (55). S. Plainfield, New Jersey, USA: Socrates Press:
3401:
2623:
2401:
2400:. Proceedings of the 17th ACM conference on Computer and Communications Security (CCS'10). Chicago, Illinois, USA:
1542:
817:
389:
88:
4935:
3822:
2893:
to use PMSFX. New: Under DOS, it supports exact file sizes. SP2BMSEA.COM Converts a Stop Press Canvas file to a
4959:
4911:
3919:
1890:
1699:
1339:
1127:
1084:
1005:
777:
713:
702:, and used dynamically fixed-up code to adapt to the differing calling conventions of these operating systems at
304:
2312:
181:
microprocessors. Many applications for the old platform ran transparently on the new platform under an evolving
2639:
with those 5 bytes as the first ones you'll see 'JMP SHORT 3', followed by 3 garbage bytes. If you look at a
2611:
1430:
1135:
1069:
580:
124:
100:
4184:
3949:
1277:. In addition, the library loader in glibc supports loading from alternative paths for specific CPU features.
811:
It is sometimes possible to avoid this by utilizing techniques similar to those described above. For example,
756:, this requires an internal address fix-up similar to what would otherwise already have been carried out by a
3649:) are ignored, however, and the end of file condition returned by CP/M is used to terminate read operations.
3260:
Paul, Matthias R. (1997-07-30) . "Chapter II.4. Undokumentierte Eigenschaften externer Kommandos - SYS.COM".
869:(EOF) marker when a file is opened in non-binary mode, and thus, under many operating systems (including the
4799:
3566:
3199:
2965:
2854:
2769:
2021:
1972:
1356:
1306:
1258:, GCC, and LLVM all have the ability to automatically generate multi-versioned functions. This is a form of
1207:
1080:
1061:
847:
427:). However, PowerPC support was removed from Xcode 4.0 and is therefore not available to developers running
276:
3889:
3076:
4895:
4697:
4685:
3669:
3203:
1861:
1562:
1453:
1281:
1215:
1177:
761:
508:
3166:
and a device driver - similar to our FreeKEYB advanced keyboard driver. This is not really needed under
3797:
3429:
3381:
3039:
2336:
1757:
785:
618:
596:
374:
149:
96:
4669:
as well as a framework of automatic pre- and post-processing analysis tools to generate dependency and
3565:"5.1.1.1. Device Dependent Functions - Data Modes - Full-Duplex Software A(ASCII) and AL(ASCII Line)".
2912:
2707:
2562:
2516:
557:
if started on the wrong processor. For this to work, the first few instructions (sometimes also called
4068:"EXOCHI: architecture and programming environment for a heterogeneous multi-core multithreaded system"
3345:
1255:
839:
type-3 and type-4 "Z3ENV" programs as well as "Z3TXT" language overlay files, which would result in a
1926:
1722:
set, so that they are not listed by default, thereby reducing the risk of being invoked accidentally.
1505:, exact conditions and underlying mechanisms differ: Under CP/M-80, programs can terminate (that is,
1350:
1188:
993:
753:
327:
generations of processors. It can also be used to support multiple architectures, such as 32-bit and
120:
35:
4709:
4705:
4611:
2193:
2162:
1333:
1239:
1040:
1022:
54:
31:
4717:
users, who deal with a single executable file just like they would do with a conventional driver.)
4221:
1642:
for compatibility reasons with (third-party) tools hard-wired to expect these specific file names.
4728:
4285:
4159:
3703:
3195:
3103:
2388:
2185:
Tevanian, Avadis; DeMoney, Michael; Enderby, Kevin; Wiebe, Douglas; Snyder, Garth (1997-02-18) .
2154:
Tevanian, Avadis; DeMoney, Michael; Enderby, Kevin; Wiebe, Douglas; Snyder, Garth (1995-07-11) .
1667:
1482:
1418:
1410:
1402:
1110:(Compute Unified Device Architecture) is a software to enable general-purpose computing on GPUs (
1065:
773:
737:
655:
443:
385:
73:
50:
4762:
4410:
4377:
3261:
2668:
1008:
image is available. As of 2021, FatELF has not been integrated into the mainline Linux kernel.
4689:
4616:
4511:
4409:
Bakhoda, Ali; Yuan, George L.; Fung, Wilson W. L.; Wong, Henry; Aamodt, Tor M. (2009-04-28) .
4342:
4122:
4110:
3673:
3477:
3433:
3385:
2894:
2479:
2417:
2320:
2261:
2257:
2024:
1975:
1827:
1817:
1634:, but, once introduced, these particular file names were retained from very early versions of
1557:
sub-functions to terminate programs (which are preferable for more complicated programs), for
1365:, shellcode targeting multiple platforms (and sometimes even camouflaged as alphanumeric text)
1321:
1285:
1169:
1131:
862:
757:
667:
637:
622:
357:
280:
239:
4033:
3724:
3162:
Add a SYS device driver header to the driver, so that CTMOUSE could be both in one, a normal
3014:
2392:
2249:
764:
but with the program already loaded at the target location by the operating system's loader.
148:
SR10.1 introduced a new file type, "cmpexe" (compound executable), that bundled binaries for
4803:
4419:
4334:
4114:
4079:
3882:"FatELF: Universal Binaries for Linux. - The proof-of-concept virtual machine download page"
3614:
2916:
2711:
2566:
2520:
2483:
2409:
2316:
1809:
1514:
1394:
1259:
1181:
1173:
936:
instruction set, etc.), there is the advantage of binaries with support for multiple kernel
805:
709:
671:
626:
504:
378:
352:
80:
1962:
4677:
4666:
4654:
4546:
4000:
3230:
2763:
1663:
1448:
for these files. (The .CMD extension, however, is conflictive with the file extension for
1441:
1119:
997:
614:
554:
496:
170:
141:
116:
92:
83:
software; there are several alternatives to solve the same problem, such as the use of an
58:
4807:
4504:
21st International Conference on Parallel Architectures and Compilation Techniques (PACT)
3142:
2783:
5006:
4982:
4713:
4492:
4457:
3877:
3818:
3785:
3312:
2129:
2094:
2061:
1719:
1631:
1438:
1406:
1327:
1092:
530:
4496:
3466:
3418:
3370:
2011:
1785:
Devanbu, Premkumar T.; Fong, Philip W. L.; Stubblebine, Stuart G. (19–25 April 1998).
979:
Distribution of web browser plug ins that work out of the box with multiple platforms.
5032:
4670:
3911:
3856:
3341:
3207:
3051:
2384:
2287:
2007:
1958:
1607:
1538:
1534:
1426:
1196:
1184:
1095:
loader can dynamically initiate the parallel execution on multiple available CPU and
725:
695:
687:
468:
439:
428:
420:
416:
190:
4849:
cosmopolitan libc - your build-once run-anywhere c library / Cosmopolitan Communiqué
3055:
the same between DOS and CP/M-86, although it's probably not very different either.
3050:
files are 100% identical between DOS and CP/M-86, with a flag (clearly shown in the
2834:
636:, which works both as a signature identifying this type of COM file to the CP/M 3.0
1659:
1486:
1390:
1192:
970:
691:
186:
153:
65:
3754:"What are the differences between Linux and Windows .txt files (Unicode encoding)"
2920:
2715:
2570:
2524:
2510:
2508:
2506:
2504:
2502:
2500:
2054:"Chapter 1 - Resource Manager / Resource Manager Reference - Resource File Format"
4338:
3568:
PDP-10 Reference Handbook: Communicating with the Monitor - Time-Sharing Monitors
2746:
706k format and a DOS 706k format. Both the programs run under CP/M-80 and DOS.
4867:
4681:
4459:
The Multi2Sim Simulation Framework - A CPU-GPU Model for Heterogeneous Computing
4423:
3279:
Für ein zukünftiges Update für Calderas OpenDOS 7.01 habe ich den Startcode von
2878:
2874:
2353:
Wilkinson, William "Bill" Albert (2005-04-02) . Written at Heath Company, USA.
1753:
1703:
1530:
1510:
1316:
1219:
866:
825:
812:
733:
610:
324:
255:
108:
87:
program to choose an architecture-specific binary at install time (such as with
69:
4844:
3645:
read operation. Control-Z characters embedded within machine code files (e.g.,
1039:
When developing Windows 11 ARM64, Microsoft introduced a new way to extend the
969:
The correct binary and libraries are centrally chosen by the system instead of
76:, each with its own entry point that is directly used by the operating system.
4189:"Technical Walkthrough: CUDA Pro Tip: Understand Fat Binaries and JIT Caching"
3280:
3175:
3174:= is supported since DR DOS 3.41+ and DR DOS preserves the order of
2471:
2445:
2230:
2181:
1695:
1691:
1464:
947:
Distributions no longer need to have separate downloads for various platforms.
925:
801:
797:
749:
630:
538:
516:
320:
316:
205:
4126:
3481:
3437:
3389:
2354:
2028:
1979:
1831:
1813:
254:) containing two unsigned integers. The first integer ("magic") is used as a
4701:
4673:
4658:
4083:
4041:
4008:
3698:
3638:
3494:
2941:
2858:
2812:
2735:
2653:(NB. While the author speaks about the Z80, this sequence also works on the
2636:
2413:
1687:
1506:
1290:
1270:
1147:
929:
917:
840:
550:
500:
448:
194:
145:
84:
1152:
442:(ARM64 architecture). To smooth the transition Apple added support for the
4067:
3725:"Re: Copy command which merges several files tags the word SUB at the end"
3465:
Sage, Jay (November–December 1992). Carlson, Art; Kibler, Bill D. (eds.).
3191:
3034:
The reason to suspect such difference is that version 3.2x also supported
27:
Combined executable file for multiple processor types or operating systems
3646:
3503:
2981:
1683:
1449:
1422:
1311:
1274:
836:
741:
308:
284:
230:
226:
182:
112:
17:
4256:
3972:"sjmulder/fatpack - Build multi-architecture 'fat' binaries for Windows"
1802:
Proceedings of the 20th International Conference on Software Engineering
898:
4650:
3035:
2743:
2016:
1967:
1575:
1551:
1547:
1494:
1490:
1456:
1434:
1386:
920:
operating systems. Technically, a FatELF binary was a concatenation of
882:
878:
821:
682:
512:
492:
488:
460:
340:
178:
104:
4607:"Transparent use of library packages optimized for Intel architecture"
4378:"Dynamic Warp Formation and Scheduling for Efficient GPU Control Flow"
3971:
3915:
3493:
there was an opcode of "RST 0", which, if executed, would result in a
3068:
1706:
and higher, which otherwise does provide crash-protected system files.
1698:
and higher, but originally a binary system file containing the MS-DOS
95:), selecting an architecture-specific binary at runtime (such as with
4376:
Fung, Wilson W. L.; Sham, Ivan; Yuan, George; Aamodt, Tor M. (2007).
4292:
4228:
4196:
4118:
3183:
3179:
3167:
2644:
1744:
1740:
1736:
1679:
1675:
1671:
1639:
1635:
1596:
1502:
1414:
1398:
1218:(LTO). Since LTO involves delaying the compilation to link-time, the
1210:(GCC) and LLVM do not have a fat binary format, but they do have fat
1168:
heterogeneous system simulator framework (originally only for either
1165:
1103:
1077:
909:
793:
789:
699:
629:). In order to indicate this, the first byte in the header is set to
542:
424:
336:
328:
312:
247:
57:
which has been expanded (or "fattened") with code native to multiple
4653:-based dynamically configurable successor of K3PLUS supporting most
2187:"Method and apparatus for architecture independent executable files"
2156:"Method and apparatus for architecture independent executable files"
1044:
difficult, developers can build Arm64X pure forwarder DLLs instead.
976:
If the ELF ABI changes someday, legacy users can be still supported.
4323:
CUDA Flux: A Lightweight Instruction Profiler for CUDA Applications
3941:
3526:"Table of IO Device Characteristics - Console or Teletypewriters".
3694:
3634:
3507:
3498:
3337:
DR-DOS 7.03 WHATSNEW.TXT - Changes from DR-DOS 7.02 to DR-DOS 7.03
2961:
2937:
2890:
2886:
2591:
1761:
1615:
1611:
1266:
1251:
1111:
1073:
913:
897:
874:
870:
855:
663:
592:
576:
572:
520:
464:
412:
356:
235:
64:
The usual method of implementation is to include a version of the
1752:
databases, which could be used under both DOS families. However,
1630:
This problem could have been avoided by choosing non-conflicting
982:
Distribution of one application file that works across Linux and
716:
for CP/M-86 and DOS also shares binary identical 16-bit drivers.
4507:
4330:
3881:
3853:"Subject: Newsgroups: gmane.linux.kernel, Re: FatELF patches..."
3690:
3642:
3417:
Sage, Jay (May–June 1992) . Carlson, Art; McEwen, Chris (eds.).
3309:"Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT"
3047:
2957:
2949:
2870:
2866:
2804:
2732:
2693:
2654:
2648:
2595:
2459:
2452:
2448:
2087:"Chapter 7 - Fat Binary Programs - Creating Fat Binary Programs"
1592:
1588:
1570:
1566:
1522:
1518:
1460:
1445:
1115:
1107:
835:("RST 0") at the very start of Jay Sage's and Joe Wright's
729:
659:
527:
291:
It was also possible to create libraries (e.g. using NeXTStep's
243:
222:
4891:
1359:, executable code camouflaged as (sometimes even readable) text
1087:
to produce fat binaries containing code sections for different
4983:"We develop to WarpUP the Amiga - StormC for PowerPC and p-OS"
3467:"Regular Feature, ZCPR Support, Language Independence, part 2"
3043:
2953:
2945:
2882:
2862:
2808:
2739:
2689:
2640:
2587:
2475:
2463:
2378:
2376:
2374:
1806:
Proceedings - International Conference on Software Engineering
1655:
1610:), whereas it decodes as "LEAVE" (set SP to BP and pop BP) on
1526:
1498:
1096:
1027:
933:
858:
843:(instead of a crash) under CP/M-80 if loaded inappropriately.
534:
523:
332:
174:
4491:
Ubal, Rafael; Jang, Byunghyun; Mistry, Perhaad; Schaa, Dana;
3789:
1920:"Domain System Software Release Notes, Software Release 10.1"
1076:
EXOCHI (Exoskeleton Sequencer) development suite extends the
2828:
2826:
1925:(first printing ed.). Chelmsford, Massachusetts, USA:
371:
transition, from PowerPC processors to Intel x86 processors
258:
to identify this file as a Fat Binary. The second integer (
2492:
90h, EBh, 20h, 2Ah, 90h, EBh, 20h, 3Ah, 24h, 77h, 01h, 04h
2488:
0Eh, B2h, 02h, A9h, 0Eh, B2h, 02h, 3Ah, 24h, 77h, 01h, 04h
2470:(that is, chunks of program logic not to be confused with
591:
to also include the "-pms-" signature for self-extracting
4497:"Multi2Sim: A Simulation Framework for CPU-GPU Computing"
3046:
and CP/M-86, only the main executable is different) the
2338:(NB. Has details on DOS COM program calling conventions.)
1385:
This isn't a problem for CP/M-86 style executables under
986:
variants, without a platform compatibility layer on them.
415:
development environment from 2.1 through 3.2 (running on
4547:"LTO Overview (GNU Compiler Collection (GCC) Internals)"
3008:
3006:
4412:
Analyzing CUDA Workloads Using a Detailed GPU Simulator
3641:
character (1AH) or a real end of file, returned by the
2223:"Universal Binaries and 32-bit/64-bit PowerPC Binaries"
1929:
December 1988. p. 2-16. Order No. 005809-A03.
943:
FatELF has several use-cases, according to developers:
658:
code sequences have also been devised for combined Z80/
3901:(NB. VM image of Ubuntu 9.04 with Fat Binary support.)
3460:
3458:
3412:
3410:
3178:
directives but it would improve the flexibility on
3143:"Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1"
3104:"Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1"
2447:) (NB. Does not address the scenario specifically for
1353:, a "fat" hex file format targeting multiple platforms
831:
A similar protection feature was the 8080 instruction
732:) start with a file header whose first four bytes are
3780:
3778:
3539:(DEC). 1965. p. 43. DEC-6-0-EX-SYS-UM-IP-PRE00.
3255:
3253:
3251:
2556:
2554:
283:
source code for the different architectures on which
3476:. The Z-System Corner (58). Lincoln, CA, USA: 7–10.
3364:
3362:
3224:
3222:
3220:
3218:
3136:
3134:
3132:
2820:(NB. Mentions FBMAKE from the FATBNSEA.COM package.)
2540:(NB. Some of the opcodes in Elliott's example code (
193:, while the newer PowerPC code was contained in the
4643:
FreeKEYB - Enhanced DOS keyboard and console driver
3380:. ZCPR3 Corner (32). Columbia Falls, Montana, USA:
3097:
3095:
3093:
1199:families) supports ELF-based fat binaries as well.
269:
251:
211:
5011:AmigaOS: multimedia, multi-threaded, multi-tasking
4712:to minimize its memory footprint downto close the
4641:Paul, Matthias R.; Frinke, Axel C. (1997-10-13) ,
3662:Hogan, Thom (1982). "3. CP/M Transient Commands".
2598:processors to 011Ah, and Z80 processors to 0130h.
1650:
1648:
1134:(as text) which the CUDA runtime driver can later
4451:
4449:
2348:
2346:
2344:
1072:for Heterogeneous Integration) compiler from the
4890:Tunney, Justine Alexandra Roberts (2020-08-24).
4866:Tunney, Justine Alexandra Roberts (2021-02-11).
4843:Tunney, Justine Alexandra Roberts (2021-02-11).
4763:"[fd-dev] Changing codepages in FreeDOS"
2877:snapshots in the .Z80 or .SNA format to or from
2869:, with identical effects. To extract them under
2788:Fossies - the Fresh Open Source Software Archive
1172:or x86 CPUs, but later extended to also support
4456:"13.4 The AMD Compiler Wrapper: Fat binaries".
3474:(TCJ) - Programming, User Support, Applications
3426:(TCJ) - Programming, User Support, Applications
3378:(TCJ) - Programming, User Support, Applications
3369:Sage, Jay (May–June 1988). Carlson, Art (ed.).
2807:version. DSKWRITE.ASM contains source for the
2635:byte sequence EB 03 C3 yy xx If you create a
1068:on multiple types of processors, i.e. the CHI (
484:Combined COM-style binaries for CP/M-80 and DOS
68:for each instruction set, preceded by a single
3613:(1 ed.). Pacific Grove, California, USA:
2126:Inside Macintosh: Mac OS Runtime Architectures
2091:Inside Macintosh: Mac OS Runtime Architectures
2058:Inside Macintosh: Mac OS Runtime Architectures
2002:
2000:
1953:
1951:
846:In a distantly similar fashion, many (binary)
595:archives, thereby also representing a form of
575:modifies archives created by Yoshihiko Mino's
4320:Braun, Lorenz; Fröning, Holger (2019-11-18).
4286:"CUDA Compiler Driver NVCC - Reference Guide"
1381:
1379:
1099:cores in a heterogeneous system environment.
279:shipped with the Developer Tools was able to
8:
4692:, the driver implements byte-level granular
4465:. v4.2. Multi2Sim. 2013. pp. 173–176 .
3665:Osborne CP/M User Guide - For All CP/M Users
2980:Elliott, John C.; Lopushinsky, Jim (2002) .
1715:This is the reason why these files have the
2408:, Atlanta, Georgia, USA. pp. 547–558.
1798:Techniques for Trusted Software Engineering
1626:
1624:
1060:Since 2007, some specialized compilers for
780:database file for use with the CONFIG.SYS
212:NeXT's/Apple's multi-architecture binaries
107:'s fat bundles), distributing software in
3668:(2 ed.). Berkeley, California, USA:
2227:Mac OS X ABI Mach-O File Format Reference
1477:
1475:
1473:
1126:-based fat binaries containing so called
776:is not a DOS device driver, but a binary
438:, this time from Intel x86 processors to
79:The use of fat binaries is not common in
4936:"Fat Binary - MS-Windows and four Linux"
3604:"2. Operating System Call Conventions".
2688:(NB. While the article speaks about the
2355:"Something COMmon About MS-DOS and CP/M"
295:) with different targeted object files.
4912:"Making a Fat Binary for Linux and Mac"
4868:"How Fat Does a Fat Binary Need to Be?"
4845:"How Fat Does a Fat Binary Need to Be?"
4800:"[ANN] FreeDOS beta 6 released"
4605:Bahena, Victor Rodriguez (2018-04-03).
4383:. Vancouver, British Columbia, Canada.
3942:"SELF: Anatomy of an (alleged) failure"
3940:Brockmeier, Joe "Zonker" (2010-06-23).
2517:"MS-DOS & CP/M-Compatible Binaries"
2254:Mac OS X Internals - A Systems Approach
1777:
1375:
861:) near the beginning of the file. This
173:'s transition, beginning in 1994, from
3790:"FatELF: Universal Binaries for Linux"
2952:(the first three bytes are both legal
2692:, the code sequence also works on the
1862:"gnustep/tools-make: README.Packaging"
1666:database file for the keyboard driver
3266:. MPDOSTIP (in German) (3 ed.).
2803:DSKWRITE.Z80 contains source for the
678:Combined binaries for CP/M-86 and DOS
7:
4892:"αcτµαlly pδrταblε εxεcµταblε (Ape)"
4231:. February 2014. DA-06762-001_v6.0.
3529:PDP-6 Multiprogramming System Manual
3233:(COUNTRY.LST file) (1.44 ed.).
912:was a fat binary implementation for
894:FatELF: Universal binaries for Linux
804:are special binary images loaded by
217:NeXTSTEP Multi-Architecture Binaries
135:
1517:, either directly with RST 0 (
3916:"Ryan Gordon Halts FatELF Project"
2404:, Pittsburgh, Pennsylvania, USA /
1690:, a text configuration file under
962:trees are not required anymore in
621:. If so, they start with an extra
537:-compatible operating systems for
526:) processor families use the same
25:
4825:dynamischen Dead-Code-Elimination
4295:. May 2022. TRM-06721-001_v11.7.
3970:Mulder, Sijmen J. (2021-03-06) .
3823:"FatELF specification, version 1"
3229:Paul, Matthias R. (2001-06-10) .
2311:Paul, Matthias R. (2002-10-07) .
2192:. Redwood City, California, USA:
2161:. Redwood City, California, USA:
1537:interface. Alternatively, as the
1000:images for heterogeneous systems.
686:One program known to do this was
589:EBh, 18h, 2Dh, 70h, 6Dh, 73h, 2Dh
587:, CP/M-80 and DOS, starting with
434:In 2020, Apple announced another
369:In 2005, Apple announced another
169:A fat-binary scheme smoothed the
4960:"Fat Binary - DOS Windows Linux"
4958:Gotham, Frederick (2020-11-02).
4934:Gotham, Frederick (2020-10-24).
4910:Gotham, Frederick (2020-10-22).
4798:Paul, Matthias R. (2001-04-10).
4761:Paul, Matthias R. (2001-08-21).
4727:Paul, Matthias R. (2002-04-06).
4109:. 11: Tera-scale Computing (3).
3578:(DEC). 1969. pp. 5-3–5-6 .
3307:Paul, Matthias R. (1997-10-02).
3141:Paul, Matthias R. (2002-04-06).
3102:Paul, Matthias R. (2002-04-11).
2911:Elliott, John C. (1997-01-18) .
2833:Elliott, John C. (2012-06-20) .
2758:Elliott, John C. (1998-06-28) .
2365:from the original on 2021-12-13.
1606:("RETF", popping CS:IP from the
1481:This works because a (suitable)
651:, avoiding incorrect operation.
613:.COM files may have one or more
346:
5017:from the original on 2021-09-29
4993:from the original on 2017-12-06
4970:from the original on 2021-09-12
4946:from the original on 2021-09-12
4922:from the original on 2021-09-12
4898:from the original on 2021-09-12
4878:from the original on 2021-06-01
4855:from the original on 2021-09-12
4814:from the original on 2017-09-09
4773:from the original on 2019-04-19
4739:from the original on 2019-04-27
4729:"[fd-dev] Ctrl+Alt+Del"
4623:from the original on 2022-05-26
4587:from the original on 2022-04-07
4557:from the original on 2021-09-12
4527:from the original on 2022-05-25
4506:. Minneapolis, Minnesota, USA:
4472:from the original on 2022-05-25
4433:from the original on 2022-05-26
4390:from the original on 2022-05-26
4358:from the original on 2022-03-21
4302:from the original on 2022-05-25
4267:from the original on 2022-05-25
4238:from the original on 2022-05-25
4203:from the original on 2022-03-23
4166:from the original on 2022-05-26
4136:from the original on 2022-05-26
4048:from the original on 2023-08-20
4015:from the original on 2023-08-20
3982:from the original on 2022-05-26
3952:from the original on 2022-05-26
3922:from the original on 2022-05-26
3892:from the original on 2022-05-21
3833:from the original on 2020-08-27
3800:from the original on 2020-08-27
3764:from the original on 2020-02-26
3735:from the original on 2020-02-26
3624:from the original on 2020-02-28
3585:from the original on 2011-11-15
3546:from the original on 2014-07-14
3535:. Maynard, Massachusetts, USA:
3270:from the original on 2017-09-10
3237:from the original on 2016-04-20
3186:systems, which always execute
3153:from the original on 2020-02-07
3114:from the original on 2020-02-21
3079:from the original on 2020-01-15
3025:from the original on 2019-07-28
3013:Necasek, Michal (2018-01-30) .
2992:from the original on 2016-08-30
2927:from the original on 2021-12-13
2845:from the original on 2021-11-17
2794:from the original on 2021-12-12
2782:Elliott, John C. (2002-03-11).
2722:from the original on 2021-12-13
2706:Elliott, John C. (1996-06-13).
2679:from the original on 2018-05-19
2577:from the original on 2021-12-13
2561:Elliott, John C. (2009-10-27).
2531:from the original on 2021-12-13
2433:from the original on 2022-05-26
2406:Georgia Institute of Technology
2327:from the original on 2017-09-03
2203:from the original on 2022-05-26
2172:from the original on 2020-12-14
2136:from the original on 2021-09-29
2068:from the original on 2021-09-29
2035:from the original on 2021-09-29
1986:from the original on 2021-09-29
1936:from the original on 2023-05-26
1901:from the original on 2022-05-25
1872:from the original on 2022-05-25
1841:from the original on 2014-01-16
1106:'s parallel computing platform
728:(typically with file extension
268:number of fat_arch structures (
221:Fat binaries were a feature of
2885:only on a PC). PMSFX21X.COM
2708:"Upload to micros.hensa.ac.uk"
1735:file formats supported by the
1262:without any semantic effects.
865:will be interpreted as "soft"
1:
4784:dynamic dead code elimination
4694:dynamic dead code elimination
4665:. Utilizing an off-the-shelf
4645:(User Manual) (v6.5 ed.)
3851:Windisch, Eric (2009-11-03).
3723:BC_Programmer (2010-01-31) .
3576:Digital Equipment Corporation
3537:Digital Equipment Corporation
3231:"DOS COUNTRY.SYS file format"
2456:instruction set architectures
2394:Platform-Independent Programs
1808:. Kyoto, Japan. p. 131.
1602:is an undocumented alias for
1295:dynamic dead code elimination
1089:instruction set architectures
828:file identification utility.
617:overlays attached to them by
459:In 2006, Apple switched from
377:" and calls the file format "
136:Apollo's compound executables
115:it in-place, or the use of a
4339:10.1109/PMBS49563.2019.00014
4156:"cudaFatFormat.h / ptxomp.c"
3419:"Type-3 and Type-4 Programs"
3371:"ZCPR 3.4 - Type-4 Programs"
2811:version. To get the single
2669:"CP/M and MS-DOS Fat Binary"
2097:. 1997-03-11. Archived from
1363:Multi-architecture shellcode
1244:instruction set architecture
1161:introduced in 2007 as well.
768:Crash-protected system files
4782:a unique feature we call
4424:10.1109/ISPASS.2009.4919648
2696:and compatible processors.)
2657:and compatible processors.)
2383:Cha, Sang Kil; Pak, Brian;
2233:2009-02-04 . Archived from
2122:"Chapter 8 - PEF Structure"
1963:"Should Fat Binaries Diet?"
1860:Pero, Nicola (2008-12-18).
1529:opcode C7h), or by calling
1467:operating system families.)
1224:intermediate representation
820:recognized by the external
559:
553:which cause the program to
5055:
3344:1998-12-24. Archived from
2936:I've written a version of
2881:format (Multiface 3 ->
2815:, you need to use FBMAKE:
2402:Carnegie Mellon University
2288:"rEFIt - EFI Fat Binaries"
2248:Singh, Amit (2006-06-19).
720:Combined COM and SYS files
350:
164:
29:
5005:Münch, Matthias (2006) .
4708:and reconfigurability at
4609:. Power and Performance.
4227:(Application Note). 6.0.
4100:"Accelerator Exoskeleton"
3855:gmane.org. Archived from
2667:Brehm, Andrew J. (2016).
1891:"PackagingDrafts/GNUstep"
1513:) by jumping to 0 in the
1340:Position-independent code
1248:function multi-versioning
1234:Function multi-versioning
390:dynamic binary translator
388:, a PowerPC (PPC)-to-x86
5007:"AmigaOS 3.9 - Features"
4987:Haage & Partner GmbH
4676:to be embedded into the
4145:(12 of 1+vii+90+1 pages)
4107:Intel Technology Journal
3607:CP/M 2.0 Interface Guide
2982:"CP/M 3 COM file header"
2855:Self-extracting archives
2731:FATBIN 1.00 - combine a
1814:10.1109/ICSE.1998.671109
1541:is prepared to hold a 0
850:by convention include a
347:Apple's Universal binary
331:PowerPC, or PowerPC and
125:just-in-time compilation
47:multiarchitecture binary
30:Not to be confused with
5039:Executable file formats
4823:brandneue Feature, der
4684:and a self-discarding,
4575:Wennborg, Hans (2018).
4222:"CUDA Binary Utilities"
4084:10.1145/1273442.1250753
4034:"Build Arm64X binaries"
2966:self-extracting archive
2770:self-extracting archive
2610:ChristW (2012-11-14) .
2414:10.1145/1866307.1866369
2022:TidBITS Publishing Inc.
1973:TidBITS Publishing Inc.
1658:files of this type are
1533:function 0 through the
1357:Alphanumeric executable
1307:Cross-platform software
1208:GNU Compiler Collection
1176:CPUs and GPUs like the
1064:produce code files for
1062:heterogeneous platforms
1056:Heterogeneous computing
762:self-relocating drivers
690:, which used identical
315:code optimized for the
305:Darwin operating system
277:GNU Compiler Collection
3670:A. Osborne/McGraw-Hill
3497:. A file containing a
3484:. ark:/13960/t70v9g87h
3440:. ark:/13960/t4dn54d22
3392:. ark:/13960/t1wd4v943
3042:are identical between
2444:(12 pages) (See also:
1454:command line processor
1242:intended for the same
1216:link-time optimization
1091:(ISAs) from which the
964:OS directory structure
906:
788:driver. Likewise, the
375:Universal applications
366:
4581:Clang 7 documentation
4577:"Attributes in Clang"
3948:. Linux Weekly News.
3918:. Linux. osnews.com.
3637:file is denoted by a
3176:[D]CONFIG.SYS
2772:for CP/M-80 and DOS.)
2548:) might be mixed up.)
2292:refit.sourceforge.net
2012:"Fat Binary Comments"
1618:and newer processors.
1550:interrupt as well as
1437:because they use the
1238:Even in a program or
994:portable applications
901:
597:executable ASCII code
360:
3693:marks the end of an
3472:The Computer Journal
3424:The Computer Journal
3376:The Computer Journal
2321:alt.msdos.programmer
2313:"Re: Run a COM file"
2250:"2.6.2 Fat Binaries"
2196:US patent 5604905A.
2165:US patent 5432937A.
1927:Apollo Computer Inc.
1578:) both work as well.
1351:Universal hex format
1164:Multi2Sim (M2S), an
1136:just-in-time compile
1102:Introduced in 2006,
754:position-independent
549:environment, or add
515:executables for the
455:Apple Fat EFI binary
36:Portable application
4706:self-modifying code
4649:(NB. FreeKEYB is a
4612:Clear Linux Project
4072:ACM SIGPLAN Notices
4038:learn.microsoft.com
4005:learn.microsoft.com
3729:Computer Hope Forum
3617:. 1979. p. 5.
2563:"CP/M info program"
2389:Lipton, Richard Jay
2194:NeXT Computer, Inc.
2163:NeXT Computer, Inc.
1895:Fedora Project Wiki
1334:Portable Executable
1041:Portable Executable
1023:Portable Executable
1004:A proof-of-concept
467:CPUs, and replaced
411:In versions of the
307:(2000) and Apple's
299:Mach-O and Mac OS X
275:The version of the
177:microprocessors to
32:Portable executable
4989:. September 1996.
4257:"fatbinary - help"
4160:Nvidia Corporation
3704:end-of-file marker
3697:file by placing a
3196:Mouse Systems Mode
3069:"GSX Screen Shots"
3067:Lineback, Nathan.
1686:under MS-DOS, and
1559:machine-translated
1483:return instruction
1419:Concurrent DOS 386
1411:Concurrent DOS 286
1403:Concurrent CP/M-86
1293:through a form of
1256:Intel C++ Compiler
1066:parallel execution
907:
740:(typically in the
688:WordStar 3.2x
444:Universal 2 binary
367:
165:Apple's fat binary
51:executable program
4690:relocating loader
4617:Intel Corporation
4517:978-1-4503-1182-3
4348:978-1-7281-5977-5
4111:Intel Corporation
4001:"Arm64X PE files"
3821:(November 2009).
2944:unpackable under
2673:DesertPenguin.org
2620:The New Old Thing
2423:978-1-4503-0244-9
2258:Pearson Education
1322:Linear Executable
1286:relocating loader
863:control character
806:bootstrap loaders
782:COUNTRY directive
758:relocating loader
744:when it executes
638:executable loader
252:struct fat_header
101:union directories
16:(Redirected from
5046:
5025:
5023:
5022:
5001:
4999:
4998:
4978:
4976:
4975:
4954:
4952:
4951:
4930:
4928:
4927:
4906:
4904:
4903:
4886:
4884:
4883:
4863:
4861:
4860:
4830:
4829:
4820:
4819:
4808:de.comp.os.msdos
4795:
4789:
4788:
4779:
4778:
4758:
4752:
4751:
4745:
4744:
4724:
4718:
4655:keyboard layouts
4646:
4638:
4632:
4631:
4629:
4628:
4602:
4596:
4595:
4593:
4592:
4572:
4566:
4565:
4563:
4562:
4543:
4537:
4535:
4533:
4532:
4526:
4501:
4488:
4482:
4481:(4 of 210 pages)
4480:
4478:
4477:
4471:
4464:
4453:
4444:
4441:
4439:
4438:
4432:
4417:
4406:
4400:
4398:
4396:
4395:
4389:
4382:
4373:
4367:
4366:
4364:
4363:
4357:
4328:
4317:
4311:
4310:
4308:
4307:
4301:
4290:
4282:
4276:
4275:
4273:
4272:
4253:
4247:
4246:
4244:
4243:
4237:
4226:
4218:
4212:
4211:
4209:
4208:
4193:Nvidia Developer
4181:
4175:
4174:
4172:
4171:
4152:
4146:
4144:
4142:
4141:
4135:
4119:10.1535/itj.1103
4104:
4095:
4089:
4087:
4063:
4057:
4056:
4054:
4053:
4030:
4024:
4023:
4021:
4020:
3997:
3991:
3990:
3988:
3987:
3967:
3961:
3960:
3958:
3957:
3937:
3931:
3930:
3928:
3927:
3908:
3902:
3900:
3898:
3897:
3874:
3868:
3867:
3865:
3864:
3848:
3842:
3841:
3839:
3838:
3815:
3809:
3808:
3806:
3805:
3788:(October 2009).
3782:
3773:
3772:
3770:
3769:
3750:
3744:
3743:
3741:
3740:
3720:
3714:
3709:
3687:
3686:
3659:
3653:
3651:
3630:
3629:
3623:
3615:Digital Research
3612:
3601:
3595:
3593:
3591:
3590:
3584:
3573:
3562:
3556:
3554:
3552:
3551:
3545:
3534:
3523:
3517:
3512:
3490:
3489:
3462:
3453:
3448:
3446:
3445:
3414:
3405:
3400:
3398:
3397:
3366:
3357:
3356:
3354:
3353:
3332:
3326:
3323:
3321:
3320:
3311:. Archived from
3304:
3298:
3294:
3290:
3286:
3276:
3275:
3257:
3246:
3245:
3243:
3242:
3226:
3213:
3212:
3208:Self-loadhighing
3159:
3158:
3138:
3127:
3126:
3120:
3119:
3099:
3088:
3087:
3085:
3084:
3064:
3058:
3057:
3031:
3030:
3015:"WordStar Again"
3010:
3001:
3000:
2998:
2997:
2977:
2971:
2970:
2933:
2932:
2908:
2902:
2899:
2865:(2 or later) or
2851:
2850:
2830:
2821:
2817:
2800:
2799:
2784:"DSKWRITE v1.00"
2779:
2773:
2767:
2762:. Archived from
2755:
2749:
2748:
2728:
2727:
2703:
2697:
2687:
2685:
2684:
2664:
2658:
2652:
2632:
2631:
2622:. Archived from
2607:
2601:
2600:
2583:
2582:
2558:
2549:
2547:
2543:
2539:
2537:
2536:
2512:
2495:
2493:
2489:
2441:
2439:
2438:
2432:
2399:
2380:
2369:
2366:
2350:
2339:
2335:
2333:
2332:
2308:
2302:
2301:
2299:
2298:
2284:
2278:
2277:
2275:
2274:
2267:978-0-13270226-3
2245:
2239:
2238:
2219:
2213:
2211:
2209:
2208:
2202:
2191:
2180:
2178:
2177:
2171:
2160:
2151:
2145:
2144:
2142:
2141:
2118:
2112:
2109:
2107:
2106:
2083:
2077:
2076:
2074:
2073:
2050:
2044:
2043:
2041:
2040:
2020:. No. 241.
2004:
1995:
1994:
1992:
1991:
1971:. No. 240.
1955:
1946:
1944:
1942:
1941:
1935:
1924:
1916:
1910:
1909:
1907:
1906:
1887:
1881:
1880:
1878:
1877:
1857:
1851:
1849:
1847:
1846:
1840:
1795:
1782:
1765:
1751:
1734:
1729:
1723:
1713:
1707:
1652:
1643:
1628:
1619:
1605:
1601:
1595:processors, the
1585:
1579:
1479:
1468:
1452:written for the
1395:Personal CP/M-86
1383:
1260:dynamic dispatch
1189:Southern Islands
1156:
1118:-based compiler
1048:Similar concepts
853:
834:
818:"magic" patterns
813:DR-DOS 7.02
710:Digital Research
698:for CP/M-86 and
650:
645:
635:
605:
590:
581:self-extractable
570:
566:
505:Personal CP/M-80
399:
395:
379:Universal binary
363:Universal binary
353:Universal binary
294:
271:
266:
261:
253:
183:emulation scheme
81:operating system
59:instruction sets
49:) is a computer
21:
5054:
5053:
5049:
5048:
5047:
5045:
5044:
5043:
5029:
5028:
5020:
5018:
5004:
4996:
4994:
4981:
4973:
4971:
4957:
4949:
4947:
4933:
4925:
4923:
4909:
4901:
4899:
4889:
4881:
4879:
4865:
4858:
4856:
4842:
4839:
4837:Further reading
4834:
4833:
4817:
4815:
4797:
4796:
4792:
4776:
4774:
4760:
4759:
4755:
4742:
4740:
4726:
4725:
4721:
4678:executable file
4667:macro assembler
4640:
4639:
4635:
4626:
4624:
4604:
4603:
4599:
4590:
4588:
4574:
4573:
4569:
4560:
4558:
4545:
4544:
4540:
4530:
4528:
4524:
4518:
4499:
4495:(2012-09-23) .
4493:Kaeli, David R.
4490:
4489:
4485:
4475:
4473:
4469:
4462:
4455:
4454:
4447:
4436:
4434:
4430:
4415:
4408:
4407:
4403:
4393:
4391:
4387:
4380:
4375:
4374:
4370:
4361:
4359:
4355:
4349:
4326:
4319:
4318:
4314:
4305:
4303:
4299:
4288:
4284:
4283:
4279:
4270:
4268:
4255:
4254:
4250:
4241:
4239:
4235:
4224:
4220:
4219:
4215:
4206:
4204:
4187:(2014-05-08) .
4185:Harris, Mark J.
4183:
4182:
4178:
4169:
4167:
4154:
4153:
4149:
4139:
4137:
4133:
4102:
4097:
4096:
4092:
4065:
4064:
4060:
4051:
4049:
4032:
4031:
4027:
4018:
4016:
3999:
3998:
3994:
3985:
3983:
3969:
3968:
3964:
3955:
3953:
3939:
3938:
3934:
3925:
3923:
3910:
3909:
3905:
3895:
3893:
3878:Gordon, Ryan C.
3876:
3875:
3871:
3862:
3860:
3850:
3849:
3845:
3836:
3834:
3819:Gordon, Ryan C.
3817:
3816:
3812:
3803:
3801:
3786:Gordon, Ryan C.
3784:
3783:
3776:
3767:
3765:
3760:. 2011-08-03 .
3752:
3751:
3747:
3738:
3736:
3722:
3721:
3717:
3684:
3682:
3680:
3661:
3660:
3656:
3627:
3625:
3621:
3610:
3603:
3602:
3598:
3588:
3586:
3582:
3574:. Vol. 3.
3571:
3564:
3563:
3559:
3555:(1+84+10 pages)
3549:
3547:
3543:
3532:
3525:
3524:
3520:
3487:
3485:
3464:
3463:
3456:
3443:
3441:
3416:
3415:
3408:
3395:
3393:
3368:
3367:
3360:
3351:
3349:
3334:
3333:
3329:
3318:
3316:
3306:
3305:
3301:
3292:
3288:
3273:
3271:
3259:
3258:
3249:
3240:
3238:
3228:
3227:
3216:
3156:
3154:
3140:
3139:
3130:
3124:issue as well.
3117:
3115:
3101:
3100:
3091:
3082:
3080:
3066:
3065:
3061:
3028:
3026:
3012:
3011:
3004:
2995:
2993:
2979:
2978:
2974:
2960:code and legal
2930:
2928:
2910:
2909:
2905:
2848:
2846:
2832:
2831:
2824:
2797:
2795:
2781:
2780:
2776:
2757:
2756:
2752:
2725:
2723:
2705:
2704:
2700:
2682:
2680:
2666:
2665:
2661:
2629:
2627:
2609:
2608:
2604:
2580:
2578:
2560:
2559:
2552:
2545:
2541:
2534:
2532:
2514:
2513:
2498:
2491:
2487:
2436:
2434:
2430:
2424:
2397:
2391:(2010-10-08) .
2382:
2381:
2372:
2352:
2351:
2342:
2330:
2328:
2310:
2309:
2305:
2296:
2294:
2286:
2285:
2281:
2272:
2270:
2268:
2247:
2246:
2242:
2221:
2220:
2216:
2206:
2204:
2200:
2189:
2184:
2175:
2173:
2169:
2158:
2153:
2152:
2148:
2139:
2137:
2120:
2119:
2115:
2104:
2102:
2085:
2084:
2080:
2071:
2069:
2052:
2051:
2047:
2038:
2036:
2006:
2005:
1998:
1989:
1987:
1957:
1956:
1949:
1939:
1937:
1933:
1922:
1918:
1917:
1913:
1904:
1902:
1889:
1888:
1884:
1875:
1873:
1859:
1858:
1854:
1844:
1842:
1838:
1824:
1793:
1784:
1783:
1779:
1774:
1769:
1768:
1749:
1732:
1730:
1726:
1714:
1710:
1692:Windows 95
1682:containing the
1664:keyboard layout
1653:
1646:
1632:file extensions
1629:
1622:
1603:
1599:
1586:
1582:
1501:, although the
1485:can be used to
1480:
1471:
1384:
1377:
1372:
1303:
1236:
1222:must store the
1205:
1150:
1058:
1050:
1037:
1019:
1014:
998:cloud computing
896:
891:
851:
832:
770:
722:
680:
648:
643:
633:
603:
588:
568:
564:
555:exit gracefully
497:Concurrent CP/M
486:
481:
457:
397:
393:
355:
349:
301:
292:
270:struct fat_arch
264:
259:
219:
214:
171:Apple Macintosh
167:
162:
142:Apollo Computer
138:
133:
117:virtual machine
39:
28:
23:
22:
15:
12:
11:
5:
5052:
5050:
5042:
5041:
5031:
5030:
5027:
5026:
5002:
4979:
4955:
4931:
4907:
4887:
4838:
4835:
4832:
4831:
4790:
4753:
4719:
4714:canonical form
4700:techniques at
4680:alongside the
4633:
4597:
4567:
4538:
4516:
4483:
4445:
4401:
4368:
4347:
4312:
4277:
4248:
4213:
4176:
4162:. 2004-11-15.
4147:
4090:
4078:(6): 156–166.
4058:
4044:. 2023-03-10.
4025:
4011:. 2022-08-13.
3992:
3962:
3932:
3914:(2009-11-05).
3912:Holwerda, Thom
3903:
3869:
3843:
3810:
3774:
3745:
3715:
3678:
3672:. p. 74.
3654:
3633:The end of an
3596:
3557:
3518:
3454:
3406:
3358:
3327:
3299:
3247:
3214:
3128:
3089:
3073:Toastytech.com
3059:
3002:
2972:
2964:header) as a
2940:that produces
2903:
2835:"Generic CP/M"
2822:
2774:
2766:on 1998-06-28.
2760:"FATBIN v1.01"
2750:
2698:
2659:
2602:
2550:
2496:
2422:
2385:Brumley, David
2370:
2340:
2303:
2279:
2266:
2260:. p. 66.
2240:
2237:on 2012-04-27.
2214:
2146:
2132:. 1997-03-11.
2130:Apple Computer
2113:
2095:Apple Computer
2078:
2064:. 1996-07-06.
2062:Apple Computer
2045:
2010:(1994-08-29).
2008:Engst, Adam C.
1996:
1961:(1994-08-22).
1959:Engst, Adam C.
1947:
1911:
1897:. 2009-02-25.
1882:
1852:
1822:
1787:"3.3 Java and
1776:
1775:
1773:
1770:
1767:
1766:
1724:
1708:
1644:
1620:
1580:
1543:return address
1469:
1439:file extension
1431:System Manager
1407:Concurrent DOS
1374:
1373:
1371:
1368:
1367:
1366:
1360:
1354:
1348:
1343:
1337:
1331:
1328:New Executable
1325:
1319:
1314:
1309:
1302:
1299:
1235:
1232:
1204:
1201:
1085:multithreading
1057:
1054:
1049:
1046:
1036:
1033:
1018:
1015:
1013:
1010:
1002:
1001:
990:
987:
980:
977:
974:
967:
948:
940:and versions.
895:
892:
890:
887:
769:
766:
748:statements in
726:device drivers
721:
718:
679:
676:
560:gadget headers
531:file extension
485:
482:
480:
477:
456:
453:
351:Main article:
348:
345:
300:
297:
218:
215:
213:
210:
166:
163:
161:
158:
150:Motorola 680x0
137:
134:
132:
129:
119:(such as with
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
5051:
5040:
5037:
5036:
5034:
5016:
5012:
5008:
5003:
4992:
4988:
4984:
4980:
4969:
4965:
4961:
4956:
4945:
4941:
4937:
4932:
4921:
4917:
4913:
4908:
4897:
4893:
4888:
4877:
4873:
4869:
4854:
4850:
4846:
4841:
4840:
4836:
4828:
4826:
4813:
4809:
4805:
4802:(in German).
4801:
4794:
4791:
4787:
4785:
4772:
4768:
4764:
4757:
4754:
4750:
4738:
4734:
4730:
4723:
4720:
4715:
4711:
4707:
4703:
4699:
4695:
4691:
4687:
4683:
4679:
4675:
4672:
4671:code morphing
4668:
4664:
4663:country codes
4660:
4656:
4652:
4648:
4644:
4637:
4634:
4622:
4618:
4614:
4613:
4608:
4601:
4598:
4586:
4582:
4578:
4571:
4568:
4556:
4552:
4548:
4542:
4539:
4523:
4519:
4513:
4509:
4505:
4498:
4494:
4487:
4484:
4468:
4461:
4460:
4452:
4450:
4446:
4443:
4429:
4425:
4421:
4414:
4413:
4405:
4402:
4386:
4379:
4372:
4369:
4354:
4350:
4344:
4340:
4336:
4332:
4325:
4324:
4316:
4313:
4298:
4294:
4287:
4281:
4278:
4266:
4263:. 8.0. 2016.
4262:
4261:helpmanual.io
4258:
4252:
4249:
4234:
4230:
4223:
4217:
4214:
4202:
4198:
4194:
4190:
4186:
4180:
4177:
4165:
4161:
4157:
4151:
4148:
4132:
4128:
4124:
4120:
4116:
4112:
4108:
4101:
4094:
4091:
4085:
4081:
4077:
4073:
4069:
4062:
4059:
4047:
4043:
4039:
4035:
4029:
4026:
4014:
4010:
4006:
4002:
3996:
3993:
3981:
3977:
3973:
3966:
3963:
3951:
3947:
3943:
3936:
3933:
3921:
3917:
3913:
3907:
3904:
3891:
3887:
3883:
3879:
3873:
3870:
3859:on 2016-11-15
3858:
3854:
3847:
3844:
3832:
3828:
3824:
3820:
3814:
3811:
3799:
3795:
3791:
3787:
3781:
3779:
3775:
3763:
3759:
3755:
3749:
3746:
3734:
3730:
3726:
3719:
3716:
3713:
3711:
3708:
3705:
3700:
3696:
3692:
3681:
3679:0-931988-82-9
3675:
3671:
3667:
3666:
3658:
3655:
3650:
3648:
3644:
3640:
3636:
3620:
3616:
3609:
3608:
3600:
3597:
3581:
3577:
3570:
3569:
3561:
3558:
3542:
3538:
3531:
3530:
3522:
3519:
3516:
3514:
3511:
3509:
3505:
3500:
3496:
3483:
3479:
3475:
3473:
3468:
3461:
3459:
3455:
3452:
3450:
3439:
3435:
3431:
3427:
3425:
3420:
3413:
3411:
3407:
3404:
3402:
3391:
3387:
3383:
3379:
3377:
3372:
3365:
3363:
3359:
3348:on 2019-04-08
3347:
3343:
3342:Caldera, Inc.
3339:
3338:
3331:
3328:
3325:
3315:on 2003-10-04
3314:
3310:
3303:
3300:
3297:
3285:
3282:
3269:
3265:
3264:
3256:
3254:
3252:
3248:
3236:
3232:
3225:
3223:
3221:
3219:
3215:
3211:
3209:
3205:
3201:
3197:
3193:
3189:
3185:
3181:
3177:
3173:
3169:
3165:
3152:
3148:
3144:
3137:
3135:
3133:
3129:
3125:
3113:
3109:
3105:
3098:
3096:
3094:
3090:
3078:
3074:
3070:
3063:
3060:
3056:
3053:
3052:WordStar 3.20
3049:
3045:
3041:
3037:
3024:
3020:
3016:
3009:
3007:
3003:
2991:
2987:
2983:
2976:
2973:
2969:
2967:
2963:
2959:
2955:
2951:
2947:
2943:
2939:
2926:
2922:
2918:
2914:
2907:
2904:
2901:
2898:
2896:
2892:
2888:
2884:
2880:
2876:
2872:
2868:
2864:
2860:
2856:
2844:
2840:
2836:
2829:
2827:
2823:
2819:
2816:
2814:
2810:
2806:
2793:
2789:
2785:
2778:
2775:
2771:
2765:
2761:
2754:
2751:
2747:
2745:
2741:
2737:
2734:
2721:
2717:
2713:
2709:
2702:
2699:
2695:
2691:
2678:
2674:
2670:
2663:
2660:
2656:
2651:
2650:
2646:
2642:
2638:
2626:on 2018-07-05
2625:
2621:
2617:
2613:
2612:Chen, Raymond
2606:
2603:
2599:
2597:
2593:
2589:
2576:
2572:
2568:
2564:
2557:
2555:
2551:
2546:EBh, 04h, ...
2542:EBh, 44h, EBh
2530:
2526:
2522:
2518:
2511:
2509:
2507:
2505:
2503:
2501:
2497:
2485:
2481:
2477:
2473:
2469:
2468:gadget header
2465:
2461:
2457:
2454:
2450:
2446:
2443:
2429:
2425:
2419:
2415:
2411:
2407:
2403:
2396:
2395:
2390:
2386:
2379:
2377:
2375:
2371:
2368:
2364:
2360:
2356:
2349:
2347:
2345:
2341:
2337:
2326:
2322:
2318:
2314:
2307:
2304:
2293:
2289:
2283:
2280:
2269:
2263:
2259:
2255:
2251:
2244:
2241:
2236:
2232:
2228:
2224:
2218:
2215:
2199:
2195:
2188:
2182:
2168:
2164:
2157:
2150:
2147:
2135:
2131:
2127:
2123:
2117:
2114:
2111:
2101:on 2021-09-29
2100:
2096:
2092:
2088:
2082:
2079:
2067:
2063:
2059:
2055:
2049:
2046:
2034:
2030:
2026:
2023:
2019:
2018:
2013:
2009:
2003:
2001:
1997:
1985:
1981:
1977:
1974:
1970:
1969:
1964:
1960:
1954:
1952:
1948:
1932:
1928:
1921:
1915:
1912:
1900:
1896:
1892:
1886:
1883:
1871:
1867:
1863:
1856:
1853:
1837:
1833:
1829:
1825:
1823:0-8186-8368-6
1819:
1815:
1811:
1807:
1803:
1799:
1792:
1790:
1781:
1778:
1771:
1763:
1759:
1755:
1746:
1742:
1738:
1728:
1725:
1721:
1718:
1712:
1709:
1705:
1701:
1697:
1693:
1689:
1685:
1681:
1677:
1673:
1669:
1665:
1661:
1657:
1651:
1649:
1645:
1641:
1637:
1633:
1627:
1625:
1621:
1617:
1613:
1609:
1598:
1594:
1590:
1584:
1581:
1577:
1572:
1568:
1564:
1560:
1556:
1553:
1549:
1544:
1540:
1536:
1532:
1528:
1524:
1520:
1516:
1512:
1508:
1504:
1500:
1496:
1492:
1488:
1487:exit programs
1484:
1478:
1476:
1474:
1470:
1466:
1462:
1458:
1455:
1451:
1447:
1443:
1440:
1436:
1432:
1428:
1427:Multiuser DOS
1424:
1420:
1416:
1412:
1408:
1404:
1400:
1396:
1392:
1388:
1382:
1380:
1376:
1369:
1364:
1361:
1358:
1355:
1352:
1349:
1347:
1344:
1341:
1338:
1335:
1332:
1329:
1326:
1323:
1320:
1318:
1315:
1313:
1310:
1308:
1305:
1304:
1300:
1298:
1296:
1292:
1287:
1283:
1278:
1276:
1272:
1268:
1263:
1261:
1257:
1253:
1249:
1245:
1241:
1233:
1231:
1229:
1225:
1221:
1217:
1213:
1209:
1202:
1200:
1198:
1194:
1190:
1186:
1183:
1179:
1175:
1171:
1167:
1162:
1160:
1154:
1149:
1145:
1141:
1140:CUDA binaries
1137:
1133:
1129:
1125:
1121:
1117:
1113:
1109:
1105:
1100:
1098:
1094:
1090:
1086:
1082:
1079:
1075:
1071:
1067:
1063:
1055:
1053:
1047:
1045:
1042:
1034:
1032:
1029:
1024:
1021:Although the
1016:
1011:
1009:
1007:
999:
995:
991:
988:
985:
981:
978:
975:
972:
971:shell scripts
968:
965:
961:
957:
953:
949:
946:
945:
944:
941:
939:
935:
931:
927:
923:
919:
915:
911:
904:
900:
893:
888:
886:
884:
880:
876:
872:
868:
864:
860:
857:
849:
844:
842:
838:
829:
827:
824:& DR-DOS
823:
819:
814:
809:
807:
803:
799:
796:system files
795:
791:
787:
783:
779:
775:
767:
765:
763:
759:
755:
751:
747:
743:
739:
735:
731:
727:
719:
717:
715:
711:
707:
705:
701:
697:
693:
692:overlay files
689:
684:
677:
675:
673:
669:
665:
661:
657:
652:
641:
639:
632:
628:
624:
620:
616:
612:
607:
604:C3h, 03h, 01h
600:
598:
594:
586:
582:
578:
574:
569:EBh, 03h, C3h
565:EBh, 52h, EBh
562:
561:
556:
552:
546:
544:
540:
536:
532:
529:
525:
522:
518:
514:
510:
506:
502:
498:
494:
490:
483:
478:
476:
474:
470:
469:Open Firmware
466:
462:
454:
452:
450:
445:
441:
440:Apple silicon
437:
432:
430:
429:Mac OS X 10.7
426:
422:
421:Mac OS X 10.6
418:
417:Mac OS X 10.4
414:
409:
405:
403:
391:
387:
382:
380:
376:
372:
364:
359:
354:
344:
342:
338:
334:
330:
326:
322:
318:
314:
310:
306:
298:
296:
289:
286:
282:
281:cross-compile
278:
273:
267:
257:
249:
245:
241:
237:
232:
228:
224:
216:
209:
207:
202:
200:
196:
192:
191:resource fork
188:
184:
180:
176:
172:
159:
157:
156:executables.
155:
151:
147:
143:
130:
128:
126:
122:
118:
114:
110:
106:
102:
98:
94:
90:
86:
82:
77:
75:
71:
67:
62:
60:
56:
52:
48:
44:
37:
33:
19:
5019:. Retrieved
5010:
4995:. Retrieved
4986:
4972:. Retrieved
4963:
4948:. Retrieved
4939:
4924:. Retrieved
4915:
4900:. Retrieved
4880:. Retrieved
4871:
4857:. Retrieved
4848:
4822:
4816:. Retrieved
4793:
4781:
4775:. Retrieved
4766:
4756:
4747:
4741:. Retrieved
4732:
4722:
4642:
4636:
4625:. Retrieved
4610:
4600:
4589:. Retrieved
4580:
4570:
4559:. Retrieved
4550:
4541:
4529:. Retrieved
4503:
4486:
4474:. Retrieved
4458:
4435:. Retrieved
4411:
4404:
4392:. Retrieved
4371:
4360:. Retrieved
4322:
4315:
4304:. Retrieved
4280:
4269:. Retrieved
4260:
4251:
4240:. Retrieved
4216:
4205:. Retrieved
4192:
4179:
4168:. Retrieved
4150:
4138:. Retrieved
4106:
4093:
4075:
4071:
4061:
4050:. Retrieved
4037:
4028:
4017:. Retrieved
4004:
3995:
3984:. Retrieved
3975:
3965:
3954:. Retrieved
3945:
3935:
3924:. Retrieved
3906:
3894:. Retrieved
3885:
3872:
3861:. Retrieved
3857:the original
3846:
3835:. Retrieved
3826:
3813:
3802:. Retrieved
3793:
3766:. Retrieved
3757:
3748:
3737:. Retrieved
3728:
3718:
3689:
3683:. Retrieved
3664:
3657:
3632:
3626:. Retrieved
3606:
3599:
3587:. Retrieved
3567:
3560:
3548:. Retrieved
3528:
3521:
3492:
3486:. Retrieved
3470:
3442:. Retrieved
3422:
3394:. Retrieved
3374:
3350:. Retrieved
3346:the original
3336:
3330:
3317:. Retrieved
3313:the original
3302:
3293:NWDOSTIP.TXT
3289:MPDOSTIP.ZIP
3278:
3272:. Retrieved
3262:
3239:. Retrieved
3161:
3155:. Retrieved
3146:
3122:
3116:. Retrieved
3107:
3081:. Retrieved
3072:
3062:
3033:
3027:. Retrieved
3018:
2994:. Retrieved
2985:
2975:
2956:code, legal
2935:
2929:. Retrieved
2906:
2853:
2847:. Retrieved
2838:
2802:
2796:. Retrieved
2787:
2777:
2764:the original
2753:
2730:
2724:. Retrieved
2701:
2681:. Retrieved
2672:
2662:
2634:
2628:. Retrieved
2624:the original
2619:
2605:
2585:
2579:. Retrieved
2533:. Retrieved
2467:
2435:. Retrieved
2393:
2358:
2329:. Retrieved
2306:
2295:. Retrieved
2291:
2282:
2271:. Retrieved
2253:
2243:
2235:the original
2226:
2217:
2205:. Retrieved
2174:. Retrieved
2149:
2138:. Retrieved
2125:
2116:
2103:. Retrieved
2099:the original
2090:
2081:
2070:. Retrieved
2057:
2048:
2037:. Retrieved
2015:
1988:. Retrieved
1966:
1938:. Retrieved
1914:
1903:. Retrieved
1894:
1885:
1874:. Retrieved
1865:
1855:
1843:. Retrieved
1805:
1797:
1788:
1780:
1727:
1716:
1711:
1660:KEYBOARD.SYS
1583:
1576:INT E0h
1552:INT 21h
1548:INT 20h
1444:rather than
1391:CP/M-86 Plus
1279:
1264:
1247:
1237:
1227:
1220:object files
1212:object files
1211:
1206:
1193:Nvidia Fermi
1163:
1143:
1139:
1101:
1083:concept for
1059:
1051:
1038:
1020:
1003:
959:
955:
951:
942:
908:
902:
873:monitor and
848:file formats
845:
830:
810:
771:
723:
708:
681:
653:
642:
625:header (one
608:
601:
584:
558:
547:
487:
479:CP/M and DOS
458:
433:
431:or greater.
410:
406:
401:
383:
368:
362:
302:
290:
274:
263:
256:magic number
220:
203:
168:
154:Apollo PRISM
139:
78:
66:machine code
63:
46:
42:
40:
4872:Hacker News
4767:freedos-dev
4733:freedos-dev
4704:as well as
4682:binary code
4551:gcc.gnu.org
4113:: 185–196.
3886:icculus.org
3827:icculus.org
3794:icculus.org
3594:(207 pages)
3200:environment
3184:PC DOS
3168:DR DOS
3147:freedos-dev
3108:freedos-dev
3019:OS/2 Museum
2986:Seasip.info
2921:comp.os.cpm
2879:Multiface 3
2839:Seasip.info
2716:comp.os.cpm
2571:comp.os.cpm
2525:comp.os.cpm
2472:ROP gadgets
2183:(9 pages);
1945:(256 pages)
1754:DR-DOS 7.02
1750:COUNTRY.SYS
1741:PC DOS
1733:COUNTRY.SYS
1704:DR-DOS 7.02
1676:PC DOS
1662:, a binary
1640:PC DOS
1535:CALL 5
1346:Side effect
1317:Fat pointer
1203:Fat objects
1191:as well as
1151: [
1122:can create
1006:Ubuntu 9.04
867:end-of-file
790:PC DOS
774:COUNTRY.SYS
656:overlapping
611:CP/M-80 3.0
402:thin binary
325:PowerPC 970
206:hard drives
109:source code
70:entry point
5021:2021-09-29
4997:2021-09-29
4974:2021-09-12
4950:2021-09-12
4926:2021-09-12
4902:2021-09-12
4882:2021-09-12
4859:2021-09-12
4818:2017-07-02
4777:2019-04-20
4743:2019-04-27
4698:relocation
4659:code pages
4627:2022-05-26
4591:2022-05-26
4561:2021-09-12
4536:(10 pages)
4531:2022-05-25
4476:2022-05-25
4437:2022-05-06
4399:(12 pages)
4394:2022-05-26
4362:2022-05-26
4306:2022-05-25
4271:2022-05-25
4242:2022-05-25
4207:2022-05-26
4170:2022-05-26
4140:2022-05-26
4088:(11 pages)
4052:2023-03-31
4019:2023-03-31
3986:2022-05-26
3956:2011-02-06
3926:2010-07-05
3896:2022-05-26
3863:2010-07-08
3837:2010-07-25
3804:2010-07-13
3768:2020-02-26
3739:2020-02-26
3685:2020-02-28
3652:(56 pages)
3628:2020-02-28
3589:2014-07-10
3550:2014-07-10
3488:2020-02-09
3444:2021-11-29
3396:2021-11-29
3352:2019-04-08
3319:2009-03-29
3284:abzusehen.
3281:IBMBIO.COM
3274:2014-08-06
3241:2016-08-20
3157:2020-02-07
3118:2020-02-21
3083:2020-01-15
3029:2019-07-28
2996:2016-08-29
2942:.COM files
2931:2021-12-13
2859:.COM files
2849:2021-12-12
2798:2021-12-12
2726:2021-12-13
2683:2018-05-19
2630:2018-05-19
2581:2021-12-13
2535:2021-12-13
2437:2022-05-26
2331:2017-09-03
2297:2022-10-18
2273:2021-09-28
2231:Apple Inc.
2207:2022-05-26
2176:2022-05-26
2140:2021-09-29
2105:2011-06-20
2072:2021-09-29
2039:2021-09-29
1990:2021-09-29
1940:2022-07-24
1905:2022-05-26
1876:2022-05-26
1850:(10 pages)
1845:2021-09-29
1772:References
1696:MS-DOS 7.0
1465:Windows NT
1459:under the
1228:fat object
950:Separated
926:byte order
916:and other
802:IBMDOS.COM
798:IBMBIO.COM
750:CONFIG.SYS
674:binaries.
631:magic byte
539:Intel 8086
517:Intel 8080
436:transition
425:64-bit x86
321:PowerPC G4
317:PowerPC G3
43:fat binary
4804:Newsgroup
4702:load-time
4674:meta data
4127:1535-864X
4042:Microsoft
4009:Microsoft
3758:Superuser
3699:CONTROL-Z
3647:COM files
3639:control-Z
3495:warm boot
3482:0748-9331
3438:0748-9331
3390:0748-9331
3192:PC$ MOUSE
2917:Newsgroup
2913:"PMSFX 2"
2813:.COM file
2736:.COM file
2712:Newsgroup
2637:.COM file
2567:Newsgroup
2521:Newsgroup
2317:Newsgroup
2212:(9 pages)
2029:1090-7017
1980:1090-7017
1832:0270-5257
1720:attribute
1688:MSDOS.SYS
1515:zero page
1509:into the
1507:warm boot
1450:batchjobs
1291:load-time
1271:Intel MKL
1185:Evergreen
1159:simulator
1148:GPGPU-Sim
996:and also
930:word size
918:Unix-like
841:warm boot
734:FFFFFFFFh
694:in their
501:CP/M Plus
449:Rosetta 2
265:nfat_arch
260:nfat_arch
195:data fork
146:Domain/OS
140:In 1988,
113:compiling
111:form and
91:multiple
85:installer
18:GPGPU-Sim
5033:Category
5015:Archived
4991:Archived
4968:Archived
4944:Archived
4920:Archived
4896:Archived
4876:Archived
4853:Archived
4812:Archived
4771:Archived
4737:Archived
4710:run-time
4686:relaxing
4621:Archived
4585:Archived
4555:Archived
4522:Archived
4467:Archived
4428:Archived
4385:Archived
4353:Archived
4297:Archived
4291:. 11.7.
4265:Archived
4233:Archived
4201:Archived
4164:Archived
4158:. 1.13.
4131:Archived
4046:Archived
4013:Archived
3980:Archived
3950:Archived
3920:Archived
3890:Archived
3880:(2009).
3831:Archived
3798:Archived
3762:Archived
3733:Archived
3619:Archived
3580:Archived
3541:Archived
3504:Z-System
3268:Archived
3235:Archived
3170:because
3151:Archived
3112:Archived
3077:Archived
3040:overlays
3023:Archived
2990:Archived
2925:Archived
2875:Spectrum
2843:Archived
2792:Archived
2720:Archived
2677:Archived
2575:Archived
2529:Archived
2486:: i.e.
2458:(as for
2428:Archived
2363:Archived
2325:Archived
2198:Archived
2167:Archived
2134:Archived
2066:Archived
2033:Archived
1984:Archived
1931:Archived
1899:Archived
1870:Archived
1836:Archived
1756:and its
1743:and the
1684:DOS BIOS
1423:DOS Plus
1312:DOS stub
1301:See also
1297:(DDCE).
1282:relaxing
1275:OpenBLAS
1157:, a GPU
1132:assembly
1130:virtual
837:Z-System
784:and the
742:DOS BIOS
654:Similar
623:256-byte
419:through
309:Mac OS X
285:NeXTStep
231:OPENSTEP
227:NeXTSTEP
201:format.
4964:Narkive
4940:Narkive
4916:Narkive
4806::
4651:Unicode
3946:LWN.net
3295:file.)
3172:INSTALL
3036:CP/M-86
2919::
2895:Windows
2744:Amstrad
2714::
2614:(ed.).
2569::
2523::
2319::
2017:TidBITS
1968:TidBITS
1758:NLSFUNC
1503:opcodes
1495:CP/M-86
1491:CP/M-80
1457:CMD.EXE
1435:REAL/32
1387:CP/M-86
1240:library
1114:). Its
1093:runtime
1017:Fatpack
1012:Windows
883:TOPS-10
826:VERSION
822:NetWare
786:NLSFUNC
704:runtime
683:CP/M-86
666:or x86/
662:, 8086/
543:opcodes
513:MSX-DOS
493:MP/M-80
489:CP/M-80
461:PowerPC
386:Rosetta
293:libtool
238:-based
179:PowerPC
105:GNUstep
89:Android
55:library
4661:, and
4514:
4345:
4293:Nvidia
4229:Nvidia
4197:Nvidia
4125:
3976:GitHub
3676:
3508:Z3ENVs
3480:
3436:
3432:–19 .
3388:
3384:–17 .
3194:" for
3188:DEVICE
3180:MS-DOS
2738:and a
2645:MS-DOS
2474:) for
2420:
2359:REMark
2264:
2027:
1978:
1866:GitHub
1830:
1820:
1745:DR-DOS
1737:MS-DOS
1717:hidden
1700:kernel
1680:IO.SYS
1672:MS-DOS
1670:under
1654:Other
1636:MS-DOS
1597:opcode
1489:under
1415:FlexOS
1399:S5-DOS
1273:, and
1197:Kepler
1195:&
1187:&
1166:OpenCL
1104:Nvidia
1081:pragma
1078:OpenMP
1035:Arm64X
984:BSD OS
960:/lib64
956:/lib32
910:FatELF
903:FatELF
854:byte (
794:DR-DOS
746:DEVICE
700:MS-DOS
619:GENCOM
583:under
579:to be
361:Apple
337:x86-64
329:64-bit
323:, and
313:32-bit
248:Mach-O
131:Apollo
123:) and
97:Plan 9
4525:(PDF)
4500:(PDF)
4470:(PDF)
4463:(PDF)
4431:(PDF)
4416:(PDF)
4388:(PDF)
4381:(PDF)
4356:(PDF)
4327:(PDF)
4300:(PDF)
4289:(PDF)
4236:(PDF)
4225:(PDF)
4134:(PDF)
4103:(PDF)
3695:ASCII
3635:ASCII
3622:(PDF)
3611:(PDF)
3583:(PDF)
3572:(PDF)
3544:(PDF)
3533:(PDF)
3499:Z3TXT
3202:, no
3038:(the
2938:PMSFX
2897:.BMP
2891:PMARC
2887:PMSFX
2647:and
2592:PMArc
2431:(PDF)
2398:(PDF)
2201:(PDF)
2190:(PDF)
2170:(PDF)
2159:(PDF)
1934:(PDF)
1923:(PDF)
1839:(PDF)
1794:(PDF)
1762:Janus
1616:80186
1612:80188
1608:stack
1539:stack
1370:Notes
1342:(PIC)
1267:glibc
1252:CPUID
1155:]
1144:cubin
1142:(aka
1112:GPGPU
1074:Intel
914:Linux
889:Linux
875:RT-11
871:PDP-6
856:ASCII
738:loads
696:ports
664:68000
609:Some
577:PMarc
573:PMsfx
551:stubs
521:Zilog
519:(and
471:with
465:Intel
413:Xcode
398:ditto
341:ARM64
335:, or
236:IA-32
197:, in
187:68000
160:Apple
74:forks
4696:and
4688:and
4512:ISBN
4508:IEEE
4343:ISBN
4331:IEEE
4123:ISSN
3691:CP/M
3674:ISBN
3643:CP/M
3478:ISSN
3434:ISSN
3386:ISSN
3048:.OVR
2958:8086
2950:CP/M
2948:and
2871:Unix
2867:CP/M
2857:are
2805:CP/M
2733:CP/M
2694:8080
2655:8080
2649:CP/M
2596:8086
2544:and
2482:and
2480:MIPS
2462:and
2460:CP/M
2453:8086
2451:vs.
2449:8080
2418:ISBN
2262:ISBN
2025:ISSN
1976:ISSN
1828:ISSN
1818:ISBN
1731:The
1674:and
1668:KEYB
1593:8086
1589:8088
1571:8086
1567:8088
1531:BDOS
1523:8085
1519:8080
1511:BIOS
1497:and
1463:and
1461:OS/2
1446:.COM
1442:.CMD
1433:and
1336:(PE)
1330:(NE)
1324:(LX)
1284:and
1214:for
1170:MIPS
1120:NVCC
1116:LLVM
1108:CUDA
958:and
952:/lib
938:ABIs
905:logo
800:and
792:and
730:.SYS
724:DOS
668:MIPS
660:6502
627:page
585:both
528:.COM
511:and
396:and
394:lipo
365:logo
339:and
244:RISC
223:NeXT
152:and
121:Java
103:and
93:APKs
45:(or
4420:doi
4335:doi
4115:doi
4080:doi
3204:PSP
3164:TSR
3044:DOS
2962:PMA
2954:Z80
2946:DOS
2883:Z80
2863:DOS
2809:DOS
2740:DOS
2690:Z80
2641:Z80
2588:Z80
2490:or
2484:ARM
2476:x86
2464:DOS
2410:doi
1810:doi
1656:DOS
1604:CBh
1600:C9h
1587:On
1563:PSP
1555:API
1527:Z80
1499:DOS
1254:).
1182:ATI
1178:AMD
1174:ARM
1128:PTX
1124:ELF
1097:GPU
1028:x86
934:CPU
922:ELF
879:VMS
852:1Ah
833:C7h
778:NLS
714:GSX
712:'s
672:ARM
649:C9h
644:C9h
634:C9h
615:RSX
593:PMA
535:DOS
533:as
524:Z80
509:SCP
473:EFI
463:to
333:x86
240:PCs
225:'s
199:PEF
175:68k
144:'s
99:'s
53:or
34:or
5035::
5013:.
5009:.
4985:.
4966:.
4962:.
4942:.
4938:.
4918:.
4914:.
4894:.
4874:.
4870:.
4864:;
4851:.
4847:.
4821:.
4810:.
4780:.
4769:.
4765:.
4746:.
4735:.
4731:.
4657:,
4619:.
4615:.
4583:.
4579:.
4553:.
4549:.
4520:.
4510:.
4502:.
4448:^
4426:.
4351:.
4341:.
4333:.
4259:.
4199:.
4195:.
4191:.
4129:.
4121:.
4105:.
4076:42
4074:.
4070:.
4040:.
4036:.
4007:.
4003:.
3978:.
3974:.
3944:.
3888:.
3884:.
3829:.
3825:.
3796:.
3792:.
3777:^
3756:.
3731:.
3727:.
3688:.
3631:.
3491:.
3469:.
3457:^
3430:13
3421:.
3409:^
3382:10
3373:.
3361:^
3340:.
3277:.
3250:^
3217:^
3160:.
3149:.
3145:.
3131:^
3121:.
3110:.
3106:.
3092:^
3075:.
3071:.
3032:.
3021:.
3017:.
3005:^
2988:.
2984:.
2968:.
2934:.
2923:.
2915:.
2852:.
2841:.
2837:.
2825:^
2801:.
2790:.
2786:.
2729:.
2718:.
2710:.
2675:.
2671:.
2633:.
2618:.
2584:.
2573:.
2565:.
2553:^
2527:.
2519:.
2499:^
2494:.)
2478:,
2426:.
2416:.
2387:;
2373:^
2357:.
2343:^
2323:.
2315:.
2290:.
2256:.
2252:.
2229:.
2225:.
2128:.
2124:.
2093:.
2089:.
2060:.
2056:.
2031:.
2014:.
1999:^
1982:.
1965:.
1950:^
1893:.
1868:.
1864:.
1834:.
1826:.
1816:.
1804:.
1800:.
1796:.
1789:TH
1678:,
1647:^
1623:^
1493:,
1472:^
1429:,
1425:,
1421:,
1417:,
1413:,
1409:,
1405:,
1401:,
1397:,
1393:,
1389:,
1378:^
1269:,
1230:.
1153:de
954:,
932:,
928:,
881:,
877:,
859:^Z
706:.
599:.
507:,
503:,
499:,
495:,
491:,
404:.
343:.
319:,
127:.
41:A
5024:.
5000:.
4977:.
4953:.
4929:.
4905:.
4885:.
4862:.
4630:.
4594:.
4564:.
4534:.
4479:.
4440:.
4422::
4397:.
4365:.
4337::
4309:.
4274:.
4245:.
4210:.
4173:.
4143:.
4117::
4086:.
4082::
4055:.
4022:.
3989:.
3959:.
3929:.
3899:.
3866:.
3840:.
3807:.
3771:.
3742:.
3592:.
3553:.
3447:.
3399:.
3355:.
3322:.
3244:.
3182:/
3086:.
2999:.
2686:.
2538:.
2440:.
2412::
2334:.
2300:.
2276:.
2210:.
2179:.
2143:.
2108:.
2075:.
2042:.
1993:.
1943:.
1908:.
1879:.
1848:.
1812::
1791:"
1739:/
1694:/
1638:/
1614:/
1591:/
1569:/
1525:/
1521:/
1180:/
1070:C
973:.
966:.
670:/
229:/
38:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.