1 / 1 / 0
Регистрация: 14.07.2012
Сообщений: 25

DprToLvt (PasToLvt). Пишу среду разработки (Эмулятор) для ПК-01 Львов

15.07.2012, 09:56. Показов 5190. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Команды КР580 в виде Дельфи процедур…

Правильно ли реализованы следующие процедуры:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Procedure SBBD; 
Begin 
if FlagC then wremb:=1 else wremb:=0; 
RgA:=RgA-RgD-wremb;
end;
 
Procedure SBI(b:byte);
Begin
if FlagC then wremb:=1 else wremb:=0;
RgA:=RgA-b-wremb;
 end;
 
Procedure ORI(b:byte);
Begin 
RgA:=RgA or b; 
SetFlagAc(false);SetFlagC(false);
end;

Не знаю как реализовать Команду DAA на Дельфи, вот есть вырезки из СИ(которого я не знаю) и Асма, помогите транслировать в Дельфи конструкции или опишите пожалуйста каждую строку словами

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Procedure DAA;
case 0x27: // 27 DAA
    tmp1 = 0;
    if ((RgF & f_C) || ( RgA         > 0x99)) tmp1 |= 0x60;
    if ((RgF & f_A) || ((RgA & 0x0F) > 0x09)) tmp1 |= 0x06;
    tmp2 = RgA + tmp1;
    RgF = i8080_flags[tmp2 & 0xFF];
    if ((tmp2 ^ RgA ^ tmp1) & 0x10) RgF |= f_A;
    if (tmp2 > 0xFF) RgF |= f_C;
    RgA = tmp2 & 0xFF;
    clock += 4;
    izmRgPC(+1);
    break;
Assembler
1
2
3
4
5
6
7
8
; DAA
C27:
        mov ax, [RgPSW]
        sahf
        daa
        lahf
        mov [RgPSW], ax
        ret
вот еще огрызок который мне пытались перевести на паскаль (Дельфи):
Pascal
1
2
3
tmp := src1 + src2;
SetFlagAc(((src1 xor src2 xor tmp) and 16) <> 0);
dst := tmp;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2012, 09:56
Ответы с готовыми решениями:

Подскажите среду для разработки
Доброе время суток! Волей судеб приходится сидеть на работе на стареньком НБ Toshiba. Естествено не о каком мак и на худой конец linux...

Подскажите среду для разработки
Всем доброго времени суток) Наверное этот вопрос уже задавался, но я не нашел. Подскажите среду для разработки под андроид, если я...

Скачать среду разработки для программирования
Здравствуйте. Я, не как, и не где не могу скачать среду для разработки программирования. подскажите пожалуйста где его скачать.

46
1 / 1 / 0
Регистрация: 14.07.2012
Сообщений: 25
06.09.2013, 09:37  [ТС]
Студворк — интернет-сервис помощи студентам
Уважаемые форумчане! Обращаюсь к тем кто скачивал и запускал (пользуется) моим эмулятором ( http://sas.forumbb.ru/click.ph... fid=394807 ). Очень прошу Вас написать о его торможении. Имеется ли оно?... Часто ли?... Может как-то знаете или поняли как избавляться от него?.. Стоит ли мне думать о том как от него в эмуляторе избавится??!!.. (если оно есть конечно). :-)
У меня лично — всё в порядке! Но это если в памяти «висит» Дельфи 7. Как это зависимо ума не приложу. :-) Напишите пожалуйста при каких случаях у Вас всё хорошо (или плохо).
С уважением, SAS,
автор SAS emulator.
0
4195 / 1841 / 223
Регистрация: 06.10.2010
Сообщений: 4,127
06.09.2013, 13:28
Не уверен можно ли это назвать тормозами. Лагает конечно, но возможно это из-за низкой частоты обновления таймера. В общем я не запускал эти игры на настоящей машине и не знаю должны ли они идти быстрее или вот так - рывками.

Также есть подозрения, что тормозит код вывода на экран, потому что я вижу как изображение прорисовывается сверху-вниз. Этого ведь не должно быть?

В википедии сказано что там "Видео — 16 КБ с разрешением 256×256 — 4 цвета". Не знаю как делаешь ты, но я бы для отрисовки использовал 2-битный палитровый битмап.

Добавлено через 8 минут
Кстати таймер довольно таки глючная штука. Лучше сделай так: запускаешь отдельный поток для рачётов
Delphi
1
2
3
4
5
6
7
repeat
  StartTime:=GetTickCount;
  // тут твои расчёты
  n:=StartTime+20-GetTickCount; //вычисляем сколько времени до следующего тика
  if n>0 then
    Sleep(n);
until false;
Добавлено через 4 минуты
Был такой случай - в сообщении WM_PAINT забыл поставить ValidateRect и сообщение WM_TIMER вообще не приходило, т.к WM_PAINT приоритетнее.
1
1 / 1 / 0
Регистрация: 14.07.2012
Сообщений: 25
06.09.2013, 17:16  [ТС]
Приношу извинения за то что не пояснил что подразумевается под «торможение»...
Привожу тест для его определения.
Надеюсь от подобного теста Вы получите удовольствие. :-)
Запустите SASEmulator1.2Beta
Выберите в Комбобокс игру: «Аэрокобра(1)» либо откройте её имя файла:Аэрокобра1.LVT
При необходимости проверьте (либо установите) FPS=50, Freq/fps=68000
Установите графический режим 768х512 Меню:Tools\Graphic Mode\768x512
На экране заставка Aerocobara. Нажмите пробел.
На экране: «Ваша задача — забрать....»
Подготовьте часы так чтобы было видно секунды (на компе).
При нажатии пробела одновременно запомните время минуты и секунды.
Происходит «синяя» очистка экрана и далее пошла игра.
Пройдите всеми правдами и не правдами :-) Первый уровень до момента окончания (синяя очистка, перед STAGE 02)
снимите показания времени.
При нормальной работе эмулятора без торможения, время прохождения 1-го уровня должно быть в пределах 47-51 секундах. У меня было 48сек(50сек). Чем ближе к 47 — тем лучше. :-)
При торможении время прохождения увеличивается. У меня было 78 сек.
При изменени граф.режима на 512х512 и торможении, время = 58 сек.
При торможении и увеличении граф.режима более чем 512х512, явно заметно изменение скорости игры по сравнению с более маленькими разрешениями (256х256). При нормальной работе — такого явно заметно быть не должно!... и время прохождения 1-го уровня (на любых граф. Режимах) остается в тех же пределах т.*е. (в пределах 47-51 секундах)
Заранее благодарен за внимание к моему эмулятору и за проведенный тест.

Добавлено через 1 час 26 минут
Цитата Сообщение от murderer Посмотреть сообщение
Не знаю как делаешь ты,
var gamecanvas: tbitmap;

MainFormEmu.Canvas.StretchDraw(rect(0,To olBar1Height,MainFormEmuClientWidth,Main FormEmuClientHeight),gamecanvas);

Цитата Сообщение от murderer Посмотреть сообщение
но я бы для отрисовки использовал 2-битный палитровый битмап.
А что єто такое ?... можно поточнее...

Цитата Сообщение от murderer Посмотреть сообщение
Кстати таймер довольно таки глючная штука. Лучше сделай так: запускаешь отдельный поток для рачётов
С отдельными потоками уменя были сложности уже непомню какие... вроде проц сильно грузит... да и сам я в них хилый спец - боюсь! :-)
Цитата Сообщение от murderer Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
repeat
  StartTime:=GetTickCount;
  // тут твои расчёты
  n:=StartTime+20-GetTickCount; //вычисляем сколько времени до следующего тика
  if n>0 then
    Sleep(n);
until false;
Расммотрю что это за код... а ведь его можно в таймер вставить и при этом интревал таймера = 1 т.е. 1/1000 секунды?... и пусть работает словно в потоке :-)
0
4195 / 1841 / 223
Регистрация: 06.10.2010
Сообщений: 4,127
11.09.2013, 07:19
А что єто такое ?... можно поточнее...
Создаётся функцией CreateDIBSection. В структуру BITMAPINFO в поле bmiColors записываешь палитру. Поле bmiHeader заполняется так:
Code
1
2
3
4
5
6
7
8
9
10
11
biSize          sizeof(BITMAPINFOHEADER)
biWidth         256
biHeight        256
biPlanes        1
biBitCount      2
biCompression   0
biSizeImage     16384
biXPelsPerMeter 0
biYPelsPerMeter 0
biClrUsed       4
biClrImportant  4
Вывод на экран осуществляется функцией StretchBlt.
1
1 / 1 / 0
Регистрация: 14.07.2012
Сообщений: 25
11.09.2013, 10:39  [ТС]
murderer, спасибо за совет (подсказку)... но, я вот порылся в инете и не нахожу готовых исходников на Дельфи по применению CreateDIBSection и StretchBlt. В частях кода я врядле чего разберусь. Поэтому отложу-ка я это видимо в "долгий ящик". :-(
0
1 / 1 / 0
Регистрация: 14.07.2012
Сообщений: 25
13.09.2013, 12:31  [ТС]
SAS emulator 1.3 Beta (от 13-09-2013)
* Постоянная прорисовка экрана. Теперь переходя из фонового режима в эмулятор, экран будет прорисован автоматически. Тоже самое во время паузы.
* Меню Tools\”Debugger...” был заменён тремя формами «Assembler”, “Registers and flags”, “Memory”.
* Добавлено в меню Tools переключение способа вывода на экран «Screen Drawing”, где можно переключить на способ вывода «Timer” либо «RDTSC”. Попробуйте это при торможении эмулятора. Скорость эмулятора в режиме «RDTSC” регулировалась при FPS=50, Freq/fps=68500.
* Добавлены игры в каталог GAMES (и в ComboBox): Цветные Линии(3)=lines_03.lvt ; Arcanoid=Arcanoid.SasLVE ; Circus=Circus.SasLVE ; Домино=DOMINO.SasLVE ; Утки=ducks.SasLVE
frog=frog.SasLVE ; International Karate=karateint.SasLVE ; Корона=korona.SasLVE ; Лагуна=laguna.SasLVE ; Pool=pool.SasLVE ; Sokoban(3)=sokoban3.SasLVE ; Space Shock=spaceshock.SasLVE ; Star Raider=Starraider.SasLVE ; Тетрис 4=TETRIS4.SasLVE
* В калатоге GAMES все игры преобразованы в формат SasLVE. Это удобно и красиво. :-)
* В случае отсутствия каталогов «AutoSave» и «Log» - создаются автоматически.
* Преобразована дата (и время) в именах файлов при автозаписи в каталог «AutoSave».
* Совместил модуль DprPasToLV с эмулятором. Надеюсь в эмуляторе ничего не «разшатал» :-)
( Для тех кому непонятно что такое DprPasToLV почитать можно здесь: DprToLvt (PasToLvt) )
Существует два файла для запуска эмулятора, SASEmulator.exe и SASEmulator_.exe. Запускать эмулятор можно любым каким душа пожелает :-) разница между ними в том, что SASEmulator.exe - использует DprPasToLV.dll, а SASEmulator_.exe - работает самостоятельно, без модуля DprPasToLV.dll. В их работе разницы не должно быть, во всяком случае мной замечено не было!
Каталог Samples содержит примеры использования модуля DprPasToLV.dl, а в файле DLLFP.pas описание процедур доступных для использования.
Поскольку на торможение эмулятора я слышал всего лишь одну жалобу... :-) а на просьбу провести тест определения торможения, вообще «глухо», ничего не слышал :-) то пока вывод на экран оставляю таким как есть!

Если у Вас поялось желание что либо сказать :-) по поводу эмулятора, прошу сюда...

Ну вот пока всё! Надеюсь ничего не забыл!... описать и укомплектовать в архив ! :-)
Пишите. Жду. :-)

Скачать:http://file.oboz.ua/download.php?fid=494897
0
1 / 1 / 0
Регистрация: 14.07.2012
Сообщений: 25
26.11.2013, 17:54  [ТС]
Дано:
1.программа (пишу её), использующая 2 и 3.
2.длл, - использующая 3
3.длл
Когда 1 и 2 использует 3 это будет использоваться как одна копия 3(с общими данными)? или для 1 своя копия 3, а для 2 — своя ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2013, 17:54

Какую среду разработки выбрать на Mac для С++?
Добрый день! Недавно решил заняться изучением программирования на С++, однако сразу возник вопрос: какую среду разработки лучше...

Какую среду разработки для Qt4.5 выбрать?
Раньше был линукс там ide for Qt4 уже шла на диске отличная. Какая среда разработки для Qt4 под виндоус есть? Знаю что есть nokia Qt...

Какую среду разработки выбрать для диплома
Здравствуйте всем! Подошло время для диплома, с темой определился, а с какой средой разработки нет. Можете посоветовать, что лучше? Я хочу...

Посоветуйте среду разработки (с лицензией для студентов)
Захотел попробовать с++,скачал visual studio,после intelij IDEA для меня что-то начатое но незаконченное. Так вот вопрос есть ли...

Посоветуйте выбор среду для разработки приложения для работы с БД
Здравствуйте. Появилась задача создать программу для работы с базой данных(несколько клиентов-сервер. Думаю использовать БД MySQL). Также...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
47
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru