-
24.08.2019, 13:29 #31
- Регистрация
- 08.06.2005
- Адрес
- Ставрополь
- Возраст
- 56
- Сообщений
- 313
- Поблагодарили
- 57
- Поблагодарил
- 20
Именно.
Это понятно, но именно поэтому вся видеопамять вынесена в Мегу и недоступна основному процессору. Пусть комп занимается своими задачами, тупо метнув байт в видеоадаптер, а Мега - своими, а именно видеовыводом: формированием сигнала, куда помещать принятый байт и подобное. Атрибуты - пока ещё лишнее, они не особо нужны в реальной жизни (хотя часть из них реализована, в т.ч. "спрайтовый" вывод)
-
25.08.2019, 15:16 #32
- Регистрация
- 10.10.2003
- Адрес
- Калуга
- Возраст
- 50
- Сообщений
- 441
- Поблагодарили
- 12
- Поблагодарил
- 7
А сейчас отредактировать не могу.
Во второй строчке не F 809, а F 803 . Это шестнадцатиричные числа, адреса совпадают с адресами соответствующих подпрограмм "Мониторов" микроЭВМ "Орион-128", "ЮТ-88", возможно "Радио-86РК". Правильно должно быть так:
DA06h JMP CONST (F 812 - активность клавиатуры)
DA09h JMP CONIN (F 803 - приём с клавиатуры в А)
DA0Ch JMP CONOUT (F 809 - вывод на дисплей)
DA0 h JMP LIST (F 809 - вывод на дисплей)
DA12h JMP PUNCH (F 80C - вывод на магнитофон)
DA15h JMP READER (F 806 - ввод с магнитофона)RA3XCQ ( Larry158 )
-
25.08.2019, 17:15 #33
- Регистрация
- 21.07.2004
- Возраст
- 66
- Сообщений
- 1,143
- Поблагодарили
- 109
- Поблагодарил
- 99
-
27.08.2019, 18:05 #34
- Регистрация
- 08.06.2005
- Адрес
- Ставрополь
- Возраст
- 56
- Сообщений
- 313
- Поблагодарили
- 57
- Поблагодарил
- 20
...эм.. так они выложены, причем давно. Если лень лопатить страничку заново, то:
- https://vk.com/doc117527293_437544986 - описание системы. Даны исходники как_есть, без привязки к железу.
- http://searle.hostei.com/grant/cpm/z80sbcFiles.zip - исходники, которые переделывались мною.
- http://rw6hrm.qrz.ru/zips/hexFiles.zip - исходники, переделанные под моё железо (конкретно ввод-вывод, плюс перекодировщик управляющих последовательностей).
По поводу ЮТа - рекомендую ознакомиться с разделом https://zx-pk.ru/forums/86-yut-88.html
Касаемо работы СР/М на ЮТе, то эту мифическую сборку мало кто повторял в связи с несовершенством конструкции.
-
29.08.2019, 21:34 #35
- Регистрация
- 10.10.2003
- Адрес
- Калуга
- Возраст
- 50
- Сообщений
- 441
- Поблагодарили
- 12
- Поблагодарил
- 7
Да я как-то о совместимости таким образом обеспокоился. В руководстве по программированию https://vk.com/doc117527293_513145790 в Appendix D описан, видимо, универсальный вызов подпрограммы операционной системы CP/M по адресу 0005h , CALL 0005h. У Журдена ( по файлам в компьютере, он же Джордейн по книге на бумаге ) для MS-DOS часто приводится в примерах процедура обработки прерывания INT 21.
Также подпрограмма по адресу 0005h вкратце упомянута в описании "ЮТ-88".
PS. И Вы почему-то выложили файлы руководства по CP/M не у себя на сайте RW6HRM homepage , а на сайте социальной сети "В контакте" https://vk.com/ . Уровень представления , приложения OSI вспоминается. Оболочки программ дело серьёзное, психологическое. Серьёзные дела и с глупым выражением лица могут делаться... :-)Последний раз редактировалось RA3XCQ; 29.08.2019 в 21:36. Причина: уточнение
RA3XCQ ( Larry158 )
-
29.08.2019, 22:01 #36
- Регистрация
- 08.06.2005
- Адрес
- Ставрополь
- Возраст
- 56
- Сообщений
- 313
- Поблагодарили
- 57
- Поблагодарил
- 20
У меня большая часть информации лежит на ВК, который использую как файлохранилище (фоточек в том числе) уже лет семь, поскольку место на хостингах всегда лимитируется, а там /пока ещё/ нет (про доступ из некоторых стран умолчу)...
Что касается подпрограмм в первой странице памяти (до 100h), то они загружаются туда во время запуска системы и могут изменяться во время работы. В частности, если система работает с одним прерыванием по 38h, то при загрузке отладчика DDT он перетирает содержимое адреса вызова подпрограммы на своё, вследствие чего прерывания системы перестают обрабатываться.
-
31.08.2019, 17:02 #37
- Регистрация
- 10.10.2003
- Адрес
- Калуга
- Возраст
- 50
- Сообщений
- 441
- Поблагодарили
- 12
- Поблагодарил
- 7
И..., что ж..., так сказать...
NMI c адреса 66h должет обработаться...
Как это с одним? RESET, INT и NMI.
( У нас в универе преподаватель вычислительной техники при таких высказываниях в окно на улицу чего-то поглядывал. )RA3XCQ ( Larry158 )
-
31.08.2019, 19:09 #38
- Регистрация
- 08.06.2005
- Адрес
- Ставрополь
- Возраст
- 56
- Сообщений
- 313
- Поблагодарили
- 57
- Поблагодарил
- 20
NMI это для Z80, но есть же и ВМ80, а с ним всё печально... Это у 6502 три программируемых вектора, по сбросу маскируемому и немаскируемому прерываниям, расположенные по стандартным адресам...
-
31.08.2019, 19:25 #39
- Регистрация
- 21.07.2004
- Возраст
- 66
- Сообщений
- 1,143
- Поблагодарили
- 109
- Поблагодарил
- 99
на сколько я понял обсуждение - надо было контроллер прерываний ставить ?
ra3qdp
-
31.08.2019, 19:46 #40
- Регистрация
- 08.06.2005
- Адрес
- Ставрополь
- Возраст
- 56
- Сообщений
- 313
- Поблагодарили
- 57
- Поблагодарил
- 20
Его возможно поставить (из серии К1818), но по необходимости. Но в этом случае достоинство схемы - простота - потеряется.
-
01.09.2019, 00:01 #41
- Регистрация
- 10.10.2003
- Адрес
- Калуга
- Возраст
- 50
- Сообщений
- 441
- Поблагодарили
- 12
- Поблагодарил
- 7
Я склоняюсь к тому, чтобы поддерживать как архитектуру, так и машинный код данной системы на Z80 с минимально возможными изменениями. Однако практика показывает, что практически это невозможно. Недавно, годик-другой назад, на одном из форумов было сообщение, что применяется плоская модель памяти, а сегментация, дескать, это - рудимент. А я что-то по вышеприведённой литературе и источникам перемещаемость программ без сегментации как-то не представляю. То есть здесь надо чётко соблюдать адресацию точек входа и состояния регистров микропроцессора.
У меня есть информация из журнала "Радио", если не ошибаюсь, 1994 года, что между Z80А и КР580ВМ80А есть разница в том, сколько тактов необходимо для выполнения одинаковых команд.RA3XCQ ( Larry158 )
-
01.09.2019, 00:04 #42
- Регистрация
- 10.10.2003
- Адрес
- Калуга
- Возраст
- 50
- Сообщений
- 441
- Поблагодарили
- 12
- Поблагодарил
- 7
-
01.09.2019, 16:36 #43
- Регистрация
- 21.07.2004
- Возраст
- 66
- Сообщений
- 1,143
- Поблагодарили
- 109
- Поблагодарил
- 99
-
01.09.2019, 18:47 #44
- Регистрация
- 10.10.2003
- Адрес
- Калуга
- Возраст
- 50
- Сообщений
- 441
- Поблагодарили
- 12
- Поблагодарил
- 7
Сегментация применяется для микропроцессоров фирмы Intel "x86", начиная с таких как 8086, 80286. Таким образом программа может работать без "привязки" к конкретным адресам её размещения в ОЗУ компьютера. Источником информации может послужить книга Р. Джордейна "Справочник программиста персональных компьютеров типа IBM PC, XT и AT". В электронном виде фамилия Джордейн может быть переведена как Журден.
Для микропроцессоров Z80 в рамках операционной системы CP/M можно обеспечить некоторую совместимость, например, при обращении к функциям операционной системы CP/M, вызывая подпрограмму по адресу 0005h, CALL 0005h. Замечу, что для меня это чистая теория из того, что показалось интересным в вышеприведённых источниках. Мне ближе, всё-таки, семейство процессоров "x86" фирмы Intel и совместимых с ними.RA3XCQ ( Larry158 )
-
03.01.2020, 00:10 #45
- Регистрация
- 10.10.2003
- Адрес
- Калуга
- Возраст
- 50
- Сообщений
- 441
- Поблагодарили
- 12
- Поблагодарил
- 7
Пользуясь в рамках ОС CP/M-80 с таблицей символов ASCII BDOS функциями подпрограммы CALL 0005, например, для ввода с клавиатуры функциями #01, #0AH, #0Bh, для вывода байта - функцией #02, для вывода строки - функцией #09, можно, наверное, писать не только программы для обработки каких-то структурированных данных, но и для таких игр, как "питон", "пакман", "теннис", тот же "тетрис". Для ДВК, помнится, была такая игра "Бармен", напоминающая "Ну, погоди!", но в ней вместо волка - посетитель бара, изображенный символами, а вместо яиц - стаканы с напитками.
Однако, в "Тетрисе" Яковлева (пост №17 ) для MS-DOS функции, подобные терминальному выводу, используются только для начальной заставки, адрес в программе seg000:0A16. Само же игровое поле создается посылкой символов в адреса после 4000h, в программе на адресе seg000:0172 mov di, 4000h. При этом для меня это не теория, а вполне работоспособная программа на нескольких компьютерах поздних 90-х и 2000-х годов выпуска.RA3XCQ ( Larry158 )
Социальные закладки