Reply by John Kent September 10, 20042004-09-10
I can't reproduce your problem with the display ... but I borrowed a
PS/2 keyboard
and as you say ... it has problems. I've updated the monitor ROM to
filter out key releases
and undefined keys are mapped at $FF rather then $2e ("."). I notice the
keyboard
handles Shifts but not Control. I'll try post my updates soon.

John.

rtstofer wrote:

>Sydney is about 151 degrees East and San Francisco is about 122
>degrees West so we're about 273 degrees apart - figure 3/4 of a day
>or 18 hours ignoring local offsets for daylight savings time. Too
>much time studying celestial navigation...
>
>I still have a couple of issues: First, my generic 82 key keyboard
>doesn't work at all with the PS/2 port although it works on my Dell
>computer. Don't know what that's about. My Dell 101 key keyboard
>works at +5V but I get double strokes (press/release) which is what
>the keyboard sends.
>
>I also think I still see times when the counter problem reappears.
>If I enter an invalid (WHAT?) command and then press Enter
>repeatedly, as the screen scrolls it displays that odd line position
>as before but higher on the screen. I usually see it in the upper 4
>lines, give or take.
>
>I was going to rebuild the project but, as you are up anyway, I
>thought I would send this along. >

--
http://members.optushome.com.au/jekent


Reply by rtstofer September 10, 20042004-09-10

Sydney is about 151 degrees East and San Francisco is about 122
degrees West so we're about 273 degrees apart - figure 3/4 of a day
or 18 hours ignoring local offsets for daylight savings time. Too
much time studying celestial navigation...

I still have a couple of issues: First, my generic 82 key keyboard
doesn't work at all with the PS/2 port although it works on my Dell
computer. Don't know what that's about. My Dell 101 key keyboard
works at +5V but I get double strokes (press/release) which is what
the keyboard sends.

I also think I still see times when the counter problem reappears.
If I enter an invalid (WHAT?) command and then press Enter
repeatedly, as the screen scrolls it displays that odd line position
as before but higher on the screen. I usually see it in the upper 4
lines, give or take.

I was going to rebuild the project but, as you are up anyway, I
thought I would send this along. --- In , John Kent <jekent@o...> wrote:
> I should have been in my cubical but I was up until the early
hours of
> the morning fixing my HP5L laser printer trying to work out how to
> install a new pick up roller. I work fairly flexible hours (part
time).
> Bad arthritis has left me with bionic joints and a rather lazy
work ethic.
>
> I've been looking around for a 7 x 9 or 7 x 13 character generator
that
> looks a
> bit better than what I have at the moment but I could not find
much on
> the web.
> I think the one I'm using is pinched from a Comodore 64, but I
must have
> been
> out by a row when I spliced it together because I had to fiddle it
a bit
> to get
> number and characters to line up on the bottom line.
>
> John.
>
> rtstofer wrote:
>
> >I grabbed it this morning - I'll be playing with it over the
> >weekend. The shower always worked for me as well. Maybe someone
> >should study that - give up cubes and install showers. Lighten
up
> >the office. Well, except I'm retired - no office.
> >
> >
> --
> http://members.optushome.com.au/jekent





Reply by John Kent September 10, 20042004-09-10
I should have been in my cubical but I was up until the early hours of
the morning fixing my HP5L laser printer trying to work out how to
install a new pick up roller. I work fairly flexible hours (part time).
Bad arthritis has left me with bionic joints and a rather lazy work ethic.

I've been looking around for a 7 x 9 or 7 x 13 character generator that
looks a
bit better than what I have at the moment but I could not find much on
the web.
I think the one I'm using is pinched from a Comodore 64, but I must have
been
out by a row when I spliced it together because I had to fiddle it a bit
to get
number and characters to line up on the bottom line.

John.

rtstofer wrote:

>I grabbed it this morning - I'll be playing with it over the
>weekend. The shower always worked for me as well. Maybe someone
>should study that - give up cubes and install showers. Lighten up
>the office. Well, except I'm retired - no office.
--
http://members.optushome.com.au/jekent



Reply by rtstofer September 10, 20042004-09-10

I grabbed it this morning - I'll be playing with it over the
weekend. The shower always worked for me as well. Maybe someone
should study that - give up cubes and install showers. Lighten up
the office. Well, except I'm retired - no office.

--- In , John Kent <jekent@o...> wrote:
> Hi Richard ....
>
> I think I've got the bugs out of the VDU ...
>
> It's up on my web page.
>
> http://members.optushome.com.au/jekent/Spartan3/index.html
>
> Don't forget to refresh your browser.
>
> The Character generator ROM still needs a bit of work.
>
> John.
>
> --
> http://members.optushome.com.au/jekent





Reply by John Kent September 9, 20042004-09-09
Hi Richard ....

I think I've got the bugs out of the VDU ...

It's up on my web page.

http://members.optushome.com.au/jekent/Spartan3/index.html

Don't forget to refresh your browser.

The Character generator ROM still needs a bit of work.

John.

--
http://members.optushome.com.au/jekent



Reply by rtstofer September 6, 20042004-09-06

By default, the Televideo 950 also uses the 25th line for status but
it can be overwritten with ESC f <message up the 80 chars> <CR>. I
don't see this as important although I did use it with one of the
screen oriented editors.

I'm getting a little burned out at the moment as well. I just
finished populating a PCB with dual 5 in, 3 out RS232 drivers for
the 2 COM ports and those little SSOP pkgs are a chore to solder.
In retrospect, I should have included the VGA R/2R, connector and
PS/2 Port at the same time. I'm also tryng to come up with a nice
way to package the system. I think it is going to look like a cube
of PCBs attached to Plexiglass sheets about 6" square with standoff
posts between the sheets. I have been looking at the idea of just
folding things together. I have also toyed with the idea of
stuffing the whole thing in a PC Tower case. Just yank the
motherboard, mount all the PCBs and call it good. --- In , John Kent <jekent@o...> wrote:
> I'm taking a bit of a break. After a few 3:00 am nights I think I
owe it
> to myself.
>
> I remember using a BeeHive terminal back in the early 80s. That
also had
> 24 lines
> with an optional 25th status line that you could enable or
disable. I
> think it was used
> to report things like the baud rate, auxillary port status and so
on. I
> think it might have
> had a number of screen pages too.
>
> I'm not sure if 24 lines makes the circular buffer wrap around any
easier.
> I don't think you need a barrel shifter to offset the character
rows,
> just an offset on the row counter. Thats what I have done but when
> the offset register gets to large or wraps around to zero, the
offset
> calculation
> goes wrong and you get some modulo counter offset. I've just got
to look
> a little closer at how I've done offset.
>
> Also, I need a better character generator. Characters are 8 pixels
x 8pixels
> and I have two scan lines per character row which does not leave
much space
> between characters on different rows. It would be nice to have an
8 x 12
> pixel
> character generator, but then the ROM would double in size, which
may be
> a problem for the Spartan 2 board.
>
> John.
>





Reply by John Kent September 6, 20042004-09-06
I'm taking a bit of a break. After a few 3:00 am nights I think I owe it
to myself.

I remember using a BeeHive terminal back in the early 80s. That also had
24 lines
with an optional 25th status line that you could enable or disable. I
think it was used
to report things like the baud rate, auxillary port status and so on. I
think it might have
had a number of screen pages too.

I'm not sure if 24 lines makes the circular buffer wrap around any easier.
I don't think you need a barrel shifter to offset the character rows,
just an offset on the row counter. Thats what I have done but when
the offset register gets to large or wraps around to zero, the offset
calculation
goes wrong and you get some modulo counter offset. I've just got to look
a little closer at how I've done offset.

Also, I need a better character generator. Characters are 8 pixels x 8pixels
and I have two scan lines per character row which does not leave much space
between characters on different rows. It would be nice to have an 8 x 12
pixel
character generator, but then the ROM would double in size, which may be
a problem for the Spartan 2 board.

John.

rtstofer wrote:

>If there was more memory, I wonder if a look-up table would be a
>faster way to get the memory address for the start of each row. And
>maybe a way to barrel-shift the lookup table as the screen scrolls.
>Or just a pointer to the point to the table entry that contains the
>address of the first line. Then just add modulo 25 like a circular
>buffer. But, I fear this design is getting a little tight! Giving
>up 100k gates is a difficult thing. I also wish they had positioned
>the power inlet centered between the serial and VGA connectors -
>mine collides badly with the VGA plug.
>
>On the 25 line thing: I don't know for sure about the ADM3A but I
>think it has 24 lines. The Televideo 950 had a 25th line for status
>information but it didn't scroll along with the others. This was
>useful for function key prompts. Of course, it also has 4 pages of
>screen memory and a full blown microprocessor to process the command
>sequences which are quite extensive.
>
>I am really looking forward to seeing this work on the Spartan II
>although I must admit it is pretty clean on the Spartan III. I
>should be able to port it in with very little difficulty.
>
>Of course, the CF was supposed to be a drop-in thing as well...

--
http://members.optushome.com.au/jekent



Reply by rtstofer September 6, 20042004-09-06

Well, i fried my brain earlier on Margaritas but now that I am up to
semicomatose I see what you mean. It syntesizes just fine now that
the time/date stamps are past. Time zones, another in a long list
of lessons learned...

I'm using the same Web Pack so no issues there but I had downloaded
the .mcs file for the test. I never knew whether the little red
boxes meant anything, I just worked in a direction to make them go
away!

If there was more memory, I wonder if a look-up table would be a
faster way to get the memory address for the start of each row. And
maybe a way to barrel-shift the lookup table as the screen scrolls.
Or just a pointer to the point to the table entry that contains the
address of the first line. Then just add modulo 25 like a circular
buffer. But, I fear this design is getting a little tight! Giving
up 100k gates is a difficult thing. I also wish they had positioned
the power inlet centered between the serial and VGA connectors -
mine collides badly with the VGA plug.

On the 25 line thing: I don't know for sure about the ADM3A but I
think it has 24 lines. The Televideo 950 had a 25th line for status
information but it didn't scroll along with the others. This was
useful for function key prompts. Of course, it also has 4 pages of
screen memory and a full blown microprocessor to process the command
sequences which are quite extensive.

I am really looking forward to seeing this work on the Spartan II
although I must admit it is pretty clean on the Spartan III. I
should be able to port it in with very little difficulty.

Of course, the CF was supposed to be a drop-in thing as well...




Reply by John Kent September 6, 20042004-09-06
I take it you downloaded the .mcs file to the board.
I'm using Web pack ISE 6.2.03i.
The project file probably won't work for anything else ....

I think the UNISIM library is only for simulating the Xilinx library
components.
The red question marks for RAMB16_S9 don't seem to matter
Web pack appears to resolve that when you synthesize the code.

oh ..... you have to be careful of the auto make in Web pack.
Note that I'm probably about 10 hours ahead of you ...
If it preseves the time date stamp on the zip files, it might mess up the
auto make feature in Web Pack. I remember someone else complaining
about the make feature doing some strange things because they were
a few hours behind me. The Binary files were older that the source files
so Web pack thought the binaries were out of date :-)

Try loading and saving all the files again so that they have your
date-time on them.

I included some of the old files using the RAMB4 modules for the Spartan 2.
I might have changed a few of the architecture signals, so I need to
clean them
up abit eg. make ram2k.vhd into ram2k_b4.vhd and so on.

The funny scroll affect may have something to do with the way I did the
maths for the
Vertical offset register ... I multiply the row address by 5 then shift
it up 4 bits (mult by 80)
then add it to the horizontal column address to calculate the address in
memory.
In the software driver I simply increment the vertical offset register.
My brain is not working
at the moment, but there might be something wrong with doing that.

Once I get the bugs out of the display with system09 I'll try porting it
back to the
Spartan 2 board, so you can integrate it with your T80. rtstofer wrote:

>I downloaded your project and put it in the starter board. I see
>what you mean about the display - kind of strange. Nevertheless, a
>lot of things work very well.
>
>Stranger is the fact I can not get it to synthesize. I changed the
>unisym library statements slightly to eliminate the red '?' marks in
>the files list:
>
>library UNISIM;
>use UNISIM.VComponents.all;
>
>but it still doesn't synthesize. It runs through the process,
>writes a reasonable Synthesis Report, no errors, etc. but the step
>continues to have a '?'. Any attempt to create the programming file
>results in nothing happening. >
--
http://members.optushome.com.au/jekent



Reply by rtstofer September 5, 20042004-09-05

I downloaded your project and put it in the starter board. I see
what you mean about the display - kind of strange. Nevertheless, a
lot of things work very well.

Stranger is the fact I can not get it to synthesize. I changed the
unisym library statements slightly to eliminate the red '?' marks in
the files list:

library UNISIM;
use UNISIM.VComponents.all;

but it still doesn't synthesize. It runs through the process,
writes a reasonable Synthesis Report, no errors, etc. but the step
continues to have a '?'. Any attempt to create the programming file
results in nothing happening.
--- In , John Kent <jekent@o...> wrote:
> Hi Richard,
>
> It's past 3:00 am and I need to get to bed.
> I've put up my work so far up on my web site.
>
> http://members.optushome.com.au/jekent/Spartan3/index.html
>
> It runs my KBug9 monitor and displays stuff
> on both the serial port and the VDU.
> It should handle inputs from either the serial port
> or the keyboard. I have not tested the keyboard although
> I have not changed it from the B5 board, so it should still
> work. The serial port runs at 57.6 Kbaud 8 data 1 stop bit.
>
> There is a problem with the way I scroll the screen up.
> because 80 x 25 = 2000 and not 2048 some funny things
> happen to the alignment of the columns ...
> (its hard to explain the effect without demonstating it)
> I have a Column address offset register but I think there
> are problems when the offset gets too large.
>
> I've implemented a colour attribute register as well as
> chunky graphics and flashing characters, but the Video
> driver does not have any escape sequences to set it.
> I have some bresenham line drawing routines for the 6800
> and 6809 somewhere. I was using an old SubLogic
> 3D wire frame graphics routine for playing 3D games on
> my old 6809 system. Would be rather neat to hard code
> it in VHDL.
>
> I have not implemented the full ADM-3A command set.
> There are still a few control characters missing.
>
> I also need a terminal mode so that the monitor does not
> try to execute keyboard commands.
>
> rtstofer wrote:
>
> >As I said earlier, there seems to be quite a bit of space left
for
> >the VDU.
> >
> >You are correct, Tony Burch used a 1 MHz clock with the CF. I
had
> >thought that since the cycle times were acceptable to an older
IDE
> >drive that the CF would surely work. You bring up an interesting
> >point, maybe I should slow down the clock, increase the access
times
> >and see what happens.
> >
> >
> >
> Yep, give it a try ...
>
> >I am using 16 bit data transfers with the high order 8 bits
always
> >0 - the drives are so large that giving up space was no problem
> >compared to the issue of converting back and forth from a 16 bit
> >register to an 8 bit bus. I can do it, of course, but for a
first
> >attempt, it didn't seem worth the complication. For whatever
> >reason, the IDE drive returned an error when I tried to set the
> >feature for 8 bit transfers. I just wanted CP/M to run - ugly
would
> >be acceptable.
> >
> >
> >
> The Compact Flash data sheet describes an attribute register,
> that you can program for 8 bit transfers. I'm not sure that IDE
drives
> have that.
>
> John.
>
> --
> http://members.optushome.com.au/jekent