1 February 2024
Y
10:16
YL3AKC
Meh! 300067-01
A
10:16
Armin
In reply to this message
It doesn't seem to be connected, at least not directly. But it's strange that it's routed all the way trough the motherboard to the kbc.
Y
10:17
YL3AKC
In reply to this message
"Zuspicious, really zuspicious" (c) CuriousMarc...
πŸ‘
A
10:18
There is no logical reason to route RESET wire like this...
A
10:19
Armin
Yes, I can trace it to vias under the kbc. So I guess desoldering will answer that question
u
10:20
usernameak
the PCB is two sided right?
A
10:20
Armin
Yes, apart from power and ground planes.
Y
10:33
YL3AKC
@usernameak What we are talking about? Let me explain...
Yes, 2 layer PCB...
Reset goes really far away. Theoretically resistor and capacitor can be put near D8284 chip, but we have what we have...

Suspicious!
u
10:34
usernameak
In reply to this message
yeah yeah yeah
Y
10:39
YL3AKC
In reply to this message
Wait a moment! 4 layers?
Layer 1: signals
Layer 2: power/ground
Layer 3: power/ground
Layer 4: signals

???
10:39
In reply to this message
The question is: WHY? Where goes reset line? Why it is routed near KBC? Why so far?
A
10:41
Armin
In reply to this message
Yes
Y
10:42
YL3AKC
Does reset line also resets KBC? No, because it not goes to KBC reset pin!
Maybe reset lines goes to one of GPIO pins on KBC? Maybe, Armin didn't found yet where it goes...
10:42
In reply to this message
Hmm. This is something new for me! Thank you for info update!
10:44
Maybe reset goes to R34, or other resistor in the "noodle logic" region?
A
10:44
Armin
In reply to this message
Yes, just double checked
1 Top layer
2 GND
3 PWR
4 bottom layer
Y
10:47
YL3AKC
From electronic desing view, it is really bad to connect reset capacitor directly to any IC output (arduino, ESP32, D8741, 74HC series etc) because discharge current can damage output pin on IC. There should be resistor in series between IC output and capacitor. 200-2000 Ohms approx... Depending on construction.
A
10:47
Armin
The pull up resistor and capacitor to ground look like a classic "debounce" circuit.
10:48
Maybe there was intended to be a hw switch. But it was only used in development?
Y
10:49
YL3AKC
The same is true for reset button if we look on professional equipment like HP 9825T or whatever... And of course hipsters and chineeze don't know it, because of profanity in electronics...
10:52
In reply to this message
Not only for debounde, but also for small delay. While +5 volts rise during power on. Reset is held low for some time. +5 volts stabilize but reset still stay low for logner time. System stays in reset for a while. When cap is charged (let's say in 50 - 100 miliseconds), only then electronics goes out or reset state and systems start correctly.
πŸ‘
A
10:52
In reply to this message
Well! Maybe! This is good point!

So, for development and research reasons we can add this "missing" button. Lol!
10:56
Plan for today:
make 1101 rev4 CCPROM source code
make 1109 CCPROM source code
❀
A
A
11:09
Armin
Here's a copy of wordstar 3.30 for the compass
the 1109 had a corrupted dos install with this in bubble, so there is a chance that this is also corrupted. haven't tested yet.
11:10
Thanks to Tomasz from Poland for this and the 1109 ROM
Y
11:12
YL3AKC
Hmm... Tomasz... I think I hear it before... You can invite him to chat...
A
11:12
Armin
I'll ask him, but he might be more of a collector than a tinkerer :)
Y
11:16
YL3AKC
In reply to this message
No problems with that! If he is interested, he is welcome. Maybe he have something more that can help other. And can speak with Yuri, who is also collector.

BTW, Yuri wrote book about GRiD history.
A
11:27
Armin
In reply to this message
Hmm I should ask him if he knows more about the 1986 "GRiD 286", a colaboration bethween GRiD and Toshiba.
11:28
Y
11:52
YL3AKC
In reply to this message
Lol! rev4 source code completed! πŸ˜ƒ
11:59
In reply to this message
What Tomasz think about all this reverse engineering activities?
A
12:24
Armin
Kbc desoldered..
Conclusion....
Reset goes. ...
12:24
Nowhere :(
12:25
No connections beyond that resistor and capacitor
Y
12:27
YL3AKC
That blue cap?
u
12:27
usernameak
In reply to this message
i'd not leave the quartz window in the open
A
12:29
Armin
Yes, I know. Just didn't want to ruin the sticker with the heatgun
Y
14:25
YL3AKC
1109 complete using crazy offset hacks because OsDiskDrv looks patched by GRiD guys. They removes part of code in the end of OsDiskDrv
A
14:44
Armin
In reply to this message
ELI5? ;)
u
14:45
usernameak
In reply to this message
they fucked up the already weird GPIB drive driver even more
A
14:46
Armin
In reply to this message
Hah ok tnx, why would they have to change anything about the GPIB? Did the compass 1109 have any other peripherals?
u
14:46
usernameak
In reply to this message
w-wait, you say that 1101 did not have those hacks?
i've seen them in 1139 ROM but never looked at 1101
14:47
In reply to this message
it's not actually specifically about GPIB but about the driver for external drives
A
14:49
Armin
Hmm, but still why would those be different between the 1101 and 1109?
u
14:50
usernameak
good question
A
14:51
Armin
And here we have the keyboard controller,
πŸ”₯
Y
14:52
I'm pretty sure I read it correctly, but it contains no text strings. so ?
Y
15:00
YL3AKC
In reply to this message
What da...???
Seriously?
You already done that?
You are crazy in positive way!
πŸ‘
A
15:00
In reply to this message
Could be without text.
15:01
In reply to this message
Hmm... I will check later about 1129 and 1139. Going to reverse KBC firmware!
15:04
In reply to this message
Yes, 1101 rev3 and rev4 don't have these hacks. 1109 have. Basically they removed something from end of OsDiskDriver code. Maybe unused switch case regarding unused calls. Also they thinkered with timer variable.

Interesting thing: There are still 10 or so pointers in code and they pont to nothing. That was pain for me to hack source code correctly and add labels to non existing code...
u
15:05
usernameak
in 1139 the data segment selector in disk driver code was absurdly high and they wrapped around the address space to access RAM
Y
15:07
YL3AKC
In reply to this message
Yes, you already told something...

What I need to provide you to see difference?
I thing you can do cmp -l, vbindiff or similar yourself to see changes between 1101 rev4 and 1109.
15:07
Latest source code is already on github.
u
15:07
usernameak
In reply to this message
diff between asm would be great
u
15:10
usernameak
oh, so they all do that
Y
15:13
YL3AKC
Can my IDA 7.6 disassemble D8741A MCU code?

Or I'll do it by hand!
15:15
In reply to this message
Looks like it's time to "beep" keyboard matrix. Beep with arduino Mega...
u
15:15
usernameak
In reply to this message
IDA has no MCS-48 support :(
15:18
Ghidra does though
Y
15:19
YL3AKC
Sounds like i need to download and learn how to use ghidra...
u
15:20
usernameak
i can actually drop you asm listing from it
Y
15:21
YL3AKC
Ok, Cool!
15:21
Now I need to find complier for MCS-48 somewhere...
15:22
In reply to this message
yeah, it's a really old architecture
Y
15:23
YL3AKC
CODE:CODE:0000 0468 JMP FUN_CODE_0068

Lol!
Looks like i done this myself by looking on MCS-48 instruction mnemonics...
u
15:23
usernameak
In reply to this message
it tripped on some invalid instructions though :))))
15:23
because the Ghidra's MCS-48 disassembler isn't really great
A
15:24
Armin
Awesome looks like the dump is good, huh?
u
15:25
usernameak
wait i can't even find 0x22 opcode in any docs
Y
15:25
YL3AKC
In reply to this message
1st instruction looks correct...
u
15:25
usernameak
but yeah, dump looks like actual code
A
15:26
Armin
Great, then I can get the rom back on the MB
u
15:26
usernameak
In reply to this message
i swear it's something specific to UPI
15:30
In reply to this message
fuck, neither do i see that one instruction there
15:31
oh found
15:31
IN A,DBB
15:32
this is an instruction specific to this MCU (which differs from normal 8048 by having a buffered I/O bus)
15:32
:)
15:34
better
still has hardcoded 0x22 opcode but at least has entire interrupt handler disassembled
Y
15:42
YL3AKC
In reply to this message
Thank you! I am trying to make sense of it!
u
15:42
usernameak
In reply to this message
and for 0x22 - it's this
15:43
basically pulls from FIFO buffer
Y
15:55
YL3AKC
This architecture looks crazy even for me... And I have some experience with AVR 8-bit asm...
u
15:55
usernameak
In reply to this message
ancient microcontrollers were... weird
Y
17:43
YL3AKC
Staring to understand this beast. But bank switching is still mystery for me...
17:55
Looks like need to poke @ConventionalMemories gain... Now I need partial pinout for KBC... Where are connected both keyboard connectors on KBC?
Basicallly I need both Port1 and Port2 port connections and few more.

1: Test 0
5: SS
7: EA
11: SYNC

21: Port2bit0
22: Port2bit1
23: Port2bit2
24: Port2bit3

27: Port1bit0
28: Port1bit1
29: Port1bit2
30: Port1bit3
31: Port1bit4
32: Port1bit5
33: Port1bit6
34: Port1bit7

35: Port2bit4
36: Port2bit5
37: Port2bit6
38: Port2bit7

39: Test 1
17:55
there could also involved U92 in keyboard scan process...
A
18:09
Armin
Will do, At work right now will check later
Y
18:11
YL3AKC
OKay! No hurry!
TT
21:29
T Tron
In reply to this message
KBC can generate reset
21:29
I forget the key combo
Y
21:58
YL3AKC
That's making sense.
22:00
In reply to this message
Maybe you know pin for it?
A
23:26
Armin
Hmm, the frameless sockets I planned on installing are just a tiny bit too big for the holes in the PCB.
Does anyone happen to know what brand of sockets GRiD originally used?
2 February 2024
A
01:42
Armin
Didn't manage to find ones that look exactly the same, but these from MILL MAX should work I think, will order some and report back.
https://www.mill-max.com/products/dip/dual-in-line-receptacle-carrier-socket/614-xx-xxx-31-012000
Y
04:03
YL3AKC
Hmm... Interesting, newer know that GRiD used special IC sockets. Have no idea how to help with that.
Y
13:57
YL3AKC
In reply to this message
What par number is on PAL16R4? 300123-00 ?
14:04
Looks liek 1129 and 1139 CCPROMs are almost identical. Looks like some changes to offsets/labels or subroutine call and few constants are different.
14:04
After 1139 disassembly it should be easy to make 1129 CCPROM source code.
A
14:33
Armin
Last digit is not readable. But I assume U101 is 300123-00
Y
14:48
YL3AKC
Yes, looks like -00. Kirill and Yuri protos also fave bad resolution here. Now I can confirm that 123 is correct.
Y
18:14
YL3AKC
I start to see some correlation between KBC dump and key mapping in GRiD programming manual...

Looks like after some time I will understand KBC code.
18:16
By the way, i found alternative disassembler for... D4039. Modified it for D8749. It's relatively simple C code.

https://github.com/daveho/asm48
18:16
Most important tjing is to understand opcode details.
18:18
There is little over 250 bytes translation table for keyboard key mapping and little less than 500 bytes of microcontroller code.
Y
19:37
YL3AKC
Some sneak-peek into process. Nothing important and nothing much, but...
3 February 2024
Y
20:31
YL3AKC
@usernameak here is a question: what will happen with GRiD when NMI rised? πŸ˜‰

This question is because Keyboard controller is...
u
21:44
usernameak
In reply to this message
far jump at address specified at 0000:0008
πŸ‘
Y
Y
21:45
YL3AKC
In reply to this message
Aha! Yes, but...
Y
22:32
YL3AKC
In reply to this message
Yes, but there is connection between keyboard controller and NMI input on CPU. Discovered by Armin. Guess why! PseidoDMA watchog or reset???
TT
22:55
T Tron
For the debugger hook
Y
23:00
YL3AKC
In reply to this message
More probably to break stuck DMA or to execute reset code. I need to check this with CCPROM code.

But I am busy on KBC ROM dump right now.
23:03
Some more work on KBC ROM dump. Keyboard table is completed. Started to comment MCU code. Looks like I just found subroutine/function responsible for single byte sending to CPU (for key sending?) and for NMI pin. This routine is called from timer interrupt, main loop and from other super long routine (probably key scan routine).
23:05
In reply to this message
Well... If you are speaking about debugger... Any information about debugger on compass? Or do you mean simply software debugger from development tools?
Y
23:41
YL3AKC
T Want to upgrade unix haters GRiD wiki? add some ROM dumps and KBC ROM dump?
4 February 2024
TT
00:09
T Tron
Yesm i need to go back thru the last few weeks here and document on the wiki
00:09
who else needs accounts btw
Y
00:10
YL3AKC
In reply to this message
Looks like I can't edit page. Is it OK?
TT
00:25
T Tron
which page?
00:25
you should be able to
00:25
i can check ACLs
00:26
you should have global edit
00:26
Maybe I lame and can't find editing tool...
TT
00:27
T Tron
no
00:27
sorry about that
00:27
there was a acl issue
00:27
for all non-admin users
00:27
I fixed it
00:27
it was specific to some of the GRiD pages
00:27
(because the files in grid are private but there are page level overrides to make pages public... yada yada i'm a dumbass)
Y
00:27
YL3AKC
Looks better. Now I need to overcome laziness...
😁
TT
TT
00:28
T Tron
so much has happened here. exciting and cool things I want to write documentation for
00:28
and I have been so busy with work
00:28
and then the stupid apple goggles showed up and I have been wasting time with those
Y
00:29
YL3AKC
No, I can't overcome it right now! Instead of this, I'll give you link to CCPROM dumps...
00:30
In reply to this message
It's all because Conventional Memories is doing great things!
❀
A
TT
00:31
T Tron
the irony
πŸ‘
A
00:31
the grid is known for its unconventional memory πŸ™‚
Y
00:32
YL3AKC
In reply to this message
I would like to disagree because all memory is located in 1st MB address region...
TT
00:36
T Tron
bubble memory joke
😁
Y
Y
00:41
YL3AKC
In reply to this message
Can you tell more about tschack research on PAL16R4 UART control? How he understand internals managed to write verilog file?
TT
00:42
T Tron
tschack didn't do that
00:42
I did
00:42
I read the patent
Y
00:43
YL3AKC
Dan it! I misread text on wiki. Sorry for that!
TT
00:43
T Tron
no worries
00:43
the PAL's purpose is to enable clocking for synchronous / asynchronous serial
00:43
and enable / disable the differential line drivers
00:43
for different serial profiles
Y
00:43
YL3AKC
Yes, I have the same guess, but I am not strong in verilog.
TT
00:43
T Tron
the verilog might have bugs
Y
00:44
YL3AKC
So did you burn and tested this PAL on real compass? Is it working?
TT
00:44
T Tron
nope
00:44
anyway for emulator purposes
00:44
you really don't need this PAL
00:44
the outcomes are quite clear
Y
00:45
YL3AKC
Yes, but I didn't dive into UART part yet.
00:45
What do you think about other PALs? Is it possible to guess internals by looking on schematics?
TT
00:45
T Tron
i don't remember where it is
Y
00:46
YL3AKC
In reply to this message
There are another 6 PALs on mobo.
TT
00:48
T Tron
i mean
00:48
i am sure they just manage peripheral memory mapping
Y
00:49
YL3AKC
DMA, RAM regeneration, video stuff and some arbitration...
TT
00:49
T Tron
yea
Y
00:50
YL3AKC
Regarding 300135-02. From my knowledge iSelect are connected to address bus, but latches are set from data bus.

I can show you how it works from CCPROM code perspective.
00:53
T CPU writes into 4 address locations 0x00 or 0xFF

Maybe this can help you.
u
05:37
usernameak
In reply to this message
i mean, generally people use NMI either on hardware errors or to invoke kernel debugger
YL
18:51
Yuri S. Leskovec
In reply to this message
I saw "GRiD 286", but it seems to me that it is fake. This is nonsense, a remake. I found nothing in the magazines of those years, not a word from the developers themselves.
A
18:55
Armin
In reply to this message
Definitely not fake. I have seen 2 IRL.
One is in my personal collection right now.
18:57
All the info I have found is in this post I made. Including articles of the time.
https://forum.vcfed.org/index.php?threads/grid-286-vintage-laptop.1245410/post-1346500
19:06
I did not know about it.
A
19:20
Armin
Yes, I think only a small number got produced. And they might have decided to sell them on the European market after the import terifs in the US via one of GRiDs European partners. (I suspect philips in the Netherlands)
19:23
Do you happen to know more about the European partnerships? They sold GRiDcases under there own name (rebranded).
But in close cooperation with GRiD.
Example: Sagem in France sold Gridcases under the Sagem name in france.
But grid also sold some of the accessories developed by Sagem in the US under the GRiD name.
19:25
There were also many others.
Philips in the Netherlands,
AEG in Germany,
Zeus computers in Belgium,
Nokia in Finland,

Probably more.
Y
19:29
YL3AKC
Can you show some photos? Also inside photos.
?
A
19:38
Armin
Yes, give me a minute.
I have pictures of most of them.
For inside pictures I'll have to take some from my personal collection. But the inside is nothing special. Just a gridcase as if purchased from GRiD directly.
19:41
AEG Olyport 20 = Gridlite Plus
19:43
Philips PC 200 = GRiDcase EXP
19:44
Sagem MTP 16 = GRiDcase Plus
19:45
Nokia mikromikko-4-m310 = GRiDcase 1530 VGA
19:45
I could go on for a while, but you get the idea.
YL
20:01
Yuri S. Leskovec
In reply to this message
They licensed sales in Europe. There was also Victor Technologies
Y
20:03
YL3AKC
Keyboard looks like 1:1 from GRiDcase...
A
20:04
Armin
In reply to this message
Did victor license GRiD computers? or did they license the GRiD name? I havent seen a Victor branded GRiDcase yet, But I have seen pictures from a Grid 386PX which is a rebranded Victor V386PX
TT
20:04
T Tron
Fuckin
20:04
PC grid don’t count
20:04
😀😀😀
20:04
Good god I’m hungover
Y
20:05
YL3AKC
In reply to this message
Yes and no - in superposition!

That's the reason why I am interested in Compasses, but... Legendary GRiDcase, flown in space... It counts!
A
20:06
Armin
In reply to this message
Haha, sorry for the distraction from the Compass, here's another one, a white Compass 1101 rebranded by Puliver systems.
TT
20:07
T Tron
In reply to this message
No CCOS, no fun!
20:07
In reply to this message
Yup the doorbell one
A
20:07
Armin
In reply to this message
I don't think these were sold in retail, like the european Gridcase rebrands.
TT
20:07
T Tron
Correct
20:07
They were used to program apartment buzzers
20:07
It was an industrial vertical white label
20:08
Not a distribution
Y
20:08
YL3AKC
In reply to this message
No worries! GRiD is GRiD! Sometimes we need to look more wider... And be informed what happened with GRiD...
A
20:08
Armin
In reply to this message
interesting, didn't know that
YL
20:08
Yuri S. Leskovec
Most likely GRiD licensed its name. They were only sold in Europe. In France, the GRiDPAD 1900 tablet was sold under the name VICTOR.
TT
20:08
T Tron
In reply to this message
Grid ceased to exist in 1985 when they started making pc junk 😀😀
20:10
I give gridcase up to IV some credit
A
20:10
Armin
I still quite like the GRiDcase line, but I stopped collecting after they were accuired by Tandy and started to rebrand asian OEM machines
Y
20:10
YL3AKC
In reply to this message
They try to adopt market. With own software they had almost no chances to compete with big blue & clones.

BTW, what about wiki updates? CCPROM ROM dumps?
TT
20:10
T Tron
In reply to this message
I need a new job
20:11
All I do is drink and work
20:11
Y
20:11
YL3AKC
In reply to this message
One of the intersting things about GRiDcase: ROM sokets

I want to understand in details how it was implemented.
TT
20:11
T Tron
I’m gonna kill myself
20:11
Compass bath
20:11
(Joking)
20:12
In reply to this message
Need to look at the CCOS roms for them
20:12
The GC3 can boot CCOS
A
20:12
Armin
In reply to this message
both Gridcase and gridcase plus line can boot ccos
Y
20:13
YL3AKC
In reply to this message
200 Volts is not lethal and converter can't produce enough current. Only problem is AC inlet, but... You already have GFC thing, aren't you?
TT
20:13
T Tron
I was looking for a different grid picture and came across the ac power in bathtub joke from years ago
20:13
Yeah it was a humorous take on the β€œtoaster bath” meme
A
20:13
Armin
In reply to this message
are there CCOS 12XX romdumps I can make some.
TT
20:14
T Tron
πŸ”₯
KL
Y
❀
A
Y
20:14
YL3AKC
In reply to this message
And this is interesting. For example to try reverse CCOS with disassembly.
TT
20:14
T Tron
I need to spend a day dumping the pile
A
20:15
Armin
In reply to this message
Damnn, that's a nice collection
Y
20:15
YL3AKC
In reply to this message
If we are going to p0rn side here, then...
❀
KL
TT
20:15
In reply to this message
TT
20:16
T Tron
@ConventionalMemories I have a gridserver here
20:16
That’s the real prize
20:16
Networking all the fucking things
20:16
That’s really what I want to reverse engineer
20:16
Remote file systems!
πŸ‘
A
Y
20:16
YL3AKC
In reply to this message
This pic is part of presentation about GRiD file system reverse engineering.

Who watched presentation videos (in russian)? I like them because of techical details...
TT
20:17
T Tron
In reply to this message
If I could speak Russian…
A
20:17
Armin
In reply to this message
Wow that's awesome, I had a 1701 drive but send it to Klyball, because I didn't know of anyone else with a server.
Y
20:18
YL3AKC
In reply to this message
We can do it, but need to put a lot of enegry into it. ROM dumps. HiRes board pics. Lot of beeping. So far CM is on the beginning in this. 1101 so far.
TT
20:18
T Tron
I just need to take a couple weeks off work
Y
20:18
YL3AKC
In reply to this message
There is integrated translator into Telegram...
20:19
In reply to this message
What about this? Everything OK with your job?
TT
20:19
T Tron
Ah thanks. No it’s fine it’s just very busy and demanding
20:19
All my hobby projects are suffering
20:20
I used to be much better about making progress
Y
20:20
YL3AKC
One good thing about GRiD Central: we have part or CCPROM source code. This is really useful!
πŸ‘
TT
20:21
In reply to this message
Do it in small steps. One screw every weekend!
20:26
In reply to this message
Are these Compasses waiting for network connection?

Cameo appearance: SGI Onix, Alto/Star, HP...
20:27
In reply to this message
And...

Why you need Compass in bath? Reason "because I can!" don't count!
TT
20:28
T Tron
In reply to this message
What’s the highest priority device to look at?
A
20:28
Armin
With all the collections here, does anyone happen to have a Tempest 1537e, looking for someone to take pictures from the HDD caddy.
TT
20:29
T Tron
In reply to this message
Ha. I do but no caddy
A
20:30
Armin
In reply to this message
Same, have been mapping out the connector. and have found some of those military connectors, just need some more info to make one.
maybe @leskovezzz has one?
Y
20:30
YL3AKC
In reply to this message
I would call it "Right to repair" and "We found GRiD Compass mini on aliexpress!"

Well. I really want to understand hidden details in PALs and reproduce damaged things for Compass with modern components.

And understand every bit in software.
20:32
Also get more GRiD software from NASA for research.

Who know lucky owner of NASA GRiD? Any pics of custom interface for connection with Space Shuttle onboard systems?
TT
20:33
T Tron
That guy sucks
20:33
β€œPullin Gs”
20:33
Won’t do shit
20:33
Won’t dump anything
20:33
Thinks it devalues his funko pop
20:33
Hope he gets hit by a bus
20:33
His bubbles will rot
YL
20:34
Yuri S. Leskovec
I have a diagram with which you can connect an IDE drive
πŸ”₯
A
A
20:34
Armin
Don't really understand that mentality, as if that will actually devalue it.
Y
20:34
YL3AKC
In reply to this message
And we will make IT without his wish!
A
20:35
Armin
In reply to this message
Awesome, that would be great. have been looking for info on that for a couple of years.
already have the special connectors
Y
20:35
YL3AKC
In reply to this message
We are engineers with technical curiosity. Sometimes it is hard for us to understand collectors.
TT
20:37
T Tron
I don’t think it’s hard to understand: the guy is a dumbass
Y
20:40
YL3AKC
Guys, you know lot of other GRiD guys. What they do with non working GRiDs? Are anybody try to repair GRiDs? I wonder: how they are doing repairs for undocumented systems...
TT
20:41
T Tron
No I don’t know anyone decent
20:41
I do plenty of repairs on undocumented systems
20:41
That’s the entire point of the wiki
Y
20:42
YL3AKC
But in theory... Attempts to repair? How it happens?
TT
20:42
T Tron
There is no one flow chart
A
20:42
Armin
Apart from battery leakage and rifa caps. There don't seem to be many issues with the Compass
TT
20:42
T Tron
Check Power, check clocks, check bus activity etc etc
20:43
I had a compass with some bad ram
20:43
I hooked up an 8086 ICE
A
20:43
Armin
One of my 1101 had a couple of blown transistors and resistors in the psu but that's it.
Y
20:43
YL3AKC
And "change capacitors"! <= I hate this unscientific method!
A
20:43
Armin
In reply to this message
That's a useful thing to have.
TT
20:43
T Tron
In reply to this message
Won’t do you much good in a compass
20:44
There are like two big electrolytics in the PSU
20:44
That’s it
YL
20:44
Yuri S. Leskovec
❀
TT
πŸ”₯
A
Y
20:44
YL3AKC
And unknown territhory: Bubble memory repair
20:44
In reply to this message
Wow! Thank you very much!
TT
20:45
T Tron
In reply to this message
It’s not unknown, I need my dumbass friend to write it up
A
20:45
Armin
Yes, blind full recaps are really unnecessary. Maybe one some machines with known bad cap suppliers
TT
20:45
T Tron
You build the ref design
20:45
For the formatter from the Intel data sheet
20:45
On a breadboard
20:45
And use it to recondition the module
20:45
Then you put it back in, and run the media initialization routine
20:46
There’s probably a way to do this in situ but we don’t know how
A
20:46
Armin
In reply to this message
Awesome. No logic on there?
Y
20:46
YL3AKC
In reply to this message
Any substitutes for old intel components? Sense amplifier ICs?
TT
20:47
T Tron
The Intel stuff is β€œaround”
A
20:47
Armin
In reply to this message
Also, what drive was in there originally? I assume some Conner disk?
TT
20:47
T Tron
Mmmm Conner
20:47
Goopy disks
20:47
Drink the sludge
Y
20:48
YL3AKC
In reply to this message
Theoretically I can only build 7220 emulator for GRiD with modern MCU+SD card and leave other things in idle state. Is it useful?
A
20:48
Armin
In reply to this message
Yes, indeed, I 3d print new rubber seals and head bumpers for them in tpu
TT
20:49
T Tron
In reply to this message
Again, both dos and CCOS can access GRiDlink as if it is native storage
20:49
I don’t think there is anything to be gained from
20:49
1) floppy emulation
YL
20:49
Yuri S. Leskovec
Conner CP30104H most common
πŸ‘
A
TT
20:49
T Tron
2) bubble emulation
20:49
3) hard disk emulation
20:49
That GRiDlink wouldn’t solve
20:49
Maybe in a 1101/09 with broken bubbles where you don’t have the rest of the OS
20:50
But I’d much rather have limitless, abstractable network storage
20:50
Than a 384K bubble emulation
20:50
Bubbles can be fixed anyway
Y
20:50
YL3AKC
In reply to this message
But for these, who don't have network?
TT
20:51
T Tron
They all have network
YL
20:51
Yuri S. Leskovec
I soldered the IDE cable directly to these connectors. I tried with two 1537 models, they both worked
TT
20:51
T Tron
That’s what that PAL I wrote the Verilog for does
Y
20:51
YL3AKC
In reply to this message
Ahh, you mean network emulation in future?
TT
20:51
T Tron
Yes
A
20:52
Armin
In reply to this message
Awesome, thank you so much.
I assume the bios is limited in what disks it will accept?
❀
YL
Y
20:52
YL3AKC
In reply to this message
Definitely yes! How to make it happen? What I need to reverse in this field?
TT
20:52
T Tron
Connect 2 emulator instance together
Y
20:52
YL3AKC
In reply to this message
I think we can hack this and add CF memory...
TT
20:52
T Tron
Run GRiDshare on one
20:53
β€œExternal modem”
Y
20:53
YL3AKC
In reply to this message
And sniff serial traffic?
TT
20:53
T Tron
Run manager in the other β€œexternal modem”
20:53
Yes
20:53
Figure out the protocol
20:53
Gridlink is just the same protocol but over SDLC
Y
20:53
YL3AKC
In reply to this message
So, we need working GRID emulator?
TT
20:53
T Tron
With working set
20:53
**uart
A
20:54
Armin
In reply to this message
Yes definitely, I was successful in programming Vendor ID and model number on my CF cards, so shouldn't be too hard
YL
20:54
Yuri S. Leskovec
In reply to this message
Yes, only Conners disk
Y
20:54
YL3AKC
In reply to this message
Or patch GRiDcase BIOS...
TT
20:54
T Tron
Finest, goopiest disks
A
20:55
Armin
In reply to this message
No problem will reprogram cf cards as Conner brand
20:55
In reply to this message
Rather patch the CF card and leave Grid "stock"
Y
20:55
YL3AKC
In reply to this message
Before UART I want to get working GPiB emulation and virual GPiB storage... Sorry, can't move faster to finish things.
20:56
T what are your programming skills? Can you code something with C ?
TT
20:56
T Tron
Of course
Y
20:56
YL3AKC
In reply to this message
Yes, this is another good option.
YL
20:57
Yuri S. Leskovec
Maybe you can help me fix my GRiD Compass 1121. When I turn it on, there are dots on the screen.
TT
20:57
T Tron
In reply to this message
Bad ram
20:57
Assuming it hangs there?
Y
20:58
YL3AKC
In reply to this message
Heh! Few days ago I spoke about this with Armin...

I call it: Compass is in heaven now!
😁
A
YL
TT
20:58
T Tron
In reply to this message
???
Y
20:58
YL3AKC
In reply to this message
1121 and later have ROMs on separate PCB. I bet on pin connector between boards. CPU can execute ROM code and can clear video buffer.
TT
20:59
T Tron
One way or another it is pulling garbage off the bus, either from ram or rom
20:59
The one I had with bad ram did this
Y
20:59
YL3AKC
In reply to this message
You need guy with skills in soldering and middle range soldering equipment.

Are you ready for some beeping with multimeter? Theoreticaly it cam be easy pin connector cleanup.
TT
21:00
T Tron
Definitely check that connector first but my money is on ram
Y
21:01
YL3AKC
In reply to this message
Yes, other possibility: bad RAM. We are working on this with Armin!
TT
21:01
T Tron
Jesus I am hungover
21:01
🀬 😭
Y
21:02
YL3AKC
In reply to this message
How it looks? Almost complete RAM part for 1101 rev3
πŸ”₯
TT
YL
21:03
Yuri S. Leskovec
In reply to this message
I have such a person
Y
21:04
YL3AKC
In reply to this message
@Megabozyakorovka have unboxking video about 1129 and hade this problem. After minor cleaning 1129 start to work. But now it againg have problem.

Another problem, @Megabozyakorovka now working on Commodore 64 game and don't have time for 1129 repair.

I am close to him (Riga <=> Saint Peterburg), but border crossing is problem now.
YL
21:06
Yuri S. Leskovec
Try to take a look and I'll write what happens later.
Y
21:07
YL3AKC
In reply to this message
1) Надо ΠΏΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π³Ρ€Π΅Π±Ρ‘Π½ΠΊΡƒ. ΠœΠΎΠΆΠ΅Ρ‚ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΊΡ€Π΅Π±Π°Ρ‚ΡŒ.

2) Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Π΅ ΠΏΠ»Π°Ρ‚Ρ‹ Π² мСстС ΠΈ ΠΌΡƒΠ»Ρ‚ΠΈΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΏΡ€ΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ всС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹.

Π­Ρ‚ΠΎ Π±Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ просто (для мСня).

Если Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚, Ρ‚ΠΎ Π½Π°Π΄ΠΎ Ρ‡Π΅Π»ΠΎΠ²ΠΊΠ° с Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ паяния (Ρ‡Ρ‚ΠΎΠ± Π½Π΅ испортил ΠΏΠ»Π°Ρ‚Ρƒ) ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠ°ΡΡ‚ΡŒ ΠΌΠ°ΠΌΡƒ ΠΈ ΠΏΠ°ΠΏΡƒ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€Ρ‹.

Если это Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚, Ρ‚ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ микросхСмы памяти, ΠΊΠ°ΠΊ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» T
πŸ‘
YL
YL
21:07
Yuri S. Leskovec
Does anyone have the original caddy for the 1537?
Y
21:09
YL3AKC
In reply to this message
И Армин Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ схСмой 1101, которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π² ΠšΠΎΠΌΠΏΠ°ΡΠ°Ρ…. Π’ Ρ‚ΠΎΠΌ числС ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ диагностики ΠΈ Ρ€Π΅ΠΌΠΎΠ½Ρ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ нСдоступныС PAL микросхСмы с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ 300Ρ…Ρ…Ρ…-Ρ…Ρ… ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π“Π ΠΈΠ”.
21:10
Not mine, only pictures I could find.
21:10
Will make a pcb and 3D print a new caddy similar to this
YL
21:11
Yuri S. Leskovec
In fact, all Grids 1537 are military, and according to regulations they should have been destroyed after their service life expired. But someone didn't do their job well and now we have several of them.
Y
21:11
YL3AKC
In reply to this message
Can I make public (put into my GRiD folder) these pics?
YL
21:12
Yuri S. Leskovec
In reply to this message
This is my laptop!)
Y
21:12
YL3AKC
In reply to this message
1537. Is that one, who flew on Shuttle?
A
21:12
Armin
In reply to this message
Mine was unused, from surplus auction. Still has government tags all over it
Y
21:13
YL3AKC
In reply to this message
Lol! The Earth is so small!
A
21:13
Armin
In reply to this message
I think I have seen one in space in a picture. But I think they were mostly military
21:14
In reply to this message
Haha ohh well. That's the only thing I could find
21:14
In reply to this message
Not my pictures, have to ask @leskovezzz
YL
21:14
Yuri S. Leskovec
In reply to this message
No, there were others on the Shuttle. And this one was owned by the NSA and other spy organizations. I have a friend from NASA who has two of these.
TT
21:15
T Tron
21:16
In reply to this message
T Tron also know this guy...
TT
21:16
T Tron
Do I?
YL
Y
21:17
YL3AKC
In reply to this message
Guy with 2 NASA GRiDcase laptops. Pics album was available in RuGRiD yahoo group...
TT
21:18
T Tron
No the guy I was bitching about was the guy with the nasa compass
YL
21:18
Yuri S. Leskovec
In reply to this message
Matt?
Y
21:18
YL3AKC
In reply to this message
Ahh, Compass. It confuses me...
21:21
In reply to this message
Have no idea...
21:24
In reply to this message
These have custom interface board made by NASA to connect with Shuttle BUS. Really want to see this custom board and get software to understand more about Space Shuttle systems.
YL
21:26
Yuri S. Leskovec
I also spent a long time trying to connect a disc to my 1537s (I had two of them, both without caddies). And then I got lucky and found a 1537 with a caddy and a hard drive and all the adapters. The HDD did not work and apparently the military did not touch it! After receiving one, I fixed the other two. Thom Cherryhomes now has one of them.
A
21:30
Armin
In reply to this message
Great, does the latch on the HDD engage the microswitch inside the HDD bay?
YL
21:31
Yuri S. Leskovec
In reply to this message
Yes, I just lock the latch and everything works, even without the original caddy.
πŸ‘
A
A
21:33
Armin
In reply to this message
What motherboard is this based on 1530?
YL
21:33
Yuri S. Leskovec
In reply to this message
Very similar
πŸ‘
A
Y
21:34
YL3AKC
In reply to this message
Looks like from NASA!

ROMs looks different from what was available on Yahoo group.
YL
21:34
Yuri S. Leskovec
Y
21:35
YL3AKC
In reply to this message
Is it your or Matt's ?
A
21:35
Armin
So what is the difference between 1537 and 1537e?
YL
21:38
Yuri S. Leskovec
In reply to this message
"Matt Joyce" <matt@nycresistor.com>
21:41
In reply to this message
There are practically no differences. The prefix E stands for NSA Endorsed.
πŸ‘
A
Y
21:41
YL3AKC
In reply to this message
Maybe more EMI shielding?
YL
21:45
Yuri S. Leskovec
In reply to this message
At the end of the video both motherboards are shown, find the differences. I did not find)
πŸ‘
A
Y
21:46
YL3AKC
In reply to this message
Ok! You win! Going to watch video...
🍾
YL
A
21:50
Armin
One of the nice things on these is that the 386sx CPU is socketed. I have a clock doubled 486 in mine now
Y
21:50
YL3AKC
In reply to this message
Yes, I opened 🍷again. Looks like I will not work on GRiD secrets tonight...
A
21:50
Armin
Not many 386sx pc's with socketed cpu's
21:52
And scsi is also useful, although I haven't played around with that on the 1537e much
Y
21:52
YL3AKC
In reply to this message
Nice video! Thanks for your work!
❀
YL
21:52
In reply to this message
BlueSCSI getting more and more popular now...
A
21:53
Armin
In reply to this message
Yes, pretty cool especially with integrated scsi ethernet controller emulation on macintosh now. Hope to see more of that
YL
21:53
Yuri S. Leskovec
Has anyone played Flak Attack on Compass?
Y
21:54
YL3AKC
Heh! Youtube have new tehnop0rn for me. Usagi Electric and "Another boring topic"
A
21:54
Armin
In reply to this message
It keeps corrupting on my 1101. But haven't checked recently, might have copied wrong
Y
21:56
YL3AKC
In reply to this message
Not played game, but played with fonts...
YL
21:58
Yuri S. Leskovec
I have a large archive of programs on my hard drive 2101, but I don’t know how to make an image.
A
22:00
Armin
Either copy all to floppy or gotek.
Or use a mfm emulator that supports disk imaging
22:01
Any games beyond Gridman or flakattak?
YL
22:04
Yuri S. Leskovec
As far as I know, there are no other games. John Ellenby told a funny story about soldiers playing Flak Attack))
Y
22:04
YL3AKC
In reply to this message
Can you tell this story to us?
YL
22:05
Yuri S. Leskovec
I got the hard drive from a friend of his who worked in the IT department of an insurance company.
22:06
In reply to this message
It's in Bill Moggridge's book Interaction Design.
A
22:07
Armin
In reply to this message
Is there a lot of software? Or mostly documents etc. ?
TT
22:07
T Tron
You need to image that drive
πŸ‘
YL
YL
22:07
Yuri S. Leskovec
In reply to this message
Many programs, many documents, the disk is completely full
TT
22:08
T Tron
Can you die from a hangover? Lol
22:09
I woke up today
22:09
Phone glass, shattered
22:09
Credit card says $200 spent
22:09
πŸ˜΅β€πŸ’«
22:10
In reply to this message
Use the David gessewein MFM emulator
YL
22:11
Yuri S. Leskovec
ASAP
πŸ‘
A
TT
22:11
T Tron
When you get the device, I can walk you through it
πŸ‘
YL
22:11
If I haven’t succumbed to this hangover
Y
23:49
YL3AKC
T regarding U27, UART, PAL16R4...

Can you write test suite for validating your verilog code? Then make some magic to test "test suite" and validate with real desoldered PAL16R4 and compare results?
5 February 2024
A
02:13
Armin
Started mapping out U27, still needs work
Y
15:05
YL3AKC
In reply to this message
This explain a lot....

I am wondering why it is connected to GPiB BUS driver SC (sytem controller) pin... Will check with CCPROM code.
15:08
T Take a note that 80130 BAUT clock output have connection to UART PAL.
Y
18:52
YL3AKC
UART PAL connections. Still need to work on AM26L30 L32 line drivers and a more.
6 February 2024
Y
05:22
YL3AKC
T How to upload .PDF document tu wiki page? I want to add this document as citation source for serial mouse/keyboard and 1128-VP compass model.
Y
06:21
YL3AKC
More info for T regarding UART PAL16R4
Y
08:04
YL3AKC
T Can you desolder UART PAL and tinker with it using Arduino/Teensy or whatever. Idea is to feed various combination of inputs and observe results. Then it should be possible to generate correct Verilog code for PAL. And IC function secrets become known.

Or... I'll ask Armin about this if you can't.
Y
08:21
YL3AKC
@usernameak What do you thing about this UART PAL stuff?

I thing following code initialize Compass GPiB interface as System controller:

https://github.com/JDat/GRiD_Compass_CCPROM_source/blob/main/1101_rev3/CCPROM_Main.asm#L818
u
08:23
usernameak
¯⁠\⁠_⁠(⁠ツ⁠)⁠_⁠/⁠¯
08:23
no idea
Y
08:23
YL3AKC
When write to address [0xDFE0]:6 it initialize/change behavior of GPiB.

This happens only one time in CCPROM and nothing in GPiB/OsDisk Driver code.
08:26
SC pin on U9 (sn75162) must be high to control REN and IFC lines on GPiB bus. Looks like need to test with oscilloscope logic analyzer when Compass is running.
u
08:27
usernameak
REN is very much irrelevant on this machine
Y
08:29
YL3AKC
In reply to this message
Yes. According to logic analyzer trace dumps looks like REN not used in normal situation wit FDD and HDD.
Abnormal situation: custom software for CCOS/MS DOS and HP measurement quipment...

But IFC is important when initialize GPiB BUS.
7 February 2024
TT
19:16
T Tron
@ConventionalMemories @usernameak you guys want wiki accounts?
19:17
In reply to this message
you should be able to, go into a page
19:17
and click the button to add media
u
19:17
usernameak
In reply to this message
hmmmmmm
sure
TT
19:21
T Tron
DM me desired user name, "real name," email address, password
19:21
and please be nice to the wiki and don't repost stuff from the private areas for EpIc YoUtUbe ReDdIt PoInTs :)
19:22
the grid area I can make public
19:22
but still needs account to write to it, because quality
u
19:23
usernameak
In reply to this message
> EpIc YoUtUbe ReDdIt PoInTs
fuck i gagged on this
😁
TT
19:27
In reply to this message
DM'd you
23:07
Another video where GRiD mentioned.
23:07
Goes into my playlist!
23:09
I'll add @leskovezzz videos to playlist when get to my desktop computer.
❀
YL
9 February 2024
Y
16:48
YL3AKC
More or less correct UART PAL16R4 internal schematic. Sorry for some noodle logic. I'll fix it later.
16:48
16:49
Logisim evolution project for UART PAL16R4
16:50
Need to make arduino test rig and verify with real chip.
16:53
Ony question is with pin 11(!OE) polarity. Armin beeped it as High (connected to VCC), but according to datasheet pin 11 must be Low (GND).

Tests with real thing will show corectness.
16:54
@usernameak who said PAL chip reversing is impossible? πŸ˜‰
16:56
Another question is about address decoding. Could be different for registers. This also can be reversed from real thing.
Y
21:28
YL3AKC
T wake up bitch! We need to GriD!
😁
YL
13 February 2024
TT
19:15
T Tron
In reply to this message
Ugh, yes we do
19:15
i need to retire
19:15
finally provisioed usernameak
Y
19:18
YL3AKC
In reply to this message
Huh! You are alive! That's Good!
19:19
So. What about your skills in electronics? Can you make test rig for UART PAL research?
Y
20:07
YL3AKC
While waiting new info, programming simple console window using SDL2 as part of 8741A microcontroller emulator
TT
23:33
T Tron
In reply to this message
uart pal is quite simple
23:33
why all the interest πŸ™‚
Y
23:38
YL3AKC
Documentation and replication. Usually this PAL got damaged by leaked battery. Also it does GPiB stuff. So damaged UART PAL prevent booting from GPiB.

Also because this is easy, we can gain experience in reversing other PALs.
14 February 2024
Y
04:34
YL3AKC
One more reason for UART PAL reverse/verify. This is @leskovezzz's GRiD Compass 1100. Hope, together we can help him to repair it.
πŸ™
YL
u
04:35
usernameak
In reply to this message
1100 is the one with no built-in modem, right?
Y
04:37
YL3AKC
In reply to this message
Yes.
Y
16:19
YL3AKC
Why no? Just a side project for MSC-48 (keyboard controller) emulator GUI.
πŸ”₯
E
u
16:21
usernameak
In reply to this message
MCS-48*
16:21
(though it's actually UPI-41)
E
16:21
EXL
In reply to this message
Are you using SDL1 or SDL2?
Y
16:23
YL3AKC
In reply to this message
SDL2. Copy/paste with some modifications from XTulator source code. XTulator is also base for my unfinished GRiD compass emulator.
πŸ‘
E
16:24
In reply to this message
Hehe, Yes MCS-48...

UPI-41 is part of MCS-48 architecture/product line.
16:25
In reply to this message
Wanna this code?


BTW, it's real font from GRiD OS...
E
16:26
EXL
In reply to this message
I'll wait for the official release on GitHub :)
Y
16:29
YL3AKC
In reply to this message
If there be one... I am lazy and this is just my ugly experiments. I even not using SDL2 capabilities. Just copy pixel arrays here and there and then feed to SDL for drawing into window.

Not tested yet , but it should work with any size .BMP "font" files.

While I wrote this, file sync completed: https://grid.bs0dd.net/index.php?lang=eng&dir=tmp%2Fsdl_console
16 February 2024
Y
08:18
YL3AKC
@exlmoto continuing on my little side project...

Scrolling works!
πŸ‘
YL
E
17 February 2024
Y
16:21
YL3AKC
Keyboard controller emulator debugging and original KBC dump observation on emulator...
Y
17:37
YL3AKC
T Are you alive? Can we talk about Compass wiki and reBubbling?
TT
20:25
T Tron
Ca va?
Y
20:26
YL3AKC
In reply to this message
I made changes in wiki...
❀
TT
Y
20:42
YL3AKC
In reply to this message
But it sounds like you need set of rare bubble support ICs and need to desolder bubbles.

What about custom bootloader on GPiB floppy or app for GRiDos, who do the same? Or, in worst case, custom CCPROM to put into main board and reBubble them without resoldering?
TT
20:43
T Tron
Seems like a lot of time investment for something that is rarely needed
Y
20:44
YL3AKC
In reply to this message
GRiD is more worth than time because GRiD is for eternity!
21 February 2024
Y
13:27
YL3AKC
Question for Compass owners: What will happen if you see OS boot error on screen (CCOS not loaded) and press CODE + SHIFT + CTRL (on left side) and - (minus) (reset combination). Will Compass reboot?

I am looking in CCPROM source code and no reference to NMI interrupt. Trying to understand how this magical key combination reboots whole Compass...
Y
23:15
YL3AKC
How about some diving into microcontroller world?

I partially translated Compass keyboard firmware from ASM into C. Still have lot of work with unwinding goto spaghetti and other editing, but I am starting to see bug picture.
22 February 2024
TT
00:35
T Tron
In reply to this message
Reboots
00:36
Need to load the debuggler and see if that changes it
00:36
Yeah it doesn’t vector to reset once the machine is booted
00:36
Just in the prom
00:36
(Hi I am back in my lab for a few days)
00:37
Doesn’t do anything when the OS is up, but haven’t tried loading the debugger yet
Y
00:39
YL3AKC
In reply to this message
Well. I didn't saw anything in CCPROM code related to jump to reboot vector or anything regarding NMI. That's why I am asking.
00:41
By default all interrupts point to null routine (simply doing retf). INTs 0x20-0x27 points to correct routines like Keyboard GPiB, bubble etc.
00:43
In reply to this message
How you are planning to load debugger? What kind of debugger? It is program in CCOS or what?
TT
01:13
T Tron
Yea. GRiDebug
01:13
Docs should be on wiki
01:13
It starts up, you can view registers and stuff
01:14
You load a program, and it goes away
01:14
I bet doing keyboard NMI gets it back
Y
01:20
YL3AKC
In reply to this message
Question is...

When KBC activate NMI? I am trying to understand this (and other things) by looking in KBC source code.

I hope, I can translate it into C so good, that i can be uploaded to arduino things and emulate KBC... Could be used as replacement for dead i8741A, but...

... We already have KBC dump, so eBay and DIY programmer is also solution.
01:21
In reply to this message
Can you see whole interrupt vector table with GRiDebug ?
TT
01:21
T Tron
My personal thinking is we need a quick and dirty GRiDshare implementation to push bits to emulator and to real machines. That will speed up our hacking substantially
01:21
In reply to this message
I can check tonight - probably, it’s all in low memory right?
01:22
Emulating a gridshare volume should be a lot easier than all this GPIB fuckery
01:22
And provide a clean abstraction into a modern filesystem
Y
01:22
YL3AKC
In reply to this message
For file exchange between Compass and DOSish systems because DOSish files/filesystems can be read by more modern systems?
TT
01:22
T Tron
For file exchange between compass and <whatever we write the daemon for>
01:22
POSIX file I/O
Y
01:24
YL3AKC
To continue with my emulators, 1st thing I need to get it booting via GPiB and feed CCOS images and experiment with them. Without GPiB, UART emulation is useless. πŸ™
01:24
In reply to this message
Yes, whatever...
TT
01:24
T Tron
In reply to this message
Still don’t understand that second statement
01:24
Should be independent
01:24
With bubble and Common Code / gridmanager in ROM gpib should be unnecessary
Y
01:25
YL3AKC
In reply to this message
Wait a moment... Do you mean: boot CCPOS via "network"?
TT
01:25
T Tron
No, boot CCOS via bubble flyer emulation or GRiDrom
01:25
β€œStorageless”
01:25
Then use gridshare in manager for all storage I/O
01:26
So kind of in the middle
01:26
β€˜w path via β€œnetwork”
01:26
The rom is an overlay file system
Y
01:27
YL3AKC
In reply to this message
Flying bubble emulation works on my emulator. In read only mode. I need more bubble image dumps for tests. Right now I have only one bubble image with unknown CCPOS version. And my keyboard emulation not working correctly.
TT
01:29
T Tron
Read only should be good enough for what I am describing
Y
01:29
YL3AKC
In reply to this message
If not possible to boot correct CCOS version from image, can't run programs...

Emulator is still incomplete.
TT
01:29
T Tron
God I hate that fucking connector
01:30
I need to get my 8086 ICE back
01:30
Which one of you took it! (JK)
Y
01:30
YL3AKC
In reply to this message
Yes, but I need working bubble image with CCOS.
01:31
CCOS-tools not support 256 sector size. So, no luck here...
TT
01:32
T Tron
From December, British science museum
01:32
Y
01:32
YL3AKC
In reply to this message
Beauty!
01:32
// call from
// 0x216 (sub_146)
// 0x26a (sub_146)
// unknown parameter in accumulator
// unknown bank for R5. maybe bank0
uint8_t _28A_sub_translate_scan_code(uint8_t data) {
uint8_t a, R5;
R5 = 0xFC & (data << 2); // looze bits 7,6
a = (readRAM(0x29) >> 5) & 0x03; // 3 flags to bits 2,1,0
a = a | R5; // data on bits 7,6,5,4,3, flags on bits 3,2,1
// TEST0 pin looks like ignored
// bit0 on data ORs with PORT1 bit1
R5 = keyMatrix[a]; // bits 1,0 for modifier keys
if (bitRead(readRAM(0x29), bit7) != 0 ) { // if PORT1 bit0 set
R5 = 0x9F & R5 // clear/ignore bits 6,5
}
return R5;
}
01:35
// call from
// 0x026 (timer irq). bank1 for R5. accumulator = 0xFF
// 0x050 (main loop). bank1 for R5. accumulator = 0xFD
// 0x21e (sub_146). bank0 for R5???
// 0x274 (sub_146). bank0 for R5???
// unknown parameter in accumulator
// unknown bank for R5.
void _2A7_sub(uint8_t accumulator) {
// if bit0 in accumulator clear, activate NMI and return
if (bitRead(a, bit0) == 0) {
bitSet(PORT2, pin6); // activate NMI
return;
}

// if output buffer empty
// send a to CPU
// set bus status flags from R5
// activate interrupt
if ( !bitRead(busStatus, OBF)) {
bitClear(PORT2, pin3); // clear CPU IRQ pin
busOut = a; // send accumulator to CPU
busStatus = R5 & 0xF0; // set extra flags on bus status from R5
bitSet(PORT2, pin3); // activate CPU IRQ pin
return;
}

// otherwise:

RAM[0x27] = RAM[0x28];
if (RAM[0x28] == 0) {
RAM[0x28] = R5;
}
}
01:35
it sets NMI on KBC, but why and when?
26 February 2024
Y
13:39
YL3AKC
Another call to continue with GRiD emulator...
Y
15:43
YL3AKC
@usernameak @exlmoto what about few GOTOs in C code? I know it's bad style, but sometimes...
E
15:47
EXL
In reply to this message
its okay for some things like this

https://softwareengineering.stackexchange.com/a/155010
Y
15:47
YL3AKC
This start to make sense...
15:50
In reply to this message
Hmm, sounds a little bit of my case. I translated for assembly and unwind jumps, loops and conditions. In few places there is common code before exit. I don't want to repeat the same lines many times or make nuddle with IF. Instead I left few GOTOs.
u
16:16
usernameak
In reply to this message
it's coming from handwritten ASM, so not terrible
Y
16:24
YL3AKC
In reply to this message
"long routine" unwinding was... kinda fun...

Still need to improve C code. But now many things start to make sense.

For example: key codes are the same as in documentation, but CODE+ESC give different value.
CTRL is the same codes (norma, shift, code, shift+code) but with AND 0x9F
"Ctrl-c" = "c" AND 0x9F
or, in C style
"Ctrl-c" = "c" & 0x9F;
16:25
Modifier keys can be read from "control register" and key code can be read from data register (If we are looking from CCPROM perspective).
16:27
In reply to this message
Sometimes it doesn't look that handwritten.

I also found crazy (may crash) call/return stack manipulation. Unnacessary loop. Cumbersome comparing and other strange things.

But... If i compare 8741 code with AVR C results... Well.. AVR C compiler make much more crazy things.
16:31
There is one global variable in KBD (Register 7 bank1). It have state of whole program. And you can alter this state from CCPROM by sending correct command byte.
16:35
There is also strange pin, what is not connected to anything (As Armin beeped), but it toggles depending on code state. Could be reset (if Armin missed this pin beeping) or some kide of KBC program state output. Maybe for debugging to determine in what state KBC program is.
16:36
Also there is some kind of buffer for 3 keys in KBD RAM. And some unknown 3 byte structure buffer for something.
Y
19:45
YL3AKC
Looks like I figured out key matrix schematics from KBC dump...
19:46
@ConventionalMemories or T Need your help with hardware to verify correctness...
27 February 2024
Y
10:36
YL3AKC
What is magic combination on CCOS Code+Shift+ESC

What does this combination do according to documentation?
10:37
Looks like this combination activate NMI for CPU
Y
11:54
YL3AKC
New finding:
CPU can set 4 parametrs in KBC RAM:0x20-0x23);

Don't know yet what they do.
Could be related to keyboard repeat rate DMA watchdog timeout and misterious pin to PAL.
Y
12:39
YL3AKC
I observed following when Compass boots.

CCPROM write:
0x00: bit4 - clear PAL pin, bit0 - disable keyboard
0x18 - bit4 - set PAL pin, bit0 - disable keyboard
0x19 - bit4 - set PAL pin, bit0 - enable keyboard

CCOS when booting:
0x18 - bit4 - set PAL pin, bit0 - disable keyboard

Other bits unknow yet.

Could be useful for @usernameak if he continue with MAME GRiD emulator.
12:39
Looks like i need to translate CCPROM asm into C and dig into CpCatchAll function for more examples.
Y
13:41
YL3AKC
CpCatchAll function:
command: catchSysControl

This controls GPiB port behavior.

With this syscall you can enable or disable bit in "UART PAL". PAL controls GPiB buffer ICs.

This mean Compass can become GPiB bus system controller or just listener.

During booting This is activated by CCPROM init routine.
u
13:59
usernameak
In reply to this message
heh
so basically it allows some sort of p2p connection over gpib
Π’Π—
14:02
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
ATTENTION: due to technical work, bs0dd.net will be temporarily unavailable (for 1-3 hours). So don't be surprised that grid.bs0dd.net doesn't work.
Y
14:04
YL3AKC
In reply to this message
Thank you for info!
"No problem officer!"
14:13
In reply to this message
More No than yes...

Theoretically You can connect many Compasses to one Floppy. But it depent on software.

GPiB have 3 types of devices.
System controller - it sends control commands and give permission to other devices (HDD, FDD) to talk or listen.

Talker send data.
Listener receive data.

But... There can be only one System controller at the same time on GPiB.

System controller role can be transfered from one device (Compass) to another device (another compass).

Theoretically (if CCPOS software allow), Compass 1 (System controller) can give order to Compass to listen, and HDD talk.

Long story - short: Compass can work with HP measurement equipment according to GPiB standard. It's just question of software. Many Compasses can be networked via GPiB.

You don't need to to work with hardware directly. Necessary functions are already implemented in standart SysCalls.

And, hardware is ready for that.
14:17
CpCatchAll interaction with KBC
Y
15:06
YL3AKC
And here is one of bugs in KBC controller firmware:

    // could be bug
// GRiD programmer wanted to clear 12 byte buffer (3 byte struct 4 times)
// 0x14 - too much for buffer. will erase data in RAM[0x39]
// R4 must be 0xC
// no increment in R0 to advance RAM address
// ASM code
//PC:08E mov r4,014h ; bank 0 R4 = 0x14 (counter 0x14 times)
//PC:090 mov r0,02Bh ; bank 0 R0 = 0x2B
// .label_092:
//PC:092 mov @r0, 000h ; clear RAM 0x2B = 0
//PC:094 djnz r4, .label_092 ; repeat 0x14 times
//for (R4 = 0x14; R4 > 0; R4--) {
// writeRAM(0x00, 0x2B);
//}
// I'll do it correctly!
for (uint8_t i = 0x2B; i < 0x38; i++) {
writeRAM(0x00, i);
}
Y
16:46
YL3AKC
Nice one:

uint8_t sendData(uint8_t data, uint8_t flags) {

if ( data == 0xFE ) {
bitSet(PORT2, pinNMI);
return data;
}
blablabla
16:49
So if we got data 0xFE We don't send it to CPU. We rise NMI for CPU.
One way to get this code running, is to press CODE+SHIFT+ESC.

No idea about other ways to send this done.
16:50
Still no idea what CPU should do with NMI...
2 March 2024
Y
01:38
YL3AKC
CPU to KBC protocol:
Address A0 clear - data
Address A0 set - command byte
Commands:
bit 7 clear: change master states (See RAM[0x1F] aga R7 bank 1)
* bit 0 - disable/enable keyboard scanning
* bit 1 - WDT1 related
* bit 2 - WDT0 related
* bit 3 - related (long routine). repeat last key? Uset in CpCatchRepeat CCPROM
* bit 4 - state for pinPAL (DMA)
* bit 5 - not used
* bit 6 - not used if bit 7 - clear

bit 7 set, bit 6 clear: data will follow on data port
* bits 0-2 (0,1,2,3) - write into one of config parameter registers (located in RAM 0x20-0x23)
* 0 - related to WDT0, Not used in CCPROM for 1101.
* 1 - key repeat rate/delay between key press
* 2 - key repeat rate/delay between key press
* 3 - related to WDT1. Used in CCPROM code to set WDT1 timeout

KBC to CPU protocol:
* Will rise interrupt when KBC want send data to CPU.
* unknown parameters for bits 4-7 in bus status register
* 0xFF - WDT0 timeout occured
* 0xFE - mentioned in CCPROM. Not found in KBC code
* 0xFD - WDT1 timeout occured
* other - key scan code. status bits 5-7 probably provide modifier keys state
* can send remainig data from key buffer if they exist. Check/send on timer IRQ.
Mechanism not know yet.
7 March 2024
Y
17:54
YL3AKC
@usernameak here is the finding:

When @Megabozyakorovka wrote
ccos utils
and show on presentations research process, he mentioned, that root directory entry is hardcoded to sector 0x121 (289), but... it nor works with bubble image. For bubble image file system structures are the same, but hardcoded root directory entry sector is on 0x3FE (1022) and sector size is 256 bytes on bubble, while on floppy and hdd (GRiB) sector size is 512.

So ccos utils not working bith 256 sector size. I patched, got file list and SEG FAULT.

Long story short: OsBoot process is defining root directory entry sector number while executing in OsBoot RAM. Register DS is pointint to that data structure.

Then bootloader copy part of that struct to own location and use it.
17:55
Before 1st bootloader instruction executed:
[cpu] exec: Addr: 2000:0006, opcode: B8
[cpu] regs: AX: 0000, BX: 01CA, CX: 0000, DX: 0040
[cpu] regs: SI: 0700, DI: 2580, BP: 0134, SP: 012C
[cpu] regs: CS: 2000, DS: 02CA, ES: 0040, SS: 0298
02CA0: 06 00 00 20 08 00 3C FE 3E 01 98 02 00 01 FC 00
02CB0: 00 06 01 FD 03 FE 03 01 00 00 33 38 34 4B 2D 42
02CC0: 79 74 65 20 42 75 62 62 6C 65 20 20 47 52 69 44
02CD0: 20 50 4E 20 31 30 30 30 30 39 40 00 00 18 01 00
02CE0: CA 01 7E FE 00 00 00 07 00 20 09 00 00 00 00 01
02CF0: 00 00 FF 00 00 00 00 2A 00 00 00 00 00 00 00 00
02D00: 00 00 C4 02 D1 02 BE 02 FF FF 00 00 5B 5A 00 00
02D10: 00 00 D0 02 C8 02 BE 02 00 00 00 00 5B 5A 00 00
17:57
While bootloader load Secreen.Init~ScreenImage:

[cpu] exec: Addr: 2001:02FD, opcode: 9A
[cpu] regs: AX: 004B, BX: 0058, CX: 00FC, DX: 0000
[cpu] regs: SI: 02AB, DI: 0000, BP: 0E6F, SP: 0E6B
[cpu] regs: CS: 2001, DS: 2080, ES: 2080, SS: 2080
20800: 00 00 28 01 98 02 FF FF 7E FE 02 05 00 00 00 00
20810: B1 0A 80 20 3E 01 98 02 FF FF FF FF FF FF FF FF
20820: FF FF 00 01 FC 00 00 06 01 FD 03 FE 03 01 00 00
20830: 33 38 34 4B 2D 42 79 74 65 20 42 75 62 62 6C 65
20840: 20 20 47 52 69 44 20 50 4E 20 31 30 30 30 30 39
20850: 40 00 00 18 01 00 42 75 B1 01 00 00 0A 00 00 00
20860: B1 01 00 00 11 50 72 6F 67 72 61 6D 73 7E 73 75
20870: 62 6A 65 63 74 7E 00 00 00 00 00 00 00 00 00 00
u
17:57
usernameak
In reply to this message
isn't that info passed by the device driver? (in case with bubble, hardcoded right into it?)
Y
17:58
YL3AKC
In reply to this message
One or other way, but it is hardcoded in CCPROM.
17:59
I can't find anything in bubble image.
17:59
I'll research more carefully what is doing OsBoot process.
18:00
It definetly setting some kind of data in RAM before passing control to bootloader.
u
18:00
usernameak
IIRC it's hardcoded specifically for bubble
18:00
and floppy passes it around through GPIB
Y
18:00
YL3AKC
So, I thing it's time to dive deep into
ccos utlis
and try to add support for bubble image.
Π’Π—
18:02
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
In reply to this message
This is good
It will be possible to include this version for GRiDISK Commander
Y
18:03
YL3AKC
In reply to this message
You need to add another button named bubble image... maybe...
18:04
Or something like that.
16 March 2024
KL
22:47
Kirill Leyfer
In reply to this message
Hi guys

Sorry for absence

Got distracted with the game

Now I'm properly burnt out to the ashes and ready for some distractions

So, I got 1129 disassembled

Got its motherboard at hand for anyone interested

And ready to take some photos

What exactly are you interested in? If you wanna reverse-engineer it, I got the bad news, the motherboard is multilayered(
Y
22:49
YL3AKC
In reply to this message
Nice to see you again!

I am working on keyboard controller dump right now.
22:50
Want to see C equivalent of dumped code?
KL
22:50
Kirill Leyfer
Btw guys quick 1129 question

Should pins in these 2 be interconnected 1 to 1?
22:50
In reply to this message
Show it!
22:51
In reply to this message
My 1129 doesn't boot, so I got a flying bubble connector tested for connectivity and it does not look good
22:51
In reply to this message
Y
22:51
YL3AKC
In reply to this message
SYNCing now... Stand by!
KL
22:51
Kirill Leyfer
Those are the pins I found no connection between pins and holes nearby.
Y
22:52
YL3AKC
In reply to this message
Looks like they are parallel. Look on PCB more careful, photos does not show all details.
22:52
In reply to this message
Lol! Nice AD from Dr. Web
KL
22:53
Kirill Leyfer
In reply to this message
I'll take a better picture, but it's multilayered, so it won't clear much
Y
22:53
YL3AKC
In reply to this message
No need for PIC.
22:55
Decompiler from MSC-48 asm to C, and latest C equivalent code.

https://grid.bs0dd.net/index.php?lang=eng&dir=Keyboard_controller%2Ftmp
πŸ”₯
KL
KL
22:55
Kirill Leyfer
In reply to this message
So... Should I try soldering some patch wire between pins without connectivity?
22:55
Looks like they're parallel, but who knows
Y
22:56
YL3AKC
In reply to this message
It is better to connect flying bubble and mainboard and do beeping between boards.
KL
22:57
Kirill Leyfer
In reply to this message
If only I had the slightest idea what connects where
Y
22:57
YL3AKC
In reply to this message
You can beep to find out what is parallel. If it looks visualy paralel but not beeping, that you most probably have problem with contact and need to repair it.
KL
22:57
Kirill Leyfer
No service manual available, so...
22:58
In reply to this message
That's what I did, and 55/60 pins are parallel
Y
22:58
YL3AKC
In reply to this message
Yes, no service manual, because Armin is away...
22:58
In reply to this message
What about remaining 5 pins?
KL
22:59
Kirill Leyfer
In reply to this message
The rest 5 are not though... 3 of them are in places where the connector is damaged the mostIt's really tempting to solder those together
Y
22:59
YL3AKC
Sadly, but I have no fuel (Wine) today. Maybe I ned to dring coffe and try to deive deper on your notes...
KL
22:59
Kirill Leyfer
In reply to this message
Does he have one?
23:00
In reply to this message
That's fine :)
Y
23:00
YL3AKC
In reply to this message
No, but he started to draw 1101 schematics by beeping every connection...
KL
23:00
Kirill Leyfer
Say, does anyone have a (working) 1129 motherboard laying around?

Just wanna ask you to test some connections
Y
23:02
YL3AKC
In reply to this message
Maybe T Tron can help...
23:05
Let me check detailed photos of flying bubble for a minute...
KL
23:06
Kirill Leyfer
In reply to this message
I can take some if you need
Y
23:06
YL3AKC
All try to understand what does 7406 and 74ALS573...
23:07
In reply to this message
It would be nice. I think I have photos only from flying bubble 3 (1139)
KL
23:09
Some connections I've traced so far
23:09
23:10
Sorry, gotta go, it's 1 am here :)
Y
23:10
YL3AKC
OK. We can continue later.
23:15
In reply to this message
I'll try to draw schematics from your notes.
17 March 2024
Y
00:03
YL3AKC
Beginning of process...
00:05
"If there is no Service Manual for GRiD, we should make one!" (C)
Y
01:09
YL3AKC
Repairing Kirill's 1129, also really helps to repair Yuri's 1121...
Y
01:25
YL3AKC
@Megabozyakorovka So far something like this...
πŸ‘
KL
01:28
We can work more on Connector.

Need to find +5V, GND and +12V connections.
Need to find more connections to inverter gates and 74ALS573

74ALS573 outputs most probably goes to EEPROM address lines, to U12 (PAL16L8) and address decoder U21.
01:29
We need to find time when we can make video call and work together in realtime. Similar how we work with Armin (@ConventionalMemories)
01:31
On March 17. I have time 10:00 - 15:00 GMT. My local time 12:00 - 17:00. Kirill's local time up to 13:00 - 18:00.

We can make Video chat right here in group.
πŸ‘
KL
01:31
Or... Other alternatives...
01:32
I assume research will take 30 - 60 minutes.
KL
05:59
Kirill Leyfer
In reply to this message
10:00-15:00 GMT sounds good!

I've nothing else to do, and grid internals occupy the only table in my apartment anyway :)

So we can video chat. Sorry, no wine this time, gotta keep my already shaking hands at least somewhat steady for this :)
KL
11:30
Kirill Leyfer
@YL3AKC ping me when ready
Y
12:19
YL3AKC
Dam it! I missed! Just woke up.
12:20
I am setting up 2nd computer. Will be ready after 10 minutes
12:22
In reply to this message
Ping?
GRiD Compass started voice chat
12:33
@exlmoto , you also can join, if you want!
12:47
In reply to this message
Yes, no wine, because I nee to go to work after 15:00 GMT(17:00 my, 18:00 your)
KL
12:51
Kirill Leyfer
In reply to this message
Sorry kinda in the middle of something
12:54
12:54
12:54
KL
13:12
Kirill Leyfer
Time for some slavic pagan traditions :))

Alright, gonna make some coffee and I'm ready :)
u
13:13
usernameak
In reply to this message
> slavic
specifically east slavic ;)
Π’Π—
13:14
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
hah
KL
13:15
Kirill Leyfer
In reply to this message
No bliny in Poland today?
u
13:15
usernameak
In reply to this message
nah :(
Y
13:15
YL3AKC
In reply to this message
Mmmm, tasty!
KL
13:16
Kirill Leyfer
In reply to this message
Sad( you can still make some!
u
13:16
usernameak
In reply to this message
heh true
Π’Π—
13:16
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
In reply to this message
I confirm
Y
13:17
YL3AKC
@usernameak @Blue_Screen_0f_Death Nothing to do? Join with voice!
Π’Π—
13:20
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
In reply to this message
How to say...
Y
13:20
YL3AKC
In reply to this message
Good! Good! You are ready, almost...
KL
13:21
Kirill Leyfer
In reply to this message
Elf Telegram client when @exlmoto
u
13:22
usernameak
In reply to this message
the official MTProto implementation doesn't support big-endian systems... and writing own... meh
Π’Π—
13:22
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
In reply to this message
I don't have a fkn cable for either charging or USB(
KL
13:23
Kirill Leyfer
In reply to this message
No palm client either, then
Π’Π—
13:24
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
In reply to this message
Is ARM Big-Endian?
u
13:24
usernameak
In reply to this message
arm is configurable
13:24
these motorolas are big-endian
Π’Π—
13:24
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
hmm
Y
13:26
YL3AKC
Palm is next iteration of GRiD. One for GRiD programmers, is also Founder of Palm Inc., and later Handspring Inc.
Π’Π—
13:26
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
In reply to this message
So...
13:26
In reply to this message
Y
13:27
YL3AKC
@usernameak also found that GRiD windowing syscalls presend in Palm OS. Naming are the same
u
13:27
usernameak
In reply to this message
yeah, pretty much
13:28
obviously except the stuff that is either not in palm or not in grid
13:28
:)
13:28
In reply to this message
GUI toolkit is similar too
Y
15:15
YL3AKC
πŸ”₯
KL
GRiD Compass started voice chat (10970 seconds)
19 March 2024
Y
06:04
YL3AKC
Forgot to add Hi-res version for schematics... Here it goes
KL
09:09
Kirill Leyfer
Thanks!

Got a new debugging procedure for my 1129 in mind

To recap: there's a 60 pin header and 60 holes nearby. 55 of those 60 holes are connected to corresponding pins on the header. 5 are not. I suspect we should solder them together

So what we do to be sure that we need to solder them together

1. We know some pins designations on the connector
2. We know some of them do not connect to the holes near the pin header
3. We connect the logic analyzer (or oscilloscope) to the hole and to the corresponding pin on the header
4. We watch

If there's a signal on the hole, but no signal on the header then we know that something is wrong
09:16
Like if there's no "Latch Enable" on pin 47 of the header, but there's one on the corresponding hole (connected to nothing) then, well, something is not right
Y
09:28
YL3AKC
I spoke with Yuri about 1121 repair. There was different aproach. Using Oscilloscope and/or logic analyzer.
Y
09:31
YL3AKC
Y
YL3AKC 10.02.2024 07:35:46
Π‘Ρ‚Ρ€Π°Π½Π½ΠΎ... НС Π²ΠΈΠΆΡƒ Π½Π° 1121 микросхСму 8284... Волько Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Y1 Π½Π° 15 ΠœΠ“Ρ†. На Π½Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° зСмля, 5 Π²ΠΎΠ»ΡŒΡ‚, Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ 15 ΠœΠ“Ρ† ΠΈ ΠΎΠ΄Π½Π° Π½ΠΎΠ³Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ...
09:31
ПослС исслСдованию частотоы тактирования, Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΎΠ½Π° Π½Π° ΠΏΠΈΠ½Π°Ρ… "большСй Ρ‚Ρ€ΠΎΠΉΠΊΠΈ" 8086, 8087, 80130.

Π­Ρ‚ΠΎ ΠΏΠΈΠ½Ρ‹ 19. Π’Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ 5 ΠœΠ“Ρ†.
09:31
ПослС этого ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ тватися Π½Π° ΠΏΠΈΠ½Π°Ρ… 21 (это reset).
09:31
Всё врСмя (Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°) Π½Π° reset (ΠΏΠΈΠ½ 21) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ логичСскоС ноль.

ЛогичСскоС 1 появится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ врСмя послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
09:31
ПослС reset ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° линию ALE. Она гСнСрируСтся миросхСмой 8288 (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡˆΠΈΠ½Ρ‹) Π½Π° 5. Π½ΠΎΠ³Π΅. Π’Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ нСрСгулярныС импулсы. ЛогичСскоС 1 - систСма Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с внСшними устойствами. ЛогичСскоС 0 - процСссор Ρ…ΠΎΡ‡Π΅Ρ‚ обратится ΠΊ памяти ΠΈ Π΄Π°Π΅Ρ‚ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ адрСса. ПослС этого Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ адрСс Π΄ΠΎΠ»ΠΆΠ΅Π½ появится Π½Π° Π½ΠΎΠ³Π°Ρ… ΠŸΠ—Π£.
09:31
МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ сразу Π½Π°Ρ‡Π°Ρ‚ΡŒ с с сигнала ALE, Π½ΠΎ я описал всю Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… нСисправностСй.
09:31
И это всё Π΅Ρ‰Π΅ Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ процСссором.
09:31
ПослС этих ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈ flying bubble.
Y
09:32
YL3AKC
One of the stories is need to check that CPu fetch data from bus and try to execute them.
09:32
I need read CPU documentation for more specific resting.
09:34
Should be S0,S1,S2 pin testing with logic analyzer to understand CPu state.
09:35
page 4. Pins S0-S2
09:36
Also need to test ALE (LE on 3 buffers on flying bubble).
KL
09:37
Kirill Leyfer
In reply to this message
Aren't they connected all together?
09:37
So testing one of those should be enough
Y
09:37
YL3AKC
But all this need to be syncronized (clocked) on logic analyzer with CLK pin.
09:38
In reply to this message
Theoretically they must be connected together directly. I hope ALE not goes thru GRiD ASIC chip.
KL
09:39
Kirill Leyfer
In reply to this message
That's gonna be challenging, flying bubble uses its own clock as you remember

My bet is that it's not synced with the CPU clock
Y
09:39
YL3AKC
Also there is another idea... Little simpler, but lot of wires.
09:40
Need to capture CS, RD and Address pins on EEPROM.
09:40
Then we can convert address pines to hex and understand what is read from EEPROM by CPU.
09:41
Anyway, lot of probing.
09:41
Not everything can be done with simple beeping.
09:41
Even worse, we don't now few pin designation.
KL
09:42
Kirill Leyfer
Lots of wires indeed

Let's start simple and just make sure we get SOMETHING on the suspicious pins (43,47,52,...)
Y
09:42
YL3AKC
In reply to this message
Beeping/continuity check?
KL
09:43
Kirill Leyfer
I was thinking oscilloscope probing on the powered machine
Y
09:44
YL3AKC
In reply to this message
Page 8, Figure 4b - some explanation about how address buffers work. In flying bubble case could be minor differences, but idea is the same.
09:44
In reply to this message
Yes, byt wee need to make sens on what we see on scope.
09:45
Signals from CPU to bubble must be probed on bubble boars. Signals from bubble to CPU must be probed on main board. Etc.
09:47
At least we need to understand signal direction to measure it.
KL
09:47
Kirill Leyfer
In reply to this message
True. I just want to start simple. If we see nothing on those pins then there's no point in analyzing signals from CPU
Y
09:48
YL3AKC
There can be helpful 2 trace oscilloscope. With 1st trace measure signals on main board (for example close to CPU) and with 2nd trace near destination/receiver.
09:49
In reply to this message
Yes, also part of that can be done with beeping resistance measurement using multimeter.
KL
09:49
Kirill Leyfer
In reply to this message
Mine has 2 channels. Probably fine
Y
09:49
YL3AKC
In reply to this message
Not just fine, but excellent!
09:50
Also it it recomended to watch CuriousMarc series about HP9825T and realtime clock module repair. That is hardcore techoporn, but some small details from his bideo are useful.
09:51
For example strange logic signal level observation on scope.
KL
09:52
Kirill Leyfer
In reply to this message
Alright, gonna probe around soon. Hope not to cook my brain today at work so I'm able to hold probes this evening
Y
09:52
YL3AKC
Strange logic level can be result of partially corroded/shorted trace or bad contact.
KL
09:53
Kirill Leyfer
In reply to this message
Thanks, I'll read it. Probably a good idea to read all datasheet
Y
09:53
YL3AKC
In reply to this message
Start wit small warm up. Check CLK on main and bubble boards to make feel more comfortable with all these signals and scope setup magic.
πŸ‘
KL
09:54
In reply to this message
No need to read whole satasheet. There timing tables and timing tolerance diagrams. Useful for development, but not for debugging in general case.
09:55
OPcode tables also not that important now.
09:55
I would say pages 1-13 can be kinda useful.
KL
09:58
Kirill Leyfer
In reply to this message
Ok, just gonna read interesting parts (and parts I can understand 😁)
Y
09:58
YL3AKC
S0-S3 on CPU and address lines on EEPROM are useful source of information.
09:58
Yes, this is hard to read document.
09:59
I am also not understand all parts.
KL
20:45
Kirill Leyfer
In reply to this message
Cooked my brain today, can't hold probes :)
Y
20:49
YL3AKC
In reply to this message
Same here.... No time till Friday.
KL
21:07
Kirill Leyfer
All I can hold now is a beer glass
21:07
Or two
21 March 2024
Y
20:49
YL3AKC
Heh, marathon is kinda over.
20:49
Let's see... Never dringek Carlsberg beer.
20:50
Let's thy it and find out is it really "probably the best beer in the world"
20:51
And, of course, doing again KBC firmware code from beginning... 🫀
20:53
Nah! Sorry, Denmark, but Carlsberg beer - is total cheap shit!
20:57
Time for commercial break!
21:00
@usernameak @Megabozyakorovka you are programmers...
21:01
Can you rewrite this route to look more nice?
21:01
#define bitRead(value, bit) (((value) >> (bit)) & 0x01)

uint8_t label_28A(uint8_t data) {
uint8_t tmp1, tmp2;
// key matrix result to bits 7,6,5,4,3,2
tmp2 = (data << 2) & 0xFC;

// Code and Shift keys to bits 1,0
    tmp1 = RAM[0x29] >> 5;
tmp1 = (tmp1 & 0x03) | tmp2;

tmp2 = page3Array[tmp1]; // get code from lookup table


// check for Ctrl key pressed
    if ( bitRead(RAM[0x29], 7) != 0 ) {
tmp2 &= 0x9F; // ctrl key pressed, do masking
}

return tmp2;
}
21:06
@exlmoto ??? Are you programmer?
21:09
I don't like variables
tmp1
and
tmp2
E
21:12
EXL
In reply to this message
Use ChatGPT for such tasks but be sure to check the result :)
E
21:12
EXL
g
gpt.zor.gg - GPT4o & DALL-E 3 21.03.2024 21:10:21
Certainly! We can clean up this function by defining a helper macro for bitRead, use meaningful variable names, and streamline the code for better readability. Here's the refactored version of the function:

// Define a macro for reading a specific bit position
#define BIT_READ(value, bit) (((value) >> (bit)) & 0x01)

uint8_t decodeKeyMatrix(uint8_t data) {
uint8_t modifiedData, ctrlMaskedData;
uint8_t keyMatrixResult = (data << 2) & 0xFC; // Left shift and mask for key matrix result to bits 7,6,5,4,3,2
uint8_t codeShiftKeys = (RAM[0x29] >> 5) & 0x03; // Right shift and mask for Code and Shift keys to bits 1,0

// Combine key matrix result with code and shift keys
modifiedData = codeShiftKeys | keyMatrixResult;

// Retrieve the code from the lookup table using modified data
ctrlMaskedData = page3Array[modifiedData];

// Check if the Ctrl key is pressed
if (BIT_READ(RAM[0x29], 7)) {
// Ctrl key is pressed, apply masking
ctrlMaskedData &= 0x9F;
}

return ctrlMaskedData;
}


In this version:

- The bitRead macro is properly named as BIT_READ following the convention for macro names.
- Variables tmp1 and tmp2 are renamed to codeShiftKeys and modifiedData, respectively, to describe their roles.
- Added comments that clearly explain each step.
- The code has been formatted with proper indentation and spacing for increased legibility.

Make sure when integrating this refactored code you define BIT_READ only once, and that RAM and page3Array are defined and accessible within the scope of this function. Also, ensure that the code conforms to any specific coding standards or constraints you may have in your project.
Y
21:13
YL3AKC
In reply to this message
Lol! Cheater! 😁
E
21:14
EXL
Hehe this is a good time saving tool
Y
21:15
YL3AKC
I tried to feed AI with complex code containig zillion of gotos. He failed to rewind (rewrite without gotos) after 15th line.
21:15
In reply to this message
Mostly he is too dumb to solve (my?) problems. But... sometimes he is doing well.
23 March 2024
KL
19:58
Kirill Leyfer
Alright, got my boards on life diagnostics support :)
πŸ‘
YL
20:02
Got fancy new multimeter

It actually beeps)

(Could you imagine the lengths some manufacturers go to reduce the cost??? My previous multimeter didn't have a freaking 0.0001$ piezo!)
KL
20:19
Kirill Leyfer
Let's hope I didn't break it more than it already was
Y
20:19
YL3AKC
Wow!
20:20
What's next?
KL
20:27
Kirill Leyfer
In reply to this message
Compare signal on main board and on bubble board
Y
20:27
YL3AKC
With oscilloscope?
KL
20:27
Kirill Leyfer
That's pin 43. Nothing on bubble board, some action on main board (yellow)
Y
20:27
YL3AKC
Even on main this looks weird.
KL
20:30
Kirill Leyfer
Pin 47
20:30
In reply to this message
Yellow is main. Looks nice
Y
20:31
YL3AKC
Main looks OK. No contact on flying bubble?
20:32
What da hell is 43 and 47?
20:32
Opening schematic
KL
20:33
Kirill Leyfer
Pin 52
Y
20:33
YL3AKC
43 - INT... Must change when Bubble controller is doing something as response to CPU commands.
KL
20:34
Kirill Leyfer
In reply to this message
That's what I think
Y
20:34
YL3AKC
47 - latch address for reading EEPROM and read/write BCM
KL
20:34
Kirill Leyfer
In reply to this message
As you remember, my suspicion is that I should connect main to bubble
Y
20:34
YL3AKC
52 is unknown according to schematics...
KL
20:35
Kirill Leyfer
In reply to this message
52 goes through invertor (twice) and... Yes, not much else to say
Y
20:35
YL3AKC
Check 54 - RD (CPU read data from EEPROM or BCM)
KL
20:36
Kirill Leyfer
In reply to this message
It is connected between main and bubble
20:36
Let me see if I can connect scope probe directly to the board....
Y
20:37
YL3AKC
Than, if possible record traces with logic analyzer.

CS and RD pins on EEPROM, and 8 data pins on EEPORM.

Need lot of cables and, maybe clipping connectors.
20:39
Also, maybe you can quickly measure frequency on Kyeboard controller. Pin 2 and 3 on KBC.
20:39
There should be 5 MHz. I am just guessing.
20:43
Another problem: I opened wine... So I am useless in GRiD diagnostics today...
KL
20:43
Kirill Leyfer
In reply to this message
There's some signal
20:43
Y
20:44
YL3AKC
In reply to this message
This is on bubble board connector or on EEPROM pin 22?
20:45
Anyway it looks good. CPU is trying to read something from somewhere...
KL
20:45
Kirill Leyfer
In reply to this message
Pin 54 on bubble board connector
20:45
In reply to this message
That one
20:45
But there's a catch
20:46
Y
20:47
YL3AKC
Could be something like this: CPU try to read many times, than give up or execute random shit and stuck in loop.
20:48
What CPU is doing can be understood only when connect logic analyzer.
KL
20:49
Kirill Leyfer
In reply to this message
Even or odd?
20:50
In reply to this message
Should we try to connect Latch Enable first?

It's not connected right now as you can see
Y
20:51
YL3AKC
In reply to this message
Doesn't matter. We will figure data from ROM dump after logic analyzer trace capture.
KL
20:51
Kirill Leyfer
There's no Latch Enable signal on bubble board now
Y
20:51
YL3AKC
In reply to this message
Both LE and CS on EEPROM.
20:51
But Data lines... Well, near CPU. So we can see if there is any bit wrong.
20:52
ODD or EVEN? One capture with ODD, another capture with EVEN.
20:52
But...
KL
20:52
Kirill Leyfer
I doubt we get anything meaningful out of this without LE working
Y
20:52
YL3AKC
Maybe you can put on hold until you get IC clips from aliexprees. Sometyhing like this:
KL
20:53
Kirill Leyfer
In reply to this message
I have those
20:54
In reply to this message
That's... Really cool!
20:54
Less soldering and quicker change.
20:55
Also... You can... try to compare data bits on EEPROM out and on CPU with oscilloscope.
20:56
Boring, but... If sometimes they mach, than DATA bit is good.
KL
20:59
Kirill Leyfer
First tell me

We have a known issue on the bubble board. No LE signal

Should we try to fix this first?
Y
20:59
YL3AKC
Wow! No LE?
KL
20:59
Kirill Leyfer
In reply to this message
As you can see
Y
20:59
YL3AKC
Definitely must be fixed.
21:00
You already traced it on bubble board. Now you need to trace it on main board.
21:01
No LE - no party!

No LE - addresses can't be latches on EEPROMs and CPU can't get correct instructions from EEPROMs.
21:02
But... Sorry. Today I can also suggest unimportant bullshit.
21:03
So, take my suggestions with some critics... I can be wrong in 5-10% on my texts.
KL
21:07
Kirill Leyfer
Holy shit
21:07
Connected broken traces
21:08
And now I have something on the screen!
Y
21:08
YL3AKC
How many damaged traces was there?
21:08
Only one?
KL
21:08
Kirill Leyfer
Pin 43, 47 and 52
Y
21:08
YL3AKC
Wow! Not that bad...
KL
21:08
Kirill Leyfer
Also 20 and 28, but those are n/c my suspicion is
21:09
In reply to this message
So didn't connect those
Y
21:09
YL3AKC
@Megabozyakorovka I have bad news for you: @leskovezzz want that you repair his 1121 with similar problem... [-:<>
πŸ‘
YL
KL
21:12
Kirill Leyfer
In reply to this message
I already have 1101 with faulty bubbles) (not mine) :)
Y
21:12
YL3AKC
In reply to this message
1101 and faulty bubbles is different story.
KL
21:12
Kirill Leyfer
In reply to this message
It doesn't even boot via external floppy?
Y
21:14
YL3AKC
In reply to this message
PAL16R4 damaged or corroded wire between U27 PAL16R4 pin 17 and GPiB driver U9 pin 1. Corroded wires on PAL16R4 inputs.
21:15
Low resolution
KL
21:15
Kirill Leyfer
In reply to this message
So you guys want me just to solder some jump wires?
Y
21:16
YL3AKC
High resolution
21:16
In reply to this message
Maybe this can help.
KL
21:17
Kirill Leyfer
Alright

Unfortunately I don't have external floppy drive, so no way to test anything if bubbles are faulty
Y
21:17
YL3AKC
In reply to this message
But... It is better to beep before connection them.
KL
21:17
Kirill Leyfer
Oh wait, I have ROM burner/dumper
Y
21:17
YL3AKC
In reply to this message
Next step: GPiB FDD emulator... LOL!
KL
21:17
Kirill Leyfer
We can try to boot the device from ROM
21:18
In reply to this message
Yep
u
21:18
usernameak
In reply to this message
we have no idea how to make a proper ROM fs image
KL
21:18
Kirill Leyfer
In reply to this message
Do we have some dumps?
u
21:18
usernameak
dunno
Y
21:18
YL3AKC
In reply to this message
Boot 112x ?

Well we can craft EEPROM image... Some trial and error, but should work.
u
21:18
usernameak
and it would definitely require a different bootloader
Y
21:19
YL3AKC
For 1101 we can write something from scratch in ASM for basic tests.
KL
21:20
Kirill Leyfer
Ok, let's focus on the fastest and easiest way of checking if device boots
21:21
@leskovezzz can you send me floppy drive along with 1121? If you have one
YL
21:22
Yuri S. Leskovec
Π£ мСня Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…Π°Ρ€Π΄ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ
Y
21:23
YL3AKC
In reply to this message
Ehh! This also need to be fixed...
KL
21:27
Kirill Leyfer
In reply to this message
I'll understand if you wouldn't trust our post to handle it :)
YL
21:30
Yuri S. Leskovec
Π­Ρ‚ΠΎ вСдь ТСсткий диск, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто Ссли ΡƒΠΏΠ°Π΄Π΅Ρ‚ Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΊΠΎΠ½Π΅Ρ†) Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ Π²Π΅Π·Π΅Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΠ· БША ΠΏΡ€ΠΈΠ΅Ρ…Π°Π» Ρ†Π΅Π»Ρ‹ΠΉ)
KL
21:30
Kirill Leyfer
So the next best option is...


The floppy emulator

I'll order @YL3AKC 's board design and in 2-3 weeks it'll be ready

I already have all the ICs, so...
Y
21:30
YL3AKC
In reply to this message
Sounds like a reason to not send... :(
KL
21:31
Kirill Leyfer
Π”Π°, don't even ΠΏΠ°Ρ€ΡŒΡΡ
YL
21:31
Yuri S. Leskovec
ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π·ΡΡ‚ΡŒ ваши ΠΏΡƒΠ·Ρ‹Ρ€ΠΈ, Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΌΠΎΠΉ 1139 ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ… CCOS
KL
21:31
Kirill Leyfer
In reply to this message
НСнСнС, это опасно, ΠΏΡƒΠ·Ρ‹Ρ€ΠΈ Π½Π΅ взаимозамСняСмы
Y
21:31
YL3AKC
In reply to this message
Wow!

Can you send me files? I want to double check with version what I have on my computer.
21:34
In reply to this message
Also there are another alternatives...

1) Write EEPROM code, who can format bubble.

2) More complex from hardware point of view, but no need to invent wheel and code anything:

https://wiki.unix-haters.org/doku.php?id=grid:rebubbling
KL
21:36
Kirill Leyfer
In reply to this message
Don't have it, wanted to ask you for the up-to-date version :)
Y
21:39
YL3AKC
In reply to this message
Stand-by... Generating...
21:43
Try this to upload on JLC PCB and or PCB Way for verifying corectness.
21:45
Low resolution art
21:46
Only problem with this PCB: no protection against 5V chips and 3.3V Raspberry Pi.
21:46
Should I need to fix this before you order PCBs?
KL
21:48
Kirill Leyfer
In reply to this message
Would 5v chips even work with signals from 3.3v pi?
Y
21:48
YL3AKC
In reply to this message
They will work, but they can give too much juice for 3.3 RPi...
21:49
I don't want to damage your RPi...
KL
21:49
Kirill Leyfer
In reply to this message
Well, protection is always a good idea

You want to add some resistors?
Y
21:50
YL3AKC
Yes, I want, but this will take some time to redraw PCB.
21:50
Maybe you can wait...
KL
21:50
Kirill Leyfer
No hurry, take your time
Y
21:51
YL3AKC
OK. I'll do it! But not on this evening....
21:51
Maybe tomorrow...
KL
21:52
Kirill Leyfer
Thank you!
Y
21:53
YL3AKC
No, no, thank you!
21:53
I am only theoretical engineer... You are practical engineer...
KL
21:57
Kirill Leyfer
I'm just a guy who wanted to make a YouTube video)))

And got sucked in all this grid stuff :)
Y
21:58
YL3AKC
In reply to this message
Yes, this is problem... :-D
22:02
Anyway! Congrats with repairing 1129!
22:03
We need toast for this!
KL
22:30
Kirill Leyfer
In reply to this message
Thanks! Gonna celebrate with some wine tomorrow :)
KL
23:48
Kirill Leyfer
In reply to this message
23:49
In reply to this message
Also, could you please check it's compatible with this connector? It's weird 2.16mm pitch
Π’Π—
23:55
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
I have my own winning atmosphere Now. Bought a CEBus cable for early Motorolas. Now I can flash customs not only on RAZRs
πŸ”₯
E
KL
24 March 2024
KL
12:40
Kirill Leyfer
My first successful attempt of soldering with enameled copper hairs)
Y
12:51
YL3AKC
In reply to this message
Could be more easy and clean if you solder from other side...
KL
12:55
Kirill Leyfer
In reply to this message
Other side looks so clean

Didn't want to ruin it

You see how I love to suffer, huh? That's what perfectionism does to you
Y
12:57
YL3AKC
Ok, ok! I just look on this from practical POV...

Anyway, noice job!
Π’Π—
12:59
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
F-k perfectionism
Y
13:00
YL3AKC
In reply to this message
Wash flux away with IPA and use transparent nail polish to fix wire.
KL
13:01
Kirill Leyfer
In reply to this message
Agree

I soldered wrong pins

Now I'm gonna just solder everything with usual wires from the other side as @YL3AKC suggested
Π’Π—
13:02
Владислав Π—Π°Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈΠ½
In reply to this message
photo over a year
the calculator works fine after such a rude solution
13:03
But when something accidentally breaks in β€œnew” device, it’s a pity
13:03
KL
13:38
Kirill Leyfer
@YL3AKC should we desolder ROM chips and dump bios ROM while we are at it?
13:39
Not so pretty now, but it works
13:39
In reply to this message
I got desoldering gun now

And some spare ic sockets (although I'm not sure we got room for those)
Y
14:11
YL3AKC
In reply to this message
Nice idea.
14:11
What if... ROM chips have much more than CCPROM?
u
14:11
usernameak
In reply to this message
how they can have more than their size? :)
Y
14:12
YL3AKC
Double check ROM IC names and read 3 times to be shure that contents readed correctly.
14:12
In reply to this message
Need to look under GRiD labels.
u
14:12
usernameak
btw the chips are interleaved
Y
14:12
YL3AKC
What if We have something in C000:0000
u
14:12
usernameak
In reply to this message
because they're two 8-bit chips connected to 16-bit data bus
Y
14:12
YL3AKC
In reply to this message
No problems with this...
u
14:13
usernameak
In reply to this message
yeah i just noted that
Y
Y
16:03
YL3AKC
Looks like I got somewhere with KBC firmware.

Removed all MCS48 registers and substituted them with correct local variables. Unwound all GOTOs. Rewrote while and for loops. Made parse buffer structure.

It had internal watchdog to poke CPU. I have DMA watchdog to poke CPU. I also can rise non masked interrupt (NMI) to CPU. CPU can disable keyboard scan, watchdog, DMA watchdog. Enable DMA to PAL IC.

Still lot of questions regarding key parsing and key sending. It uses 5 unknown bits while parsing every key code. Uses "keyboard repeat rate" and "keyboard delay" counters.

https://grid.bs0dd.net/Keyboard_controller/tmp/Compass_KBC_edit.c

https://grid.bs0dd.net/index.php?lang=eng&dir=Keyboard_controller%2Ftmp
16:05
Time to move forward. Arduino clone for KBC. RPi GPiB shield. KBC emulator code for GRiD emulator. GPiB and serial port implementation for GRiD emulator. CCPROM source code for 1129 and 1139, etc
Y
18:34
YL3AKC
In da process... GPiB shield for RPi...
πŸ”₯
KL
18:47
In reply to this message
It is compatible. But... Why 36/50 pin?
KL
18:52
Kirill Leyfer
In reply to this message
Thanks! 36/50? Hm. maybe the datasheet is common for all version of this connector

got this datasheet for this connector here: https://www.chipdip.ru/product/cenr-24f
18:53
whew, that was harder to desolder than I thought, but here it is

Can someone check if my ROM dump is correct?
Y
18:53
YL3AKC
2.16 mm is OK. My footprint is the same.
KL
18:53
Kirill Leyfer
In reply to this message
great!
Y
18:53
YL3AKC
Mounting holes 3.2mm OK
KL
18:53
Kirill Leyfer
In reply to this message
dumped these as AM27C64
Y
18:54
YL3AKC
Only problem. contact drill dimaeter: 0.9 vs 0.81...
18:54
Could be tight ad young girls ...
KL
18:54
Kirill Leyfer
πŸ˜‚
18:55
I promise to be gentle
Y
18:55
YL3AKC
In reply to this message
OK. No surprise on IC names... They are really 8K x 8 bit...
KL
18:57
Kirill Leyfer
In reply to this message
I scrolled through HEX dump, can see some ascii strings like "partnumber" etc, so I hope it's OK
Y
18:58
YL3AKC
OK... Stoping on PCG and going to merge dump...
u
18:59
usernameak
In reply to this message
the even one looks suspicious
u
19:01
usernameak
it seems like there's a good bunch of bitflips
KL
19:01
Kirill Leyfer
In reply to this message
yeah, I get some verify errors, too...
19:01
the thing is, it got really short legs, so I can barely shove it into the reader
19:01
I'll try to come up with something to fix that
u
19:02
usernameak
btbbld
Y
19:03
YL3AKC
hmm
19:03
F0 vs 70
19:03
FC vs 7C
19:03
C0 vs 40
u
19:04
usernameak
lel
Y
19:04
YL3AKC
bit7 on EVEN ROM is stuch high?
u
19:04
usernameak
In reply to this message
this has bit0 flipped
Y
19:05
YL3AKC
Need to write ROM splitter
19:05
and restore 1129 dump from what was made 5 years ago...
KL
19:05
Kirill Leyfer
the other thing is I can't find it's part number
Y
19:05
YL3AKC
In reply to this message
bit0 or bit7?
u
19:05
usernameak
0x60 vs 0x61
KL
19:06
Kirill Leyfer
so I selected AM27c64 out of luck
u
19:06
usernameak
odd rom seems good
19:06
even seems to have a buncha bitflips
Y
19:06
YL3AKC
grid_compass_1129_bios.bin                                                      
0000 3F00: EA 43 10 01 FC EA 42 22 01 FC EA 62 00 11 FF EA .C....B" ...b....
0000 3F10: CD 01 98 02 EA 0C 00 C9 FE EA 3C 20 01 FC EA 5B ........ ..< ...[
0000 3F20: 20 01 FC EA AC 20 01 FC EA B6 1F 01 FC EA D6 1F .... .. ........
0000 3F30: 01 FC EA F4 1F 01 FC EA 22 20 01 FC EA 96 21 01 ........ " ....!.
0000 3F40: FC EA F5 21 01 FC EA C0 21 01 FC EA 50 1B 01 FC ...!.... !...P...
0000 3F50: EA 7C 1B 01 FC EA A6 1B 01 FC EA C7 1B 01 FC EA .|...... ........
0000 3F60: 03 1D 01 FC EA 39 1D 01 FC EA 6A 1D 01 FC EA 8B .....9.. ..j.....
0000 3F70: 1D 01 FC EA CC 1D 01 FC EA 51 18 01 FC EA 8F 18 ........ .Q......
0000 3F80: 01 FC EA DA 18 01 FC EA AE 19 01 FC EA E1 19 01 ........ ........
0000 3F90: FC EA 30 1A 01 FC EA 72 1A 01 FC EA 22 0F 01 FC ..0....r ...."...
0000 3FA0: EA ED 10 01 FC EA 3E 11 01 FC EA D9 11 01 FC EA ......>. ........
0000 3FB0: 74 12 01 FC EA 87 12 01 FC EA 5C 13 01 FC EA B9 t....... ..\.....
0000 3FC0: 13 01 FC EA 50 14 01 FC EA 90 14 01 FC EA D9 14 ....P... ........
0000 3FD0: 01 FC EA 14 15 01 FC EA 44 1E 01 FC EA 58 1E 01 ........ D....X..
0000 3FE0: FC EA 90 1E 01 FC EA C0 1E 01 FC EA F5 1E 01 FC ........ ........
0000 3FF0: EA A0 23 01 FC 40 00 40 01 F0 00 64 00 01 00 00 ..#..@.@ ...d....
0000 4000:
AM27C64_DIP28_1129_merged.BIN
0000 3F00: EA 42 10 00 FC EA 42 22 01 7C EA 62 00 10 FF EA .B....B" .|.b....
0000 3F10: CD 01 98 02 EA 0C 00 49 FE 6A 3C 20 01 7C 6A 5A .......I .j< .|jZ
0000 3F20: 20 01 FC EA AC 20 01 FC EA B6 1E 01 FC EA D6 1E .... .. ........
0000 3F30: 01 FC EA F4 1F 01 FC 6A 22 20 01 FC EA 96 21 01 .......j " ....!.
0000 3F40: FC EA F4 21 01 FC EA C0 20 01 7C EA 50 1B 00 FC ...!.... .|.P...
0000 3F50: EA 7C 1B 01 FC 6A A6 1B 01 7C 6A 47 1B 01 FC 6A .|...j.. .|jG...j
0000 3F60: 02 1C 01 FC EA 39 1D 00 FC EA 6A 1C 00 FC 6A 8B .....9.. ..j...j.
0000 3F70: 1D 01 FC EA 4C 1D 01 FC 6A 51 18 01 7C 6A 0F 18 ....L... jQ..|j..
0000 3F80: 00 FC EA DA 18 00 7C EA AE 19 01 FC EA E1 18 01 ......|. ........
0000 3F90: FC 6A 30 1A 01 7C 6A 72 1A 01 7C 6A 22 0F 01 7C .j0..|jr ..|j"..|
0000 3FA0: EA EC 10 00 FC EA 3E 10 00 FC EA 58 10 00 FC EA ......>. ...X....
0000 3FB0: 74 12 01 7C EA 07 12 00 FC 6A 5C 13 01 7C 6A 38 t..|.... .j\..|j8
0000 3FC0: 12 00 FC EA 50 14 00 FC 68 90 14 01 7C EA D8 14 ....P... h...|...
0000 3FD0: 01 7C 6A 14 15 01 FC 6A 44 1E 01 7C 6A 58 1E 01 .|j....j D..|jX..
0000 3FE0: FC EA 90 1E 01 FC EA 40 1E 01 FC EA F4 1E 01 7C .......@ .......|
0000 3FF0: EA A0 23 01 FC 40 00 40 01 70 00 64 00 01 00 00 ..#..@.@ .p.d....
0000 4000:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Arrow keys move F find RET next difference ESC quit T move top β”‚
β”‚C ASCII/EBCDIC E edit file G goto position Q quit B move bottom β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
KL
19:06
Kirill Leyfer
In reply to this message
I still haven't read and verified it succesfully, it finds ~500 errors each time
Y
19:06
YL3AKC
Use full screen to see it correctly
19:08
Cold bot coe unaffected, but... There are lot of errors...
19:08
Maybe you need to purchase 2 new ROM ICs and burn them...
u
19:09
usernameak
In reply to this message
either the rom is corrupted or it's a reading process issue
Y
19:10
YL3AKC
Hmm... Problems both on ODD and EVEN ROMs...
19:11
and mostly bit0 and bit7 affected...
KL
19:12
Kirill Leyfer
In reply to this message
by bet is #1, chip got really short legs, so I put it in IC socket and inserted socket into the reader. So might be a bad contact on some pins
19:12
I'll try to solder longer pins to short legs and try again
Y
19:13
YL3AKC
grid_compass_1129_bios.bin                                                      
0000 21F0: D0 8A 04 83 C6 02 24 F0 0A C2 26 88 05 47 E2 E2 ......$. ..&..G..
0000 2200: 5D 1F CA 04 00 1E 55 8B EC B8 F4 DF 8E D8 C6 06 ].....U. ........
0000 2210: 1D 00 01 8A 5E 08 B7 00 2E 8A 9F 44 1F B9 88 13 ....^... ...D....
0000 2220: 8A 07 24 0F 3C 0F E1 F8 5D 1F CA 02 00 1E B8 EC ..$.<... ].......
0000 2230: DF 8E D8 C6 06 06 00 C0 C6 06 02 00 7F C6 06 06 ........ ........
0000 2240: 00 03 C6 06 06 00 00 B8 04 00 50 9A 22 20 01 FC ........ ..P." ..
0000 2250: 1F C3 B8 98 02 8E C0 BB AC 01 CB 2E 8E 1E 30 1F ........ ......0.
0000 2260: B8 30 00 A3 89 02 B8 6C FF A3 8B 02 B0 00 E8 F3 .0.....l ........
0000 2270: FC B8 FC DF 8E C0 26 A0 00 00 B0 18 A2 4C 02 E8 ......&. .....L..
0000 2280: E2 FC C7 06 48 02 05 19 B0 02 50 B8 01 FC 50 B8 ....H... ..P...P.
0000 2290: 23 23 50 9A F4 1F 01 FC B0 02 50 50 9A B6 1F 01 ##P..... ..PP....
0000 22A0: FC C7 06 40 02 8D 1F C7 06 42 02 01 FC C7 06 44 ...@.... .B.....D
0000 22B0: 02 8D 1F C7 06 46 02 01 FC C7 06 4A 02 00 00 C6 .....F.. ...J....
0000 22C0: 06 CD 01 EA C7 06 CE 01 11 00 EB 31 00 00 00 00 ........ ...1....
0000 22D0: 33 33 30 30 30 30 34 34 32 31 30 39 2D 2D 31 31 33000044 2109--11
0000 22E0: 37 37 20 3C 3C 2D 2D 20 70 70 61 61 72 72 74 74 77 <<-- ppaarrtt
0000 22F0: 20 6E 6E 75 75 6D 6D 62 62 65 65 72 72 C7 06 D0 nnuummb beerr...
AM27C64_DIP28_1129_merged.BIN
0000 21F0: D0 0A 04 03 46 02 24 70 0A 42 26 08 05 47 62 62 ....F.$p .B&..Gbb
0000 2200: 5C 1E CA 04 00 1E 54 0A 6C 38 F4 5E 8E 58 46 06 \.....T. l8.^.XF.
0000 2210: 1C 00 00 0A 5E 08 36 00 2E 0A 1F 44 1F 39 08 13 ....^.6. ...D.9..
0000 2220: 0A 06 24 0E 3C 0E E0 F8 5C 1E 4A 02 00 1E B8 6C ..$.<... \.J....l
0000 2230: DE 0E 58 C6 06 06 00 40 06 06 02 00 7E 46 06 06 ..X....@ ....~F..
0000 2240: 00 02 C6 06 06 00 00 B8 04 00 50 1A 22 20 00 7C ........ ..P." .|
0000 2250: 1E 42 B8 18 02 0E C0 3B 2C 01 4A 2E 0E 1E 30 1F .B.....; ,.J...0.
0000 2260: 38 30 00 22 88 02 B8 6C 7E 22 0A 02 30 00 E8 72 80."...l ~"..0..r
0000 2270: 7C 38 7C 5F 0E 40 26 20 00 00 30 18 22 4C 02 68 |8|_.@& ..0."L.h
0000 2280: E2 7C C6 06 48 02 04 18 30 02 50 38 00 7C 50 38 .|..H... 0.P8.|P8
0000 2290: 22 22 50 1A 74 1F 00 7C 30 02 50 50 1A 36 1F 01 ""P.t..| 0.PP.6..
0000 22A0: 7C 44 06 40 00 0C 1C 46 06 42 02 00 FC 46 06 44 |D.@...F .B...F.D
0000 22B0: 02 0C 1E 46 06 46 02 01 3C 47 06 4A 02 00 00 46 ...F.F.. <G.J...F
0000 22C0: 06 CC 00 EA C6 06 CE 00 10 00 6A 31 00 00 00 00 ........ ..j1....
0000 22D0: 32 33 30 30 30 30 34 34 32 31 30 39 2D 2D 31 31 23000044 2109--11
0000 22E0: 36 36 20 3C 3C 2C 2C 20 70 70 60 61 72 72 74 74 66 <<,, pp`arrtt
0000 22F0: 20 6E 6E 75 75 6D 6C 62 62 65 65 72 32 47 06 50 nnuumlb beer2G.P
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Arrow keys move F find RET next difference ESC quit T move top β”‚
β”‚C ASCII/EBCDIC E edit file G goto position Q quit B move bottom β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
19:13
Part number...
19:15
And... Yesterday 1129 booted... With so many errors on ROM it will not boot...
19:15
Could be contact problem while reading in programmer.....
u
19:21
usernameak
In reply to this message
even if it could, the message would look like B`nnnt bnnt: Rt.r`fd lddhtl drpnp
19:21
19:21
i wouldn't assume that the chip died overnight =)
Y
19:23
YL3AKC
Yes, almost impossible... Static discharge.... No!