заливать там, где нет шариков
заливать там, где нет шариков
Hammer (07.02.2024)
У РФ1 вроде вместо этого - PGM?
Или я ошибся, когда рисовал?
Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...
нафиг РФ1, да и больше одного знакогенератора в РФ1 не зашить
РФ1 ещё фиг найдёшь
Я в 90х когда РК-шку собирал не нашёл - сразу РФ2 поставил
Администратор сетевого сообщества nedoPC.org
Урал 8/64К, Sp2000, ZX48K+, ZX16K (спалил), TS1000 (американский ZX81), TS2068, Дельта-С, 20 лет собираю ATM Turbo 2+
Неспектрумы: Электроника МК-85 и МК-85М, ПК-01 Львов, БК-0011, Вектор-06Ц, Лик (спец), Апогеи, Radio-86RK SRAM 32K & 128K (всё ещё собираю)
Предлагаю потестировать альтернативный шрифт, он состоит из двух половинок:
1. Стандартный шрифт, в котором пустые служебные символы заменены на текстуры + символ настораживающе растопыренного человечка заменён на новый.
2. Шрифт 6х6, квадратные символы псевдографики, текстуры, флора, кирпичи, лестница, вода и др.
Вы видели его уже: https://disk.yandex.ru/i/9JJGlcFM0NALHw
Баги: в игре Xonix на экран выводятся служебные символы кроме пробела и 00h, поэтому экран в Ксониксе заполнен новым символом воды.
Сам шрифт: pixeltron.zip
Последний раз редактировалось Hammer; 11.02.2024 в 21:51.
Развёрнутое пояснение отсюда.
Как известно, стандартный авторский Монитор РАДИО-86РК имеет минимальные встроенные средства отладки кода - директивы G с парой параметров и X.
Причём, вторым параметром директивы G указывается адрес прерывания приложения с временным размещением кода F7 - RST 6. Причём, по адресам 0030…0032 прописывается инструкция «JMP FFA2», уничтожая содержимое ячеек безвозвратно!
(Очевидно, в CP/M адрес 0030 был стандартной точкой отладки.)
Директива G, однако, сохраняет код временно замещённой инструкции в ячейку 7625 и её адрес в ячейки 7623/7624.
Тем самым, приложение может само себя частично восстановить, используя сохранённую служебную информацию, а так как все параметры директив сохраняются в ячейках 7627…762C, то и использовать, в частности, и третий параметр.Что может помочь в отладке (например, запускать программу в различных режимах или прошивать ПЗУ без принудительно запроса адресов).
- «G,<параметр#2>»
- «G,<параметр#2>,<параметр#3>»
- «G,,<параметр#3>»
Вот, типовой код для таких вызовов:Откуда становится также очевидным, почему второй параметр должен быть не меньше 000C (если программа стартует с 0000): Первые 12 байтов - код восстановления, который сам себя восстановить не сможет/!\Пример кода
Код:PUTHEX: EQU 0F815H PUTEXT: EQU 0F818H GETMEM: EQU 0F830H WARMON: EQU 0F86CH ;;;;;;;;;;;;;;;;;;;;;;;;; STOPTR: EQU 07629H ; Адрес останова (7623 или второй параметр) STOPIC: EQU 07625H ; Сохранённый код инструкции DIRDE: EQU 07629H ; Второй параметр директивы (передаётся в DE) DIRBC: EQU 0762BH ; Третий параметр директивы (передаётся в BC) ORG 00000H LHLD STOPTR ; Читаем адрес "порчи" (слово в 7623 или 7629) MOV A,H ; и проверяем, ORA L ; был ли второй параметр у директивы G? JZ BEGIN ; Если указатель - "нулевой", значит отсутствует. LDA STOPIC ; Иначе, читаем код инструкции MOV M,A ; и "снимаем порчу" у ячейки, которая "прихворала". BEGIN: XCHG ; Заносим второй параметр в DE. DCX SP ; Корректируем указатель стека DCX SP ; для благополучного возврата в Монитор. LXI H,HELLO ; Сначала поприветствуем пользователя CALL PUTEXT ; скромным сообщением о нормальном запуске. CALL SHOWDE ; Отобразим содержимое DE - второй параметр директивы INX H ; и напечатаем остальное CALL PUTEXT ; сообщение. LHLD DIRBC ; Третий параметр директивы. XCHG ; Теперь отображаем третий параметр директивы и выходим ;;;;;;;;;;;;;;;;;;;;;;;;; SHOWDE: MOV A,D ; Выводим регистр D CALL PUTHEX ; шестнадцатеричным, MOV A,E ; выводим регистр E JMP PUTHEX ; шестнадцатеричным. ;;;;;;;;;;;;;;;;;;;;;;;;; MOV B,C MOV C,H MOV C,C MOV C,E MOV B,D MOV B,L MOV D,D MOV C,A MOV D,M MVI L,031H ;;;;;;;;;;;;;;;;;;;;;;;;; HELLO: DB 00DH,00AH DB 'SECOND PARAMETER IS ',0 DB 00DH,00AH DB 'THIRTH PARAMETER IS ',0[свернуть]
Потому, исходный Монитор скрывает возможности, которые никогда не использовались.
Последний раз редактировалось Alikberov; 12.02.2024 в 19:00.
Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...
Переделал заливку, начал добавлять звуки: https://disk.yandex.ru/i/UpKV1WT-o6LdTg
Подскажите пожалуйста по компиляторам под РК86. Не считая ассемблеров и бейсиков, существуют ли компиляторы, например высокого уровня какой-нибудь Си. В идеале с примерами.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)