[net.micro.apple] hires_question

chuck@bunker.UUCP (Chuck Heaton) (08/09/84)

	Hi.

	Somewhere, I read about a simple modification to the
Apple II (maybe also II+, IIe, or IIc) that effectively doubled 
the horizontal screen resolution for Hi-res graphics. The general
idea was somehow tying the vertical (or horizontal ???) retrace
signal to the 'bit' that selects page 1 / page 2. After making
this modification, which I vaguely recall involved a single
jumper and perhaps a single trace cut, the two 'pages' would
automatically flip upon each vertical (I think) retrace. Although
other effects are also possible, the particular effect that I
was interested in was the above-mentioned doubling of the
horizontal resolution for graphics. All pixels on one page are
done with bit 7 low, and on the other page with bit 7 high (thus
causing the half/pixel horizontal shift. I am not particularly
hardware oriented, although I'm not a complete idiot either. If
anyone knows how or can figure out how to perform this (possibly
warrenty voiding - horrors) modification, could you please post
it to the net or mail it to me directly. In return, I would be
glad to submit (once working) source to replacement 6502 routines
to allow Applesoft (or whatever) to take advantage or this
capability (these routines are fairly easy to write). Thanks.

					Chuck Heaton

ags@pucc-i (Seaman) (08/14/84)

The "double-density" hi-res mode is a hardware feature of the Apple //e.
No modification is required.  All you need is the Apple extended 80-column 
board (the one with 64K on-board memory, for a total of 128K).  Double 
density probably also works with the Apple //c, but I can't say for sure.  
It definitely does not work with the II+, and there is no simple hardware 
modification that will make it work.

One exception:  If you have a //e with a "Revision A" motherboard (manufactured
within the first month or so after the //e was released) you may need a
hardware modification, which your Apple dealer will handle for free.  You
must have the Extended 80-column board in order to get the modification.

The only software I have heard of which makes use of double-denity hi-res
graphics is Apple Pascal 1.2.  The Apple //e Reference Manual and the
Extended 80-column Card User Manual describe how double-density mode works
(i.e. what soft switches to set, and how the memory is mapped).
-- 

Dave Seaman			My hovercraft is no longer full of 
..!pur-ee!pucc-i:ags		eels (thanks to my confused cat).

glen@intelca.UUCP (Glen Shires) (08/16/84)

.
There is an interesting software hack that I invented that will do a
similar function for you.  It flips back and forth between the Apple ][(+) 
hi-res pages 0 and 1 exactly at the end of the video refresh scan.  This
then allows both page 0 and 1 to be displayed (pseudo)-simultaneously.

The big problem is that due to the way colors are generated (with the
bit-7 phase shift), blended colors tend to wash out so that the new colors
are only white-washed colors (more white-ish) versions of the normal
colors available.

Other problems are display flicker is noticeable (entire screen refresh
now takes twice as long) and software overhead can be substantial because
it must poll-wait until the exact end of screen.

Here's how it's done:
Apple ][ dual-ports memory between the CPU and display (cycles between
the two are interleaved).  If the CPU attempts to read from a memory
address that does not contain a device, the CPU ends up receiving
whatever garbage data happened to be floating on its data lines.
Because the display access was the last cycle to occur, these data lines
then retain the display data.  If a certain pattern is placed in display
memory only at a certain point in the display, software can wait until
this pattern is displayed by repeatedly reading non-existant locations
and comparing.  A simple polling loop is:

      LDA pattern
Wait  CMP $CFFF     ;no device is addressed at this location
      JNZ Wait

Once the pattern is found, then the software can flip the hi-res page
and do a little useful work before it comes back into the wait loop.
Note: place the display data pattern in the display several times in
a row (atleast four) to guarantee catching it with the compare.

 

-- 
^ ^    Glen Shires, Intel, Santa Clara, Ca.
O O     Usenet: {ucbvax!amd,pur-ee,hplabs}!intelca!glen
 >      ARPA:   "amd!intelca!glen"@BERKELEY
\-/    --- stay mellow

dsmith@proper.UUCP (David Smith) (08/17/84)

{Line eater test.  If this line is missing, the line eater is active}

	I have heard of two graphics packages that use 'double hi-res'.
One is DoubleStuff Graphics (don't know manufacturer) and Beagle Bros.
has a package that will do it also.

                        David Smith @ Proper Unix