и что, работает?...jcuken wrote:Контроллер клонирован:
http://sensi.org/~tnt23/rk86/
РК-ДОС
Moderator: Shaos
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: РК-ДОС
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Junior
- Posts: 2
- Joined: 04 Jul 2017 12:45
Re: РК-ДОС
Работает, аж шуба заворачивается.
You do not have the required permissions to view the files attached to this post.
-
- Senior
- Posts: 141
- Joined: 11 Jun 2012 07:30
Ура, заработало!
Неожиданно, 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.
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Как подсчитать контрольную сумму
Приспичило мне сегодня "контрольную сумму" посчитать... и вроде идею этого метода я помню,Lavr wrote:...статья Бориса Фролкина "Как подсчитать контрольную сумму" ("Радиолюбитель ", N 7/93), ошибочка была, и вроде как её потом нашли: Радиолюбитель 11/1994, c.15 - "Возвращаясь к напечатанному".
но и помню, что где-то там был косяк, ставший стандартом. Пришлось искать Бориса Фролкина...

Но чтобы в другой раз не искать, пусть будет здесь...

Журналы "Радиолюбитель", если вдруг надо, можно невозбранно брать здесь:
Белорусский журнал «Радиолюбитель»
P.S. И когда я это всё прочитал, выяснилось, что "контрольную сумму" посчитать мне надо для "Микроши",
а она считается несколько иначе...

You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: РК-ДОС
В общем, ковырял я, ковырял Интернет на повод адреса подпрограммы, где вычисляется КС у "Микроши"...
А нашел в своём собственном бумажном руководстве по "Микроше" там ручкой было мной приписано:
0FBAAH - подсчет контрольной суммы [HL]-[DE] (портит [HL]), выход - [BC]
Ну и я быстренько код подсчета контрольной суммы для "Микроши" раскопал:
Я не знаю и не стал смотреть, что за ячейка памяти 760BH, но код 03H в ней подпрограмму прерывает.
А нашел в своём собственном бумажном руководстве по "Микроше" там ручкой было мной приписано:
0FBAAH - подсчет контрольной суммы [HL]-[DE] (портит [HL]), выход - [BC]
Ну и я быстренько код подсчета контрольной суммы для "Микроши" раскопал:

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
iLavr
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: РК-ДОС
Не то, чтобы мне на старости лет захотелось посчитать контрольные суммы...
Просто я пытаюсь программировать на Best_C под "Микрошей", "Специалистом" и "Партнером"
на эмуляторе Виктора Пыхонина. И есть необходимость корректно "подсовывать" ему файлы.
В общем, чтобы больше не возвращаться к этой теме, - КОНТРОЛЬНАЯ СУММА - алгоритм по-русски:

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

В общем, чтобы больше не возвращаться к этой теме, - КОНТРОЛЬНАЯ СУММА - алгоритм по-русски:
Ну я себе по-быстрому набросал две консольные утилиты, которые считают эти Контрольные Суммы: Проверял только на вариантах Best_C, но вроде всё правильно...Lavr wrote:У "Радио РК-86", "Специалиста", "Партнера", "Ориона" в регистре C складываются все байты подряд. В регистре B складываются все эти же байты КРОМЕ ПОСЛЕДНЕГОс учетом флага переноса при сложении в регистре C.
Только в "Специалисте" Начало Программы, Конец Программы и Контрольная Сумма записываются как "Младший Байт - Старший Байт", во всех остальных - как " Старший Байт - Младший Байт".
У "Партнера" перед Контрольной Суммой идут байты: 00H, 0E6H.
У "Микроши" через XOR в регистре C складываются все ПЕРВЫЕ БАЙТЫ. В регистре B складываются через XOR все ВТОРЫЕ БАЙТЫ. (Специально не пишу чётные–нечетные, т.к. индексация в файле может быть как от "0, так и от "1".)
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Senior
- Posts: 141
- Joined: 11 Jun 2012 07:30
Re: РК-ДОС
Для коллекции: я когда-то писал программу для эмуляции загрузки программ в РК с магнитофона на Маке (на самом деле, на любой платформе. где есть компилятор С и библиотека 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
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: РК-ДОС
Я подумал, что если алгоритм понятен по-русски, всяк его сможет воплотить на том, на чем сам пишет.alexcp wrote:...на любой платформе. где есть компилятор С и библиотека PortAudio). Там контрольная сумма считалась так:...
Я лично на Quick Basic написал, потому как у меня там шаблон готовый для утилит преобразования файлов.

Я только заголовок и основной цикл меняю в каждом конкретном случае...

А на С и под РК-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
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Как подсчитать контрольную сумму
В какие-то древние года я эти статьи оцифровывал, но когда надо - нифига не найдёшь...Lavr wrote:...статья Бориса Фролкина "Как подсчитать контрольную сумму" ("Радиолюбитель ", N 7/93), ошибочка была, и вроде как её потом нашли: Радиолюбитель 11/1994, c.15 - "Возвращаясь к напечатанному".

В общем, с контрольными суммами всё понятно, убираю опять на флешку, ну и чтобы долго не искать
в следующий раз, выкладываю тут обе статьи оцифрованные и остальной материал: Ну не люблю я читать с картинок!

You do not have the required permissions to view the files attached to this post.
iLavr
-
- Doomed
- Posts: 585
- Joined: 19 Feb 2017 03:46
- Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Версии RK-DOS для РК86 и Микроши
.
Посты про контрольную сумму здесь не по теме. К тому же в RK-DOS контрольная сумма секторов считается другим, хотя и подобным алгоритмом (отличие во втором байте КС). Прошу админа перенести шесть предыдущих постов о изысканиях на тему КС в Микроше в тему "Разное для Микроши" или ещё куда-нибудь. И если уж речь о подпрограмме подсчёта стандартной КС (п/п F82A), то оптимальнее всех других она сделана в ПЗУ ОРИОНА:
Пару лет назад я выкладывал несколько улучшенных версий 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.
PS. Если у кого-то родится идея как ещё можно ужать код в 580-тых версиях хотя бы на один байт, пожалуйста сообщите.
Посты про контрольную сумму здесь не по теме. К тому же в 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 нуждается для работы в наличии сигнала 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.
PS. Если у кого-то родится идея как ещё можно ужать код в 580-тых версиях хотя бы на один байт, пожалуйста сообщите.
-
- Senior
- Posts: 102
- Joined: 22 Oct 2010 11:36
- Location: 178.122.227.140
Re: РК-ДОС
Хотелось бы задать два наивных вопроса....
1. Где скачать ПЗУ на данную плату.
2. Подключается ли эта плата к первому варианту РК86 из журнала Радио.
1. Где скачать ПЗУ на данную плату.
2. Подключается ли эта плата к первому варианту РК86 из журнала Радио.
You do not have the required permissions to view the files attached to this post.
-
- Senior
- Posts: 141
- Joined: 11 Jun 2012 07:30
Re: РК-ДОС
Вроде у соседей лежало. Я постараюсь выложить на pbworks, и заодно подчистить там неработающие ссылки.Savoj wrote:1. Где скачать ПЗУ на данную плату.
В принципе да, но придется поколхозить. Плата сделана так, чтобы втыкаться в панельку ПЗУ на основной плате РК86-SRAM. Проблема в том, что вариант платы из журнала Радио сделан под К573РФ5, а не AT28C64, как в РК86-SRAM.Savoj wrote:2. Подключается ли эта плата к первому варианту РК86 из журнала Радио.
-
- Senior
- Posts: 102
- Joined: 22 Oct 2010 11:36
- Location: 178.122.227.140
Re: РК-ДОС
А как лучше поколхозить?
Вот читал дружеский форум не один раз, а прошивку не заметил.
Вот читал дружеский форум не один раз, а прошивку не заметил.
-
- Senior
- Posts: 141
- Joined: 11 Jun 2012 07:30
Re: РК-ДОС
Известно как - отрезками провода. Этот НГМД подключается к шине данных, к шине адреса и к шине управления. В Микроше, к примеру, для этого предусмотрен отдельный разъем. Я решил, что удобно подключиться (плоским шлейфом с соответствующими разъёмами, или 28-контактным переходником) к панельке ПЗУ, на которой есть почти все необходимые сигналы, а само ПЗУ вынести на плату КНГМД. В оригинальной плате из журнала Радио, как я понимаю, требовалось припаяться к нужным площадкам на плате. Вот это и нужно сделать - каждый контакт разъема, обозначенного как "CONNECT TO ROM SOCKET", и еще трехконтактного рядом с ним, нужно кусочком провода подключить к соответствующему месту на основной плате РК. Поскольку цоколёвка ПЗУ другая, да и ног у РФ5 меньше, это соответствующее место нужно сначала найти.Savoj wrote:А как лучше поколхозить?
ПЗУ устроено просто: из общего объема в 8Кб первые 4Кб занимает РК-ДОС (в адресном пространстве это соответствует адресам E000..EFFF), затем 2Кб чего угодно, затем 2Кб обычного Монитора (F800-FFFF). В принципе его легко собрать из отдельных кусочков - варианты ДОСа чуть выше выложил @barsik, да и у соседей где-то лежит в соответствующей теме, а Монитор много где выложен, хотя бы в файловом архиве на emu80.org.Savoj wrote:Вот читал дружеский форум не один раз, а прошивку не заметил.