add images to wy-60 post, and post it.
Some checks failed
Build Blog / Build (push) Failing after 8m5s
Some checks failed
Build Blog / Build (push) Failing after 8m5s
This commit is contained in:
parent
d884ce1fac
commit
394de3ceaa
3
.gitattributes
vendored
3
.gitattributes
vendored
|
@ -1,2 +1,5 @@
|
||||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
*.woff2 filter=lfs diff=lfs merge=lfs -text
|
*.woff2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
content/**/*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
content/**/*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
content/**/*.gif filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
1
.prettierignore
Normal file
1
.prettierignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
_includes/
|
|
@ -10,7 +10,7 @@ code[class*="language-"],
|
||||||
pre[class*="language-"] {
|
pre[class*="language-"] {
|
||||||
color: var(--color-fg); /* base05 */
|
color: var(--color-fg); /* base05 */
|
||||||
background: var(--color-black);
|
background: var(--color-black);
|
||||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
|
@ -29,15 +29,19 @@ pre[class*="language-"] {
|
||||||
hyphens: none;
|
hyphens: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
|
pre[class*="language-"]::-moz-selection,
|
||||||
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
|
pre[class*="language-"] ::-moz-selection,
|
||||||
|
code[class*="language-"]::-moz-selection,
|
||||||
|
code[class*="language-"] ::-moz-selection {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
background: var(--color-black-bright); /* base02 */
|
background: var(--color-black-bright); /* base02 */
|
||||||
}
|
}
|
||||||
|
|
||||||
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
|
pre[class*="language-"]::selection,
|
||||||
code[class*="language-"]::selection, code[class*="language-"] ::selection {
|
pre[class*="language-"] ::selection,
|
||||||
|
code[class*="language-"]::selection,
|
||||||
|
code[class*="language-"] ::selection {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
background: var(--color-black-bright); /* base02 */
|
background: var(--color-black-bright); /* base02 */
|
||||||
|
@ -53,44 +57,44 @@ code[class*="language-"]::selection, code[class*="language-"] ::selection {
|
||||||
/* Code blocks */
|
/* Code blocks */
|
||||||
pre[class*="language-"] {
|
pre[class*="language-"] {
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
margin: .5em 0;
|
margin: 0.5em 0;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
:not(pre) > code[class*="language-"],
|
:not(pre) > code[class*="language-"],
|
||||||
pre[class*="language-"] {
|
pre[class*="language-"] {
|
||||||
background: #{{base00-hex}}; /* base00 */
|
background: var(--color-bg); /* base00 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Inline code */
|
/* Inline code */
|
||||||
:not(pre) > code[class*="language-"] {
|
:not(pre) > code[class*="language-"] {
|
||||||
padding: .1em;
|
padding: 0.1em;
|
||||||
border-radius: .3em;
|
border-radius: 0.3em;
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.comment,
|
.token.comment,
|
||||||
.token.prolog,
|
.token.prolog,
|
||||||
.token.cdata {
|
.token.cdata {
|
||||||
color: #{{base03-hex}}; /* base03 */
|
color: var(--color-white); /* base03 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.entity,
|
.token.entity,
|
||||||
.language-css .token.string,
|
.language-css .token.string,
|
||||||
.style .token.string {
|
.style .token.string {
|
||||||
color: #{{base04-hex}}; /* base04 */
|
color: var(--color-white-bright); /* base04 */
|
||||||
background: #{{base01-hex}}; /* base01 */
|
background: var(--color-black); /* base01 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.punctuation {
|
.token.punctuation {
|
||||||
color: #{{base05-hex}}; /* base05 */
|
color: var(--color-fg); /* base05 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.variable,
|
.token.variable,
|
||||||
.token.tag,
|
.token.tag,
|
||||||
.token.operator,
|
.token.operator,
|
||||||
.token.deleted {
|
.token.deleted {
|
||||||
color: var(--color-blue); /* base08 */
|
color: var(--color-blue-bright); /* base08 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.property,
|
.token.property,
|
||||||
|
@ -149,6 +153,5 @@ pre[class*="language-"] {
|
||||||
}
|
}
|
||||||
|
|
||||||
.namespace {
|
.namespace {
|
||||||
opacity: .7;
|
opacity: 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 823 KiB After Width: | Height: | Size: 131 B |
Binary file not shown.
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 131 B |
BIN
content/blog/wy-60-repairs/bus_architecture.png
(Stored with Git LFS)
Normal file
BIN
content/blog/wy-60-repairs/bus_architecture.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
content/blog/wy-60-repairs/cold_joints_1.jpg
(Stored with Git LFS)
Normal file
BIN
content/blog/wy-60-repairs/cold_joints_1.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
content/blog/wy-60-repairs/cold_joints_2.jpg
(Stored with Git LFS)
Normal file
BIN
content/blog/wy-60-repairs/cold_joints_2.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
content/blog/wy-60-repairs/editing_post.jpg
(Stored with Git LFS)
Normal file
BIN
content/blog/wy-60-repairs/editing_post.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
content/blog/wy-60-repairs/socket_ram_chip.jpg
(Stored with Git LFS)
Normal file
BIN
content/blog/wy-60-repairs/socket_ram_chip.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
content/blog/wy-60-repairs/the_setup.jpg
(Stored with Git LFS)
Normal file
BIN
content/blog/wy-60-repairs/the_setup.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -1,7 +1,8 @@
|
||||||
---
|
---
|
||||||
title: Repairing a WY-60 Terminal
|
title: Repairing a WY-60 Terminal
|
||||||
date: 2025-04-28
|
date: 2025-04-28
|
||||||
draft: true
|
tags:
|
||||||
|
- retro
|
||||||
---
|
---
|
||||||
|
|
||||||
# Intro
|
# Intro
|
||||||
|
@ -41,8 +42,6 @@ At this point we needed to test them out. And this is where I realized that,
|
||||||
despite picking the unit with the least yellowing, mine didn't work.
|
despite picking the unit with the least yellowing, mine didn't work.
|
||||||
I saw the cursor, and a line for the status bar, but no characters in sight:
|
I saw the cursor, and a line for the status bar, but no characters in sight:
|
||||||
|
|
||||||
image here
|
|
||||||
|
|
||||||
Thankfully, the scuffed one worked, so I was able to confirm that
|
Thankfully, the scuffed one worked, so I was able to confirm that
|
||||||
I could interact with it. However, the geometry was bad and there seemed
|
I could interact with it. However, the geometry was bad and there seemed
|
||||||
to be some shaking in the text, meaning a power supply wasn't being stable
|
to be some shaking in the text, meaning a power supply wasn't being stable
|
||||||
|
@ -59,20 +58,19 @@ This took a while, as I was still figuring out the best way to
|
||||||
disassemble the unit. Testing it was initially challenging as
|
disassemble the unit. Testing it was initially challenging as
|
||||||
it sits on the screen face as you take it apart.
|
it sits on the screen face as you take it apart.
|
||||||
|
|
||||||
Eventually, I got it back together. But we were clearly not done.
|

|
||||||
|
|
||||||
image here
|
Eventually, I got it back together. But to my dismay I was still greeted with a
|
||||||
|
blinking cursor and no status line. At this point, I needed to probe the system
|
||||||
|
while it was running to see if any chips were being silent.
|
||||||
|
|
||||||
At this point, I needed to probe the system while it was running
|
I eventually came up with this setup. It's not very safe, but I coped by
|
||||||
to see if any chips were being silent.
|
telling myself that I would only touch the system when it was off. That rule
|
||||||
|
didn't last long. Fortunately the low voltage digital stuff that I care about
|
||||||
|
was close to the table and far from the spooky high voltage near the top of the
|
||||||
|
board.
|
||||||
|
|
||||||
I eventually came up with this setup. It's not very safe, but
|

|
||||||
I coped by telling myself that I would only touch the system when it was off.
|
|
||||||
That rule didn't last long. Fortunately the low voltage digital stuff
|
|
||||||
that I care about was close to the table and far from the spooky high voltage near the
|
|
||||||
top of the board.
|
|
||||||
|
|
||||||
image here
|
|
||||||
|
|
||||||
My next hunch was that something was wrong with the Attribute data pipeline.
|
My next hunch was that something was wrong with the Attribute data pipeline.
|
||||||
The attribute data is what determines if a character or line is large, blinking,
|
The attribute data is what determines if a character or line is large, blinking,
|
||||||
|
@ -80,30 +78,28 @@ reverse-color (block), or "blank". I thought that if the pin for "blank" was stu
|
||||||
none of the characters would not load properly. The character attributes can either be stored
|
none of the characters would not load properly. The character attributes can either be stored
|
||||||
alongside the character itself, or in a separate "Attribute RAM", which is read at the same time.
|
alongside the character itself, or in a separate "Attribute RAM", which is read at the same time.
|
||||||
|
|
||||||
Image of functional block diagram, showing the attribute and character data pipelines.
|

|
||||||
|
|
||||||
With my new test setup, I was able to find and probe pins from the underside of the board.
|
With my new test setup, I was able to find and probe pins from the underside of the board.
|
||||||
One of the challenges here is that there are multiple busses, each with potentially multiple masters.
|
One of the challenges here is that there are multiple busses, each with potentially multiple masters.
|
||||||
Not only do you need to probe a data line, you also need to have a probe for whatever makes the chip
|
Not only do you need to probe a data line, you also need to have a probe for whatever makes the chip
|
||||||
"active", be it a chip select, or an `~OE` pin on a logic buffer nearby.
|
"active", be it a chip select, or an `~OE` pin on a logic buffer nearby.
|
||||||
|
|
||||||
Image of the PCB schematic, showing the complex bus interconnect and 74-series chips.
|
|
||||||
|
|
||||||
I started from the font ram, then checked U20, which was the custom chip. I kept working backwards, but couldn't
|
I started from the font ram, then checked U20, which was the custom chip. I kept working backwards, but couldn't
|
||||||
find anything that felt wrong.
|
find anything that felt wrong.
|
||||||
|
|
||||||
Things took a quick turn when I noticed this while setting up a probe:
|
Things took a quick turn when I noticed this while setting up a probe:
|
||||||
|
|
||||||
Image of cold solder joints.
|

|
||||||
|
|
||||||
Uh, guys?
|
Uh, guys?
|
||||||
|
|
||||||
Image of more cold joints on a different chip.
|

|
||||||
|
|
||||||
It can't possibly be this, right? U17 and U15 are part of character storage,
|
It can't possibly be this, right? U17 and U15 are part of character storage,
|
||||||
and I did see the font RAM output non-zero, meaning it had to have rendered
|
and I did see the font RAM output non-zero, meaning it had to have rendered
|
||||||
something! I quickly cleaned up the joints and powered it on. I couldn't see it
|
something! I quickly cleaned up the joints and powered it on. I couldn't see it
|
||||||
at first, but it worked.
|
at first, but it worked. Thankfully I found this before starting to replace other chips.
|
||||||
|
|
||||||
# Takeaway
|
# Takeaway
|
||||||
|
|
||||||
|
@ -120,7 +116,7 @@ seemed "off" before going further. I would have noticed the character RAM
|
||||||
eventually, if I finished my testing of the Attribute RAM. In this case it was
|
eventually, if I finished my testing of the Attribute RAM. In this case it was
|
||||||
easy to spot visually and so I didn't need to test it any further.
|
easy to spot visually and so I didn't need to test it any further.
|
||||||
|
|
||||||
While I was working on this, my friend was using his unit to develop a USB
|
While I was working on this, my friend was using his unit to develop the USB
|
||||||
keyboard adapter. His unit was slightly more yellow and has some centering
|
keyboard adapter. His unit was slightly more yellow and has some centering
|
||||||
issues, but otherwise is fully functional. By the time I had mine figured out,
|
issues, but otherwise is fully functional. By the time I had mine figured out,
|
||||||
the firmware was mostly complete, so it was a quick flash away. I might blog
|
the firmware was mostly complete, so it was a quick flash away. I might blog
|
||||||
|
@ -128,7 +124,7 @@ about it some time, but the protocol is really simple.
|
||||||
|
|
||||||
I'm typing this last portion in Vim on the terminal, using the VT100 mode.
|
I'm typing this last portion in Vim on the terminal, using the VT100 mode.
|
||||||
|
|
||||||
( image of editing this post with the terminal )
|

|
||||||
|
|
||||||
# Next
|
# Next
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 130 B |
Loading…
Reference in a new issue