PC-01 Lviv
http://pc01.lviv.ua/forum/

SEFA
http://pc01.lviv.ua/forum/viewtopic.php?f=20&t=436
Page 2 of 2

Author:  als [ 30 Jan 2024, 13:53 ]
Post subject:  Re: SEFA

SEFA11
Видаляю попередні версії з _SEFA01 по _SEFA08.
----------
Помилка запису в файл.
Якщо коротко, - при компіляції Delphi 7, процедура запису в файл
( SasLVEmuVer1BlockSave(Name:String); модулю uEmulator_BloadBsave)
працює без помилок, а при компіляції FPC, PascalGUI працює з помилкою.
Як зрозуміти чому, - не знаю.
----------
З'явився модуль uCRT, задумувався, як аналог CRT.
Набридли різні проблеми з кодуванням Українських символів та псевдографіки.
Тому й розробив SAS - таблиця символів (SAS - кодування символів).
Зверніть увагу на приклад TestSymbols1.
В SAS таблицю символів, вхожі усі “гарні” символи двох кодувань ANSI(1251)
та ASC(866), не вхожі - “ввод”, “таб” і т.д. В таблиці поки 244 символу вона
поки в розробці. Можливо в майбутньому кодування одного символу буде 2-мя
байтами, так задумувалась таблиця.
----------
Модуль _UNITS\uTest.pas видален.
----------
В модуль Delphi7\uFORM\uFORM.pas, додана процедура
KeyDownForReadkey(var Key: Word; Shift: TshiftState); для, того що можна
було використовувати функції keypressed, readkey в Delphi 7 по принципу FPC
(PascalGUI). Зверніть увагу на реалізацію цих функцій в модулі
Delphi7\Stub.pas.
----------
Та-а-а-а-к....
Мабуть далі буде так....
_SEFA, як “набір” модулів буде знаходитись C:\_SEFA\....
А для готових програм зроблених з допомогою _SEFA, буде окрема папка
C:\_SEFAProgram\.... Папка “C:\_PascalGUIProgram\....” , для програм, які
для мобільного. Програми цієї папки є копією підготованих (CopyForMob.bat)
та переіменованих папок “ForMOB” з програм з папки “C:\_SEFAProgram\....”.
----------
Папка “Emul_240129NormSpeedForGame” копія папки “Emul_240129NormSpeed”.
Папка “Emul_240129NormSpeedForGame” є емулятором-контейнером для ігор.
Встановлен прапор uEmulator_Keyboard.fNumeralsAsArrows:=1;, -
цифри_як_стрілки в мобільному.
----------
Папку «DOC», перенесено з C:\_SEFA\_SEFA11\ в C:\_SEFA\
----------
Папку «Архів», перенесено з C:\_SEFA\_SEFA11\ в C:\_SEFA\
-----------
Приклад UnitToFile — див. "C:\_SEFA\DOC\uCRT та SAS code\"
-----------
Приклад KeyCode, - коди клавіш FPC та PascalGUI.

Attachment:
_SEFA11.7z [151.75 KiB]
Downloaded 363 times
Attachment:
_SEFAProgram_SEFA11_GamePK-01.7z [1.02 MiB]
Downloaded 368 times
_SEFAProgram_SEFA11_GamePK-01.7z -
Ігри ПК-01 кожна з окремим емулятором, який налаштован, на - цифри_як_стрілки, тобто uEmulator_Keyboard.fNumeralsAsArrows:=1;. Ігри потрібно перевіряти та тестувати та налагоджувати.
Attachment:
_PascalGUIProgram_SEFA11_GamePK-01.7z [983.24 KiB]
Downloaded 369 times
_PascalGUIProgram_SEFA11_GamePK-01.7z -
Ігри ПК-01 кожна з окремим емулятором, який налаштован, на - цифри_як_стрілки, тобто uEmulator_Keyboard.fNumeralsAsArrows:=1;. Ці ігри виключно для PascalGUI (мобільного), кожна папка гри відповідає відповідній папці гри архіву _SEFAProgram_SEFA11_GamePK-01.7z

Author:  als [ 31 Jan 2024, 14:36 ]
Post subject:  Re: SEFA

Налаштована на модулях SEFA...
“ЗАМОК” - гра для ПК-01 "Львів
viewtopic.php?f=3&t=511#p6042

Author:  als [ 17 Apr 2024, 13:26 ]
Post subject:  Re: SEFA

_SEFA12
Та-а-а-к.....
З останньої версії дуже багато чого змінилось усього і не згадаєш, щоб описати.
Тому опишу лише основне, і те що згадаю, а все інше роздивитесь по модулям (pas).
* _SEFA09 - _SEFA10 - _SEFA11 – видаляються.
* Виправлено автозберігання в FPC.
* Тепер головний файл проекту мобільного Project_PascalGUI.pas знаходиться в головній папці. Як і раніше копіювання в папку “ForMOB” робиться, - CopyForMob.bat . Копіювання та перевірка проекту для мобільного, - Test_Project_PascalGUI.bat.
Ну, зрозуміло, що папка “ForMOB” для мобільного, готується через CopyForMob.bat або Test_Project_PascalGUI.bat.
* Нові символи в таблиці SAS, код 245-249
* Оскільки SEFA розробляється, для того, щоб її можна було використовувати в мобільному (в середовищі PascalGUI), то під нього усе максимально “підточується”.
Налаштування винесено в основний модуль, для того, щоб інші модулі не відкривати в мобільному, а з основного модулю робити необхідні налаштування для запуску емулятора, або інших програм. Зараз більш детально усе розглянемо.
Основні модулі програми є:
Для Delphi 7 -_Project_Delphi7.dpr; для FPC - _Project_FPC.pp; для PascalGUI -_Project_PascalGUI.pas відкрийте один з них.
Змінна vStartProgram1, - використовується для вибору програм, які будуть запускатись. В процедурі StartProgram модулю uMain, видно, які програми (проби,тести) існують на даний момент і що буде запущено, відносно змінній vStartProgram1 в “case vStartProgram1 of” процедури StartProgram модулю uMain.
Розглянемо запуск емулятору.
Для цього потрібно вказати Stub.vStartProgram1:=1;{1 = Емулятор ПК-01 "Львів"}.
Далі про налаштування для емулятора.
В інших випадках при vStartProgram1 <> 1, звісно ці налаштування не працюватимуть, так як вони для емулятору.
Змінні EmulModeSpeed, встановлює швидкість емулятору, де 0, - нормаль швидкість; 1 — максимальна швидкість, 2 - "Останній" емулятор, 3 — використовувати налаштування користувача, які далі.
Якщо EmulModeSpeed=0, то швидкість встановлюється нормальна відносно середовища в якому запущений емулятор (див.процедуру uEmulator_Main. StartEmulator_NormSpeed;), де видно, які установлені параметри в залежності від середовища.
Якщо EmulModeSpeed=1, то швидкість встановлюється максимальна, знову ж відносно середовища, та швидкості комп'ютера звісно теж.
Якщо EmulModeSpeed=2, то емулятор буде налаштований на "останній емуль”, який "редагується" (в розробці) (для автора), на цей режим можна не звертати уваги.
При виборі EmulModeSpeed=0..2, OpcodesValue та DelayLV встановлюються автоматично в відповідних процедурах модулю uEmulator_Main! При виборі EmulModeSpeed=3 (налаштування користувача) потрібно ці змінні встановлювати самостійно (див. далі}
Змінна uEmulator_Main.QuickRollingOfLogo, встановлює необхідність “прокрутки” об'ємної заставки “ПК-01 Львов”. Якщо QuickRollingOfLogo=1, відбувається, швидка/непомітна ”прокрутка” заставки "ПК-01 Львов". Якщо QuickRollingOfLogo=0, “прокрутка” повільна/помітна.
Змінна AutoSaveTimeCount, задає інтервал збереження в файл в хвилинах. Якщо AutoSaveTimeCount = 0, зберігання не відбувається, незалежно від встановлених змінних fAutoSaveInFAS та fAutoSaveInFD (далі).
Змінна fAutoSaveInFAS, встановлює необхідність зберігання в файл “AutoSave.SasLVE”. 0, - не зберігає в файл “AutoSave.SasLVE”. 1, -зберігає.
Змінна fAutoSaveInFD, встановлює необхідність зберігання в файл формату “2024-01-19_17-06-00-08.SasLVE”. 0, - не зберігає, 1, - зберігає.
Змінна fNumeralsAsArrows, встановлює режим заміни/підміни клавіш клавіатури. 0,- заміни/підміни не відбувається. 1, - цифри працюють, як стрілки. 2- коригування для гри "ЗАМОК".
Якщо змінна fLoadFile_AutoSave_SasLVE, дорівнює 1, то при запуску емулятору, буде завантажуватись файл вказаний в змінній LoadFile_AutoSave_FileName (див.далі). Якщо 0, - то завантаження не буде відбуватися.
В змінній LoadFile_AutoSave_FileName, необхідно вказувати файл, який необхідно завантажувати, після запуску емулятору. За замовченням, LoadFile_AutoSave_FileName:='AutoSave/AutoSave.SasLVE'. Звісно, змінна fLoadFile_AutoSave_SasLVE повинна бути, рівною 1.
Процедура ChoiceOfProgramLV (Pr:Cardinal), виконує комплексні налаштування, щодо завантаження програм в емулятор “ПК-01”, після його запуску. Наприклад, якщо вказати гру за номером 184, що відповідає грі “Замок” (файлу 'Zamok.SasLVE'), то буде завантажена дана гра, встановлені fNumeralsAsArrows:=2; fLoadFile_AutoSave_SasLVE:=1; і т.д. Список програм ПК-01 та їх номери дивіться в процедурі ChoiceOfProgramLV модулю uEmulator_Main. Примітка. Значення, які кратні 10, - відсутні та завантаження будь-якої програми не відбувається. :-) Деякі інші значення, крім кратних 10, теж відсутні.
Також дивіться інші неописані змінні налаштування емулятору в модулі uEmulator_Main.
Послідовністю вказування змінних (до процедури ChoiceOfProgramLV) та після, звісно можна маніпулювати для досягнення необхідних результатів. :-)
В деяких змінних, не факт, що в усіх, можна замість числа “1”, вказувати будь яке число від 1 до 255, (окрім “0”, звісно). Але в наступних версіях, це може бути в якихось змінних змінено.
Випадки запуску не емулятора, тобто Stub.vStartProgram1 <> 1, а якомусь іншому числу, я розглядати та описувати не буду. Так як вважаю, це не суттєвим. По суті користувач усе може розглянути самостійно в модулі uMain в процедурі StartProgram, де в “case vStartProgram1 of”, вказані відповідність номерів та процедур, які запускаються в залежності від значення vStartProgram1. Ті процедури уявляють з себе проби та тести, тобто нічого особливого, що може зацікавити, але не лінуйтеся розглядати відкритий код SEFA. Вона й пишеться з таким розрахунком. :-)

Перспективи.
В SEFA цієї та інших версіях є та може бути багато різних недоробок та закоментованостей в вихідному коді. Тому не звертайте особливої уваги на це. Це не є недоліком, або недоробками SEFA. Вона, тобто SEFA, завжди була і буде такою. Зроблено одне, - почато та не дороблене інше і т.д.
Attachment:
_SEFA12.7z [115.47 KiB]
Downloaded 383 times

Іграшки деякі перейменовані для SEFA12
Attachment:
_SEFA12_GAMESLV.7z [929.18 KiB]
Downloaded 329 times

Page 2 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/