1816ВЕ48

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

Moderator: Shaos

User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: 1816ВЕ48

Post by shoorick »

Lavr wrote:В общем, в ряде случаев, где в оригинальном коде 580ВМ80 было:

Code: Select all

   CPI 12
   JNC METKA
на всякий случай: это сравнение, что А<=12

Code: Select all

ADD A,(/12+1)
   JC  METKA
-- а это A<12

-12 = 0xF4

0xC - 0xC - нет переноса (заема)
0xC + 0xF4 - есть перенос
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

shoorick wrote:на всякий случай: это сравнение, что А<=12
Верно! На правила я тоже смотрел: :wink:
; CPI A,X
; A = X; Z = 1, C = 0.
; A > X; Z = 0, C = 0.
; A < X; Z = 0, C = 1.
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: 1816ВЕ48

Post by shoorick »

я к тому, что такая замена вычитания на сложение не всегда эквивалентна
CPI - это вычитание
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

shoorick wrote:CPI - это вычитание
Вот в этом я как-то никогда не сомневался, что CPI - это вычитание без сохранения результата,
но с выставлением флагов... :wink:
А как по-твоему в АЛУ вычитание делается? :lol:

Кстати... автор модели 8048 уже и отладчик приделал:
viewtopic.php?p=163970#p163970
С ним бы было легче... Только я к этому моменту уже закончил... 8)
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: 1816ВЕ48

Post by shoorick »

Lavr wrote:А как по-твоему в АЛУ вычитание делается? :lol:
Понятия не имею! 8)
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

shoorick wrote:
Lavr wrote:А как по-твоему в АЛУ вычитание делается? :lol:
Понятия не имею! 8)
Вот так:
img-rejsmq.png
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: 1816ВЕ48

Post by shoorick »

понял! ПС четыре раза :)
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

shoorick wrote:понял! ПС четыре раза :)
Гыгыгы... нет, ещё и Син и СО! Это очинь важно! :mrgreen:
iLavr
Pavtik
Novelist
Posts: 26
Joined: 11 Nov 2015 09:34

Re: 1816ВЕ48

Post by Pavtik »

Решил поиграть, и увидел белиберду:
DD1.PNG
На двух компах такая белиберда. :econfused: От версии протеуса не зависит, пробовал на 6 7 8.
Изменил код, сначала гасятся сегменты, потом переключается знакоместо, потом запись в сегменты, и стало всё ок.
Digit1.zip
В коде нашел ошибку, в обработчике прерывания аккумулятор сохраняется в r6 bank1 а восстанавливается из r6 bank0. Убрал команду sel rb0 (банк восстанавливается из регистра флагов по команде retr), после этого звуки стали лучше, пропали хрипы и низкочастотные жужжания, которые появлялись не в тему. Но играть скучно, враги медленно появляются. Если поставить clk 20mhz, то в самый раз, но анимация и звуки слишком быстрые. И третью кнопку бы приделать, чтоб оружие переключать в другую сторону, тогда скорость можно еще добавить наверное. :roll:
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: 1816ВЕ48

Post by Lavr »

Pavtik wrote:...играть скучно, враги медленно появляются. Если поставить clk 20mhz, то в самый раз, но анимация и звуки слишком быстрые. И третью кнопку бы приделать, чтоб оружие переключать в другую сторону, тогда скорость можно еще добавить наверное. :roll:
Если вы заметили, я приложил в архиве 2 варианта проекта, один из которых аж с четырьмя кнопками! :roll:

Image

И как вы сами уже отметили, что в архиве есть исходный код игры.
Я из интересу сделал этот проект так, как было в оригинале этой игры - оружие заряжается одной кнопкой -
поскольку в таком варианте сложнее играть.

Так что если вам играть скучно, я оставил все возможности сделать игру на свой вкус веселее!
Меня во многом сподвиг Tronix co своим HELO, я же также оставил всем возможность сделать что-то своё.
У вас там в запасе есть не только третья, но и четвёртая кнопка! :wink:

Как говорят англичане: Do please! :ebiggrin:


P.S. И я специально не трогал процедуру прерывания по таймеру, которую написал Tronix, - он её
видел на живых индикаторах, при этом не говорил ни про "белиберду", ни про дефекты индикации.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

Lavr wrote:
Lavr wrote:Я тут озадачился на тему: а нет ли какой-либо простенькой игрушки на 1816ВЕ48 ? :roll:
Ну чтобы там 2 ... 4 кнопки управления и вывод на АЛС318 или, может быть, линейку светодиодов...
Ни для 1816ВЕ48, ни для 8048 я никаких подходящих игр не нашел... :(
Сразу таких игр и не найти... но всё-таки они есть! Совершенно мимоходом попалась мне
игра "Бейсбол" на 7-сегментных индикаторах! :roll:

 ВИДЕО "Бейсбол"

https://www.youtube.com/embed/gssTtSw22BA

В принципе, идея у этого "Бейсбола" та же, что и у стрелялки по пришельцам из этого топика...
И хотя процессор другой - 6502, и компьютер другой - KIM-1, но сама по себе идея такой игры
довольно-таки интересна! :kruto:

P.S. И вот еще одна игра на 7-сегментных индикаторах, но смысл её я не уловил... :-?
http://retro.hansotten.nl/hexpawn/
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 1816ВЕ48

Post by Shaos »

Беседа про эмулятор B2M отрезана в новый топик
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

Lavr wrote:
shoorick wrote:ну, как-то ж записывать все равно нужно ;)
а, я забыл твой вариант записи напрямую с ЛПТ, как для Z80 - тоже вариант ;)
Да, я именно эту идею сейчас прорабатываю в несколько измененном виде под Proteus! :kruto:
В общем, выглядит эта идея с загрузкой через LPT примерно вот так, если я нигде не ошибся:

 СХЕМА 1816ВЕ48 с загрузкой через LPT
8048_SCH.PNG

RC-цепи рассчитаны и проверены для серии К555. Для К155 придётся их подбирать по месту.


P.S. Я сразу и макетку купил под это дело, но теперь возникли сомнения: а уместится ли всё на ней? :roll:

 БЕСПАЕЧНАЯ МАКЕТНАЯ ПЛАТА WBU-204-3
WBU-204-3.jpg

You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: 1816ВЕ48

Post by fifan »

Lavr, хочу обратиться к тебе как к знатоку ассемблера 8048, может ты под Специалистом МХ на нём писал? Решил в программе Asm1816.com компилировать небольшой пример от Шурика (http://shoorick.ho.ua/monsters/8049.html) и не смог ассемблировать мнемонику DB под Специалистом МХ (второй листинг). Что я делаю не так? Последнюю строку ассемблер не пропускает (забита точкой с запятой).

Code: Select all

            DIS  TCNTI
            MOV  A,#$80
            OUTL P1,A
START    MOV  A,#9
LOOP     JNT1 DONE
            DEC  A
            JZ   START
            JMP  LOOP

DONE    ADD  A,#PATTERN-1
            MOVP A,@A
            OUTL P1,A
DEAD    JMP  DEAD

PATTERN     .DB $06 ;1
            .DB $5B ;2
            .DB $4F ;3
            .DB $66 ;4
            .DB $6D ;5
            .DB $7D ;6
            .DB $07 ;7
            .DB $7F ;8
            .DB $6F ;9

Code: Select all

         ORG /0000H
         DIS TCNTI
         MOV A/80H
         OUTL P1,A
START:   MOV A/09H
LOOP:    JNT1 /DONE
         DEC A
         JZ /START
         JMP /LOOP
DONE:    ADD A/PATT-01H
         MOVP A,@A
         OUTL P1,A
DEAD:    JMP /DEAD
PATT:
;        DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
         END
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 1816ВЕ48

Post by Lavr »

fifan wrote:Lavr, хочу обратиться к тебе как к знатоку ассемблера 8048, может ты под Специалистом МХ на нём писал?
Нет, под "Специалистом МХ" и на ассемблере К580ВМ80А я алгоритм игры разрабатывал,
потому что мне на нём думается, как на родном русском. :wink:

А вот знатоком ассемблера 8048 я себя никак назвать не могу, :( потому как код К580ВМ80А
я потом старательно переносил под 8048, и то вон Pavtik ошибок у меня нашел... :-?

Но в твоём случае, как мне кажется, я знаю, в чём дело.
Попробуй вот эту строчку:

Code: Select all

        DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
переписать вот так:

Code: Select all

        DB 06H
        DB 5BH
        DB 4FH
        DB 66H
        DB 6DH
        DB 7DH
        DB 07H
        DB 7FH
        DB 6FH
Вроде как я на такие же грабли наступал... Извини заранее, если ошибаюсь. :oops:
iLavr