is turned on and the computer attached to a color display, it can display green by showing one alternating pattern of pixels, magenta with an opposite pattern of alternating pixels, and white by placing two pixels next to each other. Blue and orange are available by tweaking the pixel offset by half a pixel-width in relation to the color-burst signal. The high-resolution display offers more colors by compressing more (and narrower) pixels into each subcarrier cycle. The coarse, low-resolution graphics display mode works differently, as it can output a pattern of dots per pixel to offer more color options. These patterns are stored in the character generator ROM, and replace the text character bit patterns when the computer is switched to low-res graphics mode. The text mode and low-res graphics mode use the same memory region and the same circuitry is used for both. A single HGR page occupied 8 KiB of RAM; in practice this meant that the user had to have at least 12 KiB of total RAM to use HGR mode and 20 KiB to use two pages. Early Apple II games from the 1977–79 period often ran only in text or low-resolution mode in order to support users with small memory configurations; HGR not being near universally supported by games until 1980. Sound Rather than a dedicated sound-synthesis chip, the Apple II has a toggle circuit that can only emit a click through a built-in speaker or a line-out jack; all other sounds (including two-, three- and, eventually, four-voice music and playback of audio samples and speech synthesis) are generated entirely by software that clicked the speaker at just the right times. Similar techniques are used for cassette storage: cassette output works the same as the speaker, and input is a simple zero-crossing detector that serves as a relatively crude (1-bit) audio digitizer. Routines in machine ROM encode and decode data in frequency-shift keying for the cassette. Programming languages Initially, the Apple II was shipped with Integer BASIC encoded in the motherboard ROM chips. Written by Wozniak, the interpreter enabled users to write software applications without needing to purchase additional development utilities. Written with game programmers and hobbyists in mind, the language only supported the encoding of numbers in 16-bit integer format. Since it only supported integers between -32768 and +32767 (signed 16-bit integer), it was less suitable to business software, and Apple soon received complaints