Deep Blue C

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Deep Blue C is a C programming language compiler for Atari 8-bit computers distributed by the Atari Program Exchange (APX).

Description

[edit | edit source]

Deep Blue C is based on Ron Cain's public domain Small-C compiler, a subset of the C programming language,[1] modified by John Howard Palevich to run on Atari 8-bit hardware. Palevich also wrote Dandy for APX.[2] The syntax supported by Deep Blue C is close to that of ANSI C with significant limitations. The compiler creates Intel 8080 binary code which is executed by an 8080 virtual machine[3] as p-code.[4]

The user must supply a source code editor, but included libraries provide printf and other I/O routines and video graphics, including player/missile graphics.[4] The source code to the compiler was sold separately by APX as Deep Blue Secrets.[1]

Limitations

[edit | edit source]

As a proper subset of V7 Unix C, Deep Blue C code that does not use Atari 8-bit features can be compiled on other systems with the full language.[4] The following language constructs are not supported:[5]

Other non-standard properties of Deep Blue C:

  • The last part of switch clause must end with: break, continue, or return.
  • The maximum length of a source code line has to be less than 80 characters.
  • The number of arguments for functions cannot exceed 126.
  • $( and $) are used instead of { and }, because the Atari keyboard and standard character set does not include braces.

The p-code that the compiler produces is slower than native binary. It is smaller than binary, however, and faster than Atari BASIC.[4]

Reception

[edit | edit source]

Antic thought that Deep Blue C's use of p-code was acceptable given Atari's hardware limitations. The magazine praised Palevich for publishing the source code, and recommended purchasing it with the compiler for study and customization alongside The C Programming Language.[4]

Sample program

[edit | edit source]

This program prints "Hello World!":[6]

 main()
 $(
   printf("Hello World!");
 $)

References

[edit | edit source]
  1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Atari 8-bit FAQ
  4. ^ a b c d e Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Deep Blue C documentation at Atari Archives
  6. ^ W. Zientara, "Jezyki programowania Atari cz.2", SOETO, Warsaw, 1989