Difference between revisions of "Portability issues"

From RogueBasin
Jump to navigation Jump to search
(Fix my formatting)
(→‎DOS: Memory issues)
Line 19: Line 19:


* Filenames are limited to 8 characters + a 3 characters extension. Additionally filenames must not contain whitespace or special characters.
* Filenames are limited to 8 characters + a 3 characters extension. Additionally filenames must not contain whitespace or special characters.
* Memory on the systems that traditionally ran DOS is also tight and inconveniently segmented.  Later models had a variety of schemes available for accessing "expanded" or "extended" memory, but being maximally portable to this platform means using less than 640KB of RAM.

Revision as of 08:28, 3 February 2005

Portability Issues

The purpose of this article is to collect portability issues often encountered by roguelike programmers as well as possible solutions for these problems.

General

  • Only the characters of the basic (7bit) ASCII character set are reasonable portable. Using characters from extended character sets (like solid blocks for walls) or characters which aren't classified as printable by the ASCII standard (like smileys) will probably cause problems.
    • Extensions to ASCII are not portable. Unicode is portable, though.
  • Some OSs (like Linux) are case-sensitive as far as filenames are concerned others (like DOS or Windows) aren't. So don't rely on case-(in)sensitivity.
  • Which characters are used to indicate the end of a line in textfiles is OS-specific. So be careful when parsing textfiles.

Mac OS X

  • The current version of the standard OS X terminal (Terminal.app) only supports 8 colors. Early versions of MacOS X curses did not support color at all.

DOS

  • Filenames are limited to 8 characters + a 3 characters extension. Additionally filenames must not contain whitespace or special characters.
  • Memory on the systems that traditionally ran DOS is also tight and inconveniently segmented. Later models had a variety of schemes available for accessing "expanded" or "extended" memory, but being maximally portable to this platform means using less than 640KB of RAM.