C1P video mod -- double characters per line.

drwass2
Posts: 18
Joined: Sun Mar 15, 2015 11:50 pm
Location: New Jersey USA

Re: C1P video mod -- double characters per line.

Post by drwass2 »

Here is the long story of my Video Upgrade for the C1P challenger board.

OSI C1P Simple Video Upgrade.

This "fix" requires cutting 4 traces and adding one 74LS00 chip. It can double the characters per line
by "stealing" the ram from the previous line. Thus giving half the lines per screen
but double characters per line. No additional RAM needed
Therefore a normal C1P output of 24 characters with about 24 lines becomes
48 characters on 12 lines. The number of lines depends on your monitor
The normal character box is 8 bits wide by 8 bits high. The alpha characters
occupy only 5 x 7 part of this box. The result is that the characters are very dotty,
too far apart horizontally and too close together vertically.
You all know how difficult it is to actualy work with this screen.

First we need a little history of how the Video works on the normal C1P super board.
There is a free running video count down chain that is driven from the system clock at about 4 Mhz.
really 3.7127 Mhz. This is used as the dot clock and input to a 16 bit counter composed of
four 4 bit counter chips U30, U59, U60 and U61. The outputs are labeled C0 thru C15. This system
is always running as long as there is power and is a good check that this part of the board is working.
At power up, the random power up values of the video rams on the screen should remains the same.
Other parts of the system need to work to clear the screen and put the D/C/W/M/ message out.

The dot clock drives the shift register U42 which sequentially puts characters out to the video stream.
The shift register is loaded by the 4-bit AND gate U19 when input C0,C1,C2 andT3 are high.
These three bits(C0,C1,C2) are effectively counting the 8 horizontal dots of a character box.
The next 5 bits C3, C4, C5, C6, C7 count through the video RAM memory for the 32 characters in the line.
The next 3 bits C8,C9,C10 are inputs to the Character Generator chip to control which dot pattern
is displayed for the character box and counts the 8 horizontal lines making up the video for the same
character boxes counted by C3-C7.
The next 5 bits C11, C12, C13, C14, C15 count through the video RAM memory for the next 32 video lines.
And the process repeats continuously.
There is a one shot U65 which drives horizontal sync with input from C7, which drops at end of line.
There is also a one shot U65 which drives vertical sync with input from C15.
This is the reason you really don't get 32 character by 32 lines.
This counting system is continuosly running but parts are "blanked out" by the sync times.
Thus you lose characers at the front of the line and the top of the screen plus some overrun by the monitors.

Here are photos of the exact same Video RAM output with and without the fix.
Normal output
Normal output
NormalVideoJPG.JPG (57.04 KiB) Viewed 16168 times
Here is the same data with the upgrade turned on. note the 2nd & 3rd line 246 135 which are now displayed on one line.
Same with Alpha lines below which shows how the two lines are interleaved...
Display with upgrade
Display with upgrade
UpgradedVideo.JPG (74.54 KiB) Viewed 16168 times
Now the fantistic simple fix.

1) By taking C2 out of the input to the AND gate at U19 which generates the load to the shifter
and keeping pin 12 of U19 high, the shift register U42 will load twice as often.

2) We next replace C11 going into video RAM selector U54 pin 6 with the C2 signal we took away from U19.
We now have twice as many characters per line using the memory for the previous line in between each
normal character.

3) Next we need to blank the screen when we would normally display the data for the lines we stole.
We need to break the line T3 going to U56 which creates the blanking space between the dots normally.
We feed C11 into U56 in place of T3 which now blanks the screen for the even rows, thus showing only one line
but with double the characers. Also the characters are solid, not a bunch of dots.

4) We now need to feed in a dot clock which puts out 6 dots in the space of 4 normal dots.
This is generated with a gated astable vibrator composed of a single 74LS00 chip, wired up
with some resistors and a diode. This is retriggered by the load signal. The schematic will be shown later.

And the result is a 5x7 character in a 6 by 8 box with 48 characters per line and about 14 lines.
The results are beautiful, easy to read and nice to the eye, good space between lines vertically
and the characers horizontally.


In review there are four signals to change (cut 4 traces) and one IC chip to add. Thats it!!!!

1) change the load to the sifter by removing C2 (CUT trace)
2) Select video RAM correctly by changeing C11 to C2 for input to U54 (Cut Trace add wire)
3) Blank the stolen lines by using C11 as input to U56 instead of T3 (Cut trace add wire)
4) Make new dot clock from a 74LS00 and resistors and diodes and feed into shifter (Cut trace add wire)

Of course we now need software to alternate the output characers to the correct video Ram locations.

If one wants to be able to switch back and forth between normal and enhances mode then this is simple also.
Just add a single 74LS157 dual 4-bit selector and feed the outputs to the cut traces and on side A
to the other of the cut trace and B to the new desired inputs. Now you can switch back and forth with a simple
0 or 1 to the select input.

If one wants to control this from within a program, this is also very easy.
Just add a single D flip flop which gets its input from a video ram data bit (usually off screen)
and clocked by Vertical Sync or even Horizontal sync. the program can then switch modes by placing the
correct data into a Video Ram location. If we use the horizontal sync then you can even have parts of the
screen in the new mode and parts in the old mode.. All with just three standard TTL chips, and the same 4 cuts
as above while just tapping into a few other circuits.(Sync & Data)
This can all be done in the 3 prototype area of the C1P board U26,U27,U28
...WOW really cool.

I haven't got my output driver loaded which takes care of placing output in alternating video RAM so everything looks normal.
the examples shown were placed on the screen using the monitor. The driver takes care of backspace and can also include a blinking cursor.
That info to follow.
drwass2
Posts: 18
Joined: Sun Mar 15, 2015 11:50 pm
Location: New Jersey USA

Re: C1P video mod -- double characters per line.

Post by drwass2 »

When I get a chance I will show photos of where to cut the traces and how to add the wires needed.
I picked up most of the signals from through hole connections by soldering square wire wrap posts in the plated thru holes
and using wire wrap to route the signals.

Photos and details to follow...
drwass2
Posts: 18
Joined: Sun Mar 15, 2015 11:50 pm
Location: New Jersey USA

Re: C1P video mod -- double characters per line.

Post by drwass2 »

The crystal frequency I mentioned above is wrong. I wrote the discription from memory and forgot to correct the crystal frequency before submitting.
The cryttal is 3.932160 which when divided through a 16 stage divider comes out at exactly 60 Hz the correct frequency for Vertical Sync in America.

Below are Oscilloscope traces of the Dot-Cloct and the Load signals from normal and upgraded fix.
Original C1P superboard  DotClock & Load
Original C1P superboard DotClock & Load
Scope_load_normal.JPG (83.15 KiB) Viewed 16158 times
Below is the updated Dot Clock (note 6 clocks per load vs 8 in original) Load is also twice as fast.
upgraded dot-clock and load
upgraded dot-clock and load
ScopeLoad_upgrade.JPG (83.47 KiB) Viewed 16158 times
Will add schematic of dot clock generating circuit next.
dave
Site Admin
Posts: 710
Joined: Tue Sep 09, 2008 5:24 am

Re: C1P video mod -- double characters per line.

Post by dave »

That's very clever. I think it's the simplest video mod I've seen.

Dave
drwass2
Posts: 18
Joined: Sun Mar 15, 2015 11:50 pm
Location: New Jersey USA

Re: C1P video mod -- double characters per line.

Post by drwass2 »

yes, I always thought it was pretty neat, but in the day, no real internet, forums, etc, to share.
The original display on a green monochrome monitor was really nice.
The photos shown are using a modern flat screen LCD tv using the yellow video in. Interesting you get Square pixels.
I tend to get a lot of extra lines on the modern screen (great) one above and 2 or 3 below the ones shown by OSI screen sheet.
I can keep some non scrolling text down there, such as a clock or anything.
My 64output routine used a lot of the ROM code.
I'm still trying to load (from 30 year old tapes) the "output" routine so I can publish it. It also was pretty sweet, did backspace correctly etc, even worked on blinking cursor, using the vertical sync(60 per sec) as an interrupt for a little clock routine that could do lots of things.
I had a lot of fun back then. Couldn't afford a disk. I purchased the OSI because it was the cheapest "complete" system.
Basic, keyboard, memory, TV output, cassette. and expandable.
Made a few other modes and tried some things out. will publish pictures of my board when I can explain it all.
Fun looking at the old stuff again.
BillO
Posts: 216
Joined: Tue Jul 08, 2014 4:03 pm
Location: Canada
Contact:

Re: C1P video mod -- double characters per line.

Post by BillO »

Nice simple mod.

It'd be great if you could get the patch loaded. I wonder if that could be incorporated into a monitor ROM?

You could free up a bit of space in SYNMON by removing C2 and C4 specific code.
Box stock Superboard II Rev. B
KLyball replica 600D, replica 610 & KLyball Data Separator
OMS SBME and SBME+ memory cards
OMS Digi-Mule expansion bus
KLyball memory card
drwass2
Posts: 18
Joined: Sun Mar 15, 2015 11:50 pm
Location: New Jersey USA

Re: C1P video mod -- double characters per line.

Post by drwass2 »

Just got back from the Vintage Computer Festival East 2016 in New Jersey
Reminded me that I have to get some more info out to the public on this video mod that i used about 30 years ago.
Have to drag the machine out of storage and document the actual traces to cut. Most were selected so you can just tap into a through hole to pick up the trace for the modification. Still looks like the simplest and really nice fix for the OSI video.
Look at the schematics and follow the description in the initlal post to see how simple, neat, and clean this upgrade is.

Having a little trouble getting the 30 year old audio tapes to load the software to handle the mod.....will get back soon.
Post Reply