SAS Emulator (эмулятор «ПК-01 Львов»)

...
  • viewtopic.php?f=43&t=3253&start=60#p65014
    Пк-01 Львов.7z [22.25 КБ]
    4 скачивания -
    наверное всё таки нашлись желающие писать на старом добром васике! :-)
    Странно, что документации не просят!... :-)
    наверное всё прекрасно знают и без документации! :-)
  • Yason wrote:Берёшь парсер. Переделываешь под себя, если надо. Парсер, как минимум, должен получить путь с именем файла. После, загружаешь файл в память сисей 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 ? или только в самой КОС ?
    Это всё только лишь вопросы которые "сходу" "атаковали" мой мозг. То ли еще будет!... когда коснусь сути да дела! :-(
    В общем, ощущаю, что мрачно это всё как-то.... Может проще самому нагенерить и генератор (виндовый) выложить, на случай если кому то не что-то понравится из мной на генерированного... пусть каждый сам нагенерирует как захочет... а винду найдёт, :-) или попросит у кого нибудь, у кого винда есть. :-)
    Понимашь, генератор в дельфи для меня написать, это как два пальца... и всё будет как говорится без сучка, без задиринки, а вот тут, я чувствую, застрял надолго! Буду морочится долго и нудно! Вопросы бомблят мне мозг!
  • Хотел создать опрос, но не знаю как это делать
    Какой наиболее удачный и приемлемый графический режим для эмулятора ?
    1. 256х256 (оригинал)
    2. 512х512 (2-кратное увеличение :-) )
    3. 768х512 (не является прямопропорциональным)
    ==============================
    Под какую среду, должен быть ориентирован эмулятор ?
    1. КОС (оригинальная система)
    2. QEMU
    3. KolibriWin
    4. другую.
    ==============================
    Скорость работы игр в эмуляторе...
    1. Лучше помедленнее (чтобы детям было приемлемо)
    2. Нормальная (приблизительно такая же как и в других эмулях)
    3. Быстрая (чтобы веселей и нескучно играть было бы)
    4. Каждую игру регулировать отдельно.
    ================
    Ну вот пока и всё.
  • ALEXS1983 wrote:viewtopic.php?f=43&t=3253&start=60#p65014
    Пк-01 Львов.7z [22.25 КБ]
    4 скачивания -
    наверное всё таки нашлись желающие писать на старом добром васике! :-)
    1 скачивание моё. Скачал из любопытства. Писать всерьёз на бейсике, не собираюсь, ибо не моё. :)
    ALEXS1983 wrote:Странно, что документации не просят!... :-)
    наверное всё прекрасно знают и без документации! :-)
    Я лично, документацию на оф.сайте скачал. :)
  • ALEXS1983 wrote:А где функция обратная этой функции?.. т.е. выгрузить файл (записать файл) ? что-то я её не нахожу. Для начала чтобы что-то считать надо бы выгрузить такое какое оно есть в модуле эмуля, чтобы внимательно всё рассмотреть.
    То есть записать в файловую систему? Тогда, сися 70.2.
  • ALEXS1983 wrote:А как подставлять в командную строку ? в винде в фаре, навёл на запускной файл, жмёшь Ctrl+Enter, далее навёл на нужный файл, жмёшь Ctrl+Enter, далее, Enter, и живи и жизни радуйся!... :-) А ЗДЕСЬ КАК ЭТО ? шото я не понял как это в кос...
    Командная строка передаётся 2-мя прогами: консолью и файловым менеджером (ассоциации в kfar.ini, kfm.ini, assoc.ini). Командная строка приходит прямо в приложение.

    Code: Select all

    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 парсером и грузишь файл в память эмуля.
  • ALEXS1983 wrote:Создать .bat-файл и прописать в него типа "Emul game.lvt" ? - а БАТ-файлы как в кос делать ?
    Без понятия, потому как, очень редко пользуюсь. Но когда пользуюсь, то всё делаю вручную. Но там, помоему расширение .cmd используется.
  • ALEXS1983 wrote:Немаловажный вопрос: а как и где это всё проверять возможно ?... в KlbrInWin, смогу проверять ? или QEMU ? или только в самой КОС ?
    Скорее всего, только QEMU и КОС.
  • ALEXS1983
    Пример ассоциации для assoc.ini.

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

    Code: Select all

    lvt=$SASEmul
    Пример ассоциации для kfar.ini. После пункта [Associations]

    Code: Select all

    lvt=/sys/sasemul
    Пример ассоциации для kfm.ini. После пункта <>files_associations

    Code: Select all

    lvt /sys/sasemul
    Только не забудь прописать, правильный путь и название.