4 October 2025
Y
21:17
YL3AKC
Y
22:26
YL3AKC
In reply to this message
Just saw your post.

I reversed like 50% aka part with mostly digital ICs and 2 unknown analog ICs by Racal-Vadik.

Basically it contains DACS to play PCM aka .kinda wav and 8055 interface + 8041 microcontroller.

What exactly you want to know?
22:28
GRiD 1101 schematics including modem. Not finished yet because of laziness and lost some motivation...
V
22:55
Valera K.
In reply to this message
I would like to partially replicate the modem board so that I can at least beep from my compass)
Y
22:56
YL3AKC
In reply to this message
Beep? What do you mean? Beep into phone line?
V
22:56
Valera K.
Beep like PC after POST
22:56
Not now, maybe next year. But I consider it a mistake that I can't get my laptop to play Korobeiniki (Коробейники, как это транслитом то будет, сложна)
Y
22:57
YL3AKC
There is rumour that NASA removed modem and put custom interface board in modem socket to make Compass talk with Space shuttle onboard network...

You know that AP101/S and HAL/S from klabs...
22:59
In reply to this message
Ahh... DAC stuff... Not that hard to replicate. If you get original DAC ICs you can solder beeper... Or you can replicate DAC part with 74HC or even with modern microcontroller.
23:00
And... Yes, for a log time I got 🍷and I am wasting my time by watching Naked Gun movie...
🔥
KL
KL
23:06
Kirill Leyfer
First tests are promising

Somehow I've ordered the correct lengths of pogo pins to compensate for bubble module pins height difference on the left and on the right

Alright, time to learn FreeCAD
23:06
Y
23:09
YL3AKC
In reply to this message
FreeCAD or KiCAD?
V
23:09
Valera K.
In reply to this message
Enjoy! Sorry for the bothering you. It's not urgent right now, I'll come back to this idea sometime in the future
Y
23:10
YL3AKC
In reply to this message
No, no it's OK. DAC part is simple.
KL
23:12
Kirill Leyfer
In reply to this message
FreeCAD (to model 3d printed custom socket)
Y
23:13
YL3AKC
Ahh, OK.
KL
23:13
Kirill Leyfer
Looks parallel-ish to me

Nothing that some spring loaded pins can't fix
🔥
V
Y
23:14
YL3AKC
In reply to this message
Looks like you need some 3D printed plastic frame for bubble and that's all.
V
23:16
Valera K.
@Megabozyakorovka Кирилл, сохранились ли у тебя записи стримов по GPiB эмулятору? Я начинаю погружаться в эту задачу. И не понимаю, откуда берутся те или иные магические чиселки.

Например, G2101H_identify_response:

0x00, 0x02, 0xF8, 0x01, 0xD0, 0x02, 0x01, 0x20, 0x01, 0x21, 0x01, 0x01, 0x00, 0x00, 0x34, 0x38,
0x20, 0x54, 0x50, 0x49, 0x20, 0x44, 0x53, 0x20, 0x44, 0x44, 0x20, 0x46, 0x4C, 0x4F, 0x50, 0x50,
0x59, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x30, 0x32, 0x33, 0x37, 0x2D, 0x30, 0x30, 0x00, 0x02,
0x09, 0x00, 0x02, 0x00


Или разные цифорки в G210x_DAV_Callback...

Я не хочу у тебя спрашивать, потому что столько лет прошло, поди вспомни, откуда что взялось. А вот стрим был бы полезен. Если нет, то нет
23:16
Пока беглый обзор. После изучения даташитов и логов многие вещи, думаю, прояснятся. Но было бы проще пойти "за ручку"
Y
23:18
YL3AKC
In reply to this message
Part of twitch streams are here...
V
23:18
Valera K.
Блин, совсем забыл про плейлист. Искал во вкладке "трансляции", но там нету их
23:19
6 часов стримов? Штош, буду смотреть фоном под чтения
23:19
Спасибо!
Y
23:19
YL3AKC
In reply to this message
23:20
🤷‍♂️
u
23:20
usernameak
In reply to this message
эти данные были сняты с логанализатора на реальном приводе
23:20
структура их где-то у меня была, но там по факту чисто геометрия диска и всякое такое
V
23:23
Valera K.
In reply to this message
Понял. Если найдёшь, скинь сюда структуру, пожалуйста. В коде, в архиве не вижу описаний
23:24
Или это описано в эмуляторе MAME? Я могу тогда сам глянуть
KL
23:26
Kirill Leyfer
In reply to this message
Yep
23:26
In reply to this message
I can't recall anything, sorry( it's been a long time

Maybe some of that was taken from @usernameak software emulator
V
23:28
Valera K.
Excellent. It won't be boring!
23:29
some info here might be outdated, but the structure is there
Y
23:29
YL3AKC
I think I saw somewhere in GRiD source code this structure written in Pl/M
V
23:30
Valera K.
Perfect. Thanks!
23:30
Just a little more my attention to gridrepository.org and I'm off to bed. The GPiB emulator has been waiting for so many years, and it can wait a little longer
u
23:31
usernameak
In reply to this message
there are also more commands than listed here
23:31
e.g. there's a low-level format cmd, that's used by Initialize Media
23:32
and connection is actually used in some rare occasions (e.g. when you have multiple drives)
V
23:33
Valera K.
How similar GPiB to SCSI?
u
23:33
usernameak
not really?
Y
23:33
YL3AKC
In reply to this message
Not similar at all.
V
23:33
Valera K.
Ну вдруг!
Y
23:34
YL3AKC
In reply to this message
Пиздят...
u
23:35
usernameak
one thing
23:35
partitioned HDDs' MBRs use LBA
not CHS
👀
V
Y
23:36
YL3AKC
In reply to this message
Aha! LBA is another invention by GRiD corp.
u
23:36
usernameak
nope
23:36
it was used on SCSI drives before then
Y
23:37
YL3AKC
SCSI wasn't later?
u
23:37
usernameak
nah
23:38
SASI maybe
not sure about actual SCSI though
Y
23:38
YL3AKC
OK, need to refresh my history knowledge..
5 October 2025
V
11:35
Valera K.
In reply to this message
In addition to the website, I also set up an FTP server. You can connect to it anonymously. Port 21, TLS is optional.
11:35
I've granted access to recordings to those who wish. The archive isn't my property, and I can't manage it alone.
11:35
Perhaps, so that the link doesn't get lost, we can pin the message?
YL3AKC pinned this message
YL3AKC pinned this message
KL
12:32
Kirill Leyfer
Got a basic hang of a FreeCAD
12:32
Y
12:33
YL3AKC
Nice! How measure radius of bending surfaces?
KL
12:33
Kirill Leyfer
I just assumed it's a circle arc tangent to flat surfaces 🤷‍♂
12:34
Which it probably is
12:35
I designed the part itself before the socket to learn FreeCAD as it is simple geometry, and to test fit it before printing
Y
12:35
YL3AKC
Nice one! I have problems when need to estimate 90 degree surface bending radius. Usually for plastic boxes and similar things.
A
13:08
Armin
You can 3d print these. This is what I use for measuring radius.
🔥
KL
6 October 2025
KL
00:11
Kirill Leyfer
Critical success
🔥
Y
V
A
00:11
00:11
00:11
00:11
00:11
00:11
00:11
00:11
00:11
00:12
First try
V
00:18
Valera K.
In reply to this message
The module looks like it's in a marshmallow) Looks perfect, congratulations!

Is the connection reliable? I am slightly skeptical about pogopins..
A
00:19
Armin
In reply to this message
Looks great, good job.
KL
00:23
Kirill Leyfer
In reply to this message
I used pogo pins before, connection is fine, and power rating is more than acceptable to use with bubble's high currents
👍
V
V
10:38
Valera K.
🔥
KL
10:38
@Megabozyakorovka спасибо огромное! Посылка принята
Y
10:38
YL3AKC
In reply to this message
Noice!
KL
11:04
Kirill Leyfer
In reply to this message
Happy soldering)

Do you have 16ch logic analyzer?
V
11:40
Valera K.
In reply to this message
No, but I'll buy it soon
11:40
I didn't need 16 channels before this project)
Y
11:40
YL3AKC
When I need LA, I'll make it myself from RPi Pi pico...
11:41
Kinda like this
Y
11:41
YL3AKC
I already have few PICOs, so no need to purchase.
👍
V
11:42
In reply to this message
Yes, My link is for older revision.
11:42
Only problem with PICO - voltage levels.
V
11:59
Valera K.
In reply to this message
When I moved from Russia to Serbia, I had to leave all my things behind. I packed up boxes and sent them to my parents to the Far East. All the equipment, all the hardware and components, even the Macintoshes. I couldn't take anything out. Now I sometimes have to go to a local hackerspace in Belgrade for debugging and soldering. I still haven't managed to set up a proper workshop here...
12:04
and now I'm moving again)
12:05
Покой мне только снится, потому что дома жить больше не получается после 19 года
KL
12:27
Kirill Leyfer
In reply to this message
Despite all that, you've made the right choice, hope this helps :)

And equipment and other stuff is дело наживное, how to say that
t
14:38
techknight
In reply to this message
I wonder if the 2 extra bytes is a checksum
V
15:04
Valera K.
Perfect. I hope that the order will arrive on this week and I will assemble this thing and test
🔥
KL
Y
15:13
YL3AKC
In reply to this message
Looks nice, but I need to verify that 161 is in correct place, but... Again, later...
15:15
Actually... 161 placement looks OK by datasheet. Not verified by schematics and PCB...
V
15:15
Valera K.
In reply to this message
I looked at the schematic and Kirill's photos. Everything seems correct. I just need to check if I ordered the right resistors. I'm not sure about that)
Y
15:16
YL3AKC
In reply to this message
Resistors are to interface +5V SN IC with +3.3V RPi device.
V
16:42
Valera K.
I don't have the kicad project, and the schematic doesn't have any values, so I used Kirill's photo as a reference. And I ordered these components
16:44
I hope everything arrives soon. I already found the Raspberry Pi. I completly forgot that I have one RPi that I use to connect the printer to Telegram. I don't need a printer yet, so the Raspberry Pi will now work as an emulator)
Y
17:14
YL3AKC
Ahh, my bad. Caps 0.1 uF, Resistors 1-3kOhm

Footprint? Don't remember, but can be estimated from Gerber files.
17:15
I think I used 0805 and 1206 cab ve fittet on PCB.
17:20
F**k! Looks like corporate network @ work restrict FTP access for me...
V
17:22
Valera K.
In reply to this message
1-3kOhm?... But on Kirill's photo I see brown-brown-black-black-red resistors, 110 ohm.... Oh, блин, inverted resistors...
17:22
2kOhm
Y
17:23
YL3AKC
Just put sometring kOhm-ish to prevent stress on RPi GPIO pins.
V
17:24
Valera K.
Yea, ok, no problem. I didn't think of that and I wasn't confused by such values
Y
17:24
YL3AKC
Trying to tinker with your FTP server... No success yet...
Y
19:55
YL3AKC
In reply to this message
Old news!
Uploading my "_research" crap.
A
23:49
Armin
Upgrading my base model MX80 for use with the compass
🔥
Y
23:52
Need to burn some roms to add the "graphtrax" option for printing graphics, otherwise it only does ascii. And add a Gpib interface card.
23:56
With those options added to mine, I think it will be exactly the same as the MX82 GRiD sold.
🔥
V
KL
Y
7 October 2025
V
11:01
Valera K.
In reply to this message
Слушай, а почему бы не взять его плату и не написать свою юзерспейсную часть? GPiB у Компаса сильно отличается от стандарта?
11:01
Я тут всё утро читал переписки за 22-23-24 года, чтобы понять, что не так с проектом и куда мне двигаться.
11:03
(Я всё ещё не читал спеку, ничего не смотрел кроме кода и ваших сообщений)
((Не исключаю глупость своего вопроса))
Y
11:09
YL3AKC
It's not that hard to implement GPiB yourself and it's already done because logic analyser show all correctly. You need only to edit pin assignment.
11:11
I had an idea to rewrite it from scratch because existing code is cumbersome.
11:11
I am on business trip now, so can't help allot today.
V
11:25
Valera K.
In reply to this message
Я уже посмотрел на твои наработки, на наработки Кирилла и понял, что напишу программку с нуля. После первой проверки платы с существующей программой (пины я поменяю, про это я помню).

Судя по фоткам и истории переписок, твоя плата действительно должна работать. Но меня смущает, почему она так сильно отличается от платы того немецкого студента...
🤣
KL
Y
11:40
YL3AKC
In reply to this message
I am not student... I am an expert! 😎
🔥
KL
Y
18:18
YL3AKC
In reply to this message
1st thing: Kirill wanted to make GPiB emulators using Raspberry Pi. Why RPi Pi instead of Arduino or ESP32? I don't know, My assumption: Kirill ad RPi by had on that moment. And Kirill can load any disk image directly from RPi Pi. Maybe also C and/or Python presence pushed Kirill toward RPi. It's not important.

2nd thing: to code less and build GPiB emulator faster, Kirill took existing usernameak code from MAME emulator, added GPIO stuff, connected everything togeter and started experimenting.

There was live streams on twitch during experiments etc.

As result we concluded that RPi GPIO pins can not drive GPiB bus directly.

So I made GPiB Hat PCB.

Kirill soldered it, but not tested.

I was inspired by usernameak and Kirill work, but don't like theyr code. So I decided to make my own implementation of GPiB. I not finishet it.
18:19
Regading existing Kirill code. You need to remap pins in code, but also you need to inver logic signal polarity, if I remember correctly.
18:21
Why I made pinout on PCB in a ray it is now? Well... I am lazy and don't want to route signal wires according to ce. Instead I connected singals in a way it is easy to wire PCB instead of compatibility with existing code.
18:21
Kinda like that story from my side.
V
18:21
Valera K.
I already know the history and what I need to do. I just can't understand why the student's board has pull-up resistors and extra capacitors, but yours doesn't
Y
18:22
YL3AKC
In reply to this message
Where are pull-ups? On GPiB side or on RPi GPIO side?
18:24
According to SN7516x IC datasheet, no need for pull-ups onn GPiB bus side.

RPi GPIO pull-ups? Well... No need for them because we use internal pull-ups inside RPi. Maybe student don't know about existence of internal pull-ups or he don't know how to activate/use these pull-up inside RPi Pi...
18:26
It is totally OK to use Arduino Uno, Arduino Mega, ESP32, RPi Pi Pico or whatever MCU you want for GPiB.

It is also Ok to use embedded linux single board computer for GPiB.

It depends on taste.
18:26
I made PCB for RPi Pi because Kirill already used RPi and have code for that.
18:27
In reply to this message
Extra capacitors? Why? No need for them. Only 0.1 uF decoupling CAPs near SH7516x ICs is enough.
V
18:28
Valera K.
In reply to this message
I'm looking at the student's board. The datasheet doesn't say any pull-up resistors are needed, but in his schematic I saw a pull-up to both power and ground and some other components. Which really confused me. But whatever, it doesn't matter. I'm not going to change anything right now anyway and will just try to get what I have up and running as quickly as possible and test it. And then it'll all depend on the situation
18:28
I'm already waiting for the components, I hope everything will arrive to me soon
Y
18:28
YL3AKC
Can you send me a link? I don't remember.
V
18:30
Valera K.
In reply to this message
.
18:34
Aaaaaaaa...
18:34
I understand
Y
18:34
YL3AKC
In reply to this message
Ahh. That... Don't remember what I don't like there... And don't care about it.
V
18:38
Valera K.
@YL3AKC has anyone emulated bubble memory? The modules themselves, not controller. I remember someone thinking about it, but I can't find out how it all ended
u
18:40
usernameak
In reply to this message
по факту различия больше софтовые
Y
18:40
YL3AKC
In reply to this message
Why you want to emulate bubbles if you can emulate 7220 controller? You wan to mess with 12V multiphase signals?
u
18:40
usernameak
In reply to this message
там используется способ адресации, не очень допустимый по стандарту
18:41
(хост имеет адрес 0x1F, который по стандарту невалидный и обозначает отсутствие девайса)
V
18:42
Valera K.
In reply to this message
Нет, я пока ничего не хочу. Но в тот день, когда моя пузырьковая память умрёт, я бы хотел вставить модуль-эмулятор в сокет и не переживать о ноутбуке
18:42
In reply to this message
kekw, а это они здорово придумали
18:43
А зачем так?..
u
18:43
usernameak
HP тоже так делали кстати :)
18:43
In reply to this message
ну вот так :)
Y
18:44
YL3AKC
GPiB in general is not hard to emulate. You need to drive 8 data bits +3 control signals to send byte. Simple state machine.

Additionaly need to make working "interrupt", "end of transmission", "bus control" and "bus reset" signals. Also not that hard.

Then need to make working bus control logic with addressing and talker listener stuff.

Then we get user data between Compass and FDD.
👍
V
18:45
In reply to this message
I want to make 7220 emulation using RPi Pi Pico + SD card. IF bubble subsystem fail, then simply remove 7220 controller and use emulated one. Minimum soldering on Compass main board.
V
18:47
Valera K.
Soldering an old and very expensive computer is a terrible idea)
Y
18:48
YL3AKC
Messing with 7110 bubble memory is more messy idea.
18:48
I also want to make keyboard controller emulator.
18:52
Armin already desoldered keyboard controller, dumped firmware and soldered it back. Why? Because I wanted to see keyboard controller firmware. Terrible idea? Well... What is more important? Preserve information/secrets or mess with main board?

Now if keyboard controller fail we can reconstruct it/repair it. Even if we don't have original Intel controller. We preserved firmware, so we can burn firmware in another controller. We reversed firmware and now we know ho it works. So we can replicate controller using... Arduino,ESP32,STM32 etc...
18:53
In future I plan to understand PAL chip internals wo we can replicate failed PAL chips with CPLD/FPGA/74HC logic in case of PAL failure.
18:54
When compass battery leak, one of PAL chips can be damaged. That PAL chip is responsible for serial port and.. GPiB. So need to unlock tat PAL secrets to make damaged Compass GPiB working again.
V
18:55
Valera K.
A lot of plans but still no motivation?..
Y
18:55
YL3AKC
It is better to mess with Compass main board to understand secrets ans share knowledges.
18:55
In reply to this message
Kinda like that.
18:56
And... Later Compasses have ASIC. IF we understand how all PALs on 1101 work, we can unlock ASIC secrets.
18:57
I am chaotic. I can lose interest on project after some time. Then after few years I can switch back to started project.
18:57
Rigt now I am into Orbiter space flight simulator stuff and GRiD is on Hold.
18:58
Why? Because Orbiter is software only project and need less time than GRiD.
18:58
Also I am into vintage video stuff... I have some equipment to play with...
18:59
Also there are routine things like building HDD test station. Why? I have near 100 2TB HDDs in unknow condition. So need to test them all.
A
19:16
Armin
In reply to this message
I've done quite a bit of soldering on the compass motherboards. Roms, kbc's. battery's and they are really high quality boards, very easy to solder. Just have to use good soldering equipment.
👀
V
8 October 2025
V
15:24
Valera K.
I received the resistors, capacitors, and pin strips today. Now I just have to wait for the cable...
🔥
KL
15:27
The connectors for the self-assembly cable should arrive in a few days. The finished cable, however, will arrive in about five days at best...
15:37
I couldn't buy a 16-channel logic analyzer. But I found someone who has chineese version of LA and another man who even has the original Seleae (with analog signals support). So we should be able to debug this thing
👍
Y
🔥
KL
10 October 2025
A
13:38
Armin
This took me way to long to figure out. But its all working now. ;)
🔥
V
YL
13:39
🔥
KL
KL
13:47
Kirill Leyfer
In reply to this message
I have some Epson gpib inkjet printer

Can I do the same?
A
13:49
Armin
I had to upgrade the roms in my mx80 to support "bit image mode"
13:50
But if your printer support something like that, and if there is a grid os driver for it.
13:51
In reply to this message
Which printer do you have?
13:53
Btw, you can also save screenshots to bubble or disk instead of printing
V
14:00
Valera K.
In reply to this message
How did you take a screenshot? And can GRiD print images?..
KL
14:02
Kirill Leyfer
In reply to this message
Sorry not Epson

Hp 2225a?... Afair
A
14:06
Armin
In reply to this message
HP 2225a driver should be on this disk image
🔥
KL
KL
14:07
Kirill Leyfer
thanks! I've tried to print text file and all was fine, I was wondering whether I can print graphics
A
14:08
Armin
Don't know much about those printers, but i assume they should also have some graphics capabilities.
14:10
I can't find the time to gather all the printer drivers I have in one folder. But here's a link to a driver that was stored in one of the disk images
14:11
Maybe someone will help one day)
A
14:12
Armin
In reply to this message
ScreenWatch program
V
14:13
Valera K.
In reply to this message
It doesn't work on my compass (or it opens with an error, I can't remember). Thanks
14:13
I'll try to do everything as in the manual
A
14:14
Armin
it doesn't do anything when you launch it, only pops up when you press: code, shift, =
V
14:16
Valera K.
I think I tried. Now, out of curiosity, I'll get out my laptop and try again
V
16:46
Valera K.
Nope, error 40 and that's it
A
16:52
Armin
In reply to this message
when saving the image? or when launching the program?
V
16:52
Valera K.
When I save, it seems like it doesn't like the path I'm entering
A
16:53
Armin
try, just entering a name, then it should save to bubble
17:03
here's some more info on entering pathnames
V
18:49
Valera K.
Mb there wasn't enough space for the image. I deleted the unnecessary printer drivers and the screenshot was created!
18:51
18:52
🤣
KL
18:52
Questionable logo replacement
A
19:44
Armin
Lol, it would be easy to draw your own boot screen in gridpaint this way. ;)
13 October 2025
A
14:33
Armin
@c0a9e4b7 I was looking into the original Gridcase laptops. And I am a bit confused by the RAM options. It seems like your gridcase 3 has 1MB of ram installed? How much can you use of that 1 mb?
14:35
I thought it only supported up to 640k, and that if you used program roms you could only use 512k. But maybe I am incorrect.
14:35
(Mine only has 512k)
14 October 2025
V
14:53
Valera K.
In reply to this message
Sorry, I won't be able to see how much memory is available on my laptop for the next couple of days. I'm very busy at work
14:53
I got it
🔥
KL
Y
👌
A
14:54
Closer to the weekend I'll be able to work on the emulator and check GRiDcase 3 memory
A
15:03
Armin
In reply to this message
No problem ;)
V
15:46
Valera K.
I still haven't received the connectors to assemble my cable from the neighboring city :)
15:47
I'll write as soon as there's news from the emulator. I've either been working a lot these last few days, or I've been trying to figure out why my Macintosh 512k exploded
15:48
15:49
I hope the logic board survived...
16 October 2025
V
14:01
Valera K.
In reply to this message
@ConventionalMemories I checked the laptop memory. My GRiDCase 3 has 1 megabyte of memory installed, but the GRiDScan utility says I only have 640kb. I suspect that without himem, I can't use the whole megabyte
14:04
I can't check right now if 640 kb is really available and if I can use the whole megabyte. I still haven't done anything with my GRiDCase 3: I haven't soldered the rs232 adapter to transfer files to it, and I haven't made the ROMs. I haven't gotten around to it yet(
A
14:30
Armin
In reply to this message
Tnx, did you check under ms dos, or grid os?
Y
15:23
YL3AKC
Well... Under MS DOS it not work like that...
15:23
Check MS DOS memory layout
V
15:25
Valera K.
In reply to this message
Under MS-DOS
15:25
In reply to this message
I don't know how it works under this system 🤷‍♂
A
15:35
Armin
In reply to this message
i know that's why i'm confused why his system has 1MB
15:36
original gridcase memory map
15:37
if the roms aren't used then the 128k can be used for ram
15:37
so 640k max
Y
15:39
YL3AKC
640kb of @ConventionalMemories. All above is reserved for video memory (aka screen buffer), Expansion ROMS for varios cards, including Video BIOS, Ethenret/IDE/SCSI/Network ROMs, and as last thing BIOS.

On more modern computers circa 386 there was tricks like shadow ram to improve performance and unused ROM locations can be used as additional memory. THis is managed in MS-DOS by hymem.sys + emm386.exe drivers.
15:39
In reply to this message
This is called shadow RAM
15:40
There was settings for that in BIOS setup on computers of that time.
A
15:40
Armin
In reply to this message
can't find any info that supports that, i've never seen shadow ram used on a device that early
Y
15:41
YL3AKC
In reply to this message
Mostly, yes. Maybe you can get little more with himem.sys+emm386.exe
A
15:41
Armin
keep in mind this is a 8086 machine from 1985
15:43
I think I'll do some experiments with my machine, under grid os and under dos
15:43
i should have another machine with compatible sipp memory i can borrow
Y
15:52
YL3AKC
Imagine if you are not usinf MDA video adapter, but CGA one. MDA video buffer space not used. If in this space is shadow RAM, than MS-DOS with help of himem.sys+emm386.exe can use this address space to load additional drivers/resisdent programs and free conventional memory(640kb) space for programs.
15:55
part of shadow rAM works in folliwing way.

Imagine you have ROM BIOS on F0000.
When it is reader, electronics on chipsed copy that data into shadow RAM. Next time when reading from the same address, instead of ROM chip, shadow RAM is used. During that times RAM access was faster than ROM access, so insreaso of speed a little bit. There was mainbords who supported that.
15:55
It's all long history of PC emolution.
A
15:59
Armin
I know, i'm just not convinced the original gridcase supported shadow ram
15:59
can't find any info on that, maybe a later bios version supported it but i don't think so
Y
16:00
YL3AKC
Yes, need to reasearch that. Including full GRiDcase BIOS ROM disassembly.
A
16:00
Armin
also checked the gridcase technical refrence manual
16:01
In reply to this message
wouldn't be that hard the technical reference manual has all the bios routines listed
Y
16:02
YL3AKC
And BIOS source code?
A
16:02
Armin
In reply to this message
nope
Y
16:02
YL3AKC
Original IBM PC had BIOS source code.
A
16:03
Armin
@c0a9e4b7 what rom bios do you have? is it the same as this one? (mine)
V
16:05
Valera K.
I'll read messages later. I finished soldering the GPIB emulator and I'm very angry
A
17:21
Armin
small side project, i'm doing some research on the early development of the grid compass. if anyone has more info or better pictures please let me know. ;)
17:25
@leskovezzz might have some better pictures for me?
👌
YL
V
19:09
Valera K.
In reply to this message
Yes, I have exactly the same BIOS version with the same date
👍
A
19:13
In reply to this message
I soldered up the emulator. Not without problems, but I soldered it. I checked every required pin and got this pinout:


GPIB_PIN_DIO1: return 21;
GPIB_PIN_DIO2: return 22;
GPIB_PIN_DIO3: return 26;
GPIB_PIN_DIO4: return 23;
GPIB_PIN_DIO5: return 24;
GPIB_PIN_DIO6: return 27;
GPIB_PIN_DIO7: return 25;
GPIB_PIN_DIO8: return 28;

GPIB_PIN_EOI: return 6;
GPIB_PIN_DAV: return 12;
GPIB_PIN_NRFD: return 5;
GPIB_PIN_NDAC: return 3;
GPIB_PIN_ATN: return 13;
GPIB_PIN_SRQ: return 10;


But nothing works. The laptop immediately throws a 'storage medium error'. From the emulator soft no logs at all, complete silence. I don't know what the problem is, I'll try to debug it on the weekend
19:15
I'm puzzled by the fact that there are some other PE, TE, and some other pins on the board. But I haven't figured out yet what they're for and what's going on here. Honestly, I expected to get a result close to what Kirill had on his streams. But not this silence at all
Y
19:16
YL3AKC
They must be set in correct logic levels.
19:16
Don't remember what state should be.
19:17
If I remember correctly need to add code for TE control.
u
19:17
usernameak
oh yeah
19:17
the original code was basically designed for bit-banging
19:18
you need to handle the transceiver control lines to properly free up the bus
Y
19:18
YL3AKC
In reply to this message
Both boards are designed for bit banging, but...

When you use real bus drivers you need to handle additional pins.
u
19:19
usernameak
In reply to this message
yeah, i mean bit banging GPIB directly through GPIO
19:19
without any transceiver
19:19
(which didn't work - was too unstable and got bad bits here and there)
V
19:24
Valera K.
Oh, I hoped I would be able to run the original code without any modifications or rewriting. Well. I'm off to read the documentation and write a new good implementation. I'll be back someday
🫡
KL
KL
19:28
Kirill Leyfer
In reply to this message
We wish you the best of luck on that dark path
🫡
V
V
19:28
Valera K.
@YL3AKC Could you please send me the board project? I can't find it. I want to get the correct pinout without прозвонки
Y
19:29
YL3AKC
In reply to this message
It's just to put oneliner code in 2 or 3 functions.
V
19:31
Valera K.
In reply to this message
To put few lines of code, I need to look into the drivers documentation. Налью чаю и займусь. Эмулятор сам себя не сделает
Y
19:31
YL3AKC
In reply to this message
It's already in chat.
19:31
In reply to this message
All datasheets was uploaded together with all my files..
V
19:32
Valera K.
In reply to this message
I know, but when would I read them?)
19:33
Let's start...
Y
19:33
YL3AKC
I already read that Pull TE to logic 1 when sending data.
19:33
Find place in code where data pins are changing direction.
19:35
Start with functions
GPIB_Write_DIO
GPIB_Read_DIO
V
19:36
Valera K.
Thanks for your help, but I'll read it myself, I remember that you're usually very busy...
Y
19:36
YL3AKC
On init/starting program set TE as output like this
GPIO_IF_SetMode(pinTE, GPIO_IF_OUTPUT);
GPIO_IF_SetPinState(pinTE, 0);
V
19:36
Valera K.
Also I want to read what is SC, PE, REN, IFC and other
Y
19:37
YL3AKC
In reply to this message
Yes, I am busy and I am angry on USB CDC implantation for microcontrollers...
😁
V
19:38
In reply to this message
In write GPIB_Write_DIO function, do:
GPIO_IF_SetPinState(pinTE, 1);
19:38
In write GPIB_Read_DIO function, do:
GPIO_IF_SetPinState(pinTE, 0);
19:39
This is what I can tell by my intuition looking on code.
19:41
In reply to this message
SC - system controller, no need if you emulate FDD,
PE - pullups, set on init according to datasheet. Leave them in pullup mode instead of push/[ull driving.
REN - Remote enable, not used in GRiD at all, so ognore.
IFC - Interface clear. IF this signal is active, all devices on bus must reset and wait for command from controller (GRiD laptop).
19:41
So, nothing much to learn.
19:42
EOI - On GRiD is active when sending last byte of data.
19:43
ATN - attention, all devices must listen what controller send to bus. Data usually have address and data flow direction: toDevice or fromDevice
19:43
Aka talk/listen in GPiB terminology.
19:45
NDAC, NRFC,DAV are checked and toggled with each byte transfer to bus. This is wait - send - acknowledge mechanism.
19:45
SRQ - active when device need attention from controller aka device ask for interrupt from controller to handle data.
19:46
Also regarding code... Need to invert all bus lines, because in Kirill's implementation they are already inverted.
👀
V
19:47
Work for one evening or one weekend to get code working.
V
19:49
Valera K.
Thank you. As soon as I have something to show, I will definitely show it
Y
19:49
YL3AKC
OK
19 October 2025
u
09:19
usernameak
In reply to this message
it is specifically for bus control commands
Y
09:34
YL3AKC
In reply to this message
Yes, I mean - bus control from GRiD.
29 October 2025
V
20:35
Valera K.
Hello. You haven't heard from me in a while)

I finished my tasks and sat down with the emulator. The first thing I tried was to get Kirill's code running. But it didn't work, neither on my own nor with a friend's help. I poked around a bit more and decided to ditch that pile of spaghetti code and try a different approach.

I looked into linux-gpib. It supports a bitbang driver and even runs on this board, but it can't work in slave mode. I looked at the code, thought about it, and decided to put this option on hold for now as well; it requires too much work.

Right now, I'm writing a new version of the program, using Kirill's dumps as a reference. As soon as I get something working, I'll definitely share it.

For now, I'm not sure what I'll do in the long run: modify linux-gpib and create my own mini-distro for RPi, or continue with my own application. After all, I want the emulator to be capable of emulating anything in the future, so I need to put some thought into it
🔥
u
KL
20:39
I don't need any help for now, I just don't want you to think I've given up on the project. No, it's just that there's some nonsense going on at the moment, I'm doing something wrong and I need to sit down and debug for an extra hour or so
Y
21:59
YL3AKC
No need for dedicated driver for Linux. Just write userland program with bitbang.
V
22:20
Valera K.
I'm going to finish my userspace program now in any case. Then I'll think about what's next
31 October 2025
V
21:58
Valera K.
Hello. I have some news. I figured out why the laptop was freezing when the emulator was connected. It turned out there is an error on the board: the SRQ and ATN lines were swapped... Now my emulator can read commands from the laptop. I haven't figured out how to make it respond yet: my laptop behaves a bit differently... Besides that, I'm studying IEEE 488 and trying to write detailed code using the standard's terminology. I know this still isn't booting from the emulator, but I'm actively working towards it)
🔥
u
KL
Y
22:07
YL3AKC
Error on PCB?
22:08
Is it possible to fix PCB error by redefining pins in software?
V
22:08
Valera K.
In reply to this message
Yes
22:08
In reply to this message
No
Y
22:09
YL3AKC
Hmm... Why? Need to dive into documentation, but can't do it now.
22:10
What about cutting traces and do bodge wire fix?
V
22:11
Valera K.
In reply to this message
Because buffers have their own state. I've swap pins with two wires and everything is working fine. In any case, I want to redesign the entire board once the project is finished. This board is far from ideal
22:11
Everything is fine now, I continue working
Y
22:12
YL3AKC
In reply to this message
Cool! Are you used Kirill's emulator software?
22:12
Or writing your own from scratch?
V
22:12
Valera K.
In reply to this message
As I wrote earlier, I am writing completely from scratch and with a normal state machine
🔥
KL
Y
22:13
YL3AKC
OKay! How far you got? Can you receive and handle GPiB messages line "Talk" and "Listen"?
u
22:13
usernameak
In reply to this message
great

i assure you, that old code was built with duct tape and a bit of hope
🤝
KL
KL
22:14
Kirill Leyfer
In reply to this message
Sorry for the spaghetti code from my side. I was hoping that "one last fix and everything would work!", so, I didn't want to re-write it from scratch
Y
22:14
YL3AKC
In reply to this message
And with @usernameak cowboy coding style...
22:15
In reply to this message
Well.. Spaghetti code was generated by @usernameak

@Megabozyakorovka Just added Tabasco sauce.

😃
🤣
KL
u
22:15
usernameak
In reply to this message
"can read commands from the laptop" implies that at least "listen" works :)
🔥
Y
22:16
In reply to this message
yep. to be fair, that code wasn't even intended to work with real hardware in the first place
22:18
also, if you noticed that the signal for last byte with EOI has different timing - it's because it's sent manually through PIO on the GRiD's side - they couldn't do EOI with DMA due to some hardware limitations
Y
22:19
YL3AKC
In reply to this message
At the same time I tried emulate GPiB Bus in a way that "devices" during boot can "subscribe" and every pin change is broadcasted to "connected devices". All virtual in code. That's where I stuck with my Compass emulator. And, also with complex TMS9914 state machine emulator.
V
22:19
Valera K.
I would work faster, but I can't learn a 120-page standard in one evening. I'm reading doc, comparing info with a dozen different logic analyzer dumps and the original code. And so on, step by step. I don't want to comment on someone else's code or someone else's work. I'm just doing my work, that's all.

I only have "listen" for now, no "talking." I'm still in the process. At the same time, I'm trying to document the stages of the work somehow.

I spent many hours searching for two swapped pins. And I still have my job, also...
Y
22:20
YL3AKC
In reply to this message
Yeah, I saw that in CCPROM disassembly. Last byte + EOI implemented in software.
👀
V
V
22:20
Valera K.
In reply to this message
Криво, кстати, реализовано...
22:20
Это не так важно, но EOI ведёт себя очень странно на этом ноутбуке
Y
22:20
YL3AKC
In reply to this message
So, Byte transfer is already implemented! Cool!
u
22:21
usernameak
In reply to this message
они буквально досылают последний байт вместе с EOI отдельно от остальных данных, потому что их DMA-хардварь не знает ни про какой EOI :)
👀
V
Y
22:21
YL3AKC
In reply to this message
Yes, they have bugs in GPiB driver on CCPROM side.
V
22:21
Valera K.
In reply to this message
And partially command decoding and listener state machine
Y
22:21
YL3AKC
In reply to this message
I also wanted to make GPiB slave using state machines.
u
22:22
usernameak
also, this connection thing... I've actually seen it being nonzero on emulator when more than one device is connected, but I've never figured out how it works
👀
V
Y
22:23
YL3AKC
And make it layerized. PIN control layer, GPiB layer, Client Data layer...
22:24
Every layer have own state machines with timeouts.
u
22:24
usernameak
also, there are more commands than what i've written in that text file
22:25
there's, for example, 0x11 for low-level formatting
👀
V
Y
22:25
YL3AKC
In reply to this message
Berore that Is is needed to implement GPiB layer/stuff so data fly correctly on BUS.
22:26
Even more... There are PL/M source code for GPiB driver from CCPROM for Compass 112x and 113x series saves by @ConventionalMemories .
👀
V
KL
22:26
Kirill Leyfer
In reply to this message
There's no hurry, take your time! Those machines waited for many years, they can wait a little longer :)
👍
V
🤩
Y
u
22:27
usernameak
also, the command set maps 1:1 to CCOS's device driver request codes; though those that don't apply to raw block devices (e.g. connecting to network drives, filesystem operations etc.) aren't used
22:28
might be useful
V
22:28
Valera K.
Чуваки, я работал 12 часов и превратился в тыкву. Я с утра почитаю ваши сообщения. Особенно буду рад описанию команд к флоппику и рассказ о том, где же потерялся дамп с логического анализатора, записанный между жёстким диском и компасом
22:29
In reply to this message
Спасибо огромное!
u
22:30
usernameak
In reply to this message
если интересно, что это за язык - это PL/M
Y
22:31
YL3AKC
/GRiD_stuff/unsorted/GRiD_Unsorted/Convetionam_Memories_HDD_dump_files/Hard Disk 2X/Cp

Where "GRiD_stuff" Is root of "my folder"
V
22:32
Valera K.
In reply to this message
Ага, видел. Но до разбора твоей папки у меня руки не дошли. Я либо эмулятор пинаю, либо архив собираю
22:32
Интересно, а где софт strings
22:33
И дамп дисков Юрия...
Y
22:33
YL3AKC
Probably file "splitboard.gpib.asm~Text~" is part of low level GPiB driver
22:36
In reply to this message
We need to make Using the same GPiB board (or next rev) + RPi Pi GPiB "master device" emulator who can talk with 2101. Then @leskovezzz can solder it and dump his HDD sector by sector.
22:37
In reply to this message
???
V
22:37
Valera K.
In reply to this message
Блин, плюс одна задача. Штош
22:37
Справимся
22:38
In reply to this message
У меня в архиве почему-то нет программы strings
22:38
Я пока вспомнил, написал, а то потом опять забуду спросить
Y
22:39
YL3AKC
In reply to this message
Yes, it is. But... It shouldn't be too hard after writing "device" emulation on RPi Pi. That's why I added support on PCB for SN75162, aka buffer chip "master" devices and SC pin to RPi.
22:40
In reply to this message
Where it should be?
22:41
Or... You mean Linux command "strings" ?
V
22:41
Valera K.
In reply to this message
No, strings app from compass which draws random lines on screen
Y
22:42
YL3AKC
In reply to this message
Never hear about that command on Compass.
V
22:42
Valera K.
22:42
This
Y
22:42
YL3AKC
In reply to this message
I think I don't have that program.
A
22:45
Armin
I also don't have that demo program. I've asked in the group before. I think Yuri has it on his hdd, but is not yet dumped.
22:46
Maybe T tron has it in his archive. But i haven't been able to reach him for a while.
V
22:47
Valera K.
22:47
A lot of work
A
22:47
Armin
T Tron definitely has some software that is not in any of my archives.
Y
22:48
YL3AKC
In reply to this message
2 November 2025
V
21:01
Valera K.
I got the emulator to communicate with the laptop. I've reached the stage where the laptop requests the first 512 bytes. But nothing is working. The lines are hanging for 33ms in a strange state. I don't know the reason yet. I'll continue debugging during next week...
🔥
KL
u
21:02
usernameak
In reply to this message
you need to assert SRQ when data is ready to be sent AFAIK (or to be received, in case with data writes)
21:02
and then it should make you talker and you send the payload terminated with EOI
Y
21:04
YL3AKC
In reply to this message
Btw, when emulator need to release SRQ line?
u
21:05
usernameak
In reply to this message
don't remember exactly - but it's in GPIB spec
Y
21:05
YL3AKC
In reply to this message
Same here! That's why I am asking.
u
21:05
usernameak
IIRC it was when you become talker?
21:08
In reply to this message
oh, wait, I recalled
21:08
SRQ signalling is a bit more complicated and you also need to send some sort of status byte when you're getting serial poll
21:08
again, it's part of GPIB spec
KL
21:34
Kirill Leyfer
In reply to this message
I found it on 10mb HDD dump

Maybe it's called not strings?
21:35
In reply to this message
That is already a huge progress! You doing great!
Y
21:36
YL3AKC
Yeah. 1 or 2 weekends and GPiB almost implemented from scratch. Ready for user data exchange.
21:38
I need to find wiring errors on PCB, fix them and make new gerber files.

1) resistor sizes. So far only 0.125W (or 0.05W?) resistors fit, need to move resistors so 0.25W can fit.
2) Some GPiB wires connected incorrectly. Need more info from @c0a9e4b7 what is wrong.
V
22:13
Valera K.
It seems like I'm doing everything according to the IEEE 488... But it doesn't work. I just thought that in 5 days I would be able to get a working disk emulator. But no, it turned out to be much more complicated due to the laptop's bugs (?). Tomorrow I will compare it with the real floppy drive again and do more experiments
22:13
I want to fix the board myself. I really don't like the current version... Or even better, to use a ready-made, good, and proven one.
22:13
In reply to this message
Hmm, Idk. On which hard drive did you find this program?
Y
22:14
YL3AKC
In reply to this message
What is wrong with board. Give some feedback.
V
22:25
Valera K.
In reply to this message
The list is long.

0. ATN and SRQ are swapped.
1. The board is not the same size as the Raspberry Pi and sticks out beyond its edges a lot. This is both ugly and inconvenient—the board constantly fall to the side.
2. All components are placed very close to each other. Resistors, capacitors next to the buffers. It's inconvenient for soldering and probing.
3. A small thing, but I don't like the labels. The font is inconsistent, it looks messy.
4. There are no status LEDs on the board. A small thing but very useful.
5. There is no screen and no buttons. If it's a disk emulator board, you need some way to control it.
6. This board is not supported by linux-gpib. A minor thing, but unpleasant.

There might be some other issues as well. The development isn't finished yet.

It's just that if this is meant to be a board for a finished emulator, then we need to think about aesthetics and controls, and remove the extra pin headers. If it's a board for development, then it's easier to take and modify a board from elektronomikon.
Y
22:33
YL3AKC
0. will fix.
1. strange, I tried my best to make it compatible with RPi B+ including mounting holes.
2. resistors - agree. Capacitor placement make problems?
3. What font Eagle 7 provided, that I used.
4. There are no GPIO pins left for LED. What status you want to indicate.
5. Screen and buttons are planned to be connected via I2C, because no free GPIO.
6. What you want from linux-gpib? Are you planning to use HP instruments with this board? linux-gpib not support slave device emulation. This board is made specially for GRiD Compass with intention to worj both as master and slave.
22:36
Board hangs over RPi because no space on PCB.

All BUS pins are available on pin headers. RPi pins can be inspected near resistors.
22:37
In reply to this message
Here...
22:41
Not sure about BUS pin header compatibility with Compass internal GPiB header, because when made PCB, I don't have real think at hand.
22:41
And there was idea to make both DIP and SMT component compatible PCB.
V
22:44
Valera K.
In reply to this message
1. If we drop support for the SMD version of the buffers and use resistors arrays instead, we'll have plenty of space for anything, and we can even make the board exactly the same size as the Raspberry Pi.
2. The capacitors aren't a problem for now. But I'd like to move them so they aren't right up against the buffers.
4. I want an indicator showing emulator activity.
5. I understand that the screen and buttons will be on I2C. But in the future, we'll have to figure out how to arrange them. In the current board version, there's basically no space left; we'll need to think about how to handle this.
6. I want the linux-gpib to be able to communicate with some other devices. To control the floppy drive, control the hard drive (and get a dump from it). Something like that.
22:46
But these are just my thoughts out loud. Right now I need to finish the program. And figure out why the Compass doesn't set fckng ATN when accessing the floppy on non standard addresses
u
22:48
usernameak
In reply to this message
Compass can't use disk devices on anything but addresses 4, 5, 6

it's not even going to try detect them
V
22:50
Valera K.
In reply to this message
Криво выразился. По-умолчанию Компасс пытается загружаться с флоппика 5. Если его там нет, то с 6. И вот к 5 он обращается правильно, DCL, L5, всё такое. То к 6 он шлёт команды без флага ATN
u
22:50
usernameak
In reply to this message
хм, занятно
на эмуляторе такого поведения не наблюдалось
V
22:50
Valera K.
Либо я что-то делаю не так и компасс ломается
u
22:51
usernameak
вообще 5 это должен быть флоппик совмещённый с HDD
6 это именно отдельный флоппик
Y
22:51
YL3AKC
SMT buffers are important thing because of sourcing components. Including Farnell/Mouser/Digikey and also Aliexpress.

CAPs must be close to buffer IC supply because of decoupling and avoid classical power glitch problems in digital electronics.

For I2C stuff there are modules on Aliexpress. Just need to write I2C code in userland software for them.

linux-gpib can't be compatible with GRiD devices on software level. At least without huge driver patching and recompiling.
u
22:51
usernameak
In reply to this message
(они даже по разному отображаются в ОС)
22:51
In reply to this message
впрочем, поставить флоппик на 4 адрес и попытаться загрузиться как с HDD тоже должно работать :)
V
22:52
Valera K.
In reply to this message
Работает. Я сейчас так и отлаживаю
22:52
Потому что при включении опрос устройств начинается с 4ого...
u
22:52
usernameak
ты можешь контроллировать с чего начинать опрос с клавиатуры
22:52
но я не помню как зафорсить 6 (и можно ли вообще)
22:52
H или W - 4
F - 5
Y
22:52
YL3AKC
GRiD GPiB isn't 100% compatible with IEEE-488 standard. It's more like GRiD people interpetation and "get things working" over BUS.
22:53
In reply to this message
4 - Hard disk, 5 -Floppy 0, 6 - floppy 1 If I remember correctly.
👍
V
u
22:53
usernameak
In reply to this message
довольно странно кстати, потому что в эмуляторе он точно ставил ATN при этом
22:53
может какие-то тайминги?
22:54
In reply to this message
5 shows up in the OS as "Floppy Disk", and 6 shows up as "Portable Floppy"
Y
22:54
YL3AKC
In reply to this message
When booting you can press H or W for booting from HDD. F - for booting from FDD 0. B - for booting from bubble.

By default order is:
Bubble
Hard disk (winchester)
Floppy
22:57
In reply to this message
Yes. I saw this on real thing when configured incorrectly my Gotek. Gotek jumper was set to disk 1 instead of disk 0 and I had problems booting. When @ConventionalMemories showed me correct jumper settings, my Gotek become Disk 0 and booting was successful.
22:57
In reply to this message
Need to check Kirill's LA dumps.
V
22:57
Valera K.
Я знаю, как грузится) И даже прочитал код загрузчика. Но мне это пока никак не помогло.

Проблема с ATN не критична, потому что я представляюсь как флоппи диск на адресе 4 и всё работает. С 5 и 6 нужно разбираться. Я оставлю эту проблему на будущее. Не думаю, что кому-то вообще потребуется эмуляция флоппика
u
22:58
usernameak
In reply to this message
на самом деле системе без разницы, оно только на выбор бутдевайса и название влияет :)
22:58
всё остальное она тянет из ответа ddGetStatus
👍
V
Y
22:59
YL3AKC
In reply to this message
Actually this is really important to lot of people. Lot of people need Floppy emulator to mess and experiment with Compass.
u
22:59
usernameak
In reply to this message
Compass doesn't really distinguish floppies and small HDDs :)
👍
V
Y
23:00
YL3AKC
In reply to this message
Only by addresses...
u
23:00
usernameak
In reply to this message
yeah
23:00
you can actually technically go and give it a huge HDD
Y
23:00
YL3AKC
And by string in ddGetStatus request.
u
23:00
usernameak
In reply to this message
(though the FS is limited to 32MB volumes)
👀
V
V
23:01
Valera K.
In reply to this message
Really?..
Y
23:01
YL3AKC
In reply to this message
Yes... 😞
u
23:01
usernameak
In reply to this message
yeah, it uses 16-bit sector numbers everywhere
V
23:01
Valera K.
Can I connect multiple HDDs to one compass?
Y
23:02
YL3AKC
In reply to this message
On stock Software you can't. Only when we disassemble CCOS and patch it.
u
23:02
usernameak
In reply to this message
i once got it to show up two HDDs on emulator somehow
23:02
but it crashed immediately because it was sending weird commands
23:03
connection field in the descriptor is somehow related to some support for multi-HDD arrays
23:04
but I assume they were never made and it wasn't very well-tested
V
23:05
Valera K.
In reply to this message
Yeah, one more project just for fun xD
30 HDDs to one Compass
u
23:05
usernameak
In reply to this message
it was showing like "Hard Disk <number it passed in connection field>" IIRC
Y
23:06
YL3AKC
I assume GRiD user carried laptop on business trips without accessories. Maybe with FDD sometimes.

FDD+HDD was only in office.

And GRiD have dial-up stuff for getting remote files.
23:06
In reply to this message
There are only 16 addresses on GPiB bus, so no 30...
u
23:07
usernameak
In reply to this message
I wasn't really able to figure out how to make it do that normally, though

it was doing that in my case because of some implementation error in GPIB interface with multiple addresses on the emulator side
23:07
In reply to this message
this stuff seems to allow some address-sharing
23:07
normally that connection field is zero
Y
23:08
YL3AKC
In reply to this message
Maybe they fixed some bugs on Compass II CCPROM.
23:09
In reply to this message
Interesting...
23:09
OK. Sleep! 4 hours left before work day starts.
👍
V
V
23:11
Valera K.
Good night! I'm going to rest too. I've got some ideas on what else I can try in the emulator...
A
23:11
Armin
Officially grid supports 2 Hdd per compass.
23:11
But maybe you can connect more. Don't know
V
23:12
Valera K.
I will try it if I get one to work reliably
Y
23:12
YL3AKC
Finish FDD emulator...
V
23:12
Valera K.
FDD == HDD
23:13
It's literally the same device from a laptop perspective
u
23:13
usernameak
yep
23:13
except different size and geometry
V
23:13
Valera K.
Yup
Y
23:13
YL3AKC
HDD emulation add one more layer of problems like partitioning bootable partitions etc.
u
23:13
usernameak
though it doesn't particularly care about geometry
23:13
In reply to this message
it doesn't require that
A
23:13
Armin
Official documentation shows up to 6 drives connected
23:14
4 floppy (2x 2101 + 2x 2102) and 2 hdd
Y
23:14
YL3AKC
In reply to this message
But from practical point of view. Some HDD images can have problems because of formatting.
V
23:14
Valera K.
In reply to this message
God... Who had this configuration?
Y
23:15
YL3AKC
In reply to this message
Secretary of Defense of United States.
A
23:15
Armin
The german guy your compass came from used 2 2101 and one 2102 on it.
Y
23:15
YL3AKC
😃
u
23:16
usernameak
In reply to this message
how do you even configure that
Y
23:17
YL3AKC
In reply to this message
🧙
A
23:17
Armin
They show up in grid os as "extra" Hard Drive
u
23:18
usernameak
nah, i mean, how do you set up the addresses
V
23:18
Valera K.
Since I don't have a real hard drive, and I took the floppy disk drive apart and can't put it back together, I'm especially motivated to make a disk emulator)
Y
23:19
YL3AKC
In reply to this message
23:20
In reply to this message
Why can't put it back? Mechanism damaged?
A
23:20
Armin
A
A
23:21
Armin
Adress selection for multiple drives from compass ms dos manual
Y
23:22
YL3AKC
In reply to this message
IF you have working electronics, you can add Gotek.
23:22
u
23:23
usernameak
In reply to this message
oh so that's why it polled C and D
V
23:24
Valera K.
In reply to this message
I disassembled my floppy drive 1990 to compare it with the 1983 version. It turned out that the drive's controller board was missing one standoff, and over time, both boards had warped at one corner. The drive itself is fully functional. But now I'm not sure what to do: print a new standoff of the right size and reassemble drive, or leave it as is — if it works, don't touch it. For now I don't want to use Gotek because лень
Y
23:25
YL3AKC
Clean hack to preventing Gotek turning off. 2102 want to turn off FDD to save power. We just bypas badass relay and keep Gotek powered.
V
23:26
Valera K.
Okay, sorry, I'm off to bed and will continue tinkering with the disk emulator after work tomorrow
Y
23:26
YL3AKC
In reply to this message
Didn't get what exactly went wrong. Can 2102 schematics help here?
V
23:26
Valera K.
In reply to this message
No, I'll send photo tomorrow
Y
23:27
YL3AKC
In reply to this message
OK.
A
23:28
Armin
In reply to this message
Valera has a 2107 (tempest version of the 2102)
It uses different construction and has extra filter board.
👍
V
KL
23:30
Kirill Leyfer
In reply to this message
Holy shit, you can do that???
V
23:30
Valera K.
In reply to this message
Ну да, конечно, это легко
KL
23:31
Kirill Leyfer
Didn't know that

I have faulty floppy, was planning on debugging it and swapping with another floppy

But now! Huh

Everything seems to be easier
Y
23:31
YL3AKC
In reply to this message
23:31
In reply to this message
Gotek or clean cabling?
🤣
KL
KL
23:32
Kirill Leyfer
In reply to this message
Krasnodar...

That's my friend who borrowed me compass floppy and compass itself
A
23:34
Armin
In reply to this message
Yes, I've also been using a Gotek. I posted flashfloppy config file for gotek in group a while ago.
🔥
KL
Y
23:34
YL3AKC
In reply to this message
I had private chat with @ConventionalMemories and he gave me information what are correct jumper settings for gotek. Also What should be in config file on USB Flash.
23:34
In reply to this message
Or... In this chat... Don't remember...
23:35
I had problems with wrong JP0/JP1 jumper settings on Gotek, but now it's OK.
23:35
And... Gotek need to be flashed with latest FlashFloppy firmware.
V
23:36
Valera K.
If someone writes instruction about connecting Gotek, I'll add them to my archive gridrepository.org
👍
A
23:36
...when will I have time to make a nice and user-friendly frontend?..
23:37
In reply to this message
With config and nuances
A
23:38
Armin
Note on using gotek with compass:
I haven't had any issues with it in the 2102. But the 2101 doesn't like the faster timing. I suspect i can get it to work by tweaking the config. But for now I would only recommend using it in "portable floppy" and not in the 2101
Y
23:39
YL3AKC
In reply to this message
I think this is OK.
👍
A
23:45
Another photo to bypass +5V power relay on 2102
23:45
3 November 2025
Y
00:01
YL3AKC
In reply to this message
Wait a moment. You wanted to make RPi FDD emulator because your FDD not working. Now... You know that you can use Gotek and... Less chances that you finish RPi FDD emulator...
00:01
😃
V
00:04
Valera K.
In reply to this message
Kirill abandoned the emulator long ago and this project was transferred to me
00:05
And I'm not interested in Gotekization of my 2107
KL
00:08
Kirill Leyfer
In reply to this message
I wanted to make it because FDD isn't mine)
V
20:19
Valera K.
Recognized!
🔥
A
KL
20:20
Fragile, but laptop trying to communicate with my emulator
20:20
I see emulator device in UI!
🔥
KL
20:21
I figured out with the ATN issue and am continuing debugging
20:24
Загрузки с «флоппика» нет, но вот в интерфейсе он уже отображается и дальше что-то сильно идёт не так, Грид начинает отдавать куски своей памяти по шине
KL
20:24
Kirill Leyfer
In reply to this message
That is amazing news! Congrats ob achieving this!
V
20:24
Valera K.
Тайминги, долбанные тайминги
🤣
KL
20:24
In reply to this message
Thx!
KL
20:25
Kirill Leyfer
In reply to this message
Without strict ТЗ the result is usually ХЗ

(Talking about IEEE-488 implementation by GRiD)
V
20:32
Valera K.
In reply to this message
Hmm, I need to check. I can't even navigate the disk properly; the ATN gets lost and magic starts happening...
20:33
It's okay, I'll fix it
20:38
Russian GPIB :)
KL
20:43
Kirill Leyfer
In reply to this message
Wow, didn't know about that!

Was it used somewhere in the real socialist block hardware?
V
20:45
Valera K.
In reply to this message
I don't know, a colleague suggested that if USSR copied a lot from the west, then they could have copied the GPIB and added some information of their own.
20:45
In reply to this message
And he found this...
🫡
KL
20:46
Holy GPIB, 112 страниц чистого канцеляризма
🫡
KL
Y
21:03
YL3AKC
In reply to this message
GPiB was designed taking into account slow devices and everything is synced. At least on Compass there is timeout fo 1 or 4 seconds if something goes wrong. I thing problem is somewhere else.
21:04
At this point forget about GPiB standard because Compass bus isn't 100% compatible and standard. It's almost standard and have some things who aren't 100% compatible with GPiB documentation.
V
21:33
Valera K.
In a nutshell, the working hypothesis is that the problems lie in a compass bug. When transmitting the last byte, the laptop doesn't wait for us to receive the data. We have only 12 microseconds to receive the last byte. And this problem regularly pops up. Besides that, sometimes the emulator hangs when sending 1 byte of response, as if the computer got stuck in some state and stopped waiting for my bytes. In the end, everything leads to this screen.

I have ideas on how to try to fix both problems. But right now, I'm taking a break for a day or two. I need to refactor and document the recently written code. And get some fresh air. Staring at oscilloscope dumps for a week is a lot of fun, but I need to touch some grass)
🤝
KL
21:34
21:34
21:34
21:34
My Tempest Floppy
Y
21:34
YL3AKC
In reply to this message
Can you show this in Logic analyser dump?
V
21:35
Valera K.
In reply to this message
Can, but not now
21:38
In reply to this message
Photo that I mention in text
KL
21:38
Kirill Leyfer
In reply to this message
I think I noticed the same problem early on working with the emulator
V
21:40
Valera K.
In reply to this message
Ничего, в крайнем случае я просто прибью эмулятор к одному ядру, выключу шедуллер линукса и случайные задержки из-за переключений контекста исчезнут
21:41
Linux as RTOS)
🤣
KL
u
21:43
usernameak
In reply to this message
actually, Linux recently merged real-time kernel mode into mainline (as a build flag)
V
21:45
Valera K.
In reply to this message
Yup, but but I'm too lazy to check it right now. I'll get it working stably on the mainline core without patches or black magic. I need microsecond precision here, not nanoseconds
21:45
(Anyway, I don't give up so easily)
Y
21:45
YL3AKC
GPIO lib can call event handler in 2 uSec
21:46
Anything less than 1 uSec is problematic.
KL
22:11
Kirill Leyfer
Guys, let's not overwhelm Valera with tons of suggestions from all directions

I think he knows what to try and what to do next
V
22:13
Valera K.
No, no, any comments are valuable right now. I'm not working on the project alone, but when we're tired, we can easily miss an obvious problem or forget a detail
22:14
I have a friend who is helping me offline right now. He reviews my code and we are looking for bugs together
Y
22:18
YL3AKC
Can you show your code?
V
22:24
Valera K.
In reply to this message
.
22:29
Sorry, I write my project status in the evening before dinner and can talk, but can't send any files and logs
6 November 2025
V
14:37
Valera K.
Товарищи!
🔥
KL
A
Y
14:37
While I was formulating a help request, selecting dumps, and struggling, I fixed it and booted up! The emulator works! The dance is over.
Y
14:38
YL3AKC
In reply to this message
V
14:38
Valera K.
@Megabozyakorovka яжговорил, что и этот проект мы затащим. Даже с моей глупостью всё получилось чуть больше, чем за неделю
YL
🔥
KL
Y
14:45
YL3AKC
In reply to this message
Source code?
V
14:45
Valera K.
14:45
In reply to this message
A video in Russian demonstrating the current version... Not so fast, but works perfectly.
14:45
After optimizing and configuring the Raspberry, I'll make a better video in English
14:46
In reply to this message
Soon (C)
🔥
Y
14:46
14:46
Hard drive is faster, hm...
Y
14:46
YL3AKC
In reply to this message
What about sending replay: "Soft Disk trololo!" ???
V
14:47
Valera K.
In reply to this message
I can't change the name, the laptop itself displays this name depending on the address
KL
14:48
Kirill Leyfer
In reply to this message
Edrit'-kolotit'
14:49
In reply to this message
Чел, ты просто охрененен
V
14:50
Valera K.
@usernameak подскажи, почему ноутбук гораздо быстрее общается с эмулятором, если выставить адрес жёского диска? Wtf?
KL
14:50
Kirill Leyfer
In reply to this message
Did you nakolbasil this in rust??

That's very cool
14:50
In reply to this message
Can I post this in my group?
V
14:51
Valera K.
In reply to this message
Yes, it's Rust, simply because I'm much more productive on it
🔥
KL
14:51
In reply to this message
Maybe?.. Bad video
14:52
Maybe I can take a normal video and specify the hard drive ID so that everything works twice as fast
KL
14:55
Kirill Leyfer
In reply to this message
I dunno, bad video is usually most fun to watch
V
14:56
Valera K.
In reply to this message
As you wish. I'll go make a new disk with pacman and be happy. I've been waiting for this moment for a long time
🔥
KL
14:57
I've already ordered a pack of chips to make several prototypes. I want to send two-three prototypes to other people and one master-variant for Yuri L.
YL
15:11
🔥
KL
15:11
15:11
Lmao :)
GRiDBasic
15:13
Ееееее
🔥
E
KL
YL
t
15:14
techknight
Ooooh Y'all got it working
V
15:21
Valera K.
In reply to this message
As soon as the chips arrive, I'll send you one prototype
t
t
15:22
techknight
That'll certainly help my machine not be a brick
V
15:27
Valera K.
Among the unexpected tasks, I'll have to improve the utilities for working with CCOS. I can't create a 10-megabyte image... Meh
15:27
But I'm stubborn, so we'll do that too. And we'll emulate the printer)
Y
15:31
YL3AKC
In reply to this message
And add support for 256 byte sectors, so it would be possible to make bubble images.

Rust... Meh... Okay...
V
15:37
Valera K.
In reply to this message
Well, I'll be doing fixes for CCOS FS utilities modifications in C.

But it was easier to write the emulator in Rust: I know it well, it makes my knees hurt less and all that. The project is mine, I'm writing it however I want)
Y
15:43
YL3AKC
Okay, okay...
A
15:49
Armin
@c0a9e4b7 wow, amazing work. Happy this compass made it all the way to you. ;)
V
15:50
In reply to this message
I've noticed a significant speed difference between hdd and fdd with real hardware as well but I thought that was just the fdd being slow. Strange that you're seeing the speed difference with your emulator
V
15:53
Valera K.
In reply to this message
I have a feeling the GRiD has different delays for different devices. But I can't prove it yet; I need to test this moment in my free time.
15:54
To fix the utilities, I need to understand the structure of the GRiD disk images. And I need some dump examples. If you have them, @ConventionalMemories @YL3AKC @usernameak, please send me dumps from the bubble memory and from one hard drive. Not the actual files from them, but the full-size image.
15:54
We tried to quickly add support for the non-standard sizes and sectors, but some errors started to appear.
Y
15:55
YL3AKC
Empty and with files

/GRiD_stuff/_research/GRiDemulator/ROMS
15:56
BUB1101.IMG — with files
15:56
Ohh wait...
15:56
Ahh, no shoud be OK.
V
15:57
Valera K.
In reply to this message
How did you get these files?
Y
15:58
YL3AKC
Don't remember where I found it. SOmewhere on Internet. Maybe @klyball archive.
V
15:58
Valera K.
Awesome, thank you, you are the best!
Y
15:58
YL3AKC
My Compas emulator + bubble emulator boots with this image.
A
16:07
Armin
On my phone right now, but i also shared some of my hdd sector dumps in the past.
16:10
I should have dumps from both 10 and 20mb hdd disks
V
16:13
Valera K.
In reply to this message
I think I have files from your disks in my archive... But I don't see the actual dump files. When you have time, please send them to me
A
16:15
Armin
This is the raw dump from the 20MB drive
A
16:15
Armin
A
Armin 04.07.2024 02:55:06
Here you go, A complete dump without errors.
V
16:16
Valera K.
In reply to this message
Awesome!
16:16
Thank you very much
A
16:17
Armin
And this is the same dump but with sectors alignment corrected
A
16:17
Armin
u
usernameak 04.07.2024 03:22:21
fixed image
V
16:18
Valera K.
In reply to this message
Thx! I will go work on the task...
16:18
Скоро вернусь
u
18:38
usernameak
In reply to this message
а запись работает?
18:38
In reply to this message
понятия не имею :)
V
20:05
Valera K.
In reply to this message
Без рабочей записи нельзя даже по папкам походить. Стейт ломается и ноутбук начинает слать все команды без ATN
20:06
Я поддерживаю статус, чтение, запись, всё как в mame
20:07
Я закончу добавлять поддержку образов бублямемори в CCOS disk utils (уже почти работает) и заопенсуршу проект
Y
20:14
YL3AKC
And photos with problematic PCB traces...
👍
V
V
23:30
Valera K.
@YL3AKC one smart person figured out why the CCOS Disk Utils wasn't working with disk images from bubbles. It's too early to merge it; we need to figure out how to merge the old and new code, and also double-check everything... but if you need it, it's here: https://github.com/vklachkov-contrib/CCOS-disk-utils
👍
Y
🔥
KL
23:31
I didn't have time to put my hands to this project. We talked a little, thought about it, and read the dumps. Then I went to rest, and he finished everything until it was working...
23:34
get_superblock:123:  superblock: 0x3fe
dump_dir:391: Directory "BUB1101" already exists! Dumping...
get_file_blocks:143: Block count in 0x3fe itself: 1
Warn: dir_length != file_size (23 != 252), fallback to dir_length.
parse_directory_data:565: Parsing 1 dir entries, size = 23 bytes...
parse_directory_data:576: 1 / 1, offset = 1 bytes...
parse_directory_data:579: entry block: 0xa, name length: 17 characters
traverse_ccos_image:49: Processing 1 entries in "BUB1101"...
traverse_ccos_image:52: Processing 1/1...
traverse_ccos_image:59: 1: directory
traverse_ccos_image:67: 1: Processing directory "Programs"...
dump_dir_tree_on_dir:305: Directory "BUB1101/Programs" already exists! Dumping...
get_file_blocks:143: Block count in 0xa itself: 2
parse_directory_data:565: Parsing 21 dir entries, size = 433 bytes...
parse_directory_data:576: 1 / 21, offset = 1 bytes...
parse_directory_data:579: entry block: 0x4b4, name length: 19 characters
parse_directory_data:576: 2 / 21, offset = 25 bytes...
parse_directory_data:579: entry block: 0xc, name length: 12 characters
parse_directory_data:576: 3 / 21, offset = 42 bytes...
parse_directory_data:579: entry block: 0x107, name length: 14 characters
parse_directory_data:576: 4 / 21, offset = 61 bytes...
parse_directory_data:579: entry block: 0x222, name length: 11 characters
parse_directory_data:576: 5 / 21, offset = 77 bytes...
parse_directory_data:579: entry block: 0x22f, name length: 20 characters
parse_directory_data:576: 6 / 21, offset = 102 bytes...
parse_directory_data:579: entry block: 0x24a, name length: 14 characters
parse_directory_data:576: 7 / 21, offset = 121 bytes...
parse_directory_data:579: entry block: 0x263, name length: 13 characters
parse_directory_data:576: 8 / 21, offset = 139 bytes...
parse_directory_data:579: entry block: 0x26d, name length: 13 characters
parse_directory_data:576: 9 / 21, offset = 157 bytes...
parse_directory_data:579: entry block: 0x277, name length: 13 characters
parse_directory_data:576: 10 / 21, offset = 175 bytes...
parse_directory_data:579: entry block: 0x281, name length: 24 characters
parse_directory_data:576: 11 / 21, offset = 204 bytes...
parse_directory_data:579: entry block: 0x303, name length: 13 characters
parse_directory_data:576: 12 / 21, offset = 222 bytes...
parse_directory_data:579: entry block: 0x304, name length: 21 characters
parse_directory_data:576: 13 / 21, offset = 248 bytes...
parse_directory_data:579: entry block: 0x348, name length: 16 characters
parse_directory_data:576: 14 / 21, offset = 269 bytes...
parse_directory_data:579: entry block: 0x396, name length: 13 characters
parse_directory_data:576: 15 / 21, offset = 287 bytes...
parse_directory_data:579: entry block: 0x3ae, name length: 17 characters
parse_directory_data:576: 16 / 21, offset = 309 bytes...
parse_directory_data:579: entry block: 0x3ee, name length: 24 characters
parse_directory_data:576: 17 / 21, offset = 338 bytes...
parse_directory_data:579: entry block: 0x41a, name length: 16 characters
parse_directory_data:576: 18 / 21, offset = 359 bytes...
parse_directory_data:579: entry block: 0x42a, name length: 14 characters
parse_directory_data:576: 19 / 21, offset = 378 bytes...
parse_directory_data:579: entry block: 0x447, name length: 13 characters
parse_directory_data:576: 20 / 21, offset = 396 bytes...
parse_directory_data:579: entry block: 0x449, name length: 15 characters
parse_directory_data:576: 21 / 21, offset = 416 bytes...
parse_directory_data:579: entry block: 0x4ab, name length: 12 characters
traverse_ccos_image:49: Processing 21 entries in "BUB1101/Programs"...
traverse_ccos_image:52: Processing 1/21...
traverse_ccos_image:101: 1: file
get_file_blocks:143: Block count in 0x4b4 itself: 15
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/@SystemErrors~Text~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 2/21...
traverse_ccos_image:101: 2: file
get_file_blocks:143: Block count in 0xc itself: 20
get_file_blocks:146: Has more than 1 block!
23:34

get_file_blocks:149: Processing extra block 0x22...
get_file_blocks:175: Extra block has 122 blocks
get_file_blocks:149: Processing extra block 0x22...
get_file_blocks:175: Extra block has 110 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/CCOS~System~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 3/21...
traverse_ccos_image:101: 3: file
get_file_blocks:143: Block count in 0x107 itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x11d...
get_file_blocks:175: Extra block has 122 blocks
get_file_blocks:149: Processing extra block 0x11d...
get_file_blocks:175: Extra block has 122 blocks
get_file_blocks:149: Processing extra block 0x11d...
get_file_blocks:175: Extra block has 21 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Common~Shared~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 4/21...
traverse_ccos_image:101: 4: file
get_file_blocks:143: Block count in 0x222 itself: 12
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Do~Run Com~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 5/21...
traverse_ccos_image:101: 5: file
get_file_blocks:143: Block count in 0x22f itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x245...
get_file_blocks:175: Extra block has 7 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Duplicate Media~Run~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 6/21...
traverse_ccos_image:101: 6: file
get_file_blocks:143: Block count in 0x24a itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x260...
get_file_blocks:175: Extra block has 5 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Executive~Run~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 7/21...
traverse_ccos_image:101: 7: file
get_file_blocks:143: Block count in 0x263 itself: 9
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/GRiD 53~Font~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 8/21...
traverse_ccos_image:101: 8: file
get_file_blocks:143: Block count in 0x26d itself: 9
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/GRiD 64~Font~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 9/21...
traverse_ccos_image:101: 9: file
get_file_blocks:143: Block count in 0x277 itself: 9
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/GRiD 80~Font~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 10/21...
traverse_ccos_image:101: 10: file
get_file_blocks:143: Block count in 0x281 itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x297...
get_file_blocks:175: Extra block has 110 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/GRiDManager~Run Sign-on~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 11/21...
traverse_ccos_image:101: 11: file
get_file_blocks:143: Block count in 0x303 itself: 0
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Hard~Untyped~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 12/21...
traverse_ccos_image:101: 12: file
get_file_blocks:143: Block count in 0x304 itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x31a...
get_file_blocks:175: Extra block has 48 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Initialize Media~Run~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 13/21...
traverse_ccos_image:101: 13: file
get_file_blocks:143: Block count in 0x348 itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x35e...
get_file_blocks:175: Extra block has 58 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/MediaRepair~Run~"...
dump_dir_tree_on_file:274: Done!
23:34

traverse_ccos_image:52: Processing 14/21...
traverse_ccos_image:101: 14: file
get_file_blocks:143: Block count in 0x396 itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x3ad...
get_file_blocks:175: Extra block has 3 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Modem~Device~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 15/21...
traverse_ccos_image:101: 15: file
get_file_blocks:143: Block count in 0x3ae itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x3c4...
get_file_blocks:175: Extra block has 44 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/PhoneLink~Device~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 16/21...
traverse_ccos_image:101: 16: file
get_file_blocks:143: Block count in 0x3ee itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x407...
get_file_blocks:175: Extra block has 21 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Screen.Init~ScreenImage~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 17/21...
traverse_ccos_image:101: 17: file
get_file_blocks:143: Block count in 0x41a itself: 15
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/ScreenWatch~Run~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 18/21...
traverse_ccos_image:101: 18: file
get_file_blocks:143: Block count in 0x42a itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x440...
get_file_blocks:175: Extra block has 9 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Serial~Device~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 19/21...
traverse_ccos_image:101: 19: file
get_file_blocks:143: Block count in 0x447 itself: 1
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/User~Profile~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 20/21...
traverse_ccos_image:101: 20: file
get_file_blocks:143: Block count in 0x449 itself: 20
get_file_blocks:146: Has more than 1 block!
get_file_blocks:149: Processing extra block 0x45f...
get_file_blocks:175: Extra block has 78 blocks
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/UserSentry~Run~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:52: Processing 21/21...
traverse_ccos_image:101: 21: file
get_file_blocks:143: Block count in 0x4ab itself: 8
dump_dir_tree_on_file:252: Writing to "BUB1101/Programs/Version~Run~"...
dump_dir_tree_on_file:274: Done!
traverse_ccos_image:120: "BUB1101/Programs" traverse complete!
traverse_ccos_image:120: "BUB1101" traverse complete!
dump_dir:401: Image dump complete!
🔥
KL
23:35
The author left the following comments:

There's actually not block_end in content_inode, but normal block addresses not covered by the checksum
after a bunch of 0xffff

and it barely broke the flop dump parsing.
23:36
Я не хотел никому добавлять работы и наводить суету. Просто посоветовался с человеком, который профессионально реверсит всякое... Ну он и сделал всё за пару часов
🤣
KL
KL
23:40
Kirill Leyfer
In reply to this message
Ifdef-s complicate things a bit

Would be nice to support both formats in the same binary
23:41
But that's a minor thing

The important part is that it works!
V
23:42
Valera K.
In reply to this message
We'll remove ifdefs
🤝
KL
7 November 2025
KL
12:46
Kirill Leyfer
Second try of ordering bubble fef*cker boards with custom pins placement for my own socket
👍
V
YL
12:47
First order got stuck in Kazakhstan in customs
V
23:39
Valera K.
🔥
Y
KL
👏
A
23:39
First boot from emu. After optimization and one small bug fix (need to backport to MAME)
V
23:55
Valera K.
As an experiment, I tried booting from 256 byte sector image. It turned out that Grid can't boot with that! 512 bytes hardcoded in ROM, and everything breaks after the first read
23:57
While debugging, I learned how to use the emulator to communicate with a real floppy disk. This helped me figure out that when the laptop requests 54 bytes of GetStatus we must respond 52 bytes
23:58
In reply to this message
And now I need to research how to respond to Format requests
23:58
I spent the whole day today measuring microseconds and finding Compass bugs...
23:59
In reply to this message
In the background, some man breaking a microwave. Sorry, it's a hard evening...
🤣
KL
8 November 2025
Y
14:29
YL3AKC
In reply to this message
Lo-masters! 😃
V
16:38
Valera K.
16:38
16:42
Loaded with dump from @ConventionalMemories and run some software...
Y
16:44
YL3AKC
Nice!
16:44
Maybe now it's time to make GPiB master? So @leskovezzz can solder one and dump his HDD contents.
👍
YL
V
16:45
Valera K.
In reply to this message
I have prototype of master
👍
YL
16:46
I already read some data from real floppy
🔥
Y
V
17:13
Valera K.
Does anyone have a fully working image of a floppy disk with MS DOS?
17:16
I have a floppy disk in my archive, but it's broken. I can't boot from it without hacks
17:17
17:19
u
17:25
usernameak
In reply to this message
just noticed - that screen got some really bad burn-in
A
17:25
Armin
Both ms dos versions here work
A
17:25
Armin
A
Armin 21.09.2025 16:50:53
For those interested Here's a backup of my FlashFloppy drive, it has all the official GRiD Disks I have, (including the ones I dumped this week)

These are all in IMG format for easy use with Gotek and GRiDiskcom
I will upload the raw flux streams later with better descriptions and scands of the disk labels.
A
17:28
Armin
The interleave might be different, these are ibm pc compatible
17:29
I also have a 10mb hdd image formatted for MD dos
V
17:37
Valera K.
Wow, thank you! I'll save this in gridrepository after tests
17:37
In reply to this message
Yeah, I know
17:42
In reply to this message
Works! Thank you very much! But I need to support Initialize in my emulator...
17:43
I'm very happy. I'll go see how the real floppy responds to requests...
10 November 2025
V
21:45
Valera K.
While I'm preparing for open source, I've done a lot of tasks. But most importantly, there's now support for multiple drives and a printer
🔥
KL
Y
Y
21:47
YL3AKC
Virtual printers?
V
21:48
Valera K.
I developing proxy from emulator to CUPS...
Y
21:48
YL3AKC
As soon as you win fight with GPiB signaling emulation, you can do almost whatever you want...
V
21:48
Valera K.
🔥
KL
Y
21:48
In reply to this message
I already do what I want :)
Y
21:49
YL3AKC
Where is "Extra Extra Last This is totally final Floppy"?
V
21:49
Valera K.
In reply to this message
Idk, GRiD is weird.
Y
21:49
YL3AKC
In reply to this message
Yes, it is!
21:50
That's why I Like GRiD.
V
21:52
Valera K.
I'll go write a readme and open repository...
21:53
Without sniffer and master, but with complete disk and printer emulation
Y
21:54
YL3AKC
Sounds like also need to update wiki...

https://wiki.unix-haters.org/doku.php?id=grid:compass
V
21:54
Valera K.
In reply to this message
Sounds like I need frontend for gridrepository and my own wiki...
Y
21:56
YL3AKC
In reply to this message
And I am still on another hobby project. .. Working on Linux version for pager programming.
21:56
In reply to this message
So much work... So small of time...
V
22:02
Valera K.
One step at a time)
u
22:04
usernameak
In reply to this message
hwo did you mount 4 HDDs?
V
22:05
Valera K.
In reply to this message
Magic :)
22:05
Ten minutes
Y
22:06
YL3AKC
I assume Valera's emulator just replay on every GPiB address...
u
22:06
usernameak
In reply to this message
aren't there, like, only two valid addresses for HDDs?
Y
22:07
YL3AKC
Maybe 3?
22:07
And then partitions...
V
22:12
Valera K.
My emulator is actually present on every address that the laptop know. This is configurable behavior in my emulator: you can connect one drive, or two, or connect something without a disk image... The laptop allows connecting up to 5 storage devices at a time.

The name in the interface is selected based on the address.

But there is one exception: drives with two partitions (like Armin's disk). In that case, they will appear in the interface as two separate hard drives. So that's how we got 4 HDDs: one for the drive on address 4, another on address 12, and one more "floppy", but with Armin's disk image. That also happens.

In total, with 5 disks you can get about one hundred and fifty megabytes of space.
u
22:13
usernameak
oh cool
22:14
In reply to this message
> The laptop allows connecting up to 5 storage devices at a time.
excluding network drives, I assume?
V
22:15
Valera K.
In reply to this message
I don't know, I don't have modem (or serial connector)
22:15
5 storages on GPiB bus
Y
22:16
YL3AKC
In reply to this message
No worries about modem.

I am thinking to make kinda standard with SubD15HD (VGA) connector as substitute for original serial connector.

We don't need all 19 pins on serial connector.
👀
V
V
22:18
Valera K.
Oh, man, what you know about PBUS? And possibility to boot GRiD OS from tape?
Y
22:18
YL3AKC
And we don't need RS422 style differential lines. Instead need to invent clever hack and use Serial with thing like RPi Pi Pico with minimal extra components.
22:18
In reply to this message
WHAT?
u
22:19
usernameak
the what
V
22:19
Valera K.
In reply to this message
Reverse GRiD, read sources and will know much more)
22:19
It's theory, I don't know how to check this possibility
Y
22:20
YL3AKC
In reply to this message
Hardware reversing?

Then run Windows 1.01 + make it ZX spectrum? 😃
👀
V
22:20
In reply to this message
22:22
I'd better one day reverse CCOS and SPoC... Maybe... In theory...

And reverse PALs and ASICs on mainboards.
V
22:24
Valera K.
If make progress in the right direction every day... I don't always have the motivation and power. But little by little, things are doing. Москва не сразу строилась)
22:24
Ушёл оформлять репозиторий
👍
Y
A
22:25
Armin
In reply to this message
This is my homemade serial connector. But with a bit more effort you could create a much better looking one.
👍
V
22:28
Maybe I should 3d model a better one and have a small batch made.
Y
22:29
YL3AKC
There are 19 pins...
Why We need +10V, - 10V and shield Pins? So, we already cut from 19 to 16 pins already... One more pin and we can fit in SubD15 HD (VGA)...
22:29
And leave original 19 in museum. While 15 pin can be used for research...
22:33
We can remove (ground) another 3 pins... Inverted signals for few lines.

So... We can get to 13 pins.
22:34
Or... Even to 12 pins...
22:35
But it's better to draw schematics of Serial port before that.
t
22:58
techknight
In reply to this message
This opens up a lot of fun stuff such as developing brand new peripherals. Like tcpip network emulation
V
22:59
Valera K.
In reply to this message
I think about network over GPIB, but I have no ideas how to implement this in CCOS
t
22:59
techknight
It would be something fun to look at
22:59
Would have to learn how to write drivers
23:01
I wonder if there's a book on device driver development for that machine
Y
23:01
YL3AKC
In reply to this message
I think, it's better to use Modem connector for Networking.

From my modem research:
Modem have own microcontroller 8741
This is not needed, but...

After modem makes connection, there serial decoder chips. One from texas for 300 bit/sec
Another custom made by Racal Vadik for 1200bit/sec

Long story short: serial data travel between modem and UART Chip on main board
t
23:02
techknight
Well I don't have any telephony equipment so the modem wouldn't be any good to me
Y
23:02
YL3AKC
In reply to this message
👍
t
V
t
23:02
techknight
Nor is it something I'm interested in
23:02
Perhaps maybe bypassing around the phone part of it
V
23:02
Valera K.
In reply to this message
Can I create ethernet board for Compass?
23:02
Is it hard?
23:03
Or use ESP32 as in PowerBooks...
Y
23:03
YL3AKC
In reply to this message
The idea is to use ESP32 and talk with mainboard over serial.
t
23:03
techknight
So like wimodem
Y
23:04
YL3AKC
In reply to this message
W5500-EVB-Pico and you'll get an Ethernet as original modem replacement.

ESP32 and you'll get WiFi as original modem replacement.

#InTheory
23:06
Just a few examples.

By default you'll get only 300 or 1200 baud.

If you mess harder with CCOS you get 230 000 baud.
V
23:07
Valera K.
Ohhhhhhhhh.... No, I'm not ready to think about ethernet, I just need to open source my project...
Y
23:08
YL3AKC
GPiB is up to 8 MBaud in theory, but then drivers...

One solution is to make some kind of network storage with modern microcontroller.

Compass see this gadget as 30 MBytes storage, but microcontroller connects t your NAS, Cloud, AS (Artifical stupidity) etc and exchange data...
V
23:10
Valera K.
@thetechknight you can find all docs at gridrepository.org, GRiD OS folder
Y
23:10
YL3AKC
In reply to this message
Just.. One small step at the same time not everything in parallel and now!
👍
V
t
23:10
techknight
Gotcha
V
23:11
Valera K.
In reply to this message
I already planning FUSE driver for CCOS FS
23:11
After tools fixes
Y
23:11
YL3AKC
In reply to this message
Yeah! This would be great!
23:13
In reply to this message
Compass, HAM radio, Pagers...
A
23:21
Armin
For everyone planning on writing software or drivers. These are the updated development manuals from 1985. All scanned and run trough ocr.
🔥
V
V
23:25
Valera K.
In reply to this message
Saved. Thanks.
A
23:26
Armin
The previous version that we had archived (1984) has interim versions of some manuals and is a couple hundred pages less. I haven't done a detailed comparison but this updated one should definitely be more complete.
👍
V
u
23:28
usernameak
the what
V
23:29
Valera K.
7?...
u
23:29
usernameak
In reply to this message
apparently API allows you to register custom addresses for them
11 November 2025
YL
10:11
Yuri S. Leskovec
10:11
10:11
10:11
10:11
10:16
😁
Y
A
13:03
Armin
Thank you @leskovezzz, these are great.
13:04
In reply to this message
Model 1155 ???
V
15:33
Valera K.
🔥
A
Y
KL
15:34
I am plotter. Just for fun. HP-GL is cool
Y
15:44
YL3AKC
In reply to this message
Y
16:49
YL3AKC
In reply to this message
Is is enough to read Wiki and a little bit more to implement HP-GL ?
V
17:04
Valera K.
I didn't understand the question...
Y
17:05
YL3AKC
How hard to implement HP-GL on Linux computer?

HP-GL commands? Is is enough to read Wikipedia to understand HP-GL commands and basics?
V
17:08
Valera K.
In reply to this message
Not hard, HP-GL is very simple. But nothing works correctly with Compass' plots and I don't known why
V
17:08
Valera K.
If you want to experiment with HP-GL please read devices manuals, not standard
Y
17:20
YL3AKC
Right now I just curious and looking for basics. Yes, I got it.
V
18:08
Valera K.
I got tired of preparing repo, so I made a proxy. Print without format is working properly
🔥
KL
👌
A
18:21
I'm just trying to document and write about every existing nuance of the current implementation...
18:22
Meh(
Y
18:23
YL3AKC
Just make repo. Documentation can wait.Who really need it, will find out without documentation.
👍
V
u
18:23
usernameak
code is always better than documentation anyway (though having both is best) ;)
A
18:24
Armin
In reply to this message
The epson MX 82 manuals are very detailed, I think there should be enough to implement bit mapped images
👍
V
Y
18:24
YL3AKC
"Code is self documented!"...
A
18:27
Armin
In reply to this message
Also big respect to Epson they still host manuals on their site for 45 year old printers
🙏
Y
u
18:27
usernameak
In reply to this message
lately every time I had to deal with some documentation, it sucked, hehe
18:28
one of recent things: I had to write a plugin for Photoshop at work. most of the SDK docs haven't been updated in 25 years!
12 November 2025
V
09:50
Valera K.
The first public version. With a bunch of flaws and plans. Well... A post on VCF will be coming soon.
https://github.com/vklachkov/blackgpib
🔥
KL
Y
09:53
Current plan:
0. One more test, create release tag
1. Post on VCF
2. Rest
3. New board, test sniffer and master mode, fix long standing issues after research
4. New raspberry pi pico version with microsd and other
5. Frontend for gridrepository.org
🤩
A
09:54
I also promised fixes for disk utilities. But there's a lot that needs to be rewritten to support Bubble Memory images
10:07
In reply to this message
My perfectionism tells me I should have kept the project private for another month. I could have calmly bought some floppy disks, studied the behavior of the original hardware, fixed all the known issues, and made a new version of the board... But on the other hand, it's unlikely anyone outside the chat would build this thing... And what if I couldn't finish the project for some reason, at least others could take initiative)
10:07
I think I've documented and described everything that's needed for this hypnotical situation
Y
16:48
YL3AKC
Looking on code in repo and... "Rust isn't my love" - said old C programmer. 😃
16:49
In reply to this message
So much work to do...
16:49
In reply to this message
Even more work to do...
V
17:06
Valera K.
What difference?) I have enough time for Compasses, nobody else took this tasks
Y
17:07
YL3AKC
In reply to this message
Mmm. I had time for Compass but lost traction a little bit.
V
17:07
Valera K.
I understand
17:08
I'm writing a post on VCF. I need to let people know. Maybe someone else will join in and help me
Y
17:09
YL3AKC
GRiD Owners will like it and will want to have emulator.
17:10
How many? Maybe like 5 people...
17:10
It is recommended to have working PCB so people can order themself via PCBWay/JLCPCB
17:11
And need to write livehacks regarding GPiB connector. How to find it on Mouser/Digikey.

Sounds like... Blog post...
V
17:12
Valera K.
For now, I'm classifying the project as "experimental". I have a working prototype, I know how to write an emulator and the pitfalls involved, and I have working rusty code that can easily be converted to C code for any microcontroller!

Connectors and other components people can buy on AliExpress
Y
17:13
YL3AKC
In reply to this message
This is super smart idea!
V
17:13
Valera K.
I have a goal, I have a vision for the project, I have money and hackerspace, and I am ready to finish this.
Y
17:14
YL3AKC
In reply to this message
Not all people doing things only with Aliexpress. There are Amazon and electronic engineers like professional electronic online stores Like Mouser/Digikey/Newark/Farnell
17:15
In reply to this message
Cool!
V
17:15
Valera K.
In reply to this message
If you want, you can add some comments to my post (when I finish it)
17:15
Всё, ушёл, вернусь совсем скоро
Y
17:15
YL3AKC
I am also prefer Farnell to Aliexpress for components.
👍
V
17:16
In reply to this message
Sure!
17:17
In reply to this message
And I am at work in neighborhood country again...
👍
V
V
17:20
Valera K.
I envy you)
Y
17:30
YL3AKC
In reply to this message
Why? 😃 "It's just another boring day in office" with transmitting signal to geostationary satellite on 14 GHz.

Today without staying in hotel.

Day start @ 11:00 and ends @ 3:00 local time.
17:31
No GRiD, no hobby, just work.
V
18:41
Valera K.
In reply to this message
Because you don't always sit at home and can travel without visas at vacation days)
18:42
I fix hack MS-DOS 2.00A boot in my emulator
👀
Y
18:42
And still no publication on VCF....
Y
19:17
YL3AKC
In reply to this message
Well... It's not like that. Distance is only 150 KM from home city. I am not traveling type person. I'd better spend money on Compass than travel.
😢
V
19:25
Well, "waiting for approval"... I wrote a short summary about this project.
19:26
Everyone's going their own way, but I'm off to rest. I need to "recharge" for the next tasks)
Y
19:26
YL3AKC
In reply to this message
No problems, admins approve in less than 1 hour.
19:27
In reply to this message
V
19:36
Valera K.
In reply to this message
🔥
KL
Y
Y
19:50
YL3AKC
VCFed published your post.
👍
V
V
20:08
Valera K.
In reply to this message
I need to backport this hack to MAME probably...
20:09
Don't know, need to check real floppy behaviour for proper implementation