Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб ноя 18, 2017 12:08 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 102 сообщения ]  На страницу Пред. 13 4 5 6 7 След.
Автор Сообщение
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 9:13 am 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Pathoswithin писал(а):
Наоборот, общая архитектура гораздо важнее чем низкоуровневая оптимизация.

Ну да! Я так и говорил когда-то: "Набахкал", главное, чтобы работало, а там смотришь, - что нужно оптимизировать, чтобы "ко дну не тянуло", а то, что неактуально, - вообще не трогать!... и такое хоть на асме хоть, на самом чёрте. :-)
Вот ты, Pathoswithin и CleverMouse говорили мне, что в процедуру должна быть передача через стэк, и возврат тоже. Вот посмотри эту процедуру....
Спойлер: Показать
Код:
    ; запускасть ScanCodeKey
    ;Результат обработки в
    ScanCodeKey1 rd 1 ; "Чистый" код
    ScanCodeKey2 rd 1 ; обработаный код (-128 если больше 128)
    ScanCodeKeyUD rd 1 ; если 0 - отжата, если 1 -нажата
    ScanCodeKeyExt rd 1 ; 0- обычный код; 1 - доп ext (224); 2 - доп2 ext2 (225)
    ScanCodeKeyUnitedCode rd 1 ; "единый" код
   
  ScanCodeKey_int40_2dop:
     mov  eax,2
     mcall
     shr  eax,8         ; scancode
     and  eax,0xff
   ret


ScanCodeKey:   ; START ScanCode
 call ScanCodeKey_int40_2dop

  cmp  eax,224 ; если доп код....
  jne  ScanCode_cmp_225;  если не равно нулю
  mov [ScanCodeKeyExt],1
  mov [ScanCodeKey1],0
    JMP ScanCode_m2;ScanCode_m2

ScanCode_cmp_225:
   cmp   eax,225 ; если доп2 код....
    jne  ScanCode_m1;  если не равно нулю
  mov [ScanCodeKeyExt],2
  mov [ScanCodeKey1],0
  jmp ScanCode_m2

ScanCode_m1:
; САМА кодировка
ScanCode_m2:
mov[ScanCodeKey1], eax ; "Чистый" код
 ; Клавиша нажата DOWN
mov[ScanCodeKeyUD],1 ; если 0 - отжата, если 1 -нажата
    cmp  eax,128
    jb    no_up
; Клавиша отжата секция UP
 mov[ScanCodeKeyUD],0 ; если 0 - отжата, если 1 -нажата

no_up:
    mov    ebx,eax
    and    ebx,0x7f
mov [ScanCodeKey2],ebx ; обработаный код (-128 если больше 128)

; "единый" код
mov eax,[ScanCodeKeyExt]
shl eax,8
add eax,ebx
mov[ScanCodeKeyUnitedCode],eax

ScanCodeKey_ret: ret

...... и вот скажи мне, какие у меня должны быть печали?... :-), что результат работы процедуры, в переменных
ScanCodeKey1 ,ScanCodeKey2, ScanCodeKeyUD, ScanCodeKeyExt, ScanCodeKeyUnitedCode ,
а не в регистрах и стэке ?!
А далее, процедура которая вызывает ScanCodeKey
Спойлер: Показать
Код:
KeyProcess2:
call ScanCodeKey
mov eax,[ScanCodeKey2]
mov [readmask_keynum],eax
           call readmask2
cmp [readmask_Result],0
jz KeyProcess2_ret ; если нет клавиши в таблице         
       mov eax,[readmask_Result]
       mov [kbd_mask],eax
  mov eax, [ScanCodeKeyUD]; если 0 - отжата, если 1 -нажата
  mov [kbd_press],eax
     call kbdA
     mov [ScanCodeKeyExt],0
KeyProcess2_ret:
    ret

когда какие надо возвращаемые данные из ScanCodeKey, тогда она их от туда и берёт! И процедуры как "на ладони"(!), просты и понятны ВСЕМ, и новичкам в том числе, и себе любимому. В чём ты, Pathoswithin и CleverMouse меня пытались убедить, - ума не приложу! :-)
В быстродействии через стек ? В меньшем коде ? А ведь Push, Pop тоже ведь занимают место в памяти(!), да и по тактам они ведь не "нулевые"(!), а [SP+$04], ведь тоже самое, что обращение, что mov eax,[readmask_Result], например ?... ничем не быстрее, ведь правильно я говорю?!... а сколько примудростей (подготовки Push`ами), надо чтобы доступатся вот так вот [SP+$04], а потом, Pop`ами это всё "утрясать", да нигде и не в чём не ошибится.
А у меня всё просто: в одной процедуре получает переменная значение вот так mov [ScanCodeKey2],ebx), в другой использует его вот так mov eax,[ScanCodeKey2].
ВСЁ! Чего еще надо?!... особенно новичку!
Не любите вы новичков, ох, не любите! :-)
Вместо того, чтобы мне вот такое объяснить, (это я бы так новичку объяснял, тому кто новее меня....) :-) вы мне про какие-то стандарты передачи, в процедуру... из процедуры :-)
видимо вообще мне захотели мозги "зашить" напрочь! :D :D :D
Не, ну, Pathoswithin и CleverMouse не поймите меня неправильно!... я опредёленно вам благодарен за многое! Но спор есть спор! Спор требует фактов! В споре рождается истина! Поэтому не сочтите эти строки за оскорбление или неуважение!


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 10:17 am 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
viewtopic.php?f=43&t=3253&start=60#p65014
Пк-01 Львов.7z [22.25 КБ]
4 скачивания -
наверное всё таки нашлись желающие писать на старом добром васике! :-)
Странно, что документации не просят!... :-)
наверное всё прекрасно знают и без документации! :-)


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 10:58 am 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Yason писал(а):
Берёшь парсер. Переделываешь под себя, если надо. Парсер, как минимум, должен получить путь с именем файла. После, загружаешь файл в память сисей 68.27 и передаёшь управление эмулю по обработке полученного файла(например, игры ). Алгоритм простой. Я бы, даже сказал - примитивный. :)

Это для тебя он простой и приметивный! :-)
давай пока getparam.asm, оставим в стороне.
Вот...
Цитата:
= Функция 68, подфункция 27 - загрузить файл ===================
======================================================================
Параметры:
* eax = 68 - номер функции
* ebx = 27 - номер подфункции
* ecx = указатель на ASCIIZ-строку с именем файла
Возвращаемое значение:
* eax = указатель на загруженный файл или 0
* edx = размер загруженного файла или 0
Примечания:
* функция загружает и, при необходимости, распаковывает файл (kunpack)

---------------------- Константы для регистров: ----------------------
eax - SF_SYS_MISC (68)
ebx - SSF_LOAD_FILE (27)
======================================================================

А где функция обратная этой функции?.. т.е. выгрузить файл (записать файл) ? что-то я её не нахожу. Для начала чтобы что-то считать надо бы выгрузить такое какое оно есть в модуле эмуля, чтобы внимательно всё рассмотреть.
А как подставлять в командную строку ? в винде в фаре, навёл на запускной файл, жмёшь Ctrl+Enter, далее навёл на нужный файл, жмёшь Ctrl+Enter, далее, Enter, и живи и жизни радуйся!... :-) А ЗДЕСЬ КАК ЭТО ? шото я не понял как это в кос...
Привязать расширение к эмулю?! Ну и как это в кос сделать ?
Создать .bat-файл и прописать в него типа "Emul game.lvt" ? - а БАТ-файлы как в кос делать ?
Немаловажный вопрос: а как и где это всё проверять возможно ?... в KlbrInWin, смогу проверять ? или QEMU ? или только в самой КОС ?
Это всё только лишь вопросы которые "сходу" "атаковали" мой мозг. То ли еще будет!... когда коснусь сути да дела! :-(
В общем, ощущаю, что мрачно это всё как-то.... Может проще самому нагенерить и генератор (виндовый) выложить, на случай если кому то не что-то понравится из мной на генерированного... пусть каждый сам нагенерирует как захочет... а винду найдёт, :-) или попросит у кого нибудь, у кого винда есть. :-)
Понимашь, генератор в дельфи для меня написать, это как два пальца... и всё будет как говорится без сучка, без задиринки, а вот тут, я чувствую, застрял надолго! Буду морочится долго и нудно! Вопросы бомблят мне мозг!


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 11:53 am 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Хотел создать опрос, но не знаю как это делать
Какой наиболее удачный и приемлемый графический режим для эмулятора ?
1. 256х256 (оригинал)
2. 512х512 (2-кратное увеличение :-) )
3. 768х512 (не является прямопропорциональным)
==============================
Под какую среду, должен быть ориентирован эмулятор ?
1. КОС (оригинальная система)
2. QEMU
3. KolibriWin
4. другую.
==============================
Скорость работы игр в эмуляторе...
1. Лучше помедленнее (чтобы детям было приемлемо)
2. Нормальная (приблизительно такая же как и в других эмулях)
3. Быстрая (чтобы веселей и нескучно играть было бы)
4. Каждую игру регулировать отдельно.
================
Ну вот пока и всё.


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 12:19 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
ALEXS1983 писал(а):
http://board.kolibrios.org/viewtopic.php?f=43&t=3253&start=60#p65014
Пк-01 Львов.7z [22.25 КБ]
4 скачивания -
наверное всё таки нашлись желающие писать на старом добром васике! :-)
1 скачивание моё. Скачал из любопытства. Писать всерьёз на бейсике, не собираюсь, ибо не моё. :)
ALEXS1983 писал(а):
Странно, что документации не просят!... :-)
наверное всё прекрасно знают и без документации! :-)
Я лично, документацию на оф.сайте скачал. :)


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 12:23 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
ALEXS1983 писал(а):
А где функция обратная этой функции?.. т.е. выгрузить файл (записать файл) ? что-то я её не нахожу. Для начала чтобы что-то считать надо бы выгрузить такое какое оно есть в модуле эмуля, чтобы внимательно всё рассмотреть.
То есть записать в файловую систему? Тогда, сися 70.2.


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 12:37 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
ALEXS1983 писал(а):
А как подставлять в командную строку ? в винде в фаре, навёл на запускной файл, жмёшь Ctrl+Enter, далее навёл на нужный файл, жмёшь Ctrl+Enter, далее, Enter, и живи и жизни радуйся!... :-) А ЗДЕСЬ КАК ЭТО ? шото я не понял как это в кос...
Командная строка передаётся 2-мя прогами: консолью и файловым менеджером (ассоциации в kfar.ini, kfm.ini, assoc.ini). Командная строка приходит прямо в приложение.
Код:
use32
   org 0x0
   db 'MENUET01'   ; 8 byte id
   dd 0x01      ; header version
   dd START   ; start of code
   dd IM_END   ; size of image
   dd I_END   ; memory for app
   dd stacktop   ; esp
   dd cmdline   ; I_Param           <----- адрес буфера для командной строки.
   dd path      ; APPLICATION PATH  <----- адрес буфера для пути к программе.

; code area.

;data area.

IM_END:
;unitialized data area.
cmdline:  rb 1024    ; буфер для командной строки.
path:     rb 1024    ; буфер для пути к программе.
          rb 1024
stacktop:
I_END:
Разбираешь данные cmdline парсером и грузишь файл в память эмуля.


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 12:49 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
ALEXS1983 писал(а):
Создать .bat-файл и прописать в него типа "Emul game.lvt" ? - а БАТ-файлы как в кос делать ?
Без понятия, потому как, очень редко пользуюсь. Но когда пользуюсь, то всё делаю вручную. Но там, помоему расширение .cmd используется.


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 12:51 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
ALEXS1983 писал(а):
Немаловажный вопрос: а как и где это всё проверять возможно ?... в KlbrInWin, смогу проверять ? или QEMU ? или только в самой КОС ?
Скорее всего, только QEMU и КОС.


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 1:12 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
ALEXS1983
Пример ассоциации для assoc.ini.

Надо прописать в начале файла.
Цитата:
[SASEmul]
exec=/sys/sasemul
Надо прописать после пункта [Assoc] /=$Eolite
Код:
lvt=$SASEmul

Пример ассоциации для kfar.ini. После пункта [Associations]
Код:
lvt=/sys/sasemul

Пример ассоциации для kfm.ini. После пункта <>files_associations
Код:
lvt /sys/sasemul
Только не забудь прописать, правильный путь и название.


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 2:48 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Yason писал(а):
1 скачивание моё. Скачал из любопытства. Писать всерьёз на бейсике, не собираюсь, ибо не моё. :)

Ну напиши в шутку! :-) Ведь необязательно программу написать именно в серьёзе! :-)
Ну да ладно! То всё была моя шутка! :-) Хотя...
в каждой шутке.....
и если вдруг найдутся такие новички-маньяки, которым лишь бы, что написать и лишь бы как, то вполне возможно, что получится, и даже результативно! Ведь эмуль можно разогнать как захочешь, и программа дубово написанная на жалком васике ПК-01 станет вполне приемлемой. :-) Вот правда ресурсы жрать будет если эмуль разогнать, но то уже как говорится,- дело третье! Для таких писак, оно не актуально, по себе знаю :-)
ALEXS1983 писал(а):
Странно, что документации не просят!... :-)
наверное всё прекрасно знают и без документации! :-)Я лично, документацию на оф.сайте скачал. :)

О-о-о-о! Можно и так! Кто захотел тот нашёл!
Надеюсь и с моим эмулем, так будет: кто захочет, - воспользуется генератором и найдет как и где запустить, и нагенерит себе как надо!.... :-) и забросит в сторону!... генератор, в смысле :-)
===========
Yason писал(а):
То есть записать в файловую систему? Тогда, сися 70.2.

Нда! Очень уж сильно они "похожи", прям как в зекрале! И главное "простая" как семь копеек одной монетой, :-) ну почти как 68, 27. :-)
А если серьёзно, - ожидал другого!
Не, Yason, наверное пока на этом СТОП! Буду делать как могу! Далее время покажет! Может быть после написанного и выложенного генератора, я всё таки созрею, для написания того, что ты предложил! Если это будет нужно, хоть кому-то, кроме меня.
Спасибо за всё! Пересмотрю это всё когда созрею! :-)
===========
Yason писал(а):
Скорее всего, только QEMU и КОС.

Фигнишка, однако! :-( :-)


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 4:18 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт апр 30, 2015 11:50 pm
Сообщения: 102
ALEXS1983 писал(а):
http://board.kolibrios.org/viewtopic.php?f=43&t=3253&start=60#p65014
Пк-01 Львов.7z [22.25 КБ]
4 скачивания -
наверное всё таки нашлись желающие писать на старом добром васике! :-)
Странно, что документации не просят!... :-)
наверное всё прекрасно знают и без документации! :-)

Я просил...

_________________
Юзер, просто юзер...со времён MS-DOS.


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 6:22 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Sewer писал(а):
Я просил...

Я думал, что ты шутишь.... в ответ на мою шутку :-)
Ну Yason то уже ссылку выложил, - http://lvovpc.cu.cc/

Персональная ЭВМ ПК-01 «Львов». Описание языка «Бейсик»
http://lvovpc.cu.cc/files/BasicBook.pdf

А у себя я кстати, где-то потерял по васику. Думал, что есть у меня. :-(
У меня вот такая http://lvovpc.cu.cc/article.shtml?id=2


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 6:24 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Что-то мой опрос который viewtopic.php?f=43&t=3253&start=75#p65030
никто буд-то бы не видит! :-( А мне это очень важно, между прочим!


Вернуться к началу
 Заголовок сообщения: Re: SAS Emulator (эмулятор «ПК-01 Львов»)
СообщениеДобавлено: Чт мар 31, 2016 7:46 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
В эмуляторе реализована пауза (кл. "DELETE"). Думаю, что работы над эмулятором закончены, начинаю заниматься генератором.
Boulder Dash
Вложение:
Boulder Dash.7z [30.47 КБ]
12 скачиваний

Изображение


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 102 сообщения ]  На страницу Пред. 13 4 5 6 7 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB