Июнь 2019
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930

Календарь Календарь

Последние темы
» Ферритовые антенны.
автор Viktor2312 Сегодня в 16:27

» ПЭВМ "Ириша". Программное обеспечение (ПО), общая тема.
автор barsik Вчера в 17:03

» ПЭВМ "Электроника МС1502"
автор alemorf Вчера в 12:12

» "Орион Супер-4" (Ташкентский).
автор barsik Вчера в 09:57

» ПЭВМ Специалист, основной вариант
автор barsik Вс Июн 16 2019, 17:00

» Орион-128. Документация, схемы, платы...
автор Viktor2312 Вс Июн 16 2019, 11:21

» Жалобы/пожелания по работе форума
автор barsik Сб Июн 15 2019, 20:56

» Специалист как болванка для творчества аппаратчиков
автор barsik Сб Июн 15 2019, 11:55

» SINOVATE (SIN). Криптовалюта Синовэйт.
автор Viktor2312 Чт Июн 13 2019, 22:10

» Партнер 01.01: О компьютере
автор alemorf Чт Июн 13 2019, 14:29

» ПЭВМ "Эрик"
автор barsik Чт Июн 13 2019, 13:45

» Микросхемы ПЛИС CPLD CoolRunner-II.
автор Viktor2312 Чт Июн 13 2019, 09:46

» Litecoin (LTC). Криптовалюта Лайткоин.
автор Viktor2312 Вт Июн 11 2019, 19:58

» Новинки. Книги. Часть 3.
автор Viktor2312 Вт Июн 11 2019, 07:40

» Обмен между дискетами CP/M <-> IBM (720Kb)
автор barsik Сб Июн 08 2019, 18:30

» Орион-ПРО. Эмулятор iMSX
автор barsik Сб Июн 08 2019, 17:53

» Подключение 3.5" дисковода к Ориону
автор barsik Сб Июн 08 2019, 17:40

» Download для ОРИОНА
автор barsik Пт Июн 07 2019, 20:04

» Формирователь монохромного видеовыхода ОРИОНА
автор barsik Пт Июн 07 2019, 18:05

» Орион-128. Расширение памяти до 512 КБ на 565РУ7.
автор barsik Пт Июн 07 2019, 11:02

» КНГМД (Орион-Турбо)
автор barsik Пт Июн 07 2019, 10:36

» Расширение порта F600. "Орион-128".
автор barsik Пт Июн 07 2019, 10:22

» Орион-128: Полезные доработки ПЭВМ
автор barsik Пт Июн 07 2019, 09:49

» Орион-128: Демки
автор barsik Пт Июн 07 2019, 09:15

» Орион-128: BASIC
автор barsik Пт Июн 07 2019, 08:50

Самые активные пользователи за месяц
Viktor2312
ИРИША и магнитофон Vote_lcapИРИША и магнитофон Voting_barИРИША и магнитофон Vote_rcap 
barsik
ИРИША и магнитофон Vote_lcapИРИША и магнитофон Voting_barИРИША и магнитофон Vote_rcap 
alemorf
ИРИША и магнитофон Vote_lcapИРИША и магнитофон Voting_barИРИША и магнитофон Vote_rcap 
parsec
ИРИША и магнитофон Vote_lcapИРИША и магнитофон Voting_barИРИША и магнитофон Vote_rcap 

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


ИРИША и магнитофон

Перейти вниз

ИРИША и магнитофон Empty ИРИША и магнитофон

Сообщение  barsik в Пн Май 13 2019, 04:23

1
Viktor2312 пишет:если я захочу через год считать эту программу, я уже точно не буду помнить сколько там байт?
В этом-то и заключается дурость монитора ИРИШИ. Даже, если у вас сохранились кассеты с записями программ ИРИШИ, загрузить их вы не сможете, если забыли адреса загрузки и размеры файлов.

Потому в мониторе-отладчике ИРИШИ разумно доработать работу с МГ. Желательно ввести директивы чтения/записи файла, хотя-бы аналогичные монитору РК86, чтобы на ленту выводились адрес загрузки, длина файла и контр.сумма. А ещё лучше сделать формат как в Специалисте с именем файла, что ещё более удобно для ориентации.

Хотя кажется, что это сложно, но на самом деле сделать это для реала - это немного труда. Например, изменить формат записи вводимой по нажатию <ВК> на пункте "МАГНИТОФОН" стартового меню так, чтобы не вводился и автостартовал блок размером $100 на $A000, а вводился и запускался блок произвольного размера на произвольный адрес, это всего несколько десятков команд ассемблера.

Тут проблема не в том, чтобы написать код, а в том, чтобы такой МГ-ввод работал в эмуляторе (чтобы было удобно отлаживать). Т.к эмулятор не рассчитан на ввод многоблочных программ в кодах, в нём использование команды "МАГНИТОФОН" неудобно. Возможно, ввод многоблочных программ сработает в WAV-формате. По крайней мере в EMU, ввод многоблочных программ в двухфазной кодировке срабатывал (не всегда, только в той же базовой 2F кодировке, при смене формата уже не работает).

С вводом в WAV-формате надо ещё разбираться. Но даже, если это сработает, для использования в эмуляторе это неудобно (и очень медленно). Но вот как можно было бы реализовать многоблочный ввод в кодах. Проблема многоблочного ввода заключается в отсутствии автоматизации. Перехват по вызову подпрограммы ввода блока (ROM: $0040) хорошо срабатывает, но всякий раз это требует от пользователя в Windows-окне МГ-ввода выбирать очередной файл подлежащий вводу.

Суть многоблочной загрузки ИРИШИ в том, что сначала грузится и автостартует первичный загрузчик. После автозапуска этот загрузчик снова вызывает п/п-мму $0040 для ввода второго МГ-блока, - вторичного загрузчика или сразу цепочки блоков. Т.е для многоблочной загрузки на диске должны быть файлы GAME.000 (стартовый блок размером в 256 байт) и куча блочков, т.е файлов с именами GAME.001, GAME.003, GAME.003... размеры, адреса загрузки и последовательность которых знает загрузчик (но пользователю это неизвестно). Пользователь задающий в Windows-окнах ввода имена блоков должен знать имена и в каком порядке вводятся блоки.

Это можно устранить, несложной доработкой эмулятора, если первым блоком указывать не DAT-файл, а текстовый файл (например, с расширением LST), содержащий список имён блоков и в нужном порядке. Тогда эмулятор по каждому очередному вызову CALL $0040 не будет открывать Windows-окно запроса имени МГ-файла, а будет брать имя очередного файла из списка. В ИРИШЕ, в отличие от всех остальных компьютеров, формат МГ-записи определяется аппаратурой и не может быть изменён программно, потому все МГ-блоки ИРИШИ записаны в одном (двухчастотном) формате.

Мне это интересно не столько в плане ввода игр ИРИШИ в её родном многоблочном МГ-формате. А тем, что тогда составив список файлов, которые желательно занести в эл.диск при старте DOS, достаточно при старте из меню задать имя всего одного файла (в Windows-окне ввода) и не трахаться с вводом и сохранением считанных файлов на ЭД для каждого файла.

К сожалению, из-за апп.особенностей ИРИШИ программа ввода байта должна работать из ПЗУ. Из-за этого возникла вторая такая-же неприятная дурость монитора-отладчика. А именно то, что ввести программу можно только выше адреса 4000. Из-за этого программы работающие с адреса ниже 4000, всё-равно приходится грузить и запускать с адреса 4000, но в начале их кода должен стоять LDIR (точнее его аналог для КР580), который при запуске программы перекидывает её основной код на рабочий адрес (ниже 4000).

Более того, при работе с лентой в мониторе ИРИШИ есть и ещё одна неприятность. ИРИША вводит с магнитофона только в видеорежиме 1 (т.е моно-40). При включении цвета или 80-ти символов в строке с МГ-ленты почему-то читается лишь дохлота. Потому нортон для МГ-загрузки не написать для режима 80 символов. Это приводит к тому, что с ленты надо грузить не из CP/M, а из стартового меню.

Для того, чтобы хоть немного автоматизировать загрузку файлов с МГ-ленты, даже не требуется менять родной ROM-BIOS. Задача в том, чтобы избавиться от необходимости помнить адреса и даже размеры загружаемых файлов. Для этого, для каждого файла DOS надо создать его первичный загрузчик. Этот загрузчик это маленькая программа имеющая размер точно в 256 байт, работающая с адреса $A000. Код такого загрузчика для всех файлов один и тот же, но для каждого файла надо подставлять его имя и размер.

Тогда по нажатию на <ВК> при указателе на "МАГНИТОФОН" по открытию Windows-окна для запроса имени, выбираем файл загрузчика конкретного файла. После загрузки (на $A000) он стартует и сам вызывает процедуру $0040 загрузки блока с уже заданными в нём адресами. Таким образом отпадает процесс задания параметров вводимого файла (нет необходимости помнить параметры для каждого файла DOS), но необходимость выбирать файлы в Windows-окне ввода остаётся.

_________________
***
barsik
barsik
Мастер+

Сообщения : 490
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения