5 ms·
I've always wanted to know why Apple II video screen is only 280 pixels wide. The Apple II video screen is 40 bytes wide, but it only draw 7 pixels per byte, f
by thought_alarm 6y ago
I've always wanted to know why Apple II video screen is only 280 pixels wide.
The Apple II video screen is 40 bytes wide, but it only draw 7 pixels per byte, for a total of 280 pixels. The 8th bit was used for selecting the color pallet (eventually; initially the 8th bit was just ignored)
Drawing 7 pixels per byte makes everything a lot more complicated, so it would seem to go against Woz's obsession for simplicity. It's hard to believe that 7 pixels per byte would reduce the chip count, and it certainly makes the software a lot more complicated (lots of divide-by-sevens).
CGA graphics and the Atari 400/800 also provide a composite graphics mode similar to the Apple II, where each pixel lines up with the NTSC color burst frequency, but they draw 8 pixels per byte for a total of 320 pixels, and therefore use a wider portion of the screen.
Perhaps Woz thought (incorrectly) that the NTSC screen wasn't wide enough to accommodate 40x8 (320) pixels so he cut it down to 40x7, or he planned all along to use the 8th bit to provide extra color. It would be interesting to know the actual reason.
- tlb 6y agoFor text, a 5x7 dot matrix font fits nicely in 7 (wide) x 8 (high). 8-pixel wide characters look funny: characters have to be an odd number of pixels to get symmetrical letters like A, so you either have 1 or 3 pixels spacing between. While NTSC allows 320 pixels, typical analog TVs overscanned a lot and you'd miss the right and left column or 2 of text.
- thought_alarm 6y agoThat seems like a big price to pay for slightly better text spacing. Virtually every other home computer used 6 or 8 pixels per char/byte. I don't think overscan would be an issue. The TMS9918 is also (the equivalent of) 320 pixels wide, and it was used in many different home computers and game consoles intended to connect to the family TV. There's no overscan issue, unless it's connected to an Apple II monitor. When the TMS9918 is connected to an Apple II monitor there is a huge overscan issue, since the monitor is tuned for the narrower Apple II screen. It looks like this: https://imgur.com/rGcRpw0 https://imgur.com/rGcRpw0 That's what got me thinking about this issue is the first place.
- tlb 6y agoOK, but the Apple ][ was sold before special computer monitors were common. It was meant to hook up to your existing home TV. So what mattered at the time was the way most people's TVs were calibrated. They usually had a lot of overscan, because (a) 1970s picture tubes weren't square, they had a lot of rounding at the corners (b) the (all-analog) deflection & blanking circuits made fairly ugly artifacts at the edges which TV makers tried to hide. If they'd shipped with 320-wide video, a lot of people wouldn't have seen the prompt on the left hand side.
- thought_alarm 6y agoThe Atari 400/800 and the TMS9918 (TI 99/4A, Colecovision, etc.) are 320 pixels wide and were designed to run on those same 1970s home television sets, and they didn't have an overscan problem (maybe some sets did, but most didn't). I don't think the Apple II had to cut the screen width down to 280 pixels. That's the heart of the question. Did Woz think that 320 pixels would not fit, or did he cut the width down for another reason, like more color.
- joezydeco 6y agoOr, perhaps, he didn't want to pay for a video generator IC like a 9918 or 6845. If you look at the video generation circuit on an Apple ][ it's all done in real-time in TTL, alongside the DRAM refresh activity. And it's all crammed into the normally unused tock of the 6502, making this work with virtually zero overhead on the CPU. That's the reason why the memory mapping of the screen isn't linear to the physical display. The software tradeoff was cheaper than the hardware one. http://twimgs.com/informationweek/byte/archive/Apple-II-Description/The-Apple-II-by-Stephen-Wozniak.pdf http://twimgs.com/informationweek/byte/archive/Apple-II-Desc...
- ddingus 6y agoAnd it made add on cards simpler, as well as cycle counting. In addition, the overall throughput of the CPU is better than most other machines, giving the Apple an effectively higher speed at that clock rate. Overall, given memory expansion, the goofy screen didn't end up being too big of a deal. Most programmers made Y axis lookup tables and called it a day. The fact that the artifact color mapping repeated every word, two bytes, did have an impact in that it was generally faster to maintain two pre-shifted copies of software sprites though.
- JonathonW 6y agoAnd a 7x7 dot matrix font fits nicely into 8 (wide) x 8 (high)-- this is what the original IBM PC did. So it doesn't really make a ton of sense to go out of your way to make characters seven pixels wide unless you're anticipating that you're going to use that eighth bit for something else later (or you're really determined to have two pixels between each character rather than one for some reason, I suppose).
- ddingus 6y agoI am inclined to think he was thinking about color. The phase shift makes a big difference. Having 6 colors and the artifact art variations was enough to do pretty much anything, not always well. Had it been 4 color, it all would have been far more limited. Frankly, the screen being good enough may be part of why graphics adapters never became common. I always thought they should have. Once accelerators took the 6502/816 to 4Mhz plus, a graphics adapter, perhaps combined with a faster CPU would have made a ton of sense. The power of the default was stronger due to that 6 color capability, IMHO. Compare 4 color CGA and it is notable. That said, CGA over NTSC was Apple like with 16 colors, no attribute clashing. That is what an expansion card for the Apple 8 bitters should have done.
- ddingus 6y agoYup. In the early days one of the first things I did to the TV's I setup for myself and others as monitors was to do a full CRT setup to put the entire safe area on screen, converge, color drive, etc... The Apple always fit. Atari machines often didn't. On my personal "monitor", I scored a finer dot pitch CRT and did a lot of work to put the entire frame on screen. Atari did allow wide screen DMA which used up nearly the entire active display area. I would run a 384x224 display on it sometimes. And after a full alignment, better CRT, one could read 80 columns on the set and watch color programs look very good.
- ddingus 6y agoI am gonna ramble a bit because I really like the era and CRT displays. ... a lot of the picture quality impact the pro grade CRT TV displays had was due to finer pitch CRT's. The circuits matter too. Don't get me wrong. Even without a spiffy fine pitch CRT, a well calibrated 80's era TV (some 70's era ones too), worked well as a monitor. I had worked at a TV repair shop as a younger kid. The Atari machine I had was just good enough to generate respectable alignment and calibration signals. If you were willing to put in a good day, many sets could perform far better than they were just sitting there on, showing slowly degrading TV programs. But, they tended to age and degrade a lot more quickly than we are used to today. I did my special one three times over the course of 5 years or so to keep it at peak. That's another difference in the pro grade gear. It stays on point for ages. With Apple setups, one could deliberately calibrate to maximize the essentially monochrome screen, and expand it to take up a larger area to get a little bit more benefit from the often coarse shadow mask on color sets. Many people would just run both. Monochrome for text, some color TV for graphics. A workaround for color sets was to run saturation a bit low and make sure the color killer circuit was hair trigger so it worked when the Apple requested no color. Moderate contrast, bringing up the screen levels while at the same time lowering the drivers would sharpen things up considerably. End result was a decent resolution and that "don't use it in a brightly lit room" tradeoff. Bonus points for tapping into composite, avoiding RF. Where I lived a lot of people had UHF modulator on their Apple computers. These worked on something like channel 34 instead of the more interference prone channel 2, 3 or 4. The real fun began when VCR's got the scene. Hit record, set for SLP recording and you got an up to 8 hour record of what you did. Or, run the VCR faster and get a higher quality record for show and tell or debugging. If you crave a CRT today, obviously the pro grade displays on their way out are great. You will likely be impressed when watching something off DVD, or Bluray. Standard definition was much better than most of us saw due to the tradeoffs made in mass market displays. But, those are harder amd harder to get. The next best thing is a newer CRT. Clean and recap that if needed and then go through the alignment and calibration using one of the many DVD images available for that purpose. Many of those have great filters that can do a lot for Apple 2 like signals. Then enjoy the artifact art in all its glory! http://www.appleoldies.ca/bmp2dhr/disclaimer/ http://www.appleoldies.ca/bmp2dhr/disclaimer/ The images on this page use the better "Double High Res" artifact color possible on the Apple //e There are some examples of Apple 2, the original graphics being discussed here, on that page. Many artists used patterns to exploit secondary artifact effects (best seen on an NTSC TV with color saturation turned up a bit), and our own color perception to produce images that appear more colorful than the basic 6 color design one would expect to deliver. This pixel art can be seen all throughout the 8 bit era running from the late 70's to mid to maybe late 90's. https://images.app.goo.gl/1wzZhp76tsC3hC6G6 https://images.app.goo.gl/1wzZhp76tsC3hC6G6 In that one, only one color attribute set was used. Black, white, orange and blue. The secondary artifacts shows nicely here. A single orange pixel by itself on black delivers a little bit different overall image color when nestled in all white pixels. Dithering coupled with these subtle effects could really change the overall viewer perception! In addition, due to how the NTSC color worked, intensity and color got coupled together, giving pixels a sort of texture and subtle position difference when viewed on a color display. On the Apple, this can be seen as a smudge of color around the pixel. You can see this in the lower resolution graphics where the pixels literally don't quite line up. Many more and better can be seen on the Total Replay image being developed right now. Emulators have modeled what a real display would do very well. You get a whole lot of the experience that way.
- dirkt 6y agoDon't forget that the Apple I was basically a glorified video terminal, so the text mode came first. Also in the Apple II. That's the reason there are 7 pixels horizontally per character. The graphics mode is just a juiced up text mode, so the 7 pixels were kept. And for the video shift register, it's no difference if the input comes from the character ROM, or video RAM.
- thought_alarm 6y agoThat's another thing I've wondered about. Did the Apple I also output 7 pixels per character? Since it doesn't do color and doesn't care about the color burst frequency, it's free to use any size of pixel it wants. With a 5x7 font, I would have guessed that 6 pixels per char would be simpler.
- ddingus 6y agoThere is an upside to that madness, and that is the Apple had a 6 color high res graphics screen, and when only one pixel is used, it actually has a close to square ratio. Most 2bpp displays of that era made wider than tall pixels. The result, given creative use of patterns was a high res display that could pretty much do anything. Maybe not that well, depending, but 6 colors per line makes differentiating objects clear. 4 is not quite enough. I would like to know as well.
- mzs 6y agoThe 8th bit was never ignored, it was for phase, and for example determined if you saw green or orange. Probably the best ref for this is from '83, Gayler's "The Apple II Circuit Description." edit: corrected below, rev 0 non RFI (without the aux vid pin) ignored DL7
- thought_alarm 6y agoActually, the very first Apple IIs only supported 4 colors in hi-res mode. The 8th bit was ignored. A later revision added support for 6 colors, using the 8th bit to shift the pixels and change the pallet.
- mzs 6y agoThank, I just consulted appendix B of my copy, you are correct. DL7 is unconnected in nonRFI rev0 though every later Apple II RFI or not could do 6 color HIRES.
- cameroncooper 6y agoWoz loved these kinds of optimizations. With the Apple 1 he also used 7 bits per character, but he stored them with 7 1024-bit shift registers.
- karmakaze 6y agoI've read that the 7-bit horiz pixels was a special Woz hack to save on cost. In 'fully'-addressable mode the nearby pixel 'swim about' as pixels are set/cleared in the vicinity.
- rbanffy 6y ago> The 8th bit was used for selecting the color pallet (eventually; initially the 8th bit was just ignored) The palette selection was achieved by... (Yes, it's that cool) Shifting the 7-pixel group half-pixel to the left (IIRC, could be to the right). It was a trick used in HP terminals (Woz worked for HP) and printers to have nicer fonts without doubling the pixel clock and character ROM sizes. For color, this put the pixels at offset positions in relation to the chroma wheel and that caused the switch from green/purple to orange/blue.
- kazinator 6y agoThe Apple II graphics resolution modes could be mixed with text. So that is to say, in either the lo-res or hi-res modes, a hardware register setting would conceal a bottom portion of the graphics frame buffer, revealing four lines of the text mode. I think all the circuitry for shifting out the pixels must have been very minimal and shared between the text and hi-res mode. So, .. if you recall, the character cells in the 40 column text mode are all also 7 pixels wide. The character cells were 7x8. In that space, a certain font fit exactly, with a two pixel space between characters. Here is A: OOO | O O | O O | OOOOO | O O | O O | O O | | -------+ In high res graphics mode, you could create a bold font, by using the extra column: OOOO | OO OO | OO OO | OOOOOO | OO OO | OO OO | OO OO | | -------+ That was seen in a lot of games. Anyway, the high res graphics mode pixels coincided exactly with the text mode pixels. You could imitate the text mode using high res graphics, and it would look indistinguishable. (Except for not being able to make the characters blink simultaneously, though even that could be sort of faked with page flipping.) I think that in a 8x8 character cell that would result from a 160x192 mode (40x24 text), it might have been more awkward to design the font. You want an odd number of pixels, for symmetry, so probably characters will be 7 wide. 5 would leave 3 pixels of space, which might be too much. For designing 7 pixel font glyphs, maybe 7 scan lines is not enough height. It's possible that part of the decision was around the design of the text mode and its font, and the high res graphics was tied to that, pixel for pixel.