bones-info - display information about a Nethack bones file
bones-info [-a | --auto] [-b | --big-endian] [--debug] [--help] [-x | --hexadecimal] [-l | --little-endian] [-v | --verbose] [--version] file...
bones-info displays information about a Nethack bones file. By default it shows what byte sex it used to read the file and the 4 version numbers which constitute the feature set and platform for the Nethack binary which generated it.
Normally bones-info reads the bones file in little endian order, regardless of the byte sex of the current system, mostly because it was originally written to help with diagnosing problems with hearse and that's the most useful behavior for that purpose. You can use the --auto, --big-endian, and --little-endian switches to change this. --auto is particularly useful (and appropriate) when using --verbose.
-a, --auto Try to guess the right byte sex (little endian or big endian) for each input file. If there doesn't seem to be a right choice, bones-info will output a warning, set a non-zero exit status, and move on to the next file. -b, --big-endian Read the bones files in big endian order, such as is used by Macs. See also "--auto". --debug Turn debugging on. --help Show the usage message and die. -x, --hexadecimal Output numbers in hexadecimal form. -l, --little-endian Read the bones files in little endian order, such as is used by Intel hardware. This is the default, I include it so that you don't have to check what the default is if you know you want it a certain way. -v, --verbose Output more info about the bones file. This tries to decode the 4 version numbers. Its useful when you want to see what the differences are between two sets of version numbers. You'd normally want to use --auto when you use --verbose. --version Show the version number and exit.
Output the values as used by the hearse server: $ bones-info * bonD0.0 sex=l v1=1 v2=2 v3=3 v4=4 bonD0.4.gz sex=l v1=50593792 v2=10357958 v3=555422078 v4=2759955912 bonD0.8.Z sex=l v1=1027 v2=3322682880 v3=2115050273 v4=3365241252 bonD0.19 sex=l v1=50528512 v2=10357830 v3=555409789 v4=2558629316 bonM0.1 sex=l v1=50593792 v2=404622406 v3=555417981 v4=2759955916 bonM0.T sex=l v1=50593792 v2=1969222 v3=555417981 v4=2759955912 Output the real values as seen on the system which wrote the file (by guessing the byte sex of the file): $ bones-info --auto * bones-info: can't intuit byte sex of bonD0.0 bonD0.4.gz sex=l v1=50593792 v2=10357958 v3=555422078 v4=2759955912 bonD0.8.Z sex=b v1=50593792 v2=1969350 v3=555422078 v4=2759955912 bonD0.19 sex=l v1=50528512 v2=10357830 v3=555409789 v4=2558629316 bonM0.1 sex=l v1=50593792 v2=404622406 v3=555417981 v4=2759955916 bonM0.T sex=l v1=50593792 v2=1969222 v3=555417981 v4=2759955912 zsh: exit 1 bones-info --auto * Decode the version numbers: $ bones-info --auto --verbose bonD0.4.gz bonD0.8.Z bonD0.4.gz: 18389 bytes read as: little endian incarnation: 50593792 (3.4.0.0) feature_set: 10357958 (REINCARNATION SINKS KOPS MAIL TOURIST STEED TEXTCOLOR INSURANCE ELBERETH EXP_ON_BOTL TIMED_DELAY) entity_count: 555422078 (33 artifacts, 433 objects, 382 monsters) struct_sizes: 2759955912 (164 flag, 64 obj, 101 monst, 456 you) bonD0.8.Z: 22296 bytes read as: big endian incarnation: 50593792 (3.4.0.0) feature_set: 1969350 (REINCARNATION SINKS KOPS MAIL TOURIST STEED TEXTCOLOR INSURANCE ELBERETH EXP_ON_BOTL) entity_count: 555422078 (33 artifacts, 433 objects, 382 monsters) struct_sizes: 2759955912 (164 flag, 64 obj, 101 monst, 456 you) $ _
Unsigned longs are assumed to be 4 bytes. The --auto byte sex detection isn't robust. It'd be nice to be provide --verbose output for bones files from older versions.
This program is distributed with the Unix Hearse client. The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/hearse/ for updated versions.
Roderick Schertler <roderick@argon.org>
Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.
Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.
Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.
Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.
The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.
Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.
Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.
Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.