diff --git a/constants/SP2000.inc b/constants/SP2000.inc index d9d86aa..53a8efb 100644 --- a/constants/SP2000.inc +++ b/constants/SP2000.inc @@ -8,32 +8,41 @@ ;███████████████████████████████████████████████████████████████████████████████████████████████████████; ;███████████████████████████████████████████████████████████████████████████████████████████████████████; - STRUCT _#ZX_TASK_DATA + STRUCT _ZX_TASK_DATA .STATE BYTE 0 ; +00 b0 - свободна/сохранена, b1 - ждёт/работает, b2 - стандартная/кастомная палитра .SLOT3_PAGE BYTE 0 ; +01 третья страница задачи .SP WORD 0 ; +02 указатель на стэк -.TYPE BYTE 0 ; +04 тип тачки: 0 - 48k, 1 - Pent128, 2 - Pent512, 3 - Scorp256 +.TYPE BYTE 0 ; +04 тип памяти: 0 - 48k, 1 - Pent128, 2 - Pent512, 3 - Scorp256 .vRAM_ID BYTE 0 ; +05 RAM ID для страниц ОЗУ спектрума .vROM_ID BYTE 0 ; +06 RAM ID для страниц ПЗУ спектрума .PORT_ALL_MODE BYTE 0 ; +07 -.CONFIG_DE WORD 0 ; +08 -.FN_SYNC BYTE 0 ; +10 bit2..0 - тип инта. bit7..6 тип развёртки -; BYTE 0 ; +11 -; BYTE 0 ; +12 -; BYTE 0 ; +13 -; BYTE 0 ; +14 -; BYTE 0 ; +15 -.RESERVED BLOCK 16-11,0 ; +07 ;!TODO reserved +.FN_SYNC BYTE 0 ; +08 bit2..0 - тип инта. bit7..6 тип развёртки +.CNF_PORT BYTE 0 ; +09 +.RESERVED BYTE 0 ; +10 + BYTE 0 ; +11 + BYTE 0 ; +12 + BYTE 0 ; +13 + BYTE 0 ; +14 + BYTE 0 ; +15 ENDS - STRUCT _#ZX_TASK + STRUCT _ZX_TASK .CURRENT BYTE 0 .RESERVED BLOCK 16 - 1 -.ID_0 _#ZX_TASK_DATA -.ID_1 _#ZX_TASK_DATA -.ID_2 _#ZX_TASK_DATA -.ID_3 _#ZX_TASK_DATA +.ID_0 _ZX_TASK_DATA +.ID_1 _ZX_TASK_DATA +.ID_2 _ZX_TASK_DATA +.ID_3 _ZX_TASK_DATA ENDS + +/* + для входа в режим спектрума: +0. Проверка метки ZX +1. CONFIG_DE.CNF_PORT Тип тачки, как инитить память, размер ОЗУ, турба +2. CONFIG_DE.ZX_START страница vROM для запуска +3. Настройки экрана (INT, Sync) +4. Торможение памяти (port all mode) +*/ ;███████████████████████████████████████████████████████████████████████████████████████████████████████; @@ -621,9 +630,7 @@ SYS_PAGE EQU #FE .MSD_CONT_SEC EQU #C132 ; текущий сектор для MS-DOS .MSD_CONT_SEC2 EQU #C134 .S_X_H EQU #C136 ; количество секторов на цилиндре -; тут хранится указатель на таблицу инта -; используемую функцией #F2 BIOS -.CONFIG_ALL EQU #C138 ; описатель конфигурации - 2 байта +.SCREEN_TABLE EQU #C138 ; "CONFIG_ALL" адрес на таблицу описателя экрана - 2 байта ; ;Есть такой код, например: ; LD DE,CNF_0+D_TBOFF @@ -675,11 +682,6 @@ SYS_PAGE EQU #FE .CLASTER_LEN EQU #C16C ; длина кластера в байтах .CLASTER_LEN2 EQU #C16E ; длина кластера в байтах -; vsync: -; bit0 1 - 320L, 0 - 312L -; bit1 1 - no waits, 0 - original waits -;.VSyncAndWaits EQU #C170 - .TMP_BUFFER EQU #C170; - #C17F .TMP_BUFFER.Size EQU #10 @@ -769,7 +771,7 @@ SYS_PAGE EQU #FE //░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ //░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ -.ZX_TASK _#ZX_TASK = #EC00 ; Текущая задача +.ZX_TASK _ZX_TASK = #EC00 ; Текущая задача ;.END EQU #EC4F //░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ .SHARED_BUFFER_256b EQU #EC50 - #EFFF ; 256 байт