From 007fb96badbb4e17d2d8c3a392e39288a9c5059a Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Fri, 11 Aug 2023 01:15:56 +1000 Subject: [PATCH] Making LP_PR_LINE_DIR --- Shared_Includes | 2 +- src/bios/exp/BIOS_FUNC.asm | 4 +- src/bios/exp/FUNC_LOW_PRINT.ASM | 221 +++++++++++++++++------------- src/bios/exp/FUNC_PIC.ASM | 4 +- src/bios/exp/FUNC_RAM_ROM_DRV.ASM | 4 +- src/bios/loader/loader.asm | 5 +- src/bios/rom/SETUP/VIDEO_IO.asm | 41 +++--- 7 files changed, 153 insertions(+), 128 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index 7e4985b..361bce6 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 7e4985b40214f573ba17b707ad5191319841acdd +Subproject commit 361bce691cf4130a703e57b8fc7b3b87d3b929de diff --git a/src/bios/exp/BIOS_FUNC.asm b/src/bios/exp/BIOS_FUNC.asm index 90fa753..d408fd5 100644 --- a/src/bios/exp/BIOS_FUNC.asm +++ b/src/bios/exp/BIOS_FUNC.asm @@ -209,7 +209,7 @@ TAB_FNS: DB low FN_LIB ; #DE DB low FN_LIB ; #DF ; Ex - DB low LP_PRINT_LINE_DIR ; #E0 + DB low LP_PR_LINE_DIR ; #E0 DB low FN_RESERVED ; #E1 DB low FN_RESERVED ; #E2 DB low FN_RESERVED ; #E3 @@ -401,7 +401,7 @@ TAB_FNS: DB high FN_LIB DB high FN_LIB ; Ex - DB high LP_PRINT_LINE_DIR + DB high LP_PR_LINE_DIR DB high FN_RESERVED DB high FN_RESERVED DB high FN_RESERVED diff --git a/src/bios/exp/FUNC_LOW_PRINT.ASM b/src/bios/exp/FUNC_LOW_PRINT.ASM index 2c2b66a..1a7ba5a 100644 --- a/src/bios/exp/FUNC_LOW_PRINT.ASM +++ b/src/bios/exp/FUNC_LOW_PRINT.ASM @@ -124,9 +124,9 @@ LD SP,SYS_SP PUSH BC - LD HL,(SYS_PAGE.WIN_MAP_IX+WIN_HL) - LD DE,(SYS_PAGE.WIN_MAP_IX+WIN_DE) - LD BC,(SYS_PAGE.WIN_MAP_IX+WIN_BC) + LD HL,(WIN_ID_0.HL) + LD DE,(WIN_ID_0.DE) + LD BC,(WIN_ID_0.BC) LD A,E AND A @@ -141,9 +141,9 @@ EXX RLA LD E,A - LD (SYS_PAGE.WIN_MAP_IX+WIN_HL),HL ; место печати - LD (SYS_PAGE.WIN_MAP_IX+WIN_DE),DE - LD (SYS_PAGE.WIN_MAP_IX+WIN_BC),BC + LD (WIN_ID_0.HL),HL ; место печати + LD (WIN_ID_0.DE),DE + LD (WIN_ID_0.BC),BC POP BC LD A,B @@ -418,9 +418,9 @@ LP_END_P: ; !!!!! EXX RLA LD E,A - LD (SYS_PAGE.WIN_MAP_IX+WIN_HL),HL ; место печати - LD (SYS_PAGE.WIN_MAP_IX+WIN_DE),DE - LD (SYS_PAGE.WIN_MAP_IX+WIN_BC),BC + LD (WIN_ID_0.reg_HL),HL ; место печати + LD (WIN_ID_0.reg_DE),DE + LD (WIN_ID_0.reg_BC),BC LP_CLOSE_PG EXX EX AF,AF' @@ -485,14 +485,14 @@ LP_SET_PLACE: ; !!!!! LP_GET_PLACE: CALL LP_BEG_P - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_H_BEG) + LD A,(WIN_ID_0.H_BEG) NEG EXX ADD A,D EXX LD E,A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_BEG) + LD A,(WIN_ID_0.V_BEG) NEG EXX ADD A,L @@ -642,8 +642,8 @@ WIN_SET_ZG: ; LP_SET_ZG: ; 3 - ver place LP_SIZE: ; определение size LP_OPEN_PG - LD DE,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_H) - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_MODE) + LD DE,(WIN_ID_0.USER.SIZE_H) + LD A,(WIN_ID_0.USER.MODE) BIT 5,A LP_CLOSE_PG RET NZ @@ -655,7 +655,7 @@ LP_SIZE: ; LP_AT_D: ; !!!!! ожидается, что портятся только альтернативные регистры и те, что как параметры на входе - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_V) + LD A,(WIN_ID_0.USER.SIZE_V) EXX LD L,A EXX @@ -669,7 +669,7 @@ LP_AT_D: ; !!!!! ADD A,A ADD A,A LD L,A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_BEG) + LD A,(WIN_ID_0.V_BEG) ADD A,L LD L,A INC L @@ -681,7 +681,7 @@ LP_AT_D: ; !!!!! ; !!!!! ожидается, что портятся только альтернативные регистры и те, что как параметры на входе LP_TAB_E: - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_REL) + LD A,(WIN_ID_0.SIZE_REL) EXX LD D,A EXX @@ -697,14 +697,14 @@ LP_TAB_E: NEG ADD A,D LD D,A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_MODE) + LD A,(WIN_ID_0.USER.MODE) AND %0010'0000 JR Z,.skip_Dx2 LD A,D ADD A,A LD D,A .skip_Dx2: - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_H_BEG) + LD A,(WIN_ID_0.H_BEG) ADD A,D LD D,A EXX @@ -719,19 +719,18 @@ LP_NEXT_HL: INC L INC L INC L - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_END) + LD A,(WIN_ID_0.V_END) CP L JR NC,LP_NEXT_HL1 - LD HL,(SYS_PAGE.WIN_MAP_IX+WIN_V_BEG) - ;LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_BEG) + LD HL,(WIN_ID_0.V_BEG) + ;LD A,(WIN_ID_0.V_BEG) ;LD L,A INC L LD H,#C3 ;!HARDCODE - LP_NEXT_HL1: - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_H_BEG) + LD A,(WIN_ID_0.H_BEG) LD D,A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_REL) + LD A,(WIN_ID_0.SIZE_REL) LD B,A LD A,#50 @@ -743,9 +742,9 @@ LP_BEG_P: EX AF,AF' EXX LP_OPEN_PG - LD HL,(SYS_PAGE.WIN_MAP_IX+WIN_HL) - LD DE,(SYS_PAGE.WIN_MAP_IX+WIN_DE) - LD BC,(SYS_PAGE.WIN_MAP_IX+WIN_BC) + LD HL,(WIN_ID_0.reg_HL) + LD DE,(WIN_ID_0.reg_DE) + LD BC,(WIN_ID_0.reg_BC) LD A,E AND A RRA @@ -758,14 +757,14 @@ LP_INI_P: EX AF,AF' EXX LP_OPEN_PG - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_MODE) + LD A,(WIN_ID_0.USER.MODE) CP #C0 JR NC,LP_INI_NO_ZG ; открытие бордера... - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_MODE_S) + LD A,(WIN_ID_0.USER.MODE_S) BIT 0,A JR NZ,LP_INI_NO_ZG ; открытие Spectrum-Screen - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_MODE) + LD A,(WIN_ID_0.USER.MODE) BIT 4,A JR Z,LP_INI_NO_ZG ; открытие графического экрана LD DE,(SYS_PAGE.WIN_ZG) ; знакогенератор @@ -777,24 +776,24 @@ LP_INI_P: EX AF,AF' LP_INI_NO_ZG: - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_H_BEG) + LD A,(WIN_ID_0.H_BEG) LD D,A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_BEG) + LD A,(WIN_ID_0.V_BEG) LD L,A INC L LD H,#C3 AND A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_MODE) + LD A,(WIN_ID_0.USER.MODE) BIT 5,A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_H) + LD A,(WIN_ID_0.USER.SIZE_H) JR NZ,LP_INI_40 ADD A,A SCF ;!TODO что-то тут подвыпиленно LP_INI_40: LD B,A - LD (SYS_PAGE.WIN_MAP_IX+WIN_SIZE_REL),A + LD (WIN_ID_0.SIZE_REL),A ; LD DE,(SYS_PAGE.WIN_MODE_SC) ; место по горизонтали и страница моды ; LD HL,(SYS_PAGE.WIN_MODE_SH) ; место по вертикали с адресом @@ -890,14 +889,14 @@ WIN_OPEN: LD (SYS_PAGE.WIN_MAP_SC),IX ; карта окна PUSH DE LD HL,(SYS_PAGE.WIN_MAP_SC) - LD DE,SYS_PAGE.WIN_MAP_IX - LD BC,32 + LD DE,WIN_ID_0 + LD BC,Window_UserVars LDIR - LD IX,SYS_PAGE.WIN_MAP_IX + LD IX,WIN_ID_0 POP DE - LD L,(IX+WIN_PLACE_H) - LD H,(IX+WIN_PLACE_V) - LD (IX+WIN_MODE_E),E + LD L,(IX+Window_Variables.USER.PLACE_H) + LD H,(IX+Window_Variables.USER.PLACE_V) + LD (IX+Window_Variables.MODE_E),E JP WIN_OPEN_W1 @@ -924,14 +923,14 @@ LP_SET_MODE: PUSH DE LD HL,(SYS_PAGE.WIN_MAP_SC) LD DE,SYS_PAGE.WIN_MAP_IX - LD BC,32 + LD BC,Window_UserVars LDIR LD IX,SYS_PAGE.WIN_MAP_IX POP DE POP HL - LD (IX+WIN_PLACE_H),L - LD (IX+WIN_PLACE_V),H - LD (IX+WIN_MODE_E),E + LD (IX+Window_Variables.USER.PLACE_H),L + LD (IX+Window_Variables.USER.PLACE_V),H + LD (IX+Window_Variables.MODE_E),E WIN_OPEN_W1: LD A,L ADD A,A @@ -940,12 +939,12 @@ WIN_OPEN_W1: JR NZ,LP_SET_NO_OR OR #80 ; если вывод на второй экран LP_SET_NO_OR: - LD (IX+WIN_H_BEG),A + LD (IX+Window_Variables.H_BEG),A LD D,A - LD A,(IX+WIN_SIZE_H) + LD A,(IX+Window_Variables.USER.SIZE_H) ADD A,A ADD A,D - LD (IX+WIN_H_END),A + LD (IX+Window_Variables.H_END),A LD (SYS_PAGE.WIN_MODE_SC),DE ; место по горизонтали и страница моды LD A,H AND #3F @@ -954,50 +953,50 @@ LP_SET_NO_OR: LD L,A LD H,#C3 LD (SYS_PAGE.WIN_MODE_SH),HL ; место по вертикали с адресом - LD (IX+WIN_V_BEG),A - LD A,(IX+WIN_SIZE_V) + LD (IX+Window_Variables.V_BEG),A + LD A,(IX+Window_Variables.USER.SIZE_V) ADD A,A ADD A,A ADD A,L - LD (IX+WIN_V_END),A + LD (IX+Window_Variables.V_END),A - LD L,(IX+WIN_V_BEG) + LD L,(IX+Window_Variables.V_BEG) LD H,#C3 - LD B,(IX+WIN_SIZE_V) ; размер по вертикали + LD B,(IX+Window_Variables.USER.SIZE_V) ; размер по вертикали - LD (IX+WIN_WORK_1),0 - LD A,(IX+WIN_MODE) ; знакогенератор плюс режим - LD (IX+WIN_WORK_2),A + LD (IX+Window_Variables.WORK_1),0 + LD A,(IX+Window_Variables.USER.MODE) ; знакогенератор плюс режим + LD (IX+Window_Variables.WORK_2),A BIT 4,A JR NZ,LP_SET_LOOP ; переход, если текстовый режим AND #F0 LD C,A - LD A,(IX+WIN_GR_X) + LD A,(IX+Window_Variables.USER.GR_X) RRCA RRCA RRCA LD D,A AND #0F OR C - LD (IX+WIN_WORK_2),A + LD (IX+Window_Variables.WORK_2),A LD A,D AND #E0 LD C,A - LD A,(IX+WIN_GR_Y) + LD A,(IX+Window_Variables.USER.GR_Y) AND #1F OR C RLCA RLCA RLCA - LD (IX+WIN_WORK_1),A + LD (IX+Window_Variables.WORK_1),A LP_SET_LOOP: - LD D,(IX+WIN_H_BEG) ; D - начало строки (PORT_Y) - LD C,(IX+WIN_SIZE_H) ; размер по горизонтали - LD A,(IX+WIN_MODE) ; знакогенератор плюс режим + LD D,(IX+Window_Variables.H_BEG) ; D - начало строки (PORT_Y) + LD C,(IX+Window_Variables.USER.SIZE_H) ; размер по горизонтали + LD A,(IX+Window_Variables.USER.MODE) ; знакогенератор плюс режим PUSH BC CALL LP_MODE_LINE @@ -1008,10 +1007,10 @@ LP_SET_LOOP: INC L DJNZ LP_SET_LOOP - LD A,(IX+WIN_MODE_E) + LD A,(IX+Window_Variables.MODE_E) AND 1 OUT (RGMOD),A - ; LD A,(IX+WIN_MODE) + ; LD A,(IX+Window_Variables.MODE) ; BIT 4,A LP_CLOSE_PG ; RET Z @@ -1029,7 +1028,7 @@ WIN_CLOSE: ; Установка режима на линии LP_MODE_LINE: - BIT 0,(IX+WIN_MODE_S) + BIT 0,(IX+Window_Variables.USER.MODE_S) JP NZ,LP_MODE_LINE2 ; идти на спектрум BIT 4,A JP Z,LP_MODE_LINE3 ; идти на графику! @@ -1104,8 +1103,8 @@ LP_MODE_LINE2: ; Spectrum mode - LD A,(IX+WIN_WORK_2) - LD B,(IX+WIN_WORK_1) + LD A,(IX+Window_Variables.WORK_2) + LD B,(IX+Window_Variables.WORK_1) DEC D @@ -1194,8 +1193,8 @@ LP_EXIT_MODE2: OUT (SLOT3),A EX AF,AF' - LD (IX+WIN_WORK_1),B - LD (IX+WIN_WORK_2),A + LD (IX+Window_Variables.WORK_1),B + LD (IX+Window_Variables.WORK_2),A RET @@ -1203,8 +1202,8 @@ LP_MODE_LINE3: ; ; Grafic Mode - LD A,(IX+WIN_WORK_1) - LD B,(IX+WIN_WORK_2) + LD A,(IX+Window_Variables.WORK_1) + LD B,(IX+Window_Variables.WORK_2) DEC D @@ -1299,9 +1298,9 @@ LP_EXIT_MODE3: OUT (SLOT3),A EX AF,AF' - LD A,(IX+WIN_WORK_1) + LD A,(IX+Window_Variables.WORK_1) ADD A,8 - LD (IX+WIN_WORK_1),A + LD (IX+Window_Variables.WORK_1),A RET LP_GR_640: @@ -1360,13 +1359,16 @@ LP_SCROLL_UD: ; D - верхняя строка ( от 0 ) ; E - число скроллируемых строк LP_SCROLL_UP: - DEC E ;!FIXIT правильно? + DEC E RET Z - - LP_OPEN_PG + LP_OPEN_PG LD B,E - LD E,0 - PUSH BC + LD E,0 ;!FIXIT чёт тут нечисто, подгонка под один вариант окна глобального? + CALL .RUN +.EXIT: LP_CLOSE_PG + RET + ; +.RUN: PUSH BC CALL LP_AT_D CALL LP_TAB_E ; вычислить переменные для строки POP BC @@ -1382,9 +1384,10 @@ LP_SCROLL_UP: INC L INC L - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_END) + LD A,(WIN_ID_0.V_END) CP L - JR C,.EXIT ; если конец, то выход + ;JR C,.EXIT ; если конец, то выход + RET C PUSH BC LD A,L @@ -1392,7 +1395,7 @@ LP_SCROLL_UP: LD L,A EXX - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_H) + LD A,(WIN_ID_0.USER.SIZE_H) ADD A,A ; число байт в строке для переноса ADD A,A @@ -1416,13 +1419,12 @@ LP_SCROLL_UP: LD A,SYS_PAGE OUT (SLOT3),A - POP BC DJNZ .loop2 -.EXIT: LP_CLOSE_PG RET + ; Вход : ; D - верхняя строка ( от 0 ) ; E - число скроллируемых строк @@ -1454,7 +1456,7 @@ LP_SCROLL_DN: DEC L DEC L - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_BEG) + LD A,(WIN_ID_0.V_BEG) CP L ; .CONT: L >= A JR Z,.CONT JR NC,.EXIT ; если конец, то выход @@ -1465,7 +1467,7 @@ LP_SCROLL_DN: LD L,A EXX - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_H) + LD A,(WIN_ID_0.USER.SIZE_H) ADD A,A ADD A,A LD C,A @@ -1539,7 +1541,8 @@ WIN_GET_SYM: ; DE - место символа в окне ; А - номер окна -; HL - символ/атрибут B - знакогенератор +; HL - символ/атрибут +; B - знакогенератор WIN_PUT_SYM: AND A SCF @@ -1755,7 +1758,10 @@ LP_REST_L1: ;!FIXIT нет описания, недоделана. Печать с управляющими символами ;------------------------------------------------------------------[#E0] -LP_PRINT_LINE_DIR: +; DE - место символа в окне +; HL - адрес с выводимой строкой +; B - разделитель +LP_PR_LINE_DIR: CALL LP_BEG_P LD A,#50 OUT (SLOT3),A @@ -1778,7 +1784,7 @@ LP_PRINT_LINE_DIR: SUB 7 JR Z,LP_BELL ; A = 07 "BELL" DEC A - JR Z,LP_BACK ; A = 08 "backspace" + JR Z,LP_BACK ; A = 08 "Backspace" DEC A JR Z,LP_TAB ; A = 09 "TAB" DEC A @@ -1819,7 +1825,7 @@ LP_BACK: LD A,SYS_PAGE OUT (SLOT3),A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_H_BEG) + LD A,(WIN_ID_0.H_BEG) CP D JR Z,LP_PRINT_LN_D11 INC B @@ -1829,7 +1835,7 @@ LP_BACK: ;-------[TAB] LP_TAB: LD A,SYS_PAGE OUT (SLOT3),A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_H_BEG) + LD A,(WIN_ID_0.H_BEG) SUB D NEG AND %0000'0111 @@ -1850,9 +1856,9 @@ LP_TAB: LD A,SYS_PAGE .end_Line: LD A,SYS_PAGE OUT (SLOT3),A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_H_BEG) + LD A,(WIN_ID_0.H_BEG) LD D,A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_REL) + LD A,(WIN_ID_0.SIZE_REL) LD B,A ;JP LP_LF ;-------[TAB end] @@ -1864,13 +1870,32 @@ LP_LF: LD A,SYS_PAGE INC L INC L - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_END) + LD A,(WIN_ID_0.V_END) CP L JR NC,LP_PRINT_LN_D11 + ;!TEST BIOS SCROLL + ;LD A,(WIN_ID_0.V_BEG) + ;LD L,A ; вернуться наверх без скролла!!! + ;-------------------------------------------------------------\ + PUSH HL + PUSH BC + EXX + PUSH BC + PUSH DE + EXX - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_V_BEG) - LD L,A ; вернуться наверх без скролла!!! + LD A,(WIN_ID_0.USER.SIZE_V) + LD B,A + CALL LP_SCROLL_UP.RUN + EXX + POP DE + POP BC + EXX + POP BC + POP HL + ;-------------------------------------------------------------/ + ; ; scrolling ???? JR LP_PRINT_LN_D11 @@ -1881,9 +1906,9 @@ LP_CLS: ; ... LP_CR: LD A,SYS_PAGE OUT (SLOT3),A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_H_BEG) + LD A,(WIN_ID_0.H_BEG) LD D,A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_SIZE_REL) + LD A,(WIN_ID_0.SIZE_REL) LD B,A JR LP_PRINT_LN_D11 diff --git a/src/bios/exp/FUNC_PIC.ASM b/src/bios/exp/FUNC_PIC.ASM index bac6322..9f1ca71 100644 --- a/src/bios/exp/FUNC_PIC.ASM +++ b/src/bios/exp/FUNC_PIC.ASM @@ -15,11 +15,11 @@ PIC_FN1: LD A,SYS_PAGE OUT (SLOT3),A - LD A,(SYS_PAGE.WIN_MAP_IX+WIN_GRAF_Y) + LD A,(WIN_ID_0.GRAF_Y) ADD A,E OUT (RGADR),A LD A,B - LD BC,(SYS_PAGE.WIN_MAP_IX+WIN_GRAF_X) + LD BC,(WIN_ID_0.GRAF_X) ADD HL,BC LD B,A LD A,#50 diff --git a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM index 99a5c40..d5a594f 100644 --- a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM +++ b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM @@ -81,8 +81,8 @@ EMM.InitMem: RESERVED_PAGES: ;; Block #1 - можно освободить по ID 1 DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ; for Spectrum - ; эмулятор ПЗУ - DB #42,#43,#44,#45,#46,47,#48,#49,#4A,#4B ; For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION + ; эмулятор ПЗУ ;!FIXIT ROM-Emulator сделать динамические страницы + DB #42,#43,#44,#45,#46,47;,#48,#49,#4A,#4B ; For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION DB #FF ; End of the block ; ; diff --git a/src/bios/loader/loader.asm b/src/bios/loader/loader.asm index b3032ef..e85272a 100644 --- a/src/bios/loader/loader.asm +++ b/src/bios/loader/loader.asm @@ -2,7 +2,6 @@ ;**********************************; ; ACEX Loading program ; ;**********************************; - MACRO Conf_loader altera_chip .START: DI LD BC,#FFEE ; !HARDCODE @@ -74,13 +73,13 @@ ; в HL адрес первого байта конфы LD DE,.Conf_header LD B,.Conf_header.length -1: +.conf_header_loop: LD A,(DE) CP (HL) JR NZ,.Conf_Packed INC DE INC L - DJNZ 1B + DJNZ .conf_header_loop XOR A JR .exit_conf_check diff --git a/src/bios/rom/SETUP/VIDEO_IO.asm b/src/bios/rom/SETUP/VIDEO_IO.asm index d1ead64..555244d 100644 --- a/src/bios/rom/SETUP/VIDEO_IO.asm +++ b/src/bios/rom/SETUP/VIDEO_IO.asm @@ -359,27 +359,28 @@ LOGOX: LD IX,win_descriptor.tab320x256 EI RET - win_descriptor: -.tab80x32: - DB 40 - DB 32 - DB 0 - DB 0 - DB %0001'1011 - DB 0 - DB 0 - DB 0 -.tab320x256: - DB 16 ; горизонтальный размер окна в знакоместах - DB 9 ; вертикальный размер в знакоместах - DB 0 ; положение окна по горизонтали на экране - DB 0 ; положение окна по вертикали на экране - DB %0010'0000 ; режим знакоместа - DB 0 ; дополнительный режим знакоместа - DB 8 ; положение по X в поле графики (по знакоместам) - DB 0 ; положение по Y в поле графики (по знакоместам) - +.tab80x32 Window_UserVars{ + 40, ; горизонтальный размер окна в знакоместах + 32, ; вертикальный размер в знакоместах + 0, ; положение окна по горизонтали на экране + 0, ; положение окна по вертикали на экране + %0001'1011, ; режим знакоместа + 0, ; дополнительный режим знакоместа + 0, ; положение по X в поле графики (по знакоместам) + 0 ; положение по Y в поле графики (по знакоместам) + } +.tab320x256 Window_UserVars{ + 16, ; горизонтальный размер окна в знакоместах + 9, ; вертикальный размер в знакоместах + 0, ; положение окна по горизонтали на экране + 0, ; положение окна по вертикали на экране + %0010'0000, ; режим знакоместа + 0, ; дополнительный режим знакоместа + 8, ; положение по X в поле графики (по знакоместам) + 0 ; положение по Y в поле графики (по знакоместам) + } +; MACRO _mFADE LD HL,memBUFFER.Shared