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

...
  • P.S. онлайн антивирус https://www.virustotal.com , опять чего-то там жалуется на наличие вирусов в "SASEmulator for Windows.7z". Ну уж незнаю! Установленый на компьютере Avast, - не жалуется!
  • P.S. забыл написать: архив "SASEmulator for Windows.7z" [3.26 МБ] с играми в комплекте, точнее говоря прямо в эмуляторе.
  • Image
    Image
  • Image
    Image
  • Image
    Image
  • Rick1
    Image
    Image
  • Image
    Image
  • ALEXS1983 wrote:Понимая это я поступил следующим образом: Почему бы не написать эмулятор который будет уже со встроенной в него игрой (программой)?!... а создавать такие «кос-екзешники» можно будет с помощью доработанного эмулятора который для Windows.
    Получается, что с каждой игрой, будет дублироваться эмулятор. Как-то расточительно, помоему. Эмулятор наверно больше весит, чем один файл с игрой? :?
    А почему бы, не отдельно эмулятор? А игры, можно было бы, загружать в эмулятор, через ассоциации в assoc.ini, при помощи файлового менеджера. :roll:
    ALEXS1983 wrote:ВВЕРХ — “P” (scancode: 25/153)
    ВЛЕВО — “L” (scancode: 38/166)
    ВНИЗ — “;” (scancode: 39/167)
    ВПРАВО — “'” (scancode: 40/168)
    :shock: Как по мне - так стрелочки, были бы удобнее. Но, пишущему виднее.

    P.S. Не плохо бы расширение .bin, из файлов убрать. А то неудобно, переименовывать каждый файл, перед началом игры. :?
    P.P.S.А ещё, 100% загрузка ЦПУ игрой, напрягает! :?
    P.P.P.S. Эх, жаль масштабирования нет! А так, не плохо. :)
  • Yason wrote:Получается, что с каждой игрой, будет дублироваться эмулятор. Как-то расточительно, помоему. Эмулятор наверно больше весит, чем один файл с игрой? :?
    Ну сейчас приблизительно подсчитаем: запускной файл в целом 377600 байт, если убрать массивы, которые могут быть созданы во время запуска (может выделяться им память), то можно вычесть из операривки-эмуля 48000 Байт,(остальное биос 16000Байт всё равно должен оставаться), можно еще вычесть видеопямять 16000 байт, можно вычистить «черновую» (предыдущего кадра) видеопамять 16000 байт которая тоже может выделятся при запуске, ну там, порты - 256 байт, флаги - 256 байт........
    О-о-о-о-о! Тут на остальном можно и не заморачиваться, сама картинка для вывода на экран содержится в файле и её масив занимает 262144 байт.
    Ну вот теперь подсчитаем:
    если сделать, что картинке будет выделяться память во время запуска то размер запускного станет, 377600- 262144 = 115456 байт вот это по существу! Ну остальное если отминусовать то 115456 — 48000 - 16000 - 16000 — 256 — 256 = 34935 — получается что это мог бы занимать сам код с биосом (16000 байт) (но без игры), если вычесть биос (для интереса) то сам код исполнительный код («в чистую») приблизительно равен 18935.
    Сама игра со «всеми патрохами» (и с биосом) занимает 65536(RAM и ROM) +16384(VIDEO картинка изначальная, иногда можно обойтись)+256(порты)+256(флаги)+(ну 100 байт на регистры и прочее)= ну скажем 82532.

    А вот теперь объясню очень существенные вещи.
    Ассемблер я как таково не знаю. Точнее говоря знаю поверхностно. А про функции КОС я вообще молчу. Если ты, Yason, готов предоставить мне готовую часть кода которая будет выделять и освобождать массив...

    Code: Select all

    ; размеры области для рисования
    CanvasWidth = 256*1
    CanvasHeight = 256*1
    ImageData rd (CanvasWidth * CanvasHeight) ; сюда рисовать перед выводом на экран
    
    а также код со способом доступа к тому массиву, который сейчас вот такой:

    Code: Select all

       PutPixel_x: rd 1
       PutPixel_y rd 1
       PutPixel_color rd 1
    PutPixel:
        mov eax, [PutPixel_x]
        mov ebx ,[PutPixel_y]
        mov ecx ,[PutPixel_color]
        imul ebx, CanvasWidth * 4
        mov [ImageData+eax*4+ebx], ecx
        ret
    
    То я готов его переделать, чтобы освободить 262144 из запускного файла.
    Об остальном позже. :-)
  • Продолжение.
    Yason wrote:А почему бы, не отдельно эмулятор? А игры, можно было бы, загружать в эмулятор, через ассоциации в assoc.ini, при помощи файлового менеджера. :roll:
    1.Как я уже говорил, - я новичок в программировании для КОС и не знаю как это делать! Yason, ты готов помогать кусками готового кода ? :-)
    2. Считаю, (может быть по себе любимому :-) ), что люди не любят «заморачиваться» на «прибамбацах» эмуляторов, - Файл/отркыть/закрыть и т. д. И вот решил пойти таким путём, который в сочетании с моими «нулевыми» знаниями о том, как создавать меню в форме «файл\открыть\закрыть и т.д», как загружать, сохранять файл и т. д. можно написать эмулятор со встроенной игрой, без всяких «прибамбацов», а генерировать это будет «SASEmulator for Windows.7z». Если ты его (SASEmulator for Windows.7z) рассматривал, то мысленно можешь представить, что, - выбрал игрушку, даже выбрал момент с которого можно сохранить в запускной-КОС-файл, жмёшь «Generate for KOS” (или что-то подобное, “save for KOS”, оно еще пока не реализовано). И вуа-ля! Готовый кос-«ексзешник»»! Причём, что хорошо, что всё в единственном файле(!), “носись с ним” как “дурень со ступой” :-) по каталогам как с готовым и единственным файлом в котором «всё при нём»! :-)
    Также планируется тот генератор сделать с настройками быстродействия, «легкой» калибровкой цветов, и калибровкой клавиатуры и т. д.
    3.Ты и впрям думаешь, что для КОС это творение нужно в виде эмулятора ?!... рассмотри игрушки в SASEmulator for Windows.7z, задай себе вопрос,- какое количество ты хотел бы, чтобы они были под КОС ?!... думаю, 2 или 3 или 5, да пусть даже и 10. Ну вот, сгенерировал бы нужные игры под КОС и вуа-ля, «забрасывай» SASEmulator for Windows.7z в архив или «на мусорку», играй только в те, что выбрал, со временем и те поудаляешь при необходимости.
    Продолжение следует. :-)
  • Yason wrote: :shock: Как по мне - так стрелочки, были бы удобнее. Но, пишущему виднее.

    Ответ всё тот же: я не знаю как это делать! Но этим я конечно займусь в первую очередь.
    Вот смотри код:

    (
    Пояснение к коду.
    В начале программы переключаю в сканкоды, вот так вот