nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 23 Jan 2022 12:34



Reply to topic  [ 91 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next
1816ВЕ48 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Я даже попытался сыграть в "Цифровых пришельцев" онлайн, но что-то с управлением не справился... :lol:

P.S. Xa!... Это я правила не прочитал... думал просто стрелялка... Прежде чем стрелять - надо зарядить
пушку до "мощности" захватчика: подлетает 6 - заряжаем до 6, и - стреляем! Только так...
8)

Со второго захода, зная правила, у меня уже лучше пошло! :lol:
В первом туре на 200 баллов настрелял! :wink:
Attachment:
ard_g4.PNG
ard_g4.PNG [ 31.95 KiB | Viewed 864 times ]

Кто хочет попробовать? :wink: Тут: Arduboy Emulator Online

Хотя я покликал с целью глянуть - насколько игра быстрая, и получится ли играть в Proteus...
На мой взгляд - достаточно медленно, и увлекательно! :kruto:

_________________
iLavr


29 Nov 2021 15:05
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Существует-таки вариант игры Digital Invader на микроконтроллере...
Attachment:
c8dc99e1a.jpg
c8dc99e1a.jpg [ 47.65 KiB | Viewed 846 times ]

Но 1816ВЕ48 точечное поле в режиме динамической индикации скорее всего не потянет... :-?

_________________
iLavr


29 Nov 2021 17:06
Profile
Maniac

Joined: 15 Jan 2019 16:48
Posts: 317
Location: Украина, Луганская обл.
Reply with quote
Lavr wrote:
Но 1816ВЕ48 точечное поле в режиме динамической индикации скорее всего не потянет... :-?

Откуда такие выводы ?
То есть динамическое сканирование АТ-клавиатуры тянул, а динамическую индикацию - "не потянет" ???


30 Nov 2021 04:52
Profile
Devil

Joined: 06 Oct 2006 04:17
Posts: 731
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Конечно на фото представлен современный микроконтроллер (не разглядеть марку). И он позволяет подключать напрямую к пинам разряды светодиодного индикатора. С 1816ВЕ48 такое не прокатит. Согласно энциклопедии по МК48/51 (Сташин В.В. и др. - Проектирование цифровых устройств на однокристальных микроконтроллерах) необходим внешний дешифратор и на разряды индикатора как минимум буферные элементы.

Attachment:
ind.png
ind.png [ 91.01 KiB | Viewed 807 times ]


30 Nov 2021 10:46
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
Конечно на фото представлен современный микроконтроллер (не разглядеть марку). И он позволяет подключать напрямую к пинам разряды светодиодного индикатора. С 1816ВЕ48 такое не прокатит.

Да, ты прав... Я тоже разглядывал-разглядывал марку этого микроконтроллера и не разглядел... :-?
И увеличивал фото... и контрастность менял - не увидел. Хотя просто лишь было интересно!

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

Ну и понятно в этой связи, что аппаратно и количество выводов портов у меня ограничено, потому как
по-любому надо задействовать внешнюю память, хотя бы как на этой схеме:

Image

Такие вот исходные ограничения на проект... 8)

_________________
iLavr


30 Nov 2021 11:47
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Я тут озадачился на тему: а нет ли какой-либо простенькой игрушки на 1816ВЕ48 ? :roll:
Ну чтобы там 2 ... 4 кнопки управления и вывод на АЛС318 или, может быть, линейку светодиодов...

Ну, в общем-то HARDWARE-часть под эту игрушку я подготовил:
Attachment:
Dig_HEL.PNG
Dig_HEL.PNG [ 28.82 KiB | Viewed 794 times ]

И немного поразмышлял над SOFTWARE-половиной задачи...

Хотя мне лучше думается пока в кодах 580ВМ80, поэтому размышлял я вот так: :lol:
Attachment:
SP_HELLO.PNG
SP_HELLO.PNG [ 2.37 KiB | Viewed 794 times ]

Потому что, собственно говоря, игрушка - это задача реального времени, и вся проблема в таймингах.
И я прикидывал, как формируются тайминги в игрушках "Специалиста", где нет прерывания по таймеру.
В 1816ВЕ48 прерывание по таймеру есть и по нему осуществляется сканирование индикатора.
Значит можно взять этот временной интервал за единицу времени в игре и к нему привязывать
остальные игровые события...

Я внимательно пронаблюдал этот вариант игрушки: Arduboy Emulator Online
Враги появляются с периодичностью примерно 1 секунда или чуть больше.

И за это время надо успеть нажать на кнопку до 10 раз по идее...
Но самый неприятный момент, что кнопка "AIM" работает только на инкремент, то есть, если
мы шлёпнули врага под номером 6, а следующий враг - 5, то надо прокрутить 7...9, n а потом 0 ... 5.
Тыкая мышью, лично я это практически не успеваю... Надо обдумать этот момент...
Возможно, для "AIM" следует сделать 2 кнопки: "UP" и "DOWN" .
Игра, в которую ты заведомо проигрываешь - не интересна... :-?

А вот эмулятор Arduboy Emulator Online меня очень удивил! :roll:
Я-то думал, что это - игрушка на JS... А всё реально оказалось иначе!
Это - ЭМУЛЯТОР АРДУИНО на JS !!! :o И он "играет" реальный код этой игрушки на АРДУИНО !!!

Если поводить мышью по вот этой панели игрушки:

Image

В некоторых местах (на разъёмах и микросхемах) курсор меняется на руку с пальцем, и если нажать,
можно повернуть игрушку на бок, вызвать отладчик и посмотреть исходный код игры!
Затейливо... очень затейливо!!! :ebiggrin:

_________________
iLavr


30 Nov 2021 12:24
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
И немного поразмышлял над SOFTWARE-половиной задачи...

Засада случилась там, где я её и ожидал... :-? Целочисленный и простой генератор случайных чисел
на отрезке 0 ... 11. :( Чтобы "Цифровые враги" случайно выбегали...

С генераторами ПСЧ всегда какая-то засада случается... даже RND(X) в BASIC - плохой генератор.

В общем, не мудрствуя лукаво, взял я простую реализацию линейного конгруэнтного генератора:
СледующееЧисло = (A * ПредыдущееЧисло + B) MOD N
Code:
RAND: LD  A,17 ; любое начальное значение
      LD  B,A
      ADD A,A
      ADD A,A
      ADD A,B  ; это умножение на 5, т.е. A=5
      INC A    ; это + B=1
      LD (RAND+1),A

И всё работает замечательно... но поскольку генератор всё же псевдослучайный, в этой игре он
очень неприятно генерирует два НЛО подряд! А НЛО как раз должны быть редкими... :-?

И никак я его не собью с этой привычки, не сильно усложняя... :(

_________________
iLavr


01 Dec 2021 10:46
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Подправил генератор случайных чисел двумя правилами, которые несложно реализовать на ассемблере,
не слишком усложняя программу:
1. Если число повторяется, сгенерировать новое.
2. Если число > 11, также сгенерировать новое.
И вроде как "враги" полезли равномерно, и НЛО не встречаются подряд.
Attachment:
ALIEN.PNG
ALIEN.PNG [ 8.36 KiB | Viewed 739 times ]

Здесь в таблицах всё, что не цифры - НЛО. В отличие от оригинала, у меня их два разных. :wink:
Ну просто были они у меня очень давно нарисованы, решил оба задействовать, тем более
что на алгоритм игры это не влияет...
Attachment:
Digit1.png
Digit1.png [ 2.16 KiB | Viewed 739 times ]

По правилам игры "враги" лезут сериями по 16, явной повторяемости у меня вроде как нет.
Три полоски возле "0" (заряд) - это три "жизни". Если "враги" достигли полосок - "жизнь" убавляется.
Если расстрелять всю пачку врагов - то "You Win!", и счёт - на экран.
Баллы начисляются в зависимости от расстояния до врага, а не от его числа.

В общем, оригинальные правила вот такие:

 Digital Invader in Casio MG-880
Quote:
Digital Invader in Casio MG-880 Calculator
https://play.google.com/store/apps/details?id=com.pa2.digitalinvaders&hl=en_AU&gl=US
A classic 80's calculator game. Shoot down the invaders.

Digital Invaders originally appeared on the Casio MG-880 calculator.
This is a fast-paced action game that will put your fingers to the test.

Invader Speed
Compared to the original calculator game, this game is almost identical but with a few slight modifications as described below.
The speed is measured by the time it takes for one invader to travel all the way across the display and cause one life to be lost.

Digital Invaders Android App (speed level 5):
stage 1 - 6.6 sec
stage 9 - 2.2 sec
interval (score showing) - 1.8 sec

Digital Invaders Android App (speed level 1):
stage 1 - 9 sec
stage 9 - 4.6 sec
interval (score showing) - 1.8 sec

Calculator:
stage 1 - 7 sec
stage 9 - 2.3 sec
interval (score showing) - 2 sec

Speed level 5 closely matches the speed of the original calculator game. To be able to upload your score to the leader board you must be playing at speed level 5.

INSTRUCTIONS
The aim is to score the most amount of points by destroying the invaders approaching from the right.
Use the AIM button to match the leftmost digit on the display with any of the approaching invaders. Press the FIRE button to destroy the invader.
Цель состоит в том, чтобы набрать наибольшее количество очков, уничтожив захватчиков, приближающихся справа.
Используйте кнопку AIM (Цель), чтобы сопоставить крайнюю левую цифру на дисплее с любым из приближающихся захватчиков. Нажмите кнопку ОГОНЬ, чтобы уничтожить захватчика.

If the sum of the shot down invaders is a multiple of 10, the next invader will be a UFO (shaped like an 'n') unless the stage is completed.
Если сумма сбитых захватчиков кратна 10, следующим захватчиком будет НЛО (в форме буквы «n»), если этап не будет завершен.
The defense lines next to the Aim Digit indicate the number of lives the player has left.
Линии защиты рядом с Цифрой AIM (Цель) показывают количество жизней, оставшихся у игрока.
There are 2 levels and each level has 9 stages. In each stage you must shoot down all 16 invaders with 30 shots or less. The speed of the invaders increases with each successive stage. In level 2 the invaders start attacking from one position closer. After completing level 2 the game will return to level 1.
Есть 2 уровня, и каждый уровень состоит из 9 этапов. На каждом этапе вы должны сбить всех 16 захватчиков не более чем 30 выстрелами. Скорость захватчиков увеличивается с каждым последующим этапом. На уровне 2 захватчики начинают атаковать с одной позиции ближе. После прохождения уровня 2 игра вернется на уровень 1.
When the game is over, the display shows the stage that the player reached and the score.


SCORING
The high score is shown at the start of the game.
Рекорд отображается в начале игры.
The points awarded for shooting down an invader depend on the invader's position. Starting from the rightmost position, the points are as follows:
Очки, начисляемые за уничтожение захватчика, зависят от его позиции. Начиная с крайнего правого положения, точки следующие:
Level 1
60, 50, 40, 30, 20, 10

Level 2
100, 80, 60, 40, 20

An extra 300 points is awarded for shooting down a UFO.
За сбитие НЛО начисляются дополнительные 300 очков.

SPEED
There are five speed levels. 1 is the slowest and 5 is the fastest. You can only put your score on the leader board if you are playing at speed level 5.
Есть пять уровней скорости. 1 - самый медленный, а 5 - самый быстрый. Вы можете поместить свой результат в таблицу лидеров, только если играете на 5-м уровне скорости.

_________________
iLavr


01 Dec 2021 12:57
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
... решил оба задействовать, тем более что на алгоритм игры это не влияет...

Прицепил в алгоритм игры звуковые эффекты выстрела и взрыва, причем старался сделать без таблиц.

Пока в ограниченный объём памяти вроде влезаю... Я, собственно, и затеял написать прототип
игры в кодах 8080, чтобы примерно оценить объём кода игры. Код 8048 более компактный.

Осталось сделать счет и "наступление врагов", пока убиваю лишь крайнего справа... :wink:

_________________
iLavr


03 Dec 2021 17:40
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Я, собственно, и затеял написать прототип игры в кодах 8080, чтобы примерно оценить объём кода игры.

Ну вот Я, собственно, и написал прототип этой игры в кодах 8080... :wink:
Attachment:
INVADERS.PNG
INVADERS.PNG [ 8.17 KiB | Viewed 554 times ]

Вот образ под эмулятор emu. Загружается в emu из его меню Open.
Attachment:
Digit.zip [21.03 KiB]
Downloaded 14 times

Каким компьютером вы стартанёте emu - не важно, при загрузке Digit.emu стартанёт "Специалист_МХ"
с уже включенной игрой.
После загрузки Digit.emu программа emu почему-то выходит в свой Debugger - в нём надо нажать F5.

Правила игры чуть изменены:
1. Большее число очков начисляется за пришельца ближе к базе - труднее играть, когда рядом с базой.
2. За сбитые НЛО начисляется +80 и +90 очков, а не +300 как в оригинале. В нём НЛО посылают принудительно, после 10 обычных сбитых. У меня НЛО генерируются случайно, но чаще.
3. Второго раунда игры с повышенной скоростью я не предусмотрел. Думаю, мышью и на этой скорости управлять будет нелегко.
4. В оригинале число выстрелов = (число врагов * 2) - 2. Мне показалось, что для 48 врагов (3 * 16) - это многовато.
У меня число выстрелов = (число врагов * 1.25).

Пока писал игру, наигрался так, что самому надоело... :roll:
Но если ошибок не будет выявлено, перенесу код со временем на платформу 1816ВЕ48 (aka 8048).

ИГРАТЬ ПОДАНО! DO PLEASE! :lol:

_________________
iLavr


08 Dec 2021 04:18
Profile
Devil

Joined: 26 May 2003 07:57
Posts: 758
Reply with quote
Lavr wrote:
После загрузки Digit.emu программа emu почему-то выходит в свой Debugger - в нём надо нажать F5.

Это потому, что отладчик был использован. Если после начала эмуляции компьютера отладчик не был использован, то он не запишется в сохранённый файл.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


08 Dec 2021 06:15
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
b2m wrote:
Lavr wrote:
После загрузки Digit.emu программа emu почему-то выходит в свой Debugger - в нём надо нажать F5.

Это потому, что отладчик был использован.

Ну естественно, отладчик был использован, потому как по Ctrl-L в "Специалист-МХ" грузится бинарник,
а по Ctrl-S - выгружается отдебуженный исходник.
А нельзя как-то прописать где-то, чтобы Debugger не стартовал, когда не надо?
И где можно что-то прописать, чтобы программа по умолчанию сразу загружала "Специалист-МХ"
без предварительного меню выбора компьютера
?

И еще один момент, не очень приятный... хотя, может быть, он у тебя исправлен уже...
Вот смотрю я на встроенном отладчике исполнение программы и жду, когда она запишет что-то в память:
Attachment:
дебаг.PNG
дебаг.PNG [ 89.13 KiB | Viewed 521 times ]

Наконец, программа пишет в память (STA XXYY), но в памяти - ничего не меняется по адресу XXYY ! :o
Башка начинает закипать... как же так? :roll: Оказывается, надо уйти с этого участка памяти и открыть его снова! 8)
Какая-то очень неудобная фича... :-?

И как во встроенном отладчике изменить содержимое регистров процессора, если это необходимо?

_________________
iLavr


08 Dec 2021 13:33
Profile
Devil

Joined: 26 May 2003 07:57
Posts: 758
Reply with quote
Lavr wrote:
А нельзя как-то прописать где-то, чтобы Debugger не стартовал, когда не надо?

Нет. Нужно добиться того, чтобы программа без отладчика запускалась. В случае Специалист-МХ можно стартовать файлы для эмулятора Шевцова .cpu/.i80

emu.exe MyCoolProg.cpu

Lavr wrote:
И где можно что-то прописать, чтобы программа по умолчанию сразу загружала "Специалист-МХ"
без предварительного меню выбора компьютера
?


Вот несколько примеров:

emu.exe /c "Orion-128"
emu.exe /d
emu.exe /c "Orion-128" /d
emu.exe /c "Orion-128" /brk F842
emu.exe /c "Orion-128" /brk @my.brk

1. C автоматическим выбором конфигурации
2. Вызов отладчика, без выбора конфигурации
3. Более полезный вариант, с автоматическим выбором конфигурации
4. Ещё более удобный вариант, с указанием точки останова
5. Вариант с сохранением точек останова в файле my.brk

Lavr wrote:
Наконец, программа пишет в память (STA XXYY), но в памяти - ничего не меняется по адресу XXYY !

Раньше компы были слабые, такая вот оптимизация, не обновляется окно дампа. Но можно трассировать с shift, тогда обновляется. Правда, жмакать shift постоянно не надо, а то CALL проскочишь :)

Lavr wrote:
И как во встроенном отладчике изменить содержимое регистров процессора, если это необходимо?

Прямо в окне регистров и менять. Или Tab-ом туда перейти, или мышью ткнуть.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


09 Dec 2021 09:54
Profile WWW
Devil

Joined: 06 Oct 2006 04:17
Posts: 731
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Lavr, тема называется 1816ВЕ48. Причём здесь же эмулятор и Специалист? Что-то тебя вообще не в тему понесло... Отрежь всё что касается эмулятора и перенеси в Специалист.


09 Dec 2021 10:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
Lavr, тема называется 1816ВЕ48. Причём здесь же эмулятор и Специалист? Что-то тебя вообще не в тему понесло... Отрежь всё что касается эмулятора и перенеси в Специалист.
А ты внимательней читай в чем тут дело, а то какую-то ерунду пишешь...
Я под "Специалистом" написал прототип программы для 1816ВЕ48.
Потому что средства разработки и отладки здесь более развиты.
Lavr wrote:
Я, собственно, и затеял написать прототип игры в кодах 8080, чтобы примерно оценить объём кода игры.
Lavr wrote:
если ошибок не будет выявлено, перенесу код со временем на платформу 1816ВЕ48 (aka 8048).

Так что если тут и надо что-то отрезать, так это твой бестолковый пост. :-?
Научись всё же к старости читать и понимать, о чем идёт речь в топике... :wink:

_________________
iLavr


09 Dec 2021 11:35
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 91 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.