"Специалист" в собственном соку

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

micko
Novelist
Posts: 40
Joined: 26 Mar 2008 23:21
Location: Serbia

Post by micko »

shoorick : Можете ли вы дать нам копию вашего пзу ? (Для Специалист и Согдианы )
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

ну, если это будет полезно, то вот ПЗУ от Специалиста:

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" возвращало обычную конфигурацию.

также диск имел аппаратную блокировку от записи (была выведена кнопка). в связи с тем, что в ПК Специалист сигнал "сброс" не нарушал регенерацию памяти, записанные в электронный диск данные после блокировки записи могли быть повреждены только сбоем по питанию. но это всё равно разовый случай :)
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

пзу Согдианы - думаю, одинаков со стандартным РК для 16кБ. это пзу запаяно в плату, а чтобы получить его "программно" нужно запустить ПК, а я не уверен, что он работает :)
micko
Novelist
Posts: 40
Joined: 26 Mar 2008 23:21
Location: Serbia

Post by micko »

Спасибо за это. Я должен поставить это в MESS эмулятор.
micko
Novelist
Posts: 40
Joined: 26 Mar 2008 23:21
Location: Serbia

Post by micko »

Here is first screenshoot.

Image

I have placed now image on better location.
Last edited by micko on 16 Jul 2008 05:22, edited 2 times in total.
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

micko wrote:Here is first screenshoot.

I have placed now image on better location.
:kruto: !

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"
micko
Novelist
Posts: 40
Joined: 26 Mar 2008 23:21
Location: Serbia

Post by micko »

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.

Image

I have used G E800 command, is there any other way ?

Thanks once more.
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

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.
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

HardWareMan wrote:Фигассе.... :o
развязка от сети:

Image
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

здесь еще кое-что "по нашему" есть: http://shoorick.ho.ua/ir/ ;)
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

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"
micko
Novelist
Posts: 40
Joined: 26 Mar 2008 23:21
Location: Serbia

Post by micko »

Thanks shoorick.

So it is same thing as with Spektr-001, just a name change.
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

HardWareMan wrote:Byte-to-Byte comparing (load into RAM original monitor and run comparing program)?
нет, это мое предположение. чтобы сберечь плату я выкусил пзу-ху из нее (керамика, запаянная под самые нихачу), а в панельку вставил РК-шный монитор, который купил на рынке. "родная" пзу-ха не сохранилась - это было 100 лет назад, не думал я тогда, что это будет такая ценность :)
just a name change.
i think "yes"
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

с прошедшими всех праздничками!

для меня они не прошли зря - сбылась давняя "мечта идиота" :) считал файлы со своей кассеты, на которой были исходники форта, который я писал. а заодно и ROM COMPLEX, о котором я упоминал :) задача оказалась нетривиальная - с утилитами rrkwin и lptutils у меня ничего не вышло, правда, до девайса с компаратором руки не дошли - стало жалко кассету :roll:

в результате я все файлы посчитывал в вавы, и написал небольшую программку, которая их лопатит :rotate: в общем, из 63 файлов с кассеты 54 прочитались нормально, даже портировал, собрал и запустил на эмуляторе свой недоделаный форт.

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

Image
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

HardWareMan wrote:Давно надо было так сделать.
да в том то и дело - все времени нет :( вот, празднечками воспользовался :)