1
0
Fork 0

add images to wy-60 post, and post it.
Some checks failed
Build Blog / Build (push) Failing after 8m5s

This commit is contained in:
Saji 2025-05-03 21:46:21 -05:00 committed by saji
parent d884ce1fac
commit 394de3ceaa
14 changed files with 102 additions and 81 deletions

3
.gitattributes vendored
View file

@ -1,2 +1,5 @@
*.ttf 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
View file

@ -0,0 +1 @@
_includes/

View file

@ -10,7 +10,7 @@ code[class*="language-"],
pre[class*="language-"] {
color: var(--color-fg); /* base05 */
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;
text-align: left;
white-space: pre;
@ -29,15 +29,19 @@ pre[class*="language-"] {
hyphens: none;
}
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,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
color: inherit;
text-shadow: none;
background: var(--color-black-bright); /* base02 */
}
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
color: inherit;
text-shadow: none;
background: var(--color-black-bright); /* base02 */
@ -53,44 +57,44 @@ code[class*="language-"]::selection, code[class*="language-"] ::selection {
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
margin: 0.5em 0;
overflow: auto;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background: #{{base00-hex}}; /* base00 */
background: var(--color-bg); /* base00 */
}
/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
padding: 0.1em;
border-radius: 0.3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.cdata {
color: #{{base03-hex}}; /* base03 */
color: var(--color-white); /* base03 */
}
.token.entity,
.language-css .token.string,
.style .token.string {
color: #{{base04-hex}}; /* base04 */
background: #{{base01-hex}}; /* base01 */
color: var(--color-white-bright); /* base04 */
background: var(--color-black); /* base01 */
}
.token.punctuation {
color: #{{base05-hex}}; /* base05 */
color: var(--color-fg); /* base05 */
}
.token.variable,
.token.tag,
.token.operator,
.token.deleted {
color: var(--color-blue); /* base08 */
color: var(--color-blue-bright); /* base08 */
}
.token.property,
@ -149,6 +153,5 @@ pre[class*="language-"] {
}
.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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

BIN
content/blog/wy-60-repairs/the_setup.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -1,7 +1,8 @@
---
title: Repairing a WY-60 Terminal
date: 2025-04-28
draft: true
tags:
- retro
---
# 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.
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
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
@ -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
it sits on the screen face as you take it apart.
Eventually, I got it back together. But we were clearly not done.
![image of a RAM chip sitting in a DIP socket](socket_ram_chip.jpg)
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
to see if any chips were being silent.
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.
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
![Picture of a half-open terminal face down lying on top of some containers](the_setup.jpg)
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,
@ -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
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.
![Functional block diagram, showing the attribute and character data pipelines](bus_architecture.png)
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.
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.
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
find anything that felt wrong.
Things took a quick turn when I noticed this while setting up a probe:
Image of cold solder joints.
![Image of cold solder joints](cold_joints_1.jpg)
Uh, guys?
Image of more cold joints on a different chip.
![Image of more cold joints on a different chip](cold_joints_2.jpg)
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
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
@ -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
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
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
@ -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.
( image of editing this post with the terminal )
![Image of editing this post with the terminal](editing_post.jpg)
# Next

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 130 B