Files
Sprinter-SDCC/applications/Volkov/tests/p2_screen/p2_platform.c
T
snark13 8e389c03f8 Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места.

Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
2026-09-10 10:45:30 +03:00

55 lines
1.2 KiB
C

/*
* p2_platform.c — пакетный координатный вывод screen model через ESTEX.
*
* WINREST 5Ah не принимает идентификатор BIOS-окна: D/E/H/L задают
* абсолютный прямоугольник активной текстовой страницы, B:IX — источник.
* ABI SDCC __sdcccall(1) подтверждён P1-пробой.
*/
#include <stdint.h>
#include "p2_screen.h"
void p2_winrest(uint8_t row, uint8_t col, uint8_t height, uint8_t width,
uint8_t page, uint16_t offset) __naked
{
(void)row;
(void)col;
(void)height;
(void)width;
(void)page;
(void)offset;
__asm
ld iy, #2
add iy, sp
ld d, a
ld e, l
push ix
ld l, 3 (iy)
ld h, 4 (iy)
ld bc, #0xC000
add hl, bc
push hl
pop ix
ld h, 0 (iy)
ld a, 1 (iy)
ld l, a
ld a, 2 (iy)
ld b, a
ld c, #0x5A
di
rst #0x10
ei
pop ix
pop hl
inc sp
inc sp
inc sp
inc sp
inc sp
jp (hl)
__endasm;
}