8e389c03f8
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
55 lines
1.2 KiB
C
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;
|
|
}
|