- Вопрос по ЕМТ 36
-
? S_V_B@ - 18.12.2017 14:54
Хочу загрузить оверлей с диска примерно так:
LOAD:
MOV #3,R2
MOV #320,R0
MOV R0,R1
MOV R2,(R0)+
MOV #ADR,(R0)+
MOV #0,(R0)+
MOV #NAME,R2
1: MOVB (R2)+,(R0)+
BNE 1
EMT 36
BEQ EX
HALT
EX: .....
.....
¤
¤
Иногда грузит,а иногда в космос улетает..
Клавиатуру, таймер отключил. Похоже на какое-то прерывание.
Сам ЕМТ об этом не заботится?
Что не так?
-
? MM - 18.12.2017 15:14
Если на аппаратной БК - проверьте работу контроллера дисковода, в частности при выполнении длительных операций - форматирование, проверка поверхости и др.
Так же важно значение R6 - оно не должно перекрывать рабочие области сектора ОЗУ , управлящего вводом-выводом на диск.
*
Очень существенным моментом является значение тактовой частоты - для работы с диском необходима от 4 мгц, тогда как БК0010-01 с клавой МС7008 без некотрых доработок не может работать на частоте, отличной от 3 мгц.
-
? S_V_B@ - 18.12.2017 15:18
Проверял на эмуляторе. Попробую на живой.
-
? S_V_B@ - 18.12.2017 15:21
рабочие области сектора ОЗУ , управлящего вводом-выводом на диск это какие?
-
? S_V_B@ - 18.12.2017 15:23
Кажется иногда в момент выполнения ЕМТ меняется SP.
-
? MM - 18.12.2017 16:09
Какие области отведены для ввода-вывода с диска - это надо изучать ТО программно-аппаратного комплекса, используемого Вами.
Если меняется R6 после ЕМТ - значит, или аппаратная ошибка, или софт написан самоделкиным, имеющим соответствующую квалификацию.
-
? S_V_B@ - 18.12.2017 16:11
Эмулятор - СМК-512 - АнДос
-
? S_V_B@ - 18.12.2017 16:15
Фрагмент кода который я привел - верный?
-
? MM - 18.12.2017 16:28
Я отвечаю на вопросы исключительно по железу, сделанному на Э., или, как вариант - бывшими работниками Э.
-
? skcorp. - 18.12.2017 16:49
Слишком заморочено что-то.
¤
LOAD:
MOV #BPM,R1
EMT 36
HALT
BPM: 0,0,0,N,A,M,E
¤
Вроде так.
-
? gid - 18.12.2017 16:50
Фрагмент кода немного странный.
После EMT 36 зачем нужен BEQ EX?
Т.е. теоретически EMT не меняет признаки, и BEQ EX должен выполняться всегда. Но точно ли не меняет?
А вообще, нужно проверять адрес 1(R1) и если там не 0, то файл не загрузился по разным причинам.
-
? S_V_B@ - 18.12.2017 16:56
beq EX
чтобы дальше выполнять программу, а если ошибка то вывалиться в монитор
-
? S_V_B@ - 18.12.2017 16:58
блок параметров же:
3-чтение, 2 -запись
адрес
0
ASCZ - строка имя файла
-
? S_V_B@ - 18.12.2017 16:59
и блок параметров начинается с 320й ячейки
поэтому и заморочено
-
? S_V_B@ - 18.12.2017 17:00
1(R1) я тоже проверял.
Если бы она не работала то да, а так через раз.
-
? S_V_B@ - 18.12.2017 17:02
стэк тоже убирал подальше, думал на него что-то наезжает
-
? S_V_B@ - 18.12.2017 17:08
А как ЕМТ 36 определяет размер файла?
Если например файл 16к, а читает посекторно может ли читануть больше чем нужно?
-
? SKcorp. - 18.12.2017 17:22
>и блок параметров начинается с 320й ячейки
>поэтому и заморочено
¤
С адреса R1, где захочешь.
-
? S_V_B@ - 18.12.2017 17:26
ну да недопер.
-
? S_V_B@ - 18.12.2017 17:27
Как ограничить длину считываемого блока?
-
? S_V_B@ - 18.12.2017 17:36
Я понял в чем косяк.
Гружу картинки в экран, соответственно если считывается больше то лезет в ПЗУ в процессе ЕМТ.
Но фишка в другом они все одинакового размера, а вылетает на некоторых.
Тогда вопрос как ограничить количество считанных байт?
-
? BD - 18.12.2017 19:15
EMT 36 прекрасно обрабатывает прерывание по 4 вектору, и кладет ответ в блок параметров.
¤
EMT 36
TSTB 1(R1) ; БЕЗ ОШИБОК
BEQ EX
СМPB #4,1(R1) ; НАЖАТА СТОП, ИЛИ ПОПЫТКА ЗАПИСИ В ПЗУ
BEQ HLT
¤
вообще уж вьюверов скриншотов было множество, в т.ч. в виде подгрузок в master'у (.M-файлы).
-
? BD - 18.12.2017 19:21
на 11М с 100000 ОЗУ, так что длину отслеживать вызовами п/п ДОС перед загрузкой
-
? S_V_B@ - 18.12.2017 19:40
спасибо буду пробовать.
просто не хотелось привязываться к какому-либо досу.
-
? gid - 18.12.2017 20:12
Ну так написать свой перехватчик емт36 с той реализацией, какая нужна самому - это и есть самая, что ни на есть отвязка от всех досов.
-
? BD - 19.12.2017 13:36
вот чего откопал. это андос с ништякками. VPIC.M - это вювер картинок, LDMK2.M - читает LD мкдос и т.д. и т.п. правда через флоппи-эмулятор обратно перегонял (127 дорожек). для записи на реальную дискету надо обрезать до 800Кб, это умеет 7zip, например.
¤
https://yadi.sk/d/q2hNt3J03QkHGV
-
? S_V_B@ - 19.12.2017 14:25
спасибо
-
? S_V_B - 20.12.2017 06:36
А ЕМТ 115 что делает и какие у него входные параметры?
.BMB10 (140242, EMT 115) - вызов формата БК-0010;
-
? S_V_B@ - 20.12.2017 06:55
Это то же самое что и ЕМТ36 только для 11й.
Тогда как ДОС определяет что я запустил программу для БК0010 на 11й и по ЕМТ36 нужно файл грузить, а не редактировать строку?
-
? BD - 20.12.2017 07:54
убил )) для 11й только rt-11 и csi-dos. все остальные на 11й грузят 10чный монитор, и, считай, работаешь как на 10ке, т.е. emt 36.
если уж надо отличить 10 от 11й, просто, по адресу старта
cmpb #300, @#177717 ...
для загрузки электронного диска, переключения страниц и т.д.
-
? S_V_B@ - 20.12.2017 08:07
Т.е. ЕМТ для 11й можно только на CSI dos использовать.
Изучая документацию на БК11 убедился что краткость сестра таланта, точнее те кто ее писал были гениальны.
Вот тебе табличка с точками входа.. и делай с ней что хочешь. Что тут может быть непонятного.
Пока в голове не укладывается что можно, что нельзя, что нужно делать в первую очередь, а что потом.
-
? S_V_B@ - 20.12.2017 08:32
Неужели нет возможности программно указать досу в каком режиме должен работать диспетчер ЕМТов?
-
? BD - 20.12.2017 08:34
НЕТ. написано, что emt 115 ЧТЕНИЕ/ЗАПИСЬ НА МАГНИТОФОН, так и будет, не сомневайся ))
всякие ДОСы нужны лишь для того, чтоб перехватывать емт36 и направлять на диск, а не магнитофон, чтоб ты мог запускать старые игрушки, даже с подгрузками с дискеты. в rt-11 эмуляция бк10 это exe10p.sav, в csi- dos так и называется bk10 ))
-
? S_V_B@ - 20.12.2017 08:58
Тогда как вариант можно сделать универсальный загрузчик через @#160006 для себя любимого и не связываться с ДОСами.
-
? BD - 20.12.2017 09:06
флаг в руки, вперед к изобретению велосипеда! )) без файловой системы, правда, будет тяжко..
-
? gid - 20.12.2017 10:25
[можно сделать универсальный загрузчик через @#160006 для себя любимого]
Вот так вот все начинали с этого, и некоторые не бросили эту затею и доходили до конца. В результате имеем зоопарк разных ДОСов. Т.к. после того, как будет сделан загрузчик файлов с дискеты, во весь рост встанет проблема хранения этих файлов на дискете, т.е. файловой системы - выбрать готовую или изобретать свою.
Если будете изобретать свою, - рекомендую делать что-то совместимое с fat12 или ext, ext2.
-
? S_V_B@ - 20.12.2017 11:03
Помнится на спектруме была кнопка MAGIC которая скидывала память на диск, правда она аппаратно поддерживалась. но суть не в этом
скинуть всю память 11м по секторно на диск программа аж пять строк будет, тоже в обратном порядке. и никаких fat ов не нужно.
-
? S_V_B@ - 20.12.2017 11:18
Я про удобство написания программ, если писать достаточно объемную программу для 11м то старые досы -только вред один.
запарился уже монтировать, размонтировать, удалять, добавлять, в одном идет в другом не идет...
Написать прогу под винду в которой указал какой бинарник в какую страницу грузить -создал образ, монтируй и радуйся..
И не нужно страдать что там дос перехватил или похерил.
-
? BD - 20.12.2017 13:47
а на реальной БК кодить не пробовал? представь, что нет эмулятора и средств кросс-разработки. только тогда что-то стоящее получится. не знаю ни одной дельной софтины отлаженной в эмуляторе ))
-
? S_V_B@ - 20.12.2017 13:50
Кстати на контроллере типа SMK кнопка "MAGIC" была бы весьма полезна, эдакая "гибернация" БКшки.
Например играл в игрушку , надоело, нажал кнопку - пошел спать, а утром загрузил (образ памяти, регистров) и опять с того же места начал :)
-
? S_V_B@ - 20.12.2017 13:54
BD@ - 20.12.2017 13:47
а на реальной БК кодить не пробовал?
¤
Зачем такой мазохизм, одна клава и раскладка чего стоят.
Да и за 25лет привык уже к PC. И недостающие инструменты быстрее на С++ напишу.
-
? S_V_B@ - 20.12.2017 13:57
Тот же делфи можешь компилять и запускать после каждой новой запятой чем не отладка.
Можно и регистры и память посмотреть если очень нужно.
-
? S_V_B@ - 20.12.2017 14:01
Хотя может еще лет через 20 и дельфи в эмуляторе ковырять будут на квантовых компах.
-
? BD - 20.12.2017 15:50
На СМК сбрасывать образ памяти проще простого (reset+кнопка, простенькая прога в ДОЗУ), но только в режиме БК10, т.к. регистр управления памятью доступен только по записи. Это было уже все.
-
? S_V_B@ - 20.12.2017 16:01
Смысл чтобы не в ДОЗУ, а в ПЗУ (для записи и чтения) и в стандартной поставке.
А то было- было да прошло. Так бы пользователь не задумываясь этим пользовался.
А то велосипеды имеют свойство теряться и каждый раз все по новой.
-
? BD - 20.12.2017 16:06
Прописываешь в загрузчик СМК и забываешь, что она там есть. Как и fis/eis (расширенная арифметика).
-
? S_V_B@ - 20.12.2017 16:13
Я вам про Фому,а вы про про Ерёму.
Когда я в детстве тыкал кнопку "MAGIC" я знать не знал как это работает, но было удобно.
Вот почему в БК сообществе все так писсемистично "Забудь надежду всяк сюда входящий", сломай обе ноги и ползай на руках.
Почему по крупинкам нельзя было делать жизнь лучше и удобнее, а то "я смог написал и забыл, а тебе слабо" и.т.д
-
? BD - 20.12.2017 16:23
так до сих пор каталога софта даже нет с поиском и описаниями )) все берутся, но даже на 10% не доделывают и бросают.
-
? S_V_B@ - 20.12.2017 16:30
? BD@ - 20.12.2017 16:06
Прописываешь в загрузчик СМК и забываешь, что она там есть. Как и fis/eis (расширенная арифметика).
¤
Где можно прочесть про загрузчик СМК? Про ДОЗУ видел и и то с пятое на десятое.
Буду изобретать свой личный велосипед, никому не покажу, буду наслаждаться своей офигительной крутостью :)
-
? BD - 20.12.2017 16:43
http://forum.pk-fpga.ru/viewtopic.php?f=39&t=5401
исходник называеся MBR.MAC
http://gid.pdp-11.ru/f/altpro.zip
-
? S_V_B@ - 20.12.2017 16:45
спасибо
-
? Alexander Tishin@ - 27.12.2017 23:41
Я на БК Magic Button делал. Через самопальный перехват входа в HALT-режим. Натурально конструкция из кучи проводов, но работало же!
¤
Идея была в том, чтобы выдавать RPLY на все записи в 177xxx и ОЗУ на 160000. Работало. Хотя жуткое безобразие, само собой.
-
? MM - 28.12.2017 00:07
Как вариант "Магического рубильника" были предложения типа переводить адрес начального пуска на программу сохранения , и перезапускать БК. Регистры не сохранялись, зато ни один софт не мог блокировать рестарт, в отличии от IRQ1 .
Подпрограмма списывала содержимое страниц БК11М на диск. Точку входа и предзаполнение регистров предлагалось искать программеру.
Подпрограмма обычно располагалась с 170000 адреса.
Если у кого такая БКшка есть - прошу выложить фото ( вредный смайл )
-
? BD - 28.12.2017 02:50
Уважаемый ММ гордо отказался получить СМК64, где "переводить адрес начального пуска на программу сохранения" уже было предусмотрено в 1994 году. После многочисленных почтовых перенаправлений приз завтра уходит dima83 ))
-
? Alexander Tishin@ - 28.12.2017 03:09
А у меня ента конструкция где-то живая лежит :)
¤
Кстати, благодаря ей я таки прошёл "Перевал". Нормальную версию, которая грузится с кассеты и занимает всю память десятки. Если кто не в курсе, то спираченная-сломанная версия из двух файлов сломана совсем. Её невозможно пройти, так как в ней испорчен код, отвечающий за победу. После прохождения 6 уровня она тупо виснет.
¤
Правильная -- показывает двухсекундный мультик отлёта с планеты и извиняется, что тебе пришлось играть в такую ерунду, как "Перевал". И рекламу так и не вышедшей игры.
-
? Alexander Tishin@ - 28.12.2017 03:11
Ента -- в смысле самопал, а не SMK. Которого никогда у меня не было, и нет нормальной документации.
-
? S_V_B - 28.12.2017 06:36
<Если у кого такая БКшка есть - прошу выложить фото>
У меня есть БКшка с двумя рубильниками и кнопкой RESET, один наверно "TURBO" второй не знаю, пока так и не понял что делает.
-
? Дмитрий - 28.12.2017 13:16
>> второй не знаю
Первый - пауза проца, второй переключает частоту. Т.е. переключать частоту на ходу.
-
? S_V_B@ - 28.12.2017 14:05
Я на ней толком не работал ей пленку новую нужно.. кнопки не все работают.
Что дает пауза проца? покурить сходить?
-
? MM - 28.12.2017 14:25
Про кнопки на МС7008 :
http://www.phantom.sannata.ru/forum/index.php?t=27693
-
? BD@ - 28.12.2017 14:28
пауза нужна чтоб переключить частоту проца без перезагрузки. ну и для игрушек, чтоб покурить ))
-
? S_V_B@ - 28.12.2017 15:40
А что мешает организовать кнопку MAGIC на СМК?
Если вставить загрузку драйвера в MBR который по 10000 грузится.
Скопировать в ДОЗУ СМК и кнопкой сделать прерывание на этот адрес.
Адрес возврата из прерывания в стеке будет? Ну и остальные регистры сохранить.
Правда я про IRQ БК еще не до конца вкурил.. я что-то упускаю?
-
? BD@ - 28.12.2017 15:45
на БК только кнопка reset имеет наивысший приоритет ))
-
? S_V_B@ - 28.12.2017 15:53
т.е. адрес возвраты мы никогда не узнаем?
Хотя я заметил что БКшку проще выключить чем корректно вернуться куда-нибудь. :)
-
? BD@ - 28.12.2017 16:01
ага. но на бк10 можно искать с 1000(8) адреса дебагером )) так все "защиты" магнитофонные вскрывались, если отладчик у тебя в ДОЗУ ))
-
? S_V_B@ - 28.12.2017 16:04
Я не думаю что сейчас актуально защиты магнитофонные снимать, так что ценность такой кнопки весьма сомнительна.
Хотя можно и тупо с 1000го запускать каждая вторая наверное запустится.
-
? Дмитрий - 28.12.2017 17:44
>> на БК только кнопка reset имеет наивысший приоритет
Я бы назвал это исключительным приоритетом. :)
-
? Alexander Tishin@ - 28.12.2017 21:12
HALT-вариант сохраняет адрес возврата не помню уже где. И регистры не пропадают :)
Это же официальный отладочно-мониторный метод на 1801ВМ1
-
? a214 - 29.12.2017 00:02
здесь тема про EMT-36 - занимает 5-ю часть Монитора, 2-е место после видео (30% с супер-извратами про служебную строку, граф-режим через клаву ??? - проверки всякие через ячейки в памяти на рус-лат (7-8бит от ВП1-014, да не была она для БК - МММ скажите своё веское слово откуда 014 присобачили к БК?)
-
? S_V_B@ - 29.12.2017 16:21
Убили мечту.
Всегда надеешься на чудо, что появится добрый волшебник и откроет секрет, а тут бац ВП1014 - и все.
Чукча не "паятель" чукча "писатель", поэтому и надеешься на чудо.
-
? Manwe@ - 09.04.2018 17:43
Не знаю, нужно кому или нет, но вот моя программка загрузки нескольких файлов.
Имена файлов перечисляете после метки NAMES.
Число файлов указываете там где FILES.
После загрузки всех файлов по адресу метки MAP получается таблица: адрес1, длина1, адрес2, длина2... и так для каждого файла.
Не забудьте задать размер таблицы MAP, он должен равняться числу файлов, умноженному на 2 и ещё плюс 2.
Программа располагается с адреса 1000, а блок данных для EMT 36 - с адреса 1004. Это прописано жёстко в тексте программы, потому что не знаю можно ли в ассемблере Turbo 8 вычислять переменные, зависящие от метки.
Ошибки загрузки не обрабатываются.
¤
¤
DATA36=1004
ADDR=DATA36+2
NAME=DATA36+6
SIZE=DATA36+30
¤
JMP START
¤
.BLKW 25 ; EMT 36 data for read files
FILES: .WORD 4 ; number of files to load
MAP: .BLKW 12 ; number of files * 2 + 2
NAMES: .ASCIZ 'file1'
.ASCIZ 'name2.ovl'
.ASCIZ 'filenam3'
.ASCIZ 'another1.ovl'
.EVEN
¤
START:
¤
; load files
¤
MOV #FREE,R0 ; pointer to free memory
MOV #MAP,R5 ; pointer to table of loaded files
MOV #NAMES,R4 ; pointer to array of names
MOV #3,DATA36 ; 3 means read, 2 means write
¤
1: MOV R0,(R5) ; save addres in map table
MOV R0,ADDR ; set addres toload file
MOV #NAME,R1 ; pointer to name in EMT 36 data
MOV #20,R2
2: DEC R2 ; copy name of file
MOVB (R4)+,(R1)+
BNE 2
3: CLRB (R1)+
SOB R2,3
¤
MOV #DATA36,R1 ; pointer to EMT 36 data
EMT 36
¤
MOV SIZE,R0
INC R0
BIC #1,R0
MOV (R5)+,R1
MOV R0,(R5)+ ; store size of loaded file
ADD R1,R0
MOV R0,(R5) ; where to load next file
¤
DEC FILES ; number of files to load
BNE 1
¤
¤
HALT
¤
FREE: .END
-
? Manwe@ - 09.04.2018 17:49
Все табуляции убились :(
-
? Manwe - 04.04.2019 16:37
Что-то у меня в Мониторе БК-0011М (голая машина без дисковода) не работает EMT 115. Пытаюсь организовать запись на магнитофон. Реле щёлкает, звука нет, происходит зависание.
В эмуляторе gid можно как-нибудь изобразить голую БК-0011М, чтобы оттрассировать отладчиком?
-
? Manwe - 04.04.2019 17:56
Оказалось, что EMT 115 "Вызов формата БК-0010" - это полная отсебятина. Мало того, что адрес блока параметров передаётся не через R1 (как в БК-0010), а через R0, так ещё и управляющие коды другие: запись кодируется не числом 2 (как в БК-0010), а числом 0.
Давно я не встречал подобной "совместимости". За такое хочется просто взять и настучать разработчикам по голове :( Два часа потратил на то, чтобы заработало.
-
? Manwe - 05.04.2019 10:56
И не удалось придумать как сделать автозапуск при загрузке с магнитофона на БК-0011М
-
? BD - 05.04.2019 14:41
Можно просто упростить мучения. Грузить маленький загрузчик в область 1000-37777, чтобы долго не ждать.
L, 1000G проще набирать. А дальше - простор для творчества, обработка ошибок, как и в какую страницу грузить -017, можно в экран, чтоб было видно, у EMT115 в блоке параметров можно задать какие страницы включать (смещение 26(8)) и т.п.
-
? Manwe - 05.04.2019 14:45
Можно даже просто G вместо 1000G.
Автозапуск я хотел для того, чтобы следом за маленьким загрузчиком шли данные в формате HELP12 и они грузились автоматически. Но не судьба, видимо.
-
? Manwe - 05.04.2019 16:17
Предлагаю переехать в эту тему, она больше подходит.
>> Не из эмулятора, на живой БК. CF50 тебе в помощь
С живой БК писать не хочу, так как мне нужен чистый квадратный сигнал. Лучше посмотрю код CF50, измерю длину сигналов и сделаю так же (на JavaScript или чём-то таком). Спасибо за напоминание про CF50.
-
? Manwe - 05.04.2019 18:10
Записал из эмулятора на 4-ой (максимальной) скорости. Реальная БК читает. Красота!
Суммарно по длительности даже на две секунды короче, чем HELP12 с загрузчиком (хотя, если загрузчик тоже записать на высокой скорости, сравняется).
Единственное, неудобно каждый раз писать эмулятором, потом обрезать, конвертировать в моно. Постараюсь всё же замутить новую утилиту для конвертации.
-
? Manwe - 08.04.2019 19:13
Мы сделали это: JavaScript-конвертер из .bin в .wav на скорости 2777 бод, что в 2.5 раза быстрей обычной скорости БК. Хитрыми хаками удалось добиться того, что формат воспринимается обычным Монитором БК0011М и даже загруженным в ОЗУ Монитором от БК0010-01.
В архиве пример такого wav - загрузка Монитора БК0010-01 в память БК0011(М):
http://thesands.ru/bk0010/BK0010_Game_Loader.zip
-
? BD - 09.04.2019 12:07
Молодцы. А слабо константы в -017 прошивке подобрать в драйвере МГ, чтобы на реальных БК10 и БК11М можно было записывать в телефон на скорости "2777 бод"? см. KDBIT0, KDBIT1 и т.п. https://forum.maxiol.com/index.php?showtopic=4335
-
? Manwe - 09.04.2019 23:20
BD, разве кто-то станет перепрошивать ПЗУ ради этого? Если так, то лучше вообще новый формат записи сделать (возможен прирост ещё процентов на 40).
¤
Кстати, мы обогнали CF50 с его максимальной скоростью. Не сильно (при загрузке 16 Кб разница около двух секунд), но всё же. При этом, как мне кажется, надёжность выше. На БК0010 получилась скорость 2381 бод (и такой файл читается также 11-ой БК). А максимально из БК0011 выжимаем 2777 бод, но 10-ка уже не может такое прочесть.
-
? BD - 10.04.2019 02:51
С возвращением к железкам! (real hardware). Эмуляторы - в топку! ))
https://bk0010.org/forum/?id=32567&old
Такое паяет MM руками за 500 руб. в розницу (оптом дешевле ~350).
https://ibb.co/MCWcnmZ
Теперь надо придумать... как же это использовать?.. "перепрошивать ПЗУ" - легко. Только полёт фантазии ))
-
? Manwe - 10.04.2019 10:05
Идею понял. Да, константы можно подобрать. Только я не уверен, что в iPhone можно напрямую писать звук с магнитофонной линии БК. У меня для таких целей заведён iRig. Но если кто-то подтвердит экспериментом, что звук пишется без искажений и смартфон не сгорает – тогда да, можно заняться оптимизацией ПЗУ.
-
? Manwe - 08.06.2019 00:08
Ещё один вопрос по EMT 36 в MKDOS.
Взял я ПЗУ Пролог-Д с адреса 140000 и загрузил его в память СМК (написал маленькую программку для этого, запустил в MKDOS). В страницах памяти БК 0011 остался Монитор от БК 0010 (проверил отладчиком). Вроде бы, всё хорошо.
Теперь в Прологе-Д пытаюсь загрузить текст программы, срабатывает переход на обработчик EMT 36, но вместо загрузки выдаёт сообщение "ОШИБКА". В чём может быть проблема?
На БК 0010 такого нет. Только на БК 0011М.
-
? BD - 08.06.2019 00:58
В загружаемом файле MONITOR на БК0011(М) по адресу 100036:120002 - адрес п/п "перехвата" EMT36 такой (как и в АНДОС), типа "для улучшения перехвата с МЛ". На БК0010(-01) просто заносится в @#30 адрес нового EMT-диспетчера, который может быть уничтожен ))
-
? Manwe - 08.06.2019 01:40
На БК 0010 всё работает.
На БК 0011М по адресу 30 - 100112. По адресу 100036 число 120002 - всё верно. Код обработки именно EMT 36 начинается с адреса 120346, и не похоже, что там что-то испортилось. Что-то там выполняется. Но при попытке чтения - "ОШИБКА". При попытке записи просто возвращается обратно.
Не может MONITOR обращаться к процедурам из ПЗУ БК 0011М в адреса 140000 и выше? А то я ж туда загрузил Пролог-Д.
-
? BD - 08.06.2019 11:29
>> Не может MONITOR обращаться к процедурам из ПЗУ БК 0011М в адреса 140000 и выше?
Нет, не может.
На БК10 с 140000 раньше была попытка запихать MC, при наличии 16Кб доп.ОЗУ.
А не грузишь ли ты "электронный диск" (VD.SYS/VD.DRV) на БК11М? Отключи.
Вообще, все исходки там:
http://forum.pk-fpga.ru/viewtopic.php?f=23&t=5535
-
? Manwe - 08.06.2019 20:27
>> А не грузишь ли ты "электронный диск" (VD.SYS/VD.DRV)
¤
Как это проверить? В фале STARTS.COM пусто.
-
? BD - 08.06.2019 23:03
Любым отладчиком на БК. В эмуляторе by gid все уже есть.. Ищи проблему в -017 ПЗУ файлик MONITOR. Просто vd.sys перехватывает опять всё, особенно 160004 на букву "E:".
Если нет текста во время загрузки - всё нори. В ANDOS отдельно выводится прямо в правом нижнем углу MASTRERa.
-
? Manwe - 09.06.2019 09:16
BD, в чём-то другом дело. Диска E: нет. Когда выхожу из Micro Commander'а и набираю в Мониторе M, ИМЯ?, ввод - вижу каталог диска. Но когда запускаю с этого диска Пролог-Д и там нажимаю KT, Ч (чтение), ИМЯ?, ввод - сразу ОШИБКА.
-
? Manwe - 09.06.2019 09:29
Это только на БК0011М. В той же MKDOS на БК0010 всё работает.
Смотрю в отладчике перехватчик EMT 36 - он зачем-то устанавливает стек на адрес 136712...
По адресу 122056 вижу CALL @#160010 - инициализация блока параметров HDD. Вот на этой процедуре и вылетает. А там HALT, WORD 177777, HALT, WORD 177777,..
Устанавливаю режим СМК для БК0011М - 40, для БК0010 - 60. Опять что-то напутал с режимами? Где моя ПЗУ?!!! :)
-
? Manwe - 09.06.2019 17:43
Сделал так: перебрасываю содержимое ПЗУ 160000-170000 в нижнее ОЗУ, затем переключаюсь в режим 40 СМК и компирую содержимое ПЗУ обратно на те же адреса.
Заработало.
- << Форум