РВЕ035 (aka КР1816ВЕ35 aka i8035)

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by Lavr »

inu wrote:
Lavr wrote: Вот "в строчку, через пробелы" он (asm48) мне почему-то вываливает ошибку на эту строчку... :roll:
Мне и не понятно, в чем проблема-то... Может быть, у меня пробелы неправильные... :lol: [/quote="Lavr"]
Там-же написано:
These directives are allowed:

.db VALUE, VALUE, ...
Не работает, что-ли?
Не работает почему-то, выдаёт ошибку на эту строчку... :(
Я поэтому и спросил именно у Tronix-а, он в своих исходниках вот так писал:

Code: Select all

msg_table:
  .db #0c0h    ;O
  .db #0c7h    ;L
  .db #086h    ;E
  .db #089h    ;H

  .db #0a4h    ;4   #099h
  .db #0a4h    ;1   #0f9h
  .db #0c0h    ;0
  .db #0a4h    ;2
Я поначалу даже удивился было - почему в столбик... :roll:

P.S. Спасибо! Разрешил вопрос! У меня была устаревшая версия asm48... скачал заново! :lol:
асм48.PNG
Обратил вдруг внимание я, что у меня в README нет строчки: .db VALUE, VALUE, ...
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 »

Lavr wrote:Что-то в этот раз до глубины души убило, что 8048 не умеет делать MOV R1,R2... обязательно через А это делается...
И еще один момент в этих микроконтроллерах я с давних пор понять не могу:
а где реально находится пользовательский флаг F1 ?
F0, F1 – пользовательские признаки, устанавливаемые программно с помощью команд установки признаков в “0” - СLR F0(F1) , и команд установки признаков в “1” - CPL F0(F1)
Флаг F0 находится в регистре PSW:
- D5 – признак пользователя F0, устанавливаемый в лог. “0” командой CLR F0 или в состояние лог.”1” командой CPL F0;
А вот где находится пользовательский флаг F1, я нигде прочитать не смог... :-?
Если кто разобрался в этом моменте - подскажите!
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by shoorick »

предполагаю: там есть подозрительный неиспользуемый бит №3 в регистре статуса - может он? надо им щелкнуть и проверить: сохранить в стек и вынуть в аккумулятор, и проанализировать.
там ведь тоже 8049 не с нуля появилась, были какие-то 8021, где этого не было, вот оно могло и перекочевать :)

----
хотя может и где-то отдельно хранится, если бы в статусе хранился - восстанавливался бы из стека
You do not have the required permissions to view the files attached to this post.
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by shoorick »

тут английским по белому написано: "флаг F0 также доступен через слово состояния". значит можно преположить, что F1 недоступен (и хранится где-то в неведомых кишках)
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by Lavr »

shoorick wrote:предполагаю: там есть подозрительный неиспользуемый бит №3 в регистре статуса - может он?
Вот ты знаешь, я тоже всегда думал про регистр статуса! :roll: Но!!!
- D3 – не используется;
Хотя:
- D5 – признак пользователя F0, устанавливаемый в лог. “0” командой CLR F0 или в состояние лог.”1” командой CPL F0;
Причем в описании всегда утверждают, что флаги пользователя F0 и F1 ХРАНЯТСЯ В ЗАЩЕЛКАХ!
Но даже флаг Z не хранится в защелке! Где же тогда хранится флаг пользователя F1 ? :o

P.S. Конструктивная мысль у меня следующая: в микропроцессоре 6502, как пишут, регистра флагов
как такового нет. Он рассыпан побитно на кристалле в виде D-триггеров. Может быть, и в mcs48 флаг F1 -
просто отдельный D-триггер?
iLavr
inu
Junior
Posts: 7
Joined: 09 Apr 2021 01:03

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by inu »

Посмотрел я этот Proteus. Все отменяется. У демки, которую они свободно отдают, одно из ограничений - You cannot simulate your own microcontroller designs. А в архивах, которые здесь выложены, какие-то опкоды определяются. Это самый настоящий кустовой микроконтроллер. Неудивительно, ведь там на эту тему нет ничего, древнее 80c51. Не пойдет.

Кстати, о защелках в предыдущем сообщиении. Думаю, можно считать, что F1 хранится в special flip-flop. Аналогично RB и MB.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by Lavr »

inu wrote:...можно считать, что F1 хранится в special flip-flop. Аналогично RB и MB.
Странно просто, что этот вопрос во всех описаниях обошли молчанием...
Причем на фоне F0 вопрос возникает чисто автоматически! :roll:
Я просто думал, что может быть я что-то пропустил, а кто-то, возможно, разобрался внимательнее.
iLavr
Pavtik
Novelist
Posts: 26
Joined: 11 Nov 2015 09:34

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by Pavtik »

Lavr wrote:А у модели 8048, даже когда она перебирает чисто цифровые индикаторы, загрузка процессора достигает 97% !
Попробуйте в свойствах модели поставить {NOALE=1}, должно поменьше жрать cpu.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by Lavr »

Pavtik wrote:
Lavr wrote:А у модели 8048, даже когда она перебирает чисто цифровые индикаторы, загрузка процессора достигает 97% !
Попробуйте в свойствах модели поставить {NOALE=1}, должно поменьше жрать cpu.
Я внимательно читал Вашу инструкцию к модели и выставлять свойство {NOALE=1} тоже пробовал.
Заметного снижения загрузки процессора не отметил. 97% - это пиковое значение, так-то загрузка
крутится между 89% и 92%, что для "реального времени" многовато всё же...

Резко положительно влияет снижение тактовой частоты модели микроконтроллера.
В последнем проекте я выставил = 30000000 и звук идет чистенько и без помех.
Хотя - можете и сами попробовать, проект я же выложил здесь: MUZ48.zip
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by Lavr »

inu wrote:Посмотрел я этот Proteus. Все отменяется. У демки, которую они свободно отдают, одно из ограничений - You cannot simulate your own microcontroller designs.
На всякий случай рассказываю один трюк, которым я пользовался сам, когда ещё только
начинал "распробовать" этот Proteus. :wink:

Я не знаю, работает ли этот трюк сейчас, но во времена Windows 98 он работал...

Я делал в демо-Proteus-е какую-либо симуляцию, и она нормально работала.
Чтобы сохранить её, я выделял всю схему и копировал её в буфер обмена.
Это нормальный буфер обмена Windows, его можно просмотреть средствами Windows, но его
содержимое можно и сохранить как файл буфера обмена (расширение уже не помню сейчас).
Думаю, это что-то типа бинарника - полной копии содержимого буфера обмена.

А когда надо - буфер обмена может открыть свой файл, и можно вставить содержимое
на рабочую поверхность пустого проекта Proteus.
Да, метод муторный, но он вполне работал! :kruto:

Помню, мне очень жалко было вот этого мужика - Gianluca G. :wink:
Такие крупные схемы моделировал, а сохранять не мог... :(
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by shoorick »

shoorick wrote:тут английским по белому написано: "флаг F0 также доступен через слово состояния". значит можно преположить, что F1 недоступен (и хранится где-то в неведомых кишках)
извиняюсь за повторение, но для себя я этот вопрос закрыл: F1 хранится где-то вне регистра статуса. где именно - не так важно, в каком-то триггере.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by Lavr »

shoorick wrote:F1 хранится где-то вне регистра статуса. где именно - не так важно, в каком-то триггере.
Да это понятно... просто смущает, что в описании этот момент как-то вскользь опущен... :-?
А вопрос возникает сам по себе, когда читаешь, что F0 сохраняется как бит регистра статуса.
Сразу приходит мысль: а где же тогда F1 ? :roll: И почему один бит статуса не использован? :o
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by shoorick »

могли даже ошибиться, а потом заявить, что это фича, и не исправлять ;)
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: РВЕ035 (aka КР1816ВЕ35 aka i8035)

Post by Lavr »

shoorick wrote:могли даже ошибиться, а потом заявить, что это фича, и не исправлять ;)
Не... я думаю, так сделано специально. F0 восстанавливается из стека, при возврате из подпрограммы,
а F1 вернёт значение, которое вдруг выставили в самой этой подпрограмме.
Иначе бы из подпрограммы не вернуть ни одно значение Fх, если бы они оба восстанавливались из стека.
iLavr