РК-ДОС

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: РК-ДОС

Post by Shaos »

jcuken wrote:Контроллер клонирован:
http://sensi.org/~tnt23/rk86/
и что, работает?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
jcuken
Junior
Posts: 2
Joined: 04 Jul 2017 12:45

Re: РК-ДОС

Post by jcuken »

Работает, аж шуба заворачивается.
You do not have the required permissions to view the files attached to this post.
User avatar
alexcp
Senior
Posts: 141
Joined: 11 Jun 2012 07:30

Ура, заработало!

Post by alexcp »

Неожиданно, Ilya Kozlov (afaik не участник форума) собрал мой вариант контроллера образца конца 2012 года и смог его запустить на РК86/SRAM:
Добрый день, всё-таки получилось запустить Ваш контроллер FDC для платы Rk-86 SRAM 32k, подтянул резистором 1КОм сигнал Ready на плате контроллера, так что подтверждаю работоспособность Вашей версии контроллера, но без подбора дисковода всё-таки не обошлось, гарантирована работоспособность на дисководах марки Samsung SFD-321B/LE(b) ревизий T3, T4, T5, так же, возможно в каждом случае, необходимо регулировать головку дисковода.
Он же собрал описанный выше клон контроллера НГМД для "Микроши":
Так же лично познакомился с Тимуром (ака tnt23), это тот человек, который клонировал FDC для Микроши, и взяв у него платку, тоже спаял себе этот контроллер, все тоже работает на тех же дисководах и софт нормально читается и копируется.
Респект!
You do not have the required permissions to view the files attached to this post.
Last edited by alexcp on 15 Aug 2019 17:20, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: РК-ДОС

Post by Shaos »

Круто :rotate:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Как подсчитать контрольную сумму

Post by Lavr »

Lavr wrote:...статья Бориса Фролкина "Как подсчитать контрольную сумму" ("Радиолюбитель ", N 7/93), ошибочка была, и вроде как её потом нашли: Радиолюбитель 11/1994, c.15 - "Возвращаясь к напечатанному".
Приспичило мне сегодня "контрольную сумму" посчитать... и вроде идею этого метода я помню,
но и помню, что где-то там был косяк, ставший стандартом. Пришлось искать Бориса Фролкина... :wink:
Но чтобы в другой раз не искать, пусть будет здесь... 8)

 Как подсчитать контрольную сумму
RL_7_1993_c10.jpg
RL_7_1993_c11.jpg
RL_11_1994_c15.jpg

Журналы "Радиолюбитель", если вдруг надо, можно невозбранно брать здесь:
Белорусский журнал «Радиолюбитель»

P.S. И когда я это всё прочитал, выяснилось, что "контрольную сумму" посчитать мне надо для "Микроши",
а она считается несколько иначе...
:-?
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РК-ДОС

Post by Lavr »

В общем, ковырял я, ковырял Интернет на повод адреса подпрограммы, где вычисляется КС у "Микроши"...
А нашел в своём собственном бумажном руководстве по "Микроше" там ручкой было мной приписано:
0FBAAH - подсчет контрольной суммы [HL]-[DE] (портит [HL]), выход - [BC]

Ну и я быстренько код подсчета контрольной суммы для "Микроши" раскопал: :wink:

Code: Select all

LFBAA:
        LXI     B,0000H
LFBAD:
        MOV     A,M
        XRA     C
        MOV     C,A
        CALL    LFA1D
        MOV     A,M
        XRA     B
        MOV     B,A
        CALL    LFA1D
        JMP     LFBAD
LFA1D:
        CALL    LFA17
        JZ      LF9AA
        LDA     760BH
        CPI     03H
        JZ      LF9AA
        INX     H
        RET
LFA17:
        MOV     A,H
        CMP     D
        RNZ
        MOV     A,L
        CMP     E
        RET
LF9AA:
        INX     SP
        INX     SP
        RET
Я не знаю и не стал смотреть, что за ячейка памяти 760BH, но код 03H в ней подпрограмму прерывает.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РК-ДОС

Post by Lavr »

Не то, чтобы мне на старости лет захотелось посчитать контрольные суммы... :lol:
Просто я пытаюсь программировать на Best_C под "Микрошей", "Специалистом" и "Партнером"
на эмуляторе Виктора Пыхонина. И есть необходимость корректно "подсовывать" ему файлы. 8)

В общем, чтобы больше не возвращаться к этой теме, - КОНТРОЛЬНАЯ СУММА - алгоритм по-русски:
Lavr wrote:У "Радио РК-86", "Специалиста", "Партнера", "Ориона" в регистре C складываются все байты подряд. В регистре B складываются все эти же байты КРОМЕ ПОСЛЕДНЕГО :exclaim: с учетом флага переноса при сложении в регистре C.

Только в "Специалисте" Начало Программы, Конец Программы и Контрольная Сумма записываются как "Младший Байт - Старший Байт", во всех остальных - как " Старший Байт - Младший Байт".
У "Партнера" перед Контрольной Суммой идут байты: 00H, 0E6H.

У "Микроши" через XOR в регистре C складываются все ПЕРВЫЕ БАЙТЫ. В регистре B складываются через XOR все ВТОРЫЕ БАЙТЫ. (Специально не пишу чётные–нечетные, т.к. индексация в файле может быть как от "0, так и от "1".)
Ну я себе по-быстрому набросал две консольные утилиты, которые считают эти Контрольные Суммы:
CH_SUMM.zip
Проверял только на вариантах Best_C, но вроде всё правильно...
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
alexcp
Senior
Posts: 141
Joined: 11 Jun 2012 07:30

Re: РК-ДОС

Post by alexcp »

Для коллекции: я когда-то писал программу для эмуляции загрузки программ в РК с магнитофона на Маке (на самом деле, на любой платформе. где есть компилятор С и библиотека PortAudio). Там контрольная сумма считалась так:

Code: Select all

long checksum(unsigned char* buffer, long size)
{
    long loByte = 0;
    long hiByte = 0;
    long i = 0;

    for (;;) {
        loByte += *buffer;
        if (++i >= size) {
            return (loByte & 0xFF) + (hiByte << 8);
        }
        hiByte += *buffer;
        hiByte += ((loByte >> 8) & 1);
        loByte &= 0xFF; hiByte &= 0xFF;
        buffer++;
    }
}
В Мониторе РК это сделано так:

Code: Select all

ROM_MON:FB16 checksum_block:                         ; CODE XREF: ROM_MON:F82A↑j
ROM_MON:FB16                                         ; sub_F8EE+1AF↑p ...
ROM_MON:FB16                 lxi     b, 0
ROM_MON:FB19
ROM_MON:FB19 loc_FB19:                               ; CODE XREF: checksum_block+14↓j
ROM_MON:FB19                 mov     a, m
ROM_MON:FB1A                 add     c
ROM_MON:FB1B                 mov     c, a
ROM_MON:FB1C                 push    psw
ROM_MON:FB1D                 call    cmp16           ; compares DE to HL; returns Z flag; destroys A
ROM_MON:FB20                 jz      loc_F99F
ROM_MON:FB23                 pop     psw
ROM_MON:FB24                 mov     a, b
ROM_MON:FB25                 adc     m
ROM_MON:FB26                 mov     b, a
ROM_MON:FB27                 call    sub_F999
ROM_MON:FB2A                 jmp     loc_FB19
ROM_MON:FB2A ; End of function checksum_block
[...]
ROM_MON:F999 sub_F999:                               ; CODE XREF: memset+1↓p
ROM_MON:F999                                         ; sub_F8EE+114↓p ...
ROM_MON:F999                 call    cmp16           ; compares DE to HL; returns Z flag; destroys A
ROM_MON:F99C                 jnz     loc_F9A2
ROM_MON:F99F
ROM_MON:F99F loc_F99F:                               ; CODE XREF: checksum_block+A↓j
ROM_MON:F99F                 inx     sp
ROM_MON:F9A0                 inx     sp
ROM_MON:F9A1                 ret
ROM_MON:F9A2 ; ---------------------------------------------------------------------------
ROM_MON:F9A2
ROM_MON:F9A2 loc_F9A2:                               ; CODE XREF: sub_F999+3↑j
ROM_MON:F9A2                 inx     h
ROM_MON:F9A3                 ret
[...]
ROM_MON:F990 cmp16:                                  ; CODE XREF: sub_F999↓p
ROM_MON:F990                                         ; sub_F8EE:loc_FA3F↓p ...
ROM_MON:F990                 mov     a, h
ROM_MON:F991                 cmp     d
ROM_MON:F992                 rnz
ROM_MON:F993                 mov     a, l
ROM_MON:F994                 cmp     e
ROM_MON:F995                 ret
ROM_MON:F995 ; End of function cmp16
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РК-ДОС

Post by Lavr »

alexcp wrote:...на любой платформе. где есть компилятор С и библиотека PortAudio). Там контрольная сумма считалась так:...
Я подумал, что если алгоритм понятен по-русски, всяк его сможет воплотить на том, на чем сам пишет.

Я лично на Quick Basic написал, потому как у меня там шаблон готовый для утилит преобразования файлов. :lol:
Я только заголовок и основной цикл меняю в каждом конкретном случае... :wink:

А на С и под РК-86 ещё Виктор Пыхонин давненько исходник выкладывал из emu80:

Code: Select all

uint16_t cs = 0;                                       
for (uint16_t i = 0; i < fileSize - 1; i++) {          
    cs += buf[i];                                      
    cs += (buf[i] << 8);                               
}                                                      
cs = (cs & 0xff00) | ((cs + buf[fileSize - 1]) & 0xff);
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Как подсчитать контрольную сумму

Post by Lavr »

Lavr wrote:...статья Бориса Фролкина "Как подсчитать контрольную сумму" ("Радиолюбитель ", N 7/93), ошибочка была, и вроде как её потом нашли: Радиолюбитель 11/1994, c.15 - "Возвращаясь к напечатанному".
В какие-то древние года я эти статьи оцифровывал, но когда надо - нифига не найдёшь... :osad:
В общем, с контрольными суммами всё понятно, убираю опять на флешку, ну и чтобы долго не искать
в следующий раз, выкладываю тут обе статьи оцифрованные и остальной материал:
Как подсчитать Контрольную Сумму.zip
Ну не люблю я читать с картинок! :lol:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
barsik
Doomed
Posts: 585
Joined: 19 Feb 2017 03:46
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь

Версии RK-DOS для РК86 и Микроши

Post by barsik »

.
Посты про контрольную сумму здесь не по теме. К тому же в RK-DOS контрольная сумма секторов считается другим, хотя и подобным алгоритмом (отличие во втором байте КС). Прошу админа перенести шесть предыдущих постов о изысканиях на тему КС в Микроше в тему "Разное для Микроши" или ещё куда-нибудь. И если уж речь о подпрограмме подсчёта стандартной КС (п/п F82A), то оптимальнее всех других она сделана в ПЗУ ОРИОНА:

Code: Select all

CHSUM:  LD      BC,0
CHSLOO: LD      A,C
        ADD     A,(HL)
        LD      C,A
        PUSH    AF
        CALL    CMPDH
        JP      Z,POPAF
        POP     AF
        LD      A,B
        ADC     A,(HL)
        LD      B,A
        INC     HL
        JP      CHSLOO

POPAF:  POP     AF
        RET
Пару лет назад я выкладывал несколько улучшенных версий RK-DOS, но сейчас тот сайт протух. Изменять RK-DOS требуется по многим причинам. Во-первых, популярные в 1992 году дисководы 5.25"-DD имеющие выходной сигнал READY на 34-той ламели врубного разъёма, сейчас стали недоступными. В моду вошли дисководы на 3.5", в которых сигнал READY был только на ранних вариантах этих дисководов. Дешёвые массовые флопы 3.5" не имеют не только сигнала READY, но в них нет даже конфигуратора с перемычками для выбора номера привода (т.е для выбора включать дисковод в ОС как A: или как B:) и задавать это приходится позиционно, перекрученным шлейфом.

Оригинал RK-DOS нуждается для работы в наличии сигнала READY, иначе происходит запись на диск при ещё не раскрученном до номинальной скорости шпинделе и дискета портится. Выход из этой ситуациия я придумал в 1993, когда поимел флоповод TEAC-55FR 5.25"-HD, в котором тоже не было сигнала READY.

Я использовал аппаратное решение - два последовательно включённых КМОП-вентиля с RC цепочкой между, образующие собой узел задержки сигнала на 0.75 секунды. На вход первого вентиля подаётся сигнал полученный объединением на диодах выборки DS0 и DS1. В итоге READY формируется спустя 0.75 секунды после вызова подпрограммы PUSK RK-DOS. Такая "химия" работала. Современные пользователи RK-DOS почему-то до этого не додумались и надрываются в безуспешных поисках антикварных дисководов 3.5" с сигналом READY.

Впоследствии я чуть изменил RK-DOS, введя программное формирование сигнала READY из сигнала INDEX. По линии INDEX выдаётся один импульс за оборот в момент прохождения индексной дырки над оптроном. Т.к в современном флоповоде колесо разгоняется до номинальной скорости всего за пару оборотов, то достаточно обнаружить прохождение нескольких импульсов INDEX и можно считать, что READY получен.

Кроме того менять код оригинала RK-DOS надо потому, что на процессоре Z80 оригинал RK-DOS вообще не работает (т.к в Z80 команды IN/OUT работают иначе). Также очень неудобно, что команда DIR выдаёт список файлов в одну колонку, что из-за ролика экрана не позволяет обзор списка файлов. Есть ещё два неудобства - в именах файлов допустимы только цифры и буквы (спец.сиволы недопустимы). Кстати, оригинальное ПЗУ F800 в РК86 не умеет вводить символ "подчёркивание", это делает только доработанное ПЗУ. А также неприятно, что RK-DOS разделителем в командах всегда требует "запятую", а пробел недопустим, что неудобно для людей.

Два года назад я странслировал универсальную для обоих процессоров версию 2.96. Эта версия получена оптимизацией RK-DOS по объёму кода. За счёт чего исключены команды IN/OUT, но команды Z80 не используются. Благодаря чему получилась универсальная версия RK-DOS пригодная, как для процессора КР580, так и для Z80, но по прежнему нуждающаяся в сигнале READY.

Но т.к версия работающая на НГМД без READY была только для Z80, а он у большинства пользователей РК86 отсутствует, то вчера я ещё немного уплющил код и мне удалось отчистив код от команд IN/OUT, впихнуть в 4 кб версию RK-DOS работающую с дисководом без READY и, таким образом получить версию пригодную как для КР580 так и для Z80. Версия RK-DOS с командами IN/OUT использующая INDEX уже имелась ранее, её удалось сделать сразу, ещё пару лет назад, но вот от команд IN/OUT ранее избавиться не удавалось.

Очистка от команд IN/OUT увеличивает объём кода и в кодах КР580 никак не влезала в 4 кб. Недавно делая CP/M для РК86 я обнаружил, что сдуру использовал п/п-му READY из RK-DOS 1994 года. Оказывается впоследствии, используя п/п-ммы RK-DOS для CP/M, я немного оптимизировал эту п/п-мму. Подпрограмма READY там стала на 15 байтов короче.

Использование этой п/п-ммы из CP/M ОРИОНА решило наконец проблему нехватки объёма ПЗУ. Стало не хватать лишь десятка байтов, которые приложив дополнительные усилия удалось выиграть. В итоге удалось избавить версию 2.97 от мерзких команд IN/OUT и получилась наконец желаемая версия и без READY и без команд IN/OUT, т.е универсальная, пригодная для всех дисководов и всех процессоров.

Эти версии решают проблему с подбором дисководов для РК86 и Микроши. Итак на сегодня есть следующие версии RK-DOS:

Версия 2.95. READY надо, КР580. Требует дисковод с сигналом READY, на Z80 не работает. DIR в одну колонку.

Версия 2.96. READY надо, Z80 / КР580. Требует дисковод с сигналом READY, но работает и на Z80.

Версия 2.97. Без READY, КР580. Не требует наличия сигнала READY. Только КР580 (есть IN/OUT).

Версия 2.98. Без READY. Z80. Работает только при Z80, имеет свободное место для доработок.

Версия 2.99. Без READY, Z80 / КР580. Не требует дисковод с сигналом READY и не требует КР580.

Вот здесь все исходники и коды этих версий RK-DOS (чтобы получить код надо запустить командный файл или можно коды взять в эмуляторе по ссылке ниже).

Версии RK-DOS (кроме 2.99) разрешают в именах файлов запрещённые в оригинале символы (апостроф, доллар, тире, равно) и вывод каталога делается в три колонки. В качестве ПЗУ в РК удобно ПЗУ, код которого выложен здесь. Оригинал ПЗУ РК не работает с Z80, а это ПЗУ универсальное, т.е работает с Z80 и КР580 (и имеет ещё 153 свободных ячейки ПЗУ для расширений).

Вот здесь можно скачать версию эмулятора с эмуляцией РК-КНГМД, работающую с обоими процессорами, где можно посмотреть и проверить RKDOS, а для удобства в ПЗУ F800, кроме директив <K> и <H> там добавлена команда <B> (без параметров), что делает запуск RK-DOS. Директива <G> - правильная, передаёт запускаемой программе два параметра и позволяет возврат в монитор по RET.

Пользование простое, распаковываете, запускаете файл Emu80.exe, затем нажимаете <B> и <ВК>. Затем можно ввести команду DIR или запустить седовский нортон SE.COM. Чтобы при смене платформы не надо было удалять файл emu80.run, откомментируйте одну из строк в конце файла emu80.conf. Чтобы заменить файл RK-DOS надо заменить строку с именем файла (это сразу в начале конфига).

Позднее я выложу версию RK-DOS на 6 кб (ПЗУ 8 кб с E000, а РК-КНГМД перенесён с F000 на 8800), которая не нуждается в некоторых часто используемых SYS-файлах и поддерживает эл.диск (32К...512К, размер ЭД определяется автоматически) из дополнительного ОЗУ включенного странично в окне A000...BFFF.

Я занялся РК-КНГМД для РК86 не ради РК86, который меня мало интересует, а лишь потому, что надо отладить CP/M-подпрограммы для РК-КНГМД. Для РК86 вообще и в том числе под RK-DOS я не намеревался что-либо писать, хотя возможно что-то перетранслирую из имеющихся исходников.

Однако у меня есть исходники нортона на Z80 для RK-DOS, но не для РК86, а для ОРИОНА. Адаптация его для РК86 в 15 раз проще, чем написание с нуля. Надо только убрать Z80-команды LD (nnnn),RR JR DJNZ и SBC (а другие Z80-команды я не использую) и переделать вывод на экран ОРИОНА на вывод на экран РК86. Для меня лично этот нортон интересен лишь для RK-DOS Специалиста, потому вскоре я собираюсь адаптировать этот нортон для него (для Специалиста это проще, чем для РК86, т.к у ОРИОНА и Специалиста одинаковый экран).

Если будут заинтересованные в RK-DOS-нортоне на РК86 лучшем, чем SE.COM Е.Седова, то я могу этот нортон переделать для базового РК86.

 
.
Вот с такой простой процедурой эмуляции READY у меня почти 25 лет с РК-КНГМД работали в CP/M дисководы без READY. Для эмуляции READY из сигнала INDEX не обязательно мерить период 200 МСЕК между двумя импульсами (что на РК проблематично, т.к он плохо работает в реальном времени). Современные флопы разгоняются уже за 2-3 оборота, потому достаточно просто отследить приход 2-3 импульсов и можно считать, что шпиндель вышел на номинальную скорость в 300 об/мин. Я использовал дисковод 5.25"-HD и ждал 6 оборотов. Для дисковода 3.5" достаточно ждать всего 2-3 оборота.

В эмуляторе EMU80 READY выдаётся быстро, потому кажется, что версия RK-DOS с контролем READY реагирует быстрее. А на реале задержка одинакова. Флаг PSKFLG взводится по первому вызову п/п PUSK (сбрасывается он в RK-DOS п/п-ммой OSTANOV). П/п PUSK вызывается при чтении/записи каждого сектора, но благодаря флагу PSKFLG контроль раскрутки колеса делается только первый раз при невращающемся колесе.

Code: Select all

CHK_OB  EQU     4               ; число оборотов колеса до выдачи READY

READY:  LD      HL,PSKFLG       ; READY нет - проверяем INDEX
        LD      A,(HL)
        LD      (HL),255

        INC     A
        RET     Z

        LD      B,CHK_OB
IDXLOO: CALL    OBOROT
        RET     NZ
        DEC     B
        JP      NZ,IDXLOO
        RET

OBOROT:
;       LD      H,0FFH          ; ЖДЕМ INDX 1
        LD      D,H
INDX1:  LD      A,(PORT+1)
        AND     IDXMSK
        JP      NZ,INDX2
        DEC     HL
        LD      A,H
        OR      L
        JP      NZ,INDX1
        INC     A
        RET

INDX2:  ; LD      D,0FFH        ; ЖДЕМ INDX 0
INDX3:  LD      A,(PORT+1)
        AND     IDXMSK
        RET     Z
        DEC     DE
        LD      A,D
        OR      E
        JP      NZ,INDX3
        INC     A
        RET


PS. Если у кого-то родится идея как ещё можно ужать код в 580-тых версиях хотя бы на один байт, пожалуйста сообщите.
Savoj
Senior
Posts: 102
Joined: 22 Oct 2010 11:36
Location: 178.122.227.140

Re: РК-ДОС

Post by Savoj »

Хотелось бы задать два наивных вопроса....
1. Где скачать ПЗУ на данную плату.
2. Подключается ли эта плата к первому варианту РК86 из журнала Радио.
You do not have the required permissions to view the files attached to this post.
User avatar
alexcp
Senior
Posts: 141
Joined: 11 Jun 2012 07:30

Re: РК-ДОС

Post by alexcp »

Savoj wrote:1. Где скачать ПЗУ на данную плату.
Вроде у соседей лежало. Я постараюсь выложить на pbworks, и заодно подчистить там неработающие ссылки.
Savoj wrote:2. Подключается ли эта плата к первому варианту РК86 из журнала Радио.
В принципе да, но придется поколхозить. Плата сделана так, чтобы втыкаться в панельку ПЗУ на основной плате РК86-SRAM. Проблема в том, что вариант платы из журнала Радио сделан под К573РФ5, а не AT28C64, как в РК86-SRAM.
Savoj
Senior
Posts: 102
Joined: 22 Oct 2010 11:36
Location: 178.122.227.140

Re: РК-ДОС

Post by Savoj »

А как лучше поколхозить?
Вот читал дружеский форум не один раз, а прошивку не заметил.
User avatar
alexcp
Senior
Posts: 141
Joined: 11 Jun 2012 07:30

Re: РК-ДОС

Post by alexcp »

Savoj wrote:А как лучше поколхозить?
Известно как - отрезками провода. Этот НГМД подключается к шине данных, к шине адреса и к шине управления. В Микроше, к примеру, для этого предусмотрен отдельный разъем. Я решил, что удобно подключиться (плоским шлейфом с соответствующими разъёмами, или 28-контактным переходником) к панельке ПЗУ, на которой есть почти все необходимые сигналы, а само ПЗУ вынести на плату КНГМД. В оригинальной плате из журнала Радио, как я понимаю, требовалось припаяться к нужным площадкам на плате. Вот это и нужно сделать - каждый контакт разъема, обозначенного как "CONNECT TO ROM SOCKET", и еще трехконтактного рядом с ним, нужно кусочком провода подключить к соответствующему месту на основной плате РК. Поскольку цоколёвка ПЗУ другая, да и ног у РФ5 меньше, это соответствующее место нужно сначала найти.
Savoj wrote:Вот читал дружеский форум не один раз, а прошивку не заметил.
ПЗУ устроено просто: из общего объема в 8Кб первые 4Кб занимает РК-ДОС (в адресном пространстве это соответствует адресам E000..EFFF), затем 2Кб чего угодно, затем 2Кб обычного Монитора (F800-FFFF). В принципе его легко собрать из отдельных кусочков - варианты ДОСа чуть выше выложил @barsik, да и у соседей где-то лежит в соответствующей теме, а Монитор много где выложен, хотя бы в файловом архиве на emu80.org.