Discussion:
Vaxstation 4000/60 LCG and keyboard, progress report & help needed
Blaz Antonic
2004-01-25 21:03:50 UTC
Permalink
Hello,

Since my last post on the topic (where i didn't get any useful clues as
to how wscons stuff is supposed to work on NetBSD/Vax) i managed to
almost accidentally get the framebuffer side working entirely. Below is
a dmesg:

NetBSD 1.6 (LCG) #29: Sun Jan 25 12:41:13 CET 2004
***@anders:/usr/src/sys/arch/vax/compile/LCG

VAXstation 4000/60
cpu0: KA46
cpu: turning on floating point chip
total memory = 56936 KB
avail memory = 49712 KB
using 737 buffers containing 2948 KB of memory
mainbus0 (root)
vsbus0 at mainbus0
vsbus0: 32K entry DMA SGMAP at PA 0x740000 (VA 0x80740000)
vsbus0: interrupt mask 0
le0 at vsbus0 csr 0x200e0000 vec 770 ipl 15 maskbit 1 buf 0x0-0xffff
le0: address 08:00:2b:28:6b:1e
le0: 32 receive buffers, 8 transmit buffers
dz0 at vsbus0 csr 0x200a0000 vec 124 ipl 15 maskbit 4
dz0: 4 lines
lkkbd0 at dz0
wskbd0 at lkkbd0 (mux ignored)
lkms0 at dz0
wsmouse0 at lkms0 (mux ignored)
lcg0 at vsbus0 csr 0x21801000 vec 440 ipl 15 maskbit 2
wsdisplay0 at lcg0 (kbdmux ignored)
wsdisplay0: screen 0-7 added (160x68, vt100 emulation)
asc0 at vsbus0 csr 0x200c0080 vec 774 ipl 15 maskbit 0
asc0: NCR53C94, 25MHz, SCSI ID 6
scsibus0 at asc0: 8 targets, 8 luns per target
scsibus0: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 1 lun 0: <QUANTUM, FIREBALL_TM2110S, 300X> SCSI2
0/direct fixed
sd0: 2014 MB, 6810 cyl, 4 head, 151 sec, 512 bytes/sect x 4124736
sectors
sd0: sync (160.0ns offset 15), 8-bit (6.250MB/s) transfers, tagged
queueing
sd1 at scsibus0 target 3 lun 0: <DEC, RZ25 (C) DEC, 0A00> SCSI2
0/direct fixed
sd1: 406 MB, 1476 cyl, 9 head, 62 sec, 512 bytes/sect x 832527 sectors
sd1: sync (200.0ns offset 15), 8-bit (5.000MB/s) transfers
boot device: sd0
root on sd0a dumps on sd0b
root file system type: ffs

I uncommented the lines mentioning ttyw* in /etc/ttys.

There is/was a redundant (?) printf("\n"); in dev/wscons/wsdisplay.c
which i removed, just after the kbdmux ignored IIRC. I hope it's not in
current kernel.

Anyway, the result now is that i get a login prompt on a monitor (not a
terminal !!!) on ttyw0. If i had a digital camera i'd make yo ua photo
but i don't own one :-) Alas the letters are quite small which prompts
my first question:

1: Is it possible to add another video mode in the driver, with user
being able to select which one he wants in the starting scripts, like on
x86 ? It is currently set to 160x68 which is a tad more than what i need
and i wouldn't mind settling for 80x34 which will do better for my eyes.
I just need an example of a code that implements two modes and how it
all connects into wscons layer (which looks like voodoo to me).

Second question is directly related to the login prompt as well; i use
serial terminal or telnet session to login into my Vax at the moment so
i never fiddled around with keyboard (which Anders kindly sent along,
thanks Anders !!!) except at >>> prompt.

2: How do i get my keyboard to work ? If anybody ever got a keyboard
working on a Vaxstation class machine with NetBSD please let me know
how. I have a distinct feeling that despite lkkbd0 line in kernel
output i haven't done everything corerctly. Keyboard works fine while at
prompt but doesn't do anything at ttyw0 login prompt. I'm a BSD newbie, something that might seem obvious to you might have been overloked by me.
LCG driver is currently a horrible bodgery, missing some vital checks,
LUT reload code (default color LUT is .... ugly, mildly put, and it
doesn't seem to include most colors evenly, especially the red part of
the spectrum is missing) and code to support X server. Oh yeah, the
latter will take somebody who understands how X server leeches to wscons
to explain the details to me, with the lack of any documentation on the
subject on the NetBSD website IIRC, if you want to see X server working
on LCG. Alternatively if there is a simple dumb framebuffer X server for
some other type of graphcis in NetBSD source tree that uses kernel
mmap()-ed access to paint into framebuffer directly i'd like to see the
code; it should be easy to adopt it for LCG (and LCSPX, with ragge's
code, parts of which i've stolen :-))).

Blaz Antonic
--
Hi! I'm a signature virus!
Copy me into your signature to help me spread!
Blaz Antonic
2004-01-27 20:19:36 UTC
Permalink
Hello,

I'm still trying to catch up with amazing number of repleis i got ...
not. One person asked for source so they could try it out on their VLC
and that's it. Either nobody has LCG-based graphcis Vaxstation (4000 VLC
or m60) or they don't give poo about it.

Despite the obvious risk of getting whole 0 answers (again) i have yet
another coupel of questions:

1: What do i have to do to get my code comitted into NetBSD source tree
? Like i said in my previous post to the list the code is for 1.6 kernel
but has 1.6.1isms already in place, just commented out (so it can be
used on 1.6.1 in a matter of seconds). Since it's not final version yet
i'm not sure whether posting it on the mailing list makes sense.

In addition to functionality i had two days ago i also got color LUT to
reload, meaning i can enter any colors from the 24-bit color space into
8-bit RAMDAC palette. While useless for B/W console this would
undoubtedly be useful for X, especially since default DEC palette
(hardwired it seems) is a big pile of poo, with many colors repeating,
like half of the spctrum missing (especially in orange/brown part) etc.
This prompts my second question:

2: Which palette should i set as default ? I extracted 256-color palette
(from 18-bit color space) from my PeeCee VGA and extrapolated the values
into 24-bit color space. Would that be the best palette to use ? If so,
what should i do with last 8 entries ? They are set to black (0, 0, 0)
on VGA, should i leave them at black ?

VGA palette is a set of 8 basic colors, same 8 colors in lighter
version, 16 geryscale tones and 216 colors (6*6*6), followed by 8 black.
Using same palette here would mean that any (portable x86-home) software
relying on default color settings would also work on LCG without
modifications. I'm not sure how curses et al work but if they rely on
default settings that'd be the way to go IMHO. Palette can be altered
later anyway (i have yet to find the ioctl to do that but when i do it's
easy to add). I can't think of any reason for using non-standard
palette.

Blaz Antonic
--
Hi! I'm a signature virus!
Copy me into your signature to help me spread!
Chris Wareham
2004-01-27 12:03:42 UTC
Permalink
Post by Blaz Antonic
I'm still trying to catch up with amazing number of repleis i got ...
not. One person asked for source so they could try it out on their VLC
and that's it. Either nobody has LCG-based graphcis Vaxstation (4000 VLC
or m60) or they don't give poo about it.
I'm suprised you haven't received many replies. The only reason I hadn't
sent you a "wow, that's cool" message and asked for a patch to try out
was because I thought you'd get dozens of such messages. I tried to get
the mono framebuffer working on a VS3100 a while ago, but without much
success (console worked, but the X server code proved impenetrable to
me). The VS3100 made way for an MV3100, but I've still got the DEC
monitor and would love to be able to use it on my VLC.

How did you get around the lack of documentation for the LCG? Or have
some docs turned up recently that I missed?

Chris
--
***@iosystems.co.uk (work)
***@btopenworld.com (home)
B***@LaPoste.net
2004-01-27 13:13:05 UTC
Permalink
Post by Chris Wareham
...
How did you get around the lack of documentation for the LCG? Or have
some docs turned up recently that I missed?
Chris
I have the same question about the LCSPX graphic chipset on VaxStation 4000/90
--
Bruno TANGUY

Identifiant Jabber : ***@rahan.crao.net

GPG FingerPrint : F5CF E553 6706 1D9E 325A 984F E9D7 B95A D156 989A
Blaz Antonic
2004-01-27 22:04:30 UTC
Permalink
Hello,
Post by Chris Wareham
I'm suprised you haven't received many replies. The only reason I hadn't
sent you a "wow, that's cool" message and asked for a patch to try out
was because I thought you'd get dozens of such messages. I tried to get
the mono framebuffer working on a VS3100 a while ago, but without much
success (console worked, but the X server code proved impenetrable to
me). The VS3100 made way for an MV3100, but I've still got the DEC
monitor and would love to be able to use it on my VLC.
Lol, 3 replies in 1 hour now and only one prior to that in 2 days. I
have decided to post lcg.c on the mailing list anyway, but note this:

The code is NOT final; please don't distribute it, use it for testing
only. While i don't think it can do anything harmless i'd like to point
out i can't be held responsible if it does something bad to your
computer. Again, this is a working version with some debug stuff
included.

I would really apprecite it if people could send me the result of their
"show config" command, the part that refers to LCG to be more specific.
My code currently assumes it's dealing with 8bpp 1280x1024 LCG version
which is what my 4000/60 has and what 4000/60 of a german friend of mine
who's working on Linux FB implementation for LCG has. I'd also
appreciate comments on whether the whole thing works or not on your
computer, along with computer type (VLC versus m60).

If somebody figures out how to get DEC keyboard to work on 4000/60 or
VLC please let me know.

This is a mini-HOWTO on how to get it to work:

1: place lcg.c in arch/vax/vsa directory

2: alter arch/vax/conf/files.vax ()add entry for lcg, look at smg entry
for idea on how to do that, i don't know what the parameters that come
after the full filename do so i omitted them in my version of files.vax)

3: add lcg0 at vsbus csr 0x21801000 into your kernel config file

4: alter lcg.c if you're not using 1.6 kernel, otherwise it won't
compile. The relevant parts that need changing are commented out, most
are at the very bottom of the file (and one related item is near the
top).

5: add #define NO_EXPERIMENTAL to lcg.c if you don't want LUT changing
code to be included. At the moment this code plots a bar of 256 colors
near the bottom of the screen and then changes LUT to different values;
your text will end up BLUE instead of WHITE with current settings (to
get 256 grey tones set all three color components in the loop in
lcg_attach to i instead of 0, etc.).

6: uncomment /etc/ttys entries for /dev/ttyw*.

This should produce login prompt on ttyw0 on your monitor attached to
LCG. I remember toyin gwith ttyflags and stty on /dev/ttyw* entries
before the whole thing started to work (and works ever since, no matter
how many system resets and hardware resets i have done) but i can't
think of any explanation for that. Things that output text on other
terminal shoudl work (echo text > /dev/ttyw0, etc.).
Post by Chris Wareham
How did you get around the lack of documentation for the LCG? Or have
some docs turned up recently that I missed?
Docs did surface ... sort of, but it was apparently a preliminary draft
or something, pieced together from multiple sources by multiple people
so information contained within is contradicting in places and just
plain wrong in other places, plus there are many references to
(apparently) non-existent LCG models. Roughly 50% of info i found in
there is useless so you REALLY don't want to peek at docs to figure out
how LCG works, use lcg.c code instead. With LCG i have learned to
appreciate the discoveries of pasterisation (pasteurisation ?) process,
penicilin and alike.

As for LCSPX, i havenn't seen docs for that but ragge bodged together
lcspx.c which smight almost work ... i based my code on his and spent
some time removing the bugs. Both LCG and LCSPX are used as dumb
framebuffer at the moment, lcspx.c lacks any register manipulation while
lcg.c uses some and will use more later (to detect hardware correctly).

Getting LCG HW acceleration to work looks like major pain in the ass,
even if docs are 100% accurate with regrds to it. I have never written
any HW accelerated video code in my life so it all looks like chinese to
me. I am interested owever in finding out how on earth wscons X server
interfaces to wscons and which facilities my driver has to provide in
order for X server to work. Since i can alter palette and plot pixels
anywhere i want on the screen i already have everything i need, i just
have to figure out how it all connects with higher layers (i.e. wscons
and that with X server).

Blaz Antonic
--
Hi! I'm a signature virus!
Copy me into your signature to help me spread!
Jochen Kunz
2004-01-27 12:50:24 UTC
Permalink
Post by Blaz Antonic
I'm still trying to catch up with amazing number of repleis i got ...
not.
That's sad. I didn't reply because I didn't want to send an other
useless "uhh, cool man" message. On the other side all my machines
run headless. Only my SGIs are alowed to drive a monitor. ;-)
Post by Blaz Antonic
1: What do i have to do to get my code comitted into NetBSD source tree
Make it complete and usable.
Indent it according to /usr/share/misc/style.
Make sure the code is not tainted by anything that doesn't comply to the
BSD Licence.
Port it to -current. (Only bug fixes and really impotant driver updates
are pulled up into the 1.6-release branch.)
Find a developer that reviews the code and commits it. (No, I will not
do this part due to ENOCLUE in the wscons department and ENOTIME because
of my work for port-hp700 and port-ofppc.)

You have no working keyboard yet? Maybe you can get some ideas from
port-pmax. The DECstation 3100 (codename PMAX) has a very similar
keyboard / mouse interface. (Maybe the DEC 3000 Alphas too.)
--
tschüß,
Jochen

Homepage: http://www.unixag-kl.fh-kl.de/~jkunz/
Gabucino
2004-01-27 12:58:37 UTC
Permalink
Post by Blaz Antonic
I'm still trying to catch up with amazing number of repleis i got ...
not. One person asked for source so they could try it out on their VLC
and that's it. Either nobody has LCG-based graphcis Vaxstation (4000 VLC
or m60) or they don't give poo about it.
Glad I could make your day :D
I'm still waiting for the source.
--
Gabucino
MPlayer Core Team
Brian Chase
2004-01-27 14:41:52 UTC
Permalink
Post by Blaz Antonic
Hello,
I'm still trying to catch up with amazing number of repleis i got ...
not. One person asked for source so they could try it out on their VLC
and that's it. Either nobody has LCG-based graphcis Vaxstation (4000 VLC
or m60) or they don't give poo about it.
Or possibly those people with VS4000/60 and VLC systems don't have
displays or display cables to use with their VAXen. I'd certainly
be interested in trying it out on my VLC if I had a display.

-brian.
Blaz Antonic
2004-01-28 00:38:22 UTC
Permalink
Hello,
Post by Brian Chase
Post by Blaz Antonic
I'm still trying to catch up with amazing number of repleis i got ...
not. One person asked for source so they could try it out on their VLC
and that's it. Either nobody has LCG-based graphcis Vaxstation (4000 VLC
or m60) or they don't give poo about it.
Or possibly those people with VS4000/60 and VLC systems don't have
displays or display cables to use with their VAXen. I'd certainly
be interested in trying it out on my VLC if I had a display.
Could be, but then again any PeeCee multisync monitor with BNC inputs
capable of working at 1280x1024 at 60 Hz (which is not much, my 8-9
years old monitor can do it) and supporting sync on green (i got this
feeling most multisync monitors with BNC inputs do support SoG) will
work just fine. Thanks to Anders (who also provided the cable that fits
4000/60 on one end and has 3x BNC on the other end) that is :)

It's pretty much a matter of fining suitable cable i suppose. One could
be soldiered together quickly if you can get the video connenctor plug
(which can be purchased online), use any VGA-BNC cable (which can be
purchased in any computer store) for the other end. I wonder if any
modern monitors support sync on green on their HD15 VGA connector too
...

Blaz Antonic
--
Hi! I'm a signature virus!
Copy me into your signature to help me spread!
Michael L. Hitch
2004-03-10 05:45:35 UTC
Permalink
Post by Brian Chase
Or possibly those people with VS4000/60 and VLC systems don't have
displays or display cables to use with their VAXen. I'd certainly
be interested in trying it out on my VLC if I had a display.
-brian.
I haven't been able to do anything dealing with the pmax or vax graphics
display at home (where I've got more time for the debugging required)
lately, since the only monitor I had that did Sync-on-Green died a couple
of years ago.

I was looking around for a solution to the monitor problem (and I didn't
really want to buy more monitors if I didn't need to) and found a company
based here in Bozeman that makes a sync separator that worked quite well
for me. It does cost $50US, so it's not exactly cheap, but I'm not sure I
could build one that works as well. The company is Software Integrators.
The web site is http://www.si87.com and the sync separator is Adapter
7053.

I took one of the cables I had, cut off the BNC connectors and connected
the cable to an HD-15 femail connector. I can now use several different
monitors on my VAXstations and DECstations, and can get back to playing
with them.

--
Michael L. Hitch ***@montana.edu
Computer Consultant
Information Technology Center
Montana State University Bozeman, MT USA
meltie
2004-03-10 12:23:30 UTC
Permalink
Hi guys - as per title really. Does anyone have a copy of any documentation
pertaining to the KZQSA QBUS SCSI adaptor local? I've followed a couple of
trails and hit dead ends. I'm looking to do a bit of dev with the card...

TIA
alex/melt
Blaz Antonic
2004-01-28 00:29:15 UTC
Permalink
Hello,

One vital bit of information i forgot to mention in my last post
regarding LCG driver - i use serial console to boot the machine. Use S3
switch to set it to serial terminal, NOT glass tty !!! My only attempt
with glass tty enabled ended in keyboard beeping like mad for minutes
and then i gave up and restarted whole thing (as reported to the mailing
list a couple of months ago).

Kernel will NOT output anything to your monitor while booting, first
output you will get to see is the color bar (if you don't #define
NO_EXPERIMENTAL in lcg.c) or the login prompt (if you do #define
NO_EXPERIMENTAL).

Blaz Antonic
--
Hi! I'm a signature virus!
Copy me into your signature to help me spread!
Michael L. Hitch
2004-03-10 05:34:08 UTC
Permalink
Post by Blaz Antonic
2: Which palette should i set as default ? I extracted 256-color palette
(from 18-bit color space) from my PeeCee VGA and extrapolated the values
into 24-bit color space. Would that be the best palette to use ? If so,
what should i do with last 8 entries ? They are set to black (0, 0, 0)
on VGA, should i leave them at black ?
Now that I've had time to play with the LCG driver on a 4000/VLC, I can
offer my opinion on the default color palette.

The wsdisplay code only uses 8 colors (at least in the VT100 emulation),
so I don't see any point in setting up any more than the 8 basic VGA
colors. Any other application accessing the display directly (i.e. an X
server) will very likely control the color palette completely.

The version of lcg.c I'm running initializes the first 8 entries in the
LUT with the basic VGA colors. I've added the get/put cmap entries to the
ioctl function which will get or set the cmap entries (and the LUT). This
provides the capability for an X server to set any LUT entry to whatever
color it desires. [I notice that I don't reset the default LUT values
when switching from MAPPED mode to EMUL mode, but that's trivial to add].
I've also added some support for setting the foreground/background colors,
which is controlled by ANSI escape sequences in the vt100 emulation.

I've also got a 4000/60 with a 4 bitplane display that I'm trying to
make work. The detection of the 4 bitplane display isn't working yet, and
I have some trouble dealing with the colors still that I haven't tracked
down yet.

--
Michael L. Hitch ***@montana.edu
Computer Consultant
Information Technology Center
Montana State University Bozeman, MT USA
Chris Wareham
2004-01-30 13:32:53 UTC
Permalink
Post by Blaz Antonic
Second question is directly related to the login prompt as well; i use
serial terminal or telnet session to login into my Vax at the moment so
i never fiddled around with keyboard (which Anders kindly sent along,
thanks Anders !!!) except at >>> prompt.
2: How do i get my keyboard to work ? If anybody ever got a keyboard
working on a Vaxstation class machine with NetBSD please let me know
how. I have a distinct feeling that despite lkkbd0 line in kernel
output i haven't done everything corerctly. Keyboard works fine while at
prompt but doesn't do anything at ttyw0 login prompt. I'm a BSD
newbie, something that might seem obvious to you might have been
overloked by me.
I just reread your post and saw that I'd overlooked this part. On all
the 3100 and 4000 series Vaxen that I've owned, the keyboard would only
work if I set the boot flags to one. This aborts the autobooting of a
kernel, but I just do "boot netbsd" and confirm the mount points. At the
Post by Blaz Antonic
SET BFLG 1
If there's a more elegant solution that doesn't require intervention
when booting, then I'd love to know what it is.

Chris
--
***@iosystems.co.uk (work)
***@btopenworld.com (home)
Peedle, John
2004-03-10 15:47:41 UTC
Permalink
I have the manual for this as a PDF. I will dig it out and send it.

John

-----Original Message-----
From: meltie
To: NetBSD/vax Mailing List
Sent: 10/03/04 12:23
Subject: KZQSA tech docs needed

Hi guys - as per title really. Does anyone have a copy of any
documentation
pertaining to the KZQSA QBUS SCSI adaptor local? I've followed a couple
of
trails and hit dead ends. I'm looking to do a bit of dev with the
card...

TIA
alex/melt


_____________________________________________________________________
This e-mail has been scanned for viruses by MCI's Internet Managed
Scanning Services - powered by MessageLabs. For further information
visit http://www.mci.com
###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/


This communication and the information it contains: - (a) Is intended for the person(s) or organisation(s) named above and for no other person(s) or organisation(s). Access to this mail by anyone else is unauthorised. (b) Is confidential, and may be legally privileged or otherwise protected in law. Unauthorised use, circulation, copying or disclosure of any part of this communication may be unlawful. (c) May be susceptible to interference, and should not be assumed that it has come in its original form and/or from the stated sender or PinkRoccade UK accepts no responsibility for information, errors or omissions in this e-mail or use or misuse thereof or any act done or omitted to be done in connection with this communication. If you are not the intended recipient, please inform ***@pinkroccade.co.uk immediately and delete it and all copies from your system.
Loading...