diff --git a/Shared_Includes b/Shared_Includes index 51a136e..18eb677 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 51a136edca8c04554de0b189d7680ebbe358c64a +Subproject commit 18eb6779037e4e6291119d52cd7b8aba3b51de6c diff --git a/src/bios/exp/FUNC_SCREEN.ASM b/src/bios/exp/FUNC_SCREEN.ASM index 5883e54..8eae9fc 100644 --- a/src/bios/exp/FUNC_SCREEN.ASM +++ b/src/bios/exp/FUNC_SCREEN.ASM @@ -917,7 +917,7 @@ FN_SYNC: IN B,(C) LD A,SYS_PAGE OUT (C),A - LD DE,(SYS_PAGE.CONFIG_ALL) + LD DE,(SYS_PAGE.SCREEN_TABLE) OUT (C),B CALL Test_CONFIG_ALL @@ -929,7 +929,7 @@ FN_SYNC: IN B,(C) LD A,SYS_PAGE OUT (C),A - LD DE,(SYS_PAGE.CONFIG_ALL) + LD DE,(SYS_PAGE.SCREEN_TABLE) OUT (C),B LD D,CMOS_CELL.ScreenSET @@ -969,7 +969,7 @@ FN_SYNC: IN A,(PORT_Y) LD (SYS_PAGE.COPY_RGADR),A - LD (SYS_PAGE.CONFIG_ALL),IX + LD (SYS_PAGE.SCREEN_TABLE),IX XOR A ;----[START]-----------------------[? 1] @@ -1047,7 +1047,7 @@ FN_SYNC: ;-----------------------------[^ 2]----- LD A,SYS_PAGE OUT (SLOT3),A - LD IX,(SYS_PAGE.CONFIG_ALL) + LD IX,(SYS_PAGE.SCREEN_TABLE) EX AF,AF' ADD A,#80 diff --git a/src/bios/exp/FUNC_SYS.ASM b/src/bios/exp/FUNC_SYS.ASM index d098fdb..2d0046f 100644 --- a/src/bios/exp/FUNC_SYS.ASM +++ b/src/bios/exp/FUNC_SYS.ASM @@ -293,7 +293,7 @@ INIT_CONFIG_ALL: .setDefaultINT: LD HL,SCREEN_TABLES.PENTAGON ; set pentagon int .setINT: - LD (SYS_PAGE.CONFIG_ALL - #4000),HL + LD (SYS_PAGE.SCREEN_TABLE - #4000),HL ;------------[new code end]------------- ; LD DE,CNF_PORT.CNF_0 + ROM.BIOS @@ -301,7 +301,7 @@ INIT_CONFIG_ALL: LD HL,SYS_PAGE.ZX_TASK.CURRENT - #4000 ; убить все задачи LD DE,SYS_PAGE.ZX_TASK.CURRENT+1 - #4000 - LD BC,_#ZX_TASK - 1 + LD BC,_ZX_TASK - 1 LD (HL),0 LDIR diff --git a/src/bios/exp/FUNC_ZX.ASM b/src/bios/exp/FUNC_ZX.ASM index cd3d76c..72332c6 100644 --- a/src/bios/exp/FUNC_ZX.ASM +++ b/src/bios/exp/FUNC_ZX.ASM @@ -102,7 +102,7 @@ FN_ENTRANCE: ;!TODO A - TASK NUMBER ;Вход: A - TASK NUMBER GET_ZX_TASK_DATA: GET_ZX_TASK_DATA_OFFSET - ADD A,_#ZX_TASK_DATA + ADD A,_ZX_TASK_DATA LD C,A LD B,0 LD IX,SYS_PAGE.ZX_TASK.CURRENT @@ -113,8 +113,8 @@ GET_ZX_TASK_DATA: ;-----------------------------------------------------------------------; ;Вход: A - TASK NUMBER -FREE_vMEMORY: LD D,(IX + _#ZX_TASK_DATA.vROM_ID) - LD A,(IX + _#ZX_TASK_DATA.vRAM_ID) +FREE_vMEMORY: LD D,(IX + _ZX_TASK_DATA.vROM_ID) + LD A,(IX + _ZX_TASK_DATA.vRAM_ID) CALL EMM.FreeMem LD A,D CALL EMM.FreeMem @@ -128,8 +128,8 @@ FREE_vMEMORY: LD D,(IX + _#ZX_TASK_DATA.vROM_ID) ;Выход: H - vRAM block ID ; L - vROM block ID GET_RAMBLOCK_IDs: - LD H,(IX + _#ZX_TASK_DATA.vRAM_ID) - LD L,(IX + _#ZX_TASK_DATA.vROM_ID) + LD H,(IX + _ZX_TASK_DATA.vRAM_ID) + LD L,(IX + _ZX_TASK_DATA.vROM_ID) RET ;-----------------------------------------------------------------------; @@ -137,14 +137,14 @@ GET_RAMBLOCK_IDs: ;-----------------------------------------------------------------------; ;Вход: HL - блок страниц на которые маппим (всегда 11 шт.) ; A - TASK NUMBER -INIT_vROM: LD A,(IX + _#ZX_TASK_DATA.vROM_ID) +INIT_vROM: LD A,(IX + _ZX_TASK_DATA.vROM_ID) CP (HL) EX DE,HL CALL NZ,EMM.FreeMem EX DE,HL ; LD A,(HL) - LD (IX + _#ZX_TASK_DATA.vROM_ID),A + LD (IX + _ZX_TASK_DATA.vROM_ID),A INC HL ; установка портов ROM LD DE,.PORTS @@ -246,7 +246,7 @@ GET_XXX_MEM: CALL FREE_vRAM .init: LD B,D CALL EMM.GetMem RET C - LD (IX + _#ZX_TASK_DATA.vRAM_ID),A + LD (IX + _ZX_TASK_DATA.vRAM_ID),A RET ;-----------------------------------------------------------------------; @@ -254,9 +254,9 @@ GET_XXX_MEM: CALL FREE_vRAM ;-----------------------------------------------------------------------; FREE_vRAM: XOR A LD C,A - OR (IX + _#ZX_TASK_DATA.vRAM_ID) + OR (IX + _ZX_TASK_DATA.vRAM_ID) RET Z - LD (IX + _#ZX_TASK_DATA.vRAM_ID),C + LD (IX + _ZX_TASK_DATA.vRAM_ID),C JP EMM.FreeMem ;-----------------------------------------------------------------------; @@ -292,7 +292,7 @@ GET_SCORP_RAM: CALL FREE_vRAM ; A - Pent128 mem block id LD B,D ; Scorp128 mem block id CALL EMM.MergeMemBlocks - LD (IX + _#ZX_TASK_DATA.vRAM_ID),A + LD (IX + _ZX_TASK_DATA.vRAM_ID),A RET ; ; фильтр для страниц скорпа @@ -334,7 +334,7 @@ GET_SCORP_RAM: CALL FREE_vRAM ; CF: 1 - не переустанавливать палитру /* -; Вход: D[3..0]: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128, ;!FIXIT переделать, это CONFIG_DE +; Вход: D[3..0]: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128, ; 3 - EXPANSION. C закрытыми 128-ми портами: ; 4 - TR-DOS, 5 - BASIC 48 ; D[7..4]: ;!TODO Port All Mode: b4 - Acc off/on @@ -361,35 +361,35 @@ GOTO_SPEC: DI LD SP,#C000 LD A,D CALL GET_ZX_TASK_DATA - LD A,(IX + _#ZX_TASK_DATA.STATE) + LD A,(IX + _ZX_TASK_DATA.STATE) RR E JR NC,.save_state OR %0000'0100 -.save_state: LD (IX + _#ZX_TASK_DATA.STATE),A +.save_state: LD (IX + _ZX_TASK_DATA.STATE),A ; ; [ ] free zx pages! ;!TODO если задача пустая, то первый инит ; ;!TODO сделать активацию винта для параметра из Setup ;!TODO установить где-нибудь ниже стэк из TASK LD A,(SYS_PAGE.CONFIG_DE.ZX_START) - LD (IX + _#ZX_TASK_DATA.CONFIG_DE + 1),A + LD (IX + _ZX_TASK_DATA.CONFIG_DE + 1),A ; - LD A,(IX + _#ZX_TASK_DATA.PORT_ALL_MODE) + LD A,(IX + _ZX_TASK_DATA.PORT_ALL_MODE) LD BC,Port_All_Mode OUT (C),A ; установка инта - LD A,(IX + _#ZX_TASK_DATA.FN_SYNC) + LD A,(IX + _ZX_TASK_DATA.FN_SYNC) AND %0000'0111 CALL FN_SYNC ; установка развёртки - LD A,(IX + _#ZX_TASK_DATA.FN_SYNC) + LD A,(IX + _ZX_TASK_DATA.FN_SYNC) AND %1100'0000 OR %0010'0000 RLCA RLCA CALL FN_SYNC ; - LD A,(IX + _#ZX_TASK_DATA.STATE) + LD A,(IX + _ZX_TASK_DATA.STATE) AND %0000'0100 ;!TODO запомнить/восстановить кастомную палитру? CALL Z,SET_TXT_PALETTE.ZX ; @@ -400,7 +400,7 @@ GOTO_SPEC: DI LD HL,#5104 CALL LP_SET_32.X ; .SHARED_BUFFER_256b - LD A,(IX + _#ZX_TASK_DATA.vRAM_ID) + LD A,(IX + _ZX_TASK_DATA.vRAM_ID) LD HL,SYS_PAGE.SHARED_BUFFER_256b CALL EMM.GetMemBlkPages ;!FIXIT @@ -758,8 +758,8 @@ RES128_PROG: LD A,SYS_PAGE OUT (SLOT3),A LD DE,(SYS_PAGE.CONFIG_DE) - XOR A - LD (SYS_PAGE.CONFIG_DE.ZX_START),A + ;XOR A + ;LD (SYS_PAGE.CONFIG_DE.ZX_START),A OUT (C),B LD BC,#1FFD diff --git a/src/bios/rom/ZX/ZX_FUNC.ASM b/src/bios/rom/ZX/ZX_FUNC.ASM index 47578c3..71fbf6f 100644 --- a/src/bios/rom/ZX/ZX_FUNC.ASM +++ b/src/bios/rom/ZX/ZX_FUNC.ASM @@ -138,32 +138,32 @@ TASK_SWITCH: OUT (SLOT3),A LD IX,SYS_PAGE.ZX_TASK.CURRENT ; данные задач - LD A,_#ZX_TASK_DATA ; смещение данных в таблице задач + LD A,_ZX_TASK_DATA ; смещение данных в таблице задач ADD A,(IX) ; смещение данных текущей задачи LD E,A LD D,0 ADD IX,DE ; данные текущей задачи - LD (IX + _#ZX_TASK_DATA.SLOT3_PAGE),B ; сохранить страницу 3 + LD (IX + _ZX_TASK_DATA.SLOT3_PAGE),B ; сохранить страницу 3 LD HL,0 ADD HL,SP - LD (IX + _#ZX_TASK_DATA.SP),L ; сохранить стек задачи - LD (IX + _#ZX_TASK_DATA.SP + 1),H - SET 0,(IX + _#ZX_TASK_DATA.STATE) ; установить флаг сохраненности текущей задачи - RES 1,(IX + _#ZX_TASK_DATA.STATE) ; установить флаг, что задача покинута + LD (IX + _ZX_TASK_DATA.SP),L ; сохранить стек задачи + LD (IX + _ZX_TASK_DATA.SP + 1),H + SET 0,(IX + _ZX_TASK_DATA.STATE) ; установить флаг сохраненности текущей задачи + RES 1,(IX + _ZX_TASK_DATA.STATE) ; установить флаг, что задача покинута LD IX,SYS_PAGE.ZX_TASK.CURRENT - LD A,_#ZX_TASK_DATA ; смещение данных в таблице задач + LD A,_ZX_TASK_DATA ; смещение данных в таблице задач ADD A,C ; смещение данных новой задачи LD E,A LD D,0 ADD IX,DE ; данные новой задачи -; BIT 1,(IX + _#ZX_TASK_DATA.STATE) +; BIT 1,(IX + _ZX_TASK_DATA.STATE) ; JR NZ,TASK_IN_WORK ; задача в работе ??? неверное завершение ; ; сбрасывать или просто возвращаться - BIT 0,(IX + _#ZX_TASK_DATA.STATE) ; была сохранена/нет + BIT 0,(IX + _ZX_TASK_DATA.STATE) ; была сохранена/нет JR NZ,TASK_SET ; задача существует ; задачи не было! @@ -197,16 +197,16 @@ TASK_RESTORE: ;LD D,0 ;ADD IX,DE ; новая задача ;LD E,16 - ADD A,_#ZX_TASK_DATA ; смещение данных в таблице задач + ADD A,_ZX_TASK_DATA ; смещение данных в таблице задач LD E,A LD D,0 ; ADD IX,DE - LD L,(IX + _#ZX_TASK_DATA.SP) ; вспомнить стек - LD H,(IX + _#ZX_TASK_DATA.SP + 1) + LD L,(IX + _ZX_TASK_DATA.SP) ; вспомнить стек + LD H,(IX + _ZX_TASK_DATA.SP + 1) LD SP,HL - LD A,(IX + _#ZX_TASK_DATA.SLOT3_PAGE); вспомнить третью страницу + LD A,(IX + _ZX_TASK_DATA.SLOT3_PAGE); вспомнить третью страницу OUT (SLOT3),A