"Специалист" в собственном соку
Moderator: Lavr
-
- Novelist
- Posts: 40
- Joined: 26 Mar 2008 23:21
- Location: Serbia
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
ну, если это будет полезно, то вот ПЗУ от Специалиста:
http://www.rapidshare.ru/731889
ld - загрузчик
mon - монитор
disk - ROM-диск программа (нач. адрес 0E800h)
отличия загрузчика и монитора от оригинальных я описал выше.
ПЗУ "disk" содержала подпрограммы записи байта и блока данных в электронный диск и обратно, а также программу "ROM COMPLEX" - для нее с магнитофона загружался блок 16 кб, содержавший редактор текста "Микрон", ассемблер, дизассемблер, корректор дампа, программатор и отладчик, расположенных по фиксированным адресам, соответствующих таблице в ПЗУ.
Сам блок сейчас дать не могу - он есть только на кассете, а считать их у меня сейчас нет возможности, да и врядли это нужно воспроизводить в эмуляторе - это единичный нестандартный случай.
по этой же причине нет исходника программы ROM COMPLEX, но ее можно дизассемблировать - она не сложна.
"диск" представлял собой верхние 16кб ОЗУ, которые не использовались в стандартной конфигурации. диск подключался сигналом НП стандартного Специалиста (сам сигнал НП фиксировался дополнительным RS-триггером на микросхеме 7400 (155ЛА3), так как нужен был только один раз после сброса ПК). при появлении уровня "1" сигнала НП основная память RAM 48 кб отключалась и вместо нее подключалась дополнительная 16 кб (поэтому диском нельзя было управлять из основной памяти), появление сигнала "0" возвращало обычную конфигурацию.
также диск имел аппаратную блокировку от записи (была выведена кнопка). в связи с тем, что в ПК Специалист сигнал "сброс" не нарушал регенерацию памяти, записанные в электронный диск данные после блокировки записи могли быть повреждены только сбоем по питанию. но это всё равно разовый случай
http://www.rapidshare.ru/731889
ld - загрузчик
mon - монитор
disk - ROM-диск программа (нач. адрес 0E800h)
отличия загрузчика и монитора от оригинальных я описал выше.
ПЗУ "disk" содержала подпрограммы записи байта и блока данных в электронный диск и обратно, а также программу "ROM COMPLEX" - для нее с магнитофона загружался блок 16 кб, содержавший редактор текста "Микрон", ассемблер, дизассемблер, корректор дампа, программатор и отладчик, расположенных по фиксированным адресам, соответствующих таблице в ПЗУ.
Сам блок сейчас дать не могу - он есть только на кассете, а считать их у меня сейчас нет возможности, да и врядли это нужно воспроизводить в эмуляторе - это единичный нестандартный случай.
по этой же причине нет исходника программы ROM COMPLEX, но ее можно дизассемблировать - она не сложна.
"диск" представлял собой верхние 16кб ОЗУ, которые не использовались в стандартной конфигурации. диск подключался сигналом НП стандартного Специалиста (сам сигнал НП фиксировался дополнительным RS-триггером на микросхеме 7400 (155ЛА3), так как нужен был только один раз после сброса ПК). при появлении уровня "1" сигнала НП основная память RAM 48 кб отключалась и вместо нее подключалась дополнительная 16 кб (поэтому диском нельзя было управлять из основной памяти), появление сигнала "0" возвращало обычную конфигурацию.
также диск имел аппаратную блокировку от записи (была выведена кнопка). в связи с тем, что в ПК Специалист сигнал "сброс" не нарушал регенерацию памяти, записанные в электронный диск данные после блокировки записи могли быть повреждены только сбоем по питанию. но это всё равно разовый случай

-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
-
- Novelist
- Posts: 40
- Joined: 26 Mar 2008 23:21
- Location: Serbia
-
- Novelist
- Posts: 40
- Joined: 26 Mar 2008 23:21
- Location: Serbia
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
micko wrote:Here is first screenshoot.
I have placed now image on better location.

here is "disk" disasmed:
Code: Select all
ORG 0E800H
COMPLEX:
LXI SP, 7FFFH
LXI H, MENU
CALL 0C818H
K_LOOP:
CALL 0C803H
CPI 45H ; "E"
JZ 0C800H ; МОНИТОР
CPI 31H ; "1"
JZ L_EDIT
CPI 32H ; "2"
JZ L_ASSM
CPI 33H ; "3"
JZ L_DASM
CPI 34H ; "4"
JZ L_DUMP
CPI 35H ; "5"
JZ L_DEBG
CPI 36H ; "6"
JZ L_PROM
JMP K_LOOP
GOOD:
LXI H, OK
CALL 0C818H
G_LOOP:
CALL 0C803H
CPI 45H ; "E"
JZ 0C800H
CPI 20H ; SPACE
JZ COMPLEX
CPI 0DH ; ENTER
JNZ G_LOOP
LHLD 0A800H
PCHL
L_EDIT:
MVI C, 0 ; БЛОК 0
CALL L_BLOK
MVI C, 1 ; БЛОК 1
CALL L_BLOK
JMP GOOD
L_ASSM:
MVI C, 2 ; БЛОК 2
CALL L_BLOK
MVI C, 0 ; БЛОК 0
CALL L_BLOK
MVI C, 1 ; БЛОК 1
CALL L_BLOK
JMP GOOD
L_DASM:
MVI C, 0 ; БЛОК 0
CALL L_BLOK
MVI C, 1 ; БЛОК 1
CALL L_BLOK
MVI C, 3 ; БЛОК 3
CALL L_BLOK
JMP GOOD
L_DUMP:
MVI C, 4 ; БЛОК 4
CALL L_BLOK
JMP GOOD
L_DEBG:
MVI C, 5 ; БЛОК 5
CALL L_BLOK
JMP GOOD
L_PROM:
MVI C, 6 ; БЛОК 6
CALL L_BLOK
JMP GOOD
TO_DSK:
PUSH H
LXI H, 0FF03H
T_LOOP:
LDAX B
MVI M, 9
STAX D
MVI M, 8
INX B
INX D
XTHL
DCX H
MOV A, H
ORA L
XTHL
JNZ T_LOOP
POP H
RET
FRMDSK:
PUSH H
LXI H, 0FF03H ; РЕГИСТР УПРАВЛЕНИЯ ВВ55
D_LOOP:
MVI M, 9 ; НП=1
LDAX B ; СЧИТАЛИ БАЙТ
MVI M, 8 ; НП=0
STAX D ; ЗАПИСАЛИ БАЙТ
INX B
INX D
XTHL
DCX H
MOV A, H
ORA L
XTHL
JNZ D_LOOP
POP H
RET
L_BLOK:
XRA A
MOV H, A
MOV L, C
DAD H
DAD H
DAD H
MOV C, L
MOV B, H
LXI H, TAB
DAD B ; HL - СМЕЩЕНИЕ БЛОКА В ТАБЛ
MOV C, M
INX H
MOV B, M
INX H
MOV E, M
INX H
MOV D, M
INX H
MOV A, M
INX H
MOV H, M
MOV L, A
XCHG
SHLD 0A800H ; ХРАНЕНИЕ АДРЕСА ЗАПУСКА В ВИДЕОПАМЯТИ
XCHG
JMP FRMDSK
DB 0
DB 0
TAB:
DW 1800H,1000H,0200H,0000H
DW 0000H,0000H,0800H,0000H
DW 0800H,0800H,0800H,0800H
DW 1000H,0800H,0800H,0000H
DW 1A00H,8200H,0200H,0000H
DW 2000H,6100H,1300H,0000H
DW 1C00H,7000H,0300H,0000H
CHKDSK:
MVI A, 9
STA 0FF03H
LDA 3FFFH
MOV D, A
LDA 0BFFFH
MOV B, A
CMA
MOV C, A
STA 0BFFFH
LDA 3FFFH
MOV E, A
LDA 0BFFFH
CMP C
MOV A, B
STA 0BFFFH
MVI A, 8
STA 0FF03H
JNZ L_ERR1
MOV A, D
CMP E
JZ L_ERR2
RET
L_ERR1:
LXI H, ERR1
JMP L_ERRX
L_ERR2:
LXI H, ERR2
L_ERRX:
CALL 0C818H
CALL 0C803H
CPI 45H ; "E"
JZ 0C800H
POP H
JMP LD_DSK
ERR1: DB 0AH," ОШИБКА: ЗАПИСЬ ЗАПРЕЩЕНА"
DB 0AH," ВЫХОД: E"
DB 0AH
DB 0
ERR2: DB 0AH," ОШИБКА: ДИСК ОТКЛЮЧЕН"
DB 0AH," ВЫХОД: E"
DB 0AH
DB 0
MENU: DB 1FH
DB 0AH," =========== ROM VERSION"
DB 0AH," =========== "
DB 0AH," CONTROL COMPLEX V. 2.4"
DB 0AH," ^^^^^^^ ^^^^^^^ ^^ ^^^"
DB 0AH," ЗАГРУЗКА: "
DB 0AH," РЕДАКТОРА - 1 "
DB 0AH," АССЕМБЛЕРА - 2 "
DB 0AH," ДИЗАССЕМБЛЕРА - 3 "
DB 0AH," КОРРЕКТОРА ДАМПА - 4 "
DB 0AH," ОТЛАДЧИКА - 5 "
DB 0AH," ПРОГРАММАТОРА - 6 "
DB 0AH," ВЫХОД - E "
DB 0AH," -----------------------"
DB 0AH
DB 0
OK: DB " -- O.K. ---------------"
DB 0AH," -----------------------"
DB 0AH," ЗАПУСК - ENTER "
DB 0AH," МЕНЮ - SPACE "
DB 0AH," ВЫХОД - E "
DB 0AH," -----------------------"
DB 0AH
DB 0
LD_DSK:
CALL CHKDSK
LXI H, 4000H
LXI B, 1000H
LXI D, 0
LXI SP, 7FFFH
CALL TO_DSK
JMP COMPLEX
DB " * SHOORICK"
-
- Novelist
- Posts: 40
- Joined: 26 Mar 2008 23:21
- Location: Serbia
Thanks for this. I am very busy these days, but will see to support your computer as soon as possible. Can you also upload somewhere dump of ROM disk that is called from disk.rom , since this is only menu.
And also is there any name of this clone (I saw some Super Specialist name on your site, but not sure if this is for it)
Here is how it looks when disk is called.

I have used G E800 command, is there any other way ?
Thanks once more.
And also is there any name of this clone (I saw some Super Specialist name on your site, but not sure if this is for it)
Here is how it looks when disk is called.

I have used G E800 command, is there any other way ?
Thanks once more.
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
it was ram-disk, loaded from tape, not rom-disk. "rom" means "control program is in rom". if i will not be able to read "complex" from tape, it is possible to rebuild it manually, but generally it has no sense. it had sense when i had no other pc only this one and tape recorder as mass storage
there was no other software to support for this disk.
"super specialist" - extended version, similar to basic, but has additional DRAM, swapped with main, additional CMOS RAM, swapped with existing ROM, and additional 8255 ports, to where was transferred control of memory configuration from basic 8255. it also had no sufficient software to support, and unfortunately dead in 1994 (2 years old) - it was broken while i was returning home from university after study with lot of other things. it's only mine memory
btw, it had "RAM" version of "COMPLEX" to support similar "disk" as it had CMOS RAM in ROM address area.
these two modifications had preferences against basic when they were hardware, in emulator there is no any profit to emulate them against basic models. finally, they were not known to anybody at all until i have posted their photos
so, do not see any reason to emulate them (except if will be very easy
)
------
yes, it was called with GE800
block on tape had only jump to EB80 to initiate transfer loaded data from main memory to disk.

"super specialist" - extended version, similar to basic, but has additional DRAM, swapped with main, additional CMOS RAM, swapped with existing ROM, and additional 8255 ports, to where was transferred control of memory configuration from basic 8255. it also had no sufficient software to support, and unfortunately dead in 1994 (2 years old) - it was broken while i was returning home from university after study with lot of other things. it's only mine memory

these two modifications had preferences against basic when they were hardware, in emulator there is no any profit to emulate them against basic models. finally, they were not known to anybody at all until i have posted their photos


------
yes, it was called with GE800
block on tape had only jump to EB80 to initiate transfer loaded data from main memory to disk.
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
здесь еще кое-что "по нашему" есть: http://shoorick.ho.ua/ir/ 

-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
micko
i've inspected my Sogdiana yesterday - it has usual Radio-86RK 16kb version rom. original rom i've extracted by cutting pins from chip, then solder out pins one-by-one, and, finally, solder a rom socket there. i made it that way to be more safe for the board, but i have no soldering iron with vacuum suck that time
seems, original rom was similar, just text "Radio-86RK" was replaced with "Sogdiana"
i've inspected my Sogdiana yesterday - it has usual Radio-86RK 16kb version rom. original rom i've extracted by cutting pins from chip, then solder out pins one-by-one, and, finally, solder a rom socket there. i made it that way to be more safe for the board, but i have no soldering iron with vacuum suck that time

-
- Novelist
- Posts: 40
- Joined: 26 Mar 2008 23:21
- Location: Serbia
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
нет, это мое предположение. чтобы сберечь плату я выкусил пзу-ху из нее (керамика, запаянная под самые нихачу), а в панельку вставил РК-шный монитор, который купил на рынке. "родная" пзу-ха не сохранилась - это было 100 лет назад, не думал я тогда, что это будет такая ценностьHardWareMan wrote:Byte-to-Byte comparing (load into RAM original monitor and run comparing program)?

i think "yes"just a name change.
-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина
с прошедшими всех праздничками!
для меня они не прошли зря - сбылась давняя "мечта идиота"
считал файлы со своей кассеты, на которой были исходники форта, который я писал. а заодно и ROM COMPLEX, о котором я упоминал
задача оказалась нетривиальная - с утилитами rrkwin и lptutils у меня ничего не вышло, правда, до девайса с компаратором руки не дошли - стало жалко кассету
в результате я все файлы посчитывал в вавы, и написал небольшую программку, которая их лопатит
в общем, из 63 файлов с кассеты 54 прочитались нормально, даже портировал, собрал и запустил на эмуляторе свой недоделаный форт.
на все можно посмотреть здесь и здесь

для меня они не прошли зря - сбылась давняя "мечта идиота"



в результате я все файлы посчитывал в вавы, и написал небольшую программку, которая их лопатит

на все можно посмотреть здесь и здесь

-
- Doomed
- Posts: 487
- Joined: 05 Nov 2007 05:08
- Location: Украина