🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.acorn.tech
Article #854

VIDC Programming Question

#854
From: James McCoull
Date: Fri, 08 Jan 1993 05:16
40 lines
2455 bytes
Just posting to ask for help on some low level VIDC programming.

I'm trying to program the VIDC to generate vsync interrupts after each scan
line - for both screen splitting, palette changing and a few other odds and
ends.  Unfortunately timers are no good for my task, I *must* have real
vsyncs.  So far I'm having a little trouble due to lack of documentation
(anyone know where I can find some documentation on the VIDC chip?
so far all my knowledge has come from looking at the OS and playing around
finding what the registers do).

Basically I have come up with two methods, but both do not work.  The first is
the simplest:

(1)  I gather that a vsync occurs when the vertical position passes the
value in the VDE (vertical display end) register.
So I had thought by setting the VDE to VDS+1 (vertical display start), I
would receive a vsync after the first line of the display - then on this
interrupt i could increase the value in VDE by 1,... and so forth.
However while all these registers do seem to take effect immediately
(unlike the vinit,vstart,vend buffer registers - which seem to be latched
on vsync) - this method doesnt seem to work.  It appears that the new VDE
value is ignored (something to do with the "should i be displaying new data"
logic on the VIDC chip?).
   I've tried a less ambitious example of only a single midscreen interrupt
but with no success.

(2)  My other 'method' is more complex it involves reprogramming the VC
(vertical cycle), VSW (vertical sync width) to produce the same effect.
However while i've only managed to get this method to work in a minimal sense.
I've managed to get a mid screen split using this method, but the video display
cuts out for at least one scan line... and i get about 8 distorted lines
(due to syncing trouble?).

Would any experienced VIDC programmer care to help me?
- or anyone care to post any VIDC documentation?

I'm at the hear tearing stage!!!

Preferably all followups to the news (as i don't have access to a proper
unix account)
Technical Details
Message-ID: <1993Jan8.051650.17939@newsroom.utas.edu.au>
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!newsroom.utas.edu.au!u894776@postoffice.utas.edu.au

Show Full Headers
Complete Article Headers
Newsgroups: comp.sys.acorn.tech
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!newsroom.utas.edu.au!u894776@postoffice.utas.edu.au
From: u894776@postoffice.utas.edu.au (James McCoull)
Subject: VIDC Programming Question
Message-ID: <1993Jan8.051650.17939@newsroom.utas.edu.au>
Sender: news@newsroom.utas.edu.au
Organization: University of Tasmania, Australia
Date: Fri, 8 Jan 1993 05:16:50 GMT
Lines: 41