From 5e0ea87ed9dc31f2e9f6979bc55bbe6f85a740f3 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Sat, 6 Jul 2024 04:33:08 +1000 Subject: [PATCH] ref --- Shared_Includes | 2 +- src/bios/exp/BIOS_FUNC.asm | 6 +- src/bios/exp/DCP.ASM | 86 ++++++++++++++++---------- src/bios/exp/EXP.asm | 16 ++--- src/bios/exp/EXTENDED/FDD_DRIVER_2.asm | 2 +- src/bios/exp/EXTENDED/IDE/CD_DRV.ASM | 17 ++--- src/bios/exp/EXTENDED/IDE/HDD_DRV.ASM | 10 ++- src/bios/exp/EXTENDED/IDE/shared.asm | 2 +- src/bios/exp/FLEX.asm | 2 +- src/bios/exp/FUNC_4x.ASM | 8 +-- src/bios/exp/FUNC_CMOS.ASM | 10 +-- src/bios/exp/FUNC_LOW_PRINT.ASM | 6 +- src/bios/exp/FUNC_PIC.ASM | 2 +- src/bios/exp/FUNC_RAM_ROM_DRV.ASM | 4 +- src/bios/exp/FUNC_SERVICE.asm | 8 +-- src/bios/exp/FUNC_SYS.ASM | 8 +-- src/bios/logo/Set_Pictures.asm | 2 +- src/bios/rom/ROM.asm | 17 +++-- src/bios/rom/SETUP/AUTOIDE.asm | 8 +-- src/bios/rom/SETUP/IM2_INT.asm | 5 ++ src/bios/rom/SETUP/KEY.asm | 13 ++-- src/bios/rom/SETUP/MAIN.asm | 41 ++++++------ src/bios/rom/SETUP/SETTINGS.asm | 22 +++---- src/bios/rom/SETUP/VIDEO_IO.asm | 10 +-- src/bios/rom/ZX/ZX_MENU.ASM | 35 +++++------ src/bios/shared/CompMacro.asm | 25 ++------ src/bios/shared/VERSION.inc | 6 -- 27 files changed, 178 insertions(+), 195 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index dd20a62..990f10e 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit dd20a620668372ae8d7c10c0789dcdb51c8d782f +Subproject commit 990f10e80278825f071f5795a5ba459dec0f991f diff --git a/src/bios/exp/BIOS_FUNC.asm b/src/bios/exp/BIOS_FUNC.asm index 608c1e0..4e4cbd3 100644 --- a/src/bios/exp/BIOS_FUNC.asm +++ b/src/bios/exp/BIOS_FUNC.asm @@ -147,7 +147,7 @@ TAB_FNS: DB low PIC_FN3 ; #A3 ВЫВОД ЛИНИИ FILL DB low PIC_SET_PAL ; #A4 ВЫВОД ПАЛИТРЫ DB low PIC_FN5 ; #A5 УСТАНОВКА RGMOD - DB low PIC_FN6 ; #A6 A - page_pal, E - номер палитры, B - тип палитры + DB low SET_PAL_INIT ; #A6 A - page_pal, E - номер палитры, B - тип палитры DB low PIC_FN7 ; #A7 Рисование линии одного цвета DB low PIC_FN8 ; #A8 Рисование разноцветной линии DB low PIC_FN9 ; #A9 нет @@ -229,7 +229,7 @@ TAB_FNS: DB low RST_CONF.SP97_1 ; #F0 для совместимости с софтом Sp97 DB low RST_CONF.SP97_2 ; #F1 для совместимости с софтом Sp97 DB low FN_SYNC ; #F2 установка синхронизации - DB low RST_CONF.CUSTOM ; #F3 для совместимости с софтом Sp97 ;!TODO сделать её и для перезаливки конфы Sp2000 + DB low RST_CONF.CUSTOM ; #F3 для совместимости с софтом Sp97 DB low DCP_CONFIG ; #F4 функция распределения портов ; [x] DB low CMOS_TEST ; #F5 DB low CMOS_RD ; #F6 @@ -339,7 +339,7 @@ TAB_FNS: DB high PIC_FN3 DB high PIC_SET_PAL DB high PIC_FN5 - DB high PIC_FN6 + DB high SET_PAL_INIT DB high PIC_FN7 DB high PIC_FN8 DB high PIC_FN9 diff --git a/src/bios/exp/DCP.ASM b/src/bios/exp/DCP.ASM index 57b2668..3682526 100644 --- a/src/bios/exp/DCP.ASM +++ b/src/bios/exp/DCP.ASM @@ -90,7 +90,7 @@ DW %11'001'1'1111'1111 DB ACEX.FDD144 -;!FIXIT UNKNOWN PORTS--------------------------------------------------; dos on, только через BC, чтение/запись +;!FIXIT UNKNOWN PORTS ( Z84? ) ----------------------------------------; dos on, только через BC, чтение/запись DW %10'000'1'0010'1101 DW %11'010'1'1111'1111 DB #18 @@ -103,7 +103,6 @@ DW %11'010'1'1111'1111 DB #1A ;----------------------------------------------------------------------; - DW %00'000'1'0010'1101 DW %11'001'1'1111'1111 DB ACEX.ISA_CTRL @@ -136,89 +135,112 @@ DB ACEX.CMOS_DATA.WRITE ; ;---------HDD[v] +/* +Write: +.Data EQU #0150 ; cnf 20 ; HDW_DAT W170 ; #1F0 Data register +.Features EQU #0151 ; cnf 21 ; HDW_ERR W171 ; #1F1 Features register +.Counter EQU #0152 ; cnf 22 ; HDW_CNT P_S_CNT W172 ; #1F2 Counter register +.Sector EQU #0153 ; cnf 23 ; HDW_SEC P_S_NUM W173 ; #1F3 Sector register +.CylinderLow EQU #0154 ; cnf 24 ; HDW_CLL P_C_LOW W174 ; #1F4 Cylinder Low register +.CylinderHigh EQU #0155 ; cnf 25 ; HDW_CLH P_C_HIG W175 ; #1F5 Cylinder High register +.DeviceHead EQU #4152 ; cnf 26 ; HDW_DRV P_HD_CS ; #1F6 Device/Head register +.Command EQU #4153 ; cnf 27 ; HDW_COM P_CMD ; #1F7 Command register +.DeviceControl EQU #4154 ; cnf 28 ; ; #3F6 Device Control register + +Read: +.Data EQU #0050 ; cnf 20 ; HDR_DAT P_DATS R170 ; #1F0 Data register +.Error EQU #0051 ; cnf 21 ; HDR_ERR P_ERR R171 ; #1F1 Error register +.Counter EQU #0052 ; cnf 22 ; HDR_CNT R172 ; #1F2 Counter register +.Sector EQU #0053 ; cnf 23 ; HDR_SEC R173 ; #1F3 Sector register +.CylinderLow EQU #0054 ; cnf 24 ; HDR_CLL R174 ; #1F4 Cylinder Low register +.CylinderHigh EQU #0055 ; cnf 25 ; HDR_CLH R175 ; #1F5 Cylinder High register +.Control EQU #4052 ; cnf 26 ; HDR_DRV R176 ; #1F6 Device/Head register +.Status EQU #4053 ; cnf 27 ; HDR_CTL P_HDST R177 ; #1F7 Status (Control) register +.AltStatus EQU #4054 ; cnf 28 ; ; #3F6 Alternate Status register +.DrvAddress EQU #4055 ; cnf 29 ; ; #3F7 +*/ DW %00'000'0'0100'0000 DW %11'000'0'0110'1111 - DB #20 + DB ACEX.IDE_DATA_1F0 DW %01'000'0'0100'0000 DW %11'010'0'0110'1111 - DB #20 - + DB ACEX.IDE_DATA_1F0 DW %10'000'0'0100'0000 DW %11'010'0'0110'1111 - DB #20 + DB ACEX.IDE_DATA_1F0 DW %11'000'0'0100'0000 DW %11'000'0'0110'1111 - DB #20 + DB ACEX.IDE_DATA_1F0 DW %00'000'0'0100'0001 DW %00'010'1'1110'1111 - DB #21 + DB ACEX.IDE_ERROR_1F1 DW %00'010'0'0100'0001 DW %11'010'1'1110'1111 - DB #21 + DB ACEX.IDE_ERROR_1F1 DW %11'010'0'0100'0001 DW %11'010'1'1110'1111 - DB #21 + DB ACEX.IDE_ERROR_1F1 DW %00'000'0'0100'0010 DW %00'010'1'1110'1111 - DB #22 + DB ACEX.IDE_COUNTER_1F2 DW %00'010'0'0100'0010 DW %11'010'1'1110'1111 - DB #22 + DB ACEX.IDE_COUNTER_1F2 DW %11'010'0'0100'0010 DW %11'010'1'1110'1111 - DB #22 + DB ACEX.IDE_COUNTER_1F2 DW %00'000'0'0100'0011 DW %00'010'1'1110'1111 - DB #23 + DB ACEX.IDE_SECTOR_1F3 DW %00'010'0'0100'0011 DW %11'010'1'1110'1111 - DB #23 + DB ACEX.IDE_SECTOR_1F3 DW %11'010'0'0100'0011 DW %11'010'1'1110'1111 - DB #23 + DB ACEX.IDE_SECTOR_1F3 DW %00'000'0'0100'0100 DW %00'010'1'1110'1111 - DB #24 + DB ACEX.IDE_CYLINDER_L_1F4 DW %00'010'0'0100'0100 DW %11'010'1'1110'1111 - DB #24 + DB ACEX.IDE_CYLINDER_L_1F4 DW %11'010'0'0100'0100 DW %11'010'1'1110'1111 - DB #24 + DB ACEX.IDE_CYLINDER_L_1F4 DW %00'000'0'0100'0101 DW %00'010'1'1110'1111 - DB #25 + DB ACEX.IDE_CYLINDER_H_1F5 DW %00'010'0'0100'0101 DW %11'010'1'1110'1111 - DB #25 + DB ACEX.IDE_CYLINDER_H_1F5 DW %11'010'0'0100'0101 DW %11'010'1'1110'1111 - DB #25 + DB ACEX.IDE_CYLINDER_H_1F5 DW %00'000'0'1100'0010 DW %00'010'1'1110'1111 - DB #26 + DB ACEX.IDE_DEVICE_HEAD_1F6 DW %00'010'0'1100'0010 DW %11'010'1'1110'1111 - DB #26 + DB ACEX.IDE_DEVICE_HEAD_1F6 DW %11'010'0'1100'0010 DW %11'010'1'1110'1111 - DB #26 + DB ACEX.IDE_DEVICE_HEAD_1F6 DW %00'000'0'1100'0011 DW %00'010'1'1110'1111 - DB #27 + DB ACEX.IDE_STATUS_CMD_1F7 DW %00'010'0'1100'0011 DW %11'010'1'1110'1111 - DB #27 + DB ACEX.IDE_STATUS_CMD_1F7 DW %11'010'0'1100'0011 DW %11'010'1'1110'1111 - DB #27 + DB ACEX.IDE_STATUS_CMD_1F7 ;---------HDD[^] ; DW %00'000'0'1100'0100 @@ -278,14 +300,14 @@ DW %00'000'0'1011'1100 DW %11'001'1'1111'1111 - DB ACEX.UNKNOWN ;!FIXIT можно пока убрать + DB ACEX.UNKNOWN ;!FIXIT можно пока убрать DW %11'000'0'1011'1100 DW %11'001'1'1111'1111 - DB ACEX.UNKNOWN ;!FIXIT можно пока убрать + DB ACEX.UNKNOWN ;!FIXIT можно пока убрать DW %00'010'0'0010'1011 DW %11'010'0'0110'1011 - DB ACEX.ISA_Control ;!FIXIT можно пока убрать ??? + DB ACEX.ISA_Control DW %00'011'0'0110'1110 DW %10'011'0'0110'1111 @@ -397,7 +419,6 @@ DW %00'000'0'0010'1111 DB ACEX.CNF_PORT -;!FIXIT можно убрать DW %00'000'0'0110'1100 DW %11'001'0'0110'1111 DB ACEX.SCALE @@ -405,7 +426,6 @@ DW %11'001'0'0110'1111 DB ACEX.SCALE - DW %00'000'0'0000'1010 DW %00'010'0'0110'1111 DB ACEX.SLOT0 diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 8ebb244..e49c98f 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -224,7 +224,7 @@ ID_SPRINTER: DB 'Firmware v' .Record1_Size EQU $-ID_SPRINTER ; запись 2 DB 'Sprinter',0 - ; запись 3 ; [ ] 24.02.2024 + ; запись 3 ; [x] 24/02/2024 .bitstream_ver: DB bitstream_ver_string,0 DB 0 ; @@ -715,7 +715,7 @@ POST_5_OK: ADD IX,SP ; восстановить значение переданное загрузчиком конфы (если старт после ресета) ; В этом месте у нас IX:IY из Loader.asm ; Дотащили до сюда метку от лоадера, пока не используется - ;[x] 31/12/23 подстраховка от утечки памяти + ;[x] 31/12/2023 подстраховка от недоутечки памяти LD D,YH LD E,YL EX DE,HL @@ -870,7 +870,7 @@ No_Reset_handlers: LD A,(Spec_Page.flag_X) CP 'X' JR NZ,.Load_ZXROMS - ;!TEST 31/12/23 подстраховка от утечки памяти + ; [x] 31/12/23 подстраховка от недоутечки памяти LD A,R AND #80 JR Z,No_Need_To_Load_ZXROMS @@ -1331,7 +1331,7 @@ RES128_PROG: DEC D JP Z,#3D29 ; 3 ВХОД В EXPANSION - ;!TODO пока не работает + ;!TODO пока не работает. Page #45, BIOS (ZX_EXP) #E0 XOR A OUT (C),A LD A,#02 @@ -1536,9 +1536,9 @@ SW_ROM_1: ;*************************************** _mInfoBLOCK #3CF8-$,0 ; no basic-48! -;JP_HL_48: +JP_HL_48: ;!FIXIT assert with ROM PUSH HL -;SW_ROM: +SW_ROM: ;!FIXIT assert with ROM PUSH AF LD A,ROM.BIOS ;!FIXIT неправильное название константы OUT (SYS_PORT.RAM),A @@ -1617,7 +1617,7 @@ DOS_OFF: //////////////////////////////////////////////////////////////////////// ;------[ ; !TODO что- то связанное с переменными LIB_TABLE ; ]------ ; _mInfoBLOCK #3E20-$,#FF -; [ ] +; [x] FN_LIB: SCF RET @@ -1769,7 +1769,7 @@ RET_to_EXTENSION: ;--------------------------------------- ; -;!TEST new_api +; [x] new portal ;------------[HDD_5x portal]------------ ; точка входа/выхода для функций 5х из EXP _mInfoBLOCK #3FE8-$,#FF diff --git a/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm b/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm index 2be27bf..f87db7a 100644 --- a/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm +++ b/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm @@ -470,7 +470,7 @@ READ_SECTOR: LD D,5 ;RETRY COUNT IN A,(FDC_93.Command) LD C,A ;R01 ; JP C,ERRRD ;READ ERROR - ; !TEST 29/06/2024 + ; [x] 29/06/2024 ;JP C,.ERR_XRD JR NC,.NO_ERR_XRD DEC D diff --git a/src/bios/exp/EXTENDED/IDE/CD_DRV.ASM b/src/bios/exp/EXTENDED/IDE/CD_DRV.ASM index cf5edb6..172205a 100644 --- a/src/bios/exp/EXTENDED/IDE/CD_DRV.ASM +++ b/src/bios/exp/EXTENDED/IDE/CD_DRV.ASM @@ -1,4 +1,4 @@ -;[ ] 18/12/2023. добавление/допиливание API CD-ROM (ATAPI) +;[x] 18/12/2023. добавление/допиливание API CD-ROM (ATAPI) ;██████████████████████████████████████████████████████████████████████████ ;CD ROM DRIVE DRIVER ;--------------------------------------------------------------- @@ -74,16 +74,10 @@ CD_5x_LONG_READ: LDIR EXX - ;!TEST - ;LD A,H - ;LD (RAM_ATAPI_READ+SECREAD+0),A ;R01 - ;LD A,L - ;LD (RAM_ATAPI_READ+SECREAD+1),A ;R01 - LD A,H - LD H,L - LD L,A - LD (RAM_ATAPI_READ + ATAPI_PACKET.SECTOR+0),HL - ; + LD A,H + LD H,L + LD L,A + LD (RAM_ATAPI_READ + ATAPI_PACKET.SECTOR+0),HL LD A,XH LD (RAM_ATAPI_READ + ATAPI_PACKET.SECTOR+2),A ;R01 LD A,XL @@ -96,7 +90,6 @@ CD_5x_LONG_READ: ; ; POP AF ; OUT (SLOT3),A -;R01 LD HL,CMDREAD LD HL,RAM_ATAPI_READ CALL AP_COM ; diff --git a/src/bios/exp/EXTENDED/IDE/HDD_DRV.ASM b/src/bios/exp/EXTENDED/IDE/HDD_DRV.ASM index 47d1c9f..6af223d 100644 --- a/src/bios/exp/EXTENDED/IDE/HDD_DRV.ASM +++ b/src/bios/exp/EXTENDED/IDE/HDD_DRV.ASM @@ -412,7 +412,7 @@ WRS000: ;[x] CMOS Write Protect Disabled IF HDDwriteProtect PUSH BC - LD D,#1D ;!HARDCODE CMOS Write Protect + LD D,CMOS_CELL.Options CALL CMOS_RD POP BC AND 1 @@ -547,10 +547,8 @@ PRESET: LD A,B LD A,(IY+IDE.HDD_INIT_TABLE.DRV_Flags) LD BC,IDE.Write.DeviceHead OUT (C),A - ;!TEST - ;BIT 6,A ;бит CHS/LBA ;!FIXIT сделать метками номера бит - AND %0100'0000 - ; + ;бит CHS/LBA ;!FIXIT сделать метками номера бит + AND %0100'0000 LD E,XL LD D,XH CALL Z,LBA_CHS @@ -654,7 +652,7 @@ WAITPRT: ;[]================================================================[#57] -;[ ] 18/12/2023. добавление/допиливание API CD-ROM (ATAPI) +;[x] 18/12/2023. добавление/допиливание API CD-ROM (ATAPI) ;Function: Detect Disk ; A - Disk ;Return: CF=0 - A=Drive type diff --git a/src/bios/exp/EXTENDED/IDE/shared.asm b/src/bios/exp/EXTENDED/IDE/shared.asm index 9715cc6..4980061 100644 --- a/src/bios/exp/EXTENDED/IDE/shared.asm +++ b/src/bios/exp/EXTENDED/IDE/shared.asm @@ -1,4 +1,4 @@ -;[ ] 18/12/2023. добавление/допиливание API CD-ROM (ATAPI) +;[x] 18/12/2023. добавление/допиливание API CD-ROM (ATAPI) ;======================================================================= ; Вход: A - номер устройства diff --git a/src/bios/exp/FLEX.asm b/src/bios/exp/FLEX.asm index e76bf5b..4f53d96 100644 --- a/src/bios/exp/FLEX.asm +++ b/src/bios/exp/FLEX.asm @@ -747,7 +747,7 @@ SCREEN_TABLES: DB 0 ;.SCR: DB 41,#F8, 3,#FC, 4,#FC, 7,#FC, 9,#F8, 0 -.INT: DB 40,#FC, 2,#FD, 6,#FC, 7,#FC, 9,#FC, 0 ;!TEST PENTAGON INT 2 квадратика +.INT: DB 40,#FC, 2,#FD, 6,#FC, 7,#FC, 9,#FC, 0 .INT_SC: DB 41,#F8, 1,#FD, 6,#FC, 7,#FC, 9,#F8, 0 .BLN: DB 41,#FC, 3,#FC, 4,#FC, 7,#FC, 9,#FC, 0 .SNC: DB 41,#FC, 3,#FC, 4,#FC, 7,#FC, 9,#FC, 0 diff --git a/src/bios/exp/FUNC_4x.ASM b/src/bios/exp/FUNC_4x.ASM index f0a3975..00e89b3 100644 --- a/src/bios/exp/FUNC_4x.ASM +++ b/src/bios/exp/FUNC_4x.ASM @@ -211,7 +211,7 @@ FN_HDD_PREPARE: ; CALL HD_PREPARE RET C -;!TEST + ; [x] EX AF,AF' LD A,#BF ; check buffer address in SLOT3 SUB H @@ -358,10 +358,10 @@ HD_WR_L2: JR Z,HD_RET LD BC,IDE.Write.Data - LD D,32 ;!HARDCODE зависит от счётчика DUP в HD_WR_LOOP + LD D,32 ;!HARDCODE зависит от счётчика DUP в HD_WR_LOOP HD_WR_LOOP: DUP 16 - OUTI ; всего 16 раз OUTI - оптимально. + OUTI ; всего 16 раз OUTI - оптимально. EDUP DEC D @@ -382,7 +382,7 @@ HD_WR_LOOP: LD HL,#C000 ; !HARDCODE JR HD_WR_L2 -; [ ] пока работает только с одним каналом (по-старому) +;!FIXIT пока работает только с одним каналом (по-старому) FN_HDD_RECAL: LD A,IDE.Drive.Master LD BC,IDE.Write.DeviceHead diff --git a/src/bios/exp/FUNC_CMOS.ASM b/src/bios/exp/FUNC_CMOS.ASM index 23725f4..e3c8c29 100644 --- a/src/bios/exp/FUNC_CMOS.ASM +++ b/src/bios/exp/FUNC_CMOS.ASM @@ -27,7 +27,7 @@ CMOS_EMU_WR: ; запись в CMOS CMOS_WR: - ;!TEST + ; [x] _mCMOS_MAX_TEST ; CALL CMOS_TEST @@ -58,7 +58,7 @@ CMOS_EMU_RD: ; чтение из CMOS CMOS_RD: - ;!TEST + ; [x] _mCMOS_MAX_TEST ; CALL CMOS_TEST @@ -76,7 +76,7 @@ CMOS_TEST: PUSH DE PUSH BC - LD D,CMOS.TEST_CELL + LD D,CMOS.TEST_CELL ; [x] раньше писало в ячейку чек-суммы CALL CMOS_RD.RD LD E,A CPL @@ -84,8 +84,8 @@ CMOS_TEST: CALL CMOS_RD.RD CPL CP E - JR NZ,.CMOS_ERR LD A,E + JR NZ,.CMOS_ERR CALL CMOS_WR.WR POP BC @@ -93,8 +93,8 @@ CMOS_TEST: POP AF AND A RET + ; .CMOS_ERR: - LD A,E CALL CMOS_WR.WR POP BC POP DE diff --git a/src/bios/exp/FUNC_LOW_PRINT.ASM b/src/bios/exp/FUNC_LOW_PRINT.ASM index 9237f7a..c664b99 100644 --- a/src/bios/exp/FUNC_LOW_PRINT.ASM +++ b/src/bios/exp/FUNC_LOW_PRINT.ASM @@ -62,8 +62,8 @@ ; B - атрибут очистки ; H - высота, L - ширина ;============================================================= - MACRO TEST_40 - ;[x] включил 31/10/23, чисто на Хэллоууууииин + + MACRO TEST_40 ;[x] включил 31/10/23, чисто на Хэллоууууииин EX AF,AF' JR C,.LLL INC D ; режим 40 @@ -179,7 +179,7 @@ LP_PRINT_ALL: INC L LD (HL),A DEC L - TEST_40 ;[x] включил 31/10/23, чисто на Хэллоууууииин + TEST_40 DJ_NEXT_HL EXX DJNZ .loop diff --git a/src/bios/exp/FUNC_PIC.ASM b/src/bios/exp/FUNC_PIC.ASM index bcde2c4..c080c58 100644 --- a/src/bios/exp/FUNC_PIC.ASM +++ b/src/bios/exp/FUNC_PIC.ASM @@ -293,7 +293,7 @@ PIC_FN5: ; ;******************************************************************* ; Установка внутренней палитры ; A - page_pal, E - номер палитры, B - тип палитры -PIC_FN6: +SET_PAL_INIT: LD D,A DEC B JP Z,SET_PAL_GRAF diff --git a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM index a5c09fc..0eae097 100644 --- a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM +++ b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM @@ -74,7 +74,7 @@ EMM.InitMem: .loop2: LD (HL),A INC L DJNZ .loop2 - ; [x] 4/11/23 + ; [x] 04/11/2023 LD HL,SYS_PAGE.Sp_RAMD_KEYS; - #4000 - #4000 LD B,SYS_PAGE.Sp_RAMD_KEYS.NUM .loop3: LD (HL),A @@ -873,7 +873,7 @@ GET_RAMD_NUM: ; ;----------------------------------------------------------------------; -; [x] 4/11/23 +; [x] 04/11/2023 ; Вход: ; B = 0: swap to Sp ; B = #FF: swap to ZX diff --git a/src/bios/exp/FUNC_SERVICE.asm b/src/bios/exp/FUNC_SERVICE.asm index f881600..957b168 100644 --- a/src/bios/exp/FUNC_SERVICE.asm +++ b/src/bios/exp/FUNC_SERVICE.asm @@ -112,7 +112,7 @@ RST_CONF: ; ;[x] .CHOOSE_CNF: - ;!TEST + ; [x] CP ACEX.Config_PG.Sp2000_SoftSetUp JP Z,.ReturnSoftReset ; @@ -317,7 +317,7 @@ RST_CONF: ; ;*************************************** -;!TEST +;[x] ;--------------------------[;!TODO потестить]--------------------------; ; B - параметр сброса ; B = 1 - RESTART. @@ -376,7 +376,7 @@ REINIT: DEC B RET ; -;!TEST +;[x] .HardReset: DI LD A,DCP_PAGE @@ -390,7 +390,7 @@ REINIT: DEC B JR .loop ; полностью зациклить! ; -;!TEST +;[x] .Restart: DI LD A,0 diff --git a/src/bios/exp/FUNC_SYS.ASM b/src/bios/exp/FUNC_SYS.ASM index b0c0eff..0bdcf2c 100644 --- a/src/bios/exp/FUNC_SYS.ASM +++ b/src/bios/exp/FUNC_SYS.ASM @@ -56,7 +56,7 @@ FN_VERSION: ;----------------------------------------------------------------------; ;----------------------------------------------------------------------; -; [ ] 28/01/24 добавлена подфункция выдачи инфы про Acex +; [x] 28/01/24 добавлена подфункция выдачи инфы про Acex FN_CRIPT: DJNZ .Acex_ver ; @@ -226,7 +226,7 @@ INIT_SYS_ALL: LD BC,SYS_PAGE.RAMD_KEYS.NUM-1 LD (HL),0 LDIR - ; [x] 4/11/23 + ; [x] 04/11/2023 LD HL,SYS_PAGE.Sp_RAMD_KEYS-#4000 LD DE,SYS_PAGE.Sp_RAMD_KEYS+1-#4000 LD BC,SYS_PAGE.Sp_RAMD_KEYS.NUM-1 @@ -336,14 +336,14 @@ FN_TURBO: LD B,A LD A,SYS_PAGE OUT (SLOT3),A - ;!TEST + ; ;LD DE,(SYS_PAGE.CONFIG_DE) ;LD A,E LD A,(SYS_PAGE.CONFIG_DE) ; AND #FC ; !HARDCODE OR C - ;!TEST + ; ;LD E,A ;LD (SYS_PAGE.CONFIG_DE),DE LD (SYS_PAGE.CONFIG_DE),A diff --git a/src/bios/logo/Set_Pictures.asm b/src/bios/logo/Set_Pictures.asm index f798653..da95671 100644 --- a/src/bios/logo/Set_Pictures.asm +++ b/src/bios/logo/Set_Pictures.asm @@ -53,7 +53,7 @@ Raster: .length EQU $-Raster IF Pashalki -; [ ] - сделать тут табличку-ссылки на нужную таблицу спрайтов и завязать это на даты +; !TODO сделать тут табличку-ссылки на нужную таблицу спрайтов и завязать это на даты MACRO _PASHALKI_CODE diff --git a/src/bios/rom/ROM.asm b/src/bios/rom/ROM.asm index dc04075..e1dc925 100644 --- a/src/bios/rom/ROM.asm +++ b/src/bios/rom/ROM.asm @@ -1,3 +1,5 @@ +; +; MODULE ROM_PART ;------------[Begin of ROM]------------- ROM_START: DI @@ -48,9 +50,6 @@ Check_Sum: NMI: RETN ;--------------------------------------- -; ;!FIXIT перенести в ROM.BIOS и сделать -; ; так, чтоб могла правильно прыгать в -; ; любые слоты и работать с DSS ; ;----------------[int]------------------ ; EXTINT: OR A ; RET Z @@ -216,8 +215,6 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup ; ; !FIXIT сделать эти фиксированные адреса отдельным файлом и с IF/ELSE и подключать их потом куда надо. -; -;????? посмотреть ;----------------------------------------------------------------------; ; BLOCK #3CC0-$,255 ; no-magics! @@ -244,7 +241,7 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup PUSH HL LD HL,#5B00 ;!HARDCODE LD A,(HL) - CP #F5 ; #F5 - опкод 'PUSH AF'. Проверяется то ли в #5B00 + CP #F5 ; #F5 - опкод 'PUSH AF'. Проверяется в #5B00 JR Z,JP_HL_48 ; ВОЗВРАТ К МЕНЮ BASIC128 POP HL JR SW_ROM ; ПРОСТОЙ ВОЗВРАТ @@ -262,9 +259,9 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup ;*************************************** _mInfoBLOCK #3CF8-$,#FF ;!TEST 0 ; no basic-48! -JP_HL_48: +;P_HL_48: PUSH HL -SW_ROM: +;SW_ROM: PUSH AF LD A,ROM.BIOS OUT (SYS_PORT.RAM),A @@ -301,7 +298,6 @@ SW_ROM: ;*************************************** _mInfoBLOCK #3D13-$,#FF NOP - ;JP ToBIOS_18 CALL ToBIOS_FromEXT JP DOS_OFF ;*************************************** @@ -426,3 +422,6 @@ RET_TO_TRDOS: ;--------------------------------------- _mInfoBLOCK #4000-$,#FF ;======================================= + +; ENDMODULE ;ROM_PART +; \ No newline at end of file diff --git a/src/bios/rom/SETUP/AUTOIDE.asm b/src/bios/rom/SETUP/AUTOIDE.asm index e1a89cd..c46c4a2 100644 --- a/src/bios/rom/SETUP/AUTOIDE.asm +++ b/src/bios/rom/SETUP/AUTOIDE.asm @@ -90,7 +90,7 @@ IDE3 EQU #C1D8 ; DB #FF ;SECTOR PER CYLINDER HIGH ;06 ; DB #FF ;DEVICE TYPE ;07 - MODULE CONFIGURE_IDE_DRIVES + MODULE CONFIGURE_IDE_DRIVES MODULE PAUSES HALT: @@ -427,7 +427,7 @@ IDESPEC: LD (IY+IDE.HDD_INIT_TABLE.SectorsPerCylinderLow),L LD (IY+IDE.HDD_INIT_TABLE.SectorsPerCylinderHigh),H -.END: ;!TEST save hdd parameters to cmos for "setup" in settings +.END: ; [x] save hdd parameters to cmos for "setup" in settings LD A,(IY+IDE.HDD_INIT_TABLE.DRV_Flags) ; for save to cmos in GETPARM ; EX AF,AF' @@ -588,7 +588,7 @@ SKIPKEY: /////////////////////////////////////////////////////////////////////[v] -;!TEST save hdd parameters to cmos for "setup" in settings +; [x] save hdd parameters to cmos for "setup" in settings ; IN: A' = DRV_Flags SaveToCMOS: LD A,(IDEDEV) @@ -675,7 +675,7 @@ GETPARAM: INIR INIR CALL IDESPEC - ;!TEST save hdd parameters to cmos for "setup" in settings + ; [x] save hdd parameters to cmos for "setup" in settings CALL SaveToCMOS ; AND A diff --git a/src/bios/rom/SETUP/IM2_INT.asm b/src/bios/rom/SETUP/IM2_INT.asm index 4369781..512791a 100644 --- a/src/bios/rom/SETUP/IM2_INT.asm +++ b/src/bios/rom/SETUP/IM2_INT.asm @@ -1,4 +1,9 @@ ; +; before_intPointer EQU #C000 +; INT_POINTER EQU #C002 +; INT_HANDLER EQU #C004 + + before_intPointer EQU $ BLOCK #FF - low $,0 ; выравнивание на #xxFF INT_POINTER: WORD 0 diff --git a/src/bios/rom/SETUP/KEY.asm b/src/bios/rom/SETUP/KEY.asm index 0356dde..8c5f6cf 100644 --- a/src/bios/rom/SETUP/KEY.asm +++ b/src/bios/rom/SETUP/KEY.asm @@ -172,7 +172,7 @@ RESCANN: IN A,(Z84.SIO.Ch_A.Ctrl) AND 1 RET Z - ;[ ] 18/02/2024 проверка на переполнение буфера + ;[x] 18/02/2024 проверка на переполнение буфера ; A = 1 ; reg 1 OUT (Z84.SIO.Ch_A.Ctrl),A @@ -204,7 +204,7 @@ RESCANN: RES FLAG_E1,(IX+KEYFLG) ENDIF ; - ;[ ] 29/02/2024 выгребсти весь буфер + ;[x] 29/02/2024 выгребсти весь буфер JR Z,RESCANN ;IT'S SHIFT KEY ; RET Z ;IT'S SHIFT KEY ; @@ -526,7 +526,7 @@ XLAT_T.Size EQU $-XLAT_T XLAT: BIT FLAG_E0,(IX+KEYFLG) - JR Z,W_O_E0 + JR Z,.W_O_E0 CP #11 ; Right ALT LD L,#39 RET Z @@ -548,12 +548,13 @@ XLAT: BIT FLAG_E0,(IX+KEYFLG) RET Z LD L,A -W_O_E0: ; таблица с выравниванием на 256 +.W_O_E0: + ; таблица с выравниванием на 256 ; LD H,high XLAT_T ; LD L,(HL) ; ; без выравнивания - ; [ ] 31/03/2024 исправлен баг с выходом за границы таблицы XLAT_T + ; [x] 31/03/2024 исправлен баг с выходом за границы таблицы XLAT_T CP XLAT_T.Size LD L,0 RET NC @@ -770,7 +771,7 @@ BEEP: LD A,#10 ; RET ;------------------------------;????? разобраться -;[ ] 18/02/2024 проверка на переполнение буфера +; [x] 18/02/2024 проверка на переполнение буфера Receiver_Overrun: ; empty the buffer IN A,(Z84.SIO.Ch_A.Data) diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index ffcbb5a..e2602b4 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -76,7 +76,7 @@ TEMP EQU #7E00 ; !HARDCODE MEMMAP2 EQU TEMP ; должно быть выровнено по ALIGN 256 -TPOINTD EQU TEMP - SYS_PAGE.RAMD_KEYS.NUM - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/23 +TPOINTD EQU TEMP - SYS_PAGE.RAMD_KEYS.NUM - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/2023 ;======================================= @@ -252,7 +252,7 @@ CLEARM: IN A,(SLOT3) LD DE,TPOINTD LD BC,SYS_PAGE.RAMD_KEYS.NUM LDIR - ; [x] 4/11/23 + ; [x] 4/11/2023 LD HL,SYS_PAGE.Sp_RAMD_KEYS LD DE,TPOINTD + SYS_PAGE.RAMD_KEYS.NUM LD BC,SYS_PAGE.Sp_RAMD_KEYS.NUM @@ -270,7 +270,7 @@ CLEARM: IN A,(SLOT3) LD D,high MEMMAP2 LD BC,SYS_PAGE.RAMD_KEYS.NUM*256 + #FF CALL .MEMLOOP - ; [x] 4/11/23 + ; [x] 4/11/2023 LD IX,SYS_PAGE.Sp_RAMD_KEYS LD B,SYS_PAGE.Sp_RAMD_KEYS.NUM CALL .MEMLOOP @@ -282,7 +282,7 @@ CLEARM: IN A,(SLOT3) CALL NZ,CCHAIN POP AF OUT (SLOT3),A - ;!TEST; [ ] 04/11/2023 Отдельные рамдиски для режима спектрума и DSS. + ; [x] 04/11/2023 Отдельные рамдиски для режима спектрума и DSS. LD B,high BIOS.SWAP_RAM_DRIVES.Sp2000 JP SWAP_RAM_DRIVES ; @@ -674,7 +674,7 @@ INFO_MESSAGE: CALL CONFIGURE_IDE_DRIVES.START CALL CTRLKEY LD A,B - ; [ ] 05/07/2024 + ; [x] 05/07/2024 BIT X_CTRL,A LD BC,#FFFF ; маркер для PrepareToBOOT, чтоб грузил Recovery JR NZ,RECOVERY_BOOT @@ -912,7 +912,7 @@ PrepareToBOOT: ;CALL INT_ON CALL PORTS_INIT.clean_mouse_buf ;Clearing the mouse buffer CALL INT_OFF ; тут не должно быть испорчено значение BC - ; [ ] 05/07/2024 + ; [x] 05/07/2024 INC BC LD A,B OR C @@ -1212,7 +1212,7 @@ CNF_VER_PRINT: ; JP_to_BIOS ////////////////////////////////////////////////////////////////////// - INCLUDE 'IM2_INT.asm' +; INCLUDE 'IM2_INT.asm' ////////////////////////////////////////////////////////////////////// PRNHEX: LD D,A @@ -1492,15 +1492,6 @@ POSTLEN: ;JP ScreenPOS.LOCAT JP LP_SET_PLACE -POSTMSG: - CALL FindStringAddr - JP PRINTZ - -POSTMSC: - CALL FindStringAddr - LD A,E - JP CPRINTZ - SETLAND: LD A,#0E ; !HARDCODE CMOS ячейка options CALL READCMS @@ -1518,6 +1509,20 @@ SETLAND: LD BC,MSG_RUS.size LDIR RET + +////////////////////////////////////////////////////////////////////// + INCLUDE 'IM2_INT.asm' +////////////////////////////////////////////////////////////////////// + +POSTMSG: + CALL FindStringAddr + JP PRINTZ + +POSTMSC: + CALL FindStringAddr + LD A,E + JP CPRINTZ + ; ; print boot drive number PRINT_CHANEL: @@ -1566,10 +1571,6 @@ STACK EQU #C000 .size EQU 128 -; ID_BUFFER EQU $ -; MSG_Buffer EQU ID_BUFFER+#100 -; TMP_BUFFER EQU MSG_Buffer + MSG_ENG.size - IF memBUFFER.End-1 > #C000-STACK.size DISPLAY 'memBUFFER.Shared overlaps STACK by: ',/A,(memBUFFER.End-1)-(#C000-STACK.size) ASSERT memBUFFER.End-1 < #C000-STACK.size diff --git a/src/bios/rom/SETUP/SETTINGS.asm b/src/bios/rom/SETUP/SETTINGS.asm index c6fc779..9a1f26b 100644 --- a/src/bios/rom/SETUP/SETTINGS.asm +++ b/src/bios/rom/SETUP/SETTINGS.asm @@ -616,7 +616,7 @@ G_VALUE: RLCA RET -;!TEST +; [x] чтоб не влезло куда не надо READCMS: LD D,high CMOSARE LD E,A @@ -627,7 +627,7 @@ READCMS: .error: SCF RET -;!TEST +; [x] чтоб не влезло куда не надо WRITCMS: LD D,high CMOSARE LD E,A @@ -640,7 +640,7 @@ WRITCMS: RET CHEKSUM: - LD BC,DEFVAL.Size*256 + #0E ;!HARDCODE + LD BC,DEFVAL.Size*256 + CMOS.USED_MIN_ADDRESS LD H,#DE ;!HARDCODE .loop: LD A,C CALL READCMS @@ -656,7 +656,7 @@ CHEKSUM: TCHEKSM: CALL CHEKSUM - LD A,#3F ; !HARDCODE CMOS + LD A,CMOS_CELL.CheckSum CALL READCMS CP H RET @@ -727,18 +727,18 @@ SETDEF: ;!TODO INC A DEC C JR NZ,.loop -;REGISTER #35 - BASIC SETTING 1 - LD A,#35 ;!HARDCODE cmos - LD B,#00 + + LD A,CMOS_CELL.ZX_RST_TO + LD B,CMOS_CELL.ZX_RST_TO.BASIC_128 CALL WRITCMS -;REGISTER #36 - BASIC SETTING 2 - LD A,#36 ;!HARDCODE cmos - LD B,#00 + + LD A,CMOS_CELL.ZX_CONFIG + LD B,CMOS_CELL.ZX_CONFIG.ZX_Sprinter CALL WRITCMS CALL CHEKSUM LD B,H - LD A,CMOS.Cell.CheckSum + LD A,CMOS_CELL.CheckSum CALL WRITCMS RET diff --git a/src/bios/rom/SETUP/VIDEO_IO.asm b/src/bios/rom/SETUP/VIDEO_IO.asm index d5326da..9de0de8 100644 --- a/src/bios/rom/SETUP/VIDEO_IO.asm +++ b/src/bios/rom/SETUP/VIDEO_IO.asm @@ -1,13 +1,6 @@ def_pal_mask EQU #FF PIC_SET_PAL_FF EQU def_pal_mask*256+BIOS.PIC_SET_PAL -ScreenPOS.SUBNAME.POS EQU 37 - - IF NEW_FEATURE - - - - ENDIF ;; ScreenPOS: @@ -15,7 +8,8 @@ ScreenPOS: CALL LP_GET_PLACE LD E,.SUBNAME.POS ;!HARDCODE autodetected hdd/cdrom info JP LP_SET_PLACE - +.SUBNAME.POS EQU 37 + ; .CRLF: CALL LP_GET_PLACE INC D LD E,#00 diff --git a/src/bios/rom/ZX/ZX_MENU.ASM b/src/bios/rom/ZX/ZX_MENU.ASM index 7a04d1f..1b781ec 100644 --- a/src/bios/rom/ZX/ZX_MENU.ASM +++ b/src/bios/rom/ZX/ZX_MENU.ASM @@ -426,10 +426,10 @@ CLEAR_RAM: ; при очистке памяти из меню спектрума возврат в DSS по CAD ; будет опасным (RAM Blocks освободились), ; поэтому отключаем перехват ресета. - LD A,ACEX.RET_PORT - LD BC,BIOS.SET_PORTS + LD A,ACEX.RET_PORT + LD BC,BIOS.SET_PORTS ;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23 - ;CALL ToBIOS_3D13 + ;CALL ToBIOS_3D13 RST_to_BIOS ; EI @@ -641,14 +641,13 @@ UTILIT: LD HL,C_DISK_C CALL CALL_DOS1 - ;!TEST - ;CALL DOS_ON - ;LD A,0 ; DETECT_HDD - ;CALL EXP_HDD - LD C,BIOS.HDD_INIT - RST_to_BIOS - ;CALL DOS_OFF - ; + ;CALL DOS_ON + ;LD A,0 ; DETECT_HDD + ;CALL EXP_HDD + LD C,BIOS.HDD_INIT + RST_to_BIOS + ;CALL DOS_OFF + JR C,DISK_UTILIT @@ -657,21 +656,15 @@ UTILIT: UTIL_DISK: XOR A - ;!TEST - LD C,BIOS.FreeMemRMD - RST_to_BIOS - ;CALL EMM_FN3 ;!!!!! через RST_to_BIOS EMM.FreeMemRMD - ; + LD C,BIOS.FreeMemRMD + RST_to_BIOS LD HL,C_DEMO6 CALL CALL_DOS1 XOR A - ;!TEST - LD C,BIOS.GET_RAMD_ST - RST_to_BIOS - ;CALL GET_RAMD_ST - ; + LD C,BIOS.GET_RAMD_ST + RST_to_BIOS JR C,UTIL_DISK_L1 JR Z,UTIL_DISK_L1 diff --git a/src/bios/shared/CompMacro.asm b/src/bios/shared/CompMacro.asm index e5714cf..58b5522 100644 --- a/src/bios/shared/CompMacro.asm +++ b/src/bios/shared/CompMacro.asm @@ -24,29 +24,14 @@ ; ; Вход: ширина спрайта, высота, координата X, координата Y, адрес спрайта в памяти MACRO EasterTable width, height, Xcoord, Ycoord, addr - WORD addr ; адрес спрайта в памяти - WORD width ; Ширина - BYTE height+Ycoord ; Высота + Y coord - WORD Xcoord+#4040 ; X coord ; !HARDCODE Срочно исправить на метку #4040 - адрес лого - BYTE Ycoord ; Y coord + WORD addr ; адрес спрайта в памяти + WORD width ; Ширина + BYTE height+Ycoord ; Высота + Y coord + WORD Xcoord+#4040 ; X coord ; !HARDCODE исправить на метку #4040 - адрес лого + BYTE Ycoord ; Y coord ENDM ; -; на входе в A номер строки. На выходе в HL адрес начала строки. портит A, HL, BC -; MACRO FIND_STRING_ADDR ; !TODO переделать на CALL FIND_STRING_ADDR ? -; SLA A ; !FIXIT переделать под количество строк > 127 -; LD HL,MSG_Buffer -; LD B,0 -; LD C,A -; ADD HL,BC -; LD A,(HL) -; INC HL -; LD H,(HL) -; LD L,A -; ENDM -; - - ; MACRO _mRECOVERYrdChooseTYPE vers IF vers = 1 diff --git a/src/bios/shared/VERSION.inc b/src/bios/shared/VERSION.inc index 55c70f5..ac1fed3 100644 --- a/src/bios/shared/VERSION.inc +++ b/src/bios/shared/VERSION.inc @@ -11,15 +11,11 @@ BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD DEFINE BETA_str_ver "BETA ","0"+BETA_BUILD ENDIF ;--------------------------------------- - - -; DEFINE Sp_MB_Ver '2000' DEFINE BoardID_start #5283 DEFINE BoardID_end #47E8 DEFINE MotherBoardID #0000 ;======================================= - ;============[For ROM part]============= ;!FIXIT вы не понимаете, это другое)) ;-[Version of disk subsystem "VER.MOD"]- ROM_ID: @@ -30,7 +26,6 @@ Disk_subsystem_ver_hex EQU ROM_ID.VER*256+ROM_ID.MOD DEFINE Disk_subsystem_ver_txt '0'+ROM_ID.VER, '.', '0'+ROM_ID.MOD/10, '0'+ROM_ID.MOD-(ROM_ID.MOD/10)*10 ;--------------------------------------- - ;============[For CNF part]============= CNF_ID: .VER EQU 3 ; Номер версии менять тут! @@ -40,7 +35,6 @@ bitstream_ver_hex EQU CNF_ID.VER*256+CNF_ID.MOD DEFINE bitstream_ver_string '0'+CNF_ID.VER, '.', '0'+CNF_ID.MOD/10, '0'+CNF_ID.MOD-(CNF_ID.MOD/10)*10 ;--------------------------------------- - ;======================================= DEFINE SPTeam_year '2024' DEFINE SetupVer '1.60'