С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Перенёс SpritePutAnd(), SpritePutOr(), и карту
demo_z_+3.zip (.tap для Spectrum+3)
![]()
версия 0.3
добавлен оператор case
доработана zxlikepascal_lib
собирается и запускается demo_z.pas
оптимизирован код при работе с массивами
некоторые внутренние изменения
bmpascal_v0.3.zip
В EmuZWin 2.7 все проги работают, кроме demo_z (с прошивкой Spectrum 3+), выводит только цветные диагональные полосы.
life работает нормально, но выдает в начале одну и ту же комбинацию микроорганизмов. Необходим randomize.
И вообще не понял, как компилировать файлы pas. Я лет 15 уже только на кнопки с надписями умею жать.Напиши плз короткую инструкцию.
Про ramdomize и иструкцию - учту.
Demo_z не работает которая .tap? Только что проверил, в FUSE работает.
Где взять EmuZWin? Всё что нахожу - VirusTotal ругается. Он, правда, и на мой компилятор сказал "1/61"...
Все версии EmuZWin с авторского сайта:
В отладчике EmuZWin я вижу только одно поле под названием "RAM", в котором появляется то, что выводится в порт 0x7FFD, и переключатель ROM.
Это по идее должно включить special paging mode, pages 0,1,2,3. Но в поле "RAM" появляется "01", с адреса 0xC000 появляется page 1, при этом на адресе 0x0000 остаётся ROM.Код:DI LD BC,1FFDH LD A,01H OUT (C),A JP 0000H
Неполная/некорректная эмуляция порта 0x1FFD? Или я что-то не так делаю?
- - - Добавлено - - -
Полностью согласен
И, кажется, некорректно эмулирует порт 0x1FFD.
В командной строке
Выдаст файл 1.asm, а дальше - по вкусу. Я пользуюсь z80asm (в Ubuntu что-то поставилось, но он не поддерживает dup/edup) или Zeus Z80 Assembler, добавив в конце одну строкуКод:bmpc_z80.exe 1.pas
Код:output_bin "1.bin",0x8000,$-0x8000
Это оттого, что DUP/EDUP был придуман авторами кто их ввел от незнания трансляторов-аналогов, в более ранних ассемблерах (и в т.ч. лучших по моему мнению таких как M80 от Microsoft) для аналогичных целей использовался блок REPT-ENDM. В современных трансляторах обычно используются таки REPT-ENDM, а DUP/EDUP назначаются как алиас чтобы работали оба варианта. Предлагаю это вынести в опцию, чтобы компилятор генерировал оба варианта по указанию ключем командной строки. Обидно, если вывод компилятора Паскаль будет не совместим с M80 - для него под CP/M масса различных библиотек (формата REL линковщика L80 пакета Микрософт) в т.ч. и либы от различных ЯВУ т.к. они использовали M80 как транслятор с ASM.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
"dup" есть в библиотеке из ZX Like Pascal.
z80asm не поддерживает ни dup, ни rept.
В компиляторе dup/edup не используется, поэтому опция не нужна. Сгенерированный код вообще стараюсь сделать как можно проще с точки зрения ассемблера. А вот опция компилятора "использовать недокументированные инструкции" может и понадобится.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)